diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index e4a35417..5e5b2086 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -152,751 +152,751 @@ }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/admissionregistration/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/events/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/storage/v1alpha1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "d7d8a667cbff06c0e71979d3c59f624dde90bd83" + "Rev": "5c47ba7bba38a261409b1bed080e0cc1c2dd6cc8" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "aec7a3f0d7396e08de931f260a7918326b65ce1b" + "Rev": "c8d8140d6af3a37523e8313996fc91c36e276411" }, { "ImportPath": "k8s.io/client-go/discovery", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/discovery/fake", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/apps", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/batch", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/certificates", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/core", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/core/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/events", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/events/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/extensions", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/internalinterfaces", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/networking", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/networking/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/policy", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/rbac", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/scheduling", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/settings", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/storage", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/scheme", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/core/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/events/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/networking/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/pkg/version", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/rest", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/rest/watch", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/testing", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/auth", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/cache", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/metrics", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/pager", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/record", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/tools/reference", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/transport", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/buffer", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/cert", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/flowcontrol", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/homedir", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/integer", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/retry", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/client-go/util/workqueue", - "Rev": "c4b9f086d07d7df562c8e7697a7d971c1ba32a86" + "Rev": "1bc18ec75052965593a134867571d36de2d174cf" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", diff --git a/hack/boilerplate.go.txt b/hack/boilerplate.go.txt new file mode 100644 index 00000000..59e740c1 --- /dev/null +++ b/hack/boilerplate.go.txt @@ -0,0 +1,16 @@ +/* +Copyright YEAR The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index d0fd734f..3697707b 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -28,7 +28,8 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-ge ${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \ k8s.io/sample-controller/pkg/client k8s.io/sample-controller/pkg/apis \ samplecontroller:v1alpha1 \ - --output-base "$(dirname ${BASH_SOURCE})/../../.." + --output-base "$(dirname ${BASH_SOURCE})/../../.." \ + --go-header-file ${SCRIPT_ROOT}/hack/boilerplate.go.txt -# To use your own boilerplate text append: +# To use your own boilerplate text use: # --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt diff --git a/vendor/k8s.io/api/autoscaling/v1/generated.pb.go b/vendor/k8s.io/api/autoscaling/v1/generated.pb.go index 4c6a1712..9e2b235e 100644 --- a/vendor/k8s.io/api/autoscaling/v1/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v1/generated.pb.go @@ -26,6 +26,8 @@ limitations under the License. It has these top-level messages: CrossVersionObjectReference + ExternalMetricSource + ExternalMetricStatus HorizontalPodAutoscaler HorizontalPodAutoscalerCondition HorizontalPodAutoscalerList @@ -76,80 +78,90 @@ func (*CrossVersionObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (m *ExternalMetricSource) Reset() { *m = ExternalMetricSource{} } +func (*ExternalMetricSource) ProtoMessage() {} +func (*ExternalMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *ExternalMetricStatus) Reset() { *m = ExternalMetricStatus{} } +func (*ExternalMetricStatus) ProtoMessage() {} +func (*ExternalMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + func (m *HorizontalPodAutoscaler) Reset() { *m = HorizontalPodAutoscaler{} } func (*HorizontalPodAutoscaler) ProtoMessage() {} -func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *HorizontalPodAutoscalerCondition) Reset() { *m = HorizontalPodAutoscalerCondition{} } func (*HorizontalPodAutoscalerCondition) ProtoMessage() {} func (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} + return fileDescriptorGenerated, []int{4} } func (m *HorizontalPodAutoscalerList) Reset() { *m = HorizontalPodAutoscalerList{} } func (*HorizontalPodAutoscalerList) ProtoMessage() {} func (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} + return fileDescriptorGenerated, []int{5} } func (m *HorizontalPodAutoscalerSpec) Reset() { *m = HorizontalPodAutoscalerSpec{} } func (*HorizontalPodAutoscalerSpec) ProtoMessage() {} func (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{4} + return fileDescriptorGenerated, []int{6} } func (m *HorizontalPodAutoscalerStatus) Reset() { *m = HorizontalPodAutoscalerStatus{} } func (*HorizontalPodAutoscalerStatus) ProtoMessage() {} func (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{5} + return fileDescriptorGenerated, []int{7} } func (m *MetricSpec) Reset() { *m = MetricSpec{} } func (*MetricSpec) ProtoMessage() {} -func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *MetricStatus) Reset() { *m = MetricStatus{} } func (*MetricStatus) ProtoMessage() {} -func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *ObjectMetricSource) Reset() { *m = ObjectMetricSource{} } func (*ObjectMetricSource) ProtoMessage() {} -func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *ObjectMetricStatus) Reset() { *m = ObjectMetricStatus{} } func (*ObjectMetricStatus) ProtoMessage() {} -func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *PodsMetricSource) Reset() { *m = PodsMetricSource{} } func (*PodsMetricSource) ProtoMessage() {} -func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *PodsMetricStatus) Reset() { *m = PodsMetricStatus{} } func (*PodsMetricStatus) ProtoMessage() {} -func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *ResourceMetricSource) Reset() { *m = ResourceMetricSource{} } func (*ResourceMetricSource) ProtoMessage() {} -func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ResourceMetricStatus) Reset() { *m = ResourceMetricStatus{} } func (*ResourceMetricStatus) ProtoMessage() {} -func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *Scale) Reset() { *m = Scale{} } func (*Scale) ProtoMessage() {} -func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } func (*ScaleSpec) ProtoMessage() {} -func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } func (*ScaleStatus) ProtoMessage() {} -func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func init() { proto.RegisterType((*CrossVersionObjectReference)(nil), "k8s.io.api.autoscaling.v1.CrossVersionObjectReference") + proto.RegisterType((*ExternalMetricSource)(nil), "k8s.io.api.autoscaling.v1.ExternalMetricSource") + proto.RegisterType((*ExternalMetricStatus)(nil), "k8s.io.api.autoscaling.v1.ExternalMetricStatus") proto.RegisterType((*HorizontalPodAutoscaler)(nil), "k8s.io.api.autoscaling.v1.HorizontalPodAutoscaler") proto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), "k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerCondition") proto.RegisterType((*HorizontalPodAutoscalerList)(nil), "k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerList") @@ -197,6 +209,108 @@ func (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) + i += copy(dAtA[i:], m.MetricName) + if m.MetricSelector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MetricSelector.Size())) + n1, err := m.MetricSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.TargetValue != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) + n2, err := m.TargetValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.TargetAverageValue != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) + n3, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + return i, nil +} + +func (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) + i += copy(dAtA[i:], m.MetricName) + if m.MetricSelector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MetricSelector.Size())) + n4, err := m.MetricSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) + n5, err := m.CurrentValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + if m.CurrentAverageValue != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) + n6, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + return i, nil +} + func (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -215,27 +329,27 @@ func (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n1 + i += n7 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n2, err := m.Spec.MarshalTo(dAtA[i:]) + n8, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n2 + i += n8 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n3, err := m.Status.MarshalTo(dAtA[i:]) + n9, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n9 return i, nil } @@ -265,11 +379,11 @@ func (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n4, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n10, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n10 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -299,11 +413,11 @@ func (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n5, err := m.ListMeta.MarshalTo(dAtA[i:]) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n11 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -337,11 +451,11 @@ func (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleTargetRef.Size())) - n6, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) + n12, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n12 if m.MinReplicas != nil { dAtA[i] = 0x10 i++ @@ -382,11 +496,11 @@ func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastScaleTime.Size())) - n7, err := m.LastScaleTime.MarshalTo(dAtA[i:]) + n13, err := m.LastScaleTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n13 } dAtA[i] = 0x18 i++ @@ -425,31 +539,41 @@ func (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n8, err := m.Object.MarshalTo(dAtA[i:]) + n14, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n14 } if m.Pods != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n9, err := m.Pods.MarshalTo(dAtA[i:]) + n15, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n15 } if m.Resource != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n10, err := m.Resource.MarshalTo(dAtA[i:]) + n16, err := m.Resource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n16 + } + if m.External != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) + n17, err := m.External.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 } return i, nil } @@ -477,31 +601,41 @@ func (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n11, err := m.Object.MarshalTo(dAtA[i:]) + n18, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n18 } if m.Pods != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n12, err := m.Pods.MarshalTo(dAtA[i:]) + n19, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n19 } if m.Resource != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n13, err := m.Resource.MarshalTo(dAtA[i:]) + n20, err := m.Resource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n20 + } + if m.External != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) + n21, err := m.External.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 } return i, nil } @@ -524,11 +658,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n14, err := m.Target.MarshalTo(dAtA[i:]) + n22, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n22 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -536,11 +670,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n15, err := m.TargetValue.MarshalTo(dAtA[i:]) + n23, err := m.TargetValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n23 return i, nil } @@ -562,11 +696,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n16, err := m.Target.MarshalTo(dAtA[i:]) + n24, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n24 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -574,11 +708,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n17, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n25, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n25 return i, nil } @@ -604,11 +738,11 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n18, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n26, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n26 return i, nil } @@ -634,11 +768,11 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n19, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n27, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n27 return i, nil } @@ -670,11 +804,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n20, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n28, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n28 } return i, nil } @@ -706,11 +840,11 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n21, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n29, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n29 return i, nil } @@ -732,27 +866,27 @@ func (m *Scale) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n22, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n30, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n30 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n23, err := m.Spec.MarshalTo(dAtA[i:]) + n31, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n31 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n24, err := m.Status.MarshalTo(dAtA[i:]) + n32, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n32 return i, nil } @@ -841,6 +975,44 @@ func (m *CrossVersionObjectReference) Size() (n int) { return n } +func (m *ExternalMetricSource) Size() (n int) { + var l int + _ = l + l = len(m.MetricName) + n += 1 + l + sovGenerated(uint64(l)) + if m.MetricSelector != nil { + l = m.MetricSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TargetValue != nil { + l = m.TargetValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TargetAverageValue != nil { + l = m.TargetAverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ExternalMetricStatus) Size() (n int) { + var l int + _ = l + l = len(m.MetricName) + n += 1 + l + sovGenerated(uint64(l)) + if m.MetricSelector != nil { + l = m.MetricSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.CurrentValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.CurrentAverageValue != nil { + l = m.CurrentAverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *HorizontalPodAutoscaler) Size() (n int) { var l int _ = l @@ -933,6 +1105,10 @@ func (m *MetricSpec) Size() (n int) { l = m.Resource.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.External != nil { + l = m.External.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -953,6 +1129,10 @@ func (m *MetricStatus) Size() (n int) { l = m.Resource.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.External != nil { + l = m.External.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1081,6 +1261,32 @@ func (this *CrossVersionObjectReference) String() string { }, "") return s } +func (this *ExternalMetricSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExternalMetricSource{`, + `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, + `MetricSelector:` + strings.Replace(fmt.Sprintf("%v", this.MetricSelector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `TargetValue:` + strings.Replace(fmt.Sprintf("%v", this.TargetValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `TargetAverageValue:` + strings.Replace(fmt.Sprintf("%v", this.TargetAverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ExternalMetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExternalMetricStatus{`, + `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, + `MetricSelector:` + strings.Replace(fmt.Sprintf("%v", this.MetricSelector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `CurrentValue:` + strings.Replace(strings.Replace(this.CurrentValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `CurrentAverageValue:` + strings.Replace(fmt.Sprintf("%v", this.CurrentAverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} func (this *HorizontalPodAutoscaler) String() string { if this == nil { return "nil" @@ -1154,6 +1360,7 @@ func (this *MetricSpec) String() string { `Object:` + strings.Replace(fmt.Sprintf("%v", this.Object), "ObjectMetricSource", "ObjectMetricSource", 1) + `,`, `Pods:` + strings.Replace(fmt.Sprintf("%v", this.Pods), "PodsMetricSource", "PodsMetricSource", 1) + `,`, `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "ResourceMetricSource", "ResourceMetricSource", 1) + `,`, + `External:` + strings.Replace(fmt.Sprintf("%v", this.External), "ExternalMetricSource", "ExternalMetricSource", 1) + `,`, `}`, }, "") return s @@ -1167,6 +1374,7 @@ func (this *MetricStatus) String() string { `Object:` + strings.Replace(fmt.Sprintf("%v", this.Object), "ObjectMetricStatus", "ObjectMetricStatus", 1) + `,`, `Pods:` + strings.Replace(fmt.Sprintf("%v", this.Pods), "PodsMetricStatus", "PodsMetricStatus", 1) + `,`, `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "ResourceMetricStatus", "ResourceMetricStatus", 1) + `,`, + `External:` + strings.Replace(fmt.Sprintf("%v", this.External), "ExternalMetricStatus", "ExternalMetricStatus", 1) + `,`, `}`, }, "") return s @@ -1419,6 +1627,359 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { } return nil } +func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MetricSelector == nil { + m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetValue == nil { + m.TargetValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetAverageValue == nil { + m.TargetAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MetricSelector == nil { + m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CurrentAverageValue == nil { + m.CurrentAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2323,6 +2884,39 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.External == nil { + m.External = &ExternalMetricSource{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2501,6 +3095,39 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.External == nil { + m.External = &ExternalMetricStatus{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3696,91 +4323,98 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1370 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4d, 0x6f, 0x13, 0xc7, - 0x1b, 0x8f, 0x5f, 0x12, 0xc2, 0x38, 0x10, 0xfe, 0x03, 0x02, 0x13, 0xfe, 0x78, 0xa3, 0x2d, 0x42, - 0xf4, 0x85, 0xdd, 0xc6, 0xa5, 0x88, 0x1e, 0x63, 0x57, 0x14, 0xd4, 0x04, 0xc2, 0x60, 0x28, 0x7d, - 0x51, 0xc5, 0x64, 0x77, 0x70, 0x86, 0x78, 0x5f, 0x34, 0x33, 0xb6, 0x1a, 0xa4, 0x4a, 0xed, 0xa1, - 0xe7, 0x56, 0x95, 0xfa, 0x31, 0x7a, 0xe6, 0x50, 0xf5, 0xd0, 0x4a, 0x95, 0x38, 0x72, 0xe8, 0x81, - 0x93, 0x55, 0xb6, 0xc7, 0x7e, 0x03, 0x4e, 0xd5, 0xcc, 0x8e, 0xd7, 0xbb, 0xb6, 0xd7, 0x21, 0x21, - 0x42, 0xbd, 0xed, 0xce, 0xfc, 0x9e, 0xdf, 0xf3, 0x3a, 0xcf, 0x3c, 0x03, 0x1a, 0xdb, 0x57, 0xb8, - 0x45, 0x03, 0x7b, 0xbb, 0xbb, 0x49, 0x98, 0x4f, 0x04, 0xe1, 0x76, 0x8f, 0xf8, 0x6e, 0xc0, 0x6c, - 0xbd, 0x81, 0x43, 0x6a, 0xe3, 0xae, 0x08, 0xb8, 0x83, 0x3b, 0xd4, 0x6f, 0xdb, 0xbd, 0x15, 0xbb, - 0x4d, 0x7c, 0xc2, 0xb0, 0x20, 0xae, 0x15, 0xb2, 0x40, 0x04, 0xf0, 0x74, 0x0c, 0xb5, 0x70, 0x48, - 0xad, 0x14, 0xd4, 0xea, 0xad, 0x2c, 0x5d, 0x6c, 0x53, 0xb1, 0xd5, 0xdd, 0xb4, 0x9c, 0xc0, 0xb3, - 0xdb, 0x41, 0x3b, 0xb0, 0x95, 0xc4, 0x66, 0xf7, 0x81, 0xfa, 0x53, 0x3f, 0xea, 0x2b, 0x66, 0x5a, - 0x32, 0x53, 0x4a, 0x9d, 0x80, 0x91, 0x09, 0xda, 0x96, 0x2e, 0x0d, 0x31, 0x1e, 0x76, 0xb6, 0xa8, - 0x4f, 0xd8, 0x8e, 0x1d, 0x6e, 0xb7, 0x95, 0x10, 0x23, 0x3c, 0xe8, 0x32, 0x87, 0xec, 0x49, 0x8a, - 0xdb, 0x1e, 0x11, 0x78, 0x92, 0x2e, 0x3b, 0x4f, 0x8a, 0x75, 0x7d, 0x41, 0xbd, 0x71, 0x35, 0x97, - 0x77, 0x13, 0xe0, 0xce, 0x16, 0xf1, 0xf0, 0x98, 0xdc, 0x7b, 0x79, 0x72, 0x5d, 0x41, 0x3b, 0x36, - 0xf5, 0x05, 0x17, 0x6c, 0x54, 0xc8, 0xfc, 0xa9, 0x00, 0xce, 0x34, 0x59, 0xc0, 0xf9, 0x5d, 0xc2, - 0x38, 0x0d, 0xfc, 0x9b, 0x9b, 0x0f, 0x89, 0x23, 0x10, 0x79, 0x40, 0x18, 0xf1, 0x1d, 0x02, 0x97, - 0x41, 0x79, 0x9b, 0xfa, 0x6e, 0xb5, 0xb0, 0x5c, 0xb8, 0x70, 0xb8, 0xb1, 0xf0, 0xa4, 0x6f, 0xcc, - 0x44, 0x7d, 0xa3, 0xfc, 0x31, 0xf5, 0x5d, 0xa4, 0x76, 0x24, 0xc2, 0xc7, 0x1e, 0xa9, 0x16, 0xb3, - 0x88, 0x1b, 0xd8, 0x23, 0x48, 0xed, 0xc0, 0x3a, 0x00, 0x38, 0xa4, 0x5a, 0x41, 0xb5, 0xa4, 0x70, - 0x50, 0xe3, 0xc0, 0xea, 0xc6, 0x75, 0xbd, 0x83, 0x52, 0x28, 0xf3, 0x71, 0x11, 0x9c, 0xba, 0x16, - 0x30, 0xfa, 0x28, 0xf0, 0x05, 0xee, 0x6c, 0x04, 0xee, 0xaa, 0x2e, 0x0a, 0xc2, 0xe0, 0x7d, 0x30, - 0x2f, 0x83, 0xed, 0x62, 0x81, 0x95, 0x5d, 0x95, 0xfa, 0xbb, 0xd6, 0xb0, 0x7c, 0x12, 0xdf, 0xad, - 0x70, 0xbb, 0x2d, 0x17, 0xb8, 0x25, 0xd1, 0x56, 0x6f, 0xc5, 0x8a, 0x9d, 0x5b, 0x27, 0x02, 0x0f, - 0xf5, 0x0f, 0xd7, 0x50, 0xc2, 0x0a, 0xef, 0x81, 0x32, 0x0f, 0x89, 0xa3, 0x7c, 0xaa, 0xd4, 0x2f, - 0x5b, 0xb9, 0xc5, 0x69, 0xe5, 0xd8, 0x78, 0x3b, 0x24, 0xce, 0x30, 0x16, 0xf2, 0x0f, 0x29, 0x46, - 0x78, 0x1f, 0xcc, 0x71, 0x81, 0x45, 0x97, 0xab, 0x38, 0x54, 0xea, 0x57, 0xf6, 0xc1, 0xad, 0xe4, - 0x1b, 0x47, 0x35, 0xfb, 0x5c, 0xfc, 0x8f, 0x34, 0xaf, 0xf9, 0x5d, 0x09, 0x2c, 0xe7, 0x48, 0x36, - 0x03, 0xdf, 0xa5, 0x82, 0x06, 0x3e, 0xbc, 0x06, 0xca, 0x62, 0x27, 0x24, 0x3a, 0xad, 0x97, 0x06, - 0x86, 0xb6, 0x76, 0x42, 0xf2, 0xa2, 0x6f, 0x9c, 0xdb, 0x4d, 0x5e, 0xe2, 0x90, 0x62, 0x80, 0x6b, - 0x89, 0x43, 0xc5, 0x0c, 0x97, 0x36, 0xeb, 0x45, 0xdf, 0x98, 0x70, 0x20, 0xad, 0x84, 0x29, 0x6b, - 0x3c, 0xec, 0x01, 0xd8, 0xc1, 0x5c, 0xb4, 0x18, 0xf6, 0x79, 0xac, 0x89, 0x7a, 0x44, 0x87, 0xea, - 0xad, 0x97, 0x4b, 0xb2, 0x94, 0x68, 0x2c, 0x69, 0x2b, 0xe0, 0xda, 0x18, 0x1b, 0x9a, 0xa0, 0x01, - 0x9e, 0x07, 0x73, 0x8c, 0x60, 0x1e, 0xf8, 0xd5, 0xb2, 0xf2, 0x22, 0x09, 0x2e, 0x52, 0xab, 0x48, - 0xef, 0xc2, 0x37, 0xc1, 0x21, 0x8f, 0x70, 0x8e, 0xdb, 0xa4, 0x3a, 0xab, 0x80, 0x8b, 0x1a, 0x78, - 0x68, 0x3d, 0x5e, 0x46, 0x83, 0x7d, 0xf3, 0xcf, 0x02, 0x38, 0x93, 0x13, 0xc7, 0x35, 0xca, 0x05, - 0xfc, 0x62, 0xac, 0x8a, 0xad, 0x97, 0x73, 0x50, 0x4a, 0xab, 0x1a, 0x3e, 0xa6, 0x75, 0xcf, 0x0f, - 0x56, 0x52, 0x15, 0xfc, 0x09, 0x98, 0xa5, 0x82, 0x78, 0x32, 0x2b, 0xa5, 0x0b, 0x95, 0x7a, 0x7d, - 0xef, 0x65, 0xd6, 0x38, 0xa2, 0xe9, 0x67, 0xaf, 0x4b, 0x22, 0x14, 0xf3, 0x99, 0xff, 0x14, 0x73, - 0xdd, 0x92, 0x65, 0x0e, 0x7b, 0xe0, 0xa8, 0xfa, 0x6b, 0x61, 0xd6, 0x26, 0xb2, 0x91, 0x68, 0xe7, - 0xa6, 0x1d, 0xa2, 0x29, 0x0d, 0xa8, 0x71, 0x52, 0x5b, 0x71, 0xf4, 0x76, 0x86, 0x15, 0x8d, 0x68, - 0x81, 0x2b, 0xa0, 0xe2, 0x51, 0x1f, 0x91, 0xb0, 0x43, 0x1d, 0x1c, 0x17, 0xe3, 0x6c, 0x63, 0x31, - 0xea, 0x1b, 0x95, 0xf5, 0xe1, 0x32, 0x4a, 0x63, 0xe0, 0xfb, 0xa0, 0xe2, 0xe1, 0xaf, 0x12, 0x91, - 0x92, 0x12, 0x39, 0xae, 0xf5, 0x55, 0xd6, 0x87, 0x5b, 0x28, 0x8d, 0x83, 0x0f, 0x41, 0x4d, 0x28, - 0xb5, 0xcd, 0x8d, 0x3b, 0x77, 0x04, 0xed, 0xd0, 0x47, 0x58, 0xd6, 0xd1, 0x06, 0x61, 0x0e, 0xf1, - 0x85, 0x2c, 0x8d, 0xb2, 0x62, 0x32, 0xa3, 0xbe, 0x51, 0x6b, 0x4d, 0x45, 0xa2, 0x5d, 0x98, 0xcc, - 0xdf, 0x4a, 0xe0, 0xec, 0xd4, 0x36, 0x00, 0xaf, 0x02, 0x18, 0x6c, 0x72, 0xc2, 0x7a, 0xc4, 0xfd, - 0x28, 0xee, 0xed, 0xb2, 0xc9, 0xca, 0x98, 0x97, 0x1a, 0x27, 0xe5, 0x09, 0xb8, 0x39, 0xb6, 0x8b, - 0x26, 0x48, 0x40, 0x07, 0x1c, 0x91, 0xe7, 0x22, 0x8e, 0x32, 0xd5, 0xfd, 0x7c, 0x6f, 0x87, 0xee, - 0x7f, 0x51, 0xdf, 0x38, 0xb2, 0x96, 0x26, 0x41, 0x59, 0x4e, 0xb8, 0x0a, 0x16, 0x9d, 0x2e, 0x63, - 0xc4, 0x17, 0x23, 0x51, 0x3f, 0xa5, 0xa3, 0xbe, 0xd8, 0xcc, 0x6e, 0xa3, 0x51, 0xbc, 0xa4, 0x70, - 0x09, 0xa7, 0x8c, 0xb8, 0x09, 0x45, 0x39, 0x4b, 0xf1, 0x61, 0x76, 0x1b, 0x8d, 0xe2, 0xa1, 0x07, - 0x0c, 0xcd, 0x9a, 0x9b, 0xc1, 0x59, 0x45, 0xf9, 0x46, 0xd4, 0x37, 0x8c, 0xe6, 0x74, 0x28, 0xda, - 0x8d, 0xcb, 0xfc, 0xa5, 0x08, 0xc0, 0x3a, 0x11, 0x8c, 0x3a, 0xea, 0x80, 0x5c, 0xca, 0xb4, 0xde, - 0xe5, 0x91, 0xd6, 0x7b, 0x4c, 0x23, 0xd5, 0x04, 0x92, 0x6a, 0xb3, 0xb7, 0xc0, 0x5c, 0xa0, 0x4e, - 0x86, 0xce, 0xcb, 0xc5, 0x29, 0xc7, 0x29, 0xb9, 0xd2, 0x12, 0xa2, 0x06, 0x90, 0xbd, 0x4c, 0x1f, - 0x2d, 0x4d, 0x04, 0xaf, 0x83, 0x72, 0x18, 0xb8, 0x83, 0x8b, 0xe8, 0xed, 0x29, 0x84, 0x1b, 0x81, - 0xcb, 0x33, 0x74, 0xf3, 0xd2, 0x62, 0xb9, 0x8a, 0x14, 0x05, 0xfc, 0x14, 0xcc, 0x0f, 0xa6, 0x26, - 0x95, 0x8d, 0x4a, 0xdd, 0x9e, 0x42, 0x87, 0x34, 0x34, 0x43, 0xb9, 0x20, 0x1b, 0xd9, 0x60, 0x07, - 0x25, 0x74, 0xe6, 0xaf, 0x45, 0xb0, 0xa0, 0x81, 0x71, 0xc1, 0xbf, 0xe6, 0xf8, 0xc5, 0x97, 0xed, - 0x81, 0xc5, 0x2f, 0xa6, 0x3b, 0xd0, 0xf8, 0xc5, 0x94, 0x79, 0xf1, 0xfb, 0xbe, 0x08, 0xe0, 0x78, - 0x41, 0xc0, 0x2f, 0xc1, 0x5c, 0xdc, 0x7a, 0x5e, 0xb1, 0x3d, 0x27, 0x17, 0xa5, 0xee, 0xc4, 0x9a, - 0x55, 0xce, 0x7c, 0x9e, 0xd2, 0x77, 0x63, 0x38, 0x1b, 0x26, 0x33, 0xd7, 0x7a, 0xb2, 0x83, 0x52, - 0x28, 0x48, 0x40, 0x25, 0x96, 0xbe, 0x8b, 0x3b, 0xdd, 0xc1, 0xad, 0x3f, 0xf5, 0x52, 0xb4, 0x06, - 0x6e, 0x5a, 0xb7, 0xba, 0xd8, 0x17, 0x54, 0xec, 0x0c, 0xfb, 0x77, 0x6b, 0x48, 0x85, 0xd2, 0xbc, - 0xe6, 0x8f, 0xa3, 0x11, 0x89, 0xeb, 0xea, 0xbf, 0x18, 0x91, 0x2d, 0xb0, 0xa0, 0xbb, 0xcb, 0xab, - 0x84, 0xe4, 0x84, 0xd6, 0xb2, 0xd0, 0x4c, 0x71, 0xa1, 0x0c, 0xb3, 0xf9, 0x7b, 0x01, 0x1c, 0x1b, - 0x3d, 0xe6, 0x23, 0x26, 0x17, 0x5e, 0xca, 0xe4, 0x47, 0x00, 0xc6, 0x0e, 0xaf, 0xf6, 0x08, 0xc3, - 0x6d, 0x12, 0x1b, 0x5e, 0xdc, 0x97, 0xe1, 0xc9, 0x14, 0xd7, 0x1a, 0x63, 0x44, 0x13, 0xb4, 0x98, - 0x7f, 0x64, 0x9d, 0x88, 0xf3, 0xba, 0x1f, 0x27, 0xbe, 0x06, 0xc7, 0x75, 0x74, 0x0e, 0xc0, 0x8b, - 0x33, 0x5a, 0xd9, 0xf1, 0xe6, 0x38, 0x25, 0x9a, 0xa4, 0xc7, 0xfc, 0xb9, 0x08, 0x4e, 0x4c, 0x6a, - 0x92, 0xb0, 0xa9, 0xdf, 0x5a, 0xb1, 0x17, 0x76, 0xfa, 0xad, 0xf5, 0xa2, 0x6f, 0x18, 0x13, 0x06, - 0xed, 0x01, 0x4d, 0xea, 0x39, 0x76, 0x0f, 0x54, 0x33, 0xb1, 0x4b, 0xdd, 0x5a, 0x7a, 0x6c, 0xfa, - 0x7f, 0xd4, 0x37, 0xaa, 0xad, 0x1c, 0x0c, 0xca, 0x95, 0x96, 0xd3, 0xfb, 0x84, 0xdc, 0xef, 0xaf, - 0x68, 0x4f, 0xee, 0x21, 0xef, 0x8f, 0xc7, 0xe3, 0x15, 0xe7, 0xfe, 0x40, 0xe2, 0xf5, 0x39, 0x38, - 0x9d, 0x4d, 0xd2, 0x78, 0xc0, 0xce, 0x46, 0x7d, 0xe3, 0x74, 0x33, 0x0f, 0x84, 0xf2, 0xe5, 0xf3, - 0x2a, 0xad, 0xf4, 0x9a, 0x2a, 0xed, 0xdb, 0x22, 0x98, 0x55, 0xe3, 0xd9, 0x6b, 0x78, 0x54, 0x5f, - 0xcd, 0x3c, 0xaa, 0xcf, 0x4d, 0x69, 0xaf, 0xca, 0xa2, 0xdc, 0x27, 0xf4, 0x8d, 0x91, 0x27, 0xf4, - 0xf9, 0x5d, 0x99, 0xa6, 0x3f, 0x98, 0x3f, 0x00, 0x87, 0x13, 0x85, 0xf0, 0x1d, 0x79, 0x13, 0xeb, - 0xb9, 0xb2, 0xa0, 0x72, 0x9b, 0xbc, 0xb2, 0x92, 0x81, 0x32, 0x41, 0x98, 0x14, 0x54, 0x52, 0x1a, - 0xf6, 0x26, 0x2c, 0xd1, 0x9c, 0x74, 0x88, 0x23, 0x02, 0xa6, 0xaf, 0x83, 0x04, 0x7d, 0x5b, 0xaf, - 0xa3, 0x04, 0xd1, 0xb8, 0xf0, 0xe4, 0x79, 0x6d, 0xe6, 0xe9, 0xf3, 0xda, 0xcc, 0xb3, 0xe7, 0xb5, - 0x99, 0x6f, 0xa2, 0x5a, 0xe1, 0x49, 0x54, 0x2b, 0x3c, 0x8d, 0x6a, 0x85, 0x67, 0x51, 0xad, 0xf0, - 0x57, 0x54, 0x2b, 0xfc, 0xf0, 0x77, 0x6d, 0xe6, 0xb3, 0x62, 0x6f, 0xe5, 0xdf, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x45, 0xeb, 0xd1, 0x70, 0x8f, 0x13, 0x00, 0x00, + // 1485 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcb, 0x6f, 0x14, 0x47, + 0x13, 0xf7, 0x3e, 0x6c, 0xec, 0x5e, 0x63, 0xf3, 0x35, 0x08, 0x8c, 0xf9, 0xd8, 0xb1, 0xe6, 0x43, + 0x88, 0x2f, 0x09, 0x33, 0xb1, 0x21, 0x88, 0x1c, 0xbd, 0x9b, 0x10, 0x50, 0xbc, 0x60, 0xda, 0x86, + 0x90, 0x87, 0x22, 0xda, 0xb3, 0xcd, 0xba, 0xf1, 0xce, 0xcc, 0xaa, 0xa7, 0x77, 0x85, 0x91, 0x22, + 0x25, 0x87, 0x9c, 0x13, 0x45, 0x4a, 0x94, 0x63, 0xfe, 0x81, 0x9c, 0x39, 0x27, 0x52, 0x24, 0x8e, + 0x1c, 0x72, 0xe0, 0x34, 0x0a, 0x93, 0x63, 0xfe, 0x03, 0x4e, 0x51, 0x3f, 0x76, 0x76, 0x66, 0x77, + 0x67, 0xfd, 0xc0, 0x58, 0xc9, 0x6d, 0x7a, 0xaa, 0xea, 0x57, 0xdd, 0x55, 0xd5, 0xf5, 0x68, 0x50, + 0xd9, 0xba, 0x1a, 0x58, 0xd4, 0xb7, 0xb7, 0xda, 0x1b, 0x84, 0x79, 0x84, 0x93, 0xc0, 0xee, 0x10, + 0xaf, 0xee, 0x33, 0x5b, 0x13, 0x70, 0x8b, 0xda, 0xb8, 0xcd, 0xfd, 0xc0, 0xc1, 0x4d, 0xea, 0x35, + 0xec, 0xce, 0xa2, 0xdd, 0x20, 0x1e, 0x61, 0x98, 0x93, 0xba, 0xd5, 0x62, 0x3e, 0xf7, 0xe1, 0x69, + 0xc5, 0x6a, 0xe1, 0x16, 0xb5, 0x12, 0xac, 0x56, 0x67, 0x71, 0xfe, 0x62, 0x83, 0xf2, 0xcd, 0xf6, + 0x86, 0xe5, 0xf8, 0xae, 0xdd, 0xf0, 0x1b, 0xbe, 0x2d, 0x25, 0x36, 0xda, 0x0f, 0xe4, 0x4a, 0x2e, + 0xe4, 0x97, 0x42, 0x9a, 0x37, 0x13, 0x4a, 0x1d, 0x9f, 0x91, 0x21, 0xda, 0xe6, 0x2f, 0xf7, 0x78, + 0x5c, 0xec, 0x6c, 0x52, 0x8f, 0xb0, 0x6d, 0xbb, 0xb5, 0xd5, 0x90, 0x42, 0x8c, 0x04, 0x7e, 0x9b, + 0x39, 0x64, 0x4f, 0x52, 0x81, 0xed, 0x12, 0x8e, 0x87, 0xe9, 0xb2, 0xb3, 0xa4, 0x58, 0xdb, 0xe3, + 0xd4, 0x1d, 0x54, 0x73, 0x65, 0x27, 0x81, 0xc0, 0xd9, 0x24, 0x2e, 0x1e, 0x90, 0xbb, 0x94, 0x25, + 0xd7, 0xe6, 0xb4, 0x69, 0x53, 0x8f, 0x07, 0x9c, 0xf5, 0x0b, 0x99, 0xdf, 0xe7, 0xc0, 0x99, 0x2a, + 0xf3, 0x83, 0xe0, 0x2e, 0x61, 0x01, 0xf5, 0xbd, 0x5b, 0x1b, 0x0f, 0x89, 0xc3, 0x11, 0x79, 0x40, + 0x18, 0xf1, 0x1c, 0x02, 0x17, 0x40, 0x71, 0x8b, 0x7a, 0xf5, 0xb9, 0xdc, 0x42, 0xee, 0xc2, 0x54, + 0x65, 0xfa, 0x69, 0x68, 0x8c, 0x45, 0xa1, 0x51, 0xfc, 0x90, 0x7a, 0x75, 0x24, 0x29, 0x82, 0xc3, + 0xc3, 0x2e, 0x99, 0xcb, 0xa7, 0x39, 0x6e, 0x62, 0x97, 0x20, 0x49, 0x81, 0x4b, 0x00, 0xe0, 0x16, + 0xd5, 0x0a, 0xe6, 0x0a, 0x92, 0x0f, 0x6a, 0x3e, 0xb0, 0xbc, 0x7a, 0x43, 0x53, 0x50, 0x82, 0xcb, + 0xfc, 0xa1, 0x00, 0x4e, 0xbc, 0xff, 0x88, 0x13, 0xe6, 0xe1, 0x66, 0x8d, 0x70, 0x46, 0x9d, 0x35, + 0xe9, 0x14, 0x01, 0xe6, 0xca, 0xb5, 0x50, 0xa0, 0xb7, 0x15, 0x83, 0xd5, 0x62, 0x0a, 0x4a, 0x70, + 0x41, 0x1f, 0xcc, 0xa8, 0xd5, 0x1a, 0x69, 0x12, 0x87, 0xfb, 0x4c, 0x6e, 0xb6, 0xb4, 0x74, 0xc9, + 0xea, 0x45, 0x5d, 0x6c, 0x32, 0xab, 0xb5, 0xd5, 0x10, 0x3f, 0x02, 0x4b, 0x78, 0xd4, 0xea, 0x2c, + 0x5a, 0x2b, 0x78, 0x83, 0x34, 0xbb, 0xa2, 0x15, 0x18, 0x85, 0xc6, 0x4c, 0x2d, 0x05, 0x87, 0xfa, + 0xe0, 0x21, 0x06, 0x25, 0x8e, 0x59, 0x83, 0xf0, 0xbb, 0xb8, 0xd9, 0x26, 0xf2, 0xc8, 0xa5, 0x25, + 0x6b, 0x94, 0x36, 0xab, 0x1b, 0x75, 0xd6, 0xed, 0x36, 0xf6, 0x38, 0xe5, 0xdb, 0x95, 0xd9, 0x28, + 0x34, 0x4a, 0xeb, 0x3d, 0x18, 0x94, 0xc4, 0x84, 0x1d, 0x00, 0xd5, 0x72, 0xb9, 0x43, 0x18, 0x6e, + 0x10, 0xa5, 0xa9, 0xb8, 0x2f, 0x4d, 0x27, 0xa3, 0xd0, 0x80, 0xeb, 0x03, 0x68, 0x68, 0x88, 0x06, + 0xf3, 0xa7, 0x41, 0xc7, 0x70, 0xcc, 0xdb, 0xc1, 0xbf, 0xc3, 0x31, 0x9b, 0x60, 0xda, 0x69, 0x33, + 0x46, 0xbc, 0x57, 0xf2, 0xcc, 0x09, 0x7d, 0xac, 0xe9, 0x6a, 0x02, 0x0b, 0xa5, 0x90, 0xe1, 0x36, + 0x38, 0xae, 0xd7, 0x07, 0xe0, 0xa0, 0x53, 0x51, 0x68, 0x1c, 0xaf, 0x0e, 0xc2, 0xa1, 0x61, 0x3a, + 0xcc, 0x27, 0x79, 0x70, 0xea, 0xba, 0xcf, 0xe8, 0x63, 0xdf, 0xe3, 0xb8, 0xb9, 0xea, 0xd7, 0x97, + 0x75, 0x42, 0x25, 0x0c, 0xde, 0x07, 0x93, 0xc2, 0x7a, 0x75, 0xcc, 0xb1, 0xf4, 0x51, 0x69, 0xe9, + 0xed, 0xdd, 0xd9, 0x5a, 0x25, 0x86, 0x1a, 0xe1, 0xb8, 0xe7, 0xd5, 0xde, 0x3f, 0x14, 0xa3, 0xc2, + 0x7b, 0xa0, 0x18, 0xb4, 0x88, 0xa3, 0x3d, 0x79, 0xc5, 0xca, 0x4c, 0xec, 0x56, 0xc6, 0x1e, 0xd7, + 0x5a, 0xc4, 0xe9, 0xe5, 0x11, 0xb1, 0x42, 0x12, 0x11, 0xde, 0x07, 0x13, 0x81, 0x8c, 0x35, 0xed, + 0xb6, 0xab, 0xfb, 0xc0, 0x96, 0xf2, 0x95, 0x19, 0x8d, 0x3e, 0xa1, 0xd6, 0x48, 0xe3, 0x9a, 0x5f, + 0x17, 0xc0, 0x42, 0x86, 0x64, 0xd5, 0xf7, 0xea, 0x94, 0x53, 0xdf, 0x83, 0xd7, 0x41, 0x91, 0x6f, + 0xb7, 0xba, 0x21, 0x7e, 0xb9, 0xbb, 0xd1, 0xf5, 0xed, 0x16, 0x79, 0x19, 0x1a, 0xe7, 0x76, 0x92, + 0x17, 0x7c, 0x48, 0x22, 0xc0, 0x95, 0xf8, 0x40, 0xf9, 0x14, 0x96, 0xde, 0xd6, 0xcb, 0xd0, 0x18, + 0x52, 0xcc, 0xac, 0x18, 0x29, 0xbd, 0x79, 0x91, 0x11, 0x9a, 0x38, 0xe0, 0xeb, 0x0c, 0x7b, 0x81, + 0xd2, 0x44, 0xdd, 0x6e, 0x84, 0xbf, 0xb1, 0x3b, 0x27, 0x0b, 0x89, 0xca, 0xbc, 0xde, 0x05, 0x5c, + 0x19, 0x40, 0x43, 0x43, 0x34, 0xc0, 0xf3, 0x60, 0x82, 0x11, 0x1c, 0xf8, 0x9e, 0x0c, 0xee, 0xa9, + 0x9e, 0x71, 0x91, 0xfc, 0x8b, 0x34, 0x15, 0xfe, 0x1f, 0x1c, 0x71, 0x49, 0x10, 0xe0, 0x06, 0x99, + 0x1b, 0x97, 0x8c, 0xb3, 0x9a, 0xf1, 0x48, 0x4d, 0xfd, 0x46, 0x5d, 0xba, 0xf9, 0x7b, 0x0e, 0x9c, + 0xc9, 0xb0, 0xe3, 0x0a, 0x0d, 0x38, 0xfc, 0x6c, 0x20, 0x8a, 0xad, 0x5d, 0x66, 0x0c, 0x1a, 0xa8, + 0x18, 0x3e, 0xa6, 0x75, 0x4f, 0x76, 0xff, 0x24, 0x22, 0xf8, 0x23, 0x30, 0x4e, 0x39, 0x71, 0x85, + 0x57, 0x0a, 0x17, 0x4a, 0x4b, 0x4b, 0x7b, 0x0f, 0xb3, 0xca, 0x51, 0x0d, 0x3f, 0x7e, 0x43, 0x00, + 0x21, 0x85, 0x67, 0xfe, 0x95, 0xcf, 0x3c, 0x96, 0x08, 0x73, 0xd8, 0x01, 0x33, 0x72, 0xa5, 0x52, + 0x31, 0x22, 0x0f, 0xf4, 0xe1, 0x46, 0x5d, 0xa2, 0x11, 0xc5, 0xbb, 0x72, 0x52, 0xef, 0x62, 0x66, + 0x2d, 0x85, 0x8a, 0xfa, 0xb4, 0xc0, 0x45, 0x50, 0x72, 0xa9, 0x87, 0x48, 0xab, 0x49, 0x1d, 0xac, + 0x82, 0x71, 0x5c, 0x95, 0x9f, 0x5a, 0xef, 0x37, 0x4a, 0xf2, 0xc0, 0x77, 0x40, 0xc9, 0xc5, 0x8f, + 0x62, 0x91, 0x82, 0x14, 0x39, 0xae, 0xf5, 0x95, 0x6a, 0x3d, 0x12, 0x4a, 0xf2, 0xc1, 0x87, 0xa0, + 0xac, 0x6a, 0x4a, 0x75, 0xf5, 0xce, 0x1d, 0x4e, 0x9b, 0xf4, 0x31, 0x16, 0x71, 0xb4, 0x4a, 0x98, + 0x43, 0x3c, 0x2e, 0x42, 0xa3, 0x28, 0x91, 0xcc, 0x28, 0x34, 0xca, 0xeb, 0x23, 0x39, 0xd1, 0x0e, + 0x48, 0xe6, 0x2f, 0x05, 0x70, 0x76, 0x64, 0x1a, 0x80, 0xd7, 0x00, 0xf4, 0x37, 0x02, 0xc2, 0x3a, + 0xa4, 0xfe, 0x81, 0xea, 0x8b, 0x44, 0x83, 0x22, 0x6c, 0x5e, 0x50, 0x35, 0xf1, 0xd6, 0x00, 0x15, + 0x0d, 0x91, 0x80, 0x0e, 0x38, 0x2a, 0xee, 0x85, 0xb2, 0x32, 0xd5, 0xbd, 0xd0, 0xde, 0x2e, 0xdd, + 0x7f, 0xa2, 0xd0, 0x38, 0xba, 0x92, 0x04, 0x41, 0x69, 0x4c, 0xb8, 0x0c, 0x66, 0x75, 0xb2, 0xef, + 0xb3, 0xfa, 0x29, 0x6d, 0xf5, 0xd9, 0x6a, 0x9a, 0x8c, 0xfa, 0xf9, 0x05, 0x44, 0x9d, 0x04, 0x94, + 0x91, 0x7a, 0x0c, 0x51, 0x4c, 0x43, 0xbc, 0x97, 0x26, 0xa3, 0x7e, 0x7e, 0xe8, 0x02, 0x43, 0xa3, + 0x66, 0x7a, 0x70, 0x5c, 0x42, 0xfe, 0x2f, 0x0a, 0x0d, 0xa3, 0x3a, 0x9a, 0x15, 0xed, 0x84, 0x25, + 0xda, 0x40, 0xdd, 0x3b, 0xc8, 0x0b, 0x72, 0x39, 0x95, 0x7a, 0x17, 0xfa, 0x52, 0xef, 0xb1, 0x64, + 0xa3, 0x98, 0x48, 0xb3, 0xb7, 0xc1, 0x84, 0x2f, 0x6f, 0x86, 0xf6, 0xcb, 0xc5, 0x11, 0xd7, 0x29, + 0x2e, 0x69, 0x31, 0x50, 0x05, 0x88, 0x5c, 0xa6, 0xaf, 0x96, 0x06, 0x82, 0x37, 0x40, 0xb1, 0xe5, + 0xd7, 0xbb, 0x85, 0xe8, 0xcd, 0x11, 0x80, 0xab, 0x7e, 0x3d, 0x48, 0xc1, 0x4d, 0x8a, 0x1d, 0x8b, + 0xbf, 0x48, 0x42, 0xc0, 0x8f, 0xc1, 0x64, 0xb7, 0xe0, 0xeb, 0xee, 0xc0, 0x1e, 0x01, 0x87, 0x34, + 0x6b, 0x0a, 0x72, 0x5a, 0x24, 0xb2, 0x2e, 0x05, 0xc5, 0x70, 0x02, 0x9a, 0xe8, 0x56, 0x4d, 0x7a, + 0x65, 0x34, 0xf4, 0xb0, 0x76, 0x5b, 0x41, 0x77, 0x29, 0x28, 0x86, 0x33, 0x7f, 0x2c, 0x80, 0xe9, + 0x54, 0xfb, 0x77, 0xc8, 0xae, 0x51, 0x75, 0xfc, 0xc0, 0x5c, 0xa3, 0xe0, 0x0e, 0xd4, 0x35, 0x0a, + 0xf2, 0xb5, 0xb8, 0x26, 0x01, 0x3d, 0xc4, 0x35, 0xdf, 0xe4, 0x01, 0x1c, 0x0c, 0x63, 0xf8, 0x39, + 0x98, 0x50, 0x09, 0xf3, 0x15, 0x8b, 0x4a, 0x5c, 0xde, 0x75, 0xfd, 0xd0, 0xa8, 0x7d, 0xfd, 0x7f, + 0x7e, 0x57, 0xfd, 0x3f, 0x39, 0x88, 0x39, 0x29, 0xae, 0x3a, 0x59, 0xb3, 0x92, 0xf9, 0x5d, 0xbf, + 0x45, 0x54, 0xc8, 0xfe, 0x13, 0x2d, 0x72, 0x68, 0x03, 0x8a, 0xf9, 0x6b, 0x0e, 0x1c, 0xeb, 0x4f, + 0x4e, 0xfb, 0x1a, 0xe2, 0x1e, 0x0f, 0x9d, 0x44, 0xf3, 0xfb, 0xda, 0x78, 0xdc, 0x7b, 0xee, 0x72, + 0x1a, 0xfd, 0x2d, 0x7d, 0x88, 0xfd, 0x4f, 0xa2, 0x5f, 0x0c, 0x1f, 0xd7, 0xf6, 0x77, 0x8a, 0x33, + 0x5a, 0xd9, 0xee, 0x47, 0xb6, 0x9f, 0xf3, 0xe0, 0xc4, 0xb0, 0xd4, 0x0e, 0xab, 0xfa, 0x75, 0x45, + 0x9d, 0xc2, 0x4e, 0xbe, 0xae, 0xbc, 0x0c, 0x0d, 0x63, 0xc8, 0x78, 0xd0, 0x85, 0x49, 0x3c, 0xc0, + 0xdc, 0x03, 0x73, 0x29, 0xdb, 0x25, 0x6a, 0xad, 0x6e, 0xf6, 0xfe, 0x1b, 0x85, 0xc6, 0xdc, 0x7a, + 0x06, 0x0f, 0xca, 0x94, 0xce, 0x78, 0x85, 0x28, 0xbc, 0xf6, 0x57, 0x88, 0x27, 0x83, 0xf6, 0x52, + 0xbe, 0x3f, 0x10, 0x7b, 0x7d, 0x0a, 0x4e, 0xa7, 0x9d, 0x34, 0x68, 0xb0, 0xb3, 0x51, 0x68, 0x9c, + 0xae, 0x66, 0x31, 0xa1, 0x6c, 0xf9, 0xac, 0x48, 0x2b, 0x1c, 0x52, 0xa4, 0x7d, 0x95, 0x07, 0xe3, + 0xb2, 0xa9, 0x3c, 0x84, 0xa7, 0x80, 0x6b, 0xa9, 0xa7, 0x80, 0x73, 0x23, 0xd2, 0xab, 0xdc, 0x51, + 0xe6, 0xe0, 0x7f, 0xb3, 0x6f, 0xf0, 0x3f, 0xbf, 0x23, 0xd2, 0xe8, 0x31, 0xff, 0x5d, 0x30, 0x15, + 0x2b, 0x84, 0x6f, 0x89, 0x22, 0xaf, 0xbb, 0xe1, 0x9c, 0xf4, 0x6d, 0x3c, 0x1b, 0xc6, 0x6d, 0x70, + 0xcc, 0x61, 0x52, 0x50, 0x4a, 0x68, 0xd8, 0x9b, 0xb0, 0xe0, 0x0e, 0x92, 0x0f, 0x5d, 0x53, 0x3d, + 0xee, 0xf8, 0xc5, 0x2a, 0xe6, 0xa8, 0x5c, 0x78, 0xfa, 0xa2, 0x3c, 0xf6, 0xec, 0x45, 0x79, 0xec, + 0xf9, 0x8b, 0xf2, 0xd8, 0x97, 0x51, 0x39, 0xf7, 0x34, 0x2a, 0xe7, 0x9e, 0x45, 0xe5, 0xdc, 0xf3, + 0xa8, 0x9c, 0xfb, 0x23, 0x2a, 0xe7, 0xbe, 0xfd, 0xb3, 0x3c, 0xf6, 0x49, 0xbe, 0xb3, 0xf8, 0x77, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x61, 0x55, 0xfd, 0xeb, 0x81, 0x17, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/autoscaling/v1/generated.proto b/vendor/k8s.io/api/autoscaling/v1/generated.proto index 33eecf4d..64f01f47 100644 --- a/vendor/k8s.io/api/autoscaling/v1/generated.proto +++ b/vendor/k8s.io/api/autoscaling/v1/generated.proto @@ -44,6 +44,49 @@ message CrossVersionObjectReference { optional string apiVersion = 3; } +// 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). +message ExternalMetricSource { + // metricName is the name of the metric in question. + optional string metricName = 1; + + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2; + + // targetValue is the target value of the metric (as a quantity). + // Mutually exclusive with TargetAverageValue. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3; + + // targetAverageValue is the target per-pod value of global metric (as a quantity). + // Mutually exclusive with TargetValue. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4; +} + +// ExternalMetricStatus indicates the current value of a global metric +// not associated with any Kubernetes object. +message ExternalMetricStatus { + // metricName is the name of a metric used for autoscaling in + // metric system. + optional string metricName = 1; + + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2; + + // currentValue is the current value of the metric (as a quantity) + optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3; + + // currentAverageValue is the current value of metric averaged over autoscaled pods. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4; +} + // configuration of a horizontal pod autoscaler. message HorizontalPodAutoscaler { // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata @@ -160,6 +203,14 @@ message MetricSpec { // to normal per-pod metrics using the "pods" source. // +optional optional ResourceMetricSource resource = 4; + + // 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). + // +optional + optional ExternalMetricSource external = 5; } // MetricStatus describes the last-read state of a single metric. @@ -186,6 +237,14 @@ message MetricStatus { // to normal per-pod metrics using the "pods" source. // +optional optional ResourceMetricStatus resource = 4; + + // 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). + // +optional + optional ExternalMetricStatus external = 5; } // ObjectMetricSource indicates how to scale on a metric describing a diff --git a/vendor/k8s.io/api/autoscaling/v1/types.go b/vendor/k8s.io/api/autoscaling/v1/types.go index eeadaf88..344af774 100644 --- a/vendor/k8s.io/api/autoscaling/v1/types.go +++ b/vendor/k8s.io/api/autoscaling/v1/types.go @@ -161,6 +161,12 @@ var ( // Kubernetes, and have special scaling options on top of those available // to normal per-pod metrics (the "pods" source). ResourceMetricSourceType MetricSourceType = "Resource" + // ExternalMetricSourceType is 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). + ExternalMetricSourceType MetricSourceType = "External" ) // MetricSpec specifies how to scale based on a single metric @@ -186,6 +192,13 @@ type MetricSpec struct { // to normal per-pod metrics using the "pods" source. // +optional Resource *ResourceMetricSource `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` + // 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). + // +optional + External *ExternalMetricSource `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"` } // ObjectMetricSource indicates how to scale on a metric describing a @@ -234,6 +247,26 @@ type ResourceMetricSource struct { TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty" protobuf:"bytes,3,opt,name=targetAverageValue"` } +// 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). +type ExternalMetricSource struct { + // metricName is the name of the metric in question. + MetricName string `json:"metricName" protobuf:"bytes,1,name=metricName"` + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + MetricSelector *metav1.LabelSelector `json:"metricSelector,omitempty" protobuf:"bytes,2,opt,name=metricSelector"` + // targetValue is the target value of the metric (as a quantity). + // Mutually exclusive with TargetAverageValue. + // +optional + TargetValue *resource.Quantity `json:"targetValue,omitempty" protobuf:"bytes,3,opt,name=targetValue"` + // targetAverageValue is the target per-pod value of global metric (as a quantity). + // Mutually exclusive with TargetValue. + // +optional + TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty" protobuf:"bytes,4,opt,name=targetAverageValue"` +} + // MetricStatus describes the last-read state of a single metric. type MetricStatus struct { // type is the type of metric source. It will be one of "Object", @@ -256,6 +289,13 @@ type MetricStatus struct { // to normal per-pod metrics using the "pods" source. // +optional Resource *ResourceMetricStatus `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` + // 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). + // +optional + External *ExternalMetricStatus `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"` } // HorizontalPodAutoscalerConditionType are the valid conditions of @@ -337,3 +377,20 @@ type ResourceMetricStatus struct { // It will always be set, regardless of the corresponding metric specification. CurrentAverageValue resource.Quantity `json:"currentAverageValue" protobuf:"bytes,3,name=currentAverageValue"` } + +// ExternalMetricStatus indicates the current value of a global metric +// not associated with any Kubernetes object. +type ExternalMetricStatus struct { + // metricName is the name of a metric used for autoscaling in + // metric system. + MetricName string `json:"metricName" protobuf:"bytes,1,name=metricName"` + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + MetricSelector *metav1.LabelSelector `json:"metricSelector,omitempty" protobuf:"bytes,2,opt,name=metricSelector"` + // currentValue is the current value of the metric (as a quantity) + CurrentValue resource.Quantity `json:"currentValue" protobuf:"bytes,3,name=currentValue"` + // currentAverageValue is the current value of metric averaged over autoscaled pods. + // +optional + CurrentAverageValue *resource.Quantity `json:"currentAverageValue,omitempty" protobuf:"bytes,4,opt,name=currentAverageValue"` +} diff --git a/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go index 5506b76f..ec364f53 100644 --- a/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go @@ -38,6 +38,30 @@ func (CrossVersionObjectReference) SwaggerDoc() map[string]string { return map_CrossVersionObjectReference } +var map_ExternalMetricSource = map[string]string{ + "": "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).", + "metricName": "metricName is the name of the metric in question.", + "metricSelector": "metricSelector is used to identify a specific time series within a given metric.", + "targetValue": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.", + "targetAverageValue": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.", +} + +func (ExternalMetricSource) SwaggerDoc() map[string]string { + return map_ExternalMetricSource +} + +var map_ExternalMetricStatus = map[string]string{ + "": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", + "metricName": "metricName is the name of a metric used for autoscaling in metric system.", + "metricSelector": "metricSelector is used to identify a specific time series within a given metric.", + "currentValue": "currentValue is the current value of the metric (as a quantity)", + "currentAverageValue": "currentAverageValue is the current value of metric averaged over autoscaled pods.", +} + +func (ExternalMetricStatus) SwaggerDoc() map[string]string { + return map_ExternalMetricStatus +} + var map_HorizontalPodAutoscaler = map[string]string{ "": "configuration of a horizontal pod autoscaler.", "metadata": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -103,6 +127,7 @@ var map_MetricSpec = map[string]string{ "object": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", "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.", "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.", + "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).", } func (MetricSpec) SwaggerDoc() map[string]string { @@ -115,6 +140,7 @@ var map_MetricStatus = map[string]string{ "object": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", "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.", "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.", + "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).", } func (MetricStatus) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go index 3622cf45..46f242c8 100644 --- a/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go @@ -42,6 +42,84 @@ func (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) { + *out = *in + if in.MetricSelector != nil { + in, out := &in.MetricSelector, &out.MetricSelector + if *in == nil { + *out = nil + } else { + *out = new(meta_v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + if in.TargetValue != nil { + in, out := &in.TargetValue, &out.TargetValue + if *in == nil { + *out = nil + } else { + *out = new(resource.Quantity) + **out = (*in).DeepCopy() + } + } + if in.TargetAverageValue != nil { + in, out := &in.TargetAverageValue, &out.TargetAverageValue + if *in == nil { + *out = nil + } else { + *out = new(resource.Quantity) + **out = (*in).DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource. +func (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource { + if in == nil { + return nil + } + out := new(ExternalMetricSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) { + *out = *in + if in.MetricSelector != nil { + in, out := &in.MetricSelector, &out.MetricSelector + if *in == nil { + *out = nil + } else { + *out = new(meta_v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + out.CurrentValue = in.CurrentValue.DeepCopy() + if in.CurrentAverageValue != nil { + in, out := &in.CurrentAverageValue, &out.CurrentAverageValue + if *in == nil { + *out = nil + } else { + *out = new(resource.Quantity) + **out = (*in).DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus. +func (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus { + if in == nil { + return nil + } + out := new(ExternalMetricStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) { *out = *in @@ -230,6 +308,15 @@ func (in *MetricSpec) DeepCopyInto(out *MetricSpec) { (*in).DeepCopyInto(*out) } } + if in.External != nil { + in, out := &in.External, &out.External + if *in == nil { + *out = nil + } else { + *out = new(ExternalMetricSource) + (*in).DeepCopyInto(*out) + } + } return } @@ -273,6 +360,15 @@ func (in *MetricStatus) DeepCopyInto(out *MetricStatus) { (*in).DeepCopyInto(*out) } } + if in.External != nil { + in, out := &in.External, &out.External + if *in == nil { + *out = nil + } else { + *out = new(ExternalMetricStatus) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go b/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go index 908c049e..784e4be2 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go @@ -26,6 +26,8 @@ limitations under the License. It has these top-level messages: CrossVersionObjectReference + ExternalMetricSource + ExternalMetricStatus HorizontalPodAutoscaler HorizontalPodAutoscalerCondition HorizontalPodAutoscalerList @@ -73,68 +75,78 @@ func (*CrossVersionObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (m *ExternalMetricSource) Reset() { *m = ExternalMetricSource{} } +func (*ExternalMetricSource) ProtoMessage() {} +func (*ExternalMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *ExternalMetricStatus) Reset() { *m = ExternalMetricStatus{} } +func (*ExternalMetricStatus) ProtoMessage() {} +func (*ExternalMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + func (m *HorizontalPodAutoscaler) Reset() { *m = HorizontalPodAutoscaler{} } func (*HorizontalPodAutoscaler) ProtoMessage() {} -func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *HorizontalPodAutoscalerCondition) Reset() { *m = HorizontalPodAutoscalerCondition{} } func (*HorizontalPodAutoscalerCondition) ProtoMessage() {} func (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} + return fileDescriptorGenerated, []int{4} } func (m *HorizontalPodAutoscalerList) Reset() { *m = HorizontalPodAutoscalerList{} } func (*HorizontalPodAutoscalerList) ProtoMessage() {} func (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} + return fileDescriptorGenerated, []int{5} } func (m *HorizontalPodAutoscalerSpec) Reset() { *m = HorizontalPodAutoscalerSpec{} } func (*HorizontalPodAutoscalerSpec) ProtoMessage() {} func (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{4} + return fileDescriptorGenerated, []int{6} } func (m *HorizontalPodAutoscalerStatus) Reset() { *m = HorizontalPodAutoscalerStatus{} } func (*HorizontalPodAutoscalerStatus) ProtoMessage() {} func (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{5} + return fileDescriptorGenerated, []int{7} } func (m *MetricSpec) Reset() { *m = MetricSpec{} } func (*MetricSpec) ProtoMessage() {} -func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *MetricStatus) Reset() { *m = MetricStatus{} } func (*MetricStatus) ProtoMessage() {} -func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *ObjectMetricSource) Reset() { *m = ObjectMetricSource{} } func (*ObjectMetricSource) ProtoMessage() {} -func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *ObjectMetricStatus) Reset() { *m = ObjectMetricStatus{} } func (*ObjectMetricStatus) ProtoMessage() {} -func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *PodsMetricSource) Reset() { *m = PodsMetricSource{} } func (*PodsMetricSource) ProtoMessage() {} -func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *PodsMetricStatus) Reset() { *m = PodsMetricStatus{} } func (*PodsMetricStatus) ProtoMessage() {} -func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *ResourceMetricSource) Reset() { *m = ResourceMetricSource{} } func (*ResourceMetricSource) ProtoMessage() {} -func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ResourceMetricStatus) Reset() { *m = ResourceMetricStatus{} } func (*ResourceMetricStatus) ProtoMessage() {} -func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func init() { proto.RegisterType((*CrossVersionObjectReference)(nil), "k8s.io.api.autoscaling.v2beta1.CrossVersionObjectReference") + proto.RegisterType((*ExternalMetricSource)(nil), "k8s.io.api.autoscaling.v2beta1.ExternalMetricSource") + proto.RegisterType((*ExternalMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta1.ExternalMetricStatus") proto.RegisterType((*HorizontalPodAutoscaler)(nil), "k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscaler") proto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), "k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition") proto.RegisterType((*HorizontalPodAutoscalerList)(nil), "k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerList") @@ -179,6 +191,108 @@ func (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) + i += copy(dAtA[i:], m.MetricName) + if m.MetricSelector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MetricSelector.Size())) + n1, err := m.MetricSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.TargetValue != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) + n2, err := m.TargetValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.TargetAverageValue != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) + n3, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + return i, nil +} + +func (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) + i += copy(dAtA[i:], m.MetricName) + if m.MetricSelector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MetricSelector.Size())) + n4, err := m.MetricSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) + n5, err := m.CurrentValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + if m.CurrentAverageValue != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) + n6, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + return i, nil +} + func (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -197,27 +311,27 @@ func (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n1 + i += n7 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n2, err := m.Spec.MarshalTo(dAtA[i:]) + n8, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n2 + i += n8 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n3, err := m.Status.MarshalTo(dAtA[i:]) + n9, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n9 return i, nil } @@ -247,11 +361,11 @@ func (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n4, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n10, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n10 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -281,11 +395,11 @@ func (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n5, err := m.ListMeta.MarshalTo(dAtA[i:]) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n11 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -319,11 +433,11 @@ func (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleTargetRef.Size())) - n6, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) + n12, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n12 if m.MinReplicas != nil { dAtA[i] = 0x10 i++ @@ -371,11 +485,11 @@ func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastScaleTime.Size())) - n7, err := m.LastScaleTime.MarshalTo(dAtA[i:]) + n13, err := m.LastScaleTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n13 } dAtA[i] = 0x18 i++ @@ -433,31 +547,41 @@ func (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n8, err := m.Object.MarshalTo(dAtA[i:]) + n14, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n14 } if m.Pods != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n9, err := m.Pods.MarshalTo(dAtA[i:]) + n15, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n15 } if m.Resource != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n10, err := m.Resource.MarshalTo(dAtA[i:]) + n16, err := m.Resource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n16 + } + if m.External != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) + n17, err := m.External.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 } return i, nil } @@ -485,31 +609,41 @@ func (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) - n11, err := m.Object.MarshalTo(dAtA[i:]) + n18, err := m.Object.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n18 } if m.Pods != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) - n12, err := m.Pods.MarshalTo(dAtA[i:]) + n19, err := m.Pods.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n19 } if m.Resource != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) - n13, err := m.Resource.MarshalTo(dAtA[i:]) + n20, err := m.Resource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n20 + } + if m.External != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) + n21, err := m.External.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 } return i, nil } @@ -532,11 +666,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n14, err := m.Target.MarshalTo(dAtA[i:]) + n22, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n22 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -544,11 +678,11 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n15, err := m.TargetValue.MarshalTo(dAtA[i:]) + n23, err := m.TargetValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n23 return i, nil } @@ -570,11 +704,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n16, err := m.Target.MarshalTo(dAtA[i:]) + n24, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n24 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -582,11 +716,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n17, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n25, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n25 return i, nil } @@ -612,11 +746,11 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n18, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n26, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n26 return i, nil } @@ -642,11 +776,11 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n19, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n27, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n27 return i, nil } @@ -678,11 +812,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n20, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n28, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n28 } return i, nil } @@ -714,11 +848,11 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n21, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n29, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n29 return i, nil } @@ -761,6 +895,44 @@ func (m *CrossVersionObjectReference) Size() (n int) { return n } +func (m *ExternalMetricSource) Size() (n int) { + var l int + _ = l + l = len(m.MetricName) + n += 1 + l + sovGenerated(uint64(l)) + if m.MetricSelector != nil { + l = m.MetricSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TargetValue != nil { + l = m.TargetValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TargetAverageValue != nil { + l = m.TargetAverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ExternalMetricStatus) Size() (n int) { + var l int + _ = l + l = len(m.MetricName) + n += 1 + l + sovGenerated(uint64(l)) + if m.MetricSelector != nil { + l = m.MetricSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.CurrentValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.CurrentAverageValue != nil { + l = m.CurrentAverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *HorizontalPodAutoscaler) Size() (n int) { var l int _ = l @@ -865,6 +1037,10 @@ func (m *MetricSpec) Size() (n int) { l = m.Resource.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.External != nil { + l = m.External.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -885,6 +1061,10 @@ func (m *MetricStatus) Size() (n int) { l = m.Resource.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.External != nil { + l = m.External.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -985,6 +1165,32 @@ func (this *CrossVersionObjectReference) String() string { }, "") return s } +func (this *ExternalMetricSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExternalMetricSource{`, + `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, + `MetricSelector:` + strings.Replace(fmt.Sprintf("%v", this.MetricSelector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `TargetValue:` + strings.Replace(fmt.Sprintf("%v", this.TargetValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `TargetAverageValue:` + strings.Replace(fmt.Sprintf("%v", this.TargetAverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ExternalMetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExternalMetricStatus{`, + `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, + `MetricSelector:` + strings.Replace(fmt.Sprintf("%v", this.MetricSelector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `CurrentValue:` + strings.Replace(strings.Replace(this.CurrentValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `CurrentAverageValue:` + strings.Replace(fmt.Sprintf("%v", this.CurrentAverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} func (this *HorizontalPodAutoscaler) String() string { if this == nil { return "nil" @@ -1059,6 +1265,7 @@ func (this *MetricSpec) String() string { `Object:` + strings.Replace(fmt.Sprintf("%v", this.Object), "ObjectMetricSource", "ObjectMetricSource", 1) + `,`, `Pods:` + strings.Replace(fmt.Sprintf("%v", this.Pods), "PodsMetricSource", "PodsMetricSource", 1) + `,`, `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "ResourceMetricSource", "ResourceMetricSource", 1) + `,`, + `External:` + strings.Replace(fmt.Sprintf("%v", this.External), "ExternalMetricSource", "ExternalMetricSource", 1) + `,`, `}`, }, "") return s @@ -1072,6 +1279,7 @@ func (this *MetricStatus) String() string { `Object:` + strings.Replace(fmt.Sprintf("%v", this.Object), "ObjectMetricStatus", "ObjectMetricStatus", 1) + `,`, `Pods:` + strings.Replace(fmt.Sprintf("%v", this.Pods), "PodsMetricStatus", "PodsMetricStatus", 1) + `,`, `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "ResourceMetricStatus", "ResourceMetricStatus", 1) + `,`, + `External:` + strings.Replace(fmt.Sprintf("%v", this.External), "ExternalMetricStatus", "ExternalMetricStatus", 1) + `,`, `}`, }, "") return s @@ -1291,6 +1499,359 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { } return nil } +func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MetricSelector == nil { + m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetValue == nil { + m.TargetValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetAverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetAverageValue == nil { + m.TargetAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MetricSelector == nil { + m.MetricSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentAverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CurrentAverageValue == nil { + m.CurrentAverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2248,6 +2809,39 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.External == nil { + m.External = &ExternalMetricSource{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2426,6 +3020,39 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.External == nil { + m.External = &ExternalMetricStatus{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3314,88 +3941,96 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1316 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0x8f, 0x1d, 0x27, 0x0d, 0xe3, 0x34, 0x29, 0xd3, 0xaa, 0x75, 0x53, 0x6a, 0x47, 0x2b, 0x84, - 0x4a, 0x45, 0x77, 0x5b, 0x13, 0x3e, 0x24, 0x84, 0x44, 0x6c, 0x44, 0x5b, 0x91, 0xb4, 0x65, 0x9a, - 0x56, 0x08, 0x0a, 0x62, 0xb2, 0x3b, 0x75, 0x86, 0x78, 0x3f, 0x34, 0x33, 0xb6, 0x48, 0x11, 0x12, - 0x17, 0xee, 0x1c, 0x40, 0xfc, 0x15, 0x5c, 0xe1, 0x0c, 0x12, 0x52, 0x85, 0x38, 0xf4, 0x58, 0x84, - 0x64, 0x51, 0xf3, 0x5f, 0xf4, 0x84, 0xe6, 0xc3, 0xfb, 0x61, 0x7b, 0xe3, 0xc4, 0x44, 0xc0, 0xcd, - 0x3b, 0xef, 0xf7, 0x7e, 0xef, 0xbd, 0xdf, 0xbc, 0x79, 0x33, 0x06, 0x57, 0x77, 0x5f, 0xe7, 0x36, - 0x0d, 0x9d, 0xdd, 0xce, 0x36, 0x61, 0x01, 0x11, 0x84, 0x3b, 0x5d, 0x12, 0x78, 0x21, 0x73, 0x8c, - 0x01, 0x47, 0xd4, 0xc1, 0x1d, 0x11, 0x72, 0x17, 0xb7, 0x69, 0xd0, 0x72, 0xba, 0xf5, 0x6d, 0x22, - 0xf0, 0x15, 0xa7, 0x45, 0x02, 0xc2, 0xb0, 0x20, 0x9e, 0x1d, 0xb1, 0x50, 0x84, 0xb0, 0xaa, 0xf1, - 0x36, 0x8e, 0xa8, 0x9d, 0xc2, 0xdb, 0x06, 0xbf, 0x72, 0xa9, 0x45, 0xc5, 0x4e, 0x67, 0xdb, 0x76, - 0x43, 0xdf, 0x69, 0x85, 0xad, 0xd0, 0x51, 0x6e, 0xdb, 0x9d, 0xfb, 0xea, 0x4b, 0x7d, 0xa8, 0x5f, - 0x9a, 0x6e, 0xc5, 0x4a, 0x85, 0x77, 0x43, 0x46, 0x9c, 0xee, 0x48, 0xc8, 0x95, 0xb5, 0x04, 0xe3, - 0x63, 0x77, 0x87, 0x06, 0x84, 0xed, 0x39, 0xd1, 0x6e, 0x4b, 0x39, 0x31, 0xc2, 0xc3, 0x0e, 0x73, - 0xc9, 0xa1, 0xbc, 0xb8, 0xe3, 0x13, 0x81, 0xc7, 0xc5, 0x72, 0xf2, 0xbc, 0x58, 0x27, 0x10, 0xd4, - 0x1f, 0x0d, 0xf3, 0xea, 0x24, 0x07, 0xee, 0xee, 0x10, 0x1f, 0x8f, 0xf8, 0xbd, 0x9c, 0xe7, 0xd7, - 0x11, 0xb4, 0xed, 0xd0, 0x40, 0x70, 0xc1, 0x86, 0x9d, 0xac, 0x6f, 0x0b, 0xe0, 0x5c, 0x93, 0x85, - 0x9c, 0xdf, 0x25, 0x8c, 0xd3, 0x30, 0xb8, 0xb9, 0xfd, 0x29, 0x71, 0x05, 0x22, 0xf7, 0x09, 0x23, - 0x81, 0x4b, 0xe0, 0x2a, 0x28, 0xed, 0xd2, 0xc0, 0xab, 0x14, 0x56, 0x0b, 0x17, 0x9e, 0x69, 0x2c, - 0x3e, 0xec, 0xd5, 0x66, 0xfa, 0xbd, 0x5a, 0xe9, 0x5d, 0x1a, 0x78, 0x48, 0x59, 0x24, 0x22, 0xc0, - 0x3e, 0xa9, 0x14, 0xb3, 0x88, 0x1b, 0xd8, 0x27, 0x48, 0x59, 0x60, 0x1d, 0x00, 0x1c, 0x51, 0x13, - 0xa0, 0x32, 0xab, 0x70, 0xd0, 0xe0, 0xc0, 0xfa, 0xad, 0xeb, 0xc6, 0x82, 0x52, 0x28, 0xeb, 0xa7, - 0x22, 0x38, 0x73, 0x2d, 0x64, 0xf4, 0x41, 0x18, 0x08, 0xdc, 0xbe, 0x15, 0x7a, 0xeb, 0xa6, 0x33, - 0x08, 0x83, 0x9f, 0x80, 0x05, 0x29, 0xb6, 0x87, 0x05, 0x56, 0x79, 0x95, 0xeb, 0x97, 0xed, 0xa4, - 0x87, 0xe2, 0xda, 0xed, 0x68, 0xb7, 0x25, 0x17, 0xb8, 0x2d, 0xd1, 0x76, 0xf7, 0x8a, 0xad, 0x8b, - 0xdb, 0x24, 0x02, 0x27, 0xf1, 0x93, 0x35, 0x14, 0xb3, 0xc2, 0x8f, 0x40, 0x89, 0x47, 0xc4, 0x55, - 0x35, 0x95, 0xeb, 0x6f, 0xd8, 0xfb, 0x77, 0xa8, 0x9d, 0x93, 0xe8, 0xed, 0x88, 0xb8, 0x89, 0x20, - 0xf2, 0x0b, 0x29, 0x5a, 0x48, 0xc0, 0x3c, 0x17, 0x58, 0x74, 0xb8, 0x12, 0xa3, 0x5c, 0x7f, 0x73, - 0xda, 0x00, 0x8a, 0xa4, 0xb1, 0x64, 0x42, 0xcc, 0xeb, 0x6f, 0x64, 0xc8, 0xad, 0xaf, 0x66, 0xc1, - 0x6a, 0x8e, 0x67, 0x33, 0x0c, 0x3c, 0x2a, 0x68, 0x18, 0xc0, 0x6b, 0xa0, 0x24, 0xf6, 0x22, 0x62, - 0x36, 0x78, 0x6d, 0x90, 0xed, 0xd6, 0x5e, 0x44, 0x9e, 0xf6, 0x6a, 0xcf, 0x4f, 0xf2, 0x97, 0x38, - 0xa4, 0x18, 0xe0, 0x46, 0x5c, 0x55, 0x31, 0xc3, 0x65, 0xd2, 0x7a, 0xda, 0xab, 0x8d, 0x39, 0x9a, - 0x76, 0xcc, 0x94, 0x4d, 0x1e, 0x76, 0x01, 0x6c, 0x63, 0x2e, 0xb6, 0x18, 0x0e, 0xb8, 0x8e, 0x44, - 0x7d, 0x62, 0xf4, 0xba, 0x78, 0xb0, 0xed, 0x96, 0x1e, 0x8d, 0x15, 0x93, 0x05, 0xdc, 0x18, 0x61, - 0x43, 0x63, 0x22, 0xc0, 0x17, 0xc0, 0x3c, 0x23, 0x98, 0x87, 0x41, 0xa5, 0xa4, 0xaa, 0x88, 0xc5, - 0x45, 0x6a, 0x15, 0x19, 0x2b, 0x7c, 0x11, 0x1c, 0xf3, 0x09, 0xe7, 0xb8, 0x45, 0x2a, 0x73, 0x0a, - 0xb8, 0x6c, 0x80, 0xc7, 0x36, 0xf5, 0x32, 0x1a, 0xd8, 0xad, 0xdf, 0x0b, 0xe0, 0x5c, 0x8e, 0x8e, - 0x1b, 0x94, 0x0b, 0x78, 0x6f, 0xa4, 0x9f, 0xed, 0x83, 0x15, 0x28, 0xbd, 0x55, 0x37, 0x9f, 0x30, - 0xb1, 0x17, 0x06, 0x2b, 0xa9, 0x5e, 0xbe, 0x07, 0xe6, 0xa8, 0x20, 0xbe, 0xdc, 0x95, 0xd9, 0x0b, - 0xe5, 0xfa, 0x6b, 0x53, 0xf6, 0x5a, 0xe3, 0xb8, 0x89, 0x31, 0x77, 0x5d, 0xb2, 0x21, 0x4d, 0x6a, - 0xfd, 0x51, 0xcc, 0xad, 0x4d, 0x36, 0x3c, 0xfc, 0x1c, 0x2c, 0xa9, 0xaf, 0x2d, 0xcc, 0x5a, 0x44, - 0xce, 0x15, 0x53, 0xe1, 0xc4, 0x33, 0xb5, 0xcf, 0x50, 0x6a, 0x9c, 0x36, 0xa9, 0x2c, 0xdd, 0xce, - 0x50, 0xa3, 0xa1, 0x50, 0xf0, 0x0a, 0x28, 0xfb, 0x34, 0x40, 0x24, 0x6a, 0x53, 0x17, 0xeb, 0xb6, - 0x9c, 0x6b, 0x2c, 0xf7, 0x7b, 0xb5, 0xf2, 0x66, 0xb2, 0x8c, 0xd2, 0x18, 0xf8, 0x0a, 0x28, 0xfb, - 0xf8, 0xb3, 0xd8, 0x65, 0x56, 0xb9, 0x9c, 0x34, 0xf1, 0xca, 0x9b, 0x89, 0x09, 0xa5, 0x71, 0xf0, - 0x8e, 0xec, 0x06, 0xc1, 0xa8, 0xcb, 0x2b, 0x25, 0x25, 0xf3, 0xc5, 0x49, 0xf5, 0x6d, 0x2a, 0xb8, - 0x1a, 0x11, 0xa9, 0xce, 0x51, 0x14, 0x68, 0xc0, 0x65, 0xfd, 0x50, 0x02, 0xe7, 0xf7, 0x3d, 0xfb, - 0xf0, 0x1d, 0x00, 0xc3, 0x6d, 0x4e, 0x58, 0x97, 0x78, 0x57, 0xf5, 0x68, 0x97, 0x33, 0x56, 0x6a, - 0x3c, 0xdb, 0x38, 0x2d, 0xdb, 0xfe, 0xe6, 0x88, 0x15, 0x8d, 0xf1, 0x80, 0x2e, 0x38, 0x2e, 0x0f, - 0x83, 0x16, 0x94, 0x9a, 0x71, 0x7e, 0xb8, 0x93, 0xf6, 0x6c, 0xbf, 0x57, 0x3b, 0xbe, 0x91, 0x26, - 0x41, 0x59, 0x4e, 0xb8, 0x0e, 0x96, 0xdd, 0x0e, 0x63, 0x24, 0x10, 0x43, 0x02, 0x9f, 0x31, 0x0a, - 0x2c, 0x37, 0xb3, 0x66, 0x34, 0x8c, 0x97, 0x14, 0x1e, 0xe1, 0x94, 0x11, 0x2f, 0xa6, 0x28, 0x65, - 0x29, 0xde, 0xce, 0x9a, 0xd1, 0x30, 0x1e, 0xb6, 0xc1, 0x92, 0x61, 0x35, 0x7a, 0x57, 0xe6, 0xd4, - 0x96, 0xbd, 0x74, 0xc0, 0x2d, 0xd3, 0x43, 0x37, 0xee, 0xc1, 0x66, 0x86, 0x0b, 0x0d, 0x71, 0x43, - 0x01, 0x80, 0x3b, 0x18, 0x71, 0xbc, 0x32, 0xaf, 0x22, 0xbd, 0x35, 0xe5, 0x19, 0x8c, 0x67, 0x65, - 0x72, 0x7d, 0xc5, 0x4b, 0x1c, 0xa5, 0xe2, 0x58, 0xbf, 0x16, 0x01, 0x48, 0x3a, 0x0c, 0xae, 0x65, - 0x86, 0xfc, 0xea, 0xd0, 0x90, 0x3f, 0x61, 0x90, 0xea, 0xd5, 0x93, 0x1a, 0xe8, 0x77, 0xc1, 0x7c, - 0xa8, 0x4e, 0x9e, 0x69, 0x86, 0xfa, 0xa4, 0xb4, 0xe3, 0xbb, 0x34, 0x66, 0x6b, 0x00, 0x39, 0x3a, - 0xcd, 0xf9, 0x35, 0x6c, 0xf0, 0x06, 0x28, 0x45, 0xa1, 0x37, 0xb8, 0xfc, 0x2e, 0x4f, 0x62, 0xbd, - 0x15, 0x7a, 0x3c, 0xc3, 0xb9, 0x20, 0x73, 0x97, 0xab, 0x48, 0xf1, 0xc0, 0x8f, 0xc1, 0xc2, 0xe0, - 0xcd, 0xa6, 0x9a, 0xa1, 0x5c, 0x5f, 0x9b, 0xc4, 0x89, 0x0c, 0x3e, 0xc3, 0xbb, 0x28, 0x27, 0xe8, - 0xc0, 0x82, 0x62, 0x4e, 0xeb, 0xb7, 0x22, 0x58, 0x4c, 0xef, 0xfd, 0x7f, 0x22, 0xa7, 0xee, 0xba, - 0xa3, 0x95, 0x53, 0x73, 0x1e, 0xbd, 0x9c, 0x9a, 0x37, 0x4f, 0xce, 0x6f, 0x8a, 0x00, 0x8e, 0x76, - 0x0a, 0x74, 0xc1, 0xbc, 0x50, 0x93, 0xfb, 0x28, 0x6e, 0x88, 0xf8, 0xd6, 0x36, 0x97, 0x81, 0xa1, - 0x96, 0x4f, 0x51, 0x3d, 0x5b, 0x6f, 0x24, 0x4f, 0xd6, 0xf8, 0x2c, 0x6d, 0xc6, 0x16, 0x94, 0x42, - 0x41, 0x02, 0xca, 0xda, 0xfb, 0x2e, 0x6e, 0x77, 0x06, 0x4f, 0x90, 0x7d, 0x6f, 0x68, 0x7b, 0x50, - 0xab, 0xfd, 0x5e, 0x07, 0x07, 0x82, 0x8a, 0xbd, 0xe4, 0x0a, 0xd9, 0x4a, 0xa8, 0x50, 0x9a, 0xd7, - 0xfa, 0x6e, 0x58, 0x16, 0xdd, 0x6b, 0xff, 0x5b, 0x59, 0x76, 0xc0, 0xa2, 0x19, 0x75, 0xff, 0x44, - 0x97, 0x53, 0x26, 0xca, 0x62, 0x33, 0xc5, 0x85, 0x32, 0xcc, 0xd6, 0xcf, 0x05, 0x70, 0x62, 0x78, - 0x08, 0x0c, 0xa5, 0x5c, 0x38, 0x50, 0xca, 0x0f, 0x00, 0xd4, 0x05, 0xaf, 0x77, 0x09, 0xc3, 0x2d, - 0xa2, 0x13, 0x2f, 0x4e, 0x95, 0x78, 0xfc, 0xae, 0xdc, 0x1a, 0x61, 0x44, 0x63, 0xa2, 0x58, 0xbf, - 0x64, 0x8b, 0xd0, 0x9b, 0x3b, 0x4d, 0x11, 0x5f, 0x80, 0x93, 0x46, 0x9d, 0x23, 0xa8, 0xe2, 0x9c, - 0x09, 0x76, 0xb2, 0x39, 0x4a, 0x89, 0xc6, 0xc5, 0xb1, 0xbe, 0x2f, 0x82, 0x53, 0xe3, 0xa6, 0x27, - 0x6c, 0x9a, 0xff, 0x81, 0xba, 0x0a, 0x27, 0xfd, 0x3f, 0xf0, 0x69, 0xaf, 0x56, 0x1b, 0xf3, 0xf4, - 0x1f, 0xd0, 0xa4, 0xfe, 0x2a, 0xbe, 0x0f, 0x2a, 0x19, 0xed, 0xee, 0x08, 0xda, 0xa6, 0x0f, 0xf4, - 0xa3, 0x46, 0x3f, 0xdf, 0x9e, 0xeb, 0xf7, 0x6a, 0x95, 0xad, 0x1c, 0x0c, 0xca, 0xf5, 0x96, 0xff, - 0x27, 0xc6, 0xec, 0xfd, 0x74, 0x4d, 0x7b, 0xfa, 0x10, 0xfb, 0xfe, 0xe3, 0xa8, 0x5e, 0x7a, 0xef, - 0x8f, 0x44, 0xaf, 0x0f, 0xc1, 0xd9, 0xec, 0x26, 0x8d, 0x0a, 0x76, 0xbe, 0xdf, 0xab, 0x9d, 0x6d, - 0xe6, 0x81, 0x50, 0xbe, 0x7f, 0x5e, 0xa7, 0xcd, 0xfe, 0x3b, 0x9d, 0xd6, 0xb8, 0xf4, 0xf0, 0x49, - 0x75, 0xe6, 0xd1, 0x93, 0xea, 0xcc, 0xe3, 0x27, 0xd5, 0x99, 0x2f, 0xfb, 0xd5, 0xc2, 0xc3, 0x7e, - 0xb5, 0xf0, 0xa8, 0x5f, 0x2d, 0x3c, 0xee, 0x57, 0x0b, 0x7f, 0xf6, 0xab, 0x85, 0xaf, 0xff, 0xaa, - 0xce, 0x7c, 0x70, 0xcc, 0xcc, 0xbd, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xac, 0xf1, 0x6a, 0x4f, - 0x90, 0x12, 0x00, 0x00, + // 1441 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x8f, 0x1b, 0xc5, + 0x12, 0x5f, 0x7f, 0xec, 0x66, 0xd3, 0xde, 0xec, 0xe6, 0x75, 0xa2, 0xc4, 0xd9, 0xbc, 0xd8, 0xab, + 0xd1, 0xd3, 0x53, 0x88, 0xc8, 0x4c, 0xe2, 0x2c, 0x1f, 0x12, 0x42, 0x62, 0x6d, 0x20, 0x89, 0x58, + 0x27, 0xa1, 0x77, 0x13, 0x21, 0x08, 0x88, 0xf6, 0xb8, 0xe3, 0x6d, 0xd6, 0x33, 0x63, 0x75, 0xb7, + 0xad, 0x6c, 0x10, 0x12, 0x17, 0xee, 0x1c, 0xf8, 0xb8, 0x72, 0x46, 0x70, 0x85, 0x33, 0x48, 0x48, + 0x39, 0xe6, 0x18, 0x84, 0x64, 0x91, 0xe1, 0xbf, 0xc8, 0x09, 0x4d, 0x77, 0xcf, 0x78, 0xc6, 0xf6, + 0xac, 0x1d, 0xb3, 0x09, 0x70, 0x9b, 0xee, 0xaa, 0xfa, 0x55, 0x75, 0x55, 0x75, 0x75, 0xd5, 0x80, + 0xcb, 0xbb, 0x2f, 0x73, 0x93, 0x7a, 0xd6, 0x6e, 0xb7, 0x41, 0x98, 0x4b, 0x04, 0xe1, 0x56, 0x8f, + 0xb8, 0x4d, 0x8f, 0x59, 0x9a, 0x80, 0x3b, 0xd4, 0xc2, 0x5d, 0xe1, 0x71, 0x1b, 0xb7, 0xa9, 0xdb, + 0xb2, 0x7a, 0x95, 0x06, 0x11, 0xf8, 0xa2, 0xd5, 0x22, 0x2e, 0x61, 0x58, 0x90, 0xa6, 0xd9, 0x61, + 0x9e, 0xf0, 0x60, 0x49, 0xf1, 0x9b, 0xb8, 0x43, 0xcd, 0x18, 0xbf, 0xa9, 0xf9, 0x57, 0xcf, 0xb7, + 0xa8, 0xd8, 0xe9, 0x36, 0x4c, 0xdb, 0x73, 0xac, 0x96, 0xd7, 0xf2, 0x2c, 0x29, 0xd6, 0xe8, 0xde, + 0x91, 0x2b, 0xb9, 0x90, 0x5f, 0x0a, 0x6e, 0xd5, 0x88, 0xa9, 0xb7, 0x3d, 0x46, 0xac, 0xde, 0x88, + 0xca, 0xd5, 0xf5, 0x01, 0x8f, 0x83, 0xed, 0x1d, 0xea, 0x12, 0xb6, 0x67, 0x75, 0x76, 0x5b, 0x52, + 0x88, 0x11, 0xee, 0x75, 0x99, 0x4d, 0x9e, 0x48, 0x8a, 0x5b, 0x0e, 0x11, 0x78, 0x9c, 0x2e, 0x2b, + 0x4d, 0x8a, 0x75, 0x5d, 0x41, 0x9d, 0x51, 0x35, 0x2f, 0x4e, 0x12, 0xe0, 0xf6, 0x0e, 0x71, 0xf0, + 0x88, 0xdc, 0xa5, 0x34, 0xb9, 0xae, 0xa0, 0x6d, 0x8b, 0xba, 0x82, 0x0b, 0x36, 0x2c, 0x64, 0x7c, + 0x99, 0x01, 0xa7, 0x6b, 0xcc, 0xe3, 0xfc, 0x16, 0x61, 0x9c, 0x7a, 0xee, 0xf5, 0xc6, 0x47, 0xc4, + 0x16, 0x88, 0xdc, 0x21, 0x8c, 0xb8, 0x36, 0x81, 0x6b, 0x20, 0xbf, 0x4b, 0xdd, 0x66, 0x31, 0xb3, + 0x96, 0x39, 0x7b, 0xb8, 0xba, 0x74, 0xbf, 0x5f, 0x9e, 0xf3, 0xfb, 0xe5, 0xfc, 0x5b, 0xd4, 0x6d, + 0x22, 0x49, 0x09, 0x38, 0x5c, 0xec, 0x90, 0x62, 0x36, 0xc9, 0x71, 0x0d, 0x3b, 0x04, 0x49, 0x0a, + 0xac, 0x00, 0x80, 0x3b, 0x54, 0x2b, 0x28, 0xe6, 0x24, 0x1f, 0xd4, 0x7c, 0x60, 0xe3, 0xc6, 0x55, + 0x4d, 0x41, 0x31, 0x2e, 0xe3, 0xab, 0x1c, 0x38, 0xfe, 0xc6, 0x5d, 0x41, 0x98, 0x8b, 0xdb, 0x75, + 0x22, 0x18, 0xb5, 0xb7, 0x64, 0x50, 0x02, 0x30, 0x47, 0xae, 0x03, 0x05, 0xda, 0xac, 0x08, 0xac, + 0x1e, 0x51, 0x50, 0x8c, 0x0b, 0x7a, 0x60, 0x59, 0xad, 0xb6, 0x48, 0x9b, 0xd8, 0xc2, 0x63, 0xd2, + 0xd8, 0x42, 0xe5, 0x92, 0x39, 0x48, 0xbd, 0xc8, 0x65, 0x66, 0x67, 0xb7, 0x15, 0x6c, 0x70, 0x33, + 0x88, 0xa8, 0xd9, 0xbb, 0x68, 0x6e, 0xe2, 0x06, 0x69, 0x87, 0xa2, 0x55, 0xe8, 0xf7, 0xcb, 0xcb, + 0xf5, 0x04, 0x1c, 0x1a, 0x82, 0x87, 0x18, 0x14, 0x04, 0x66, 0x2d, 0x22, 0x6e, 0xe1, 0x76, 0x97, + 0xc8, 0x23, 0x17, 0x2a, 0xe6, 0x7e, 0xda, 0xcc, 0x30, 0xeb, 0xcc, 0xb7, 0xbb, 0xd8, 0x15, 0x54, + 0xec, 0x55, 0x57, 0xfc, 0x7e, 0xb9, 0xb0, 0x3d, 0x80, 0x41, 0x71, 0x4c, 0xd8, 0x03, 0x50, 0x2d, + 0x37, 0x7a, 0x84, 0xe1, 0x16, 0x51, 0x9a, 0xf2, 0x33, 0x69, 0x3a, 0xe1, 0xf7, 0xcb, 0x70, 0x7b, + 0x04, 0x0d, 0x8d, 0xd1, 0x60, 0x7c, 0x33, 0x1a, 0x18, 0x81, 0x45, 0x97, 0xff, 0x3b, 0x02, 0xb3, + 0x03, 0x96, 0xec, 0x2e, 0x63, 0xc4, 0xfd, 0x4b, 0x91, 0x39, 0xae, 0x8f, 0xb5, 0x54, 0x8b, 0x61, + 0xa1, 0x04, 0x32, 0xdc, 0x03, 0xc7, 0xf4, 0xfa, 0x00, 0x02, 0x74, 0xd2, 0xef, 0x97, 0x8f, 0xd5, + 0x46, 0xe1, 0xd0, 0x38, 0x1d, 0xc6, 0x4f, 0x59, 0x70, 0xf2, 0x8a, 0xc7, 0xe8, 0x3d, 0xcf, 0x15, + 0xb8, 0x7d, 0xc3, 0x6b, 0x6e, 0xe8, 0xaa, 0x4a, 0x18, 0xfc, 0x10, 0x2c, 0x06, 0xde, 0x6b, 0x62, + 0x81, 0x65, 0x8c, 0x0a, 0x95, 0x0b, 0xd3, 0xf9, 0x5a, 0x15, 0x86, 0x3a, 0x11, 0x78, 0x10, 0xd5, + 0xc1, 0x1e, 0x8a, 0x50, 0xe1, 0xfb, 0x20, 0xcf, 0x3b, 0xc4, 0xd6, 0x91, 0x7c, 0xc5, 0xdc, 0xbf, + 0xba, 0x9b, 0x29, 0x86, 0x6e, 0x75, 0x88, 0x3d, 0x28, 0x26, 0xc1, 0x0a, 0x49, 0x58, 0x48, 0xc0, + 0x02, 0x97, 0x09, 0xa7, 0x63, 0xf7, 0xea, 0xac, 0x0a, 0x24, 0x48, 0x75, 0x59, 0xab, 0x58, 0x50, + 0x6b, 0xa4, 0xc1, 0x8d, 0xcf, 0x72, 0x60, 0x2d, 0x45, 0xb2, 0xe6, 0xb9, 0x4d, 0x2a, 0xa8, 0xe7, + 0xc2, 0x2b, 0x20, 0x2f, 0xf6, 0x3a, 0x61, 0xb2, 0xaf, 0x87, 0xd6, 0x6e, 0xef, 0x75, 0xc8, 0xe3, + 0x7e, 0xf9, 0x7f, 0x93, 0xe4, 0x03, 0x3e, 0x24, 0x11, 0xe0, 0x66, 0x74, 0xaa, 0x6c, 0x02, 0x4b, + 0x9b, 0xf5, 0xb8, 0x5f, 0x1e, 0xf3, 0xac, 0x99, 0x11, 0x52, 0xd2, 0xf8, 0xa0, 0x36, 0xb4, 0x31, + 0x17, 0xdb, 0x0c, 0xbb, 0x5c, 0x69, 0xa2, 0x4e, 0x98, 0xeb, 0xe7, 0xa6, 0x0b, 0x77, 0x20, 0x51, + 0x5d, 0xd5, 0x56, 0xc0, 0xcd, 0x11, 0x34, 0x34, 0x46, 0x03, 0xfc, 0x3f, 0x58, 0x60, 0x04, 0x73, + 0xcf, 0x95, 0x69, 0x7e, 0x78, 0xe0, 0x5c, 0x24, 0x77, 0x91, 0xa6, 0xc2, 0xe7, 0xc0, 0x21, 0x87, + 0x70, 0x8e, 0x5b, 0xa4, 0x38, 0x2f, 0x19, 0x57, 0x34, 0xe3, 0xa1, 0xba, 0xda, 0x46, 0x21, 0xdd, + 0xf8, 0x35, 0x03, 0x4e, 0xa7, 0xf8, 0x71, 0x93, 0x72, 0x01, 0x6f, 0x8f, 0xe4, 0xb3, 0x39, 0x65, + 0xed, 0xa0, 0x5c, 0x65, 0xf3, 0x51, 0xad, 0x7b, 0x31, 0xdc, 0x89, 0xe5, 0xf2, 0x6d, 0x30, 0x4f, + 0x05, 0x71, 0x82, 0xa8, 0xe4, 0xce, 0x16, 0x2a, 0x2f, 0xcd, 0x98, 0x6b, 0xd5, 0x23, 0x5a, 0xc7, + 0xfc, 0xd5, 0x00, 0x0d, 0x29, 0x50, 0xe3, 0xb7, 0x6c, 0xea, 0xd9, 0x82, 0x84, 0x87, 0x1f, 0x83, + 0x65, 0xb9, 0x52, 0x95, 0x19, 0x91, 0x3b, 0xfa, 0x84, 0x13, 0xef, 0xd4, 0x3e, 0x0f, 0x7a, 0xf5, + 0x84, 0x36, 0x65, 0x79, 0x2b, 0x01, 0x8d, 0x86, 0x54, 0xc1, 0x8b, 0xa0, 0xe0, 0x50, 0x17, 0x91, + 0x4e, 0x9b, 0xda, 0x58, 0xa5, 0xe5, 0xbc, 0x7a, 0x92, 0xea, 0x83, 0x6d, 0x14, 0xe7, 0x81, 0x2f, + 0x80, 0x82, 0x83, 0xef, 0x46, 0x22, 0x39, 0x29, 0x72, 0x4c, 0xeb, 0x2b, 0xd4, 0x07, 0x24, 0x14, + 0xe7, 0x83, 0x37, 0x83, 0x6c, 0x08, 0xaa, 0x34, 0x2f, 0xe6, 0xa5, 0x9b, 0xcf, 0x4d, 0x3a, 0x9f, + 0x2e, 0xf2, 0x41, 0x89, 0x88, 0x65, 0x8e, 0x84, 0x40, 0x21, 0x96, 0xf1, 0x43, 0x1e, 0x9c, 0xd9, + 0xf7, 0xee, 0xc3, 0x37, 0x01, 0xf4, 0x1a, 0x9c, 0xb0, 0x1e, 0x69, 0x5e, 0x56, 0x6d, 0x51, 0xd0, + 0x9f, 0x04, 0x3e, 0xce, 0xa9, 0x27, 0xf1, 0xfa, 0x08, 0x15, 0x8d, 0x91, 0x80, 0x36, 0x38, 0x12, + 0x5c, 0x06, 0xe5, 0x50, 0xaa, 0x5b, 0xa1, 0x27, 0xbb, 0x69, 0xff, 0xf1, 0xfb, 0xe5, 0x23, 0x9b, + 0x71, 0x10, 0x94, 0xc4, 0x84, 0x1b, 0x60, 0x45, 0xd7, 0xfa, 0x21, 0x07, 0x9f, 0xd4, 0x1e, 0x58, + 0xa9, 0x25, 0xc9, 0x68, 0x98, 0x3f, 0x80, 0x68, 0x12, 0x4e, 0x19, 0x69, 0x46, 0x10, 0xf9, 0x24, + 0xc4, 0xeb, 0x49, 0x32, 0x1a, 0xe6, 0x87, 0x6d, 0xb0, 0xac, 0x51, 0xb5, 0xbf, 0x8b, 0xf3, 0x32, + 0x64, 0xcf, 0x4f, 0x19, 0x32, 0x55, 0x74, 0xa3, 0x1c, 0xac, 0x25, 0xb0, 0xd0, 0x10, 0x36, 0x14, + 0x00, 0xd8, 0x61, 0x89, 0xe3, 0xc5, 0x05, 0xa9, 0xe9, 0xb5, 0x19, 0xef, 0x60, 0x54, 0x2b, 0x07, + 0xcf, 0x57, 0xb4, 0xc5, 0x51, 0x4c, 0x8f, 0xf1, 0x6d, 0x0e, 0x80, 0x41, 0x86, 0xc1, 0xf5, 0x44, + 0x91, 0x5f, 0x1b, 0x2a, 0xf2, 0x47, 0xe3, 0xcd, 0x69, 0xac, 0xa0, 0xdf, 0x02, 0x0b, 0x9e, 0xbc, + 0x79, 0x3a, 0x19, 0x2a, 0x93, 0xcc, 0x8e, 0xde, 0xd2, 0x08, 0xad, 0x0a, 0x82, 0xd2, 0xa9, 0xef, + 0xaf, 0x46, 0x83, 0xd7, 0x40, 0xbe, 0xe3, 0x35, 0xc3, 0xc7, 0xef, 0xc2, 0x24, 0xd4, 0x1b, 0x5e, + 0x93, 0x27, 0x30, 0x17, 0x03, 0xdb, 0x83, 0x5d, 0x24, 0x71, 0xe0, 0x07, 0x60, 0x31, 0x6c, 0x37, + 0x74, 0x6f, 0xb2, 0x3e, 0x09, 0x13, 0x69, 0xfe, 0x04, 0xee, 0x52, 0x50, 0x41, 0x43, 0x0a, 0x8a, + 0x30, 0x03, 0x7c, 0xa2, 0xbb, 0x45, 0x59, 0xeb, 0xa7, 0xc0, 0x1f, 0xd7, 0xf6, 0x2b, 0xfc, 0x90, + 0x82, 0x22, 0x4c, 0xe3, 0xbb, 0x1c, 0x58, 0x4a, 0xb4, 0xa1, 0x7f, 0x47, 0xb8, 0x54, 0x56, 0x1f, + 0x6c, 0xb8, 0x14, 0xe6, 0xc1, 0x87, 0x4b, 0xe1, 0x3e, 0xbd, 0x70, 0xc5, 0xf0, 0xc7, 0x84, 0xeb, + 0x8b, 0x2c, 0x80, 0xa3, 0x99, 0x0e, 0x6d, 0xb0, 0xa0, 0x46, 0x8d, 0x83, 0x78, 0xe1, 0xa2, 0xae, + 0x43, 0x3f, 0x66, 0x1a, 0x7a, 0x68, 0x40, 0xc9, 0x4e, 0x35, 0xa0, 0x90, 0x83, 0x18, 0xe4, 0xa2, + 0x27, 0x30, 0x6d, 0x98, 0x33, 0xbe, 0x1e, 0x76, 0x8b, 0xca, 0xe5, 0x7f, 0xac, 0x5b, 0x9e, 0xd9, + 0x18, 0x65, 0xfc, 0x9c, 0x01, 0x47, 0x87, 0x8b, 0xd8, 0x4c, 0xa3, 0xe6, 0xbd, 0xb1, 0xf3, 0x72, + 0x76, 0x26, 0xc3, 0xa3, 0xbe, 0x78, 0xca, 0x99, 0xf9, 0x97, 0xe4, 0x21, 0x66, 0x9f, 0x97, 0x3f, + 0x19, 0x3f, 0x54, 0xce, 0x76, 0x8a, 0xd3, 0x5a, 0xd9, 0xf4, 0x83, 0xe5, 0xf7, 0x59, 0x70, 0x7c, + 0x5c, 0xf5, 0x87, 0x35, 0xfd, 0x0f, 0x48, 0x9d, 0xc2, 0x8a, 0xff, 0x03, 0x7a, 0xdc, 0x2f, 0x97, + 0xc7, 0x8c, 0x2e, 0x21, 0x4c, 0xec, 0x37, 0xd1, 0x3b, 0xa0, 0x98, 0xf0, 0xdd, 0x4d, 0x41, 0xdb, + 0xf4, 0x9e, 0x6a, 0xca, 0x54, 0xfb, 0xf9, 0x5f, 0xbf, 0x5f, 0x2e, 0x6e, 0xa7, 0xf0, 0xa0, 0x54, + 0xe9, 0x94, 0x7f, 0x25, 0xb9, 0xa7, 0xfe, 0xaf, 0xe4, 0xc7, 0x51, 0x7f, 0xa9, 0xd8, 0x1f, 0x88, + 0xbf, 0xde, 0x03, 0xa7, 0x92, 0x41, 0x1a, 0x75, 0xd8, 0x19, 0xbf, 0x5f, 0x3e, 0x55, 0x4b, 0x63, + 0x42, 0xe9, 0xf2, 0x69, 0x99, 0x96, 0x7b, 0x36, 0x99, 0x56, 0x3d, 0x7f, 0xff, 0x51, 0x69, 0xee, + 0xc1, 0xa3, 0xd2, 0xdc, 0xc3, 0x47, 0xa5, 0xb9, 0x4f, 0xfd, 0x52, 0xe6, 0xbe, 0x5f, 0xca, 0x3c, + 0xf0, 0x4b, 0x99, 0x87, 0x7e, 0x29, 0xf3, 0xbb, 0x5f, 0xca, 0x7c, 0xfe, 0x47, 0x69, 0xee, 0xdd, + 0x43, 0xba, 0xee, 0xfd, 0x19, 0x00, 0x00, 0xff, 0xff, 0x91, 0x09, 0xa9, 0x38, 0x8c, 0x16, 0x00, + 0x00, } diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto b/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto index 0c682b35..b565920c 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto +++ b/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto @@ -44,6 +44,50 @@ message CrossVersionObjectReference { optional string apiVersion = 3; } +// 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. +message ExternalMetricSource { + // metricName is the name of the metric in question. + optional string metricName = 1; + + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2; + + // targetValue is the target value of the metric (as a quantity). + // Mutually exclusive with TargetAverageValue. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3; + + // targetAverageValue is the target per-pod value of global metric (as a quantity). + // Mutually exclusive with TargetValue. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4; +} + +// ExternalMetricStatus indicates the current value of a global metric +// not associated with any Kubernetes object. +message ExternalMetricStatus { + // metricName is the name of a metric used for autoscaling in + // metric system. + optional string metricName = 1; + + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2; + + // currentValue is the current value of the metric (as a quantity) + optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3; + + // currentAverageValue is the current value of metric averaged over autoscaled pods. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4; +} + // 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. @@ -175,6 +219,14 @@ message MetricSpec { // to normal per-pod metrics using the "pods" source. // +optional optional ResourceMetricSource resource = 4; + + // 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). + // +optional + optional ExternalMetricSource external = 5; } // MetricStatus describes the last-read state of a single metric. @@ -201,6 +253,14 @@ message MetricStatus { // to normal per-pod metrics using the "pods" source. // +optional optional ResourceMetricStatus resource = 4; + + // 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). + // +optional + optional ExternalMetricStatus external = 5; } // ObjectMetricSource indicates how to scale on a metric describing a diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/types.go b/vendor/k8s.io/api/autoscaling/v2beta1/types.go index 22e53573..f842cc34 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/types.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/types.go @@ -73,6 +73,12 @@ var ( // Kubernetes, and have special scaling options on top of those available // to normal per-pod metrics (the "pods" source). ResourceMetricSourceType MetricSourceType = "Resource" + // ExternalMetricSourceType is 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). + ExternalMetricSourceType MetricSourceType = "External" ) // MetricSpec specifies how to scale based on a single metric @@ -98,6 +104,13 @@ type MetricSpec struct { // to normal per-pod metrics using the "pods" source. // +optional Resource *ResourceMetricSource `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` + // 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). + // +optional + External *ExternalMetricSource `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"` } // ObjectMetricSource indicates how to scale on a metric describing a @@ -146,6 +159,27 @@ type ResourceMetricSource struct { TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty" protobuf:"bytes,3,opt,name=targetAverageValue"` } +// 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. +type ExternalMetricSource struct { + // metricName is the name of the metric in question. + MetricName string `json:"metricName" protobuf:"bytes,1,name=metricName"` + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + MetricSelector *metav1.LabelSelector `json:"metricSelector,omitempty" protobuf:"bytes,2,opt,name=metricSelector"` + // targetValue is the target value of the metric (as a quantity). + // Mutually exclusive with TargetAverageValue. + // +optional + TargetValue *resource.Quantity `json:"targetValue,omitempty" protobuf:"bytes,3,opt,name=targetValue"` + // targetAverageValue is the target per-pod value of global metric (as a quantity). + // Mutually exclusive with TargetValue. + // +optional + TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty" protobuf:"bytes,4,opt,name=targetAverageValue"` +} + // HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler. type HorizontalPodAutoscalerStatus struct { // observedGeneration is the most recent generation observed by this autoscaler. @@ -231,6 +265,13 @@ type MetricStatus struct { // to normal per-pod metrics using the "pods" source. // +optional Resource *ResourceMetricStatus `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` + // 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). + // +optional + External *ExternalMetricStatus `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"` } // ObjectMetricStatus indicates the current value of a metric describing a @@ -277,6 +318,23 @@ type ResourceMetricStatus struct { CurrentAverageValue resource.Quantity `json:"currentAverageValue" protobuf:"bytes,3,name=currentAverageValue"` } +// ExternalMetricStatus indicates the current value of a global metric +// not associated with any Kubernetes object. +type ExternalMetricStatus struct { + // metricName is the name of a metric used for autoscaling in + // metric system. + MetricName string `json:"metricName" protobuf:"bytes,1,name=metricName"` + // metricSelector is used to identify a specific time series + // within a given metric. + // +optional + MetricSelector *metav1.LabelSelector `json:"metricSelector,omitempty" protobuf:"bytes,2,opt,name=metricSelector"` + // currentValue is the current value of the metric (as a quantity) + CurrentValue resource.Quantity `json:"currentValue" protobuf:"bytes,3,name=currentValue"` + // currentAverageValue is the current value of metric averaged over autoscaled pods. + // +optional + CurrentAverageValue *resource.Quantity `json:"currentAverageValue,omitempty" protobuf:"bytes,4,opt,name=currentAverageValue"` +} + // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go index 8bcf0f4b..12cfa764 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go @@ -38,6 +38,30 @@ func (CrossVersionObjectReference) SwaggerDoc() map[string]string { return map_CrossVersionObjectReference } +var map_ExternalMetricSource = map[string]string{ + "": "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.", + "metricName": "metricName is the name of the metric in question.", + "metricSelector": "metricSelector is used to identify a specific time series within a given metric.", + "targetValue": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.", + "targetAverageValue": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.", +} + +func (ExternalMetricSource) SwaggerDoc() map[string]string { + return map_ExternalMetricSource +} + +var map_ExternalMetricStatus = map[string]string{ + "": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", + "metricName": "metricName is the name of a metric used for autoscaling in metric system.", + "metricSelector": "metricSelector is used to identify a specific time series within a given metric.", + "currentValue": "currentValue is the current value of the metric (as a quantity)", + "currentAverageValue": "currentAverageValue is the current value of metric averaged over autoscaled pods.", +} + +func (ExternalMetricStatus) SwaggerDoc() map[string]string { + return map_ExternalMetricStatus +} + var map_HorizontalPodAutoscaler = map[string]string{ "": "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.", "metadata": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -104,6 +128,7 @@ var map_MetricSpec = map[string]string{ "object": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", "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.", "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.", + "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).", } func (MetricSpec) SwaggerDoc() map[string]string { @@ -116,6 +141,7 @@ var map_MetricStatus = map[string]string{ "object": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", "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.", "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.", + "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).", } func (MetricStatus) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go index 70bec2b5..0f547246 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go @@ -42,6 +42,84 @@ func (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) { + *out = *in + if in.MetricSelector != nil { + in, out := &in.MetricSelector, &out.MetricSelector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + if in.TargetValue != nil { + in, out := &in.TargetValue, &out.TargetValue + if *in == nil { + *out = nil + } else { + *out = new(resource.Quantity) + **out = (*in).DeepCopy() + } + } + if in.TargetAverageValue != nil { + in, out := &in.TargetAverageValue, &out.TargetAverageValue + if *in == nil { + *out = nil + } else { + *out = new(resource.Quantity) + **out = (*in).DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource. +func (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource { + if in == nil { + return nil + } + out := new(ExternalMetricSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) { + *out = *in + if in.MetricSelector != nil { + in, out := &in.MetricSelector, &out.MetricSelector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + out.CurrentValue = in.CurrentValue.DeepCopy() + if in.CurrentAverageValue != nil { + in, out := &in.CurrentAverageValue, &out.CurrentAverageValue + if *in == nil { + *out = nil + } else { + *out = new(resource.Quantity) + **out = (*in).DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus. +func (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus { + if in == nil { + return nil + } + out := new(ExternalMetricStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) { *out = *in @@ -233,6 +311,15 @@ func (in *MetricSpec) DeepCopyInto(out *MetricSpec) { (*in).DeepCopyInto(*out) } } + if in.External != nil { + in, out := &in.External, &out.External + if *in == nil { + *out = nil + } else { + *out = new(ExternalMetricSource) + (*in).DeepCopyInto(*out) + } + } return } @@ -276,6 +363,15 @@ func (in *MetricStatus) DeepCopyInto(out *MetricStatus) { (*in).DeepCopyInto(*out) } } + if in.External != nil { + in, out := &in.External, &out.External + if *in == nil { + *out = nil + } else { + *out = new(ExternalMetricStatus) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/api/core/v1/generated.pb.go b/vendor/k8s.io/api/core/v1/generated.pb.go index 7f11d112..a6adf526 100644 --- a/vendor/k8s.io/api/core/v1/generated.pb.go +++ b/vendor/k8s.io/api/core/v1/generated.pb.go @@ -208,6 +208,7 @@ limitations under the License. Volume VolumeDevice VolumeMount + VolumeNodeAffinity VolumeProjection VolumeSource VsphereVirtualDiskVolumeSource @@ -1027,24 +1028,28 @@ func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{182} } +func (m *VolumeNodeAffinity) Reset() { *m = VolumeNodeAffinity{} } +func (*VolumeNodeAffinity) ProtoMessage() {} +func (*VolumeNodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{183} } + func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{183} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{184} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{184} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{185} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{185} + return fileDescriptorGenerated, []int{186} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{186} + return fileDescriptorGenerated, []int{187} } func init() { @@ -1231,6 +1236,7 @@ func init() { proto.RegisterType((*Volume)(nil), "k8s.io.api.core.v1.Volume") proto.RegisterType((*VolumeDevice)(nil), "k8s.io.api.core.v1.VolumeDevice") proto.RegisterType((*VolumeMount)(nil), "k8s.io.api.core.v1.VolumeMount") + proto.RegisterType((*VolumeNodeAffinity)(nil), "k8s.io.api.core.v1.VolumeNodeAffinity") proto.RegisterType((*VolumeProjection)(nil), "k8s.io.api.core.v1.VolumeProjection") proto.RegisterType((*VolumeSource)(nil), "k8s.io.api.core.v1.VolumeSource") proto.RegisterType((*VsphereVirtualDiskVolumeSource)(nil), "k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource") @@ -1574,6 +1580,28 @@ func (m *CSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) i += copy(dAtA[i:], m.FSType) + if len(m.VolumeAttributes) > 0 { + keysForVolumeAttributes := make([]string, 0, len(m.VolumeAttributes)) + for k := range m.VolumeAttributes { + keysForVolumeAttributes = append(keysForVolumeAttributes, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes) + for _, k := range keysForVolumeAttributes { + dAtA[i] = 0x2a + i++ + v := m.VolumeAttributes[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -6584,6 +6612,16 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeMode))) i += copy(dAtA[i:], *m.VolumeMode) } + if m.NodeAffinity != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.NodeAffinity.Size())) + n132, err := m.NodeAffinity.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n132 + } return i, nil } @@ -6661,27 +6699,27 @@ func (m *Pod) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n132, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n132 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n133, err := m.Spec.MarshalTo(dAtA[i:]) + n133, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n133 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n134, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n134, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n134 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n135, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n135 return i, nil } @@ -6746,11 +6784,11 @@ func (m *PodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LabelSelector.Size())) - n135, err := m.LabelSelector.MarshalTo(dAtA[i:]) + n136, err := m.LabelSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n135 + i += n136 } if len(m.Namespaces) > 0 { for _, s := range m.Namespaces { @@ -6896,19 +6934,19 @@ func (m *PodCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n136, err := m.LastProbeTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n136 - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n137, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n137, err := m.LastProbeTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n137 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n138, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n138 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7095,11 +7133,11 @@ func (m *PodList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n138, err := m.ListMeta.MarshalTo(dAtA[i:]) + n139, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n138 + i += n139 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7159,11 +7197,11 @@ func (m *PodLogOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SinceTime.Size())) - n139, err := m.SinceTime.MarshalTo(dAtA[i:]) + n140, err := m.SinceTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n139 + i += n140 } dAtA[i] = 0x30 i++ @@ -7252,11 +7290,11 @@ func (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n140, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n141, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n140 + i += n141 } if m.RunAsUser != nil { dAtA[i] = 0x10 @@ -7307,11 +7345,11 @@ func (m *PodSignature) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodController.Size())) - n141, err := m.PodController.MarshalTo(dAtA[i:]) + n142, err := m.PodController.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n141 + i += n142 } return i, nil } @@ -7435,11 +7473,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecurityContext.Size())) - n142, err := m.SecurityContext.MarshalTo(dAtA[i:]) + n143, err := m.SecurityContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n142 + i += n143 } if len(m.ImagePullSecrets) > 0 { for _, msg := range m.ImagePullSecrets { @@ -7471,11 +7509,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Affinity.Size())) - n143, err := m.Affinity.MarshalTo(dAtA[i:]) + n144, err := m.Affinity.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n143 + i += n144 } dAtA[i] = 0x9a i++ @@ -7556,11 +7594,23 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DNSConfig.Size())) - n144, err := m.DNSConfig.MarshalTo(dAtA[i:]) + n145, err := m.DNSConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n144 + i += n145 + } + if m.ShareProcessNamespace != nil { + dAtA[i] = 0xd8 + i++ + dAtA[i] = 0x1 + i++ + if *m.ShareProcessNamespace { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ } return i, nil } @@ -7616,11 +7666,11 @@ func (m *PodStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartTime.Size())) - n145, err := m.StartTime.MarshalTo(dAtA[i:]) + n146, err := m.StartTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n145 + i += n146 } if len(m.ContainerStatuses) > 0 { for _, msg := range m.ContainerStatuses { @@ -7675,19 +7725,19 @@ func (m *PodStatusResult) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n146, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n146 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n147, err := m.Status.MarshalTo(dAtA[i:]) + n147, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n147 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n148, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n148 return i, nil } @@ -7709,19 +7759,19 @@ func (m *PodTemplate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n148, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n148 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n149, err := m.Template.MarshalTo(dAtA[i:]) + n149, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n149 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n150, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n150 return i, nil } @@ -7743,11 +7793,11 @@ func (m *PodTemplateList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n150, err := m.ListMeta.MarshalTo(dAtA[i:]) + n151, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n151 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7781,19 +7831,19 @@ func (m *PodTemplateSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n151 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n152, err := m.Spec.MarshalTo(dAtA[i:]) + n152, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n152 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n153, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n153 return i, nil } @@ -7873,19 +7923,19 @@ func (m *PreferAvoidPodsEntry) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSignature.Size())) - n153, err := m.PodSignature.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n153 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.EvictionTime.Size())) - n154, err := m.EvictionTime.MarshalTo(dAtA[i:]) + n154, err := m.PodSignature.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n154 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.EvictionTime.Size())) + n155, err := m.EvictionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n155 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7918,11 +7968,11 @@ func (m *PreferredSchedulingTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Preference.Size())) - n155, err := m.Preference.MarshalTo(dAtA[i:]) + n156, err := m.Preference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n156 return i, nil } @@ -7944,11 +7994,11 @@ func (m *Probe) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Handler.Size())) - n156, err := m.Handler.MarshalTo(dAtA[i:]) + n157, err := m.Handler.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n157 dAtA[i] = 0x10 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.InitialDelaySeconds)) @@ -8098,11 +8148,11 @@ func (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n157, err := m.SecretRef.MarshalTo(dAtA[i:]) + n158, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n158 } dAtA[i] = 0x40 i++ @@ -8169,11 +8219,11 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n158, err := m.SecretRef.MarshalTo(dAtA[i:]) + n159, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n159 } dAtA[i] = 0x40 i++ @@ -8204,11 +8254,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n159, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n160, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n160 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -8240,27 +8290,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n160, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n160 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n161, err := m.Spec.MarshalTo(dAtA[i:]) + n161, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n161 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n162, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n162, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n162 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n163, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n163 return i, nil } @@ -8290,11 +8340,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n163, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n164, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n164 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -8324,11 +8374,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n164, err := m.ListMeta.MarshalTo(dAtA[i:]) + n165, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n165 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8390,11 +8440,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n165, err := m.Template.MarshalTo(dAtA[i:]) + n166, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n166 } dAtA[i] = 0x20 i++ @@ -8473,11 +8523,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n166, err := m.Divisor.MarshalTo(dAtA[i:]) + n167, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n167 return i, nil } @@ -8499,27 +8549,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n167, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n167 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n168, err := m.Spec.MarshalTo(dAtA[i:]) + n168, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n168 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n169, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n169, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n169 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n170, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n170 return i, nil } @@ -8541,11 +8591,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n170, err := m.ListMeta.MarshalTo(dAtA[i:]) + n171, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n171 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8600,11 +8650,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n171, err := (&v).MarshalTo(dAtA[i:]) + n172, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n172 } } if len(m.Scopes) > 0 { @@ -8664,11 +8714,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n172, err := (&v).MarshalTo(dAtA[i:]) + n173, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n173 } } if len(m.Used) > 0 { @@ -8695,11 +8745,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n173, err := (&v).MarshalTo(dAtA[i:]) + n174, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n174 } } return i, nil @@ -8744,11 +8794,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n174, err := (&v).MarshalTo(dAtA[i:]) + n175, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n175 } } if len(m.Requests) > 0 { @@ -8775,11 +8825,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n175, err := (&v).MarshalTo(dAtA[i:]) + n176, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n176 } } return i, nil @@ -8846,11 +8896,11 @@ func (m *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n176, err := m.SecretRef.MarshalTo(dAtA[i:]) + n177, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n177 } dAtA[i] = 0x20 i++ @@ -8918,11 +8968,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n177, err := m.SecretRef.MarshalTo(dAtA[i:]) + n178, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n178 } dAtA[i] = 0x20 i++ @@ -8981,11 +9031,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n178, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n179, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n178 + i += n179 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -9061,11 +9111,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n179, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n180, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n180 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -9097,11 +9147,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n180, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n181, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n181 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -9137,11 +9187,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n181, err := m.ListMeta.MarshalTo(dAtA[i:]) + n182, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n182 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9175,11 +9225,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n182, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n183, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n183 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9299,11 +9349,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n183, err := m.Capabilities.MarshalTo(dAtA[i:]) + n184, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n184 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -9319,11 +9369,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n184, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n185, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n185 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -9381,11 +9431,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n185, err := m.Reference.MarshalTo(dAtA[i:]) + n186, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n186 return i, nil } @@ -9407,27 +9457,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n186, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n186 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n187, err := m.Spec.MarshalTo(dAtA[i:]) + n187, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n187 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n188, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n188, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n188 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n189, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n189 return i, nil } @@ -9449,11 +9499,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n189, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n190, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n190 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -9509,11 +9559,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n190, err := m.ListMeta.MarshalTo(dAtA[i:]) + n191, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n191 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9547,11 +9597,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n191, err := m.ListMeta.MarshalTo(dAtA[i:]) + n192, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n191 + i += n192 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9596,11 +9646,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n192, err := m.TargetPort.MarshalTo(dAtA[i:]) + n193, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n192 + i += n193 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -9747,11 +9797,11 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SessionAffinityConfig.Size())) - n193, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) + n194, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n193 + i += n194 } return i, nil } @@ -9774,11 +9824,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n194, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n195, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n194 + i += n195 return i, nil } @@ -9801,11 +9851,11 @@ func (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClientIP.Size())) - n195, err := m.ClientIP.MarshalTo(dAtA[i:]) + n196, err := m.ClientIP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n195 + i += n196 } return i, nil } @@ -9849,11 +9899,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n196, err := m.SecretRef.MarshalTo(dAtA[i:]) + n197, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n196 + i += n197 } return i, nil } @@ -9897,11 +9947,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n197, err := m.SecretRef.MarshalTo(dAtA[i:]) + n198, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n197 + i += n198 } return i, nil } @@ -9950,11 +10000,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n198, err := m.Port.MarshalTo(dAtA[i:]) + n199, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n198 + i += n199 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -9993,11 +10043,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n199, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n200, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n199 + i += n200 } return i, nil } @@ -10063,11 +10113,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n200, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n201, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n200 + i += n201 return i, nil } @@ -10141,6 +10191,34 @@ func (m *VolumeMount) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *VolumeNodeAffinity) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeNodeAffinity) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Required != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Required.Size())) + n202, err := m.Required.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n202 + } + return i, nil +} + func (m *VolumeProjection) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -10160,31 +10238,31 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n201, err := m.Secret.MarshalTo(dAtA[i:]) + n203, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n201 + i += n203 } if m.DownwardAPI != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n202, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n204, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n202 + i += n204 } if m.ConfigMap != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n203, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n205, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n203 + i += n205 } return i, nil } @@ -10208,163 +10286,163 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n204, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n204 - } - if m.EmptyDir != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n205, err := m.EmptyDir.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n205 - } - if m.GCEPersistentDisk != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n206, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) + n206, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n206 } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x22 + if m.EmptyDir != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n207, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) + n207, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n207 } - if m.GitRepo != nil { - dAtA[i] = 0x2a + if m.GCEPersistentDisk != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n208, err := m.GitRepo.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) + n208, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n208 } - if m.Secret != nil { - dAtA[i] = 0x32 + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n209, err := m.Secret.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n209, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n209 } - if m.NFS != nil { - dAtA[i] = 0x3a + if m.GitRepo != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n210, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) + n210, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n210 } - if m.ISCSI != nil { - dAtA[i] = 0x42 + if m.Secret != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n211, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) + n211, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n211 } - if m.Glusterfs != nil { - dAtA[i] = 0x4a + if m.NFS != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n212, err := m.Glusterfs.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n212, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n212 } - if m.PersistentVolumeClaim != nil { - dAtA[i] = 0x52 + if m.ISCSI != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n213, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n213, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n213 } - if m.RBD != nil { - dAtA[i] = 0x5a + if m.Glusterfs != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n214, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n214, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n214 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.PersistentVolumeClaim != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n215, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) + n215, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n215 } - if m.Cinder != nil { - dAtA[i] = 0x6a + if m.RBD != nil { + dAtA[i] = 0x5a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n216, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n216, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n216 } - if m.CephFS != nil { - dAtA[i] = 0x72 + if m.FlexVolume != nil { + dAtA[i] = 0x62 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n217, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n217, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n217 } - if m.Flocker != nil { - dAtA[i] = 0x7a + if m.Cinder != nil { + dAtA[i] = 0x6a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n218, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n218, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n218 } + if m.CephFS != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n219, err := m.CephFS.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n219 + } + if m.Flocker != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n220, err := m.Flocker.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n220 + } if m.DownwardAPI != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n219, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n221, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n219 + i += n221 } if m.FC != nil { dAtA[i] = 0x8a @@ -10372,11 +10450,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n220, err := m.FC.MarshalTo(dAtA[i:]) + n222, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n220 + i += n222 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -10384,11 +10462,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n221, err := m.AzureFile.MarshalTo(dAtA[i:]) + n223, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n221 + i += n223 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -10396,11 +10474,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n222, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n224, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n222 + i += n224 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -10408,11 +10486,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n223, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n225, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n223 + i += n225 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -10420,11 +10498,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n224, err := m.Quobyte.MarshalTo(dAtA[i:]) + n226, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n224 + i += n226 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -10432,11 +10510,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n225, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n227, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n225 + i += n227 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -10444,11 +10522,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n226, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n228, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n226 + i += n228 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -10456,11 +10534,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n227, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n229, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n227 + i += n229 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -10468,11 +10546,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n228, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n230, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n228 + i += n230 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -10480,11 +10558,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n229, err := m.Projected.MarshalTo(dAtA[i:]) + n231, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n229 + i += n231 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -10492,11 +10570,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n230, err := m.StorageOS.MarshalTo(dAtA[i:]) + n232, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n230 + i += n232 } return i, nil } @@ -10556,11 +10634,11 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n231, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n233, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n231 + i += n233 return i, nil } @@ -10714,6 +10792,14 @@ func (m *CSIPersistentVolumeSource) Size() (n int) { n += 2 l = len(m.FSType) n += 1 + l + sovGenerated(uint64(l)) + if len(m.VolumeAttributes) > 0 { + for k, v := range m.VolumeAttributes { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } return n } @@ -12547,6 +12633,10 @@ func (m *PersistentVolumeSpec) Size() (n int) { l = len(*m.VolumeMode) n += 1 + l + sovGenerated(uint64(l)) } + if m.NodeAffinity != nil { + l = m.NodeAffinity.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -12905,6 +12995,9 @@ func (m *PodSpec) Size() (n int) { l = m.DNSConfig.Size() n += 2 + l + sovGenerated(uint64(l)) } + if m.ShareProcessNamespace != nil { + n += 3 + } return n } @@ -13832,6 +13925,16 @@ func (m *VolumeMount) Size() (n int) { return n } +func (m *VolumeNodeAffinity) Size() (n int) { + var l int + _ = l + if m.Required != nil { + l = m.Required.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *VolumeProjection) Size() (n int) { var l int _ = l @@ -14101,11 +14204,22 @@ func (this *CSIPersistentVolumeSource) String() string { if this == nil { return "nil" } + keysForVolumeAttributes := make([]string, 0, len(this.VolumeAttributes)) + for k := range this.VolumeAttributes { + keysForVolumeAttributes = append(keysForVolumeAttributes, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes) + mapStringForVolumeAttributes := "map[string]string{" + for _, k := range keysForVolumeAttributes { + mapStringForVolumeAttributes += fmt.Sprintf("%v: %v,", k, this.VolumeAttributes[k]) + } + mapStringForVolumeAttributes += "}" s := strings.Join([]string{`&CSIPersistentVolumeSource{`, `Driver:` + fmt.Sprintf("%v", this.Driver) + `,`, `VolumeHandle:` + fmt.Sprintf("%v", this.VolumeHandle) + `,`, `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `VolumeAttributes:` + mapStringForVolumeAttributes + `,`, `}`, }, "") return s @@ -15554,6 +15668,7 @@ func (this *PersistentVolumeSpec) String() string { `StorageClassName:` + fmt.Sprintf("%v", this.StorageClassName) + `,`, `MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`, `VolumeMode:` + valueToStringGenerated(this.VolumeMode) + `,`, + `NodeAffinity:` + strings.Replace(fmt.Sprintf("%v", this.NodeAffinity), "VolumeNodeAffinity", "VolumeNodeAffinity", 1) + `,`, `}`, }, "") return s @@ -15807,6 +15922,7 @@ func (this *PodSpec) String() string { `PriorityClassName:` + fmt.Sprintf("%v", this.PriorityClassName) + `,`, `Priority:` + valueToStringGenerated(this.Priority) + `,`, `DNSConfig:` + strings.Replace(fmt.Sprintf("%v", this.DNSConfig), "PodDNSConfig", "PodDNSConfig", 1) + `,`, + `ShareProcessNamespace:` + valueToStringGenerated(this.ShareProcessNamespace) + `,`, `}`, }, "") return s @@ -16616,6 +16732,16 @@ func (this *VolumeMount) String() string { }, "") return s } +func (this *VolumeNodeAffinity) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeNodeAffinity{`, + `Required:` + strings.Replace(fmt.Sprintf("%v", this.Required), "NodeSelector", "NodeSelector", 1) + `,`, + `}`, + }, "") + return s +} func (this *VolumeProjection) String() string { if this == nil { return "nil" @@ -17932,6 +18058,122 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { } m.FSType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeAttributes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.VolumeAttributes == nil { + m.VolumeAttributes = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.VolumeAttributes[mapkey] = mapvalue + } else { + var mapvalue string + m.VolumeAttributes[mapkey] = mapvalue + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -35540,6 +35782,39 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { s := PersistentVolumeMode(dAtA[iNdEx:postIndex]) m.VolumeMode = &s iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeAffinity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeAffinity == nil { + m.NodeAffinity = &VolumeNodeAffinity{} + } + if err := m.NodeAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -38787,6 +39062,27 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ShareProcessNamespace", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.ShareProcessNamespace = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -48287,6 +48583,89 @@ func (m *VolumeMount) Unmarshal(dAtA []byte) error { } return nil } +func (m *VolumeNodeAffinity) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeNodeAffinity: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeNodeAffinity: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Required == nil { + m.Required = &NodeSelector{} + } + if err := m.Required.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *VolumeProjection) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -49752,784 +50131,791 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 12452 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x90, 0x24, 0x47, - 0x56, 0xd8, 0x55, 0xf7, 0x7c, 0xf5, 0x9b, 0xef, 0xdc, 0x5d, 0xa9, 0x77, 0x24, 0x6d, 0xaf, 0x4a, - 0x77, 0xab, 0xd5, 0xd7, 0xcc, 0x69, 0x25, 0x9d, 0x96, 0xd3, 0x9d, 0x60, 0x66, 0x7a, 0x66, 0xb7, - 0xb5, 0x3b, 0xb3, 0xad, 0xec, 0xd9, 0xdd, 0x3b, 0x21, 0xce, 0x57, 0xd3, 0x9d, 0x33, 0x53, 0x9a, - 0x9a, 0xaa, 0x56, 0x55, 0xf5, 0xec, 0x8e, 0x02, 0x22, 0x6c, 0x19, 0xf0, 0x07, 0xfc, 0xb8, 0x30, - 0x84, 0x8d, 0x81, 0xc0, 0x11, 0x36, 0x0e, 0x38, 0x63, 0x3b, 0x02, 0x83, 0x01, 0x03, 0xb6, 0x31, - 0x76, 0x38, 0xe0, 0x0f, 0x06, 0xf3, 0xe3, 0x88, 0x20, 0x3c, 0x86, 0x85, 0xb0, 0x83, 0x1f, 0x76, - 0x38, 0xcc, 0x2f, 0xc6, 0xd8, 0x38, 0xf2, 0xb3, 0x32, 0xab, 0xab, 0xba, 0x7b, 0x56, 0xb3, 0x23, - 0x71, 0x71, 0xff, 0xba, 0xf3, 0xbd, 0x7c, 0x99, 0x95, 0x1f, 0x2f, 0x5f, 0xbe, 0x7c, 0x1f, 0xf0, - 0xc6, 0xee, 0xd5, 0x68, 0xde, 0x0d, 0x16, 0x76, 0x3b, 0x9b, 0x24, 0xf4, 0x49, 0x4c, 0xa2, 0x85, - 0x7d, 0xe2, 0xb7, 0x82, 0x70, 0x41, 0x00, 0x9c, 0xb6, 0xbb, 0xd0, 0x0c, 0x42, 0xb2, 0xb0, 0xff, - 0xf2, 0xc2, 0x36, 0xf1, 0x49, 0xe8, 0xc4, 0xa4, 0x35, 0xdf, 0x0e, 0x83, 0x38, 0x40, 0x88, 0xe3, - 0xcc, 0x3b, 0x6d, 0x77, 0x9e, 0xe2, 0xcc, 0xef, 0xbf, 0x3c, 0xf7, 0xd2, 0xb6, 0x1b, 0xef, 0x74, - 0x36, 0xe7, 0x9b, 0xc1, 0xde, 0xc2, 0x76, 0xb0, 0x1d, 0x2c, 0x30, 0xd4, 0xcd, 0xce, 0x16, 0xfb, - 0xc7, 0xfe, 0xb0, 0x5f, 0x9c, 0xc4, 0xdc, 0x5a, 0xd2, 0x0c, 0xb9, 0x1f, 0x13, 0x3f, 0x72, 0x03, - 0x3f, 0x7a, 0xc9, 0x69, 0xbb, 0x11, 0x09, 0xf7, 0x49, 0xb8, 0xd0, 0xde, 0xdd, 0xa6, 0xb0, 0xc8, - 0x44, 0x58, 0xd8, 0x7f, 0x79, 0x93, 0xc4, 0x4e, 0x57, 0x8f, 0xe6, 0x5e, 0x4d, 0xc8, 0xed, 0x39, - 0xcd, 0x1d, 0xd7, 0x27, 0xe1, 0x81, 0xa4, 0xb1, 0x10, 0x92, 0x28, 0xe8, 0x84, 0x4d, 0x72, 0xac, - 0x5a, 0xd1, 0xc2, 0x1e, 0x89, 0x9d, 0x8c, 0xaf, 0x9f, 0x5b, 0xc8, 0xab, 0x15, 0x76, 0xfc, 0xd8, - 0xdd, 0xeb, 0x6e, 0xe6, 0x73, 0xfd, 0x2a, 0x44, 0xcd, 0x1d, 0xb2, 0xe7, 0x74, 0xd5, 0x7b, 0x25, - 0xaf, 0x5e, 0x27, 0x76, 0xbd, 0x05, 0xd7, 0x8f, 0xa3, 0x38, 0x4c, 0x57, 0xb2, 0xbf, 0x61, 0xc1, - 0xc5, 0xc5, 0xbb, 0x8d, 0x15, 0xcf, 0x89, 0x62, 0xb7, 0xb9, 0xe4, 0x05, 0xcd, 0xdd, 0x46, 0x1c, - 0x84, 0xe4, 0x4e, 0xe0, 0x75, 0xf6, 0x48, 0x83, 0x0d, 0x04, 0x7a, 0x11, 0xc6, 0xf6, 0xd9, 0xff, - 0x5a, 0xb5, 0x6c, 0x5d, 0xb4, 0x2e, 0x97, 0x96, 0x66, 0x7e, 0xe3, 0xb0, 0xf2, 0xa9, 0x07, 0x87, - 0x95, 0xb1, 0x3b, 0xa2, 0x1c, 0x2b, 0x0c, 0x74, 0x09, 0x46, 0xb6, 0xa2, 0x8d, 0x83, 0x36, 0x29, - 0x17, 0x18, 0xee, 0x94, 0xc0, 0x1d, 0x59, 0x6d, 0xd0, 0x52, 0x2c, 0xa0, 0x68, 0x01, 0x4a, 0x6d, - 0x27, 0x8c, 0xdd, 0xd8, 0x0d, 0xfc, 0x72, 0xf1, 0xa2, 0x75, 0x79, 0x78, 0x69, 0x56, 0xa0, 0x96, - 0xea, 0x12, 0x80, 0x13, 0x1c, 0xda, 0x8d, 0x90, 0x38, 0xad, 0x5b, 0xbe, 0x77, 0x50, 0x1e, 0xba, - 0x68, 0x5d, 0x1e, 0x4b, 0xba, 0x81, 0x45, 0x39, 0x56, 0x18, 0xf6, 0x8f, 0x16, 0x60, 0x6c, 0x71, - 0x6b, 0xcb, 0xf5, 0xdd, 0xf8, 0x00, 0xdd, 0x81, 0x09, 0x3f, 0x68, 0x11, 0xf9, 0x9f, 0x7d, 0xc5, - 0xf8, 0x95, 0x8b, 0xf3, 0xdd, 0x2b, 0x73, 0x7e, 0x5d, 0xc3, 0x5b, 0x9a, 0x79, 0x70, 0x58, 0x99, - 0xd0, 0x4b, 0xb0, 0x41, 0x07, 0x61, 0x18, 0x6f, 0x07, 0x2d, 0x45, 0xb6, 0xc0, 0xc8, 0x56, 0xb2, - 0xc8, 0xd6, 0x13, 0xb4, 0xa5, 0xe9, 0x07, 0x87, 0x95, 0x71, 0xad, 0x00, 0xeb, 0x44, 0xd0, 0x26, - 0x4c, 0xd3, 0xbf, 0x7e, 0xec, 0x2a, 0xba, 0x45, 0x46, 0xf7, 0x99, 0x3c, 0xba, 0x1a, 0xea, 0xd2, - 0x99, 0x07, 0x87, 0x95, 0xe9, 0x54, 0x21, 0x4e, 0x13, 0xb4, 0x3f, 0x80, 0xa9, 0xc5, 0x38, 0x76, - 0x9a, 0x3b, 0xa4, 0xc5, 0x67, 0x10, 0xbd, 0x0a, 0x43, 0xbe, 0xb3, 0x47, 0xc4, 0xfc, 0x5e, 0x14, - 0x03, 0x3b, 0xb4, 0xee, 0xec, 0x91, 0xa3, 0xc3, 0xca, 0xcc, 0x6d, 0xdf, 0x7d, 0xbf, 0x23, 0x56, - 0x05, 0x2d, 0xc3, 0x0c, 0x1b, 0x5d, 0x01, 0x68, 0x91, 0x7d, 0xb7, 0x49, 0xea, 0x4e, 0xbc, 0x23, - 0xe6, 0x1b, 0x89, 0xba, 0x50, 0x55, 0x10, 0xac, 0x61, 0xd9, 0xf7, 0xa1, 0xb4, 0xb8, 0x1f, 0xb8, - 0xad, 0x7a, 0xd0, 0x8a, 0xd0, 0x2e, 0x4c, 0xb7, 0x43, 0xb2, 0x45, 0x42, 0x55, 0x54, 0xb6, 0x2e, - 0x16, 0x2f, 0x8f, 0x5f, 0xb9, 0x9c, 0xf9, 0xb1, 0x26, 0xea, 0x8a, 0x1f, 0x87, 0x07, 0x4b, 0x8f, - 0x8b, 0xf6, 0xa6, 0x53, 0x50, 0x9c, 0xa6, 0x6c, 0xff, 0x87, 0x02, 0x9c, 0x5b, 0xfc, 0xa0, 0x13, - 0x92, 0xaa, 0x1b, 0xed, 0xa6, 0x57, 0x78, 0xcb, 0x8d, 0x76, 0xd7, 0x93, 0x11, 0x50, 0x4b, 0xab, - 0x2a, 0xca, 0xb1, 0xc2, 0x40, 0x2f, 0xc1, 0x28, 0xfd, 0x7d, 0x1b, 0xd7, 0xc4, 0x27, 0x9f, 0x11, - 0xc8, 0xe3, 0x55, 0x27, 0x76, 0xaa, 0x1c, 0x84, 0x25, 0x0e, 0x5a, 0x83, 0xf1, 0x26, 0xdb, 0x90, - 0xdb, 0x6b, 0x41, 0x8b, 0xb0, 0xc9, 0x2c, 0x2d, 0xbd, 0x40, 0xd1, 0x97, 0x93, 0xe2, 0xa3, 0xc3, - 0x4a, 0x99, 0xf7, 0x4d, 0x90, 0xd0, 0x60, 0x58, 0xaf, 0x8f, 0x6c, 0xb5, 0xbf, 0x86, 0x18, 0x25, - 0xc8, 0xd8, 0x5b, 0x97, 0xb5, 0xad, 0x32, 0xcc, 0xb6, 0xca, 0x44, 0xf6, 0x36, 0x41, 0x2f, 0xc3, - 0xd0, 0xae, 0xeb, 0xb7, 0xca, 0x23, 0x8c, 0xd6, 0x53, 0x74, 0xce, 0x6f, 0xb8, 0x7e, 0xeb, 0xe8, - 0xb0, 0x32, 0x6b, 0x74, 0x87, 0x16, 0x62, 0x86, 0x6a, 0xff, 0xa9, 0x05, 0x15, 0x06, 0x5b, 0x75, - 0x3d, 0x52, 0x27, 0x61, 0xe4, 0x46, 0x31, 0xf1, 0x63, 0x63, 0x40, 0xaf, 0x00, 0x44, 0xa4, 0x19, - 0x92, 0x58, 0x1b, 0x52, 0xb5, 0x30, 0x1a, 0x0a, 0x82, 0x35, 0x2c, 0xca, 0x10, 0xa2, 0x1d, 0x27, - 0x64, 0xeb, 0x4b, 0x0c, 0xac, 0x62, 0x08, 0x0d, 0x09, 0xc0, 0x09, 0x8e, 0xc1, 0x10, 0x8a, 0xfd, - 0x18, 0x02, 0xfa, 0x22, 0x4c, 0x27, 0x8d, 0x45, 0x6d, 0xa7, 0x29, 0x07, 0x90, 0x6d, 0x99, 0x86, - 0x09, 0xc2, 0x69, 0x5c, 0xfb, 0x9f, 0x58, 0x62, 0xf1, 0xd0, 0xaf, 0xfe, 0x84, 0x7f, 0xab, 0xfd, - 0x4b, 0x16, 0x8c, 0x2e, 0xb9, 0x7e, 0xcb, 0xf5, 0xb7, 0xd1, 0x57, 0x61, 0x8c, 0x9e, 0x4d, 0x2d, - 0x27, 0x76, 0x04, 0xdf, 0xfb, 0xac, 0xb6, 0xb7, 0xd4, 0x51, 0x31, 0xdf, 0xde, 0xdd, 0xa6, 0x05, - 0xd1, 0x3c, 0xc5, 0xa6, 0xbb, 0xed, 0xd6, 0xe6, 0x7b, 0xa4, 0x19, 0xaf, 0x91, 0xd8, 0x49, 0x3e, - 0x27, 0x29, 0xc3, 0x8a, 0x2a, 0xba, 0x01, 0x23, 0xb1, 0x13, 0x6e, 0x93, 0x58, 0x30, 0xc0, 0x4c, - 0x46, 0xc5, 0x6b, 0x62, 0xba, 0x23, 0x89, 0xdf, 0x24, 0xc9, 0xb1, 0xb0, 0xc1, 0xaa, 0x62, 0x41, - 0xc2, 0xfe, 0x5d, 0x0b, 0xce, 0x2f, 0x37, 0x6a, 0x39, 0xeb, 0xea, 0x12, 0x8c, 0xb4, 0x42, 0x77, - 0x9f, 0x84, 0x62, 0x9c, 0x15, 0x95, 0x2a, 0x2b, 0xc5, 0x02, 0x8a, 0xae, 0xc2, 0x04, 0x3f, 0x90, - 0xae, 0x3b, 0x7e, 0xcb, 0x93, 0x43, 0x7c, 0x56, 0x60, 0x4f, 0xdc, 0xd1, 0x60, 0xd8, 0xc0, 0x3c, - 0xe6, 0xa2, 0xba, 0x94, 0xda, 0x8c, 0x39, 0x87, 0x9d, 0xdd, 0x84, 0x89, 0x65, 0xa7, 0xed, 0x6c, - 0xba, 0x9e, 0x1b, 0xbb, 0x24, 0x42, 0xcf, 0x42, 0xd1, 0x69, 0xb5, 0x18, 0xaf, 0x2b, 0x2d, 0x9d, - 0x7b, 0x70, 0x58, 0x29, 0x2e, 0xb6, 0xe8, 0xa6, 0x03, 0x85, 0x75, 0x80, 0x29, 0x06, 0x7a, 0x1e, - 0x86, 0x5a, 0x61, 0xd0, 0x2e, 0x17, 0x18, 0xe6, 0x63, 0x74, 0x7f, 0x56, 0xc3, 0xa0, 0x9d, 0x42, - 0x65, 0x38, 0xf6, 0xaf, 0x15, 0xe0, 0xc9, 0x65, 0xd2, 0xde, 0x59, 0x6d, 0xe4, 0x8c, 0xde, 0x65, - 0x18, 0xdb, 0x0b, 0x7c, 0x37, 0x0e, 0xc2, 0x48, 0x34, 0xcd, 0xd8, 0xc2, 0x9a, 0x28, 0xc3, 0x0a, - 0x8a, 0x2e, 0xc2, 0x50, 0x3b, 0x61, 0xe9, 0x13, 0xf2, 0x38, 0x60, 0xcc, 0x9c, 0x41, 0x28, 0x46, - 0x27, 0x22, 0xa1, 0x60, 0x67, 0x0a, 0xe3, 0x76, 0x44, 0x42, 0xcc, 0x20, 0xc9, 0xbe, 0xa0, 0x3b, - 0x46, 0x8c, 0x4f, 0x6a, 0x5f, 0x50, 0x08, 0xd6, 0xb0, 0x50, 0x1d, 0x4a, 0xfc, 0x1f, 0x26, 0x5b, - 0x8c, 0x73, 0xe5, 0xac, 0xa6, 0x86, 0x44, 0x12, 0xab, 0x69, 0x92, 0x6d, 0x1c, 0x59, 0x88, 0x13, - 0x22, 0xc6, 0x7c, 0x8e, 0xf4, 0xdd, 0x38, 0xbf, 0x52, 0x00, 0xc4, 0x87, 0xf0, 0x2f, 0xd9, 0xc0, - 0xdd, 0xee, 0x1e, 0xb8, 0xcc, 0x23, 0xf4, 0x66, 0xd0, 0x74, 0xbc, 0xf4, 0x5e, 0x3c, 0xa9, 0xd1, - 0xfb, 0x11, 0x0b, 0xd0, 0xb2, 0xeb, 0xb7, 0x48, 0x78, 0x0a, 0xf2, 0xe3, 0xf1, 0x38, 0xe2, 0x4d, - 0x98, 0x5a, 0xf6, 0x5c, 0xe2, 0xc7, 0xb5, 0xfa, 0x72, 0xe0, 0x6f, 0xb9, 0xdb, 0xe8, 0xf3, 0x30, - 0x45, 0xc5, 0xe9, 0xa0, 0x13, 0x37, 0x48, 0x33, 0xf0, 0x99, 0xe4, 0x41, 0x85, 0x50, 0xf4, 0xe0, - 0xb0, 0x32, 0xb5, 0x61, 0x40, 0x70, 0x0a, 0xd3, 0xfe, 0x7d, 0xfa, 0xa1, 0xc1, 0x5e, 0x3b, 0xf0, - 0x89, 0x1f, 0x2f, 0x07, 0x7e, 0x8b, 0x4b, 0xa8, 0x9f, 0x87, 0xa1, 0x98, 0x76, 0x9c, 0x7f, 0xe4, - 0x25, 0x39, 0xb5, 0xb4, 0xbb, 0x47, 0x87, 0x95, 0xc7, 0xba, 0x6b, 0xb0, 0x0f, 0x62, 0x75, 0xd0, - 0xb7, 0xc1, 0x48, 0x14, 0x3b, 0x71, 0x27, 0x12, 0x9f, 0xfd, 0xb4, 0xfc, 0xec, 0x06, 0x2b, 0x3d, - 0x3a, 0xac, 0x4c, 0xab, 0x6a, 0xbc, 0x08, 0x8b, 0x0a, 0xe8, 0x39, 0x18, 0xdd, 0x23, 0x51, 0xe4, - 0x6c, 0x4b, 0xe1, 0x62, 0x5a, 0xd4, 0x1d, 0x5d, 0xe3, 0xc5, 0x58, 0xc2, 0xd1, 0x33, 0x30, 0x4c, - 0xc2, 0x30, 0x08, 0xc5, 0xaa, 0x9a, 0x14, 0x88, 0xc3, 0x2b, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x9f, - 0x2c, 0x98, 0x56, 0x7d, 0xe5, 0x6d, 0x9d, 0xc2, 0x29, 0xf2, 0x0e, 0x40, 0x53, 0x7e, 0x60, 0xc4, - 0xf8, 0xdd, 0xf8, 0x95, 0x4b, 0x59, 0x4b, 0xb8, 0x7b, 0x18, 0x13, 0xca, 0xaa, 0x28, 0xc2, 0x1a, - 0x35, 0xfb, 0x5f, 0x5b, 0x70, 0x26, 0xf5, 0x45, 0x37, 0xdd, 0x28, 0x46, 0xef, 0x76, 0x7d, 0xd5, - 0xfc, 0x60, 0x5f, 0x45, 0x6b, 0xb3, 0x6f, 0x52, 0x6b, 0x4e, 0x96, 0x68, 0x5f, 0x74, 0x1d, 0x86, - 0xdd, 0x98, 0xec, 0xc9, 0x8f, 0x79, 0xa6, 0xe7, 0xc7, 0xf0, 0x5e, 0x25, 0x33, 0x52, 0xa3, 0x35, - 0x31, 0x27, 0x60, 0xff, 0x50, 0x11, 0x4a, 0x7c, 0xd9, 0xae, 0x39, 0xed, 0x53, 0x98, 0x8b, 0x1a, - 0x0c, 0x31, 0xea, 0xbc, 0xe3, 0xcf, 0x66, 0x77, 0x5c, 0x74, 0x67, 0x9e, 0x8a, 0x88, 0x5c, 0x14, - 0x57, 0xcc, 0x8c, 0x16, 0x61, 0x46, 0x02, 0x39, 0x00, 0x9b, 0xae, 0xef, 0x84, 0x07, 0xb4, 0xac, - 0x5c, 0x64, 0x04, 0x5f, 0xea, 0x4d, 0x70, 0x49, 0xe1, 0x73, 0xb2, 0xaa, 0xaf, 0x09, 0x00, 0x6b, - 0x44, 0xe7, 0x5e, 0x87, 0x92, 0x42, 0x46, 0x33, 0x50, 0xdc, 0x25, 0xfc, 0x86, 0x57, 0xc2, 0xf4, - 0x27, 0x3a, 0x0b, 0xc3, 0xfb, 0x8e, 0xd7, 0x11, 0xfc, 0x04, 0xf3, 0x3f, 0x9f, 0x2f, 0x5c, 0xb5, - 0xe6, 0xbe, 0x08, 0xd3, 0xa9, 0xb6, 0xfa, 0x55, 0x9f, 0xd0, 0xaa, 0xdb, 0xbf, 0xcc, 0xb8, 0x80, - 0xe8, 0xf5, 0x8a, 0xbf, 0x2f, 0xd8, 0xdd, 0x07, 0x70, 0xd6, 0xcb, 0xe0, 0xb2, 0x62, 0xaa, 0x06, - 0xe7, 0xca, 0x4f, 0x8a, 0xcf, 0x3e, 0x9b, 0x05, 0xc5, 0x99, 0x6d, 0xd0, 0x83, 0x2a, 0x68, 0xd3, - 0x35, 0xef, 0x78, 0xac, 0xbf, 0x42, 0xf0, 0xbf, 0x25, 0xca, 0xb0, 0x82, 0x52, 0x16, 0x76, 0x56, - 0x75, 0xfe, 0x06, 0x39, 0x68, 0x10, 0x8f, 0x34, 0xe3, 0x20, 0xfc, 0x58, 0xbb, 0xff, 0x14, 0x1f, - 0x7d, 0xce, 0x01, 0xc7, 0x05, 0x81, 0xe2, 0x0d, 0x72, 0xc0, 0xa7, 0x42, 0xff, 0xba, 0x62, 0xcf, - 0xaf, 0xfb, 0x59, 0x0b, 0x26, 0xd5, 0xd7, 0x9d, 0xc2, 0x56, 0x5f, 0x32, 0xb7, 0xfa, 0x53, 0x3d, - 0x17, 0x78, 0xce, 0x26, 0xff, 0x0b, 0xc6, 0xa4, 0x04, 0x4e, 0x3d, 0x0c, 0xe8, 0xd0, 0xd0, 0x53, - 0xe5, 0xe3, 0x9c, 0x90, 0x41, 0xbe, 0xeb, 0x06, 0x39, 0xd8, 0x08, 0xa8, 0x80, 0x93, 0xfd, 0x5d, - 0xc6, 0xac, 0x0d, 0xf5, 0x9c, 0xb5, 0x9f, 0x2f, 0xc0, 0x39, 0x35, 0x02, 0x86, 0x08, 0xf1, 0x97, - 0x7d, 0x0c, 0x5e, 0x86, 0xf1, 0x16, 0xd9, 0x72, 0x3a, 0x5e, 0xac, 0x74, 0x00, 0xc3, 0x5c, 0x0f, - 0x54, 0x4d, 0x8a, 0xb1, 0x8e, 0x73, 0x8c, 0x61, 0xfb, 0xc9, 0x71, 0x76, 0x3a, 0xc4, 0x0e, 0x5d, - 0xc1, 0x54, 0xbe, 0xd4, 0x34, 0x39, 0x13, 0xba, 0x26, 0x47, 0x68, 0x6d, 0x9e, 0x81, 0x61, 0x77, - 0x8f, 0x4a, 0x0b, 0x05, 0x53, 0x08, 0xa8, 0xd1, 0x42, 0xcc, 0x61, 0xe8, 0x33, 0x30, 0xda, 0x0c, - 0xf6, 0xf6, 0x1c, 0xbf, 0xc5, 0x98, 0x76, 0x69, 0x69, 0x9c, 0x0a, 0x14, 0xcb, 0xbc, 0x08, 0x4b, - 0x18, 0x7a, 0x12, 0x86, 0x9c, 0x70, 0x3b, 0x2a, 0x0f, 0x31, 0x9c, 0x31, 0xda, 0xd2, 0x62, 0xb8, - 0x1d, 0x61, 0x56, 0x4a, 0x25, 0xd9, 0x7b, 0x41, 0xb8, 0xeb, 0xfa, 0xdb, 0x55, 0x37, 0x64, 0x62, - 0xa9, 0x26, 0xc9, 0xde, 0x55, 0x10, 0xac, 0x61, 0xa1, 0x55, 0x18, 0x6e, 0x07, 0x61, 0x1c, 0x95, - 0x47, 0xd8, 0x70, 0x3f, 0x9d, 0xb3, 0x95, 0xf8, 0xd7, 0xd6, 0x83, 0x30, 0x4e, 0x3e, 0x80, 0xfe, - 0x8b, 0x30, 0xaf, 0x8e, 0xbe, 0x0d, 0x8a, 0xc4, 0xdf, 0x2f, 0x8f, 0x32, 0x2a, 0x73, 0x59, 0x54, - 0x56, 0xfc, 0xfd, 0x3b, 0x4e, 0x98, 0xf0, 0x99, 0x15, 0x7f, 0x1f, 0xd3, 0x3a, 0xe8, 0xcb, 0x50, - 0x92, 0x5a, 0xe0, 0xa8, 0x3c, 0x96, 0xbf, 0xc4, 0xb0, 0x40, 0xc2, 0xe4, 0xfd, 0x8e, 0x1b, 0x92, - 0x3d, 0xe2, 0xc7, 0x51, 0x72, 0x8f, 0x97, 0xd0, 0x08, 0x27, 0xd4, 0xd0, 0x97, 0xe5, 0xc5, 0x74, - 0x2d, 0xe8, 0xf8, 0x71, 0x54, 0x2e, 0xb1, 0xee, 0x65, 0xaa, 0x0c, 0xef, 0x24, 0x78, 0xe9, 0x9b, - 0x2b, 0xaf, 0x8c, 0x0d, 0x52, 0x08, 0xc3, 0xa4, 0xe7, 0xee, 0x13, 0x9f, 0x44, 0x51, 0x3d, 0x0c, - 0x36, 0x49, 0x19, 0x58, 0xcf, 0xcf, 0x67, 0x6b, 0xd2, 0x82, 0x4d, 0xb2, 0x34, 0xfb, 0xe0, 0xb0, - 0x32, 0x79, 0x53, 0xaf, 0x83, 0x4d, 0x12, 0xe8, 0x36, 0x4c, 0x51, 0x11, 0xda, 0x4d, 0x88, 0x8e, - 0xf7, 0x23, 0xca, 0xe4, 0x67, 0x6c, 0x54, 0xc2, 0x29, 0x22, 0xe8, 0x2d, 0x28, 0x79, 0xee, 0x16, - 0x69, 0x1e, 0x34, 0x3d, 0x52, 0x9e, 0x60, 0x14, 0x33, 0xb7, 0xd5, 0x4d, 0x89, 0xc4, 0xaf, 0x28, - 0xea, 0x2f, 0x4e, 0xaa, 0xa3, 0x3b, 0xf0, 0x58, 0x4c, 0xc2, 0x3d, 0xd7, 0x77, 0xe8, 0x76, 0x10, - 0x12, 0x2f, 0xd3, 0x47, 0x4e, 0xb2, 0xf5, 0x76, 0x41, 0x0c, 0xdd, 0x63, 0x1b, 0x99, 0x58, 0x38, - 0xa7, 0x36, 0xba, 0x05, 0xd3, 0x6c, 0x27, 0xd4, 0x3b, 0x9e, 0x57, 0x0f, 0x3c, 0xb7, 0x79, 0x50, - 0x9e, 0x62, 0x04, 0x3f, 0x23, 0x15, 0x8e, 0x35, 0x13, 0x4c, 0xef, 0xe4, 0xc9, 0x3f, 0x9c, 0xae, - 0x8d, 0x36, 0x99, 0x02, 0xaa, 0x13, 0xba, 0xf1, 0x01, 0x5d, 0xbf, 0xe4, 0x7e, 0x5c, 0x9e, 0xee, - 0x79, 0xc3, 0xd5, 0x51, 0x95, 0x96, 0x4a, 0x2f, 0xc4, 0x69, 0x82, 0x74, 0x6b, 0x47, 0x71, 0xcb, - 0xf5, 0xcb, 0x33, 0x8c, 0x63, 0xa8, 0x9d, 0xd1, 0xa0, 0x85, 0x98, 0xc3, 0x98, 0xf2, 0x89, 0xfe, - 0xb8, 0x45, 0x39, 0xe8, 0x2c, 0x43, 0x4c, 0x94, 0x4f, 0x12, 0x80, 0x13, 0x1c, 0x7a, 0x2c, 0xc7, - 0xf1, 0x41, 0x19, 0x31, 0x54, 0xb5, 0x5d, 0x36, 0x36, 0xbe, 0x8c, 0x69, 0x39, 0xba, 0x09, 0xa3, - 0xc4, 0xdf, 0x5f, 0x0d, 0x83, 0xbd, 0xf2, 0x99, 0xfc, 0x3d, 0xbb, 0xc2, 0x51, 0x38, 0x43, 0x4f, - 0xae, 0x28, 0xa2, 0x18, 0x4b, 0x12, 0xe8, 0x3e, 0x94, 0x33, 0x66, 0x84, 0x4f, 0xc0, 0x59, 0x36, - 0x01, 0x5f, 0x10, 0x75, 0xcb, 0x1b, 0x39, 0x78, 0x47, 0x3d, 0x60, 0x38, 0x97, 0x3a, 0xfa, 0x2e, - 0x98, 0xe4, 0x1b, 0x8a, 0x6b, 0xae, 0xa3, 0xf2, 0x39, 0xf6, 0x35, 0x17, 0xf3, 0x37, 0x27, 0x47, - 0x5c, 0x3a, 0x27, 0x3a, 0x34, 0xa9, 0x97, 0x46, 0xd8, 0xa4, 0x66, 0x6f, 0xc2, 0x94, 0xe2, 0x5b, - 0x6c, 0xe9, 0xa0, 0x0a, 0x0c, 0x53, 0x86, 0x2c, 0x75, 0x0a, 0x25, 0x3a, 0x53, 0x4c, 0xe3, 0x88, - 0x79, 0x39, 0x9b, 0x29, 0xf7, 0x03, 0xb2, 0x74, 0x10, 0x13, 0x7e, 0x2f, 0x2c, 0x6a, 0x33, 0x25, - 0x01, 0x38, 0xc1, 0xb1, 0xff, 0x1f, 0x97, 0x7b, 0x12, 0xe6, 0x38, 0xc0, 0x71, 0xf0, 0x22, 0x8c, - 0xed, 0x04, 0x51, 0x4c, 0xb1, 0x59, 0x1b, 0xc3, 0x89, 0xa4, 0x73, 0x5d, 0x94, 0x63, 0x85, 0x81, - 0xde, 0x80, 0xc9, 0xa6, 0xde, 0x80, 0x38, 0xcb, 0xd4, 0x10, 0x18, 0xad, 0x63, 0x13, 0x17, 0x5d, - 0x85, 0x31, 0xf6, 0xee, 0xd4, 0x0c, 0x3c, 0x71, 0x03, 0x95, 0x07, 0xf2, 0x58, 0x5d, 0x94, 0x1f, - 0x69, 0xbf, 0xb1, 0xc2, 0x46, 0x97, 0x60, 0x84, 0x76, 0xa1, 0x56, 0x17, 0xa7, 0x88, 0xd2, 0x0a, - 0x5c, 0x67, 0xa5, 0x58, 0x40, 0xed, 0xbf, 0x53, 0xd0, 0x46, 0x99, 0xde, 0xa9, 0x08, 0xaa, 0xc3, - 0xe8, 0x3d, 0xc7, 0x8d, 0x5d, 0x7f, 0x5b, 0x88, 0x0b, 0xcf, 0xf5, 0x3c, 0x52, 0x58, 0xa5, 0xbb, - 0xbc, 0x02, 0x3f, 0xf4, 0xc4, 0x1f, 0x2c, 0xc9, 0x50, 0x8a, 0x61, 0xc7, 0xf7, 0x29, 0xc5, 0xc2, - 0xa0, 0x14, 0x31, 0xaf, 0xc0, 0x29, 0x8a, 0x3f, 0x58, 0x92, 0x41, 0xef, 0x02, 0xc8, 0x65, 0x49, - 0x5a, 0xe2, 0xbd, 0xe7, 0xc5, 0xfe, 0x44, 0x37, 0x54, 0x9d, 0xa5, 0x29, 0x7a, 0xa4, 0x26, 0xff, - 0xb1, 0x46, 0xcf, 0x8e, 0x99, 0x58, 0xd5, 0xdd, 0x19, 0xf4, 0x9d, 0x94, 0x13, 0x38, 0x61, 0x4c, - 0x5a, 0x8b, 0xb1, 0x18, 0x9c, 0xe7, 0x07, 0x93, 0x8a, 0x37, 0xdc, 0x3d, 0xa2, 0x73, 0x0d, 0x41, - 0x04, 0x27, 0xf4, 0xec, 0x5f, 0x2c, 0x42, 0x39, 0xaf, 0xbb, 0x74, 0xd1, 0x91, 0xfb, 0x6e, 0xbc, - 0x4c, 0xa5, 0x21, 0xcb, 0x5c, 0x74, 0x2b, 0xa2, 0x1c, 0x2b, 0x0c, 0x3a, 0xfb, 0x91, 0xbb, 0x2d, - 0x2f, 0x35, 0xc3, 0xc9, 0xec, 0x37, 0x58, 0x29, 0x16, 0x50, 0x8a, 0x17, 0x12, 0x27, 0x12, 0x0f, - 0x8a, 0xda, 0x2a, 0xc1, 0xac, 0x14, 0x0b, 0xa8, 0xae, 0x31, 0x19, 0xea, 0xa3, 0x31, 0x31, 0x86, - 0x68, 0xf8, 0x64, 0x87, 0x08, 0x7d, 0x05, 0x60, 0xcb, 0xf5, 0xdd, 0x68, 0x87, 0x51, 0x1f, 0x39, - 0x36, 0x75, 0x25, 0x4b, 0xad, 0x2a, 0x2a, 0x58, 0xa3, 0x88, 0x5e, 0x83, 0x71, 0xb5, 0x01, 0x6b, - 0xd5, 0xf2, 0xa8, 0xf9, 0x5a, 0x95, 0x70, 0xa3, 0x2a, 0xd6, 0xf1, 0xec, 0xf7, 0xd2, 0xeb, 0x45, - 0xec, 0x00, 0x6d, 0x7c, 0xad, 0x41, 0xc7, 0xb7, 0xd0, 0x7b, 0x7c, 0xed, 0x5f, 0x2f, 0xc2, 0xb4, - 0xd1, 0x58, 0x27, 0x1a, 0x80, 0x67, 0x5d, 0xa3, 0xe7, 0x9c, 0x13, 0x13, 0xb1, 0xff, 0xec, 0xfe, - 0x5b, 0x45, 0x3f, 0x0b, 0xe9, 0x0e, 0xe0, 0xf5, 0xd1, 0x57, 0xa0, 0xe4, 0x39, 0x11, 0xd3, 0xbe, - 0x10, 0xb1, 0xef, 0x06, 0x21, 0x96, 0xdc, 0x23, 0x9c, 0x28, 0xd6, 0x8e, 0x1a, 0x4e, 0x3b, 0x21, - 0x49, 0x0f, 0x64, 0x2a, 0xfb, 0xc8, 0x17, 0x6b, 0xd5, 0x09, 0x2a, 0x20, 0x1d, 0x60, 0x0e, 0x43, - 0x57, 0x61, 0x22, 0x24, 0x6c, 0x55, 0x2c, 0x53, 0x51, 0x8e, 0x2d, 0xb3, 0xe1, 0x44, 0xe6, 0xc3, - 0x1a, 0x0c, 0x1b, 0x98, 0x89, 0x28, 0x3f, 0xd2, 0x43, 0x94, 0x7f, 0x0e, 0x46, 0xd9, 0x0f, 0xb5, - 0x02, 0xd4, 0x6c, 0xd4, 0x78, 0x31, 0x96, 0xf0, 0xf4, 0x82, 0x19, 0x1b, 0x70, 0xc1, 0x3c, 0x0f, - 0x53, 0x55, 0x87, 0xec, 0x05, 0xfe, 0x8a, 0xdf, 0x6a, 0x07, 0xae, 0x1f, 0xa3, 0x32, 0x0c, 0xb1, - 0xd3, 0x81, 0xef, 0xed, 0x21, 0x4a, 0x01, 0x0f, 0x51, 0xc1, 0xdc, 0xfe, 0x9d, 0x02, 0x4c, 0x56, - 0x89, 0x47, 0x62, 0xc2, 0xaf, 0x32, 0x11, 0x5a, 0x05, 0xb4, 0x1d, 0x3a, 0x4d, 0x52, 0x27, 0xa1, - 0x1b, 0xb4, 0x74, 0x6d, 0x6c, 0x91, 0xbd, 0x78, 0xa0, 0x6b, 0x5d, 0x50, 0x9c, 0x51, 0x03, 0xbd, - 0x03, 0x93, 0xed, 0x90, 0x18, 0x4a, 0x44, 0x2b, 0x4f, 0x1a, 0xa9, 0xeb, 0x88, 0x5c, 0x10, 0x36, - 0x8a, 0xb0, 0x49, 0x0a, 0x7d, 0x07, 0xcc, 0x04, 0x61, 0x7b, 0xc7, 0xf1, 0xab, 0xa4, 0x4d, 0xfc, - 0x16, 0x95, 0xf4, 0x85, 0x0a, 0xe2, 0xec, 0x83, 0xc3, 0xca, 0xcc, 0xad, 0x14, 0x0c, 0x77, 0x61, - 0xa3, 0x77, 0x60, 0xb6, 0x1d, 0x06, 0x6d, 0x67, 0x9b, 0x2d, 0x14, 0x21, 0xd0, 0x70, 0xee, 0xf3, - 0xe2, 0x83, 0xc3, 0xca, 0x6c, 0x3d, 0x0d, 0x3c, 0x3a, 0xac, 0x9c, 0x61, 0x03, 0x45, 0x4b, 0x12, - 0x20, 0xee, 0x26, 0x63, 0x6f, 0xc3, 0xb9, 0x6a, 0x70, 0xcf, 0xbf, 0xe7, 0x84, 0xad, 0xc5, 0x7a, - 0x4d, 0xd3, 0x1d, 0xac, 0xcb, 0xbb, 0x2b, 0x7f, 0x55, 0xcf, 0x3c, 0xa7, 0xb4, 0x9a, 0x5c, 0x7e, - 0x59, 0x75, 0x3d, 0x92, 0xa3, 0xa3, 0xf8, 0x7b, 0x05, 0xa3, 0xa5, 0x04, 0x5f, 0x3d, 0x7c, 0x58, - 0xb9, 0x0f, 0x1f, 0x6f, 0xc3, 0xd8, 0x96, 0x4b, 0xbc, 0x16, 0x26, 0x5b, 0x62, 0x66, 0x9e, 0xcd, - 0x7f, 0x28, 0x5c, 0xa5, 0x98, 0x52, 0x27, 0xc5, 0x6f, 0xbe, 0xab, 0xa2, 0x32, 0x56, 0x64, 0xd0, - 0x2e, 0xcc, 0xc8, 0xab, 0x95, 0x84, 0x8a, 0x4d, 0xfc, 0x5c, 0xaf, 0xfb, 0x9a, 0x49, 0x9c, 0x4d, - 0x20, 0x4e, 0x91, 0xc1, 0x5d, 0x84, 0xe9, 0x55, 0x77, 0x8f, 0x1e, 0x57, 0x43, 0x6c, 0x49, 0xb3, - 0xab, 0x2e, 0xbb, 0xb5, 0xb3, 0x52, 0xfb, 0xc7, 0x2d, 0x78, 0xbc, 0x6b, 0x64, 0x84, 0xf6, 0xe2, - 0x84, 0x67, 0x21, 0xad, 0x4d, 0x28, 0xf4, 0xd7, 0x26, 0xd8, 0xff, 0xd4, 0x82, 0xb3, 0x2b, 0x7b, - 0xed, 0xf8, 0xa0, 0xea, 0x9a, 0x8f, 0x33, 0xaf, 0xc3, 0xc8, 0x1e, 0x69, 0xb9, 0x9d, 0x3d, 0x31, - 0x73, 0x15, 0xc9, 0xd2, 0xd7, 0x58, 0xe9, 0xd1, 0x61, 0x65, 0xb2, 0x11, 0x07, 0xa1, 0xb3, 0x4d, - 0x78, 0x01, 0x16, 0xe8, 0xec, 0x60, 0x74, 0x3f, 0x20, 0x37, 0xdd, 0x3d, 0x57, 0x3e, 0xfc, 0xf6, - 0xd4, 0xa8, 0xcd, 0xcb, 0x01, 0x9d, 0x7f, 0xbb, 0xe3, 0xf8, 0xb1, 0x1b, 0x1f, 0x88, 0x77, 0x27, - 0x49, 0x04, 0x27, 0xf4, 0xec, 0x6f, 0x58, 0x30, 0x2d, 0x79, 0xc9, 0x62, 0xab, 0x15, 0x92, 0x28, - 0x42, 0x73, 0x50, 0x70, 0xdb, 0xa2, 0x97, 0x20, 0x7a, 0x59, 0xa8, 0xd5, 0x71, 0xc1, 0x6d, 0xa3, - 0x3a, 0x94, 0xf8, 0xfb, 0x71, 0xb2, 0xb8, 0x06, 0x7a, 0x85, 0x66, 0x3d, 0xd8, 0x90, 0x35, 0x71, - 0x42, 0x44, 0x4a, 0xc5, 0xec, 0x1c, 0x2a, 0x9a, 0x8f, 0x56, 0xd7, 0x45, 0x39, 0x56, 0x18, 0xe8, - 0x32, 0x8c, 0xf9, 0x41, 0x8b, 0x3f, 0xe7, 0xf3, 0x3d, 0xcd, 0x96, 0xec, 0xba, 0x28, 0xc3, 0x0a, - 0x6a, 0xff, 0xa0, 0x05, 0x13, 0xf2, 0xcb, 0x06, 0x14, 0xd0, 0xe9, 0xd6, 0x4a, 0x84, 0xf3, 0x64, - 0x6b, 0x51, 0x01, 0x9b, 0x41, 0x0c, 0xb9, 0xba, 0x78, 0x1c, 0xb9, 0xda, 0xfe, 0xb1, 0x02, 0x4c, - 0xc9, 0xee, 0x34, 0x3a, 0x9b, 0x11, 0x89, 0xd1, 0x06, 0x94, 0x1c, 0x3e, 0xe4, 0x44, 0xae, 0xd8, - 0x67, 0xb2, 0x2f, 0x74, 0xc6, 0xfc, 0x24, 0xa2, 0xce, 0xa2, 0xac, 0x8d, 0x13, 0x42, 0xc8, 0x83, - 0x59, 0x3f, 0x88, 0xd9, 0xb1, 0xa7, 0xe0, 0xbd, 0x1e, 0x46, 0xd2, 0xd4, 0xcf, 0x0b, 0xea, 0xb3, - 0xeb, 0x69, 0x2a, 0xb8, 0x9b, 0x30, 0x5a, 0x91, 0x4a, 0xa4, 0x62, 0xfe, 0x15, 0x4e, 0x9f, 0x85, - 0x6c, 0x1d, 0x92, 0xfd, 0xab, 0x16, 0x94, 0x24, 0xda, 0x69, 0xbc, 0x81, 0xad, 0xc1, 0x68, 0xc4, - 0x26, 0x41, 0x0e, 0x8d, 0xdd, 0xab, 0xe3, 0x7c, 0xbe, 0x92, 0xd3, 0x9c, 0xff, 0x8f, 0xb0, 0xa4, - 0xc1, 0xb4, 0xe0, 0xaa, 0xfb, 0x9f, 0x10, 0x2d, 0xb8, 0xea, 0x4f, 0xce, 0x09, 0xf3, 0xdf, 0x59, - 0x9f, 0x35, 0x55, 0x01, 0x15, 0x3a, 0xdb, 0x21, 0xd9, 0x72, 0xef, 0xa7, 0x85, 0xce, 0x3a, 0x2b, - 0xc5, 0x02, 0x8a, 0xde, 0x85, 0x89, 0xa6, 0x54, 0x1e, 0x27, 0x6c, 0xe0, 0x52, 0x4f, 0x55, 0xbc, - 0x7a, 0xb5, 0xe1, 0xa6, 0x7e, 0xcb, 0x5a, 0x7d, 0x6c, 0x50, 0x33, 0x2d, 0x13, 0x8a, 0xfd, 0x2c, - 0x13, 0x12, 0xba, 0xb9, 0x6f, 0xeb, 0xf6, 0x4f, 0x58, 0x30, 0xc2, 0x55, 0x90, 0x83, 0xe9, 0x6c, - 0xb5, 0x47, 0xac, 0x64, 0xec, 0xee, 0xd0, 0x42, 0xf1, 0x28, 0x85, 0xd6, 0xa0, 0xc4, 0x7e, 0x30, - 0x55, 0x4c, 0x31, 0xdf, 0xc6, 0x91, 0xb7, 0xaa, 0x77, 0xf0, 0x8e, 0xac, 0x86, 0x13, 0x0a, 0xf6, - 0x0f, 0x17, 0x29, 0xab, 0x4a, 0x50, 0x8d, 0x13, 0xdc, 0x7a, 0x74, 0x27, 0x78, 0xe1, 0x51, 0x9d, - 0xe0, 0xdb, 0x30, 0xdd, 0xd4, 0x9e, 0xbc, 0x92, 0x99, 0xbc, 0xdc, 0x73, 0x91, 0x68, 0xaf, 0x63, - 0x5c, 0x0d, 0xb7, 0x6c, 0x12, 0xc1, 0x69, 0xaa, 0xe8, 0x3b, 0x61, 0x82, 0xcf, 0xb3, 0x68, 0x65, - 0x88, 0xb5, 0xf2, 0x99, 0xfc, 0xf5, 0xa2, 0x37, 0xc1, 0x56, 0x62, 0x43, 0xab, 0x8e, 0x0d, 0x62, - 0xf6, 0x2f, 0x8e, 0xc1, 0xf0, 0xca, 0x3e, 0xf1, 0xe3, 0x53, 0x60, 0x48, 0x4d, 0x98, 0x72, 0xfd, - 0xfd, 0xc0, 0xdb, 0x27, 0x2d, 0x0e, 0x3f, 0xce, 0xe1, 0xfa, 0x98, 0x20, 0x3d, 0x55, 0x33, 0x48, - 0xe0, 0x14, 0xc9, 0x47, 0x71, 0x6b, 0xbf, 0x06, 0x23, 0x7c, 0xee, 0xc5, 0x95, 0x3d, 0x53, 0xc1, - 0xce, 0x06, 0x51, 0xec, 0x82, 0x44, 0xa3, 0xc0, 0x35, 0xfa, 0xa2, 0x3a, 0x7a, 0x0f, 0xa6, 0xb6, - 0xdc, 0x30, 0x8a, 0xe9, 0x75, 0x3b, 0x8a, 0x9d, 0xbd, 0xf6, 0x43, 0xdc, 0xd2, 0xd5, 0x38, 0xac, - 0x1a, 0x94, 0x70, 0x8a, 0x32, 0xda, 0x86, 0x49, 0x7a, 0x71, 0x4c, 0x9a, 0x1a, 0x3d, 0x76, 0x53, - 0x4a, 0x0d, 0x77, 0x53, 0x27, 0x84, 0x4d, 0xba, 0x94, 0x99, 0x34, 0xd9, 0x45, 0x73, 0x8c, 0x49, - 0x14, 0x8a, 0x99, 0xf0, 0x1b, 0x26, 0x87, 0x51, 0x9e, 0xc4, 0x8c, 0x59, 0x4a, 0x26, 0x4f, 0xd2, - 0x4c, 0x56, 0xbe, 0x0a, 0x25, 0x42, 0x87, 0x90, 0x12, 0x16, 0x8f, 0x0d, 0x0b, 0x83, 0xf5, 0x75, - 0xcd, 0x6d, 0x86, 0x81, 0xa9, 0x1f, 0x59, 0x91, 0x94, 0x70, 0x42, 0x14, 0x2d, 0xc3, 0x48, 0x44, - 0x42, 0x97, 0x44, 0xe2, 0xd9, 0xa1, 0xc7, 0x34, 0x32, 0x34, 0x6e, 0x0c, 0xcb, 0x7f, 0x63, 0x51, - 0x95, 0x2e, 0x2f, 0x87, 0xdd, 0x86, 0xd8, 0x4b, 0x83, 0xb6, 0xbc, 0x16, 0x59, 0x29, 0x16, 0x50, - 0xf4, 0x16, 0x8c, 0x86, 0xc4, 0x63, 0x0a, 0xb8, 0xc9, 0xc1, 0x17, 0x39, 0xd7, 0xe7, 0xf1, 0x7a, - 0x58, 0x12, 0x40, 0x37, 0x00, 0x85, 0x84, 0xca, 0x10, 0xae, 0xbf, 0xad, 0x4c, 0x3c, 0xc4, 0xfb, - 0xc1, 0x13, 0xa2, 0xfd, 0x33, 0x38, 0xc1, 0xf0, 0xe3, 0x30, 0xf0, 0x3c, 0x12, 0xe2, 0x8c, 0x6a, - 0xe8, 0x1a, 0xcc, 0xaa, 0xd2, 0x9a, 0x1f, 0xc5, 0x8e, 0xdf, 0x24, 0xec, 0xe9, 0xa0, 0x94, 0x48, - 0x45, 0x38, 0x8d, 0x80, 0xbb, 0xeb, 0xd8, 0x5f, 0xa7, 0xe2, 0x0c, 0x1d, 0xad, 0x53, 0x90, 0x05, - 0xde, 0x34, 0x65, 0x81, 0xf3, 0xb9, 0x33, 0x97, 0x23, 0x07, 0x3c, 0xb0, 0x60, 0x5c, 0x9b, 0xd9, - 0x64, 0xcd, 0x5a, 0x3d, 0xd6, 0x6c, 0x07, 0x66, 0xe8, 0x4a, 0xbf, 0xb5, 0xc9, 0xfc, 0x42, 0x5a, - 0x6c, 0x61, 0x16, 0x1e, 0x6e, 0x61, 0x96, 0x45, 0x03, 0x33, 0x37, 0x53, 0x04, 0x71, 0x57, 0x13, - 0xe8, 0x75, 0xa9, 0x8d, 0x2a, 0x1a, 0xa6, 0x5b, 0x5c, 0xd3, 0x74, 0x74, 0x58, 0x99, 0xd1, 0x3e, - 0x44, 0xd7, 0x3e, 0xd9, 0x5f, 0x95, 0xdf, 0xc8, 0x99, 0xcd, 0x02, 0x94, 0x9a, 0x6a, 0xb1, 0x58, - 0xa6, 0x55, 0xb0, 0x5a, 0x0e, 0x38, 0xc1, 0xa1, 0x7b, 0x94, 0x5e, 0x41, 0xd2, 0xd6, 0x86, 0xf4, - 0x82, 0x82, 0x19, 0xc4, 0x7e, 0x05, 0x60, 0xe5, 0x3e, 0x69, 0xf2, 0xa5, 0xae, 0x3f, 0xea, 0x5a, - 0xf9, 0x8f, 0xba, 0xf6, 0x7f, 0xb6, 0x60, 0x6a, 0x75, 0xd9, 0xb8, 0x26, 0xce, 0x03, 0xf0, 0xbb, - 0xd1, 0xdd, 0xbb, 0xeb, 0xf2, 0xbd, 0x82, 0xab, 0x9c, 0x55, 0x29, 0xd6, 0x30, 0xd0, 0x79, 0x28, - 0x7a, 0x1d, 0x5f, 0x5c, 0x59, 0x46, 0x1f, 0x1c, 0x56, 0x8a, 0x37, 0x3b, 0x3e, 0xa6, 0x65, 0x9a, - 0x81, 0x5f, 0x71, 0x60, 0x03, 0xbf, 0xbe, 0xfe, 0x1e, 0xa8, 0x02, 0xc3, 0xf7, 0xee, 0xb9, 0xad, - 0xa8, 0x3c, 0x9c, 0xbc, 0xa5, 0xdc, 0xbd, 0x5b, 0xab, 0x46, 0x98, 0x97, 0xdb, 0x5f, 0x2b, 0xc2, - 0xdc, 0xaa, 0x47, 0xee, 0x7f, 0x44, 0xcb, 0xe2, 0x41, 0xcd, 0x13, 0x8f, 0x27, 0x2f, 0x1e, 0xd7, - 0x16, 0xb3, 0xff, 0x78, 0x6c, 0xc1, 0x28, 0x37, 0x10, 0xe0, 0x23, 0x32, 0x7e, 0xe5, 0x8d, 0xac, - 0xd6, 0xf3, 0x07, 0x64, 0x5e, 0x68, 0xe7, 0xb8, 0x09, 0x96, 0x3a, 0x69, 0x45, 0x29, 0x96, 0xc4, - 0xe7, 0x3e, 0x0f, 0x13, 0x3a, 0xe6, 0x71, 0xec, 0xaf, 0xec, 0xbf, 0x56, 0x84, 0x19, 0xda, 0x83, - 0x47, 0x3a, 0x11, 0xb7, 0xbb, 0x27, 0xe2, 0xa4, 0x2d, 0x63, 0xfb, 0xcf, 0xc6, 0xbb, 0xe9, 0xd9, - 0x78, 0x39, 0x6f, 0x36, 0x4e, 0x7b, 0x0e, 0xfe, 0xba, 0x05, 0x67, 0x56, 0xbd, 0xa0, 0xb9, 0x9b, - 0x32, 0xda, 0x7d, 0x0d, 0xc6, 0x29, 0x1f, 0x8f, 0x0c, 0xb7, 0x06, 0xc3, 0xd1, 0x45, 0x80, 0xb0, - 0x8e, 0xa7, 0x55, 0xbb, 0x7d, 0xbb, 0x56, 0xcd, 0xf2, 0x8f, 0x11, 0x20, 0xac, 0xe3, 0xd9, 0xbf, - 0x65, 0xc1, 0x53, 0xd7, 0x96, 0x57, 0x92, 0xa5, 0xd8, 0xe5, 0xa2, 0x43, 0x6f, 0x81, 0x2d, 0xad, - 0x2b, 0xc9, 0x2d, 0xb0, 0xca, 0x7a, 0x21, 0xa0, 0x9f, 0x14, 0xf7, 0xb3, 0x9f, 0xb6, 0xe0, 0xcc, - 0x35, 0x37, 0xa6, 0xc7, 0x72, 0xda, 0x59, 0x84, 0x9e, 0xcb, 0x91, 0x1b, 0x07, 0xe1, 0x41, 0xda, - 0x59, 0x04, 0x2b, 0x08, 0xd6, 0xb0, 0x78, 0xcb, 0xfb, 0x6e, 0x44, 0x7b, 0x5a, 0x30, 0x55, 0x51, - 0x58, 0x94, 0x63, 0x85, 0x41, 0x3f, 0xac, 0xe5, 0x86, 0xec, 0x2a, 0x71, 0x20, 0x38, 0xac, 0xfa, - 0xb0, 0xaa, 0x04, 0xe0, 0x04, 0xc7, 0xfe, 0x71, 0x0b, 0xce, 0x5d, 0xf3, 0x3a, 0x51, 0x4c, 0xc2, - 0xad, 0xc8, 0xe8, 0xec, 0x2b, 0x50, 0x22, 0xf2, 0xba, 0x2e, 0xfa, 0xaa, 0x04, 0x4c, 0x75, 0x8f, - 0xe7, 0x9e, 0x2a, 0x0a, 0x6f, 0x00, 0x0b, 0xf8, 0xe3, 0x59, 0x6e, 0xff, 0x5c, 0x01, 0x26, 0xaf, - 0x6f, 0x6c, 0xd4, 0xaf, 0x91, 0x58, 0x9c, 0x62, 0xfd, 0x55, 0xcd, 0x58, 0xd3, 0x98, 0xf5, 0xba, - 0x14, 0x75, 0x62, 0xd7, 0x9b, 0xe7, 0xae, 0x91, 0xf3, 0x35, 0x3f, 0xbe, 0x15, 0x36, 0xe2, 0xd0, - 0xf5, 0xb7, 0x33, 0x75, 0x6c, 0xf2, 0xac, 0x2d, 0xe6, 0x9d, 0xb5, 0xe8, 0x15, 0x18, 0x61, 0xbe, - 0x99, 0xf2, 0x7a, 0xf2, 0x84, 0xba, 0x53, 0xb0, 0xd2, 0xa3, 0xc3, 0x4a, 0xe9, 0x36, 0xae, 0xf1, - 0x3f, 0x58, 0xa0, 0xa2, 0xdb, 0x30, 0xbe, 0x13, 0xc7, 0xed, 0xeb, 0xc4, 0x69, 0x91, 0x50, 0x72, - 0x87, 0x0b, 0x59, 0xdc, 0x81, 0x0e, 0x02, 0x47, 0x4b, 0x36, 0x54, 0x52, 0x16, 0x61, 0x9d, 0x8e, - 0xdd, 0x00, 0x48, 0x60, 0x27, 0xa4, 0x5f, 0xb0, 0xff, 0xc8, 0x82, 0x51, 0xee, 0x26, 0x13, 0xa2, - 0x2f, 0xc0, 0x10, 0xb9, 0x4f, 0x9a, 0x42, 0x72, 0xcc, 0xec, 0x70, 0x22, 0x78, 0x70, 0x6d, 0x39, - 0xfd, 0x8f, 0x59, 0x2d, 0x74, 0x1d, 0x46, 0x69, 0x6f, 0xaf, 0x29, 0x9f, 0xa1, 0xa7, 0xf3, 0xbe, - 0x58, 0x4d, 0x3b, 0x97, 0x55, 0x44, 0x11, 0x96, 0xd5, 0x99, 0xe6, 0xb7, 0xd9, 0x6e, 0x50, 0x06, - 0x16, 0xf7, 0x3a, 0x67, 0x37, 0x96, 0xeb, 0x1c, 0x49, 0x50, 0xe3, 0x9a, 0x5f, 0x59, 0x88, 0x13, - 0x22, 0xf6, 0x06, 0x94, 0xe8, 0xa4, 0x2e, 0x7a, 0xae, 0xd3, 0x5b, 0xe9, 0xfc, 0x02, 0x94, 0xa4, - 0x02, 0x38, 0x12, 0x0e, 0x3a, 0x8c, 0xaa, 0xd4, 0x0f, 0x47, 0x38, 0x81, 0xdb, 0x5b, 0x70, 0x96, - 0x59, 0x53, 0x38, 0xf1, 0x8e, 0xb1, 0xc7, 0xfa, 0x2f, 0xe6, 0x17, 0xc5, 0x45, 0x8c, 0xcf, 0x4c, - 0x59, 0xf3, 0x28, 0x98, 0x90, 0x14, 0x93, 0x4b, 0x99, 0xfd, 0x27, 0x43, 0xf0, 0x44, 0xad, 0x91, - 0xef, 0x41, 0x75, 0x15, 0x26, 0xb8, 0x98, 0x46, 0x97, 0xb6, 0xe3, 0x89, 0x76, 0xd5, 0x5b, 0xe3, - 0x86, 0x06, 0xc3, 0x06, 0x26, 0x7a, 0x0a, 0x8a, 0xee, 0xfb, 0x7e, 0xda, 0x38, 0xb7, 0xf6, 0xf6, - 0x3a, 0xa6, 0xe5, 0x14, 0x4c, 0x25, 0x3e, 0xce, 0x4a, 0x15, 0x58, 0x49, 0x7d, 0x6f, 0xc2, 0x94, - 0x1b, 0x35, 0x23, 0xb7, 0xe6, 0x53, 0x3e, 0x93, 0x78, 0xdf, 0x25, 0x4a, 0x02, 0xda, 0x69, 0x05, - 0xc5, 0x29, 0x6c, 0x8d, 0xaf, 0x0f, 0x0f, 0x2c, 0x35, 0xf6, 0xf5, 0x58, 0xa1, 0x02, 0x71, 0x9b, - 0x7d, 0x5d, 0xc4, 0x0c, 0x05, 0x85, 0x40, 0xcc, 0x3f, 0x38, 0xc2, 0x12, 0x46, 0x6f, 0x60, 0xcd, - 0x1d, 0xa7, 0xbd, 0xd8, 0x89, 0x77, 0xaa, 0x6e, 0xd4, 0x0c, 0xf6, 0x49, 0x78, 0xc0, 0x2e, 0xcf, - 0x63, 0xc9, 0x0d, 0x4c, 0x01, 0x96, 0xaf, 0x2f, 0xd6, 0x29, 0x26, 0xee, 0xae, 0x63, 0x4a, 0x85, - 0x70, 0x12, 0x52, 0xe1, 0x22, 0x4c, 0xcb, 0x66, 0x1a, 0x24, 0x62, 0x67, 0xc4, 0x38, 0xeb, 0x98, - 0xf2, 0x8b, 0x15, 0xc5, 0xaa, 0x5b, 0x69, 0x7c, 0xf4, 0x3a, 0x4c, 0xba, 0xbe, 0x1b, 0xbb, 0x4e, - 0x1c, 0x84, 0xec, 0x84, 0xe5, 0xf7, 0x64, 0xf6, 0x28, 0x5a, 0xd3, 0x01, 0xd8, 0xc4, 0xb3, 0xff, - 0x78, 0x08, 0x66, 0xd9, 0xb4, 0x7d, 0x6b, 0x85, 0x7d, 0x62, 0x56, 0xd8, 0xed, 0xee, 0x15, 0x76, - 0x12, 0xe2, 0xee, 0xc7, 0xb9, 0xcc, 0xde, 0x83, 0x92, 0xb2, 0xaf, 0x96, 0x2e, 0x02, 0x56, 0x8e, - 0x8b, 0x40, 0x7f, 0xe9, 0x43, 0x3e, 0xe3, 0x16, 0x33, 0x9f, 0x71, 0xff, 0xbe, 0x05, 0x89, 0x99, - 0x29, 0xba, 0x0e, 0xa5, 0x76, 0xc0, 0x4c, 0x39, 0x42, 0x69, 0x1f, 0xf5, 0x44, 0xe6, 0x41, 0xc5, - 0x0f, 0x45, 0x3e, 0x7e, 0x75, 0x59, 0x03, 0x27, 0x95, 0xd1, 0x12, 0x8c, 0xb6, 0x43, 0xd2, 0x88, - 0x99, 0x2b, 0x67, 0x5f, 0x3a, 0x7c, 0x8d, 0x70, 0x7c, 0x2c, 0x2b, 0xda, 0x3f, 0x6f, 0x01, 0xf0, - 0x97, 0x52, 0xc7, 0xdf, 0x26, 0xa7, 0xa0, 0xfd, 0xad, 0xc2, 0x50, 0xd4, 0x26, 0xcd, 0x5e, 0x46, - 0x36, 0x49, 0x7f, 0x1a, 0x6d, 0xd2, 0x4c, 0x06, 0x9c, 0xfe, 0xc3, 0xac, 0xb6, 0xfd, 0x7d, 0x00, - 0x53, 0x09, 0x5a, 0x2d, 0x26, 0x7b, 0xe8, 0x25, 0xc3, 0x51, 0xee, 0x7c, 0xca, 0x51, 0xae, 0xc4, - 0xb0, 0x35, 0x45, 0xe3, 0x7b, 0x50, 0xdc, 0x73, 0xee, 0x0b, 0x4d, 0xd2, 0x0b, 0xbd, 0xbb, 0x41, - 0xe9, 0xcf, 0xaf, 0x39, 0xf7, 0xf9, 0x9d, 0xe9, 0x05, 0xb9, 0x40, 0xd6, 0x9c, 0xfb, 0x47, 0xdc, - 0x94, 0x86, 0x31, 0xa9, 0x9b, 0x6e, 0x14, 0x7f, 0xf8, 0x5f, 0x93, 0xff, 0x6c, 0xd9, 0xd1, 0x46, - 0x58, 0x5b, 0xae, 0x2f, 0xde, 0x0d, 0x07, 0x6a, 0xcb, 0xf5, 0xd3, 0x6d, 0xb9, 0xfe, 0x00, 0x6d, - 0xb9, 0x3e, 0xfa, 0x00, 0x46, 0xc5, 0x1b, 0x3d, 0xb3, 0x9f, 0x37, 0xb5, 0x54, 0x79, 0xed, 0x89, - 0x27, 0x7e, 0xde, 0xe6, 0x82, 0xbc, 0x13, 0x8a, 0xd2, 0xbe, 0xed, 0xca, 0x06, 0xd1, 0xdf, 0xb5, - 0x60, 0x4a, 0xfc, 0xc6, 0xe4, 0xfd, 0x0e, 0x89, 0x62, 0x21, 0x7b, 0x7e, 0x6e, 0xf0, 0x3e, 0x88, - 0x8a, 0xbc, 0x2b, 0x9f, 0x93, 0x6c, 0xd6, 0x04, 0xf6, 0xed, 0x51, 0xaa, 0x17, 0xe8, 0x9f, 0x5b, - 0x70, 0x76, 0xcf, 0xb9, 0xcf, 0x5b, 0xe4, 0x65, 0xd8, 0x89, 0xdd, 0x40, 0xf8, 0x03, 0x7c, 0x61, - 0xb0, 0xe9, 0xef, 0xaa, 0xce, 0x3b, 0x29, 0x4d, 0x87, 0xcf, 0x66, 0xa1, 0xf4, 0xed, 0x6a, 0x66, - 0xbf, 0xe6, 0xb6, 0x60, 0x4c, 0xae, 0xb7, 0x8c, 0x9b, 0x77, 0x55, 0x17, 0xac, 0x8f, 0x6d, 0x22, - 0xa1, 0x7b, 0xab, 0xd1, 0x76, 0xc4, 0x5a, 0x7b, 0xa4, 0xed, 0xbc, 0x07, 0x13, 0xfa, 0x1a, 0x7b, - 0xa4, 0x6d, 0xbd, 0x0f, 0x67, 0x32, 0xd6, 0xd2, 0x23, 0x6d, 0xf2, 0x1e, 0x9c, 0xcf, 0x5d, 0x1f, - 0x8f, 0xb2, 0x61, 0xfb, 0xe7, 0x2c, 0x9d, 0x0f, 0x9e, 0x82, 0x0a, 0x7e, 0xd9, 0x54, 0xc1, 0x5f, - 0xe8, 0xbd, 0x73, 0x72, 0xf4, 0xf0, 0xef, 0xea, 0x9d, 0xa6, 0x5c, 0x1d, 0xbd, 0x05, 0x23, 0x1e, - 0x2d, 0x91, 0xc6, 0x21, 0x76, 0xff, 0x1d, 0x99, 0xc8, 0x52, 0xac, 0x3c, 0xc2, 0x82, 0x82, 0xfd, - 0x4b, 0x16, 0x0c, 0x9d, 0xc2, 0x48, 0x60, 0x73, 0x24, 0x5e, 0xca, 0x25, 0x2d, 0x62, 0x2c, 0xcd, - 0x63, 0xe7, 0xde, 0x8a, 0x8c, 0x23, 0x95, 0x33, 0x30, 0xff, 0xb7, 0x00, 0xe3, 0xb4, 0x29, 0x69, - 0xc5, 0xf8, 0x06, 0x4c, 0x7a, 0xce, 0x26, 0xf1, 0xe4, 0x3b, 0x6e, 0x5a, 0x61, 0x72, 0x53, 0x07, - 0x62, 0x13, 0x97, 0x56, 0xde, 0xd2, 0x9f, 0xb4, 0x85, 0xfc, 0xa2, 0x2a, 0x1b, 0xef, 0xdd, 0xd8, - 0xc4, 0xa5, 0x77, 0xf7, 0x7b, 0x4e, 0xdc, 0xdc, 0x11, 0xca, 0x14, 0xd5, 0xdd, 0xbb, 0xb4, 0x10, - 0x73, 0x18, 0x15, 0xe0, 0xe4, 0xea, 0xbc, 0x43, 0x6f, 0x86, 0x81, 0x2f, 0xc4, 0x63, 0x25, 0xc0, - 0x61, 0x13, 0x8c, 0xd3, 0xf8, 0x19, 0x1e, 0xf3, 0xc3, 0xcc, 0x46, 0x73, 0x00, 0x8f, 0x79, 0x54, - 0x87, 0xb3, 0xae, 0xdf, 0xf4, 0x3a, 0x2d, 0x72, 0xdb, 0xe7, 0xd2, 0x9d, 0xe7, 0x7e, 0x40, 0x5a, - 0x42, 0x80, 0x56, 0xe6, 0xb4, 0xb5, 0x0c, 0x1c, 0x9c, 0x59, 0xd3, 0xfe, 0x2b, 0x70, 0xe6, 0x66, - 0xe0, 0xb4, 0x96, 0x1c, 0xcf, 0xf1, 0x9b, 0x24, 0xac, 0xf9, 0xdb, 0x7d, 0xad, 0xc4, 0x74, 0x9b, - 0xae, 0x42, 0x3f, 0x9b, 0x2e, 0x7b, 0x07, 0x90, 0xde, 0x80, 0xb0, 0x4d, 0xc6, 0x30, 0xea, 0xf2, - 0xa6, 0xc4, 0xf2, 0x7f, 0x36, 0x5b, 0xba, 0xee, 0xea, 0x99, 0x66, 0x75, 0xcb, 0x0b, 0xb0, 0x24, - 0x64, 0x5f, 0x85, 0x4c, 0x7f, 0xc4, 0xfe, 0x6a, 0x1b, 0xfb, 0x35, 0x98, 0x65, 0x35, 0x8f, 0xa7, - 0x52, 0xb0, 0xff, 0x96, 0x05, 0xd3, 0xeb, 0xa9, 0x18, 0x17, 0x97, 0xd8, 0x5b, 0x6b, 0x86, 0xde, - 0xbd, 0xc1, 0x4a, 0xb1, 0x80, 0x9e, 0xb8, 0x7e, 0xef, 0x2f, 0x2c, 0x28, 0xa9, 0x30, 0x3b, 0xa7, - 0x20, 0xd4, 0x2e, 0x1b, 0x42, 0x6d, 0xa6, 0xde, 0x49, 0x75, 0x27, 0x4f, 0xa6, 0x45, 0x37, 0x54, - 0xb4, 0x86, 0x1e, 0x2a, 0xa7, 0x84, 0x0c, 0xf7, 0xed, 0x9f, 0x32, 0x43, 0x3a, 0xc8, 0xf8, 0x0d, - 0xcc, 0x4c, 0x4b, 0xe1, 0x7e, 0x42, 0xcc, 0xb4, 0x54, 0x7f, 0x72, 0xb8, 0x5f, 0x5d, 0xeb, 0x32, - 0x3b, 0x15, 0xbe, 0x9d, 0xb9, 0x32, 0xb0, 0xbd, 0xa9, 0x82, 0xa4, 0x54, 0x84, 0x6b, 0x82, 0x28, - 0x3d, 0x62, 0x8c, 0x4c, 0xfc, 0xe3, 0x21, 0x91, 0x92, 0x2a, 0xf6, 0x75, 0x98, 0x4e, 0x0d, 0x18, - 0x7a, 0x0d, 0x86, 0xdb, 0x3b, 0x4e, 0x44, 0x52, 0xa6, 0xa9, 0xc3, 0x75, 0x5a, 0x78, 0x74, 0x58, - 0x99, 0x52, 0x15, 0x58, 0x09, 0xe6, 0xd8, 0xf6, 0xff, 0xb2, 0x60, 0x68, 0x3d, 0x68, 0x9d, 0xc6, - 0x62, 0x7a, 0xd3, 0x58, 0x4c, 0x4f, 0xe6, 0x05, 0x94, 0xcb, 0x5d, 0x47, 0xab, 0xa9, 0x75, 0x74, - 0x21, 0x97, 0x42, 0xef, 0x25, 0xb4, 0x07, 0xe3, 0x2c, 0x4c, 0x9d, 0x30, 0x95, 0x7d, 0xc5, 0xb8, - 0x5f, 0x55, 0x52, 0xf7, 0xab, 0x69, 0x0d, 0x55, 0xbb, 0x65, 0x3d, 0x07, 0xa3, 0xc2, 0x5c, 0x33, - 0xed, 0xb4, 0x21, 0x70, 0xb1, 0x84, 0xdb, 0x3f, 0x51, 0x04, 0x23, 0x2c, 0x1e, 0xfa, 0x55, 0x0b, - 0xe6, 0x43, 0xee, 0x05, 0xdb, 0xaa, 0x76, 0x42, 0xd7, 0xdf, 0x6e, 0x34, 0x77, 0x48, 0xab, 0xe3, - 0xb9, 0xfe, 0x76, 0x6d, 0xdb, 0x0f, 0x54, 0xf1, 0xca, 0x7d, 0xd2, 0xec, 0xb0, 0x37, 0x97, 0x3e, - 0x31, 0xf8, 0x94, 0x39, 0xd4, 0x95, 0x07, 0x87, 0x95, 0x79, 0x7c, 0x2c, 0xda, 0xf8, 0x98, 0x7d, - 0x41, 0xbf, 0x65, 0xc1, 0x02, 0x8f, 0x16, 0x37, 0x78, 0xff, 0x7b, 0xdc, 0x46, 0xeb, 0x92, 0x54, - 0x42, 0x64, 0x83, 0x84, 0x7b, 0x4b, 0xaf, 0x8b, 0x01, 0x5d, 0xa8, 0x1f, 0xaf, 0x2d, 0x7c, 0xdc, - 0xce, 0xd9, 0xff, 0xae, 0x08, 0x93, 0x74, 0x14, 0x93, 0xd8, 0x34, 0xaf, 0x19, 0x4b, 0xe2, 0xe9, - 0xd4, 0x92, 0x98, 0x35, 0x90, 0x4f, 0x26, 0x2c, 0x4d, 0x04, 0xb3, 0x9e, 0x13, 0xc5, 0xd7, 0x89, - 0x13, 0xc6, 0x9b, 0xc4, 0xe1, 0x66, 0x42, 0xc5, 0x63, 0x9b, 0x34, 0x29, 0xf5, 0xd7, 0xcd, 0x34, - 0x31, 0xdc, 0x4d, 0x1f, 0xed, 0x03, 0x62, 0xb6, 0x4e, 0xa1, 0xe3, 0x47, 0xfc, 0x5b, 0x5c, 0xf1, - 0x1e, 0x73, 0xbc, 0x56, 0xe7, 0x44, 0xab, 0xe8, 0x66, 0x17, 0x35, 0x9c, 0xd1, 0x82, 0x66, 0xc3, - 0x36, 0x3c, 0xa8, 0x0d, 0xdb, 0x48, 0x1f, 0xcf, 0xa8, 0x3d, 0x98, 0x11, 0xb3, 0xb2, 0xe5, 0x6e, - 0x8b, 0x43, 0xfa, 0xcb, 0x29, 0x1b, 0x57, 0x6b, 0x70, 0x43, 0xa5, 0x3e, 0x06, 0xae, 0xf6, 0x77, - 0xc3, 0x19, 0xda, 0x9c, 0xe9, 0xc7, 0x13, 0x21, 0x02, 0xd3, 0xbb, 0x9d, 0x4d, 0xe2, 0x91, 0x58, - 0x96, 0x89, 0x46, 0x33, 0xc5, 0x7e, 0xb3, 0x76, 0x22, 0x5b, 0xde, 0x30, 0x49, 0xe0, 0x34, 0x4d, - 0xfb, 0xa7, 0x2c, 0x60, 0xd6, 0xf2, 0xa7, 0x70, 0xfc, 0x7d, 0xd1, 0x3c, 0xfe, 0xca, 0x79, 0x1c, - 0x28, 0xe7, 0xe4, 0x7b, 0x95, 0x4f, 0x4b, 0x3d, 0x0c, 0xee, 0x1f, 0x48, 0xd9, 0xbf, 0xbf, 0xc4, - 0xf5, 0x7f, 0x2c, 0xbe, 0x21, 0x55, 0x50, 0x00, 0xf4, 0x3d, 0x30, 0xd6, 0x74, 0xda, 0x4e, 0x93, - 0xc7, 0x23, 0xcd, 0xd5, 0xfe, 0x18, 0x95, 0xe6, 0x97, 0x45, 0x0d, 0xae, 0xcd, 0xf8, 0xac, 0xfc, - 0x4a, 0x59, 0xdc, 0x57, 0x83, 0xa1, 0x9a, 0x9c, 0xdb, 0x85, 0x49, 0x83, 0xd8, 0x23, 0xbd, 0xfa, - 0x7e, 0x0f, 0x3f, 0x2e, 0xd4, 0x8d, 0x65, 0x0f, 0x66, 0x7d, 0xed, 0x3f, 0x65, 0x8e, 0x52, 0x9c, - 0xfe, 0x74, 0xbf, 0x03, 0x81, 0x71, 0x52, 0xcd, 0x1b, 0x20, 0x45, 0x06, 0x77, 0x53, 0xb6, 0xff, - 0xa1, 0x05, 0x8f, 0xeb, 0x88, 0x5a, 0xbc, 0x86, 0x7e, 0xfa, 0xe4, 0x2a, 0x8c, 0x05, 0x6d, 0x12, - 0x3a, 0xc9, 0x9d, 0xec, 0xb2, 0x1c, 0xf4, 0x5b, 0xa2, 0xfc, 0xe8, 0xb0, 0x72, 0x56, 0xa7, 0x2e, - 0xcb, 0xb1, 0xaa, 0x89, 0x6c, 0x18, 0x61, 0x83, 0x11, 0x89, 0x58, 0x1a, 0xcc, 0x4c, 0x91, 0x3d, - 0xad, 0x46, 0x58, 0x40, 0xec, 0xef, 0xb3, 0xf8, 0xc2, 0xd2, 0xbb, 0x8e, 0xde, 0x87, 0x99, 0x3d, - 0x7a, 0x7d, 0x5b, 0xb9, 0xdf, 0x0e, 0xb9, 0x1a, 0x5d, 0x8e, 0xd3, 0x0b, 0xfd, 0xc6, 0x49, 0xfb, - 0xc8, 0xc4, 0x98, 0x6d, 0x2d, 0x45, 0x0c, 0x77, 0x91, 0xb7, 0xff, 0xac, 0xc0, 0x77, 0x22, 0x93, - 0xea, 0x9e, 0x83, 0xd1, 0x76, 0xd0, 0x5a, 0xae, 0x55, 0xb1, 0x18, 0x21, 0xc5, 0xae, 0xea, 0xbc, - 0x18, 0x4b, 0x38, 0xba, 0x02, 0x40, 0xee, 0xc7, 0x24, 0xf4, 0x1d, 0x4f, 0x19, 0x7e, 0x28, 0xe1, - 0x69, 0x45, 0x41, 0xb0, 0x86, 0x45, 0xeb, 0xb4, 0xc3, 0x60, 0xdf, 0x6d, 0x31, 0x6f, 0xc3, 0xa2, - 0x59, 0xa7, 0xae, 0x20, 0x58, 0xc3, 0xa2, 0x57, 0xe5, 0x8e, 0x1f, 0xf1, 0x03, 0xd0, 0xd9, 0x14, - 0x01, 0xf2, 0xc6, 0x92, 0xab, 0xf2, 0x6d, 0x1d, 0x88, 0x4d, 0x5c, 0xb4, 0x08, 0x23, 0xb1, 0xc3, - 0xcc, 0x19, 0x86, 0xf3, 0xcd, 0x12, 0x37, 0x28, 0x86, 0x1e, 0xa0, 0x92, 0x56, 0xc0, 0xa2, 0x22, - 0x7a, 0x47, 0xb2, 0x60, 0xce, 0x92, 0x85, 0x3d, 0x70, 0xee, 0xb2, 0xd5, 0xd9, 0xb7, 0xce, 0x83, - 0x85, 0x9d, 0xb1, 0x41, 0xcb, 0xfe, 0xde, 0x12, 0x40, 0x22, 0xed, 0xa1, 0x0f, 0xba, 0x58, 0xc4, - 0x8b, 0xbd, 0xe5, 0xc3, 0x93, 0xe3, 0x0f, 0xe8, 0xfb, 0x2d, 0x18, 0x77, 0x3c, 0x2f, 0x68, 0x3a, - 0x31, 0x1b, 0xe5, 0x42, 0x6f, 0x16, 0x25, 0xda, 0x5f, 0x4c, 0x6a, 0xf0, 0x2e, 0xbc, 0x22, 0x2d, - 0x15, 0x34, 0x48, 0xdf, 0x5e, 0xe8, 0x0d, 0xa3, 0xcf, 0xca, 0x4b, 0x00, 0x5f, 0x1e, 0x73, 0xe9, - 0x4b, 0x40, 0x89, 0x71, 0x63, 0x4d, 0xfe, 0x47, 0xb7, 0x8d, 0x48, 0x72, 0x43, 0xf9, 0x21, 0x29, - 0x0c, 0xa1, 0xa7, 0x5f, 0x10, 0x39, 0x54, 0xd7, 0xfd, 0xa2, 0x86, 0xf3, 0xe3, 0xb6, 0x68, 0xd2, - 0x75, 0x1f, 0x9f, 0xa8, 0xf7, 0x60, 0xba, 0x65, 0x1e, 0xb7, 0x62, 0x35, 0x3d, 0x9b, 0x47, 0x37, - 0x75, 0x3a, 0x27, 0x07, 0x6c, 0x0a, 0x80, 0xd3, 0x84, 0x51, 0x9d, 0x7b, 0xa8, 0xd5, 0xfc, 0xad, - 0x40, 0xd8, 0x95, 0xdb, 0xb9, 0x73, 0x79, 0x10, 0xc5, 0x64, 0x8f, 0x62, 0x26, 0xe7, 0xe8, 0xba, - 0xa8, 0x8b, 0x15, 0x15, 0xf4, 0x16, 0x8c, 0x30, 0xb7, 0xe1, 0xa8, 0x3c, 0x96, 0xaf, 0x07, 0x34, - 0x23, 0x5e, 0x24, 0x9b, 0x8a, 0xfd, 0x8d, 0xb0, 0xa0, 0x80, 0xae, 0xcb, 0xb0, 0x38, 0x51, 0xcd, - 0xbf, 0x1d, 0x11, 0x16, 0x16, 0xa7, 0xb4, 0xf4, 0xe9, 0x24, 0xe2, 0x0d, 0x2f, 0xcf, 0x0c, 0x45, - 0x6d, 0xd4, 0xa4, 0xf2, 0x8a, 0xf8, 0x2f, 0x23, 0x5c, 0x97, 0x21, 0xbf, 0x7b, 0x66, 0x14, 0xec, - 0x64, 0x38, 0xef, 0x98, 0x24, 0x70, 0x9a, 0xe6, 0xa9, 0x1e, 0x9f, 0x73, 0x3e, 0xcc, 0xa4, 0x37, - 0xd6, 0x23, 0x3d, 0xae, 0xff, 0x68, 0x08, 0xa6, 0xcc, 0x85, 0x80, 0x16, 0xa0, 0x24, 0x88, 0xa8, - 0x20, 0x9e, 0x6a, 0x6d, 0xaf, 0x49, 0x00, 0x4e, 0x70, 0x58, 0x10, 0x53, 0x56, 0x5d, 0xb3, 0x03, - 0x4c, 0x82, 0x98, 0x2a, 0x08, 0xd6, 0xb0, 0xa8, 0x10, 0xbd, 0x19, 0x04, 0xb1, 0x3a, 0x0a, 0xd4, - 0x6a, 0x59, 0x62, 0xa5, 0x58, 0x40, 0xe9, 0x11, 0xb0, 0x4b, 0x42, 0x9f, 0x78, 0xa6, 0x26, 0x53, - 0x1d, 0x01, 0x37, 0x74, 0x20, 0x36, 0x71, 0xe9, 0x91, 0x16, 0x44, 0x6c, 0xf9, 0x09, 0x51, 0x3d, - 0xb1, 0xab, 0x6c, 0x70, 0xb7, 0x79, 0x09, 0x47, 0x5f, 0x86, 0xc7, 0x95, 0x97, 0x3b, 0xe6, 0x9a, - 0x61, 0xd9, 0xe2, 0x88, 0x71, 0xb3, 0x7e, 0x7c, 0x39, 0x1b, 0x0d, 0xe7, 0xd5, 0x47, 0x6f, 0xc2, - 0x94, 0x10, 0x81, 0x25, 0xc5, 0x51, 0xd3, 0x58, 0xe1, 0x86, 0x01, 0xc5, 0x29, 0x6c, 0x54, 0x85, - 0x19, 0x5a, 0xc2, 0xa4, 0x50, 0x49, 0x81, 0x7b, 0xeb, 0xab, 0xb3, 0xfe, 0x46, 0x0a, 0x8e, 0xbb, - 0x6a, 0xa0, 0x45, 0x98, 0xe6, 0x32, 0x0a, 0xbd, 0x53, 0xb2, 0x79, 0x10, 0xee, 0x1e, 0x6a, 0x23, - 0xdc, 0x32, 0xc1, 0x38, 0x8d, 0x8f, 0xae, 0xc2, 0x84, 0x13, 0x36, 0x77, 0xdc, 0x98, 0x34, 0xe3, - 0x4e, 0xc8, 0xfd, 0x40, 0x34, 0x6b, 0x8f, 0x45, 0x0d, 0x86, 0x0d, 0x4c, 0xfb, 0x03, 0x38, 0x93, - 0xe1, 0x29, 0x46, 0x17, 0x8e, 0xd3, 0x76, 0xe5, 0x37, 0xa5, 0x2c, 0x24, 0x17, 0xeb, 0x35, 0xf9, - 0x35, 0x1a, 0x16, 0x5d, 0x9d, 0x4c, 0x25, 0xae, 0x85, 0xa1, 0x57, 0xab, 0x73, 0x55, 0x02, 0x70, - 0x82, 0x63, 0xff, 0x26, 0x80, 0xa6, 0xd0, 0x19, 0xc0, 0x3e, 0xee, 0x2a, 0x4c, 0xc8, 0xdc, 0x09, - 0x5a, 0xcc, 0x6e, 0xf5, 0x99, 0xd7, 0x34, 0x18, 0x36, 0x30, 0x69, 0xdf, 0x7c, 0x15, 0x71, 0x3c, - 0x65, 0x8f, 0x99, 0xc4, 0x1b, 0x4f, 0x70, 0xd0, 0x8b, 0x30, 0x16, 0x11, 0x6f, 0xeb, 0xa6, 0xeb, - 0xef, 0x8a, 0x85, 0xad, 0xb8, 0x70, 0x43, 0x94, 0x63, 0x85, 0x81, 0x96, 0xa0, 0xd8, 0x71, 0x5b, - 0x62, 0x29, 0xcb, 0x03, 0xbf, 0x78, 0xbb, 0x56, 0x3d, 0x3a, 0xac, 0x3c, 0x9d, 0x97, 0x12, 0x82, - 0x5e, 0xed, 0xa3, 0x79, 0xba, 0xfd, 0x68, 0xe5, 0xac, 0xb7, 0x81, 0x91, 0x63, 0xbe, 0x0d, 0x5c, - 0x01, 0x10, 0x5f, 0x2d, 0xd7, 0x72, 0x31, 0x99, 0xb5, 0x6b, 0x0a, 0x82, 0x35, 0x2c, 0x14, 0xc1, - 0x6c, 0x33, 0x24, 0x8e, 0xbc, 0x43, 0x73, 0x9f, 0xa7, 0xb1, 0x87, 0x57, 0x10, 0x2c, 0xa7, 0x89, - 0xe1, 0x6e, 0xfa, 0x28, 0x80, 0xd9, 0x96, 0x08, 0xaa, 0x90, 0x34, 0x5a, 0x3a, 0xbe, 0xa3, 0x15, - 0x33, 0xc8, 0x49, 0x13, 0xc2, 0xdd, 0xb4, 0xd1, 0x57, 0x60, 0x4e, 0x16, 0x76, 0xc7, 0xb1, 0x60, - 0xdb, 0xa5, 0xb8, 0x74, 0xe1, 0xc1, 0x61, 0x65, 0xae, 0x9a, 0x8b, 0x85, 0x7b, 0x50, 0x40, 0x18, - 0x46, 0xd8, 0x5b, 0x52, 0x54, 0x1e, 0x67, 0xe7, 0xdc, 0xf3, 0xf9, 0xca, 0x00, 0xba, 0xd6, 0xe7, - 0xd9, 0x3b, 0x94, 0x30, 0x29, 0x4f, 0x9e, 0xe5, 0x58, 0x21, 0x16, 0x94, 0xd0, 0x16, 0x8c, 0x3b, - 0xbe, 0x1f, 0xc4, 0x0e, 0x17, 0xa1, 0x26, 0xf2, 0x65, 0x3f, 0x8d, 0xf0, 0x62, 0x52, 0x83, 0x53, - 0x57, 0x56, 0xaa, 0x1a, 0x04, 0xeb, 0x84, 0xd1, 0x3d, 0x98, 0x0e, 0xee, 0x51, 0xe6, 0x28, 0xb5, - 0x14, 0x51, 0x79, 0x92, 0xb5, 0xf5, 0xea, 0x80, 0x7a, 0x5a, 0xa3, 0xb2, 0xc6, 0xb5, 0x4c, 0xa2, - 0x38, 0xdd, 0x0a, 0x9a, 0x37, 0xb4, 0xd5, 0x53, 0x89, 0x3b, 0x4b, 0xa2, 0xad, 0xd6, 0x95, 0xd3, - 0x2c, 0x2e, 0x0a, 0x37, 0x91, 0x66, 0xbb, 0x7f, 0x3a, 0x15, 0x17, 0x25, 0x01, 0x61, 0x1d, 0x0f, - 0xed, 0xc0, 0x44, 0xf2, 0x64, 0x15, 0x46, 0x2c, 0x2a, 0xdb, 0xf8, 0x95, 0x2b, 0x83, 0x7d, 0x5c, - 0x4d, 0xab, 0xc9, 0x6f, 0x0e, 0x7a, 0x09, 0x36, 0x28, 0xcf, 0x7d, 0x1b, 0x8c, 0x6b, 0x13, 0x7b, - 0xac, 0x28, 0xb8, 0x6f, 0xc2, 0x4c, 0x7a, 0xea, 0x8e, 0xe5, 0x41, 0xf0, 0xbf, 0x0b, 0x30, 0x9d, - 0xf1, 0x72, 0xc5, 0xd2, 0x4a, 0xa4, 0x18, 0x6a, 0x92, 0x45, 0xc2, 0x64, 0x8b, 0x85, 0x01, 0xd8, - 0xa2, 0xe4, 0xd1, 0xc5, 0x5c, 0x1e, 0x2d, 0x58, 0xe1, 0xd0, 0x47, 0x61, 0x85, 0xe6, 0xe9, 0x33, - 0x3c, 0xd0, 0xe9, 0x73, 0x02, 0xec, 0xd3, 0x38, 0xc0, 0x46, 0x07, 0x38, 0xc0, 0x7e, 0xb8, 0x00, - 0x33, 0x69, 0x0b, 0xdf, 0x53, 0x78, 0xef, 0x78, 0xcb, 0x78, 0xef, 0xc8, 0x4e, 0xd2, 0x92, 0xb6, - 0x3b, 0xce, 0x7b, 0xfb, 0xc0, 0xa9, 0xb7, 0x8f, 0xe7, 0x07, 0xa2, 0xd6, 0xfb, 0x1d, 0xe4, 0x1f, - 0x15, 0xe0, 0x5c, 0xba, 0xca, 0xb2, 0xe7, 0xb8, 0x7b, 0xa7, 0x30, 0x36, 0xb7, 0x8c, 0xb1, 0x79, - 0x69, 0x90, 0xaf, 0x61, 0x5d, 0xcb, 0x1d, 0xa0, 0xbb, 0xa9, 0x01, 0x5a, 0x18, 0x9c, 0x64, 0xef, - 0x51, 0xfa, 0x46, 0x11, 0x2e, 0x64, 0xd6, 0x4b, 0x9e, 0x0b, 0x56, 0x8d, 0xe7, 0x82, 0x2b, 0xa9, - 0xe7, 0x02, 0xbb, 0x77, 0xed, 0x93, 0x79, 0x3f, 0x10, 0xee, 0xd0, 0x2c, 0x62, 0xe8, 0x43, 0xbe, - 0x1d, 0x18, 0xee, 0xd0, 0x8a, 0x10, 0x36, 0xe9, 0x7e, 0x33, 0xbd, 0x19, 0xfc, 0xa6, 0x05, 0xe7, - 0x33, 0xe7, 0xe6, 0x14, 0xf4, 0xea, 0xeb, 0xa6, 0x5e, 0xfd, 0xb9, 0x81, 0x57, 0x6b, 0x8e, 0xa2, - 0xfd, 0x8f, 0x8b, 0x39, 0xdf, 0xc2, 0x34, 0x93, 0xb7, 0x60, 0xdc, 0x69, 0x36, 0x49, 0x14, 0xad, - 0x05, 0x2d, 0x15, 0x41, 0xf3, 0x25, 0x26, 0x6d, 0x24, 0xc5, 0x47, 0x87, 0x95, 0xb9, 0x34, 0x89, - 0x04, 0x8c, 0x75, 0x0a, 0x66, 0xd0, 0xdf, 0xc2, 0x89, 0x06, 0xfd, 0xbd, 0x02, 0xb0, 0xaf, 0xf4, - 0x15, 0x69, 0x35, 0xa7, 0xa6, 0xc9, 0xd0, 0xb0, 0xd0, 0x77, 0xb1, 0x5b, 0x00, 0x37, 0x06, 0xe2, - 0x4b, 0xf1, 0x95, 0x01, 0xe7, 0x4a, 0x37, 0x2c, 0xe2, 0x71, 0x37, 0x94, 0x4a, 0x58, 0x91, 0x44, - 0xdf, 0x01, 0x33, 0x11, 0x0f, 0xeb, 0xb4, 0xec, 0x39, 0x11, 0x73, 0xe2, 0x12, 0xab, 0x90, 0x05, - 0xd3, 0x68, 0xa4, 0x60, 0xb8, 0x0b, 0x1b, 0xad, 0xca, 0x8f, 0x62, 0x31, 0xa8, 0xf8, 0xc2, 0xbc, - 0x94, 0x7c, 0x90, 0x48, 0x6a, 0x75, 0x36, 0x3d, 0xfc, 0x6c, 0xe0, 0xb5, 0x9a, 0xf6, 0x0f, 0x0f, - 0xc1, 0x13, 0x3d, 0x98, 0x18, 0x5a, 0x34, 0x8d, 0x00, 0x5e, 0x48, 0xeb, 0xff, 0xe6, 0x32, 0x2b, - 0x1b, 0x0a, 0xc1, 0xd4, 0x5a, 0x29, 0x7c, 0xe4, 0xb5, 0xf2, 0x03, 0x96, 0xa6, 0x99, 0xe5, 0xa6, - 0xc2, 0x5f, 0x3c, 0x26, 0x73, 0x3e, 0x41, 0x55, 0xed, 0x56, 0x86, 0xbe, 0xf3, 0xca, 0xc0, 0xdd, - 0x19, 0x58, 0x01, 0x7a, 0xba, 0x4f, 0x46, 0x1f, 0x5a, 0xf0, 0x74, 0x66, 0x7f, 0x0d, 0xa3, 0xa5, - 0x05, 0x28, 0x35, 0x69, 0xa1, 0xe6, 0x18, 0x9a, 0x78, 0xcc, 0x4b, 0x00, 0x4e, 0x70, 0x0c, 0xdb, - 0xa4, 0x42, 0x5f, 0xdb, 0xa4, 0x7f, 0x6b, 0x41, 0xd7, 0x02, 0x3e, 0x05, 0x4e, 0x5a, 0x33, 0x39, - 0xe9, 0xa7, 0x07, 0x99, 0xcb, 0x1c, 0x26, 0xfa, 0xfb, 0xd3, 0xf0, 0x58, 0x8e, 0x27, 0xd8, 0x3e, - 0xcc, 0x6e, 0x37, 0x89, 0xe9, 0x72, 0x2b, 0x3e, 0x26, 0xd3, 0x3b, 0xb9, 0xa7, 0x7f, 0x2e, 0xbf, - 0x10, 0x77, 0xa1, 0xe0, 0xee, 0x26, 0xd0, 0x87, 0x16, 0x9c, 0x75, 0xee, 0x45, 0x5d, 0x39, 0x27, - 0xc5, 0x9a, 0x79, 0x35, 0x53, 0x4f, 0xdb, 0x27, 0x47, 0x25, 0x73, 0x8b, 0x3b, 0x9b, 0x85, 0x85, - 0x33, 0xdb, 0x42, 0x58, 0x04, 0x3d, 0xa6, 0xf2, 0x76, 0x0f, 0xa7, 0xf0, 0x2c, 0x97, 0x3d, 0xce, - 0x53, 0x25, 0x04, 0x2b, 0x3a, 0xe8, 0x0e, 0x94, 0xb6, 0xa5, 0x1f, 0xad, 0xe0, 0xd9, 0x99, 0x87, - 0x60, 0xa6, 0xb3, 0x2d, 0xf7, 0x1d, 0x51, 0x20, 0x9c, 0x90, 0x42, 0x6f, 0x42, 0xd1, 0xdf, 0x8a, - 0x7a, 0xa5, 0xc3, 0x4a, 0xd9, 0xf2, 0xf1, 0x80, 0x0b, 0xeb, 0xab, 0x0d, 0x4c, 0x2b, 0xa2, 0xeb, - 0x50, 0x0c, 0x37, 0x5b, 0xe2, 0x69, 0x21, 0x53, 0x2e, 0xc5, 0x4b, 0xd5, 0xec, 0x45, 0xc2, 0x29, - 0xe1, 0xa5, 0x2a, 0xa6, 0x24, 0x50, 0x1d, 0x86, 0x99, 0xd3, 0x94, 0x78, 0x41, 0xc8, 0x14, 0x48, - 0x7b, 0x38, 0x1f, 0xf2, 0xa8, 0x0c, 0x0c, 0x01, 0x73, 0x42, 0xe8, 0x2d, 0x18, 0x69, 0xb2, 0x8c, - 0x51, 0x42, 0xf1, 0x93, 0x1d, 0xae, 0xab, 0x2b, 0xa7, 0x14, 0x7f, 0x41, 0xe5, 0xe5, 0x58, 0x50, - 0x40, 0x1b, 0x30, 0xd2, 0x24, 0xed, 0x9d, 0xad, 0x48, 0xe8, 0x73, 0x3e, 0x9b, 0x49, 0xab, 0x47, - 0x82, 0x34, 0x41, 0x95, 0x61, 0x60, 0x41, 0x0b, 0x7d, 0x1e, 0x0a, 0x5b, 0x4d, 0xe1, 0x49, 0x95, - 0xf9, 0x86, 0x60, 0x46, 0xca, 0x58, 0x1a, 0x79, 0x70, 0x58, 0x29, 0xac, 0x2e, 0xe3, 0xc2, 0x56, - 0x13, 0xad, 0xc3, 0xe8, 0x16, 0xf7, 0xad, 0x17, 0x01, 0x6c, 0x9e, 0xcd, 0x76, 0xfb, 0xef, 0x72, - 0xbf, 0xe7, 0x1e, 0x40, 0x02, 0x80, 0x25, 0x11, 0x16, 0x2f, 0x58, 0xc5, 0x08, 0x10, 0x81, 0xf3, - 0xe7, 0x8f, 0x17, 0xd7, 0x41, 0xa8, 0x39, 0x14, 0x15, 0xac, 0x51, 0x44, 0x5f, 0x85, 0x92, 0x23, - 0x73, 0x1c, 0x8a, 0x20, 0x38, 0xaf, 0x64, 0x6e, 0xc7, 0xde, 0xe9, 0x1f, 0xf9, 0x5a, 0x56, 0x48, - 0x38, 0x21, 0x8a, 0x76, 0x61, 0x72, 0x3f, 0x6a, 0xef, 0x10, 0xb9, 0x7d, 0x59, 0x4c, 0x9c, 0x9c, - 0xe3, 0xea, 0x8e, 0x40, 0x74, 0xc3, 0xb8, 0xe3, 0x78, 0x5d, 0x1c, 0x87, 0x39, 0x8e, 0xdd, 0xd1, - 0x89, 0x61, 0x93, 0x36, 0x1d, 0xfe, 0xf7, 0x3b, 0xc1, 0xe6, 0x41, 0x4c, 0x44, 0xa4, 0xfd, 0xcc, - 0xe1, 0x7f, 0x9b, 0xa3, 0x74, 0x0f, 0xbf, 0x00, 0x60, 0x49, 0x84, 0x6e, 0x70, 0x47, 0xe6, 0x0f, - 0x15, 0xba, 0x9c, 0xe7, 0x72, 0x87, 0xa7, 0xab, 0xbf, 0xc9, 0xa0, 0x30, 0xce, 0x98, 0x90, 0x62, - 0x1c, 0xb1, 0xbd, 0x13, 0xc4, 0x81, 0x9f, 0xe2, 0xc6, 0xb3, 0xf9, 0x1c, 0xb1, 0x9e, 0x81, 0xdf, - 0xcd, 0x11, 0xb3, 0xb0, 0x70, 0x66, 0x5b, 0xa8, 0x05, 0x53, 0xed, 0x20, 0x8c, 0xef, 0x05, 0xa1, - 0x5c, 0x5f, 0xa8, 0xc7, 0x25, 0xdf, 0xc0, 0x14, 0x2d, 0x32, 0x3b, 0x70, 0x13, 0x82, 0x53, 0x34, - 0xd1, 0x97, 0x60, 0x34, 0x6a, 0x3a, 0x1e, 0xa9, 0xdd, 0x2a, 0x9f, 0xc9, 0x3f, 0x6a, 0x1a, 0x1c, - 0x25, 0x67, 0x75, 0xb1, 0xc9, 0x11, 0x28, 0x58, 0x92, 0x43, 0xab, 0x30, 0xcc, 0xd2, 0xb7, 0xb0, - 0x24, 0x01, 0x39, 0xc1, 0xd6, 0xba, 0x6c, 0xa5, 0x39, 0x47, 0x62, 0xc5, 0x98, 0x57, 0xa7, 0x7b, - 0x40, 0xc8, 0xba, 0x41, 0x54, 0x3e, 0x97, 0xbf, 0x07, 0x84, 0x88, 0x7c, 0xab, 0xd1, 0x6b, 0x0f, - 0x28, 0x24, 0x9c, 0x10, 0xa5, 0xfc, 0x98, 0xf2, 0xd0, 0xc7, 0xf2, 0xf9, 0x71, 0x3e, 0x07, 0x65, - 0xfc, 0x98, 0xf2, 0x4f, 0x4a, 0xc2, 0xfe, 0x70, 0xb4, 0x5b, 0x3e, 0x61, 0xb7, 0xa3, 0xef, 0xb5, - 0xba, 0x4c, 0x07, 0x3e, 0x37, 0xa8, 0xb2, 0xe6, 0x04, 0x25, 0xd3, 0x0f, 0x2d, 0x78, 0xac, 0x9d, - 0xf9, 0x21, 0xe2, 0xb0, 0x1f, 0x4c, 0xe7, 0xc3, 0x3f, 0x5d, 0x25, 0xf2, 0xc8, 0x86, 0xe3, 0x9c, - 0x96, 0xd2, 0xd2, 0x7f, 0xf1, 0x23, 0x4b, 0xff, 0x6b, 0x30, 0xc6, 0x04, 0xca, 0x24, 0xb2, 0xdf, - 0x40, 0x06, 0x78, 0x4c, 0x6c, 0x58, 0x16, 0x15, 0xb1, 0x22, 0x81, 0x7e, 0xd0, 0x82, 0xa7, 0xd2, - 0x5d, 0xc7, 0x84, 0x81, 0x45, 0x94, 0x68, 0x7e, 0x31, 0x5b, 0x15, 0xdf, 0xff, 0x54, 0xbd, 0x17, - 0xf2, 0x51, 0x3f, 0x04, 0xdc, 0xbb, 0x31, 0x54, 0xcd, 0xb8, 0x19, 0x8e, 0x98, 0x2f, 0x8b, 0x03, - 0xdc, 0x0e, 0x5f, 0x85, 0x89, 0xbd, 0xa0, 0xe3, 0x4b, 0xef, 0x18, 0xe1, 0xfb, 0xcc, 0xb4, 0xd8, - 0x6b, 0x5a, 0x39, 0x36, 0xb0, 0x52, 0x77, 0xca, 0xb1, 0x87, 0xbd, 0x53, 0x9e, 0xee, 0x4d, 0xe5, - 0xeb, 0x56, 0x86, 0x88, 0xcd, 0xef, 0xae, 0x5f, 0x30, 0xef, 0xae, 0x97, 0xd2, 0x77, 0xd7, 0x2e, - 0x5d, 0xa5, 0x71, 0x6d, 0x1d, 0x3c, 0x8a, 0xfe, 0xa0, 0x21, 0x14, 0x6d, 0x0f, 0x2e, 0xf6, 0x3b, - 0x38, 0x98, 0x31, 0x63, 0x4b, 0xbd, 0xf2, 0x27, 0xc6, 0x8c, 0xad, 0x5a, 0x15, 0x33, 0xc8, 0xa0, - 0x31, 0x76, 0xec, 0xff, 0x61, 0x41, 0xb1, 0x1e, 0xb4, 0x4e, 0x41, 0xf7, 0xfa, 0x45, 0x43, 0xf7, - 0xfa, 0x44, 0x4e, 0xa6, 0xf4, 0x5c, 0x4d, 0xeb, 0x4a, 0x4a, 0xd3, 0xfa, 0x54, 0x1e, 0x81, 0xde, - 0x7a, 0xd5, 0x9f, 0x2c, 0x82, 0x9e, 0xd7, 0x1d, 0xfd, 0xfb, 0x87, 0xb1, 0x8a, 0x2f, 0xf6, 0x4a, - 0xf5, 0x2e, 0x28, 0x33, 0x1b, 0x48, 0xe9, 0x70, 0xfb, 0x97, 0xcc, 0x38, 0xfe, 0x2e, 0x71, 0xb7, - 0x77, 0x62, 0xd2, 0x4a, 0x7f, 0xce, 0xe9, 0x19, 0xc7, 0xff, 0x37, 0x0b, 0xa6, 0x53, 0xad, 0x23, - 0x2f, 0xcb, 0x7b, 0xef, 0x21, 0x75, 0x6e, 0xb3, 0x7d, 0xdd, 0xfd, 0xe6, 0x01, 0xd4, 0xc3, 0x96, - 0xd4, 0x47, 0x31, 0xb9, 0x5c, 0xbd, 0x7c, 0x45, 0x58, 0xc3, 0x40, 0xaf, 0xc1, 0x78, 0x1c, 0xb4, - 0x03, 0x2f, 0xd8, 0x3e, 0xb8, 0x41, 0x64, 0x54, 0x27, 0xf5, 0xfc, 0xb8, 0x91, 0x80, 0xb0, 0x8e, - 0x67, 0xff, 0x74, 0x91, 0x7f, 0xa8, 0x96, 0xfa, 0xff, 0x5b, 0x6b, 0xf2, 0x93, 0xb9, 0x26, 0xbf, - 0x61, 0xc1, 0x0c, 0x6d, 0x9d, 0xd9, 0x97, 0xc9, 0xe3, 0x50, 0x65, 0xf3, 0xb2, 0x7a, 0x64, 0xf3, - 0xba, 0x44, 0x79, 0x57, 0x2b, 0xe8, 0xc4, 0x42, 0x9f, 0xa5, 0x31, 0x27, 0x5a, 0x8a, 0x05, 0x54, - 0xe0, 0x91, 0x30, 0x14, 0x3e, 0x79, 0x3a, 0x1e, 0x09, 0x43, 0x2c, 0xa0, 0x32, 0xd9, 0xd7, 0x50, - 0x4e, 0xb2, 0x2f, 0x16, 0xa3, 0x52, 0xd8, 0x34, 0x09, 0xc1, 0x44, 0x8b, 0x51, 0x29, 0x8d, 0x9d, - 0x12, 0x1c, 0xfb, 0xe7, 0x8a, 0x30, 0x51, 0x0f, 0x5a, 0xc9, 0xd3, 0xd2, 0xab, 0xc6, 0xd3, 0xd2, - 0xc5, 0xd4, 0xd3, 0xd2, 0x8c, 0x8e, 0xfb, 0xad, 0x87, 0xa4, 0x8f, 0xeb, 0x21, 0xe9, 0xdf, 0x58, - 0x6c, 0xd6, 0xaa, 0xeb, 0x0d, 0x91, 0x2e, 0xfb, 0x65, 0x18, 0x67, 0x0c, 0x89, 0x39, 0x81, 0xca, - 0xf7, 0x16, 0x96, 0x73, 0x62, 0x3d, 0x29, 0xc6, 0x3a, 0x0e, 0xba, 0x0c, 0x63, 0x11, 0x71, 0xc2, - 0xe6, 0x8e, 0xe2, 0x71, 0xe2, 0x35, 0x82, 0x97, 0x61, 0x05, 0x45, 0x6f, 0x27, 0xe1, 0x11, 0x8b, - 0xf9, 0x89, 0x9f, 0xf5, 0xfe, 0xf0, 0x2d, 0x92, 0x1f, 0x13, 0xd1, 0xbe, 0x0b, 0xa8, 0x1b, 0x7f, - 0x00, 0x43, 0xaf, 0x8a, 0x19, 0x08, 0xad, 0xd4, 0x15, 0x04, 0xed, 0xcf, 0x2d, 0x98, 0xaa, 0x07, - 0x2d, 0xba, 0x75, 0xbf, 0x99, 0xf6, 0xa9, 0x1e, 0x1b, 0x76, 0xa4, 0x47, 0x6c, 0xd8, 0x7f, 0x6c, - 0xc1, 0x68, 0x3d, 0x68, 0x9d, 0x82, 0x16, 0xfc, 0x0b, 0xa6, 0x16, 0xfc, 0xf1, 0x9c, 0x25, 0x91, - 0xa3, 0xf8, 0xfe, 0x85, 0x22, 0x4c, 0xd2, 0x7e, 0x06, 0xdb, 0x72, 0x96, 0x8c, 0x11, 0xb1, 0x06, - 0x18, 0x11, 0x2a, 0xe6, 0x06, 0x9e, 0x17, 0xdc, 0x4b, 0xcf, 0xd8, 0x2a, 0x2b, 0xc5, 0x02, 0x8a, - 0x5e, 0x84, 0xb1, 0x76, 0x48, 0xf6, 0xdd, 0xa0, 0x13, 0xa5, 0xfd, 0x9d, 0xeb, 0xa2, 0x1c, 0x2b, - 0x0c, 0x7a, 0x33, 0x8a, 0x5c, 0xbf, 0x49, 0xa4, 0x05, 0xd8, 0x10, 0xb3, 0x00, 0xe3, 0x41, 0xdf, - 0xb5, 0x72, 0x6c, 0x60, 0xa1, 0xbb, 0x50, 0x62, 0xff, 0x19, 0x47, 0x39, 0x7e, 0x1a, 0x32, 0x91, - 0x69, 0x45, 0x10, 0xc0, 0x09, 0x2d, 0x74, 0x05, 0x20, 0x96, 0xb6, 0x6a, 0x91, 0x70, 0xc7, 0x57, - 0xb2, 0xb6, 0xb2, 0x62, 0x8b, 0xb0, 0x86, 0x85, 0x5e, 0x80, 0x52, 0xec, 0xb8, 0xde, 0x4d, 0xd7, - 0x27, 0x91, 0xb0, 0xf5, 0x13, 0x89, 0x54, 0x44, 0x21, 0x4e, 0xe0, 0x54, 0xd6, 0x61, 0xc1, 0x1e, - 0x78, 0x12, 0xc3, 0x31, 0x86, 0xcd, 0x64, 0x9d, 0x9b, 0xaa, 0x14, 0x6b, 0x18, 0xf6, 0x55, 0x38, - 0x57, 0x0f, 0x5a, 0xf5, 0x20, 0x8c, 0x57, 0x83, 0xf0, 0x9e, 0x13, 0xb6, 0xe4, 0xfc, 0x55, 0x64, - 0x4e, 0x0f, 0xca, 0x7b, 0x86, 0xf9, 0xce, 0x34, 0xb2, 0x75, 0xbc, 0xc2, 0xa4, 0x9d, 0x63, 0x3a, - 0x66, 0xfd, 0xc7, 0x02, 0x63, 0x14, 0xa9, 0xcc, 0x9a, 0xe8, 0x2b, 0x30, 0x15, 0x91, 0x9b, 0xae, - 0xdf, 0xb9, 0x2f, 0x6f, 0xb0, 0x3d, 0xbc, 0xde, 0x1a, 0x2b, 0x3a, 0x26, 0xd7, 0x83, 0x99, 0x65, - 0x38, 0x45, 0x8d, 0x0e, 0x61, 0xd8, 0xf1, 0x17, 0xa3, 0xdb, 0x11, 0x09, 0x45, 0x66, 0x47, 0x36, - 0x84, 0x58, 0x16, 0xe2, 0x04, 0x4e, 0x97, 0x0c, 0xfb, 0xb3, 0x1e, 0xf8, 0x38, 0x08, 0x62, 0xb9, - 0xc8, 0x58, 0x6e, 0x30, 0xad, 0x1c, 0x1b, 0x58, 0x68, 0x15, 0x50, 0xd4, 0x69, 0xb7, 0x3d, 0xf6, - 0x44, 0xed, 0x78, 0xd7, 0xc2, 0xa0, 0xd3, 0xe6, 0xcf, 0x83, 0x22, 0xad, 0x56, 0xa3, 0x0b, 0x8a, - 0x33, 0x6a, 0x50, 0xc6, 0xb0, 0x15, 0xb1, 0xdf, 0x22, 0xde, 0x03, 0xd7, 0x4d, 0x37, 0x58, 0x11, - 0x96, 0x30, 0xfb, 0x7b, 0xd8, 0x81, 0xc1, 0x12, 0xf2, 0xc5, 0x9d, 0x90, 0xa0, 0x3d, 0x98, 0x6c, - 0xb3, 0xa3, 0x5c, 0x84, 0x36, 0x17, 0x03, 0xf8, 0x70, 0x96, 0x7d, 0x3c, 0x41, 0x97, 0x4e, 0x0e, - 0x9b, 0xd4, 0xed, 0xdf, 0x9d, 0x66, 0x7c, 0xa9, 0xc1, 0xaf, 0x73, 0xa3, 0xc2, 0x5e, 0x5f, 0xc8, - 0xae, 0x73, 0xf9, 0x29, 0x3c, 0x93, 0x23, 0x44, 0xd8, 0xfc, 0x63, 0x59, 0x17, 0xbd, 0xcd, 0xde, - 0x55, 0x39, 0x33, 0xe8, 0x97, 0xd9, 0x9b, 0x63, 0x19, 0x4f, 0xa8, 0xa2, 0x22, 0xd6, 0x88, 0xa0, - 0x9b, 0x30, 0x29, 0xf2, 0xb7, 0x09, 0xd5, 0x4e, 0xd1, 0x50, 0x0c, 0x4c, 0x62, 0x1d, 0x78, 0x94, - 0x2e, 0xc0, 0x66, 0x65, 0xb4, 0x0d, 0x4f, 0x69, 0xc9, 0x4c, 0x33, 0xac, 0x4b, 0x39, 0x6f, 0x79, - 0xfa, 0xc1, 0x61, 0xe5, 0xa9, 0x8d, 0x5e, 0x88, 0xb8, 0x37, 0x1d, 0x74, 0x0b, 0xce, 0x39, 0xcd, - 0xd8, 0xdd, 0x27, 0x55, 0xe2, 0xb4, 0x3c, 0xd7, 0x27, 0x66, 0x00, 0x90, 0xf3, 0x0f, 0x0e, 0x2b, - 0xe7, 0x16, 0xb3, 0x10, 0x70, 0x76, 0x3d, 0xf4, 0x05, 0x28, 0xb5, 0xfc, 0x48, 0x8c, 0xc1, 0x88, - 0x91, 0xa7, 0xb7, 0x54, 0x5d, 0x6f, 0xa8, 0xef, 0x4f, 0xfe, 0xe0, 0xa4, 0x02, 0xda, 0x86, 0x09, - 0xdd, 0xc9, 0x4f, 0xe4, 0x78, 0x7e, 0xa9, 0xc7, 0xad, 0xdf, 0xf0, 0x8c, 0xe3, 0x7a, 0x4d, 0x65, - 0xbb, 0x6d, 0x38, 0xcd, 0x19, 0x84, 0xd1, 0x5b, 0x80, 0xa8, 0x30, 0xe3, 0x36, 0xc9, 0x62, 0x93, - 0x45, 0x98, 0x67, 0xda, 0xb0, 0x31, 0xc3, 0x11, 0x09, 0x35, 0xba, 0x30, 0x70, 0x46, 0x2d, 0x74, - 0x9d, 0x72, 0x14, 0xbd, 0x54, 0x98, 0xda, 0x4b, 0x01, 0xb8, 0x5c, 0x25, 0xed, 0x90, 0x34, 0x9d, - 0x98, 0xb4, 0x4c, 0x8a, 0x38, 0x55, 0x8f, 0x9e, 0x37, 0x2a, 0xd9, 0x14, 0x98, 0x06, 0xe2, 0xdd, - 0x09, 0xa7, 0xe8, 0xdd, 0x71, 0x27, 0x88, 0xe2, 0x75, 0x12, 0xdf, 0x0b, 0xc2, 0x5d, 0x11, 0xb5, - 0x2f, 0x09, 0x20, 0x9b, 0x80, 0xb0, 0x8e, 0x47, 0x65, 0x45, 0xf6, 0xb0, 0x59, 0xab, 0xb2, 0x77, - 0xa6, 0xb1, 0x64, 0x9f, 0x5c, 0xe7, 0xc5, 0x58, 0xc2, 0x25, 0x6a, 0xad, 0xbe, 0xcc, 0xde, 0x8c, - 0x52, 0xa8, 0xb5, 0xfa, 0x32, 0x96, 0x70, 0x44, 0xba, 0x73, 0x20, 0x4f, 0xe5, 0xbf, 0xfb, 0x75, - 0xf3, 0xe5, 0x01, 0xd3, 0x20, 0xfb, 0x30, 0xa3, 0xb2, 0x2f, 0xf3, 0x70, 0x86, 0x51, 0x79, 0x9a, - 0x2d, 0x92, 0xc1, 0x63, 0x21, 0x2a, 0x6d, 0x67, 0x2d, 0x45, 0x09, 0x77, 0xd1, 0x36, 0x02, 0xcb, - 0xcc, 0xf4, 0x4d, 0x16, 0xb6, 0x00, 0xa5, 0xa8, 0xb3, 0xd9, 0x0a, 0xf6, 0x1c, 0xd7, 0x67, 0x4f, - 0x3c, 0x9a, 0x20, 0xd2, 0x90, 0x00, 0x9c, 0xe0, 0xa0, 0x55, 0x18, 0x73, 0xc4, 0xb5, 0x54, 0x3c, - 0xca, 0x64, 0x46, 0x9a, 0x90, 0x57, 0x57, 0x2e, 0x66, 0xcb, 0x7f, 0x58, 0xd5, 0x45, 0x6f, 0xc0, - 0xa4, 0x70, 0x86, 0x14, 0x76, 0xcc, 0x67, 0x4c, 0xbf, 0x99, 0x86, 0x0e, 0xc4, 0x26, 0x2e, 0xfa, - 0x2e, 0x98, 0xa2, 0x54, 0x12, 0xc6, 0x56, 0x3e, 0x3b, 0x08, 0x47, 0xd4, 0x92, 0xc0, 0xe8, 0x95, - 0x71, 0x8a, 0x18, 0x6a, 0xc1, 0x93, 0x4e, 0x27, 0x0e, 0x98, 0x3a, 0xd8, 0x5c, 0xff, 0x1b, 0xc1, - 0x2e, 0xf1, 0xd9, 0x4b, 0xcc, 0xd8, 0xd2, 0xc5, 0x07, 0x87, 0x95, 0x27, 0x17, 0x7b, 0xe0, 0xe1, - 0x9e, 0x54, 0xd0, 0x6d, 0x18, 0x8f, 0x03, 0x4f, 0x38, 0x20, 0x44, 0xe5, 0xc7, 0xf2, 0x03, 0x63, - 0x6d, 0x28, 0x34, 0x5d, 0xd1, 0xa2, 0xaa, 0x62, 0x9d, 0x0e, 0xda, 0xe0, 0x7b, 0x8c, 0x85, 0x0c, - 0x26, 0x51, 0xf9, 0xf1, 0xfc, 0x81, 0x51, 0x91, 0x85, 0xcd, 0x2d, 0x28, 0x6a, 0x62, 0x9d, 0x0c, - 0xba, 0x06, 0xb3, 0xed, 0xd0, 0x0d, 0xd8, 0xc2, 0x56, 0xaa, 0xf8, 0xb2, 0x99, 0xf7, 0xa3, 0x9e, - 0x46, 0xc0, 0xdd, 0x75, 0xe8, 0x45, 0x4c, 0x16, 0x96, 0xcf, 0xf3, 0x24, 0x72, 0x5c, 0x38, 0xe5, - 0x65, 0x58, 0x41, 0xd1, 0x1a, 0xe3, 0xcb, 0xfc, 0xca, 0x54, 0x9e, 0xcb, 0x8f, 0xd0, 0xa1, 0x5f, - 0xad, 0xb8, 0xe0, 0xa2, 0xfe, 0xe2, 0x84, 0xc2, 0xdc, 0xb7, 0xc3, 0x6c, 0x17, 0xe3, 0x3d, 0x96, - 0x6d, 0xf9, 0x9f, 0x0d, 0x43, 0x49, 0xe9, 0x5d, 0xd1, 0x82, 0xa9, 0x4e, 0x3f, 0x9f, 0x56, 0xa7, - 0x8f, 0x51, 0xf1, 0x4f, 0xd7, 0xa0, 0x6f, 0x18, 0x96, 0x51, 0x85, 0xfc, 0x5c, 0x70, 0xba, 0xd2, - 0xa1, 0xaf, 0x23, 0xa8, 0x76, 0x8d, 0x2e, 0x0e, 0xac, 0x97, 0x1f, 0xea, 0x79, 0x33, 0x1f, 0x30, - 0xbd, 0x35, 0xbd, 0x69, 0xb6, 0x83, 0x56, 0xad, 0x9e, 0xce, 0xf7, 0x5a, 0xa7, 0x85, 0x98, 0xc3, - 0xd8, 0x5d, 0x81, 0x4a, 0x09, 0xec, 0xae, 0x30, 0xfa, 0x90, 0x77, 0x05, 0x49, 0x00, 0x27, 0xb4, - 0x90, 0x07, 0xb3, 0x4d, 0x33, 0x55, 0xaf, 0x72, 0xfe, 0x7c, 0xa6, 0x6f, 0xd2, 0xdc, 0x8e, 0x96, - 0xc3, 0x6f, 0x39, 0x4d, 0x05, 0x77, 0x13, 0x46, 0x6f, 0xc0, 0xd8, 0xfb, 0x41, 0xc4, 0x56, 0xb1, - 0x38, 0x2a, 0xa5, 0xbb, 0xdd, 0xd8, 0xdb, 0xb7, 0x1a, 0xac, 0xfc, 0xe8, 0xb0, 0x32, 0x5e, 0x0f, - 0x5a, 0xf2, 0x2f, 0x56, 0x15, 0xd0, 0x7d, 0x38, 0x67, 0x30, 0x18, 0xd5, 0x5d, 0x18, 0xbc, 0xbb, - 0x4f, 0x89, 0xe6, 0xce, 0xd5, 0xb2, 0x28, 0xe1, 0xec, 0x06, 0xe8, 0xae, 0xf5, 0x03, 0x91, 0xe6, - 0x5a, 0x1e, 0xc7, 0xec, 0xd4, 0x2d, 0xe9, 0x51, 0x0b, 0x52, 0x08, 0xb8, 0xbb, 0x8e, 0xfd, 0xcb, - 0x5c, 0x4d, 0x2d, 0x94, 0x59, 0x24, 0xea, 0x78, 0xa7, 0x91, 0xf1, 0x6b, 0xc5, 0xd0, 0xb3, 0x3d, - 0xf4, 0x53, 0xc8, 0xaf, 0x5b, 0xec, 0x29, 0x64, 0x83, 0xec, 0xb5, 0x3d, 0x27, 0x3e, 0x0d, 0xd7, - 0x84, 0xb7, 0x61, 0x2c, 0x16, 0xad, 0xf5, 0x4a, 0x52, 0xa6, 0x75, 0x8a, 0x3d, 0x07, 0xa9, 0x83, - 0x5a, 0x96, 0x62, 0x45, 0xc6, 0xfe, 0x97, 0x7c, 0x06, 0x24, 0xe4, 0x14, 0x74, 0x1e, 0x55, 0x53, - 0xe7, 0x51, 0xe9, 0xf3, 0x05, 0x39, 0xba, 0x8f, 0x7f, 0x61, 0xf6, 0x9b, 0xdd, 0x89, 0x3e, 0xe9, - 0x6f, 0x70, 0xf6, 0x8f, 0x5a, 0x70, 0x36, 0xcb, 0xac, 0x84, 0x0a, 0x57, 0xfc, 0x46, 0xa6, 0xde, - 0x24, 0xd5, 0x08, 0xde, 0x11, 0xe5, 0x58, 0x61, 0x0c, 0x9c, 0xff, 0xe3, 0x78, 0x41, 0xea, 0x6e, - 0x81, 0x99, 0x1e, 0x1a, 0xbd, 0xc9, 0x7d, 0x8d, 0x2c, 0x95, 0xbf, 0xf9, 0x78, 0x7e, 0x46, 0xf6, - 0xcf, 0x14, 0xe0, 0x2c, 0x7f, 0x54, 0x58, 0xdc, 0x0f, 0xdc, 0x56, 0x3d, 0x68, 0x09, 0xcf, 0xab, - 0x77, 0x60, 0xa2, 0xad, 0x5d, 0xa3, 0x7b, 0x85, 0xc9, 0xd2, 0xaf, 0xdb, 0xc9, 0x75, 0x46, 0x2f, - 0xc5, 0x06, 0x2d, 0xd4, 0x82, 0x09, 0xb2, 0xef, 0x36, 0x95, 0x66, 0xba, 0x70, 0xec, 0xb3, 0x41, - 0xb5, 0xb2, 0xa2, 0xd1, 0xc1, 0x06, 0xd5, 0x47, 0x90, 0xce, 0xcf, 0xfe, 0x31, 0x0b, 0x1e, 0xcf, - 0x09, 0xaa, 0x45, 0x9b, 0xbb, 0xc7, 0x9e, 0x6f, 0x44, 0x66, 0x30, 0xd5, 0x1c, 0x7f, 0xd4, 0xc1, - 0x02, 0x8a, 0xbe, 0x04, 0xc0, 0x1f, 0x65, 0xa8, 0x74, 0x2f, 0x3e, 0x7d, 0xb0, 0x60, 0x33, 0x5a, - 0x44, 0x12, 0x59, 0x1f, 0x6b, 0xb4, 0xec, 0x9f, 0x2a, 0xc2, 0x30, 0x7b, 0x04, 0x40, 0xab, 0x30, - 0xba, 0xc3, 0x43, 0x78, 0x0f, 0x12, 0x2d, 0x3c, 0xb9, 0x26, 0xf1, 0x02, 0x2c, 0x2b, 0xa3, 0x35, - 0x38, 0x23, 0xbc, 0xfb, 0xaa, 0xc4, 0x73, 0x0e, 0xe4, 0x6d, 0x9b, 0x67, 0xd3, 0x52, 0xf9, 0xe3, - 0x6a, 0xdd, 0x28, 0x38, 0xab, 0x1e, 0x7a, 0xb3, 0x2b, 0x70, 0x27, 0x0f, 0x7e, 0xae, 0x64, 0xf3, - 0x3e, 0xc1, 0x3b, 0xdf, 0x80, 0xc9, 0x76, 0x97, 0x5e, 0x61, 0x38, 0xb9, 0x37, 0x98, 0xba, 0x04, - 0x13, 0x97, 0xd9, 0x93, 0x74, 0x98, 0xf5, 0xcc, 0xc6, 0x4e, 0x48, 0xa2, 0x9d, 0xc0, 0x6b, 0x89, - 0x04, 0xf7, 0x89, 0x3d, 0x49, 0x0a, 0x8e, 0xbb, 0x6a, 0x50, 0x2a, 0x5b, 0x8e, 0xeb, 0x75, 0x42, - 0x92, 0x50, 0x19, 0x31, 0xa9, 0xac, 0xa6, 0xe0, 0xb8, 0xab, 0x06, 0x5d, 0x47, 0xe7, 0x44, 0x76, - 0x74, 0x19, 0xf3, 0x41, 0x19, 0x09, 0x8d, 0x4a, 0xdf, 0x8f, 0x1e, 0x71, 0x88, 0x84, 0x91, 0x86, - 0xca, 0xaf, 0xae, 0xe5, 0xde, 0x15, 0x5e, 0x1f, 0x92, 0xca, 0xc3, 0xe4, 0xe8, 0xfe, 0x03, 0x0b, - 0xce, 0x64, 0x18, 0x23, 0x72, 0x56, 0xb5, 0xed, 0x46, 0xb1, 0xca, 0x18, 0xa4, 0xb1, 0x2a, 0x5e, - 0x8e, 0x15, 0x06, 0xdd, 0x0f, 0x9c, 0x19, 0xa6, 0x19, 0xa0, 0x30, 0xf6, 0x11, 0xd0, 0xe3, 0x31, - 0x40, 0x74, 0x11, 0x86, 0x3a, 0x11, 0x09, 0x65, 0x72, 0x6b, 0xc9, 0xbf, 0x99, 0xa6, 0x92, 0x41, - 0xa8, 0x68, 0xba, 0xad, 0x94, 0x84, 0x9a, 0x68, 0xca, 0xd5, 0x84, 0x1c, 0x66, 0x7f, 0xad, 0x08, - 0xe7, 0x73, 0x8d, 0x8d, 0x69, 0x97, 0xf6, 0x02, 0xdf, 0x8d, 0x03, 0xf5, 0xc0, 0xc4, 0x03, 0xe6, - 0x90, 0xf6, 0xce, 0x9a, 0x28, 0xc7, 0x0a, 0x03, 0x5d, 0x82, 0x61, 0x76, 0x11, 0xef, 0xca, 0x89, - 0xb4, 0x54, 0xe5, 0x71, 0x1c, 0x38, 0x78, 0xe0, 0x7c, 0x73, 0xcf, 0xc0, 0x50, 0x3b, 0x08, 0xbc, - 0x34, 0x33, 0xa2, 0xdd, 0x0d, 0x02, 0x0f, 0x33, 0x20, 0xfa, 0x8c, 0x18, 0x87, 0xd4, 0x8b, 0x0a, - 0x76, 0x5a, 0x41, 0xa4, 0x0d, 0xc6, 0x73, 0x30, 0xba, 0x4b, 0x0e, 0x42, 0xd7, 0xdf, 0x4e, 0xbf, - 0xb4, 0xdd, 0xe0, 0xc5, 0x58, 0xc2, 0xcd, 0x94, 0x20, 0xa3, 0x27, 0x9d, 0x28, 0x6e, 0xac, 0xef, - 0xd1, 0xf6, 0x03, 0x45, 0x98, 0xc6, 0x4b, 0xd5, 0x6f, 0x4d, 0xc4, 0xed, 0xee, 0x89, 0x38, 0xe9, - 0x44, 0x71, 0xfd, 0x67, 0xe3, 0x17, 0x2c, 0x98, 0x66, 0x61, 0xb3, 0x45, 0xc0, 0x17, 0x37, 0xf0, - 0x4f, 0x41, 0x74, 0x7b, 0x06, 0x86, 0x43, 0xda, 0x68, 0x3a, 0xfb, 0x13, 0xeb, 0x09, 0xe6, 0x30, - 0xf4, 0x24, 0x0c, 0xb1, 0x2e, 0xd0, 0xc9, 0x9b, 0xe0, 0x89, 0x33, 0xaa, 0x4e, 0xec, 0x60, 0x56, - 0xca, 0x3c, 0x6f, 0x31, 0x69, 0x7b, 0x2e, 0xef, 0x74, 0xa2, 0x99, 0xff, 0x64, 0x78, 0xde, 0x66, - 0x76, 0xed, 0xa3, 0x79, 0xde, 0x66, 0x93, 0xec, 0x7d, 0x2d, 0xfa, 0x9f, 0x05, 0xb8, 0x90, 0x59, - 0x6f, 0x60, 0xcf, 0xdb, 0xde, 0xb5, 0x4f, 0xc6, 0x60, 0x22, 0xdb, 0x8e, 0xa1, 0x78, 0x8a, 0x76, - 0x0c, 0x43, 0x83, 0x4a, 0x8e, 0xc3, 0x03, 0x38, 0xc4, 0x66, 0x0e, 0xd9, 0x27, 0xc4, 0x21, 0x36, - 0xb3, 0x6f, 0x39, 0xd7, 0xba, 0xbf, 0x28, 0xe4, 0x7c, 0x0b, 0xbb, 0xe0, 0x5d, 0xa6, 0x7c, 0x86, - 0x01, 0x23, 0x21, 0x09, 0x4f, 0x70, 0x1e, 0xc3, 0xcb, 0xb0, 0x82, 0x22, 0x57, 0x73, 0x2d, 0x2d, - 0xe4, 0xe7, 0x06, 0xcd, 0x6d, 0x6a, 0xde, 0x7c, 0x48, 0xd1, 0xa3, 0xd3, 0xa4, 0xdd, 0x4c, 0xd7, - 0xb4, 0x4b, 0x79, 0x71, 0xf0, 0x4b, 0xf9, 0x44, 0xf6, 0x85, 0x1c, 0x2d, 0xc2, 0xf4, 0x9e, 0xeb, - 0x53, 0xb6, 0x79, 0x60, 0x8a, 0xa2, 0x2a, 0xd2, 0xc2, 0x9a, 0x09, 0xc6, 0x69, 0xfc, 0xb9, 0x37, - 0x60, 0xf2, 0xe1, 0xd5, 0x91, 0xdf, 0x28, 0xc2, 0x13, 0x3d, 0xb6, 0x3d, 0xe7, 0xf5, 0xc6, 0x1c, - 0x68, 0xbc, 0xbe, 0x6b, 0x1e, 0xea, 0x70, 0x76, 0xab, 0xe3, 0x79, 0x07, 0xcc, 0x54, 0x90, 0xb4, - 0x24, 0x86, 0x90, 0x15, 0x55, 0x4c, 0xfc, 0xd5, 0x0c, 0x1c, 0x9c, 0x59, 0x13, 0xbd, 0x05, 0x28, - 0x10, 0x89, 0x89, 0x93, 0x98, 0x3b, 0x6c, 0xe0, 0x8b, 0xc9, 0x66, 0xbc, 0xd5, 0x85, 0x81, 0x33, - 0x6a, 0x51, 0xa1, 0x9f, 0x9e, 0x4a, 0x07, 0xaa, 0x5b, 0x29, 0xa1, 0x1f, 0xeb, 0x40, 0x6c, 0xe2, - 0xa2, 0x6b, 0x30, 0xeb, 0xec, 0x3b, 0x2e, 0x8f, 0xc1, 0x28, 0x09, 0x70, 0xa9, 0x5f, 0x29, 0xc1, - 0x16, 0xd3, 0x08, 0xb8, 0xbb, 0x4e, 0xca, 0xb7, 0x75, 0x24, 0xdf, 0xb7, 0xb5, 0x37, 0x5f, 0xec, - 0xa7, 0xd3, 0xb5, 0xff, 0x8b, 0x45, 0x8f, 0x2f, 0x2e, 0xbc, 0x9b, 0xf1, 0xa8, 0xde, 0x80, 0x49, - 0xa5, 0x9b, 0xd4, 0xdc, 0x4c, 0xd5, 0x38, 0x2c, 0xeb, 0x40, 0x6c, 0xe2, 0xf2, 0x05, 0x11, 0x25, - 0x1e, 0x0f, 0x86, 0xe8, 0x2e, 0xfc, 0xc8, 0x15, 0x06, 0xfa, 0x32, 0x8c, 0xb6, 0xdc, 0x7d, 0x37, - 0x0a, 0x42, 0xb1, 0x59, 0x8e, 0x69, 0x95, 0x9e, 0xf0, 0xc1, 0x2a, 0x27, 0x83, 0x25, 0x3d, 0xfb, - 0x07, 0x0a, 0x30, 0x29, 0x5b, 0x7c, 0xbb, 0x13, 0xc4, 0xce, 0x29, 0x1c, 0xcb, 0xd7, 0x8c, 0x63, - 0xf9, 0x33, 0xbd, 0x9c, 0xe9, 0x59, 0x97, 0x72, 0x8f, 0xe3, 0x5b, 0xa9, 0xe3, 0xf8, 0xd9, 0xfe, - 0xa4, 0x7a, 0x1f, 0xc3, 0xff, 0xca, 0x82, 0x59, 0x03, 0xff, 0x14, 0x4e, 0x83, 0x55, 0xf3, 0x34, - 0x78, 0xba, 0xef, 0x37, 0xe4, 0x9c, 0x02, 0x5f, 0x2f, 0xa4, 0xfa, 0xce, 0xb8, 0xff, 0xfb, 0x30, - 0xb4, 0xe3, 0x84, 0xad, 0x5e, 0x91, 0x84, 0xbb, 0x2a, 0xcd, 0x5f, 0x77, 0xc2, 0x16, 0xe7, 0xe1, - 0x2f, 0xaa, 0x74, 0xa6, 0x4e, 0xd8, 0xea, 0xeb, 0xe0, 0xc3, 0x9a, 0x42, 0x57, 0x61, 0x24, 0x6a, - 0x06, 0x6d, 0x65, 0xdc, 0x77, 0x91, 0xa7, 0x3a, 0xa5, 0x25, 0x47, 0x87, 0x15, 0x64, 0x36, 0x47, - 0x8b, 0xb1, 0xc0, 0x9f, 0xdb, 0x86, 0x92, 0x6a, 0xfa, 0x91, 0xba, 0x66, 0xfc, 0x4e, 0x11, 0xce, - 0x64, 0xac, 0x0b, 0x14, 0x19, 0xa3, 0xf5, 0xf2, 0x80, 0xcb, 0xe9, 0x23, 0x8e, 0x57, 0xc4, 0x6e, - 0x2c, 0x2d, 0x31, 0xff, 0x03, 0x37, 0x7a, 0x3b, 0x22, 0xe9, 0x46, 0x69, 0x51, 0xff, 0x46, 0x69, - 0x63, 0xa7, 0x36, 0xd4, 0xb4, 0x21, 0xd5, 0xd3, 0x47, 0x3a, 0xa7, 0x7f, 0x5a, 0x84, 0xb3, 0x59, - 0x31, 0x38, 0xd0, 0x77, 0xa7, 0xf2, 0x12, 0xbd, 0x3a, 0x68, 0xf4, 0x0e, 0x9e, 0xac, 0x48, 0x04, - 0x2d, 0x9b, 0x37, 0x33, 0x15, 0xf5, 0x1d, 0x66, 0xd1, 0x26, 0xf3, 0xb8, 0x0b, 0x79, 0x3e, 0x29, - 0xb9, 0xc5, 0x3f, 0x37, 0x70, 0x07, 0x44, 0x22, 0xaa, 0x28, 0xe5, 0x71, 0x27, 0x8b, 0xfb, 0x7b, - 0xdc, 0xc9, 0x96, 0xe7, 0x5c, 0x18, 0xd7, 0xbe, 0xe6, 0x91, 0xce, 0xf8, 0x2e, 0x3d, 0x51, 0xb4, - 0x7e, 0x3f, 0xd2, 0x59, 0xff, 0x31, 0x0b, 0x52, 0x26, 0x75, 0x4a, 0x25, 0x65, 0xe5, 0xaa, 0xa4, - 0x2e, 0xc2, 0x50, 0x18, 0x78, 0x24, 0x9d, 0xaa, 0x06, 0x07, 0x1e, 0xc1, 0x0c, 0x42, 0x31, 0xe2, - 0x44, 0x21, 0x31, 0xa1, 0x5f, 0xb6, 0xc4, 0x35, 0xea, 0x19, 0x18, 0xf6, 0xc8, 0x3e, 0x91, 0xda, - 0x08, 0xc5, 0x93, 0x6f, 0xd2, 0x42, 0xcc, 0x61, 0xf6, 0x2f, 0x0c, 0xc1, 0x53, 0x3d, 0x7d, 0x56, - 0xe9, 0x95, 0x65, 0xdb, 0x89, 0xc9, 0x3d, 0xe7, 0x20, 0x1d, 0x48, 0xfb, 0x1a, 0x2f, 0xc6, 0x12, - 0xce, 0x0c, 0x80, 0x79, 0x2c, 0xce, 0x94, 0x02, 0x4f, 0x84, 0xe0, 0x14, 0x50, 0x53, 0x71, 0x54, - 0x3c, 0x09, 0xc5, 0xd1, 0x15, 0x80, 0x28, 0xf2, 0x56, 0x7c, 0x2a, 0x81, 0xb5, 0x84, 0x65, 0x71, - 0x12, 0xb3, 0xb5, 0x71, 0x53, 0x40, 0xb0, 0x86, 0x85, 0xaa, 0x30, 0xd3, 0x0e, 0x83, 0x98, 0xeb, - 0x43, 0xab, 0xdc, 0xa6, 0x65, 0xd8, 0x74, 0x17, 0xac, 0xa7, 0xe0, 0xb8, 0xab, 0x06, 0x7a, 0x0d, - 0xc6, 0x85, 0x0b, 0x61, 0x3d, 0x08, 0x3c, 0xa1, 0xaa, 0x51, 0x16, 0x12, 0x8d, 0x04, 0x84, 0x75, - 0x3c, 0xad, 0x1a, 0x53, 0xb2, 0x8e, 0x66, 0x56, 0xe3, 0x8a, 0x56, 0x0d, 0x2f, 0x15, 0x8f, 0x67, - 0x6c, 0xa0, 0x78, 0x3c, 0x89, 0xf2, 0xaa, 0x34, 0xf0, 0xbb, 0x12, 0xf4, 0x55, 0xf7, 0xfc, 0xec, - 0x10, 0x9c, 0x11, 0x0b, 0xe7, 0x51, 0x2f, 0x97, 0xdb, 0xdd, 0xcb, 0xe5, 0x24, 0xd4, 0x5b, 0xdf, - 0x5a, 0x33, 0xa7, 0xbd, 0x66, 0x7e, 0xb9, 0x08, 0x23, 0x7c, 0x2a, 0x4e, 0x41, 0x86, 0x5f, 0x15, - 0x4a, 0xbf, 0x1e, 0x91, 0x68, 0x78, 0x5f, 0xe6, 0xab, 0x4e, 0xec, 0xf0, 0xf3, 0x4b, 0xb1, 0xd1, - 0x44, 0x3d, 0x88, 0xe6, 0x0d, 0x46, 0x3b, 0x97, 0xd2, 0x6a, 0x01, 0xa7, 0xa1, 0xb1, 0xdd, 0xaf, - 0x00, 0x44, 0x2c, 0x17, 0x3f, 0xa5, 0x21, 0x62, 0x1a, 0x3d, 0xdf, 0xa3, 0xf5, 0x86, 0x42, 0xe6, - 0x7d, 0x48, 0x96, 0xa0, 0x02, 0x60, 0x8d, 0xe2, 0xdc, 0xeb, 0x50, 0x52, 0xc8, 0xfd, 0x54, 0x00, - 0x13, 0xfa, 0xa9, 0xf7, 0x45, 0x98, 0x4e, 0xb5, 0x75, 0x2c, 0x0d, 0xc2, 0x2f, 0x5a, 0x30, 0xcd, - 0xbb, 0xbc, 0xe2, 0xef, 0x8b, 0xcd, 0xfe, 0x01, 0x9c, 0xf5, 0x32, 0x36, 0x9d, 0x98, 0xd1, 0xc1, - 0x37, 0xa9, 0xd2, 0x18, 0x64, 0x41, 0x71, 0x66, 0x1b, 0xe8, 0x32, 0x8c, 0x71, 0x8f, 0x19, 0xc7, - 0x13, 0x5e, 0x0e, 0x13, 0x3c, 0xb7, 0x05, 0x2f, 0xc3, 0x0a, 0x6a, 0xff, 0x9e, 0x05, 0xb3, 0xbc, - 0xe7, 0x37, 0xc8, 0x81, 0xba, 0x1d, 0x7f, 0x9c, 0x7d, 0x17, 0xa9, 0x3b, 0x0a, 0x39, 0xa9, 0x3b, - 0xf4, 0x4f, 0x2b, 0xf6, 0xfc, 0xb4, 0x9f, 0xb1, 0x40, 0xac, 0xc0, 0x53, 0xb8, 0x07, 0x7e, 0xbb, - 0x79, 0x0f, 0x9c, 0xcb, 0x5f, 0xd4, 0x39, 0x17, 0xc0, 0x3f, 0xb7, 0x60, 0x86, 0x23, 0x24, 0x0f, - 0x91, 0x1f, 0xeb, 0x3c, 0x0c, 0x92, 0x4f, 0x4e, 0x25, 0xf0, 0xce, 0xfe, 0x28, 0x63, 0xb2, 0x86, - 0x7a, 0x4e, 0x56, 0x4b, 0x6e, 0xa0, 0x63, 0xe4, 0x49, 0x3c, 0x76, 0xb4, 0x59, 0xfb, 0x4f, 0x2c, - 0x40, 0xbc, 0x19, 0xe3, 0x5c, 0xa6, 0xa7, 0x1d, 0x2b, 0xd5, 0x34, 0x41, 0x09, 0xab, 0x51, 0x10, - 0xac, 0x61, 0x9d, 0xc8, 0xf0, 0xa4, 0x5e, 0x93, 0x8b, 0xfd, 0x5f, 0x93, 0x8f, 0x31, 0xa2, 0x7f, - 0x7b, 0x08, 0xd2, 0x26, 0xd5, 0xe8, 0x0e, 0x4c, 0x34, 0x9d, 0xb6, 0xb3, 0xe9, 0x7a, 0x6e, 0xec, - 0x92, 0xa8, 0x97, 0x19, 0xca, 0xb2, 0x86, 0x27, 0xde, 0x09, 0xb5, 0x12, 0x6c, 0xd0, 0x41, 0xf3, - 0x00, 0xed, 0xd0, 0xdd, 0x77, 0x3d, 0xb2, 0xcd, 0xae, 0xc2, 0xcc, 0xaf, 0x8a, 0xdb, 0x56, 0xc8, - 0x52, 0xac, 0x61, 0x64, 0xf8, 0xe1, 0x14, 0x1f, 0x9d, 0x1f, 0xce, 0xd0, 0x31, 0xfd, 0x70, 0x86, - 0x07, 0xf2, 0xc3, 0xc1, 0xf0, 0x98, 0x3c, 0xbb, 0xe9, 0xff, 0x55, 0xd7, 0x23, 0x42, 0x60, 0xe3, - 0xde, 0x56, 0x73, 0x0f, 0x0e, 0x2b, 0x8f, 0xe1, 0x4c, 0x0c, 0x9c, 0x53, 0x13, 0x7d, 0x09, 0xca, - 0x8e, 0xe7, 0x05, 0xf7, 0xd4, 0xa8, 0xad, 0x44, 0x4d, 0xc7, 0x4b, 0x82, 0xaf, 0x8f, 0x2d, 0x3d, - 0xf9, 0xe0, 0xb0, 0x52, 0x5e, 0xcc, 0xc1, 0xc1, 0xb9, 0xb5, 0xed, 0x5d, 0x38, 0xd3, 0x20, 0xa1, - 0x4c, 0xbd, 0xaa, 0xb6, 0xd8, 0x06, 0x94, 0xc2, 0x14, 0x53, 0x19, 0x28, 0xe8, 0x89, 0x16, 0x18, - 0x53, 0x32, 0x91, 0x84, 0x90, 0xfd, 0x67, 0x16, 0x8c, 0x0a, 0x33, 0xed, 0x53, 0x90, 0x65, 0x16, - 0x0d, 0x7d, 0x64, 0x25, 0x9b, 0xf1, 0xb2, 0xce, 0xe4, 0x6a, 0x22, 0x6b, 0x29, 0x4d, 0xe4, 0xd3, - 0xbd, 0x88, 0xf4, 0xd6, 0x41, 0xfe, 0x48, 0x11, 0xa6, 0x4c, 0x13, 0xf5, 0x53, 0x18, 0x82, 0x75, - 0x18, 0x8d, 0x84, 0x3f, 0x44, 0x21, 0xdf, 0x10, 0x36, 0x3d, 0x89, 0x89, 0x95, 0x8b, 0xf0, 0x80, - 0x90, 0x44, 0x32, 0x1d, 0x2d, 0x8a, 0x8f, 0xd0, 0xd1, 0xa2, 0x9f, 0x97, 0xc0, 0xd0, 0x49, 0x78, - 0x09, 0xd8, 0xbf, 0xc2, 0x98, 0xbf, 0x5e, 0x7e, 0x0a, 0x72, 0xc1, 0x35, 0xf3, 0x98, 0xb0, 0x7b, - 0xac, 0x2c, 0xd1, 0xa9, 0x1c, 0xf9, 0xe0, 0x9f, 0x59, 0x30, 0x2e, 0x10, 0x4f, 0xa1, 0xdb, 0xdf, - 0x61, 0x76, 0xfb, 0x89, 0x1e, 0xdd, 0xce, 0xe9, 0xef, 0x3f, 0x28, 0xa8, 0xfe, 0xd6, 0x83, 0x30, - 0x1e, 0x28, 0x19, 0xc7, 0x18, 0xbd, 0x0d, 0x06, 0xcd, 0xc0, 0x13, 0x87, 0xf9, 0x93, 0x89, 0xc3, - 0x2d, 0x2f, 0x3f, 0xd2, 0x7e, 0x63, 0x85, 0xcd, 0xfc, 0x41, 0x83, 0x30, 0x16, 0x07, 0x68, 0xe2, - 0x0f, 0x1a, 0x84, 0x31, 0x66, 0x10, 0xd4, 0x02, 0x88, 0x9d, 0x70, 0x9b, 0xc4, 0xb4, 0x4c, 0xf8, - 0xee, 0xe7, 0xef, 0xc2, 0x4e, 0xec, 0x7a, 0xf3, 0xae, 0x1f, 0x47, 0x71, 0x38, 0x5f, 0xf3, 0xe3, - 0x5b, 0x21, 0xbf, 0x1b, 0x68, 0x1e, 0xb4, 0x8a, 0x16, 0xd6, 0xe8, 0x4a, 0x17, 0x2e, 0xd6, 0xc6, - 0xb0, 0xf9, 0x50, 0xb8, 0x2e, 0xca, 0xb1, 0xc2, 0xb0, 0x5f, 0x67, 0x3c, 0x99, 0x0d, 0xd0, 0xf1, - 0x9c, 0x5b, 0x7f, 0x6b, 0x4c, 0x0d, 0x2d, 0x7b, 0x25, 0xa8, 0xea, 0x2e, 0xb4, 0xbd, 0x59, 0x20, - 0x6d, 0x58, 0xf7, 0x2f, 0x48, 0xfc, 0x6c, 0xd1, 0x77, 0x76, 0xbd, 0x1f, 0xbf, 0xd4, 0x87, 0x97, - 0x1e, 0xe3, 0xc5, 0x98, 0x45, 0x74, 0x65, 0x91, 0x2f, 0x6b, 0xf5, 0x74, 0xba, 0x94, 0x65, 0x09, - 0xc0, 0x09, 0x0e, 0x5a, 0x10, 0x37, 0x4b, 0xae, 0x9f, 0x7b, 0x22, 0x75, 0xb3, 0x94, 0x9f, 0xaf, - 0x5d, 0x2d, 0x5f, 0x86, 0x71, 0x95, 0x82, 0xae, 0xce, 0x33, 0x79, 0x89, 0x48, 0x06, 0x2b, 0x49, - 0x31, 0xd6, 0x71, 0xd0, 0x06, 0x4c, 0x47, 0x3c, 0x3f, 0x9e, 0xf4, 0xaa, 0x12, 0x7a, 0x83, 0xe7, - 0xe5, 0xbb, 0x73, 0xc3, 0x04, 0x1f, 0xb1, 0x22, 0xbe, 0x59, 0xa5, 0x1f, 0x56, 0x9a, 0x04, 0x7a, - 0x13, 0xa6, 0x3c, 0x3d, 0x4f, 0x78, 0x5d, 0xa8, 0x15, 0x94, 0x59, 0xa6, 0x91, 0x45, 0xbc, 0x8e, - 0x53, 0xd8, 0x54, 0x08, 0xd0, 0x4b, 0x44, 0x18, 0x34, 0xc7, 0xdf, 0x26, 0x91, 0x48, 0xa0, 0xc5, - 0x84, 0x80, 0x9b, 0x39, 0x38, 0x38, 0xb7, 0x36, 0xba, 0x0a, 0x13, 0xf2, 0xf3, 0x35, 0x2f, 0xc3, - 0xc4, 0xf8, 0x57, 0x83, 0x61, 0x03, 0x13, 0xdd, 0x83, 0x73, 0xf2, 0xff, 0x46, 0xe8, 0x6c, 0x6d, - 0xb9, 0x4d, 0xe1, 0xe4, 0xc9, 0x3d, 0x20, 0x16, 0xa5, 0x4b, 0xc5, 0x4a, 0x16, 0xd2, 0xd1, 0x61, - 0xe5, 0xa2, 0x18, 0xb5, 0x4c, 0x38, 0x9b, 0xc4, 0x6c, 0xfa, 0x68, 0x0d, 0xce, 0xec, 0x10, 0xc7, - 0x8b, 0x77, 0x96, 0x77, 0x48, 0x73, 0x57, 0x6e, 0x22, 0xe6, 0xbb, 0xa8, 0x99, 0xcc, 0x5e, 0xef, - 0x46, 0xc1, 0x59, 0xf5, 0xd0, 0xbb, 0x50, 0x6e, 0x77, 0x36, 0x3d, 0x37, 0xda, 0x59, 0x0f, 0x62, - 0xf6, 0xd4, 0xad, 0x32, 0xb8, 0x09, 0x27, 0x47, 0xe5, 0xb7, 0x59, 0xcf, 0xc1, 0xc3, 0xb9, 0x14, - 0xd0, 0x07, 0x70, 0x2e, 0xb5, 0x18, 0x84, 0xcb, 0xd5, 0x54, 0x7e, 0x50, 0xc9, 0x46, 0x56, 0x05, - 0xee, 0x7a, 0x9b, 0x09, 0xc2, 0xd9, 0x4d, 0x7c, 0x34, 0x03, 0x88, 0xf7, 0x69, 0x65, 0x4d, 0xba, - 0x41, 0x5f, 0x85, 0x09, 0x7d, 0x15, 0x89, 0x03, 0xe6, 0x52, 0xbf, 0x9c, 0xf8, 0x42, 0x36, 0x52, - 0x2b, 0x4a, 0x87, 0x61, 0x83, 0xa2, 0x4d, 0x20, 0xfb, 0xfb, 0xd0, 0x4d, 0x18, 0x6b, 0x7a, 0x2e, - 0xf1, 0xe3, 0x5a, 0xbd, 0x97, 0x73, 0xfe, 0xb2, 0xc0, 0x11, 0x03, 0x26, 0xa2, 0xf0, 0xf1, 0x32, - 0xac, 0x28, 0xd8, 0xbf, 0x56, 0x80, 0x4a, 0x9f, 0x90, 0x8e, 0x29, 0x1d, 0xa0, 0x35, 0x90, 0x0e, - 0x70, 0x51, 0xe6, 0xa3, 0x5b, 0x4f, 0xdd, 0x3f, 0x53, 0xb9, 0xe6, 0x92, 0x5b, 0x68, 0x1a, 0x7f, - 0x60, 0xbb, 0x49, 0x5d, 0x8d, 0x38, 0xd4, 0xd7, 0xa2, 0xd7, 0x78, 0x3e, 0x18, 0x1e, 0x5c, 0xa2, - 0xcf, 0x55, 0x05, 0xdb, 0xbf, 0x52, 0x80, 0x73, 0x6a, 0x08, 0xbf, 0x79, 0x07, 0xee, 0x76, 0xf7, - 0xc0, 0x9d, 0x80, 0x22, 0xdd, 0xbe, 0x05, 0x23, 0x8d, 0x83, 0xa8, 0x19, 0x7b, 0x03, 0x08, 0x40, - 0xcf, 0x98, 0x41, 0x6a, 0xd4, 0x31, 0x6d, 0x04, 0xaa, 0xf9, 0x1b, 0x16, 0x4c, 0x6f, 0x2c, 0xd7, - 0x1b, 0x41, 0x73, 0x97, 0xc4, 0x8b, 0x5c, 0x4d, 0x84, 0x85, 0xfc, 0x63, 0x3d, 0xa4, 0x5c, 0x93, - 0x25, 0x31, 0x5d, 0x84, 0xa1, 0x9d, 0x20, 0x8a, 0xd3, 0xaf, 0x6c, 0xd7, 0x83, 0x28, 0xc6, 0x0c, - 0x62, 0xff, 0xbe, 0x05, 0xc3, 0x2c, 0x8b, 0x6a, 0xbf, 0x6c, 0xbb, 0x83, 0x7c, 0x17, 0x7a, 0x0d, - 0x46, 0xc8, 0xd6, 0x16, 0x69, 0xc6, 0x62, 0x56, 0xa5, 0x9b, 0xde, 0xc8, 0x0a, 0x2b, 0xa5, 0x87, - 0x3e, 0x6b, 0x8c, 0xff, 0xc5, 0x02, 0x19, 0xdd, 0x85, 0x52, 0xec, 0xee, 0x91, 0xc5, 0x56, 0x4b, - 0xbc, 0x53, 0x3c, 0x84, 0x57, 0xe4, 0x86, 0x24, 0x80, 0x13, 0x5a, 0xf6, 0xd7, 0x0a, 0x00, 0x89, - 0x67, 0x70, 0xbf, 0x4f, 0x5c, 0xea, 0x4a, 0x28, 0x7c, 0x29, 0x23, 0xa1, 0x30, 0x4a, 0x08, 0x66, - 0xa4, 0x13, 0x56, 0xc3, 0x54, 0x1c, 0x68, 0x98, 0x86, 0x8e, 0x33, 0x4c, 0xcb, 0x30, 0x9b, 0x78, - 0x36, 0x9b, 0x61, 0x1e, 0x58, 0x88, 0xf7, 0x8d, 0x34, 0x10, 0x77, 0xe3, 0xdb, 0xdf, 0x6f, 0x81, - 0x70, 0x37, 0x18, 0x60, 0x31, 0xbf, 0x23, 0x73, 0x7f, 0x1a, 0x91, 0x61, 0x2f, 0xe6, 0xfb, 0x5f, - 0x88, 0x78, 0xb0, 0xea, 0xf0, 0x30, 0xa2, 0xc0, 0x1a, 0xb4, 0xec, 0x16, 0x08, 0x68, 0x95, 0x30, - 0x25, 0x43, 0xff, 0xde, 0x5c, 0x01, 0x68, 0x31, 0x5c, 0x2d, 0x97, 0xa0, 0x62, 0x55, 0x55, 0x05, - 0xc1, 0x1a, 0x96, 0xfd, 0x43, 0x05, 0x18, 0x97, 0x91, 0x48, 0xe9, 0x3d, 0xbe, 0x7f, 0x2b, 0xc7, - 0x4a, 0x43, 0xc0, 0x92, 0x6f, 0x52, 0xc2, 0x2a, 0x5a, 0xbd, 0x9e, 0x7c, 0x53, 0x02, 0x70, 0x82, - 0x83, 0x9e, 0x83, 0xd1, 0xa8, 0xb3, 0xc9, 0xd0, 0x53, 0x46, 0xf4, 0x0d, 0x5e, 0x8c, 0x25, 0x1c, - 0x7d, 0x09, 0x66, 0x78, 0xbd, 0x30, 0x68, 0x3b, 0xdb, 0x5c, 0x83, 0x34, 0xac, 0xbc, 0xda, 0x66, - 0xd6, 0x52, 0xb0, 0xa3, 0xc3, 0xca, 0xd9, 0x74, 0x19, 0xd3, 0x3d, 0x76, 0x51, 0xa1, 0xfb, 0x62, - 0x26, 0xed, 0x30, 0x83, 0xae, 0xc3, 0x08, 0x67, 0x79, 0x82, 0x05, 0xf5, 0x78, 0x51, 0xd2, 0xdc, - 0x6c, 0x58, 0x5c, 0x76, 0xc1, 0x35, 0x45, 0x7d, 0xf4, 0x2e, 0x8c, 0xb7, 0x82, 0x7b, 0xfe, 0x3d, - 0x27, 0x6c, 0x2d, 0xd6, 0x6b, 0x62, 0xd5, 0x64, 0x4a, 0x4e, 0xd5, 0x04, 0x4d, 0x77, 0xdd, 0x61, - 0xda, 0xd3, 0x04, 0x84, 0x75, 0x72, 0x68, 0x83, 0x05, 0x8b, 0xe2, 0xd9, 0xf1, 0x7b, 0x59, 0x9d, - 0xa9, 0x84, 0xfa, 0x1a, 0xe5, 0x49, 0x11, 0x51, 0x4a, 0xe4, 0xd6, 0x4f, 0x08, 0xd9, 0x1f, 0x9e, - 0x01, 0x63, 0xb5, 0x1a, 0x69, 0x08, 0xac, 0x13, 0x4a, 0x43, 0x80, 0x61, 0x8c, 0xec, 0xb5, 0xe3, - 0x83, 0xaa, 0x1b, 0xf6, 0xca, 0x63, 0xb3, 0x22, 0x70, 0xba, 0x69, 0x4a, 0x08, 0x56, 0x74, 0xb2, - 0x73, 0x45, 0x14, 0x3f, 0xc6, 0x5c, 0x11, 0x43, 0xa7, 0x98, 0x2b, 0x62, 0x1d, 0x46, 0xb7, 0xdd, - 0x18, 0x93, 0x76, 0x20, 0x8e, 0xfb, 0xcc, 0x95, 0x70, 0x8d, 0xa3, 0x74, 0x47, 0x2a, 0x17, 0x00, - 0x2c, 0x89, 0xa0, 0xb7, 0xd4, 0x1e, 0x18, 0xc9, 0x97, 0x96, 0xbb, 0x1f, 0x1f, 0x32, 0x77, 0x81, - 0xc8, 0x0d, 0x31, 0xfa, 0xb0, 0xb9, 0x21, 0x56, 0x65, 0x46, 0x87, 0xb1, 0x7c, 0x23, 0x4d, 0x96, - 0xb0, 0xa1, 0x4f, 0x1e, 0x07, 0x23, 0xf7, 0x45, 0xe9, 0xe4, 0x72, 0x5f, 0x7c, 0xbf, 0x05, 0xe7, - 0xda, 0x59, 0x69, 0x60, 0x44, 0x46, 0x86, 0xd7, 0x06, 0xce, 0x73, 0x63, 0x34, 0xc8, 0xae, 0x4d, - 0x99, 0x68, 0x38, 0xbb, 0x39, 0x3a, 0xd0, 0xe1, 0x66, 0x4b, 0xa4, 0x71, 0x78, 0x26, 0x27, 0x89, - 0x46, 0x8f, 0xd4, 0x19, 0x1b, 0x19, 0xa9, 0x1b, 0x3e, 0x9d, 0x97, 0xba, 0x61, 0xe0, 0x84, 0x0d, - 0x49, 0xfa, 0x8c, 0xc9, 0x8f, 0x9c, 0x3e, 0xe3, 0x2d, 0x95, 0x3e, 0xa3, 0x47, 0x48, 0x1e, 0x9e, - 0x1c, 0xa3, 0x6f, 0xd2, 0x0c, 0x2d, 0xf1, 0xc5, 0xf4, 0xc9, 0x24, 0xbe, 0x30, 0x98, 0x3d, 0xcf, - 0xbd, 0xf0, 0x42, 0x1f, 0x66, 0x6f, 0xd0, 0xed, 0xcd, 0xee, 0x79, 0x92, 0x8f, 0xd9, 0x87, 0x4a, - 0xf2, 0x71, 0x47, 0x4f, 0x9a, 0x81, 0xfa, 0x64, 0x85, 0xa0, 0x48, 0x03, 0xa6, 0xca, 0xb8, 0xa3, - 0x1f, 0x41, 0x67, 0xf2, 0xe9, 0xaa, 0x93, 0xa6, 0x9b, 0x6e, 0xd6, 0x21, 0xd4, 0x9d, 0x82, 0xe3, - 0xec, 0xe9, 0xa4, 0xe0, 0x38, 0x77, 0xe2, 0x29, 0x38, 0x1e, 0x3b, 0x85, 0x14, 0x1c, 0x8f, 0x7f, - 0xac, 0x29, 0x38, 0xca, 0x8f, 0x20, 0x05, 0xc7, 0x7a, 0x92, 0x82, 0xe3, 0x7c, 0xfe, 0x94, 0x64, - 0x58, 0xa5, 0xe5, 0x24, 0xde, 0xb8, 0x03, 0xa5, 0xb6, 0xf4, 0xa9, 0x16, 0x31, 0x83, 0xb2, 0x73, - 0xff, 0x65, 0x39, 0x5e, 0xf3, 0x29, 0x51, 0x20, 0x9c, 0x90, 0xa2, 0x74, 0x93, 0x44, 0x1c, 0x4f, - 0xf4, 0x50, 0x8c, 0x65, 0xa9, 0x1c, 0xf2, 0xd3, 0x6f, 0xd8, 0x7f, 0xb3, 0x00, 0x17, 0x7a, 0xaf, - 0xeb, 0x44, 0x5f, 0x51, 0x4f, 0xf4, 0xeb, 0x29, 0x7d, 0x05, 0xbf, 0x04, 0x24, 0x58, 0x03, 0x07, - 0x9e, 0xb8, 0x06, 0xb3, 0xca, 0x1c, 0xcd, 0x73, 0x9b, 0x07, 0x5a, 0x4e, 0x40, 0xe5, 0x1a, 0xd3, - 0x48, 0x23, 0xe0, 0xee, 0x3a, 0x68, 0x11, 0xa6, 0x8d, 0xc2, 0x5a, 0x55, 0x08, 0xfb, 0x4a, 0x41, - 0xd2, 0x30, 0xc1, 0x38, 0x8d, 0x6f, 0x7f, 0xdd, 0x82, 0xc7, 0x73, 0x62, 0x5f, 0x0f, 0x1c, 0x57, - 0x61, 0x0b, 0xa6, 0xdb, 0x66, 0xd5, 0x3e, 0xe1, 0x57, 0x8c, 0x08, 0xdb, 0xaa, 0xaf, 0x29, 0x00, - 0x4e, 0x13, 0x5d, 0xba, 0xfc, 0x1b, 0x7f, 0x78, 0xe1, 0x53, 0xbf, 0xfd, 0x87, 0x17, 0x3e, 0xf5, - 0x7b, 0x7f, 0x78, 0xe1, 0x53, 0x7f, 0xf5, 0xc1, 0x05, 0xeb, 0x37, 0x1e, 0x5c, 0xb0, 0x7e, 0xfb, - 0xc1, 0x05, 0xeb, 0xf7, 0x1e, 0x5c, 0xb0, 0xfe, 0xe0, 0xc1, 0x05, 0xeb, 0x6b, 0x7f, 0x74, 0xe1, - 0x53, 0xef, 0x14, 0xf6, 0x5f, 0xfe, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x16, 0xdf, 0x88, 0xcf, - 0xae, 0xe0, 0x00, 0x00, + // 12567 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6f, 0x90, 0x24, 0x47, + 0x56, 0x18, 0x7e, 0xd5, 0x3d, 0xff, 0xfa, 0xcd, 0xff, 0xdc, 0x5d, 0xa9, 0x77, 0x24, 0xed, 0xac, + 0x4a, 0x77, 0xab, 0xd5, 0xbf, 0x99, 0xd3, 0x4a, 0x3a, 0x2d, 0xa7, 0x3b, 0xc1, 0xcc, 0xf4, 0xcc, + 0x6e, 0x6b, 0x77, 0x66, 0x5b, 0xd9, 0xb3, 0xbb, 0x77, 0x42, 0xdc, 0x4f, 0x35, 0xdd, 0x39, 0x3d, + 0xa5, 0xa9, 0xa9, 0x6a, 0x55, 0x55, 0xcf, 0xee, 0x28, 0x20, 0xe2, 0xe7, 0x33, 0x60, 0x63, 0xf8, + 0x70, 0x61, 0x08, 0x1b, 0x03, 0x81, 0x23, 0xec, 0x73, 0xc0, 0x19, 0xdb, 0x11, 0x18, 0x0c, 0x18, + 0xb0, 0x8d, 0xb1, 0xc3, 0x01, 0x5f, 0x30, 0xf8, 0xcb, 0x11, 0x41, 0x78, 0x0c, 0x0b, 0x61, 0x07, + 0x1f, 0xec, 0x70, 0x98, 0x4f, 0x8c, 0xb1, 0x71, 0xe4, 0xdf, 0xca, 0xac, 0xae, 0xea, 0xee, 0x59, + 0xcd, 0x8e, 0xc4, 0xc5, 0x7d, 0xeb, 0xce, 0xf7, 0xf2, 0x65, 0x56, 0xfe, 0x79, 0xf9, 0xf2, 0xe5, + 0xfb, 0x03, 0x6f, 0xec, 0x5e, 0x8d, 0x16, 0xdc, 0x60, 0x71, 0xb7, 0xb3, 0x45, 0x42, 0x9f, 0xc4, + 0x24, 0x5a, 0xdc, 0x27, 0x7e, 0x33, 0x08, 0x17, 0x05, 0xc0, 0x69, 0xbb, 0x8b, 0x8d, 0x20, 0x24, + 0x8b, 0xfb, 0x2f, 0x2f, 0xb6, 0x88, 0x4f, 0x42, 0x27, 0x26, 0xcd, 0x85, 0x76, 0x18, 0xc4, 0x01, + 0x42, 0x1c, 0x67, 0xc1, 0x69, 0xbb, 0x0b, 0x14, 0x67, 0x61, 0xff, 0xe5, 0xb9, 0x97, 0x5a, 0x6e, + 0xbc, 0xd3, 0xd9, 0x5a, 0x68, 0x04, 0x7b, 0x8b, 0xad, 0xa0, 0x15, 0x2c, 0x32, 0xd4, 0xad, 0xce, + 0x36, 0xfb, 0xc7, 0xfe, 0xb0, 0x5f, 0x9c, 0xc4, 0xdc, 0x7a, 0xd2, 0x0c, 0xb9, 0x1f, 0x13, 0x3f, + 0x72, 0x03, 0x3f, 0x7a, 0xc9, 0x69, 0xbb, 0x11, 0x09, 0xf7, 0x49, 0xb8, 0xd8, 0xde, 0x6d, 0x51, + 0x58, 0x64, 0x22, 0x2c, 0xee, 0xbf, 0xbc, 0x45, 0x62, 0xa7, 0xab, 0x47, 0x73, 0xaf, 0x26, 0xe4, + 0xf6, 0x9c, 0xc6, 0x8e, 0xeb, 0x93, 0xf0, 0x40, 0xd2, 0x58, 0x0c, 0x49, 0x14, 0x74, 0xc2, 0x06, + 0x39, 0x56, 0xad, 0x68, 0x71, 0x8f, 0xc4, 0x4e, 0xc6, 0xd7, 0xcf, 0x2d, 0xe6, 0xd5, 0x0a, 0x3b, + 0x7e, 0xec, 0xee, 0x75, 0x37, 0xf3, 0xb9, 0x7e, 0x15, 0xa2, 0xc6, 0x0e, 0xd9, 0x73, 0xba, 0xea, + 0xbd, 0x92, 0x57, 0xaf, 0x13, 0xbb, 0xde, 0xa2, 0xeb, 0xc7, 0x51, 0x1c, 0xa6, 0x2b, 0xd9, 0xdf, + 0xb4, 0xe0, 0xe2, 0xd2, 0xdd, 0xfa, 0xaa, 0xe7, 0x44, 0xb1, 0xdb, 0x58, 0xf6, 0x82, 0xc6, 0x6e, + 0x3d, 0x0e, 0x42, 0x72, 0x27, 0xf0, 0x3a, 0x7b, 0xa4, 0xce, 0x06, 0x02, 0xbd, 0x08, 0x63, 0xfb, + 0xec, 0x7f, 0xb5, 0x52, 0xb6, 0x2e, 0x5a, 0x97, 0x4b, 0xcb, 0x33, 0xbf, 0x75, 0x38, 0xff, 0xa9, + 0x07, 0x87, 0xf3, 0x63, 0x77, 0x44, 0x39, 0x56, 0x18, 0xe8, 0x12, 0x8c, 0x6c, 0x47, 0x9b, 0x07, + 0x6d, 0x52, 0x2e, 0x30, 0xdc, 0x29, 0x81, 0x3b, 0xb2, 0x56, 0xa7, 0xa5, 0x58, 0x40, 0xd1, 0x22, + 0x94, 0xda, 0x4e, 0x18, 0xbb, 0xb1, 0x1b, 0xf8, 0xe5, 0xe2, 0x45, 0xeb, 0xf2, 0xf0, 0xf2, 0xac, + 0x40, 0x2d, 0xd5, 0x24, 0x00, 0x27, 0x38, 0xb4, 0x1b, 0x21, 0x71, 0x9a, 0xb7, 0x7c, 0xef, 0xa0, + 0x3c, 0x74, 0xd1, 0xba, 0x3c, 0x96, 0x74, 0x03, 0x8b, 0x72, 0xac, 0x30, 0xec, 0x9f, 0x28, 0xc0, + 0xd8, 0xd2, 0xf6, 0xb6, 0xeb, 0xbb, 0xf1, 0x01, 0xba, 0x03, 0x13, 0x7e, 0xd0, 0x24, 0xf2, 0x3f, + 0xfb, 0x8a, 0xf1, 0x2b, 0x17, 0x17, 0xba, 0x57, 0xe6, 0xc2, 0x86, 0x86, 0xb7, 0x3c, 0xf3, 0xe0, + 0x70, 0x7e, 0x42, 0x2f, 0xc1, 0x06, 0x1d, 0x84, 0x61, 0xbc, 0x1d, 0x34, 0x15, 0xd9, 0x02, 0x23, + 0x3b, 0x9f, 0x45, 0xb6, 0x96, 0xa0, 0x2d, 0x4f, 0x3f, 0x38, 0x9c, 0x1f, 0xd7, 0x0a, 0xb0, 0x4e, + 0x04, 0x6d, 0xc1, 0x34, 0xfd, 0xeb, 0xc7, 0xae, 0xa2, 0x5b, 0x64, 0x74, 0x9f, 0xc9, 0xa3, 0xab, + 0xa1, 0x2e, 0x9f, 0x79, 0x70, 0x38, 0x3f, 0x9d, 0x2a, 0xc4, 0x69, 0x82, 0xf6, 0x87, 0x30, 0xb5, + 0x14, 0xc7, 0x4e, 0x63, 0x87, 0x34, 0xf9, 0x0c, 0xa2, 0x57, 0x61, 0xc8, 0x77, 0xf6, 0x88, 0x98, + 0xdf, 0x8b, 0x62, 0x60, 0x87, 0x36, 0x9c, 0x3d, 0x72, 0x74, 0x38, 0x3f, 0x73, 0xdb, 0x77, 0x3f, + 0xe8, 0x88, 0x55, 0x41, 0xcb, 0x30, 0xc3, 0x46, 0x57, 0x00, 0x9a, 0x64, 0xdf, 0x6d, 0x90, 0x9a, + 0x13, 0xef, 0x88, 0xf9, 0x46, 0xa2, 0x2e, 0x54, 0x14, 0x04, 0x6b, 0x58, 0xf6, 0x7d, 0x28, 0x2d, + 0xed, 0x07, 0x6e, 0xb3, 0x16, 0x34, 0x23, 0xb4, 0x0b, 0xd3, 0xed, 0x90, 0x6c, 0x93, 0x50, 0x15, + 0x95, 0xad, 0x8b, 0xc5, 0xcb, 0xe3, 0x57, 0x2e, 0x67, 0x7e, 0xac, 0x89, 0xba, 0xea, 0xc7, 0xe1, + 0xc1, 0xf2, 0xe3, 0xa2, 0xbd, 0xe9, 0x14, 0x14, 0xa7, 0x29, 0xdb, 0xff, 0xbe, 0x00, 0xe7, 0x96, + 0x3e, 0xec, 0x84, 0xa4, 0xe2, 0x46, 0xbb, 0xe9, 0x15, 0xde, 0x74, 0xa3, 0xdd, 0x8d, 0x64, 0x04, + 0xd4, 0xd2, 0xaa, 0x88, 0x72, 0xac, 0x30, 0xd0, 0x4b, 0x30, 0x4a, 0x7f, 0xdf, 0xc6, 0x55, 0xf1, + 0xc9, 0x67, 0x04, 0xf2, 0x78, 0xc5, 0x89, 0x9d, 0x0a, 0x07, 0x61, 0x89, 0x83, 0xd6, 0x61, 0xbc, + 0xc1, 0x36, 0x64, 0x6b, 0x3d, 0x68, 0x12, 0x36, 0x99, 0xa5, 0xe5, 0x17, 0x28, 0xfa, 0x4a, 0x52, + 0x7c, 0x74, 0x38, 0x5f, 0xe6, 0x7d, 0x13, 0x24, 0x34, 0x18, 0xd6, 0xeb, 0x23, 0x5b, 0xed, 0xaf, + 0x21, 0x46, 0x09, 0x32, 0xf6, 0xd6, 0x65, 0x6d, 0xab, 0x0c, 0xb3, 0xad, 0x32, 0x91, 0xbd, 0x4d, + 0xd0, 0xcb, 0x30, 0xb4, 0xeb, 0xfa, 0xcd, 0xf2, 0x08, 0xa3, 0xf5, 0x14, 0x9d, 0xf3, 0x1b, 0xae, + 0xdf, 0x3c, 0x3a, 0x9c, 0x9f, 0x35, 0xba, 0x43, 0x0b, 0x31, 0x43, 0xb5, 0xff, 0xcc, 0x82, 0x79, + 0x06, 0x5b, 0x73, 0x3d, 0x52, 0x23, 0x61, 0xe4, 0x46, 0x31, 0xf1, 0x63, 0x63, 0x40, 0xaf, 0x00, + 0x44, 0xa4, 0x11, 0x92, 0x58, 0x1b, 0x52, 0xb5, 0x30, 0xea, 0x0a, 0x82, 0x35, 0x2c, 0xca, 0x10, + 0xa2, 0x1d, 0x27, 0x64, 0xeb, 0x4b, 0x0c, 0xac, 0x62, 0x08, 0x75, 0x09, 0xc0, 0x09, 0x8e, 0xc1, + 0x10, 0x8a, 0xfd, 0x18, 0x02, 0xfa, 0x22, 0x4c, 0x27, 0x8d, 0x45, 0x6d, 0xa7, 0x21, 0x07, 0x90, + 0x6d, 0x99, 0xba, 0x09, 0xc2, 0x69, 0x5c, 0xfb, 0x1f, 0x5b, 0x62, 0xf1, 0xd0, 0xaf, 0xfe, 0x84, + 0x7f, 0xab, 0xfd, 0x2b, 0x16, 0x8c, 0x2e, 0xbb, 0x7e, 0xd3, 0xf5, 0x5b, 0xe8, 0x3d, 0x18, 0xa3, + 0x67, 0x53, 0xd3, 0x89, 0x1d, 0xc1, 0xf7, 0x3e, 0xab, 0xed, 0x2d, 0x75, 0x54, 0x2c, 0xb4, 0x77, + 0x5b, 0xb4, 0x20, 0x5a, 0xa0, 0xd8, 0x74, 0xb7, 0xdd, 0xda, 0x7a, 0x9f, 0x34, 0xe2, 0x75, 0x12, + 0x3b, 0xc9, 0xe7, 0x24, 0x65, 0x58, 0x51, 0x45, 0x37, 0x60, 0x24, 0x76, 0xc2, 0x16, 0x89, 0x05, + 0x03, 0xcc, 0x64, 0x54, 0xbc, 0x26, 0xa6, 0x3b, 0x92, 0xf8, 0x0d, 0x92, 0x1c, 0x0b, 0x9b, 0xac, + 0x2a, 0x16, 0x24, 0xec, 0xaf, 0x17, 0xe1, 0xfc, 0x4a, 0xbd, 0x9a, 0xb3, 0xae, 0x2e, 0xc1, 0x48, + 0x33, 0x74, 0xf7, 0x49, 0x28, 0xc6, 0x59, 0x51, 0xa9, 0xb0, 0x52, 0x2c, 0xa0, 0xe8, 0x2a, 0x4c, + 0xf0, 0x03, 0xe9, 0xba, 0xe3, 0x37, 0x3d, 0x39, 0xc4, 0x67, 0x05, 0xf6, 0xc4, 0x1d, 0x0d, 0x86, + 0x0d, 0xcc, 0x63, 0x2e, 0xaa, 0x4b, 0xa9, 0xcd, 0x98, 0x77, 0xd8, 0xfd, 0x90, 0x05, 0x33, 0xbc, + 0x99, 0xa5, 0x38, 0x0e, 0xdd, 0xad, 0x4e, 0x4c, 0xa2, 0xf2, 0x30, 0xe3, 0x74, 0x2b, 0x59, 0xa3, + 0x95, 0x3b, 0x02, 0x0b, 0x77, 0x52, 0x54, 0x38, 0x13, 0x2c, 0x8b, 0x76, 0x67, 0xd2, 0x60, 0xdc, + 0xd5, 0xec, 0xdc, 0x0a, 0x9c, 0xcb, 0x24, 0x82, 0x66, 0xa0, 0xb8, 0x4b, 0xf8, 0xe1, 0x58, 0xc2, + 0xf4, 0x27, 0x3a, 0x0b, 0xc3, 0xfb, 0x8e, 0xd7, 0x11, 0xe3, 0x87, 0xf9, 0x9f, 0xcf, 0x17, 0xae, + 0x5a, 0x76, 0x03, 0x26, 0x56, 0x9c, 0xb6, 0xb3, 0xe5, 0x7a, 0x6e, 0xec, 0x92, 0x08, 0x3d, 0x0b, + 0x45, 0xa7, 0xd9, 0x64, 0xcc, 0xbb, 0xb4, 0x7c, 0xee, 0xc1, 0xe1, 0x7c, 0x71, 0xa9, 0x49, 0xb9, + 0x08, 0x28, 0xac, 0x03, 0x4c, 0x31, 0xd0, 0xf3, 0x30, 0xd4, 0x0c, 0x83, 0x76, 0xb9, 0xc0, 0x30, + 0x1f, 0xa3, 0x0c, 0xa7, 0x12, 0x06, 0xed, 0x14, 0x2a, 0xc3, 0xb1, 0x7f, 0xa3, 0x00, 0x4f, 0xae, + 0x90, 0xf6, 0xce, 0x5a, 0x3d, 0x67, 0x39, 0x5c, 0x86, 0xb1, 0xbd, 0xc0, 0x77, 0xe3, 0x20, 0x8c, + 0x44, 0xd3, 0x8c, 0xcf, 0xad, 0x8b, 0x32, 0xac, 0xa0, 0xe8, 0x22, 0x0c, 0xb5, 0x93, 0x33, 0x6a, + 0x42, 0x9e, 0x6f, 0xec, 0x74, 0x62, 0x10, 0x8a, 0xd1, 0x89, 0x48, 0x28, 0xf8, 0xb3, 0xc2, 0xb8, + 0x1d, 0x91, 0x10, 0x33, 0x48, 0xb2, 0xd1, 0x29, 0x0b, 0x10, 0x13, 0x9e, 0xda, 0xe8, 0x14, 0x82, + 0x35, 0x2c, 0x54, 0x83, 0x12, 0xff, 0x87, 0xc9, 0x36, 0x63, 0xc5, 0x39, 0xdb, 0xa3, 0x2e, 0x91, + 0xc4, 0xf6, 0x98, 0x64, 0x9c, 0x40, 0x16, 0xe2, 0x84, 0x88, 0xb1, 0x40, 0x47, 0xfa, 0x72, 0x82, + 0x5f, 0x2b, 0x00, 0xe2, 0x43, 0xf8, 0x57, 0x6c, 0xe0, 0x6e, 0x77, 0x0f, 0x5c, 0xa6, 0x4c, 0x70, + 0x33, 0x68, 0x38, 0x5e, 0x9a, 0xb9, 0x9c, 0xd4, 0xe8, 0xfd, 0xb8, 0x05, 0x68, 0xc5, 0xf5, 0x9b, + 0x24, 0x3c, 0x05, 0x81, 0xf8, 0x78, 0x2c, 0xfe, 0x26, 0x4c, 0xad, 0x78, 0x2e, 0xf1, 0xe3, 0x6a, + 0x6d, 0x25, 0xf0, 0xb7, 0xdd, 0x16, 0xfa, 0x3c, 0x4c, 0xd1, 0xfb, 0x41, 0xd0, 0x89, 0xeb, 0xa4, + 0x11, 0xf8, 0x4c, 0x94, 0xa2, 0x52, 0x35, 0x7a, 0x70, 0x38, 0x3f, 0xb5, 0x69, 0x40, 0x70, 0x0a, + 0xd3, 0xfe, 0x03, 0xfa, 0xa1, 0xc1, 0x5e, 0x3b, 0xf0, 0x89, 0x1f, 0xaf, 0x04, 0x7e, 0x93, 0x8b, + 0xdc, 0x9f, 0x87, 0xa1, 0x98, 0x76, 0x9c, 0x7f, 0xe4, 0x25, 0x39, 0xb5, 0xb4, 0xbb, 0x47, 0x87, + 0xf3, 0x8f, 0x75, 0xd7, 0x60, 0x1f, 0xc4, 0xea, 0xa0, 0xef, 0x80, 0x91, 0x28, 0x76, 0xe2, 0x4e, + 0x24, 0x3e, 0xfb, 0x69, 0xf9, 0xd9, 0x75, 0x56, 0x7a, 0x74, 0x38, 0x3f, 0xad, 0xaa, 0xf1, 0x22, + 0x2c, 0x2a, 0xa0, 0xe7, 0x60, 0x74, 0x8f, 0x44, 0x91, 0xd3, 0x92, 0xd2, 0xd2, 0xb4, 0xa8, 0x3b, + 0xba, 0xce, 0x8b, 0xb1, 0x84, 0xa3, 0x67, 0x60, 0x98, 0x84, 0x61, 0x10, 0x8a, 0x55, 0x35, 0x29, + 0x10, 0x87, 0x57, 0x69, 0x21, 0xe6, 0x30, 0xfb, 0x3f, 0x5a, 0x30, 0xad, 0xfa, 0xca, 0xdb, 0x3a, + 0x85, 0x63, 0xf1, 0x1d, 0x80, 0x86, 0xfc, 0xc0, 0x88, 0xf1, 0xbb, 0xf1, 0x2b, 0x97, 0x32, 0x99, + 0x7d, 0xd7, 0x30, 0x26, 0x94, 0x55, 0x51, 0x84, 0x35, 0x6a, 0xf6, 0xbf, 0xb2, 0xe0, 0x4c, 0xea, + 0x8b, 0x6e, 0xba, 0x51, 0x8c, 0xde, 0xed, 0xfa, 0xaa, 0x85, 0xc1, 0xbe, 0x8a, 0xd6, 0x66, 0xdf, + 0xa4, 0xd6, 0x9c, 0x2c, 0xd1, 0xbe, 0xe8, 0x3a, 0x0c, 0xbb, 0x31, 0xd9, 0x93, 0x1f, 0xf3, 0x4c, + 0xcf, 0x8f, 0xe1, 0xbd, 0x4a, 0x66, 0xa4, 0x4a, 0x6b, 0x62, 0x4e, 0xc0, 0xfe, 0xd1, 0x22, 0x94, + 0xf8, 0xb2, 0x5d, 0x77, 0xda, 0xa7, 0x30, 0x17, 0x55, 0x18, 0x62, 0xd4, 0x79, 0xc7, 0x9f, 0xcd, + 0xee, 0xb8, 0xe8, 0xce, 0x02, 0x95, 0x79, 0xf9, 0xb1, 0xaa, 0x98, 0x19, 0x2d, 0xc2, 0x8c, 0x04, + 0x72, 0x00, 0xb6, 0x5c, 0xdf, 0x09, 0x0f, 0x68, 0x59, 0xb9, 0xc8, 0x08, 0xbe, 0xd4, 0x9b, 0xe0, + 0xb2, 0xc2, 0xe7, 0x64, 0x55, 0x5f, 0x13, 0x00, 0xd6, 0x88, 0xce, 0xbd, 0x0e, 0x25, 0x85, 0x7c, + 0x9c, 0x53, 0x79, 0xee, 0x8b, 0x30, 0x9d, 0x6a, 0xab, 0x5f, 0xf5, 0x09, 0xfd, 0x50, 0xff, 0x55, + 0xc6, 0x05, 0x44, 0xaf, 0x57, 0xfd, 0x7d, 0xc1, 0xee, 0x3e, 0x84, 0xb3, 0x5e, 0x06, 0x97, 0x15, + 0x53, 0x35, 0x38, 0x57, 0x7e, 0x52, 0x7c, 0xf6, 0xd9, 0x2c, 0x28, 0xce, 0x6c, 0x83, 0x1e, 0x54, + 0x41, 0x9b, 0xae, 0x79, 0xc7, 0x63, 0xfd, 0x15, 0x37, 0x99, 0x5b, 0xa2, 0x0c, 0x2b, 0x28, 0x65, + 0x61, 0x67, 0x55, 0xe7, 0x6f, 0x90, 0x83, 0x3a, 0xf1, 0x48, 0x23, 0x0e, 0xc2, 0x8f, 0xb5, 0xfb, + 0x4f, 0xf1, 0xd1, 0xe7, 0x1c, 0x70, 0x5c, 0x10, 0x28, 0xde, 0x20, 0x07, 0x7c, 0x2a, 0xf4, 0xaf, + 0x2b, 0xf6, 0xfc, 0xba, 0x9f, 0xb7, 0x60, 0x52, 0x7d, 0xdd, 0x29, 0x6c, 0xf5, 0x65, 0x73, 0xab, + 0x3f, 0xd5, 0x73, 0x81, 0xe7, 0x6c, 0xf2, 0xbf, 0x64, 0x4c, 0x4a, 0xe0, 0xd4, 0xc2, 0x80, 0x0e, + 0x0d, 0x3d, 0x55, 0x3e, 0xce, 0x09, 0x19, 0xe4, 0xbb, 0x6e, 0x90, 0x83, 0xcd, 0x80, 0x0a, 0x38, + 0xd9, 0xdf, 0x65, 0xcc, 0xda, 0x50, 0xcf, 0x59, 0xfb, 0xc5, 0x02, 0x9c, 0x53, 0x23, 0x60, 0x88, + 0x10, 0x7f, 0xd5, 0xc7, 0xe0, 0x65, 0x18, 0x6f, 0x92, 0x6d, 0xa7, 0xe3, 0xc5, 0x4a, 0xa9, 0x31, + 0xcc, 0x15, 0x5b, 0x95, 0xa4, 0x18, 0xeb, 0x38, 0xc7, 0x18, 0xb6, 0xaf, 0x8f, 0xb3, 0xd3, 0x21, + 0x76, 0xe8, 0x0a, 0xa6, 0xf2, 0xa5, 0xa6, 0x9a, 0x9a, 0xd0, 0x55, 0x53, 0x42, 0x0d, 0xf5, 0x0c, + 0x0c, 0xbb, 0x7b, 0x54, 0x5a, 0x28, 0x98, 0x42, 0x40, 0x95, 0x16, 0x62, 0x0e, 0x43, 0x9f, 0x81, + 0xd1, 0x46, 0xb0, 0xb7, 0xe7, 0xf8, 0x4d, 0xc6, 0xb4, 0x4b, 0xcb, 0xe3, 0x54, 0xa0, 0x58, 0xe1, + 0x45, 0x58, 0xc2, 0xd0, 0x93, 0x30, 0xe4, 0x84, 0xad, 0xa8, 0x3c, 0xc4, 0x70, 0xc6, 0x68, 0x4b, + 0x4b, 0x61, 0x2b, 0xc2, 0xac, 0x94, 0x4a, 0xb2, 0xf7, 0x82, 0x70, 0xd7, 0xf5, 0x5b, 0x15, 0x37, + 0x64, 0x62, 0xa9, 0x26, 0xc9, 0xde, 0x55, 0x10, 0xac, 0x61, 0xa1, 0x35, 0x18, 0x6e, 0x07, 0x61, + 0x1c, 0x95, 0x47, 0xd8, 0x70, 0x3f, 0x9d, 0xb3, 0x95, 0xf8, 0xd7, 0xd6, 0x82, 0x30, 0x4e, 0x3e, + 0x80, 0xfe, 0x8b, 0x30, 0xaf, 0x8e, 0xbe, 0x03, 0x8a, 0xc4, 0xdf, 0x2f, 0x8f, 0x32, 0x2a, 0x73, + 0x59, 0x54, 0x56, 0xfd, 0xfd, 0x3b, 0x4e, 0x98, 0xf0, 0x99, 0x55, 0x7f, 0x1f, 0xd3, 0x3a, 0xe8, + 0xcb, 0x50, 0x92, 0x6a, 0xed, 0xa8, 0x3c, 0x96, 0xbf, 0xc4, 0xb0, 0x40, 0xc2, 0xe4, 0x83, 0x8e, + 0x1b, 0x92, 0x3d, 0xe2, 0xc7, 0x51, 0xa2, 0x98, 0x90, 0xd0, 0x08, 0x27, 0xd4, 0xd0, 0x97, 0xe5, + 0x4d, 0x7b, 0x3d, 0xe8, 0xf8, 0x71, 0x54, 0x2e, 0xb1, 0xee, 0x65, 0xea, 0x40, 0xef, 0x24, 0x78, + 0xe9, 0xab, 0x38, 0xaf, 0x8c, 0x0d, 0x52, 0x08, 0xc3, 0xa4, 0xe7, 0xee, 0x13, 0x9f, 0x44, 0x51, + 0x2d, 0x0c, 0xb6, 0x48, 0x19, 0x58, 0xcf, 0xcf, 0x67, 0xab, 0x06, 0x83, 0x2d, 0xb2, 0x3c, 0xfb, + 0xe0, 0x70, 0x7e, 0xf2, 0xa6, 0x5e, 0x07, 0x9b, 0x24, 0xd0, 0x6d, 0x98, 0xa2, 0x22, 0xb4, 0x9b, + 0x10, 0x1d, 0xef, 0x47, 0x94, 0xc9, 0xcf, 0xd8, 0xa8, 0x84, 0x53, 0x44, 0xd0, 0x5b, 0x50, 0xf2, + 0xdc, 0x6d, 0xd2, 0x38, 0x68, 0x78, 0xa4, 0x3c, 0xc1, 0x28, 0x66, 0x6e, 0xab, 0x9b, 0x12, 0x89, + 0x5f, 0x51, 0xd4, 0x5f, 0x9c, 0x54, 0x47, 0x77, 0xe0, 0xb1, 0x98, 0x84, 0x7b, 0xae, 0xef, 0xd0, + 0xed, 0x20, 0x24, 0x5e, 0xa6, 0x60, 0x9d, 0x64, 0xeb, 0xed, 0x82, 0x18, 0xba, 0xc7, 0x36, 0x33, + 0xb1, 0x70, 0x4e, 0x6d, 0x74, 0x0b, 0xa6, 0xd9, 0x4e, 0xa8, 0x75, 0x3c, 0xaf, 0x16, 0x78, 0x6e, + 0xe3, 0xa0, 0x3c, 0xc5, 0x08, 0x7e, 0x46, 0x6a, 0x50, 0xab, 0x26, 0x98, 0xde, 0xc9, 0x93, 0x7f, + 0x38, 0x5d, 0x1b, 0x6d, 0x31, 0x8d, 0x5a, 0x27, 0x74, 0xe3, 0x03, 0xba, 0x7e, 0xc9, 0xfd, 0xb8, + 0x3c, 0xdd, 0xf3, 0x86, 0xab, 0xa3, 0x2a, 0xb5, 0x9b, 0x5e, 0x88, 0xd3, 0x04, 0xe9, 0xd6, 0x8e, + 0xe2, 0xa6, 0xeb, 0x97, 0x67, 0x18, 0xc7, 0x50, 0x3b, 0xa3, 0x4e, 0x0b, 0x31, 0x87, 0x31, 0x6d, + 0x1a, 0xfd, 0x71, 0x8b, 0x72, 0xd0, 0x59, 0x86, 0x98, 0x68, 0xd3, 0x24, 0x00, 0x27, 0x38, 0xf4, + 0x58, 0x8e, 0xe3, 0x83, 0x32, 0x62, 0xa8, 0x6a, 0xbb, 0x6c, 0x6e, 0x7e, 0x19, 0xd3, 0x72, 0x74, + 0x13, 0x46, 0x89, 0xbf, 0xbf, 0x16, 0x06, 0x7b, 0xe5, 0x33, 0xf9, 0x7b, 0x76, 0x95, 0xa3, 0x70, + 0x86, 0x9e, 0x5c, 0x51, 0x44, 0x31, 0x96, 0x24, 0xd0, 0x7d, 0x28, 0x67, 0xcc, 0x08, 0x9f, 0x80, + 0xb3, 0x6c, 0x02, 0xbe, 0x20, 0xea, 0x96, 0x37, 0x73, 0xf0, 0x8e, 0x7a, 0xc0, 0x70, 0x2e, 0x75, + 0xf4, 0x3d, 0x30, 0xc9, 0x37, 0x14, 0x57, 0xc5, 0x47, 0xe5, 0x73, 0xec, 0x6b, 0x2e, 0xe6, 0x6f, + 0x4e, 0x8e, 0xb8, 0x7c, 0x4e, 0x74, 0x68, 0x52, 0x2f, 0x8d, 0xb0, 0x49, 0xcd, 0xde, 0x82, 0x29, + 0xc5, 0xb7, 0xd8, 0xd2, 0x41, 0xf3, 0x30, 0x4c, 0x19, 0xb2, 0xd4, 0x29, 0x94, 0xe8, 0x4c, 0x31, + 0x15, 0x2a, 0xe6, 0xe5, 0x6c, 0xa6, 0xdc, 0x0f, 0xc9, 0xf2, 0x41, 0x4c, 0xf8, 0xbd, 0xb0, 0xa8, + 0xcd, 0x94, 0x04, 0xe0, 0x04, 0xc7, 0xfe, 0xbf, 0x5c, 0xee, 0x49, 0x98, 0xe3, 0x00, 0xc7, 0xc1, + 0x8b, 0x30, 0xb6, 0x13, 0x44, 0x31, 0xc5, 0x66, 0x6d, 0x0c, 0x27, 0x92, 0xce, 0x75, 0x51, 0x8e, + 0x15, 0x06, 0x7a, 0x03, 0x26, 0x1b, 0x7a, 0x03, 0xe2, 0x2c, 0x53, 0x43, 0x60, 0xb4, 0x8e, 0x4d, + 0x5c, 0x74, 0x15, 0xc6, 0xd8, 0x43, 0x5a, 0x23, 0xf0, 0xc4, 0x0d, 0x54, 0x1e, 0xc8, 0x63, 0x35, + 0x51, 0x7e, 0xa4, 0xfd, 0xc6, 0x0a, 0x1b, 0x5d, 0x82, 0x11, 0xda, 0x85, 0x6a, 0x4d, 0x9c, 0x22, + 0x4a, 0x2b, 0x70, 0x9d, 0x95, 0x62, 0x01, 0xb5, 0xff, 0x76, 0x41, 0x1b, 0x65, 0x7a, 0xa7, 0x22, + 0xa8, 0x06, 0xa3, 0xf7, 0x1c, 0x37, 0x76, 0xfd, 0x96, 0x10, 0x17, 0x9e, 0xeb, 0x79, 0xa4, 0xb0, + 0x4a, 0x77, 0x79, 0x05, 0x7e, 0xe8, 0x89, 0x3f, 0x58, 0x92, 0xa1, 0x14, 0xc3, 0x8e, 0xef, 0x53, + 0x8a, 0x85, 0x41, 0x29, 0x62, 0x5e, 0x81, 0x53, 0x14, 0x7f, 0xb0, 0x24, 0x83, 0xde, 0x05, 0x90, + 0xcb, 0x92, 0x34, 0xc5, 0x03, 0xd6, 0x8b, 0xfd, 0x89, 0x6e, 0xaa, 0x3a, 0xcb, 0x53, 0xf4, 0x48, + 0x4d, 0xfe, 0x63, 0x8d, 0x9e, 0x1d, 0x33, 0xb1, 0xaa, 0xbb, 0x33, 0xe8, 0xbb, 0x29, 0x27, 0x70, + 0xc2, 0x98, 0x34, 0x97, 0x62, 0x31, 0x38, 0xcf, 0x0f, 0x26, 0x15, 0x6f, 0xba, 0x7b, 0x44, 0xe7, + 0x1a, 0x82, 0x08, 0x4e, 0xe8, 0xd9, 0xbf, 0x5c, 0x84, 0x72, 0x5e, 0x77, 0xe9, 0xa2, 0x23, 0xf7, + 0xdd, 0x78, 0x85, 0x4a, 0x43, 0x96, 0xb9, 0xe8, 0x56, 0x45, 0x39, 0x56, 0x18, 0x74, 0xf6, 0x23, + 0xb7, 0x25, 0x2f, 0x35, 0xc3, 0xc9, 0xec, 0xd7, 0x59, 0x29, 0x16, 0x50, 0x8a, 0x17, 0x12, 0x27, + 0x12, 0x2f, 0xa4, 0xda, 0x2a, 0xc1, 0xac, 0x14, 0x0b, 0xa8, 0xae, 0x31, 0x19, 0xea, 0xa3, 0x31, + 0x31, 0x86, 0x68, 0xf8, 0x64, 0x87, 0x08, 0x7d, 0x05, 0x60, 0xdb, 0xf5, 0xdd, 0x68, 0x87, 0x51, + 0x1f, 0x39, 0x36, 0x75, 0x25, 0x4b, 0xad, 0x29, 0x2a, 0x58, 0xa3, 0x88, 0x5e, 0x83, 0x71, 0xb5, + 0x01, 0xab, 0x95, 0xf2, 0xa8, 0xf9, 0xfc, 0x96, 0x70, 0xa3, 0x0a, 0xd6, 0xf1, 0xec, 0xf7, 0xd3, + 0xeb, 0x45, 0xec, 0x00, 0x6d, 0x7c, 0xad, 0x41, 0xc7, 0xb7, 0xd0, 0x7b, 0x7c, 0xed, 0xdf, 0x2c, + 0xc2, 0xb4, 0xd1, 0x58, 0x27, 0x1a, 0x80, 0x67, 0x5d, 0xa3, 0xe7, 0x9c, 0x13, 0x13, 0xb1, 0xff, + 0xec, 0xfe, 0x5b, 0x45, 0x3f, 0x0b, 0xe9, 0x0e, 0xe0, 0xf5, 0xd1, 0x57, 0xa0, 0xe4, 0x39, 0x11, + 0xd3, 0xbe, 0x10, 0xb1, 0xef, 0x06, 0x21, 0x96, 0xdc, 0x23, 0x9c, 0x28, 0xd6, 0x8e, 0x1a, 0x4e, + 0x3b, 0x21, 0x49, 0x0f, 0x64, 0x2a, 0xfb, 0xc8, 0x27, 0x78, 0xd5, 0x09, 0x2a, 0x20, 0x1d, 0x60, + 0x0e, 0x43, 0x57, 0x61, 0x22, 0x24, 0x6c, 0x55, 0xac, 0x50, 0x51, 0x8e, 0x2d, 0xb3, 0xe1, 0x44, + 0xe6, 0xc3, 0x1a, 0x0c, 0x1b, 0x98, 0x89, 0x28, 0x3f, 0xd2, 0x43, 0x94, 0x7f, 0x0e, 0x46, 0xd9, + 0x0f, 0xb5, 0x02, 0xd4, 0x6c, 0x54, 0x79, 0x31, 0x96, 0xf0, 0xf4, 0x82, 0x19, 0x1b, 0x70, 0xc1, + 0x3c, 0x0f, 0x53, 0x15, 0x87, 0xec, 0x05, 0xfe, 0xaa, 0xdf, 0x6c, 0x07, 0xae, 0x1f, 0xa3, 0x32, + 0x0c, 0xb1, 0xd3, 0x81, 0xef, 0xed, 0x21, 0x4a, 0x01, 0x0f, 0x51, 0xc1, 0xdc, 0xfe, 0xbd, 0x02, + 0x4c, 0x56, 0x88, 0x47, 0x62, 0xc2, 0xaf, 0x32, 0x11, 0x5a, 0x03, 0xd4, 0x0a, 0x9d, 0x06, 0xa9, + 0x91, 0xd0, 0x0d, 0x9a, 0xba, 0x36, 0xb6, 0xc8, 0x5e, 0x3c, 0xd0, 0xb5, 0x2e, 0x28, 0xce, 0xa8, + 0x81, 0xde, 0x81, 0xc9, 0x76, 0x48, 0x0c, 0x25, 0xa2, 0x95, 0x27, 0x8d, 0xd4, 0x74, 0x44, 0x2e, + 0x08, 0x1b, 0x45, 0xd8, 0x24, 0x85, 0xbe, 0x0b, 0x66, 0x82, 0xb0, 0xbd, 0xe3, 0xf8, 0x15, 0xd2, + 0x26, 0x7e, 0x93, 0x4a, 0xfa, 0x42, 0x05, 0x71, 0xf6, 0xc1, 0xe1, 0xfc, 0xcc, 0xad, 0x14, 0x0c, + 0x77, 0x61, 0xa3, 0x77, 0x60, 0xb6, 0x1d, 0x06, 0x6d, 0xa7, 0xc5, 0x16, 0x8a, 0x10, 0x68, 0x38, + 0xf7, 0x79, 0xf1, 0xc1, 0xe1, 0xfc, 0x6c, 0x2d, 0x0d, 0x3c, 0x3a, 0x9c, 0x3f, 0xc3, 0x06, 0x8a, + 0x96, 0x24, 0x40, 0xdc, 0x4d, 0xc6, 0x6e, 0xc1, 0xb9, 0x4a, 0x70, 0xcf, 0xbf, 0xe7, 0x84, 0xcd, + 0xa5, 0x5a, 0x55, 0xd3, 0x1d, 0x6c, 0xc8, 0xbb, 0x2b, 0x37, 0x13, 0xc8, 0x3c, 0xa7, 0xb4, 0x9a, + 0x5c, 0x7e, 0x59, 0x73, 0x3d, 0x92, 0xa3, 0xa3, 0xf8, 0xbb, 0x05, 0xa3, 0xa5, 0x04, 0x5f, 0x3d, + 0x7c, 0x58, 0xb9, 0x0f, 0x1f, 0x6f, 0xc3, 0xd8, 0xb6, 0x4b, 0xbc, 0x26, 0x26, 0xdb, 0x62, 0x66, + 0x9e, 0xcd, 0x7f, 0xf9, 0x5c, 0xa3, 0x98, 0x52, 0x27, 0xc5, 0x6f, 0xbe, 0x6b, 0xa2, 0x32, 0x56, + 0x64, 0xd0, 0x2e, 0xcc, 0xc8, 0xab, 0x95, 0x84, 0x8a, 0x4d, 0xfc, 0x5c, 0xaf, 0xfb, 0x9a, 0x49, + 0x9c, 0x4d, 0x20, 0x4e, 0x91, 0xc1, 0x5d, 0x84, 0xe9, 0x55, 0x77, 0x8f, 0x1e, 0x57, 0x43, 0x6c, + 0x49, 0xb3, 0xab, 0x2e, 0xbb, 0xb5, 0xb3, 0x52, 0xfb, 0xa7, 0x2c, 0x78, 0xbc, 0x6b, 0x64, 0x84, + 0xf6, 0xe2, 0x84, 0x67, 0x21, 0xad, 0x4d, 0x28, 0xf4, 0xd7, 0x26, 0xd8, 0xff, 0xc4, 0x82, 0xb3, + 0xab, 0x7b, 0xed, 0xf8, 0xa0, 0xe2, 0x9a, 0x8f, 0x33, 0xaf, 0xc3, 0xc8, 0x1e, 0x69, 0xba, 0x9d, + 0x3d, 0x31, 0x73, 0xf3, 0x92, 0xa5, 0xaf, 0xb3, 0xd2, 0xa3, 0xc3, 0xf9, 0xc9, 0x7a, 0x1c, 0x84, + 0x4e, 0x8b, 0xf0, 0x02, 0x2c, 0xd0, 0xd9, 0xc1, 0xe8, 0x7e, 0x48, 0x6e, 0xba, 0x7b, 0xae, 0x7c, + 0xc9, 0xee, 0xa9, 0x51, 0x5b, 0x90, 0x03, 0xba, 0xf0, 0x76, 0xc7, 0xf1, 0x63, 0x37, 0x3e, 0x10, + 0xef, 0x4e, 0x92, 0x08, 0x4e, 0xe8, 0xd9, 0xdf, 0xb4, 0x60, 0x5a, 0xf2, 0x92, 0xa5, 0x66, 0x33, + 0x24, 0x51, 0x84, 0xe6, 0xa0, 0xe0, 0xb6, 0x45, 0x2f, 0x41, 0xf4, 0xb2, 0x50, 0xad, 0xe1, 0x82, + 0xdb, 0x46, 0x35, 0x28, 0xf1, 0x07, 0xf1, 0x64, 0x71, 0x0d, 0xf4, 0xac, 0xce, 0x7a, 0xb0, 0x29, + 0x6b, 0xe2, 0x84, 0x88, 0x94, 0x8a, 0xd9, 0x39, 0x54, 0x34, 0x1f, 0xad, 0xae, 0x8b, 0x72, 0xac, + 0x30, 0xd0, 0x65, 0x18, 0xf3, 0x83, 0x26, 0xb7, 0x4f, 0xe0, 0x7b, 0x9a, 0x2d, 0xd9, 0x0d, 0x51, + 0x86, 0x15, 0xd4, 0xfe, 0x11, 0x0b, 0x26, 0xe4, 0x97, 0x0d, 0x28, 0xa0, 0xd3, 0xad, 0x95, 0x08, + 0xe7, 0xc9, 0xd6, 0xa2, 0x02, 0x36, 0x83, 0x18, 0x72, 0x75, 0xf1, 0x38, 0x72, 0xb5, 0xfd, 0x93, + 0x05, 0x98, 0x92, 0xdd, 0xa9, 0x77, 0xb6, 0x22, 0x12, 0xa3, 0x4d, 0x28, 0x39, 0x7c, 0xc8, 0x89, + 0x5c, 0xb1, 0xcf, 0x64, 0x5f, 0xe8, 0x8c, 0xf9, 0x49, 0x44, 0x9d, 0x25, 0x59, 0x1b, 0x27, 0x84, + 0x90, 0x07, 0xb3, 0x7e, 0x10, 0xb3, 0x63, 0x4f, 0xc1, 0x7b, 0x3d, 0x8c, 0xa4, 0xa9, 0x9f, 0x17, + 0xd4, 0x67, 0x37, 0xd2, 0x54, 0x70, 0x37, 0x61, 0xb4, 0x2a, 0x95, 0x48, 0xc5, 0xfc, 0x2b, 0x9c, + 0x3e, 0x0b, 0xd9, 0x3a, 0x24, 0xfb, 0xd7, 0x2d, 0x28, 0x49, 0xb4, 0xd3, 0x78, 0x03, 0x5b, 0x87, + 0xd1, 0x88, 0x4d, 0x82, 0x1c, 0x1a, 0xbb, 0x57, 0xc7, 0xf9, 0x7c, 0x25, 0xa7, 0x39, 0xff, 0x1f, + 0x61, 0x49, 0x83, 0x69, 0xc1, 0x55, 0xf7, 0x3f, 0x21, 0x5a, 0x70, 0xd5, 0x9f, 0x9c, 0x13, 0xe6, + 0xbf, 0xb1, 0x3e, 0x6b, 0xaa, 0x02, 0x2a, 0x74, 0xb6, 0x43, 0xb2, 0xed, 0xde, 0x4f, 0x0b, 0x9d, + 0x35, 0x56, 0x8a, 0x05, 0x14, 0xbd, 0x0b, 0x13, 0x0d, 0xa9, 0x3c, 0x4e, 0xd8, 0xc0, 0xa5, 0x9e, + 0xaa, 0x78, 0xf5, 0x6a, 0xc3, 0x6d, 0x17, 0x57, 0xb4, 0xfa, 0xd8, 0xa0, 0x66, 0x5a, 0x26, 0x14, + 0xfb, 0x59, 0x26, 0x24, 0x74, 0x73, 0xdf, 0xd6, 0xed, 0x9f, 0xb6, 0x60, 0x84, 0xab, 0x20, 0x07, + 0xd3, 0xd9, 0x6a, 0x8f, 0x58, 0xc9, 0xd8, 0xdd, 0xa1, 0x85, 0xe2, 0x51, 0x0a, 0xad, 0x43, 0x89, + 0xfd, 0x60, 0xaa, 0x98, 0x62, 0xbe, 0xd1, 0x26, 0x6f, 0x55, 0xef, 0xe0, 0x1d, 0x59, 0x0d, 0x27, + 0x14, 0xec, 0x1f, 0x2b, 0x52, 0x56, 0x95, 0xa0, 0x1a, 0x27, 0xb8, 0xf5, 0xe8, 0x4e, 0xf0, 0xc2, + 0xa3, 0x3a, 0xc1, 0x5b, 0x30, 0xdd, 0xd0, 0x9e, 0xbc, 0x92, 0x99, 0xbc, 0xdc, 0x73, 0x91, 0x68, + 0xaf, 0x63, 0x5c, 0x0d, 0xb7, 0x62, 0x12, 0xc1, 0x69, 0xaa, 0xe8, 0xbb, 0x61, 0x82, 0xcf, 0xb3, + 0x68, 0x65, 0x88, 0xb5, 0xf2, 0x99, 0xfc, 0xf5, 0xa2, 0x37, 0xc1, 0x56, 0x62, 0x5d, 0xab, 0x8e, + 0x0d, 0x62, 0xf6, 0x2f, 0x8f, 0xc1, 0xf0, 0xea, 0x3e, 0xf1, 0xe3, 0x53, 0x60, 0x48, 0x0d, 0x98, + 0x72, 0xfd, 0xfd, 0xc0, 0xdb, 0x27, 0x4d, 0x0e, 0x3f, 0xce, 0xe1, 0xfa, 0x98, 0x20, 0x3d, 0x55, + 0x35, 0x48, 0xe0, 0x14, 0xc9, 0x47, 0x71, 0x6b, 0xbf, 0x06, 0x23, 0x7c, 0xee, 0xc5, 0x95, 0x3d, + 0x53, 0xc1, 0xce, 0x06, 0x51, 0xec, 0x82, 0x44, 0xa3, 0xc0, 0x35, 0xfa, 0xa2, 0x3a, 0x7a, 0x1f, + 0xa6, 0xb6, 0xdd, 0x30, 0x8a, 0xe9, 0x75, 0x3b, 0x8a, 0x9d, 0xbd, 0xf6, 0x43, 0xdc, 0xd2, 0xd5, + 0x38, 0xac, 0x19, 0x94, 0x70, 0x8a, 0x32, 0x6a, 0xc1, 0x24, 0xbd, 0x38, 0x26, 0x4d, 0x8d, 0x1e, + 0xbb, 0x29, 0xa5, 0x86, 0xbb, 0xa9, 0x13, 0xc2, 0x26, 0x5d, 0xca, 0x4c, 0x1a, 0xec, 0xa2, 0x39, + 0xc6, 0x24, 0x0a, 0xc5, 0x4c, 0xf8, 0x0d, 0x93, 0xc3, 0x28, 0x4f, 0x62, 0xc6, 0x2c, 0x25, 0x93, + 0x27, 0x69, 0x26, 0x2b, 0xef, 0x41, 0x89, 0xd0, 0x21, 0xa4, 0x84, 0xc5, 0x63, 0xc3, 0xe2, 0x60, + 0x7d, 0x5d, 0x77, 0x1b, 0x61, 0x60, 0xea, 0x47, 0x56, 0x25, 0x25, 0x9c, 0x10, 0x45, 0x2b, 0x30, + 0x12, 0x91, 0xd0, 0x25, 0x91, 0x78, 0x76, 0xe8, 0x31, 0x8d, 0x0c, 0x8d, 0x5b, 0xf7, 0xf2, 0xdf, + 0x58, 0x54, 0xa5, 0xcb, 0xcb, 0x61, 0xb7, 0x21, 0xf6, 0xd2, 0xa0, 0x2d, 0xaf, 0x25, 0x56, 0x8a, + 0x05, 0x14, 0xbd, 0x05, 0xa3, 0x21, 0xf1, 0x98, 0x02, 0x6e, 0x72, 0xf0, 0x45, 0xce, 0xf5, 0x79, + 0xbc, 0x1e, 0x96, 0x04, 0xd0, 0x0d, 0x40, 0x21, 0xa1, 0x32, 0x84, 0xeb, 0xb7, 0x94, 0x89, 0x87, + 0x78, 0x3f, 0x78, 0x42, 0xb4, 0x7f, 0x06, 0x27, 0x18, 0x7e, 0x1c, 0x06, 0x9e, 0x47, 0x42, 0x9c, + 0x51, 0x0d, 0x5d, 0x83, 0x59, 0x55, 0x5a, 0xf5, 0xa3, 0xd8, 0xf1, 0x1b, 0x84, 0x3d, 0x1d, 0x94, + 0x12, 0xa9, 0x08, 0xa7, 0x11, 0x70, 0x77, 0x1d, 0xfb, 0x1b, 0x54, 0x9c, 0xa1, 0xa3, 0x75, 0x0a, + 0xb2, 0xc0, 0x9b, 0xa6, 0x2c, 0x70, 0x3e, 0x77, 0xe6, 0x72, 0xe4, 0x80, 0x07, 0x16, 0x8c, 0x6b, + 0x33, 0x9b, 0xac, 0x59, 0xab, 0xc7, 0x9a, 0xed, 0xc0, 0x0c, 0x5d, 0xe9, 0xb7, 0xb6, 0x98, 0xa3, + 0x4b, 0x93, 0x2d, 0xcc, 0xc2, 0xc3, 0x2d, 0x4c, 0x65, 0x22, 0x7a, 0x33, 0x45, 0x10, 0x77, 0x35, + 0x81, 0x5e, 0x97, 0xda, 0xa8, 0xa2, 0x61, 0xba, 0xc5, 0x35, 0x4d, 0x47, 0x87, 0xf3, 0x33, 0xda, + 0x87, 0xe8, 0xda, 0x27, 0xfb, 0x3d, 0xf9, 0x8d, 0x9c, 0xd9, 0x2c, 0x42, 0xa9, 0xa1, 0x16, 0x8b, + 0x65, 0x9a, 0x39, 0xab, 0xe5, 0x80, 0x13, 0x1c, 0xba, 0x47, 0xe9, 0x15, 0x24, 0x6d, 0x6d, 0x48, + 0x2f, 0x28, 0x98, 0x41, 0xec, 0x57, 0x00, 0x56, 0xef, 0x93, 0x06, 0x5f, 0xea, 0xfa, 0xa3, 0xae, + 0x95, 0xff, 0xa8, 0x6b, 0xff, 0x27, 0x0b, 0xa6, 0xd6, 0x56, 0x8c, 0x6b, 0xe2, 0x02, 0x00, 0xbf, + 0x1b, 0xdd, 0xbd, 0xbb, 0x21, 0xdf, 0x2b, 0xb8, 0xca, 0x59, 0x95, 0x62, 0x0d, 0x03, 0x9d, 0x87, + 0xa2, 0xd7, 0xf1, 0xc5, 0x95, 0x65, 0xf4, 0xc1, 0xe1, 0x7c, 0xf1, 0x66, 0xc7, 0xc7, 0xb4, 0x4c, + 0x33, 0xf0, 0x2b, 0x0e, 0x6c, 0xe0, 0xd7, 0xd7, 0x81, 0x05, 0xcd, 0xc3, 0xf0, 0xbd, 0x7b, 0x6e, + 0x93, 0x9b, 0x09, 0x8b, 0xb7, 0x94, 0xbb, 0x77, 0xab, 0x95, 0x08, 0xf3, 0x72, 0xfb, 0x6b, 0x45, + 0x98, 0x5b, 0xf3, 0xc8, 0xfd, 0x8f, 0x68, 0x2a, 0x3d, 0xa8, 0x79, 0xe2, 0xf1, 0xe4, 0xc5, 0xe3, + 0xda, 0x62, 0xf6, 0x1f, 0x8f, 0x6d, 0x18, 0xe5, 0x06, 0x02, 0xd2, 0x70, 0xfa, 0x8d, 0xac, 0xd6, + 0xf3, 0x07, 0x64, 0x41, 0x68, 0xe7, 0xb8, 0x09, 0x96, 0x3a, 0x69, 0x45, 0x29, 0x96, 0xc4, 0xe7, + 0x3e, 0x0f, 0x13, 0x3a, 0xe6, 0xb1, 0xac, 0xa2, 0xff, 0x5a, 0x11, 0x66, 0x68, 0x0f, 0x1e, 0xe9, + 0x44, 0xdc, 0xee, 0x9e, 0x88, 0x93, 0xb6, 0x8c, 0xed, 0x3f, 0x1b, 0xef, 0xa6, 0x67, 0xe3, 0xe5, + 0xbc, 0xd9, 0x38, 0xed, 0x39, 0xf8, 0xeb, 0x16, 0x9c, 0x59, 0xf3, 0x82, 0xc6, 0x6e, 0xca, 0x68, + 0xf7, 0x35, 0x18, 0xa7, 0x7c, 0x3c, 0x32, 0xfc, 0x34, 0x0c, 0xcf, 0x1d, 0x01, 0xc2, 0x3a, 0x9e, + 0x56, 0xed, 0xf6, 0xed, 0x6a, 0x25, 0xcb, 0xe1, 0x47, 0x80, 0xb0, 0x8e, 0x67, 0xff, 0x8e, 0x05, + 0x4f, 0x5d, 0x5b, 0x59, 0x4d, 0x96, 0x62, 0x97, 0xcf, 0x11, 0xbd, 0x05, 0x36, 0xb5, 0xae, 0x24, + 0xb7, 0xc0, 0x0a, 0xeb, 0x85, 0x80, 0x7e, 0x52, 0xfc, 0xe9, 0x7e, 0xd6, 0x82, 0x33, 0xd7, 0xdc, + 0x98, 0x1e, 0xcb, 0x69, 0xef, 0x17, 0x7a, 0x2e, 0x47, 0x6e, 0x1c, 0x84, 0x07, 0x69, 0xef, 0x17, + 0xac, 0x20, 0x58, 0xc3, 0xe2, 0x2d, 0xef, 0xbb, 0x11, 0xed, 0x69, 0xc1, 0x54, 0x45, 0x61, 0x51, + 0x8e, 0x15, 0x06, 0xfd, 0xb0, 0xa6, 0x1b, 0xb2, 0xab, 0xc4, 0x81, 0xe0, 0xb0, 0xea, 0xc3, 0x2a, + 0x12, 0x80, 0x13, 0x1c, 0xfb, 0xa7, 0x2c, 0x38, 0x77, 0xcd, 0xeb, 0x44, 0x31, 0x09, 0xb7, 0x23, + 0xa3, 0xb3, 0xaf, 0x40, 0x89, 0xc8, 0xeb, 0xba, 0xe8, 0xab, 0x12, 0x30, 0xd5, 0x3d, 0x9e, 0xbb, + 0xde, 0x28, 0xbc, 0x01, 0x2c, 0xe0, 0x8f, 0x67, 0xb9, 0xfd, 0x0b, 0x05, 0x98, 0xbc, 0xbe, 0xb9, + 0x59, 0xbb, 0x46, 0x62, 0x71, 0x8a, 0xf5, 0x57, 0x35, 0x63, 0x4d, 0x63, 0xd6, 0xeb, 0x52, 0xd4, + 0x89, 0x5d, 0x6f, 0x81, 0xfb, 0x7a, 0x2e, 0x54, 0xfd, 0xf8, 0x56, 0x58, 0x8f, 0x43, 0xd7, 0x6f, + 0x65, 0xea, 0xd8, 0xe4, 0x59, 0x5b, 0xcc, 0x3b, 0x6b, 0xd1, 0x2b, 0x30, 0xc2, 0x9c, 0x4d, 0xe5, + 0xf5, 0xe4, 0x09, 0x75, 0xa7, 0x60, 0xa5, 0x47, 0x87, 0xf3, 0xa5, 0xdb, 0xb8, 0xca, 0xff, 0x60, + 0x81, 0x8a, 0x6e, 0xc3, 0xf8, 0x4e, 0x1c, 0xb7, 0xaf, 0x13, 0xa7, 0x49, 0x42, 0xc9, 0x1d, 0x2e, + 0x64, 0x71, 0x07, 0x3a, 0x08, 0x1c, 0x2d, 0xd9, 0x50, 0x49, 0x59, 0x84, 0x75, 0x3a, 0x76, 0x1d, + 0x20, 0x81, 0x9d, 0x90, 0x7e, 0xc1, 0xfe, 0x63, 0x0b, 0x46, 0xb9, 0xdf, 0x4f, 0x88, 0xbe, 0x00, + 0x43, 0xe4, 0x3e, 0x69, 0x08, 0xc9, 0x31, 0xb3, 0xc3, 0x89, 0xe0, 0xc1, 0xb5, 0xe5, 0xf4, 0x3f, + 0x66, 0xb5, 0xd0, 0x75, 0x18, 0xa5, 0xbd, 0xbd, 0xa6, 0x9c, 0xa0, 0x9e, 0xce, 0xfb, 0x62, 0x35, + 0xed, 0x5c, 0x56, 0x11, 0x45, 0x58, 0x56, 0x67, 0x9a, 0xdf, 0x46, 0xbb, 0x4e, 0x19, 0x58, 0xdc, + 0xeb, 0x9c, 0xdd, 0x5c, 0xa9, 0x71, 0x24, 0x41, 0x8d, 0x6b, 0x7e, 0x65, 0x21, 0x4e, 0x88, 0xd8, + 0x9b, 0x50, 0xa2, 0x93, 0xba, 0xe4, 0xb9, 0x4e, 0x6f, 0xa5, 0xf3, 0x0b, 0x50, 0x92, 0x0a, 0xe0, + 0x48, 0x38, 0xe8, 0x30, 0xaa, 0x52, 0x3f, 0x1c, 0xe1, 0x04, 0x6e, 0x6f, 0xc3, 0x59, 0x66, 0x4d, + 0xe1, 0xc4, 0x3b, 0xc6, 0x1e, 0xeb, 0xbf, 0x98, 0x5f, 0x14, 0x17, 0x31, 0x3e, 0x33, 0x65, 0xcd, + 0xa3, 0x60, 0x42, 0x52, 0x4c, 0x2e, 0x65, 0xf6, 0x9f, 0x0e, 0xc1, 0x13, 0xd5, 0x7a, 0xbe, 0x4b, + 0xd8, 0x55, 0x98, 0xe0, 0x62, 0x1a, 0x5d, 0xda, 0x8e, 0x27, 0xda, 0x55, 0x6f, 0x8d, 0x9b, 0x1a, + 0x0c, 0x1b, 0x98, 0xe8, 0x29, 0x28, 0xba, 0x1f, 0xf8, 0x69, 0xe3, 0xdc, 0xea, 0xdb, 0x1b, 0x98, + 0x96, 0x53, 0x30, 0x95, 0xf8, 0x38, 0x2b, 0x55, 0x60, 0x25, 0xf5, 0xbd, 0x09, 0x53, 0x6e, 0xd4, + 0x88, 0xdc, 0xaa, 0x4f, 0xf9, 0x4c, 0xe2, 0x4e, 0x98, 0x28, 0x09, 0x68, 0xa7, 0x15, 0x14, 0xa7, + 0xb0, 0x35, 0xbe, 0x3e, 0x3c, 0xb0, 0xd4, 0xd8, 0xd7, 0x63, 0x85, 0x0a, 0xc4, 0x6d, 0xf6, 0x75, + 0x11, 0x33, 0x14, 0x14, 0x02, 0x31, 0xff, 0xe0, 0x08, 0x4b, 0x18, 0xbd, 0x81, 0x35, 0x76, 0x9c, + 0xf6, 0x52, 0x27, 0xde, 0xa9, 0xb8, 0x51, 0x23, 0xd8, 0x27, 0xe1, 0x01, 0xbb, 0x3c, 0x8f, 0x25, + 0x37, 0x30, 0x05, 0x58, 0xb9, 0xbe, 0x54, 0xa3, 0x98, 0xb8, 0xbb, 0x8e, 0x29, 0x15, 0xc2, 0x49, + 0x48, 0x85, 0x4b, 0x30, 0x2d, 0x9b, 0xa9, 0x93, 0x88, 0x9d, 0x11, 0xe3, 0xac, 0x63, 0xca, 0xd1, + 0x57, 0x14, 0xab, 0x6e, 0xa5, 0xf1, 0xd1, 0xeb, 0x30, 0xe9, 0xfa, 0x6e, 0xec, 0x3a, 0x71, 0x10, + 0xb2, 0x13, 0x96, 0xdf, 0x93, 0xd9, 0xa3, 0x68, 0x55, 0x07, 0x60, 0x13, 0xcf, 0xfe, 0x93, 0x21, + 0x98, 0x65, 0xd3, 0xf6, 0xed, 0x15, 0xf6, 0x89, 0x59, 0x61, 0xb7, 0xbb, 0x57, 0xd8, 0x49, 0x88, + 0xbb, 0x1f, 0xe7, 0x32, 0x7b, 0x1f, 0x4a, 0xca, 0xbe, 0x5a, 0xba, 0x08, 0x58, 0x39, 0x2e, 0x02, + 0xfd, 0xa5, 0x0f, 0xf9, 0x8c, 0x5b, 0xcc, 0x7c, 0xc6, 0xfd, 0x7b, 0x16, 0x24, 0x66, 0xa6, 0xe8, + 0x3a, 0x94, 0xda, 0x01, 0x33, 0xe5, 0x08, 0xa5, 0x7d, 0xd4, 0x13, 0x99, 0x07, 0x15, 0x3f, 0x14, + 0xf9, 0xf8, 0xd5, 0x64, 0x0d, 0x9c, 0x54, 0x46, 0xcb, 0x30, 0xda, 0x0e, 0x49, 0x3d, 0x66, 0xae, + 0x9c, 0x7d, 0xe9, 0xf0, 0x35, 0xc2, 0xf1, 0xb1, 0xac, 0x68, 0xff, 0xa2, 0x05, 0xc0, 0x5f, 0x4a, + 0x1d, 0xbf, 0x45, 0x4e, 0x41, 0xfb, 0x5b, 0x81, 0xa1, 0xa8, 0x4d, 0x1a, 0xbd, 0x8c, 0x6c, 0x92, + 0xfe, 0xd4, 0xdb, 0xa4, 0x91, 0x0c, 0x38, 0xfd, 0x87, 0x59, 0x6d, 0xfb, 0x07, 0x00, 0xa6, 0x12, + 0xb4, 0x6a, 0x4c, 0xf6, 0xd0, 0x4b, 0x86, 0xa3, 0xdc, 0xf9, 0x94, 0xa3, 0x5c, 0x89, 0x61, 0x6b, + 0x8a, 0xc6, 0xf7, 0xa1, 0xb8, 0xe7, 0xdc, 0x17, 0x9a, 0xa4, 0x17, 0x7a, 0x77, 0x83, 0xd2, 0x5f, + 0x58, 0x77, 0xee, 0xf3, 0x3b, 0xd3, 0x0b, 0x72, 0x81, 0xac, 0x3b, 0xf7, 0x8f, 0xb8, 0x29, 0x0d, + 0x63, 0x52, 0x37, 0xdd, 0x28, 0xfe, 0xea, 0x7f, 0x49, 0xfe, 0xb3, 0x65, 0x47, 0x1b, 0x61, 0x6d, + 0xb9, 0xbe, 0x78, 0x37, 0x1c, 0xa8, 0x2d, 0xd7, 0x4f, 0xb7, 0xe5, 0xfa, 0x03, 0xb4, 0xe5, 0xfa, + 0xe8, 0x43, 0x18, 0x15, 0x6f, 0xf4, 0xcc, 0x7e, 0xde, 0xd4, 0x52, 0xe5, 0xb5, 0x27, 0x9e, 0xf8, + 0x79, 0x9b, 0x8b, 0xf2, 0x4e, 0x28, 0x4a, 0xfb, 0xb6, 0x2b, 0x1b, 0x44, 0x7f, 0xc7, 0x82, 0x29, + 0xf1, 0x1b, 0x93, 0x0f, 0x3a, 0x24, 0x8a, 0x85, 0xec, 0xf9, 0xb9, 0xc1, 0xfb, 0x20, 0x2a, 0xf2, + 0xae, 0x7c, 0x4e, 0xb2, 0x59, 0x13, 0xd8, 0xb7, 0x47, 0xa9, 0x5e, 0xa0, 0x7f, 0x66, 0xc1, 0xd9, + 0x3d, 0xe7, 0x3e, 0x6f, 0x91, 0x97, 0x61, 0x27, 0x76, 0x03, 0xe1, 0x0f, 0xf0, 0x85, 0xc1, 0xa6, + 0xbf, 0xab, 0x3a, 0xef, 0xa4, 0x34, 0x1d, 0x3e, 0x9b, 0x85, 0xd2, 0xb7, 0xab, 0x99, 0xfd, 0x9a, + 0xdb, 0x86, 0x31, 0xb9, 0xde, 0x32, 0x6e, 0xde, 0x15, 0x5d, 0xb0, 0x3e, 0xb6, 0x89, 0x84, 0xee, + 0xad, 0x46, 0xdb, 0x11, 0x6b, 0xed, 0x91, 0xb6, 0xf3, 0x3e, 0x4c, 0xe8, 0x6b, 0xec, 0x91, 0xb6, + 0xf5, 0x01, 0x9c, 0xc9, 0x58, 0x4b, 0x8f, 0xb4, 0xc9, 0x7b, 0x70, 0x3e, 0x77, 0x7d, 0x3c, 0xca, + 0x86, 0xed, 0x5f, 0xb0, 0x74, 0x3e, 0x78, 0x0a, 0x2a, 0xf8, 0x15, 0x53, 0x05, 0x7f, 0xa1, 0xf7, + 0xce, 0xc9, 0xd1, 0xc3, 0xbf, 0xab, 0x77, 0x9a, 0x72, 0x75, 0xf4, 0x16, 0x8c, 0x78, 0xb4, 0x44, + 0x1a, 0x87, 0xd8, 0xfd, 0x77, 0x64, 0x22, 0x4b, 0xb1, 0xf2, 0x08, 0x0b, 0x0a, 0xf6, 0xaf, 0x58, + 0x30, 0x74, 0x0a, 0x23, 0x81, 0xcd, 0x91, 0x78, 0x29, 0x97, 0xb4, 0x08, 0x1a, 0xb5, 0x80, 0x9d, + 0x7b, 0xab, 0x32, 0x30, 0x56, 0xce, 0xc0, 0xfc, 0x9f, 0x02, 0x8c, 0xd3, 0xa6, 0xa4, 0x15, 0xe3, + 0x1b, 0x30, 0xe9, 0x39, 0x5b, 0xc4, 0x93, 0xef, 0xb8, 0x69, 0x85, 0xc9, 0x4d, 0x1d, 0x88, 0x4d, + 0x5c, 0x5a, 0x79, 0x5b, 0x7f, 0xd2, 0x16, 0xf2, 0x8b, 0xaa, 0x6c, 0xbc, 0x77, 0x63, 0x13, 0x97, + 0xde, 0xdd, 0xef, 0x39, 0x71, 0x63, 0x47, 0x28, 0x53, 0x54, 0x77, 0xef, 0xd2, 0x42, 0xcc, 0x61, + 0x54, 0x80, 0x93, 0xab, 0xf3, 0x0e, 0xbd, 0x19, 0x06, 0xbe, 0x10, 0x8f, 0x95, 0x00, 0x87, 0x4d, + 0x30, 0x4e, 0xe3, 0x67, 0x78, 0xcc, 0x0f, 0x33, 0x1b, 0xcd, 0x01, 0x3c, 0xe6, 0x51, 0x0d, 0xce, + 0xba, 0x7e, 0xc3, 0xeb, 0x34, 0xc9, 0x6d, 0x9f, 0x4b, 0x77, 0x9e, 0xfb, 0x21, 0x69, 0x0a, 0x01, + 0x5a, 0x99, 0xd3, 0x56, 0x33, 0x70, 0x70, 0x66, 0x4d, 0xfb, 0xff, 0x83, 0x33, 0x37, 0x03, 0xa7, + 0xb9, 0xec, 0x78, 0x8e, 0xdf, 0x20, 0x61, 0xd5, 0x6f, 0xf5, 0xb5, 0x12, 0xd3, 0x6d, 0xba, 0x0a, + 0xfd, 0x6c, 0xba, 0xec, 0x1d, 0x40, 0x7a, 0x03, 0xc2, 0x36, 0x19, 0xc3, 0xa8, 0xcb, 0x9b, 0x12, + 0xcb, 0xff, 0xd9, 0x6c, 0xe9, 0xba, 0xab, 0x67, 0x9a, 0xd5, 0x2d, 0x2f, 0xc0, 0x92, 0x90, 0x7d, + 0x15, 0x32, 0xfd, 0x11, 0xfb, 0xab, 0x6d, 0xec, 0xd7, 0x60, 0x96, 0xd5, 0x3c, 0x9e, 0x4a, 0xc1, + 0xfe, 0x21, 0x0b, 0xa6, 0x37, 0x52, 0x31, 0x2e, 0x2e, 0xb1, 0xb7, 0xd6, 0x0c, 0xbd, 0x7b, 0x9d, + 0x95, 0x62, 0x01, 0x3d, 0x71, 0xfd, 0xde, 0x5f, 0x5a, 0x50, 0x52, 0x71, 0x83, 0x4e, 0x41, 0xa8, + 0x5d, 0x31, 0x84, 0xda, 0x4c, 0xbd, 0x93, 0xea, 0x4e, 0x9e, 0x4c, 0x8b, 0x6e, 0xa8, 0x68, 0x0d, + 0x3d, 0x54, 0x4e, 0x09, 0x19, 0xee, 0xdb, 0x3f, 0x65, 0x86, 0x74, 0x90, 0xf1, 0x1b, 0x98, 0x99, + 0x96, 0xc2, 0xfd, 0x84, 0x98, 0x69, 0xa9, 0xfe, 0xe4, 0x70, 0xbf, 0x9a, 0xd6, 0x65, 0x76, 0x2a, + 0x7c, 0x27, 0x73, 0x65, 0x60, 0x7b, 0x53, 0x05, 0x49, 0x99, 0x17, 0xae, 0x09, 0xa2, 0xf4, 0x88, + 0x31, 0x32, 0xf1, 0x8f, 0xc7, 0x78, 0x4a, 0xaa, 0xd8, 0xd7, 0x61, 0x3a, 0x35, 0x60, 0xe8, 0x35, + 0x18, 0x6e, 0xef, 0x38, 0x11, 0x49, 0x99, 0xa6, 0x0e, 0xd7, 0x68, 0xe1, 0xd1, 0xe1, 0xfc, 0x94, + 0xaa, 0xc0, 0x4a, 0x30, 0xc7, 0xb6, 0xff, 0xa7, 0x05, 0x43, 0x1b, 0x41, 0xf3, 0x34, 0x16, 0xd3, + 0x9b, 0xc6, 0x62, 0x7a, 0x32, 0x2f, 0x42, 0x5e, 0xee, 0x3a, 0x5a, 0x4b, 0xad, 0xa3, 0x0b, 0xb9, + 0x14, 0x7a, 0x2f, 0xa1, 0x3d, 0x18, 0x67, 0x71, 0xf7, 0x84, 0xa9, 0xec, 0x2b, 0xc6, 0xfd, 0x6a, + 0x3e, 0x75, 0xbf, 0x9a, 0xd6, 0x50, 0xb5, 0x5b, 0xd6, 0x73, 0x30, 0x2a, 0xcc, 0x35, 0xd3, 0x4e, + 0x1b, 0x02, 0x17, 0x4b, 0xb8, 0xfd, 0xd3, 0x45, 0x30, 0xe2, 0xfc, 0xa1, 0x5f, 0xb7, 0x60, 0x21, + 0xe4, 0x5e, 0xb0, 0xcd, 0x4a, 0x27, 0x74, 0xfd, 0x56, 0xbd, 0xb1, 0x43, 0x9a, 0x1d, 0xcf, 0xf5, + 0x5b, 0xd5, 0x96, 0x1f, 0xa8, 0xe2, 0xd5, 0xfb, 0xa4, 0xd1, 0x61, 0x6f, 0x2e, 0x7d, 0x82, 0x0a, + 0x2a, 0x73, 0xa8, 0x2b, 0x0f, 0x0e, 0xe7, 0x17, 0xf0, 0xb1, 0x68, 0xe3, 0x63, 0xf6, 0x05, 0xfd, + 0x8e, 0x05, 0x8b, 0x3c, 0xfc, 0xdd, 0xe0, 0xfd, 0xef, 0x71, 0x1b, 0xad, 0x49, 0x52, 0x09, 0x91, + 0x4d, 0x12, 0xee, 0x2d, 0xbf, 0x2e, 0x06, 0x74, 0xb1, 0x76, 0xbc, 0xb6, 0xf0, 0x71, 0x3b, 0x67, + 0xff, 0xdb, 0x22, 0x4c, 0xd2, 0x51, 0x4c, 0x62, 0xd3, 0xbc, 0x66, 0x2c, 0x89, 0xa7, 0x53, 0x4b, + 0x62, 0xd6, 0x40, 0x3e, 0x99, 0xb0, 0x34, 0x11, 0xcc, 0x7a, 0x4e, 0x14, 0x5f, 0x27, 0x4e, 0x18, + 0x6f, 0x11, 0x87, 0x9b, 0x09, 0x15, 0x8f, 0x6d, 0xd2, 0xa4, 0xd4, 0x5f, 0x37, 0xd3, 0xc4, 0x70, + 0x37, 0x7d, 0xb4, 0x0f, 0x88, 0xd9, 0x3a, 0x85, 0x8e, 0x1f, 0xf1, 0x6f, 0x71, 0xc5, 0x7b, 0xcc, + 0xf1, 0x5a, 0x9d, 0x13, 0xad, 0xa2, 0x9b, 0x5d, 0xd4, 0x70, 0x46, 0x0b, 0x9a, 0x0d, 0xdb, 0xf0, + 0xa0, 0x36, 0x6c, 0x23, 0x7d, 0x3c, 0xa3, 0xf6, 0x60, 0x46, 0xcc, 0xca, 0xb6, 0xdb, 0x12, 0x87, + 0xf4, 0x97, 0x53, 0x36, 0xae, 0xd6, 0xe0, 0x86, 0x4a, 0x7d, 0x0c, 0x5c, 0xed, 0xef, 0x85, 0x33, + 0xb4, 0x39, 0xd3, 0x8f, 0x27, 0x42, 0x04, 0xa6, 0x77, 0x3b, 0x5b, 0xc4, 0x23, 0xb1, 0x2c, 0x13, + 0x8d, 0x66, 0x8a, 0xfd, 0x66, 0xed, 0x44, 0xb6, 0xbc, 0x61, 0x92, 0xc0, 0x69, 0x9a, 0xf6, 0xcf, + 0x58, 0xc0, 0xac, 0xe5, 0x4f, 0xe1, 0xf8, 0xfb, 0xa2, 0x79, 0xfc, 0x95, 0xf3, 0x38, 0x50, 0xce, + 0xc9, 0xf7, 0x2a, 0x9f, 0x96, 0x5a, 0x18, 0xdc, 0x3f, 0x90, 0xb2, 0x7f, 0x7f, 0x89, 0xeb, 0x7f, + 0x5b, 0x7c, 0x43, 0xaa, 0xa0, 0x00, 0xe8, 0xfb, 0x60, 0xac, 0xe1, 0xb4, 0x9d, 0x06, 0x0f, 0xb0, + 0x9a, 0xab, 0xfd, 0x31, 0x2a, 0x2d, 0xac, 0x88, 0x1a, 0x5c, 0x9b, 0xf1, 0x59, 0xf9, 0x95, 0xb2, + 0xb8, 0xaf, 0x06, 0x43, 0x35, 0x39, 0xb7, 0x0b, 0x93, 0x06, 0xb1, 0x47, 0x7a, 0xf5, 0xfd, 0x3e, + 0x7e, 0x5c, 0xa8, 0x1b, 0xcb, 0x1e, 0xcc, 0xfa, 0xda, 0x7f, 0xca, 0x1c, 0xa5, 0x38, 0xfd, 0xe9, + 0x7e, 0x07, 0x02, 0xe3, 0xa4, 0x9a, 0x37, 0x40, 0x8a, 0x0c, 0xee, 0xa6, 0x6c, 0xff, 0x03, 0x0b, + 0x1e, 0xd7, 0x11, 0xb5, 0x78, 0x0d, 0xfd, 0xf4, 0xc9, 0x15, 0x18, 0x0b, 0xda, 0x24, 0x74, 0x92, + 0x3b, 0xd9, 0x65, 0x39, 0xe8, 0xb7, 0x44, 0xf9, 0xd1, 0xe1, 0xfc, 0x59, 0x9d, 0xba, 0x2c, 0xc7, + 0xaa, 0x26, 0xb2, 0x61, 0x84, 0x0d, 0x46, 0x24, 0x62, 0x69, 0x30, 0x33, 0x45, 0xf6, 0xb4, 0x1a, + 0x61, 0x01, 0xb1, 0x7f, 0xc0, 0xe2, 0x0b, 0x4b, 0xef, 0x3a, 0xfa, 0x00, 0x66, 0xf6, 0xe8, 0xf5, + 0x6d, 0xf5, 0x7e, 0x3b, 0xe4, 0x6a, 0x74, 0x39, 0x4e, 0x2f, 0xf4, 0x1b, 0x27, 0xed, 0x23, 0x13, + 0x63, 0xb6, 0xf5, 0x14, 0x31, 0xdc, 0x45, 0xde, 0xfe, 0xf3, 0x02, 0xdf, 0x89, 0x4c, 0xaa, 0x7b, + 0x0e, 0x46, 0xdb, 0x41, 0x73, 0xa5, 0x5a, 0xc1, 0x62, 0x84, 0x14, 0xbb, 0xaa, 0xf1, 0x62, 0x2c, + 0xe1, 0xe8, 0x0a, 0x00, 0xb9, 0x1f, 0x93, 0xd0, 0x77, 0x3c, 0x65, 0xf8, 0xa1, 0x84, 0xa7, 0x55, + 0x05, 0xc1, 0x1a, 0x16, 0xad, 0xd3, 0x0e, 0x83, 0x7d, 0xb7, 0xc9, 0xbc, 0x0d, 0x8b, 0x66, 0x9d, + 0x9a, 0x82, 0x60, 0x0d, 0x8b, 0x5e, 0x95, 0x3b, 0x7e, 0xc4, 0x0f, 0x40, 0x67, 0x4b, 0x04, 0xc8, + 0x1b, 0x4b, 0xae, 0xca, 0xb7, 0x75, 0x20, 0x36, 0x71, 0xd1, 0x12, 0x8c, 0xc4, 0x0e, 0x33, 0x67, + 0x18, 0xce, 0x37, 0x4b, 0xdc, 0xa4, 0x18, 0x7a, 0xc4, 0x4d, 0x5a, 0x01, 0x8b, 0x8a, 0xe8, 0x1d, + 0xc9, 0x82, 0x39, 0x4b, 0x16, 0xf6, 0xc0, 0xb9, 0xcb, 0x56, 0x67, 0xdf, 0x3a, 0x0f, 0x16, 0x76, + 0xc6, 0x06, 0x2d, 0xfb, 0xfb, 0x4b, 0x00, 0x89, 0xb4, 0x87, 0x3e, 0xec, 0x62, 0x11, 0x2f, 0xf6, + 0x96, 0x0f, 0x4f, 0x8e, 0x3f, 0xa0, 0x1f, 0xb4, 0x60, 0xdc, 0xf1, 0xbc, 0xa0, 0xe1, 0xc4, 0x6c, + 0x94, 0x0b, 0xbd, 0x59, 0x94, 0x68, 0x7f, 0x29, 0xa9, 0xc1, 0xbb, 0xf0, 0x8a, 0xb4, 0x54, 0xd0, + 0x20, 0x7d, 0x7b, 0xa1, 0x37, 0x8c, 0x3e, 0x2b, 0x2f, 0x01, 0x7c, 0x79, 0xcc, 0xa5, 0x2f, 0x01, + 0x25, 0xc6, 0x8d, 0x35, 0xf9, 0x1f, 0xdd, 0x36, 0x22, 0xc9, 0x0d, 0xe5, 0x87, 0xa4, 0x30, 0x84, + 0x9e, 0x7e, 0x41, 0xe4, 0x50, 0x4d, 0xf7, 0x8b, 0x1a, 0xce, 0x8f, 0xdb, 0xa2, 0x49, 0xd7, 0x7d, + 0x7c, 0xa2, 0xde, 0x87, 0xe9, 0xa6, 0x79, 0xdc, 0x8a, 0xd5, 0xf4, 0x6c, 0x1e, 0xdd, 0xd4, 0xe9, + 0x9c, 0x1c, 0xb0, 0x29, 0x00, 0x4e, 0x13, 0x46, 0x35, 0xee, 0xa1, 0x56, 0xf5, 0xb7, 0x03, 0x61, + 0x57, 0x6e, 0xe7, 0xce, 0xe5, 0x41, 0x14, 0x93, 0x3d, 0x8a, 0x99, 0x9c, 0xa3, 0x1b, 0xa2, 0x2e, + 0x56, 0x54, 0xd0, 0x5b, 0x30, 0xc2, 0xdc, 0x86, 0xa3, 0xf2, 0x58, 0xbe, 0x1e, 0xd0, 0x8c, 0x78, + 0x91, 0x6c, 0x2a, 0xf6, 0x37, 0xc2, 0x82, 0x02, 0xba, 0x2e, 0xc3, 0xe2, 0x44, 0x55, 0xff, 0x76, + 0x44, 0x58, 0x58, 0x9c, 0xd2, 0xf2, 0xa7, 0x93, 0x88, 0x37, 0xbc, 0x3c, 0x33, 0xb6, 0xb6, 0x51, + 0x93, 0xca, 0x2b, 0xe2, 0xbf, 0x0c, 0xd9, 0x5d, 0x86, 0xfc, 0xee, 0x99, 0x61, 0xbd, 0x93, 0xe1, + 0xbc, 0x63, 0x92, 0xc0, 0x69, 0x9a, 0xa7, 0x7a, 0x7c, 0xce, 0xf9, 0x30, 0x93, 0xde, 0x58, 0x8f, + 0xf4, 0xb8, 0xfe, 0xe3, 0x21, 0x98, 0x32, 0x17, 0x02, 0x5a, 0x84, 0x92, 0x20, 0xa2, 0x82, 0x78, + 0xaa, 0xb5, 0xbd, 0x2e, 0x01, 0x38, 0xc1, 0x61, 0x41, 0x4c, 0x59, 0x75, 0xcd, 0x0e, 0x30, 0x09, + 0x62, 0xaa, 0x20, 0x58, 0xc3, 0xa2, 0x42, 0xf4, 0x56, 0x10, 0xc4, 0xea, 0x28, 0x50, 0xab, 0x65, + 0x99, 0x95, 0x62, 0x01, 0xa5, 0x47, 0xc0, 0x2e, 0x09, 0x7d, 0xe2, 0x99, 0x9a, 0x4c, 0x75, 0x04, + 0xdc, 0xd0, 0x81, 0xd8, 0xc4, 0xa5, 0x47, 0x5a, 0x10, 0xb1, 0xe5, 0x27, 0x44, 0xf5, 0xc4, 0xae, + 0xb2, 0xce, 0xdd, 0xe6, 0x25, 0x1c, 0x7d, 0x19, 0x1e, 0x57, 0x5e, 0xee, 0x98, 0x6b, 0x86, 0x65, + 0x8b, 0x23, 0xc6, 0xcd, 0xfa, 0xf1, 0x95, 0x6c, 0x34, 0x9c, 0x57, 0x1f, 0xbd, 0x09, 0x53, 0x42, + 0x04, 0x96, 0x14, 0x47, 0x4d, 0x63, 0x85, 0x1b, 0x06, 0x14, 0xa7, 0xb0, 0x51, 0x05, 0x66, 0x68, + 0x09, 0x93, 0x42, 0x25, 0x05, 0xee, 0xad, 0xaf, 0xce, 0xfa, 0x1b, 0x29, 0x38, 0xee, 0xaa, 0x81, + 0x96, 0x60, 0x9a, 0xcb, 0x28, 0xf4, 0x4e, 0xc9, 0xe6, 0x41, 0xb8, 0x7b, 0xa8, 0x8d, 0x70, 0xcb, + 0x04, 0xe3, 0x34, 0x3e, 0xba, 0x0a, 0x13, 0x4e, 0xd8, 0xd8, 0x71, 0x63, 0xd2, 0x88, 0x3b, 0x21, + 0xf7, 0x03, 0xd1, 0xac, 0x3d, 0x96, 0x34, 0x18, 0x36, 0x30, 0xed, 0x0f, 0xe1, 0x4c, 0x86, 0xa7, + 0x18, 0x5d, 0x38, 0x4e, 0xdb, 0x95, 0xdf, 0x94, 0xb2, 0x90, 0x5c, 0xaa, 0x55, 0xe5, 0xd7, 0x68, + 0x58, 0x74, 0x75, 0x32, 0x95, 0xb8, 0x16, 0x57, 0x5f, 0xad, 0xce, 0x35, 0x09, 0xc0, 0x09, 0x8e, + 0xfd, 0xdb, 0x00, 0x9a, 0x42, 0x67, 0x00, 0xfb, 0xb8, 0xab, 0x30, 0x21, 0x93, 0x41, 0x68, 0x41, + 0xc8, 0xd5, 0x67, 0x5e, 0xd3, 0x60, 0xd8, 0xc0, 0xa4, 0x7d, 0xf3, 0x55, 0x08, 0xf5, 0x94, 0x3d, + 0x66, 0x12, 0x40, 0x3d, 0xc1, 0x41, 0x2f, 0xc2, 0x58, 0x44, 0xbc, 0xed, 0x9b, 0xae, 0xbf, 0x2b, + 0x16, 0xb6, 0xe2, 0xc2, 0x75, 0x51, 0x8e, 0x15, 0x06, 0x5a, 0x86, 0x62, 0xc7, 0x6d, 0x8a, 0xa5, + 0x2c, 0x0f, 0xfc, 0xe2, 0xed, 0x6a, 0xe5, 0xe8, 0x70, 0xfe, 0xe9, 0xbc, 0x1c, 0x17, 0xf4, 0x6a, + 0x1f, 0x2d, 0xd0, 0xed, 0x47, 0x2b, 0x67, 0xbd, 0x0d, 0x8c, 0x1c, 0xf3, 0x6d, 0xe0, 0x0a, 0x80, + 0xf8, 0x6a, 0xb9, 0x96, 0x8b, 0xc9, 0xac, 0x5d, 0x53, 0x10, 0xac, 0x61, 0xa1, 0x08, 0x66, 0x1b, + 0x21, 0x71, 0xe4, 0x1d, 0x9a, 0xfb, 0x3c, 0x8d, 0x3d, 0xbc, 0x82, 0x60, 0x25, 0x4d, 0x0c, 0x77, + 0xd3, 0x47, 0x01, 0xcc, 0x36, 0x45, 0x50, 0x85, 0xa4, 0xd1, 0xd2, 0xf1, 0x1d, 0xad, 0x98, 0x41, + 0x4e, 0x9a, 0x10, 0xee, 0xa6, 0x8d, 0xbe, 0x02, 0x73, 0xb2, 0xb0, 0x3b, 0x8e, 0x05, 0xdb, 0x2e, + 0xc5, 0xe5, 0x0b, 0x0f, 0x0e, 0xe7, 0xe7, 0x2a, 0xb9, 0x58, 0xb8, 0x07, 0x05, 0x84, 0x61, 0x84, + 0xbd, 0x25, 0x45, 0xe5, 0x71, 0x76, 0xce, 0x3d, 0x9f, 0xaf, 0x0c, 0xa0, 0x6b, 0x7d, 0x81, 0xbd, + 0x43, 0x09, 0x93, 0xf2, 0xe4, 0x59, 0x8e, 0x15, 0x62, 0x41, 0x09, 0x6d, 0xc3, 0xb8, 0xe3, 0xfb, + 0x41, 0xec, 0x70, 0x11, 0x6a, 0x22, 0x5f, 0xf6, 0xd3, 0x08, 0x2f, 0x25, 0x35, 0x38, 0x75, 0x65, + 0xa5, 0xaa, 0x41, 0xb0, 0x4e, 0x18, 0xdd, 0x83, 0xe9, 0xe0, 0x1e, 0x65, 0x8e, 0x52, 0x4b, 0x11, + 0x95, 0x27, 0x59, 0x5b, 0xaf, 0x0e, 0xa8, 0xa7, 0x35, 0x2a, 0x6b, 0x5c, 0xcb, 0x24, 0x8a, 0xd3, + 0xad, 0xa0, 0x05, 0x43, 0x5b, 0x3d, 0x95, 0xb8, 0xb3, 0x24, 0xda, 0x6a, 0x5d, 0x39, 0xcd, 0xe2, + 0xa2, 0x70, 0x13, 0x69, 0xb6, 0xfb, 0xa7, 0x53, 0x71, 0x51, 0x12, 0x10, 0xd6, 0xf1, 0xd0, 0x0e, + 0x4c, 0x24, 0x4f, 0x56, 0x61, 0xc4, 0xa2, 0xb2, 0x8d, 0x5f, 0xb9, 0x32, 0xd8, 0xc7, 0x55, 0xb5, + 0x9a, 0xfc, 0xe6, 0xa0, 0x97, 0x60, 0x83, 0xf2, 0xdc, 0x77, 0xc0, 0xb8, 0x36, 0xb1, 0xc7, 0x8a, + 0x82, 0xfb, 0x26, 0xcc, 0xa4, 0xa7, 0xee, 0x58, 0x1e, 0x04, 0xff, 0xab, 0x00, 0xd3, 0x19, 0x2f, + 0x57, 0x2c, 0x4f, 0x46, 0x8a, 0xa1, 0x26, 0x69, 0x31, 0x4c, 0xb6, 0x58, 0x18, 0x80, 0x2d, 0x4a, + 0x1e, 0x5d, 0xcc, 0xe5, 0xd1, 0x82, 0x15, 0x0e, 0x7d, 0x14, 0x56, 0x68, 0x9e, 0x3e, 0xc3, 0x03, + 0x9d, 0x3e, 0x27, 0xc0, 0x3e, 0x8d, 0x03, 0x6c, 0x74, 0x80, 0x03, 0xec, 0xc7, 0x0a, 0x30, 0x93, + 0xb6, 0xf0, 0x3d, 0x85, 0xf7, 0x8e, 0xb7, 0x8c, 0xf7, 0x8e, 0xec, 0xac, 0x33, 0x69, 0xbb, 0xe3, + 0xbc, 0xb7, 0x0f, 0x9c, 0x7a, 0xfb, 0x78, 0x7e, 0x20, 0x6a, 0xbd, 0xdf, 0x41, 0xfe, 0x61, 0x01, + 0xce, 0xa5, 0xab, 0xac, 0x78, 0x8e, 0xbb, 0x77, 0x0a, 0x63, 0x73, 0xcb, 0x18, 0x9b, 0x97, 0x06, + 0xf9, 0x1a, 0xd6, 0xb5, 0xdc, 0x01, 0xba, 0x9b, 0x1a, 0xa0, 0xc5, 0xc1, 0x49, 0xf6, 0x1e, 0xa5, + 0x6f, 0x16, 0xe1, 0x42, 0x66, 0xbd, 0xe4, 0xb9, 0x60, 0xcd, 0x78, 0x2e, 0xb8, 0x92, 0x7a, 0x2e, + 0xb0, 0x7b, 0xd7, 0x3e, 0x99, 0xf7, 0x03, 0xe1, 0x0e, 0xcd, 0x22, 0x86, 0x3e, 0xe4, 0xdb, 0x81, + 0xe1, 0x0e, 0xad, 0x08, 0x61, 0x93, 0xee, 0xb7, 0xd2, 0x9b, 0xc1, 0x6f, 0x5b, 0x70, 0x3e, 0x73, + 0x6e, 0x4e, 0x41, 0xaf, 0xbe, 0x61, 0xea, 0xd5, 0x9f, 0x1b, 0x78, 0xb5, 0xe6, 0x28, 0xda, 0xff, + 0xa4, 0x98, 0xf3, 0x2d, 0x4c, 0x33, 0x79, 0x0b, 0xc6, 0x9d, 0x46, 0x83, 0x44, 0xd1, 0x7a, 0xd0, + 0x54, 0x11, 0x34, 0x5f, 0x62, 0xd2, 0x46, 0x52, 0x7c, 0x74, 0x38, 0x3f, 0x97, 0x26, 0x91, 0x80, + 0xb1, 0x4e, 0xc1, 0x0c, 0xfa, 0x5b, 0x38, 0xd1, 0xa0, 0xbf, 0x57, 0x00, 0xf6, 0x95, 0xbe, 0x22, + 0xad, 0xe6, 0xd4, 0x34, 0x19, 0x1a, 0x16, 0xfa, 0x1e, 0x76, 0x0b, 0xe0, 0xc6, 0x40, 0x7c, 0x29, + 0xbe, 0x32, 0xe0, 0x5c, 0xe9, 0x86, 0x45, 0x3c, 0xee, 0x86, 0x52, 0x09, 0x2b, 0x92, 0xe8, 0xbb, + 0x60, 0x26, 0xe2, 0x61, 0x9d, 0x56, 0x3c, 0x27, 0x62, 0x4e, 0x5c, 0x62, 0x15, 0xb2, 0x60, 0x1a, + 0xf5, 0x14, 0x0c, 0x77, 0x61, 0xa3, 0x35, 0xf9, 0x51, 0x2c, 0x06, 0x15, 0x5f, 0x98, 0x97, 0x92, + 0x0f, 0x12, 0x59, 0xba, 0xce, 0xa6, 0x87, 0x9f, 0x0d, 0xbc, 0x56, 0xd3, 0xfe, 0xb1, 0x21, 0x78, + 0xa2, 0x07, 0x13, 0x43, 0x4b, 0xa6, 0x11, 0xc0, 0x0b, 0x69, 0xfd, 0xdf, 0x5c, 0x66, 0x65, 0x43, + 0x21, 0x98, 0x5a, 0x2b, 0x85, 0x8f, 0xbc, 0x56, 0x7e, 0xd8, 0xd2, 0x34, 0xb3, 0xdc, 0x54, 0xf8, + 0x8b, 0xc7, 0x64, 0xce, 0x27, 0xa8, 0xaa, 0xdd, 0xce, 0xd0, 0x77, 0x5e, 0x19, 0xb8, 0x3b, 0x03, + 0x2b, 0x40, 0x4f, 0xf7, 0xc9, 0xe8, 0xab, 0x16, 0x3c, 0x9d, 0xd9, 0x5f, 0xc3, 0x68, 0x69, 0x11, + 0x4a, 0x0d, 0x5a, 0xa8, 0x39, 0x86, 0x26, 0x1e, 0xf3, 0x12, 0x80, 0x13, 0x1c, 0xc3, 0x36, 0xa9, + 0xd0, 0xd7, 0x36, 0xe9, 0xdf, 0x58, 0xd0, 0xb5, 0x80, 0x4f, 0x81, 0x93, 0x56, 0x4d, 0x4e, 0xfa, + 0xe9, 0x41, 0xe6, 0x32, 0x87, 0x89, 0xfe, 0xc1, 0x34, 0x3c, 0x96, 0xe3, 0x09, 0xb6, 0x0f, 0xb3, + 0xad, 0x06, 0x31, 0x5d, 0x6e, 0xc5, 0xc7, 0x64, 0x7a, 0x27, 0xf7, 0xf4, 0xcf, 0xe5, 0x17, 0xe2, + 0x2e, 0x14, 0xdc, 0xdd, 0x04, 0xfa, 0xaa, 0x05, 0x67, 0x9d, 0x7b, 0x51, 0x57, 0x12, 0x4d, 0xb1, + 0x66, 0x5e, 0xcd, 0xd4, 0xd3, 0xf6, 0x49, 0xba, 0xc9, 0xdc, 0xe2, 0xce, 0x66, 0x61, 0xe1, 0xcc, + 0xb6, 0x10, 0x16, 0x41, 0x8f, 0xa9, 0xbc, 0xdd, 0xc3, 0x29, 0x3c, 0xcb, 0x65, 0x8f, 0xf3, 0x54, + 0x09, 0xc1, 0x8a, 0x0e, 0xba, 0x03, 0xa5, 0x96, 0xf4, 0xa3, 0x15, 0x3c, 0x3b, 0xf3, 0x10, 0xcc, + 0x74, 0xb6, 0xe5, 0xbe, 0x23, 0x0a, 0x84, 0x13, 0x52, 0xe8, 0x4d, 0x28, 0xfa, 0xdb, 0x51, 0xaf, + 0x74, 0x58, 0x29, 0x5b, 0x3e, 0x1e, 0x70, 0x61, 0x63, 0xad, 0x8e, 0x69, 0x45, 0x74, 0x1d, 0x8a, + 0xe1, 0x56, 0x53, 0x3c, 0x2d, 0x64, 0xca, 0xa5, 0x78, 0xb9, 0x92, 0xbd, 0x48, 0x38, 0x25, 0xbc, + 0x5c, 0xc1, 0x94, 0x04, 0xaa, 0xc1, 0x30, 0x73, 0x9a, 0x12, 0x2f, 0x08, 0x99, 0x02, 0x69, 0x0f, + 0xe7, 0x43, 0x1e, 0x95, 0x81, 0x21, 0x60, 0x4e, 0x08, 0xbd, 0x05, 0x23, 0x0d, 0x96, 0x31, 0x4a, + 0x28, 0x7e, 0xb2, 0xc3, 0x75, 0x75, 0xe5, 0x94, 0xe2, 0x2f, 0xa8, 0xbc, 0x1c, 0x0b, 0x0a, 0x68, + 0x13, 0x46, 0x1a, 0xa4, 0xbd, 0xb3, 0x1d, 0x09, 0x7d, 0xce, 0x67, 0x33, 0x69, 0xf5, 0x48, 0x90, + 0x26, 0xa8, 0x32, 0x0c, 0x2c, 0x68, 0xa1, 0xcf, 0x43, 0x61, 0xbb, 0x21, 0x3c, 0xa9, 0x32, 0xdf, + 0x10, 0xcc, 0x48, 0x19, 0xcb, 0x23, 0x0f, 0x0e, 0xe7, 0x0b, 0x6b, 0x2b, 0xb8, 0xb0, 0xdd, 0x40, + 0x1b, 0x30, 0xba, 0xcd, 0x7d, 0xeb, 0x45, 0x00, 0x9b, 0x67, 0xb3, 0xdd, 0xfe, 0xbb, 0xdc, 0xef, + 0xb9, 0x07, 0x90, 0x00, 0x60, 0x49, 0x84, 0xc5, 0x0b, 0x56, 0x31, 0x02, 0x44, 0xe0, 0xfc, 0x85, + 0xe3, 0xc5, 0x75, 0x10, 0x6a, 0x0e, 0x45, 0x05, 0x6b, 0x14, 0xd1, 0x7b, 0x50, 0x72, 0x64, 0xd2, + 0x46, 0x11, 0x04, 0xe7, 0x95, 0xcc, 0xed, 0xd8, 0x3b, 0x9f, 0x25, 0x5f, 0xcb, 0x0a, 0x09, 0x27, + 0x44, 0xd1, 0x2e, 0x4c, 0xee, 0x47, 0xed, 0x1d, 0x22, 0xb7, 0x2f, 0x8b, 0x89, 0x93, 0x73, 0x5c, + 0xdd, 0x11, 0x88, 0x6e, 0x18, 0x77, 0x1c, 0xaf, 0x8b, 0xe3, 0x30, 0xc7, 0xb1, 0x3b, 0x3a, 0x31, + 0x6c, 0xd2, 0xa6, 0xc3, 0xff, 0x41, 0x27, 0xd8, 0x3a, 0x88, 0x89, 0x88, 0xb4, 0x9f, 0x39, 0xfc, + 0x6f, 0x73, 0x94, 0xee, 0xe1, 0x17, 0x00, 0x2c, 0x89, 0xd0, 0x0d, 0xee, 0xc8, 0x84, 0xa8, 0x42, + 0x97, 0xf3, 0x5c, 0xee, 0xf0, 0x74, 0xf5, 0x37, 0x19, 0x14, 0xc6, 0x19, 0x13, 0x52, 0x8c, 0x23, + 0xb6, 0x77, 0x82, 0x38, 0xf0, 0x53, 0xdc, 0x78, 0x36, 0x9f, 0x23, 0xd6, 0x32, 0xf0, 0xbb, 0x39, + 0x62, 0x16, 0x16, 0xce, 0x6c, 0x0b, 0x35, 0x61, 0xaa, 0x1d, 0x84, 0xf1, 0xbd, 0x20, 0x94, 0xeb, + 0x0b, 0xf5, 0xb8, 0xe4, 0x1b, 0x98, 0xa2, 0x45, 0x66, 0x07, 0x6e, 0x42, 0x70, 0x8a, 0x26, 0xfa, + 0x12, 0x8c, 0x46, 0x0d, 0xc7, 0x23, 0xd5, 0x5b, 0xe5, 0x33, 0xf9, 0x47, 0x4d, 0x9d, 0xa3, 0xe4, + 0xac, 0x2e, 0x36, 0x39, 0x02, 0x05, 0x4b, 0x72, 0x68, 0x0d, 0x86, 0x59, 0xfa, 0x16, 0x96, 0x24, + 0x20, 0x27, 0xd8, 0x5a, 0x97, 0xad, 0x34, 0xe7, 0x48, 0xac, 0x18, 0xf3, 0xea, 0x74, 0x0f, 0x08, + 0x59, 0x37, 0x88, 0xca, 0xe7, 0xf2, 0xf7, 0x80, 0x10, 0x91, 0x6f, 0xd5, 0x7b, 0xed, 0x01, 0x85, + 0x84, 0x13, 0xa2, 0x94, 0x1f, 0x53, 0x1e, 0xfa, 0x58, 0x3e, 0x3f, 0xce, 0xe7, 0xa0, 0x8c, 0x1f, + 0x53, 0xfe, 0x49, 0x49, 0xd8, 0x7f, 0x38, 0xda, 0x2d, 0x9f, 0xb0, 0xdb, 0xd1, 0xf7, 0x5b, 0x5d, + 0xa6, 0x03, 0x9f, 0x1b, 0x54, 0x59, 0x73, 0x82, 0x92, 0xe9, 0x57, 0x2d, 0x78, 0xac, 0x9d, 0xf9, + 0x21, 0xe2, 0xb0, 0x1f, 0x4c, 0xe7, 0xc3, 0x3f, 0x5d, 0x25, 0xf2, 0xc8, 0x86, 0xe3, 0x9c, 0x96, + 0xd2, 0xd2, 0x7f, 0xf1, 0x23, 0x4b, 0xff, 0xeb, 0x30, 0xc6, 0x04, 0xca, 0x24, 0xb2, 0xdf, 0x40, + 0x06, 0x78, 0x4c, 0x6c, 0x58, 0x11, 0x15, 0xb1, 0x22, 0x81, 0x7e, 0xc4, 0x82, 0xa7, 0xd2, 0x5d, + 0xc7, 0x84, 0x81, 0x45, 0x94, 0x68, 0x7e, 0x31, 0x5b, 0x13, 0xdf, 0xff, 0x54, 0xad, 0x17, 0xf2, + 0x51, 0x3f, 0x04, 0xdc, 0xbb, 0x31, 0x54, 0xc9, 0xb8, 0x19, 0x8e, 0x98, 0x2f, 0x8b, 0x03, 0xdc, + 0x0e, 0x5f, 0x85, 0x89, 0xbd, 0xa0, 0xe3, 0x4b, 0xef, 0x18, 0xe1, 0xfb, 0xcc, 0xb4, 0xd8, 0xeb, + 0x5a, 0x39, 0x36, 0xb0, 0x52, 0x77, 0xca, 0xb1, 0x87, 0xbd, 0x53, 0xa2, 0x77, 0x53, 0x09, 0xcc, + 0x4b, 0xf9, 0xb2, 0x85, 0xb8, 0x7e, 0x1f, 0x23, 0x8d, 0xf9, 0xe9, 0xde, 0x83, 0xbe, 0x61, 0x65, + 0x08, 0xf0, 0xfc, 0x66, 0xfc, 0x05, 0xf3, 0x66, 0x7c, 0x29, 0x7d, 0x33, 0xee, 0xd2, 0x84, 0x1a, + 0x97, 0xe2, 0xc1, 0x63, 0xf4, 0x0f, 0x1a, 0xa0, 0xd1, 0xf6, 0xe0, 0x62, 0xbf, 0x63, 0x89, 0x99, + 0x4a, 0x36, 0x95, 0x0d, 0x41, 0x62, 0x2a, 0xd9, 0xac, 0x56, 0x30, 0x83, 0x0c, 0x1a, 0xc1, 0xc7, + 0xfe, 0xef, 0x16, 0x14, 0x6b, 0x41, 0xf3, 0x14, 0x34, 0xbb, 0x5f, 0x34, 0x34, 0xbb, 0x4f, 0xe4, + 0x24, 0x96, 0xcf, 0xd5, 0xe3, 0xae, 0xa6, 0xf4, 0xb8, 0x4f, 0xe5, 0x11, 0xe8, 0xad, 0xb5, 0xfd, + 0x7a, 0x11, 0xf4, 0x34, 0xf8, 0xe8, 0xdf, 0x3d, 0x8c, 0xcd, 0x7d, 0xb1, 0x57, 0x66, 0x7c, 0x41, + 0x99, 0x59, 0x58, 0x4a, 0x77, 0xde, 0xbf, 0x62, 0xa6, 0xf7, 0x77, 0x89, 0xdb, 0xda, 0x89, 0x49, + 0x33, 0xfd, 0x39, 0xa7, 0x67, 0x7a, 0xff, 0x5f, 0x2d, 0x98, 0x4e, 0xb5, 0x8e, 0xbc, 0x2c, 0xdf, + 0xc0, 0x87, 0xd4, 0xe8, 0xcd, 0xf6, 0x75, 0x26, 0x5c, 0x00, 0x50, 0xcf, 0x66, 0x52, 0xdb, 0xc5, + 0xa4, 0x7e, 0xf5, 0xae, 0x16, 0x61, 0x0d, 0x03, 0xbd, 0x06, 0xe3, 0x71, 0xd0, 0x0e, 0xbc, 0xa0, + 0x75, 0x70, 0x83, 0xc8, 0x98, 0x51, 0xea, 0x71, 0x73, 0x33, 0x01, 0x61, 0x1d, 0xcf, 0xfe, 0xd9, + 0x22, 0xff, 0x50, 0x3f, 0x76, 0xbf, 0xbd, 0x26, 0x3f, 0xd9, 0x6b, 0xf2, 0x9b, 0x16, 0xcc, 0xd0, + 0xd6, 0x99, 0xf5, 0x9a, 0x3c, 0x6c, 0x55, 0xae, 0x30, 0xab, 0x47, 0xae, 0xb0, 0x4b, 0x94, 0x77, + 0x35, 0x83, 0x4e, 0x2c, 0xb4, 0x65, 0x1a, 0x73, 0xa2, 0xa5, 0x58, 0x40, 0x05, 0x1e, 0x09, 0x43, + 0xe1, 0xf1, 0xa7, 0xe3, 0x91, 0x30, 0xc4, 0x02, 0x2a, 0x53, 0x89, 0x0d, 0xe5, 0xa4, 0x12, 0x63, + 0x11, 0x30, 0x85, 0xc5, 0x94, 0x10, 0x7b, 0xb4, 0x08, 0x98, 0xd2, 0x94, 0x2a, 0xc1, 0xb1, 0x7f, + 0xa1, 0x08, 0x13, 0xb5, 0xa0, 0x99, 0x3c, 0x5c, 0xbd, 0x6a, 0x3c, 0x5c, 0x5d, 0x4c, 0x3d, 0x5c, + 0xcd, 0xe8, 0xb8, 0xdf, 0x7e, 0xa6, 0xfa, 0xb8, 0x9e, 0xa9, 0xfe, 0xb5, 0xc5, 0x66, 0xad, 0xb2, + 0x51, 0x17, 0xc9, 0xb8, 0x5f, 0x86, 0x71, 0xc6, 0x90, 0x98, 0x8b, 0xa9, 0x7c, 0xcd, 0x61, 0x19, + 0x2d, 0x36, 0x92, 0x62, 0xac, 0xe3, 0xa0, 0xcb, 0x30, 0x16, 0x11, 0x27, 0x6c, 0xec, 0x28, 0x1e, + 0x27, 0xde, 0x3a, 0x78, 0x19, 0x56, 0x50, 0xf4, 0x76, 0x12, 0x7c, 0xb1, 0x98, 0x9f, 0x56, 0x5a, + 0xef, 0x0f, 0xdf, 0x22, 0xf9, 0x11, 0x17, 0xed, 0xbb, 0x80, 0xba, 0xf1, 0x07, 0x30, 0x23, 0x9b, + 0x37, 0xc3, 0xac, 0x95, 0xba, 0x42, 0xac, 0xfd, 0x85, 0x05, 0x53, 0xb5, 0xa0, 0x49, 0xb7, 0xee, + 0xb7, 0xd2, 0x3e, 0xd5, 0x23, 0xcf, 0x8e, 0xf4, 0x88, 0x3c, 0xfb, 0x8f, 0x2c, 0x18, 0xad, 0x05, + 0xcd, 0x53, 0xd0, 0xb1, 0x7f, 0xc1, 0xd4, 0xb1, 0x3f, 0x9e, 0xb3, 0x24, 0x72, 0xd4, 0xea, 0xbf, + 0x54, 0x84, 0x49, 0xda, 0xcf, 0xa0, 0x25, 0x67, 0xc9, 0x18, 0x11, 0x6b, 0x80, 0x11, 0xa1, 0x62, + 0x6e, 0xe0, 0x79, 0xc1, 0xbd, 0xf4, 0x8c, 0xad, 0xb1, 0x52, 0x2c, 0xa0, 0xe8, 0x45, 0x18, 0x6b, + 0x87, 0x64, 0xdf, 0x0d, 0x3a, 0x51, 0xda, 0x9b, 0xba, 0x26, 0xca, 0xb1, 0xc2, 0xa0, 0xf7, 0xae, + 0xc8, 0xf5, 0x1b, 0x44, 0xda, 0x97, 0x0d, 0x31, 0xfb, 0x32, 0x1e, 0x52, 0x5e, 0x2b, 0xc7, 0x06, + 0x16, 0xba, 0x0b, 0x25, 0xf6, 0x9f, 0x71, 0x94, 0xe3, 0x27, 0x39, 0x13, 0x79, 0x5c, 0x04, 0x01, + 0x9c, 0xd0, 0x42, 0x57, 0x00, 0x62, 0x69, 0x09, 0x17, 0x09, 0x67, 0x7f, 0x25, 0x6b, 0x2b, 0x1b, + 0xb9, 0x08, 0x6b, 0x58, 0xe8, 0x05, 0x28, 0xc5, 0x8e, 0xeb, 0xdd, 0x74, 0x7d, 0x12, 0x09, 0x4b, + 0x42, 0x91, 0xa6, 0x45, 0x14, 0xe2, 0x04, 0x4e, 0x65, 0x1d, 0x16, 0x4a, 0x82, 0xa7, 0x48, 0x1c, + 0x63, 0xd8, 0x4c, 0xd6, 0xb9, 0xa9, 0x4a, 0xb1, 0x86, 0x61, 0x5f, 0x85, 0x73, 0xb5, 0xa0, 0x59, + 0x0b, 0xc2, 0x78, 0x2d, 0x08, 0xef, 0x39, 0x61, 0x53, 0xce, 0xdf, 0xbc, 0xcc, 0x18, 0x42, 0x79, + 0xcf, 0x30, 0xdf, 0x99, 0x46, 0x2e, 0x90, 0x57, 0x98, 0xb4, 0x73, 0x4c, 0xb7, 0xaf, 0xff, 0x50, + 0x60, 0x8c, 0x22, 0x95, 0xb7, 0x13, 0x7d, 0x05, 0xa6, 0x22, 0x72, 0xd3, 0xf5, 0x3b, 0xf7, 0xe5, + 0xfd, 0xb8, 0x87, 0x4f, 0x5d, 0x7d, 0x55, 0xc7, 0xe4, 0x5a, 0x36, 0xb3, 0x0c, 0xa7, 0xa8, 0xd1, + 0x21, 0x0c, 0x3b, 0xfe, 0x52, 0x74, 0x3b, 0x22, 0xa1, 0xc8, 0x1b, 0xc9, 0x86, 0x10, 0xcb, 0x42, + 0x9c, 0xc0, 0xe9, 0x92, 0x61, 0x7f, 0x36, 0x02, 0x1f, 0x07, 0x41, 0x2c, 0x17, 0x19, 0xcb, 0x3c, + 0xa6, 0x95, 0x63, 0x03, 0x0b, 0xad, 0x01, 0x8a, 0x3a, 0xed, 0xb6, 0xc7, 0x1e, 0xc0, 0x1d, 0xef, + 0x5a, 0x18, 0x74, 0xda, 0xfc, 0xf1, 0x51, 0x24, 0xed, 0xaa, 0x77, 0x41, 0x71, 0x46, 0x0d, 0xca, + 0x18, 0xb6, 0x23, 0xf6, 0x5b, 0x44, 0x93, 0xe0, 0x9a, 0xef, 0x3a, 0x2b, 0xc2, 0x12, 0x66, 0x7f, + 0x1f, 0x3b, 0x30, 0x58, 0xba, 0xbf, 0xb8, 0x13, 0x12, 0xb4, 0x07, 0x93, 0x6d, 0x76, 0x94, 0x8b, + 0xc0, 0xe9, 0x62, 0x00, 0x1f, 0xce, 0x6e, 0x90, 0xa7, 0xff, 0xd2, 0xc9, 0x61, 0x93, 0xba, 0xfd, + 0xf5, 0x19, 0xc6, 0x97, 0xea, 0xfc, 0x3a, 0x37, 0x2a, 0xbc, 0x01, 0x84, 0xec, 0x3a, 0x97, 0xaf, + 0x57, 0x48, 0x8e, 0x10, 0xe1, 0x51, 0x80, 0x65, 0x5d, 0xf4, 0x36, 0x7b, 0xb5, 0xe5, 0xcc, 0xa0, + 0x5f, 0xde, 0x70, 0x8e, 0x65, 0x3c, 0xd0, 0x8a, 0x8a, 0x58, 0x23, 0x82, 0x6e, 0xc2, 0xa4, 0xc8, + 0x0e, 0x27, 0x14, 0x47, 0x45, 0x43, 0x31, 0x30, 0x89, 0x75, 0xe0, 0x51, 0xba, 0x00, 0x9b, 0x95, + 0x51, 0x0b, 0x9e, 0xd2, 0x52, 0xa5, 0x66, 0xd8, 0xae, 0x72, 0xde, 0xf2, 0xf4, 0x83, 0xc3, 0xf9, + 0xa7, 0x36, 0x7b, 0x21, 0xe2, 0xde, 0x74, 0xd0, 0x2d, 0x38, 0xe7, 0x34, 0x62, 0x77, 0x9f, 0x54, + 0x88, 0xd3, 0xf4, 0x5c, 0x9f, 0x98, 0xe1, 0x45, 0xce, 0x3f, 0x38, 0x9c, 0x3f, 0xb7, 0x94, 0x85, + 0x80, 0xb3, 0xeb, 0xa1, 0x2f, 0x40, 0xa9, 0xe9, 0x47, 0x62, 0x0c, 0x46, 0x8c, 0x2c, 0xc0, 0xa5, + 0xca, 0x46, 0x5d, 0x7d, 0x7f, 0xf2, 0x07, 0x27, 0x15, 0x50, 0x8b, 0x2b, 0x8f, 0xd4, 0x5d, 0x6d, + 0xb4, 0x2b, 0x66, 0x4c, 0xfa, 0xd6, 0x6f, 0xf8, 0xdd, 0x71, 0xad, 0xa9, 0xb2, 0x0c, 0x37, 0x5c, + 0xf2, 0x0c, 0xc2, 0xe8, 0x2d, 0x40, 0x54, 0x98, 0x71, 0x1b, 0x64, 0xa9, 0xc1, 0xe2, 0xd7, 0x33, + 0x5d, 0xdb, 0x98, 0xe1, 0xe6, 0x84, 0xea, 0x5d, 0x18, 0x38, 0xa3, 0x16, 0xba, 0x4e, 0x39, 0x8a, + 0x5e, 0x2a, 0x0c, 0xf9, 0xa5, 0x00, 0x5c, 0xae, 0x90, 0x76, 0x48, 0x1a, 0x4e, 0x4c, 0x9a, 0x26, + 0x45, 0x9c, 0xaa, 0x47, 0xcf, 0x1b, 0x95, 0xca, 0x0a, 0x4c, 0xf3, 0xf3, 0xee, 0x74, 0x56, 0xf4, + 0xee, 0xb8, 0x13, 0x44, 0xf1, 0x06, 0x89, 0xef, 0x05, 0xe1, 0xae, 0x88, 0x09, 0x98, 0x84, 0xa7, + 0x4d, 0x40, 0x58, 0xc7, 0xa3, 0xb2, 0x22, 0x7b, 0x36, 0xad, 0x56, 0xd8, 0x2b, 0xd6, 0x58, 0xb2, + 0x4f, 0xae, 0xf3, 0x62, 0x2c, 0xe1, 0x12, 0xb5, 0x5a, 0x5b, 0x61, 0x2f, 0x52, 0x29, 0xd4, 0x6a, + 0x6d, 0x05, 0x4b, 0x38, 0x22, 0xdd, 0x19, 0x96, 0xa7, 0xf2, 0x35, 0x7f, 0xdd, 0x7c, 0x79, 0xc0, + 0x24, 0xcb, 0x3e, 0xcc, 0xa8, 0xdc, 0xce, 0x3c, 0x58, 0x62, 0x54, 0x9e, 0x66, 0x8b, 0x64, 0xf0, + 0x48, 0x8b, 0x4a, 0x97, 0x5a, 0x4d, 0x51, 0xc2, 0x5d, 0xb4, 0x8d, 0xb0, 0x35, 0x33, 0x7d, 0x53, + 0x91, 0x2d, 0x42, 0x29, 0xea, 0x6c, 0x35, 0x83, 0x3d, 0xc7, 0xf5, 0xd9, 0x03, 0x92, 0x26, 0x88, + 0xd4, 0x25, 0x00, 0x27, 0x38, 0x68, 0x0d, 0xc6, 0x1c, 0xa9, 0x28, 0x45, 0xf9, 0x71, 0x2c, 0x94, + 0x7a, 0x94, 0x89, 0xd9, 0x4a, 0x35, 0xaa, 0xea, 0xa2, 0x37, 0x60, 0x52, 0xb8, 0x5a, 0x0a, 0x2b, + 0xe9, 0x33, 0xa6, 0x57, 0x4e, 0x5d, 0x07, 0x62, 0x13, 0x17, 0x7d, 0x0f, 0x4c, 0x51, 0x2a, 0x09, + 0x63, 0x2b, 0x9f, 0x1d, 0x84, 0x23, 0x6a, 0x29, 0x66, 0xf4, 0xca, 0x38, 0x45, 0x0c, 0x35, 0xe1, + 0x49, 0xa7, 0x13, 0x07, 0x4c, 0xd9, 0x6c, 0xae, 0xff, 0xcd, 0x60, 0x97, 0xf8, 0xec, 0x9d, 0x67, + 0x6c, 0xf9, 0xe2, 0x83, 0xc3, 0xf9, 0x27, 0x97, 0x7a, 0xe0, 0xe1, 0x9e, 0x54, 0xd0, 0x6d, 0x18, + 0x8f, 0x03, 0x4f, 0xb8, 0x37, 0x44, 0xe5, 0xc7, 0xf2, 0xc3, 0x6e, 0x6d, 0x2a, 0x34, 0x5d, 0xd1, + 0xa2, 0xaa, 0x62, 0x9d, 0x0e, 0xda, 0xe4, 0x7b, 0x8c, 0x05, 0x24, 0x26, 0x51, 0xf9, 0xf1, 0xfc, + 0x81, 0x51, 0x71, 0x8b, 0xcd, 0x2d, 0x28, 0x6a, 0x62, 0x9d, 0x0c, 0xba, 0x06, 0xb3, 0xed, 0xd0, + 0x0d, 0xd8, 0xc2, 0x56, 0x8a, 0xfe, 0xb2, 0x99, 0x55, 0xa4, 0x96, 0x46, 0xc0, 0xdd, 0x75, 0xe8, + 0x45, 0x4c, 0x16, 0x96, 0xcf, 0xf3, 0x14, 0x75, 0x5c, 0x38, 0xe5, 0x65, 0x58, 0x41, 0xd1, 0x3a, + 0xe3, 0xcb, 0xfc, 0xca, 0x54, 0x9e, 0xcb, 0x8f, 0xff, 0xa1, 0x5f, 0xad, 0xb8, 0xe0, 0xa2, 0xfe, + 0xe2, 0x84, 0x02, 0x3d, 0x37, 0xa2, 0x1d, 0x27, 0x24, 0xb5, 0x30, 0x68, 0x10, 0xde, 0x19, 0x6e, + 0x4e, 0xfe, 0x04, 0x8f, 0x9b, 0x4a, 0xcf, 0x8d, 0x7a, 0x16, 0x02, 0xce, 0xae, 0x37, 0xf7, 0x9d, + 0x30, 0xdb, 0xc5, 0xc9, 0x8f, 0x65, 0x0a, 0xff, 0xe7, 0xc3, 0x50, 0x52, 0x8a, 0x5c, 0xb4, 0x68, + 0xea, 0xe7, 0xcf, 0xa7, 0xf5, 0xf3, 0x63, 0x54, 0x9e, 0xd4, 0x55, 0xf2, 0x9b, 0x86, 0x21, 0x57, + 0x21, 0x3f, 0x75, 0x9d, 0xae, 0xc5, 0xe8, 0xeb, 0xb7, 0xaa, 0xdd, 0xcb, 0x8b, 0x03, 0x2b, 0xfa, + 0x87, 0x7a, 0x5e, 0xf5, 0x07, 0xcc, 0xc6, 0x4d, 0xaf, 0xae, 0xed, 0xa0, 0x59, 0xad, 0xa5, 0xd3, + 0xd3, 0xd6, 0x68, 0x21, 0xe6, 0x30, 0x76, 0xf9, 0xa0, 0x62, 0x07, 0xbb, 0x7c, 0x8c, 0x3e, 0xe4, + 0xe5, 0x43, 0x12, 0xc0, 0x09, 0x2d, 0xe4, 0xc1, 0x6c, 0xc3, 0xcc, 0x2c, 0xac, 0x7c, 0x55, 0x9f, + 0xe9, 0x9b, 0xe3, 0xb7, 0xa3, 0xa5, 0x1c, 0x5c, 0x49, 0x53, 0xc1, 0xdd, 0x84, 0xd1, 0x1b, 0x30, + 0xf6, 0x41, 0x10, 0xb1, 0x6d, 0x21, 0xce, 0x5e, 0xe9, 0x1d, 0x38, 0xf6, 0xf6, 0xad, 0x3a, 0x2b, + 0x3f, 0x3a, 0x9c, 0x1f, 0xaf, 0x05, 0x4d, 0xf9, 0x17, 0xab, 0x0a, 0xe8, 0x3e, 0x9c, 0x33, 0x38, + 0x96, 0xea, 0x2e, 0x0c, 0xde, 0xdd, 0xa7, 0x44, 0x73, 0xe7, 0xaa, 0x59, 0x94, 0x70, 0x76, 0x03, + 0x94, 0x0d, 0xf8, 0x81, 0xc8, 0xca, 0x2d, 0xcf, 0x77, 0x76, 0x8c, 0x97, 0xf4, 0x20, 0x0b, 0x29, + 0x04, 0xdc, 0x5d, 0xc7, 0xfe, 0x55, 0xae, 0xf7, 0x16, 0xda, 0x31, 0x12, 0x75, 0xbc, 0xd3, 0x48, + 0x50, 0xb6, 0x6a, 0x28, 0xee, 0x1e, 0xfa, 0x6d, 0xe5, 0x37, 0x2d, 0xf6, 0xb6, 0xb2, 0x49, 0xf6, + 0xda, 0x9e, 0x13, 0x9f, 0x86, 0x27, 0xc5, 0xdb, 0x30, 0x16, 0x8b, 0xd6, 0x7a, 0xe5, 0x54, 0xd3, + 0x3a, 0xc5, 0xde, 0x97, 0xd4, 0xc9, 0x2f, 0x4b, 0xb1, 0x22, 0x63, 0xff, 0x0b, 0x3e, 0x03, 0x12, + 0x72, 0x0a, 0x4a, 0x94, 0x8a, 0xa9, 0x44, 0x99, 0xef, 0xf3, 0x05, 0x39, 0xca, 0x94, 0x7f, 0x6e, + 0xf6, 0x9b, 0x5d, 0xb2, 0x3e, 0xe9, 0x8f, 0x7a, 0xf6, 0x4f, 0x58, 0x70, 0x36, 0xcb, 0x0a, 0x86, + 0x4a, 0x6b, 0xfc, 0x8a, 0xa7, 0x1e, 0x39, 0xd5, 0x08, 0xde, 0x11, 0xe5, 0x58, 0x61, 0x0c, 0x9c, + 0xae, 0xe4, 0x78, 0x31, 0xf5, 0x6e, 0x81, 0x99, 0xcd, 0x1a, 0xbd, 0xc9, 0x5d, 0xa3, 0x2c, 0x95, + 0x6e, 0xfa, 0x78, 0x6e, 0x51, 0xf6, 0xcf, 0x15, 0xe0, 0x2c, 0x7f, 0xa5, 0x58, 0xda, 0x0f, 0xdc, + 0x66, 0x2d, 0x68, 0x0a, 0x47, 0xb1, 0x77, 0x60, 0xa2, 0xad, 0xdd, 0xcb, 0x7b, 0x45, 0xf5, 0xd2, + 0xef, 0xef, 0xc9, 0xfd, 0x48, 0x2f, 0xc5, 0x06, 0x2d, 0xd4, 0x84, 0x09, 0xb2, 0xef, 0x36, 0x94, + 0xaa, 0xbb, 0x70, 0xec, 0xb3, 0x41, 0xb5, 0xb2, 0xaa, 0xd1, 0xc1, 0x06, 0xd5, 0x47, 0x90, 0x7d, + 0xd0, 0xfe, 0x49, 0x0b, 0x1e, 0xcf, 0x89, 0x01, 0x46, 0x9b, 0xbb, 0xc7, 0xde, 0x83, 0x44, 0x22, + 0x33, 0xd5, 0x1c, 0x7f, 0x25, 0xc2, 0x02, 0x8a, 0xbe, 0x04, 0xc0, 0x5f, 0x79, 0xe8, 0x75, 0x41, + 0x7c, 0xfa, 0x60, 0xb1, 0x71, 0xb4, 0x00, 0x2a, 0xb2, 0x3e, 0xd6, 0x68, 0xd9, 0x3f, 0x53, 0x84, + 0x61, 0xf6, 0xaa, 0x80, 0xd6, 0x60, 0x74, 0x87, 0x47, 0x1c, 0x1f, 0x24, 0xb8, 0x79, 0x72, 0xef, + 0xe2, 0x05, 0x58, 0x56, 0x46, 0xeb, 0x70, 0x46, 0x38, 0x23, 0x56, 0x88, 0xe7, 0x1c, 0xc8, 0xeb, + 0x3b, 0x4f, 0xfe, 0xa5, 0xd2, 0xdd, 0x55, 0xbb, 0x51, 0x70, 0x56, 0x3d, 0xf4, 0x66, 0x57, 0x9c, + 0x51, 0x1e, 0xab, 0x5d, 0x09, 0xfb, 0x7d, 0x62, 0x8d, 0xbe, 0x01, 0x93, 0xed, 0x2e, 0x45, 0xc5, + 0x70, 0x72, 0x11, 0x31, 0x95, 0x13, 0x26, 0x2e, 0x33, 0x7f, 0xe9, 0x30, 0x63, 0x9f, 0xcd, 0x9d, + 0x90, 0x44, 0x3b, 0x81, 0xd7, 0x14, 0xf9, 0xf8, 0x13, 0xf3, 0x97, 0x14, 0x1c, 0x77, 0xd5, 0xa0, + 0x54, 0xb6, 0x1d, 0xd7, 0xeb, 0x84, 0x24, 0xa1, 0x32, 0x62, 0x52, 0x59, 0x4b, 0xc1, 0x71, 0x57, + 0x0d, 0xba, 0x8e, 0xce, 0x89, 0x64, 0xee, 0x32, 0x44, 0x85, 0xb2, 0x69, 0x1a, 0x95, 0xae, 0x2a, + 0x3d, 0xc2, 0x26, 0x09, 0xab, 0x0f, 0x95, 0x0e, 0x5e, 0x4b, 0x15, 0x2c, 0x9c, 0x54, 0x24, 0x95, + 0x87, 0x49, 0x29, 0xfe, 0x87, 0x16, 0x9c, 0xc9, 0xb0, 0x9d, 0xe4, 0xac, 0xaa, 0xe5, 0x46, 0xb1, + 0x4a, 0x70, 0xa4, 0xb1, 0x2a, 0x5e, 0x8e, 0x15, 0x06, 0xdd, 0x0f, 0x9c, 0x19, 0xa6, 0x19, 0xa0, + 0xb0, 0x4d, 0x12, 0xd0, 0xe3, 0x31, 0x40, 0x74, 0x11, 0x86, 0x3a, 0x11, 0x09, 0x65, 0x2e, 0x6e, + 0xc9, 0xbf, 0x99, 0xea, 0x93, 0x41, 0xa8, 0x68, 0xda, 0x52, 0x5a, 0x47, 0x4d, 0x34, 0xe5, 0x7a, + 0x47, 0x0e, 0xb3, 0xbf, 0x56, 0x84, 0xf3, 0xb9, 0xb6, 0xd1, 0xb4, 0x4b, 0x7b, 0x81, 0xef, 0xc6, + 0x81, 0x7a, 0xb1, 0xe2, 0xf1, 0x7d, 0x48, 0x7b, 0x67, 0x5d, 0x94, 0x63, 0x85, 0x81, 0x2e, 0xc1, + 0x30, 0xbb, 0xd9, 0x77, 0xa5, 0x70, 0x5a, 0xae, 0xf0, 0xb0, 0x13, 0x1c, 0x3c, 0x70, 0x7a, 0xbc, + 0x67, 0x60, 0xa8, 0x1d, 0x04, 0x5e, 0x9a, 0x19, 0xd1, 0xee, 0x06, 0x81, 0x87, 0x19, 0x10, 0x7d, + 0x46, 0x8c, 0x43, 0xea, 0x89, 0x06, 0x3b, 0xcd, 0x20, 0xd2, 0x06, 0xe3, 0x39, 0x18, 0xdd, 0x25, + 0x07, 0xa1, 0xeb, 0xb7, 0xd2, 0x4f, 0x77, 0x37, 0x78, 0x31, 0x96, 0x70, 0x33, 0x83, 0xc9, 0xe8, + 0x49, 0xe7, 0xb5, 0x1b, 0xeb, 0x7b, 0xb4, 0xfd, 0x70, 0x11, 0xa6, 0xf1, 0x72, 0xe5, 0xdb, 0x13, + 0x71, 0xbb, 0x7b, 0x22, 0x4e, 0x3a, 0xaf, 0x5d, 0xff, 0xd9, 0xf8, 0x25, 0x0b, 0xa6, 0x59, 0x94, + 0x6f, 0x11, 0x9f, 0xc6, 0x0d, 0xfc, 0x53, 0x10, 0xdd, 0x9e, 0x81, 0xe1, 0x90, 0x36, 0x9a, 0x4e, + 0x56, 0xc5, 0x7a, 0x82, 0x39, 0x0c, 0x3d, 0x09, 0x43, 0xac, 0x0b, 0x74, 0xf2, 0x26, 0x78, 0x9e, + 0x8f, 0x8a, 0x13, 0x3b, 0x98, 0x95, 0x32, 0x47, 0x61, 0x4c, 0xda, 0x9e, 0xcb, 0x3b, 0x9d, 0xa8, + 0xfa, 0x3f, 0x19, 0x8e, 0xc2, 0x99, 0x5d, 0xfb, 0x68, 0x8e, 0xc2, 0xd9, 0x24, 0x7b, 0x5f, 0x8b, + 0xfe, 0x47, 0x01, 0x2e, 0x64, 0xd6, 0x1b, 0xd8, 0x51, 0xb8, 0x77, 0xed, 0x93, 0xb1, 0xc0, 0xc8, + 0x36, 0x8c, 0x28, 0x9e, 0xa2, 0x61, 0xc4, 0xd0, 0xa0, 0x92, 0xe3, 0xf0, 0x00, 0xfe, 0xbb, 0x99, + 0x43, 0xf6, 0x09, 0xf1, 0xdf, 0xcd, 0xec, 0x5b, 0xce, 0xb5, 0xee, 0x2f, 0x0b, 0x39, 0xdf, 0xc2, + 0x2e, 0x78, 0x97, 0x29, 0x9f, 0x61, 0xc0, 0x48, 0x48, 0xc2, 0x13, 0x9c, 0xc7, 0xf0, 0x32, 0xac, + 0xa0, 0xc8, 0xd5, 0x3c, 0x61, 0x0b, 0xf9, 0xa9, 0x4c, 0x73, 0x9b, 0x5a, 0x30, 0x5f, 0x66, 0xf4, + 0x60, 0x3a, 0x69, 0xaf, 0xd8, 0x75, 0xed, 0x52, 0x5e, 0x1c, 0xfc, 0x52, 0x3e, 0x91, 0x7d, 0x21, + 0x47, 0x4b, 0x30, 0xbd, 0xe7, 0xfa, 0x94, 0x6d, 0x1e, 0x98, 0xa2, 0xa8, 0x0a, 0x0c, 0xb1, 0x6e, + 0x82, 0x71, 0x1a, 0x7f, 0xee, 0x0d, 0x98, 0x7c, 0x78, 0x75, 0xe4, 0x37, 0x8b, 0xf0, 0x44, 0x8f, + 0x6d, 0xcf, 0x79, 0xbd, 0x31, 0x07, 0x1a, 0xaf, 0xef, 0x9a, 0x87, 0x1a, 0x9c, 0xdd, 0xee, 0x78, + 0xde, 0x01, 0xb3, 0x3d, 0x24, 0x4d, 0x89, 0x21, 0x64, 0x45, 0x15, 0xc2, 0x7f, 0x2d, 0x03, 0x07, + 0x67, 0xd6, 0x44, 0x6f, 0x01, 0x0a, 0x44, 0x1e, 0xe5, 0x24, 0x44, 0x10, 0x1b, 0xf8, 0x62, 0xb2, + 0x19, 0x6f, 0x75, 0x61, 0xe0, 0x8c, 0x5a, 0x54, 0xe8, 0xa7, 0xa7, 0xd2, 0x81, 0xea, 0x56, 0x4a, + 0xe8, 0xc7, 0x3a, 0x10, 0x9b, 0xb8, 0xe8, 0x1a, 0xcc, 0x3a, 0xfb, 0x8e, 0xcb, 0x43, 0x46, 0x4a, + 0x02, 0x5c, 0xea, 0x57, 0x4a, 0xb0, 0xa5, 0x34, 0x02, 0xee, 0xae, 0x93, 0x72, 0xc5, 0x1d, 0xc9, + 0x77, 0xc5, 0xed, 0xcd, 0x17, 0xfb, 0xe9, 0x74, 0xed, 0xff, 0x6c, 0xd1, 0xe3, 0x8b, 0x0b, 0xef, + 0x66, 0xf8, 0xac, 0x37, 0x60, 0x52, 0xe9, 0x26, 0x35, 0xaf, 0x58, 0x35, 0x0e, 0x2b, 0x3a, 0x10, + 0x9b, 0xb8, 0x7c, 0x41, 0x44, 0x89, 0x83, 0x86, 0x21, 0xba, 0x0b, 0xb7, 0x77, 0x85, 0x81, 0xbe, + 0x0c, 0xa3, 0x4d, 0x77, 0xdf, 0x8d, 0x82, 0x50, 0x6c, 0x96, 0x63, 0x9a, 0xb9, 0x27, 0x7c, 0xb0, + 0xc2, 0xc9, 0x60, 0x49, 0xcf, 0xfe, 0xe1, 0x02, 0x4c, 0xca, 0x16, 0xdf, 0xee, 0x04, 0xb1, 0x73, + 0x0a, 0xc7, 0xf2, 0x35, 0xe3, 0x58, 0xfe, 0x4c, 0x2f, 0xdf, 0x7f, 0xd6, 0xa5, 0xdc, 0xe3, 0xf8, + 0x56, 0xea, 0x38, 0x7e, 0xb6, 0x3f, 0xa9, 0xde, 0xc7, 0xf0, 0xbf, 0xb4, 0x60, 0xd6, 0xc0, 0x3f, + 0x85, 0xd3, 0x60, 0xcd, 0x3c, 0x0d, 0x9e, 0xee, 0xfb, 0x0d, 0x39, 0xa7, 0xc0, 0x37, 0x0a, 0xa9, + 0xbe, 0x33, 0xee, 0xff, 0x01, 0x0c, 0xed, 0x38, 0x61, 0xb3, 0x57, 0xe0, 0xe3, 0xae, 0x4a, 0x0b, + 0xd7, 0x9d, 0xb0, 0xc9, 0x79, 0xf8, 0x8b, 0x2a, 0xfb, 0xaa, 0x13, 0x36, 0xfb, 0xfa, 0x23, 0xb1, + 0xa6, 0xd0, 0x55, 0x18, 0x89, 0x1a, 0x41, 0x5b, 0x59, 0x0b, 0x5e, 0xe4, 0x99, 0x59, 0x69, 0xc9, + 0xd1, 0xe1, 0x3c, 0x32, 0x9b, 0xa3, 0xc5, 0x58, 0xe0, 0xcf, 0xb5, 0xa0, 0xa4, 0x9a, 0x7e, 0xa4, + 0xbe, 0x1e, 0xbf, 0x57, 0x84, 0x33, 0x19, 0xeb, 0x02, 0x45, 0xc6, 0x68, 0xbd, 0x3c, 0xe0, 0x72, + 0xfa, 0x88, 0xe3, 0x15, 0xb1, 0x1b, 0x4b, 0x53, 0xcc, 0xff, 0xc0, 0x8d, 0xde, 0x8e, 0x48, 0xba, + 0x51, 0x5a, 0xd4, 0xbf, 0x51, 0xda, 0xd8, 0xa9, 0x0d, 0x35, 0x6d, 0x48, 0xf5, 0xf4, 0x91, 0xce, + 0xe9, 0x9f, 0x15, 0xe1, 0x6c, 0x56, 0xc8, 0x10, 0xf4, 0xbd, 0xa9, 0x34, 0x4a, 0xaf, 0x0e, 0x1a, + 0x6c, 0x84, 0xe7, 0x56, 0x12, 0x31, 0xd6, 0x16, 0xcc, 0xc4, 0x4a, 0x7d, 0x87, 0x59, 0xb4, 0xc9, + 0x1c, 0x04, 0x43, 0x9e, 0xfe, 0x4a, 0x6e, 0xf1, 0xcf, 0x0d, 0xdc, 0x01, 0x91, 0x37, 0x2b, 0x4a, + 0x39, 0x08, 0xca, 0xe2, 0xfe, 0x0e, 0x82, 0xb2, 0xe5, 0x39, 0x17, 0xc6, 0xb5, 0xaf, 0x79, 0xa4, + 0x33, 0xbe, 0x4b, 0x4f, 0x14, 0xad, 0xdf, 0x8f, 0x74, 0xd6, 0x7f, 0xd2, 0x82, 0x94, 0x8d, 0x9e, + 0x52, 0x49, 0x59, 0xb9, 0x2a, 0xa9, 0x8b, 0x30, 0x14, 0x06, 0x1e, 0x49, 0x67, 0xd6, 0xc1, 0x81, + 0x47, 0x30, 0x83, 0x50, 0x8c, 0x38, 0x51, 0x48, 0x4c, 0xe8, 0x97, 0x2d, 0x71, 0x8d, 0x7a, 0x06, + 0x86, 0x3d, 0xb2, 0x4f, 0xa4, 0x36, 0x42, 0xf1, 0xe4, 0x9b, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x4b, + 0x43, 0xf0, 0x54, 0x4f, 0x17, 0x5b, 0x7a, 0x65, 0x69, 0x39, 0x31, 0xb9, 0xe7, 0x1c, 0xa4, 0xe3, + 0x7e, 0x5f, 0xe3, 0xc5, 0x58, 0xc2, 0x99, 0x45, 0x31, 0x0f, 0x1d, 0x9a, 0x52, 0xe0, 0x89, 0x88, + 0xa1, 0x02, 0x6a, 0x2a, 0x8e, 0x8a, 0x27, 0xa1, 0x38, 0xba, 0x02, 0x10, 0x45, 0xde, 0xaa, 0x4f, + 0x25, 0xb0, 0xa6, 0x30, 0x55, 0x4e, 0x42, 0xcc, 0xd6, 0x6f, 0x0a, 0x08, 0xd6, 0xb0, 0x50, 0x05, + 0x66, 0xda, 0x61, 0x10, 0x73, 0x7d, 0x68, 0x85, 0x1b, 0xc9, 0x0c, 0x9b, 0xde, 0x8d, 0xb5, 0x14, + 0x1c, 0x77, 0xd5, 0x40, 0xaf, 0xc1, 0xb8, 0xf0, 0x78, 0xac, 0x05, 0x81, 0x27, 0x54, 0x35, 0xca, + 0xe4, 0xa2, 0x9e, 0x80, 0xb0, 0x8e, 0xa7, 0x55, 0x63, 0x4a, 0xd6, 0xd1, 0xcc, 0x6a, 0x5c, 0xd1, + 0xaa, 0xe1, 0xa5, 0xc2, 0x07, 0x8d, 0x0d, 0x14, 0x3e, 0x28, 0x51, 0x5e, 0x95, 0x06, 0x7e, 0x57, + 0x82, 0xbe, 0xea, 0x9e, 0x9f, 0x1f, 0x82, 0x33, 0x62, 0xe1, 0x3c, 0xea, 0xe5, 0x72, 0xbb, 0x7b, + 0xb9, 0x9c, 0x84, 0x7a, 0xeb, 0xdb, 0x6b, 0xe6, 0xb4, 0xd7, 0xcc, 0xaf, 0x16, 0x61, 0x84, 0x4f, + 0xc5, 0x29, 0xc8, 0xf0, 0x6b, 0x42, 0xe9, 0xd7, 0x23, 0x70, 0x0e, 0xef, 0xcb, 0x42, 0xc5, 0x89, + 0x1d, 0x7e, 0x7e, 0x29, 0x36, 0x9a, 0xa8, 0x07, 0xd1, 0x82, 0xc1, 0x68, 0xe7, 0x52, 0x5a, 0x2d, + 0xe0, 0x34, 0x34, 0xb6, 0xfb, 0x15, 0x80, 0x28, 0x0e, 0x5d, 0xbf, 0x45, 0x69, 0x88, 0x10, 0x4c, + 0xcf, 0xf7, 0x68, 0xbd, 0xae, 0x90, 0x79, 0x1f, 0x92, 0x25, 0xa8, 0x00, 0x58, 0xa3, 0x38, 0xf7, + 0x3a, 0x94, 0x14, 0x72, 0x3f, 0x15, 0xc0, 0x84, 0x7e, 0xea, 0x7d, 0x11, 0xa6, 0x53, 0x6d, 0x1d, + 0x4b, 0x83, 0xf0, 0xcb, 0x16, 0x4c, 0xf3, 0x2e, 0xaf, 0xfa, 0xfb, 0x62, 0xb3, 0x7f, 0x08, 0x67, + 0xbd, 0x8c, 0x4d, 0x27, 0x66, 0x74, 0xf0, 0x4d, 0xaa, 0x34, 0x06, 0x59, 0x50, 0x9c, 0xd9, 0x06, + 0xba, 0x0c, 0x63, 0xdc, 0x05, 0xc7, 0xf1, 0x84, 0xdb, 0xc4, 0x04, 0x4f, 0xc5, 0xc1, 0xcb, 0xb0, + 0x82, 0xda, 0xbf, 0x6f, 0xc1, 0x2c, 0xef, 0xf9, 0x0d, 0x72, 0xa0, 0x6e, 0xc7, 0x1f, 0x67, 0xdf, + 0x45, 0xa6, 0x91, 0x42, 0x4e, 0xa6, 0x11, 0xfd, 0xd3, 0x8a, 0x3d, 0x3f, 0xed, 0xe7, 0x2c, 0x10, + 0x2b, 0xf0, 0x14, 0xee, 0x81, 0xdf, 0x69, 0xde, 0x03, 0xe7, 0xf2, 0x17, 0x75, 0xce, 0x05, 0xf0, + 0x2f, 0x2c, 0x98, 0xe1, 0x08, 0xc9, 0x43, 0xe4, 0xc7, 0x3a, 0x0f, 0x83, 0xa4, 0xbf, 0x53, 0xf9, + 0xc6, 0xb3, 0x3f, 0xca, 0x98, 0xac, 0xa1, 0x9e, 0x93, 0xd5, 0x94, 0x1b, 0xe8, 0x18, 0x69, 0x1d, + 0x8f, 0x1d, 0x1c, 0xd7, 0xfe, 0x53, 0x0b, 0x10, 0x6f, 0xc6, 0x38, 0x97, 0xe9, 0x69, 0xc7, 0x4a, + 0x35, 0x4d, 0x50, 0xc2, 0x6a, 0x14, 0x04, 0x6b, 0x58, 0x27, 0x32, 0x3c, 0xa9, 0xd7, 0xe4, 0x62, + 0xff, 0xd7, 0xe4, 0x63, 0x8c, 0xe8, 0xdf, 0x1a, 0x82, 0xb4, 0x8d, 0x36, 0xba, 0x03, 0x13, 0x0d, + 0xa7, 0xed, 0x6c, 0xb9, 0x9e, 0x1b, 0xbb, 0x24, 0xea, 0x65, 0x86, 0xb2, 0xa2, 0xe1, 0x89, 0x77, + 0x42, 0xad, 0x04, 0x1b, 0x74, 0xd0, 0x02, 0x40, 0x3b, 0x74, 0xf7, 0x5d, 0x8f, 0xb4, 0xd8, 0x55, + 0x98, 0x39, 0x6a, 0x71, 0xdb, 0x0a, 0x59, 0x8a, 0x35, 0x8c, 0x0c, 0xc7, 0x9e, 0xe2, 0xa3, 0x73, + 0xec, 0x19, 0x3a, 0xa6, 0x63, 0xcf, 0xf0, 0x40, 0x8e, 0x3d, 0x18, 0x1e, 0x93, 0x67, 0x37, 0xfd, + 0xbf, 0xe6, 0x7a, 0x44, 0x08, 0x6c, 0xdc, 0x7d, 0x6b, 0xee, 0xc1, 0xe1, 0xfc, 0x63, 0x38, 0x13, + 0x03, 0xe7, 0xd4, 0x44, 0x5f, 0x82, 0xb2, 0xe3, 0x79, 0xc1, 0x3d, 0x35, 0x6a, 0xab, 0x51, 0xc3, + 0xf1, 0x92, 0x58, 0xf1, 0x63, 0xcb, 0x4f, 0x3e, 0x38, 0x9c, 0x2f, 0x2f, 0xe5, 0xe0, 0xe0, 0xdc, + 0xda, 0xf6, 0x2e, 0x9c, 0xa9, 0x93, 0x50, 0x66, 0x8a, 0x55, 0x5b, 0x6c, 0x13, 0x4a, 0x61, 0x8a, + 0xa9, 0x0c, 0x14, 0xa3, 0x45, 0x8b, 0xe3, 0x29, 0x99, 0x48, 0x42, 0xc8, 0xfe, 0x73, 0x0b, 0x46, + 0x85, 0xdd, 0xf7, 0x29, 0xc8, 0x32, 0x4b, 0x86, 0x3e, 0x72, 0x3e, 0x9b, 0xf1, 0xb2, 0xce, 0xe4, + 0x6a, 0x22, 0xab, 0x29, 0x4d, 0xe4, 0xd3, 0xbd, 0x88, 0xf4, 0xd6, 0x41, 0xfe, 0x78, 0x11, 0xa6, + 0x4c, 0x9b, 0xf7, 0x53, 0x18, 0x82, 0x0d, 0x18, 0x8d, 0x84, 0x83, 0x45, 0x21, 0xdf, 0x10, 0x36, + 0x3d, 0x89, 0x89, 0x95, 0x8b, 0x70, 0xa9, 0x90, 0x44, 0x32, 0x3d, 0x37, 0x8a, 0x8f, 0xd0, 0x73, + 0xa3, 0x9f, 0xdb, 0xc1, 0xd0, 0x49, 0xb8, 0x1d, 0xd8, 0xbf, 0xc6, 0x98, 0xbf, 0x5e, 0x7e, 0x0a, + 0x72, 0xc1, 0x35, 0xf3, 0x98, 0xb0, 0x7b, 0xac, 0x2c, 0xd1, 0xa9, 0x1c, 0xf9, 0xe0, 0x9f, 0x5a, + 0x30, 0x2e, 0x10, 0x4f, 0xa1, 0xdb, 0xdf, 0x65, 0x76, 0xfb, 0x89, 0x1e, 0xdd, 0xce, 0xe9, 0xef, + 0xdf, 0x2f, 0xa8, 0xfe, 0xd6, 0x82, 0x30, 0x1e, 0x28, 0x77, 0xc8, 0x18, 0xbd, 0x0d, 0x06, 0x8d, + 0xc0, 0x13, 0x87, 0xf9, 0x93, 0x89, 0x07, 0x2f, 0x2f, 0x3f, 0xd2, 0x7e, 0x63, 0x85, 0xcd, 0x1c, + 0x4c, 0x83, 0x30, 0x16, 0x07, 0x68, 0xe2, 0x60, 0x1a, 0x84, 0x31, 0x66, 0x10, 0xd4, 0x04, 0x88, + 0x9d, 0xb0, 0x45, 0x62, 0x5a, 0x26, 0x82, 0x01, 0xe4, 0xef, 0xc2, 0x4e, 0xec, 0x7a, 0x0b, 0xae, + 0x1f, 0x47, 0x71, 0xb8, 0x50, 0xf5, 0xe3, 0x5b, 0x21, 0xbf, 0x1b, 0x68, 0x2e, 0xb9, 0x8a, 0x16, + 0xd6, 0xe8, 0x4a, 0x9f, 0x30, 0xd6, 0xc6, 0xb0, 0xf9, 0x50, 0xb8, 0x21, 0xca, 0xb1, 0xc2, 0xb0, + 0x5f, 0x67, 0x3c, 0x99, 0x0d, 0xd0, 0xf1, 0xbc, 0x65, 0x7f, 0x67, 0x4c, 0x0d, 0x2d, 0x7b, 0x25, + 0xa8, 0xe8, 0x3e, 0xb9, 0xbd, 0x59, 0x20, 0x6d, 0x58, 0xf7, 0x2f, 0x48, 0x1c, 0x77, 0xd1, 0x77, + 0x77, 0xbd, 0x1f, 0xbf, 0xd4, 0x87, 0x97, 0x1e, 0xe3, 0xc5, 0x98, 0x05, 0xa0, 0x65, 0x81, 0x3a, + 0xab, 0xb5, 0x74, 0x76, 0x97, 0x15, 0x09, 0xc0, 0x09, 0x0e, 0x5a, 0x14, 0x37, 0x4b, 0xae, 0x9f, + 0x7b, 0x22, 0x75, 0xb3, 0x94, 0x9f, 0xaf, 0x5d, 0x2d, 0x5f, 0x86, 0x71, 0x95, 0x31, 0xaf, 0xc6, + 0x13, 0x8f, 0x89, 0xd0, 0x08, 0xab, 0x49, 0x31, 0xd6, 0x71, 0xd0, 0x26, 0x4c, 0x47, 0x3c, 0x9d, + 0x9f, 0x8a, 0x80, 0xc5, 0xf5, 0x06, 0xcf, 0xcb, 0x77, 0xe7, 0xba, 0x09, 0x3e, 0x62, 0x45, 0x7c, + 0xb3, 0x4a, 0xc7, 0xae, 0x34, 0x09, 0xf4, 0x26, 0x4c, 0x79, 0x7a, 0x5a, 0xf3, 0x9a, 0x50, 0x2b, + 0x28, 0xb3, 0x4c, 0x23, 0xe9, 0x79, 0x0d, 0xa7, 0xb0, 0xa9, 0x10, 0xa0, 0x97, 0x88, 0xa8, 0x6d, + 0x8e, 0xdf, 0x22, 0x91, 0xc8, 0xf7, 0xc5, 0x84, 0x80, 0x9b, 0x39, 0x38, 0x38, 0xb7, 0x36, 0xba, + 0x0a, 0x13, 0xf2, 0xf3, 0x35, 0xb7, 0xc5, 0xc4, 0xf8, 0x57, 0x83, 0x61, 0x03, 0x13, 0xdd, 0x83, + 0x73, 0xf2, 0xff, 0x66, 0xe8, 0x6c, 0x6f, 0xbb, 0x0d, 0xe1, 0x35, 0xca, 0x3d, 0x20, 0x96, 0xa4, + 0x4b, 0xc5, 0x6a, 0x16, 0xd2, 0xd1, 0xe1, 0xfc, 0x45, 0x31, 0x6a, 0x99, 0x70, 0x36, 0x89, 0xd9, + 0xf4, 0xd1, 0x3a, 0x9c, 0xd9, 0x21, 0x8e, 0x17, 0xef, 0xac, 0xec, 0x90, 0xc6, 0xae, 0xdc, 0x44, + 0xcc, 0x19, 0x52, 0x33, 0x99, 0xbd, 0xde, 0x8d, 0x82, 0xb3, 0xea, 0xa1, 0x77, 0xa1, 0xdc, 0xee, + 0x6c, 0x79, 0x6e, 0xb4, 0xb3, 0x11, 0xc4, 0xec, 0xa9, 0x5b, 0x25, 0x9c, 0x13, 0x5e, 0x93, 0xca, + 0x11, 0xb4, 0x96, 0x83, 0x87, 0x73, 0x29, 0xa0, 0x0f, 0xe1, 0x5c, 0x6a, 0x31, 0x08, 0x1f, 0xae, + 0xa9, 0xfc, 0x18, 0x98, 0xf5, 0xac, 0x0a, 0xc2, 0x27, 0x2b, 0x0b, 0x84, 0xb3, 0x9b, 0xf8, 0x68, + 0x06, 0x10, 0x1f, 0xd0, 0xca, 0x9a, 0x74, 0x83, 0xde, 0x83, 0x09, 0x7d, 0x15, 0x89, 0x03, 0xe6, + 0x52, 0xbf, 0x14, 0xfe, 0x42, 0x36, 0x52, 0x2b, 0x4a, 0x87, 0x61, 0x83, 0xa2, 0x4d, 0x20, 0xfb, + 0xfb, 0xd0, 0x4d, 0x18, 0x6b, 0x78, 0x2e, 0xf1, 0xe3, 0x6a, 0xad, 0x97, 0xb7, 0xff, 0x8a, 0xc0, + 0x11, 0x03, 0x26, 0x82, 0x06, 0xf2, 0x32, 0xac, 0x28, 0xd8, 0xbf, 0x51, 0x80, 0xf9, 0x3e, 0x11, + 0x28, 0x53, 0x3a, 0x40, 0x6b, 0x20, 0x1d, 0xe0, 0x92, 0x4c, 0x9f, 0xb7, 0x91, 0xba, 0x7f, 0xa6, + 0x52, 0xe3, 0x25, 0xb7, 0xd0, 0x34, 0xfe, 0xc0, 0x76, 0x93, 0xba, 0x1a, 0x71, 0xa8, 0xaf, 0x45, + 0xaf, 0xf1, 0x7c, 0x30, 0x3c, 0xb8, 0x44, 0x9f, 0xab, 0x0a, 0xb6, 0x7f, 0xad, 0x00, 0xe7, 0xd4, + 0x10, 0x7e, 0xeb, 0x0e, 0xdc, 0xed, 0xee, 0x81, 0x3b, 0x01, 0x45, 0xba, 0x7d, 0x0b, 0x46, 0xea, + 0x07, 0x51, 0x23, 0xf6, 0x06, 0x10, 0x80, 0x9e, 0x31, 0xa3, 0xde, 0xa8, 0x63, 0xda, 0x88, 0x7c, + 0xf3, 0x37, 0x2c, 0x98, 0xde, 0x5c, 0xa9, 0xd5, 0x83, 0xc6, 0x2e, 0x89, 0x97, 0xb8, 0x9a, 0x08, + 0x0b, 0xf9, 0xc7, 0x7a, 0x48, 0xb9, 0x26, 0x4b, 0x62, 0xba, 0x08, 0x43, 0x3b, 0x41, 0x14, 0xa7, + 0x5f, 0xd9, 0xae, 0x07, 0x51, 0x8c, 0x19, 0xc4, 0xfe, 0x03, 0x0b, 0x86, 0x59, 0xd2, 0xd7, 0x7e, + 0xc9, 0x81, 0x07, 0xf9, 0x2e, 0xf4, 0x1a, 0x8c, 0x90, 0xed, 0x6d, 0xd2, 0x88, 0xc5, 0xac, 0x4a, + 0x37, 0xbd, 0x91, 0x55, 0x56, 0x4a, 0x0f, 0x7d, 0xd6, 0x18, 0xff, 0x8b, 0x05, 0x32, 0xba, 0x0b, + 0xa5, 0xd8, 0xdd, 0x23, 0x4b, 0xcd, 0xa6, 0x78, 0xa7, 0x78, 0x08, 0xaf, 0xc8, 0x4d, 0x49, 0x00, + 0x27, 0xb4, 0xec, 0xaf, 0x15, 0x00, 0x12, 0x57, 0xe3, 0x7e, 0x9f, 0xb8, 0xdc, 0x95, 0xff, 0xf8, + 0x52, 0x46, 0xfe, 0x63, 0x94, 0x10, 0xcc, 0xc8, 0x7e, 0xac, 0x86, 0xa9, 0x38, 0xd0, 0x30, 0x0d, + 0x1d, 0x67, 0x98, 0x56, 0x60, 0x36, 0x71, 0x95, 0x36, 0xe3, 0x46, 0xb0, 0x88, 0xf4, 0x9b, 0x69, + 0x20, 0xee, 0xc6, 0xb7, 0x7f, 0xd0, 0x02, 0xe1, 0x6e, 0x30, 0xc0, 0x62, 0x7e, 0x47, 0xa6, 0x2a, + 0x35, 0x02, 0xd9, 0x5e, 0xcc, 0xf7, 0xbf, 0x10, 0xe1, 0x6b, 0xd5, 0xe1, 0x61, 0x04, 0xad, 0x35, + 0x68, 0xd9, 0x4d, 0x10, 0xd0, 0x0a, 0x61, 0x4a, 0x86, 0xfe, 0xbd, 0xb9, 0x02, 0xd0, 0x64, 0xb8, + 0x5a, 0xea, 0x43, 0xc5, 0xaa, 0x2a, 0x0a, 0x82, 0x35, 0x2c, 0xfb, 0x47, 0x0b, 0x30, 0x2e, 0x03, + 0xa7, 0xd2, 0x7b, 0x7c, 0xff, 0x56, 0x8e, 0x95, 0x35, 0x81, 0xe5, 0x0a, 0xa5, 0x84, 0x55, 0x70, + 0x7d, 0x3d, 0x57, 0xa8, 0x04, 0xe0, 0x04, 0x07, 0x3d, 0x07, 0xa3, 0x51, 0x67, 0x8b, 0xa1, 0xa7, + 0x8c, 0xe8, 0xeb, 0xbc, 0x18, 0x4b, 0x38, 0xfa, 0x12, 0xcc, 0xf0, 0x7a, 0x61, 0xd0, 0x76, 0x5a, + 0x5c, 0x83, 0x34, 0xac, 0xbc, 0xda, 0x66, 0xd6, 0x53, 0xb0, 0xa3, 0xc3, 0xf9, 0xb3, 0xe9, 0x32, + 0xa6, 0x7b, 0xec, 0xa2, 0x62, 0xbf, 0x07, 0xa8, 0x3b, 0x16, 0x2c, 0x7a, 0x8b, 0x9b, 0x49, 0xb8, + 0x21, 0x69, 0xf6, 0x52, 0x2a, 0xea, 0x4e, 0x58, 0xd2, 0x90, 0x95, 0xd7, 0xc2, 0xaa, 0x3e, 0xdd, + 0x79, 0x33, 0x69, 0x97, 0x1c, 0x74, 0x1d, 0x46, 0x38, 0x53, 0x15, 0xe4, 0x7b, 0xbc, 0x59, 0x69, + 0x8e, 0x3c, 0x2c, 0x50, 0xbd, 0xe0, 0xcb, 0xa2, 0x3e, 0x7a, 0x17, 0xc6, 0x9b, 0xc1, 0x3d, 0xff, + 0x9e, 0x13, 0x36, 0x97, 0x6a, 0x55, 0xb1, 0x2e, 0x33, 0x65, 0xb3, 0x4a, 0x82, 0xa6, 0x3b, 0x07, + 0x31, 0xfd, 0x6c, 0x02, 0xc2, 0x3a, 0x39, 0xb4, 0xc9, 0xe2, 0x5b, 0x6d, 0xbb, 0xad, 0x75, 0xa7, + 0xdd, 0xcb, 0xae, 0x6d, 0x45, 0x22, 0x69, 0x94, 0x27, 0x45, 0x10, 0x2c, 0x0e, 0xc0, 0x09, 0x21, + 0xfb, 0xab, 0x67, 0xc0, 0xd8, 0x0f, 0x46, 0x5e, 0x06, 0xeb, 0x84, 0xf2, 0x32, 0x60, 0x18, 0x23, + 0x7b, 0xed, 0xf8, 0xa0, 0xe2, 0x86, 0xbd, 0x12, 0xfb, 0xac, 0x0a, 0x9c, 0x6e, 0x9a, 0x12, 0x82, + 0x15, 0x9d, 0xec, 0xe4, 0x19, 0xc5, 0x8f, 0x31, 0x79, 0xc6, 0xd0, 0x29, 0x26, 0xcf, 0xd8, 0x80, + 0xd1, 0x96, 0x1b, 0x63, 0xd2, 0x0e, 0x84, 0x40, 0x91, 0xb9, 0x12, 0xae, 0x71, 0x94, 0xee, 0xd0, + 0xed, 0x02, 0x80, 0x25, 0x11, 0xf4, 0x96, 0xda, 0x03, 0x23, 0xf9, 0xf2, 0x78, 0xf7, 0xf3, 0x46, + 0xe6, 0x2e, 0x10, 0xc9, 0x32, 0x46, 0x1f, 0x36, 0x59, 0xc6, 0x9a, 0x4c, 0x71, 0x31, 0x96, 0x6f, + 0x06, 0xca, 0x32, 0x58, 0xf4, 0x49, 0x6c, 0x61, 0x24, 0x03, 0x29, 0x9d, 0x5c, 0x32, 0x90, 0x1f, + 0xb4, 0xe0, 0x5c, 0x3b, 0x2b, 0x2f, 0x8e, 0x48, 0x51, 0xf1, 0xda, 0xc0, 0x89, 0x7f, 0x8c, 0x06, + 0xd9, 0xc5, 0x2c, 0x13, 0x0d, 0x67, 0x37, 0x47, 0x07, 0x3a, 0xdc, 0x6a, 0x8a, 0xbc, 0x16, 0xcf, + 0xe4, 0x64, 0x15, 0xe9, 0x91, 0x4b, 0x64, 0x33, 0x23, 0x97, 0xc5, 0xa7, 0xf3, 0x72, 0x59, 0x0c, + 0x9c, 0xc1, 0x22, 0xc9, 0x27, 0x32, 0xf9, 0x91, 0xf3, 0x89, 0xbc, 0xa5, 0xf2, 0x89, 0xf4, 0x88, + 0x22, 0xc4, 0xb3, 0x85, 0xf4, 0xcd, 0x22, 0xa2, 0x65, 0x02, 0x99, 0x3e, 0x99, 0x4c, 0x20, 0x06, + 0xb3, 0xe7, 0xc9, 0x28, 0x5e, 0xe8, 0xc3, 0xec, 0x0d, 0xba, 0xbd, 0xd9, 0x3d, 0xcf, 0x7a, 0x32, + 0xfb, 0x50, 0x59, 0x4f, 0xee, 0xe8, 0x59, 0x44, 0x50, 0x9f, 0x34, 0x19, 0x14, 0x69, 0xc0, 0xdc, + 0x21, 0x77, 0xf4, 0x23, 0xe8, 0x4c, 0x3e, 0x5d, 0x75, 0xd2, 0x74, 0xd3, 0xcd, 0x3a, 0x84, 0xba, + 0x73, 0x92, 0x9c, 0x3d, 0x9d, 0x9c, 0x24, 0xe7, 0x4e, 0x3c, 0x27, 0xc9, 0x63, 0xa7, 0x90, 0x93, + 0xe4, 0xf1, 0x8f, 0x35, 0x27, 0x49, 0xf9, 0x11, 0xe4, 0x24, 0xd9, 0x48, 0x72, 0x92, 0x9c, 0xcf, + 0x9f, 0x92, 0x0c, 0xbb, 0xb7, 0x9c, 0x4c, 0x24, 0x77, 0xa0, 0xd4, 0x96, 0x5e, 0xdb, 0x22, 0xcc, + 0x51, 0x76, 0x32, 0xc4, 0x2c, 0xd7, 0x6e, 0x3e, 0x25, 0x0a, 0x84, 0x13, 0x52, 0x94, 0x6e, 0x92, + 0x99, 0xe4, 0x89, 0x1e, 0xaa, 0xb7, 0x2c, 0xa5, 0x46, 0x7e, 0x3e, 0x12, 0xfb, 0x6f, 0x16, 0xe0, + 0x42, 0xef, 0x75, 0x9d, 0x68, 0x44, 0x6a, 0x89, 0x06, 0x3f, 0xa5, 0x11, 0xe1, 0xd7, 0x8c, 0x04, + 0x6b, 0xe0, 0xd0, 0x16, 0xd7, 0x60, 0x56, 0x19, 0xbc, 0x79, 0x6e, 0xe3, 0x40, 0x4b, 0x92, 0xa8, + 0x9c, 0x6f, 0xea, 0x69, 0x04, 0xdc, 0x5d, 0x07, 0x2d, 0xc1, 0xb4, 0x51, 0x58, 0xad, 0x88, 0xeb, + 0x84, 0x52, 0xc1, 0xd4, 0x4d, 0x30, 0x4e, 0xe3, 0xdb, 0xdf, 0xb0, 0xe0, 0xf1, 0x9c, 0x70, 0xdd, + 0x03, 0x47, 0x6e, 0xd8, 0x86, 0xe9, 0xb6, 0x59, 0xb5, 0x4f, 0x80, 0x17, 0x23, 0x28, 0xb8, 0xea, + 0x6b, 0x0a, 0x80, 0xd3, 0x44, 0x97, 0x2f, 0xff, 0xd6, 0x1f, 0x5d, 0xf8, 0xd4, 0xef, 0xfe, 0xd1, + 0x85, 0x4f, 0xfd, 0xfe, 0x1f, 0x5d, 0xf8, 0xd4, 0xff, 0xff, 0xe0, 0x82, 0xf5, 0x5b, 0x0f, 0x2e, + 0x58, 0xbf, 0xfb, 0xe0, 0x82, 0xf5, 0xfb, 0x0f, 0x2e, 0x58, 0x7f, 0xf8, 0xe0, 0x82, 0xf5, 0xb5, + 0x3f, 0xbe, 0xf0, 0xa9, 0x77, 0x0a, 0xfb, 0x2f, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, + 0x04, 0x72, 0xd4, 0x90, 0xe2, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/core/v1/generated.proto b/vendor/k8s.io/api/core/v1/generated.proto index 4c0e8485..3fb70aff 100644 --- a/vendor/k8s.io/api/core/v1/generated.proto +++ b/vendor/k8s.io/api/core/v1/generated.proto @@ -170,7 +170,7 @@ message Binding { optional ObjectReference target = 2; } -// Represents storage that is managed by an external CSI volume driver +// Represents storage that is managed by an external CSI volume driver (Beta feature) message CSIPersistentVolumeSource { // Driver is the name of the driver to use for this volume. // Required. @@ -191,6 +191,10 @@ message CSIPersistentVolumeSource { // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. // +optional optional string fsType = 4; + + // Attributes of the volume to publish. + // +optional + map volumeAttributes = 5; } // Adds and removes POSIX capabilities from running containers. @@ -2528,7 +2532,7 @@ message PersistentVolumeSource { // +optional optional StorageOSPersistentVolumeSource storageos = 21; - // CSI represents storage that handled by an external CSI driver + // CSI represents storage that handled by an external CSI driver (Beta feature). // +optional optional CSIPersistentVolumeSource csi = 22; } @@ -2556,8 +2560,9 @@ message PersistentVolumeSpec { optional ObjectReference claimRef = 4; // What happens to a persistent volume when released from its claim. - // Valid options are Retain (default) and Recycle. - // Recycling must be supported by the volume plugin underlying this persistent volume. + // 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 // +optional optional string persistentVolumeReclaimPolicy = 5; @@ -2578,6 +2583,11 @@ message PersistentVolumeSpec { // This is an alpha feature and may change in the future. // +optional optional string volumeMode = 8; + + // NodeAffinity defines constraints that limit what nodes this volume can be accessed from. + // This field influences the scheduling of pods that use this volume. + // +optional + optional VolumeNodeAffinity nodeAffinity = 9; } // PersistentVolumeStatus is the current status of a persistent volume. @@ -3078,6 +3088,16 @@ message PodSpec { // +optional optional bool hostIPC = 13; + // 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. + // This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature. + // +k8s:conversion-gen=false + // +optional + optional bool shareProcessNamespace = 27; + // SecurityContext holds pod-level security attributes and common container settings. // Optional: Defaults to empty. See type description for default values of each field. // +optional @@ -4457,6 +4477,12 @@ message VolumeMount { optional string mountPropagation = 5; } +// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from. +message VolumeNodeAffinity { + // Required specifies hard node constraints that must be met. + optional NodeSelector required = 1; +} + // Projection that may be projected along with other supported volume types message VolumeProjection { // information about the secret data to project diff --git a/vendor/k8s.io/api/core/v1/types.go b/vendor/k8s.io/api/core/v1/types.go index 7e4ce23e..adcef7f5 100644 --- a/vendor/k8s.io/api/core/v1/types.go +++ b/vendor/k8s.io/api/core/v1/types.go @@ -446,7 +446,7 @@ type PersistentVolumeSource struct { // More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md // +optional StorageOS *StorageOSPersistentVolumeSource `json:"storageos,omitempty" protobuf:"bytes,21,opt,name=storageos"` - // CSI represents storage that handled by an external CSI driver + // CSI represents storage that handled by an external CSI driver (Beta feature). // +optional CSI *CSIPersistentVolumeSource `json:"csi,omitempty" protobuf:"bytes,22,opt,name=csi"` } @@ -511,8 +511,9 @@ type PersistentVolumeSpec struct { // +optional ClaimRef *ObjectReference `json:"claimRef,omitempty" protobuf:"bytes,4,opt,name=claimRef"` // What happens to a persistent volume when released from its claim. - // Valid options are Retain (default) and Recycle. - // Recycling must be supported by the volume plugin underlying this persistent volume. + // 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 // +optional PersistentVolumeReclaimPolicy PersistentVolumeReclaimPolicy `json:"persistentVolumeReclaimPolicy,omitempty" protobuf:"bytes,5,opt,name=persistentVolumeReclaimPolicy,casttype=PersistentVolumeReclaimPolicy"` @@ -530,6 +531,16 @@ type PersistentVolumeSpec struct { // This is an alpha feature and may change in the future. // +optional VolumeMode *PersistentVolumeMode `json:"volumeMode,omitempty" protobuf:"bytes,8,opt,name=volumeMode,casttype=PersistentVolumeMode"` + // NodeAffinity defines constraints that limit what nodes this volume can be accessed from. + // This field influences the scheduling of pods that use this volume. + // +optional + NodeAffinity *VolumeNodeAffinity `json:"nodeAffinity,omitempty" protobuf:"bytes,9,opt,name=nodeAffinity"` +} + +// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from. +type VolumeNodeAffinity struct { + // Required specifies hard node constraints that must be met. + Required *NodeSelector `json:"required,omitempty" protobuf:"bytes,1,opt,name=required"` } // PersistentVolumeReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes. @@ -1717,7 +1728,7 @@ type LocalVolumeSource struct { Path string `json:"path" protobuf:"bytes,1,opt,name=path"` } -// Represents storage that is managed by an external CSI volume driver +// Represents storage that is managed by an external CSI volume driver (Beta feature) type CSIPersistentVolumeSource struct { // Driver is the name of the driver to use for this volume. // Required. @@ -1738,6 +1749,10 @@ type CSIPersistentVolumeSource struct { // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. // +optional FSType string `json:"fsType,omitempty" protobuf:"bytes,4,opt,name=fsType"` + + // Attributes of the volume to publish. + // +optional + VolumeAttributes map[string]string `json:"volumeAttributes,omitempty" protobuf:"bytes,5,rep,name=volumeAttributes"` } // ContainerPort represents a network port in a single container. @@ -2851,6 +2866,15 @@ type PodSpec struct { // +k8s:conversion-gen=false // +optional HostIPC bool `json:"hostIPC,omitempty" protobuf:"varint,13,opt,name=hostIPC"` + // 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. + // This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature. + // +k8s:conversion-gen=false + // +optional + ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty" protobuf:"varint,27,opt,name=shareProcessNamespace"` // SecurityContext holds pod-level security attributes and common container settings. // Optional: Defaults to empty. See type description for default values of each field. // +optional @@ -4735,6 +4759,8 @@ const ( // HugePages request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) // As burst is not supported for HugePages, we would only quota its request, and ignore the limit. ResourceRequestsHugePagesPrefix = "requests.hugepages-" + // Default resource requests prefix + DefaultResourceRequestsPrefix = "requests." ) // A ResourceQuotaScope defines a filter that must match each object tracked by a quota diff --git a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go index 3edb05a6..56b2c469 100644 --- a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -117,11 +117,12 @@ func (Binding) SwaggerDoc() map[string]string { } var map_CSIPersistentVolumeSource = map[string]string{ - "": "Represents storage that is managed by an external CSI volume driver", - "driver": "Driver is the name of the driver to use for this volume. Required.", - "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.", - "readOnly": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "fsType": "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.", + "": "Represents storage that is managed by an external CSI volume driver (Beta feature)", + "driver": "Driver is the name of the driver to use for this volume. Required.", + "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.", + "readOnly": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", + "fsType": "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.", + "volumeAttributes": "Attributes of the volume to publish.", } func (CSIPersistentVolumeSource) SwaggerDoc() map[string]string { @@ -1276,7 +1277,7 @@ var map_PersistentVolumeSource = map[string]string{ "scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", "local": "Local represents directly-attached storage with node affinity", "storageos": "StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md", - "csi": "CSI represents storage that handled by an external CSI driver", + "csi": "CSI represents storage that handled by an external CSI driver (Beta feature).", } func (PersistentVolumeSource) SwaggerDoc() map[string]string { @@ -1288,10 +1289,11 @@ var map_PersistentVolumeSpec = map[string]string{ "capacity": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", "accessModes": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", "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", - "persistentVolumeReclaimPolicy": "What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", + "persistentVolumeReclaimPolicy": "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", "storageClassName": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", "mountOptions": "A 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", "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. This is an alpha feature and may change in the future.", + "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.", } func (PersistentVolumeSpec) SwaggerDoc() map[string]string { @@ -1505,6 +1507,7 @@ var map_PodSpec = map[string]string{ "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.", "hostPID": "Use the host's pid namespace. Optional: Default to false.", "hostIPC": "Use the host's ipc namespace. Optional: Default to false.", + "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. This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.", "securityContext": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.", "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. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", "hostname": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", @@ -2176,6 +2179,15 @@ func (VolumeMount) SwaggerDoc() map[string]string { return map_VolumeMount } +var map_VolumeNodeAffinity = map[string]string{ + "": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", + "required": "Required specifies hard node constraints that must be met.", +} + +func (VolumeNodeAffinity) SwaggerDoc() map[string]string { + return map_VolumeNodeAffinity +} + var map_VolumeProjection = map[string]string{ "": "Projection that may be projected along with other supported volume types", "secret": "information about the secret data to project", diff --git a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go index 50a44edc..2bbb71c7 100644 --- a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -249,6 +249,13 @@ func (in *Binding) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CSIPersistentVolumeSource) DeepCopyInto(out *CSIPersistentVolumeSource) { *out = *in + if in.VolumeAttributes != nil { + in, out := &in.VolumeAttributes, &out.VolumeAttributes + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } @@ -3300,7 +3307,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { *out = nil } else { *out = new(CSIPersistentVolumeSource) - **out = **in + (*in).DeepCopyInto(*out) } } return @@ -3355,6 +3362,15 @@ func (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) { **out = **in } } + if in.NodeAffinity != nil { + in, out := &in.NodeAffinity, &out.NodeAffinity + if *in == nil { + *out = nil + } else { + *out = new(VolumeNodeAffinity) + (*in).DeepCopyInto(*out) + } + } return } @@ -3945,6 +3961,15 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { **out = **in } } + if in.ShareProcessNamespace != nil { + in, out := &in.ShareProcessNamespace, &out.ShareProcessNamespace + if *in == nil { + *out = nil + } else { + *out = new(bool) + **out = **in + } + } if in.SecurityContext != nil { in, out := &in.SecurityContext, &out.SecurityContext if *in == nil { @@ -5572,6 +5597,31 @@ func (in *VolumeMount) DeepCopy() *VolumeMount { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeNodeAffinity) DeepCopyInto(out *VolumeNodeAffinity) { + *out = *in + if in.Required != nil { + in, out := &in.Required, &out.Required + if *in == nil { + *out = nil + } else { + *out = new(NodeSelector) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeAffinity. +func (in *VolumeNodeAffinity) DeepCopy() *VolumeNodeAffinity { + if in == nil { + return nil + } + out := new(VolumeNodeAffinity) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VolumeProjection) DeepCopyInto(out *VolumeProjection) { *out = *in diff --git a/vendor/k8s.io/api/policy/v1beta1/BUILD b/vendor/k8s.io/api/policy/v1beta1/BUILD index 6e4a07de..d55d68e5 100644 --- a/vendor/k8s.io/api/policy/v1beta1/BUILD +++ b/vendor/k8s.io/api/policy/v1beta1/BUILD @@ -19,6 +19,7 @@ go_library( deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/api/policy/v1beta1/generated.pb.go b/vendor/k8s.io/api/policy/v1beta1/generated.pb.go index 4ed4d29c..24bbe897 100644 --- a/vendor/k8s.io/api/policy/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/policy/v1beta1/generated.pb.go @@ -25,11 +25,22 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/policy/v1beta1/generated.proto It has these top-level messages: + AllowedFlexVolume + AllowedHostPath Eviction + FSGroupStrategyOptions + HostPortRange + IDRange PodDisruptionBudget PodDisruptionBudgetList PodDisruptionBudgetSpec PodDisruptionBudgetStatus + PodSecurityPolicy + PodSecurityPolicyList + PodSecurityPolicySpec + RunAsUserStrategyOptions + SELinuxStrategyOptions + SupplementalGroupsStrategyOptions */ package v1beta1 @@ -37,6 +48,7 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import k8s_io_api_core_v1 "k8s.io/api/core/v1" import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -59,35 +71,138 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +func (m *AllowedFlexVolume) Reset() { *m = AllowedFlexVolume{} } +func (*AllowedFlexVolume) ProtoMessage() {} +func (*AllowedFlexVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *AllowedHostPath) Reset() { *m = AllowedHostPath{} } +func (*AllowedHostPath) ProtoMessage() {} +func (*AllowedHostPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + func (m *Eviction) Reset() { *m = Eviction{} } func (*Eviction) ProtoMessage() {} -func (*Eviction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (*Eviction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *FSGroupStrategyOptions) Reset() { *m = FSGroupStrategyOptions{} } +func (*FSGroupStrategyOptions) ProtoMessage() {} +func (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *HostPortRange) Reset() { *m = HostPortRange{} } +func (*HostPortRange) ProtoMessage() {} +func (*HostPortRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } + +func (m *IDRange) Reset() { *m = IDRange{} } +func (*IDRange) ProtoMessage() {} +func (*IDRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *PodDisruptionBudget) Reset() { *m = PodDisruptionBudget{} } func (*PodDisruptionBudget) ProtoMessage() {} -func (*PodDisruptionBudget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*PodDisruptionBudget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *PodDisruptionBudgetList) Reset() { *m = PodDisruptionBudgetList{} } func (*PodDisruptionBudgetList) ProtoMessage() {} -func (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *PodDisruptionBudgetSpec) Reset() { *m = PodDisruptionBudgetSpec{} } func (*PodDisruptionBudgetSpec) ProtoMessage() {} -func (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *PodDisruptionBudgetStatus) Reset() { *m = PodDisruptionBudgetStatus{} } func (*PodDisruptionBudgetStatus) ProtoMessage() {} func (*PodDisruptionBudgetStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{4} + return fileDescriptorGenerated, []int{9} +} + +func (m *PodSecurityPolicy) Reset() { *m = PodSecurityPolicy{} } +func (*PodSecurityPolicy) ProtoMessage() {} +func (*PodSecurityPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } + +func (m *PodSecurityPolicyList) Reset() { *m = PodSecurityPolicyList{} } +func (*PodSecurityPolicyList) ProtoMessage() {} +func (*PodSecurityPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } + +func (m *PodSecurityPolicySpec) Reset() { *m = PodSecurityPolicySpec{} } +func (*PodSecurityPolicySpec) ProtoMessage() {} +func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } + +func (m *RunAsUserStrategyOptions) Reset() { *m = RunAsUserStrategyOptions{} } +func (*RunAsUserStrategyOptions) ProtoMessage() {} +func (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{13} +} + +func (m *SELinuxStrategyOptions) Reset() { *m = SELinuxStrategyOptions{} } +func (*SELinuxStrategyOptions) ProtoMessage() {} +func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } + +func (m *SupplementalGroupsStrategyOptions) Reset() { *m = SupplementalGroupsStrategyOptions{} } +func (*SupplementalGroupsStrategyOptions) ProtoMessage() {} +func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{15} } func init() { + proto.RegisterType((*AllowedFlexVolume)(nil), "k8s.io.api.policy.v1beta1.AllowedFlexVolume") + proto.RegisterType((*AllowedHostPath)(nil), "k8s.io.api.policy.v1beta1.AllowedHostPath") proto.RegisterType((*Eviction)(nil), "k8s.io.api.policy.v1beta1.Eviction") + proto.RegisterType((*FSGroupStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.FSGroupStrategyOptions") + proto.RegisterType((*HostPortRange)(nil), "k8s.io.api.policy.v1beta1.HostPortRange") + proto.RegisterType((*IDRange)(nil), "k8s.io.api.policy.v1beta1.IDRange") proto.RegisterType((*PodDisruptionBudget)(nil), "k8s.io.api.policy.v1beta1.PodDisruptionBudget") proto.RegisterType((*PodDisruptionBudgetList)(nil), "k8s.io.api.policy.v1beta1.PodDisruptionBudgetList") proto.RegisterType((*PodDisruptionBudgetSpec)(nil), "k8s.io.api.policy.v1beta1.PodDisruptionBudgetSpec") proto.RegisterType((*PodDisruptionBudgetStatus)(nil), "k8s.io.api.policy.v1beta1.PodDisruptionBudgetStatus") + proto.RegisterType((*PodSecurityPolicy)(nil), "k8s.io.api.policy.v1beta1.PodSecurityPolicy") + proto.RegisterType((*PodSecurityPolicyList)(nil), "k8s.io.api.policy.v1beta1.PodSecurityPolicyList") + proto.RegisterType((*PodSecurityPolicySpec)(nil), "k8s.io.api.policy.v1beta1.PodSecurityPolicySpec") + proto.RegisterType((*RunAsUserStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.RunAsUserStrategyOptions") + proto.RegisterType((*SELinuxStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.SELinuxStrategyOptions") + proto.RegisterType((*SupplementalGroupsStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.SupplementalGroupsStrategyOptions") } +func (m *AllowedFlexVolume) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AllowedFlexVolume) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver))) + i += copy(dAtA[i:], m.Driver) + return i, nil +} + +func (m *AllowedHostPath) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AllowedHostPath) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.PathPrefix))) + i += copy(dAtA[i:], m.PathPrefix) + return i, nil +} + func (m *Eviction) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -124,6 +239,88 @@ func (m *Eviction) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *FSGroupStrategyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FSGroupStrategyOptions) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule))) + i += copy(dAtA[i:], m.Rule) + if len(m.Ranges) > 0 { + for _, msg := range m.Ranges { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *HostPortRange) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HostPortRange) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Min)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Max)) + return i, nil +} + +func (m *IDRange) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IDRange) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Min)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Max)) + return i, nil +} + func (m *PodDisruptionBudget) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -316,6 +513,390 @@ func (m *PodDisruptionBudgetStatus) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *PodSecurityPolicy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodSecurityPolicy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n11, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n12, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + return i, nil +} + +func (m *PodSecurityPolicyList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodSecurityPolicyList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n13, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *PodSecurityPolicySpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + if m.Privileged { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if len(m.DefaultAddCapabilities) > 0 { + for _, s := range m.DefaultAddCapabilities { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.RequiredDropCapabilities) > 0 { + for _, s := range m.RequiredDropCapabilities { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.AllowedCapabilities) > 0 { + for _, s := range m.AllowedCapabilities { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Volumes) > 0 { + for _, s := range m.Volumes { + dAtA[i] = 0x2a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + dAtA[i] = 0x30 + i++ + if m.HostNetwork { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if len(m.HostPorts) > 0 { + for _, msg := range m.HostPorts { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x40 + i++ + if m.HostPID { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + dAtA[i] = 0x48 + i++ + if m.HostIPC { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + dAtA[i] = 0x52 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SELinux.Size())) + n14, err := m.SELinux.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RunAsUser.Size())) + n15, err := m.RunAsUser.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups.Size())) + n16, err := m.SupplementalGroups.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.FSGroup.Size())) + n17, err := m.FSGroup.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + dAtA[i] = 0x70 + i++ + if m.ReadOnlyRootFilesystem { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if m.DefaultAllowPrivilegeEscalation != nil { + dAtA[i] = 0x78 + i++ + if *m.DefaultAllowPrivilegeEscalation { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.AllowPrivilegeEscalation != nil { + dAtA[i] = 0x80 + i++ + dAtA[i] = 0x1 + i++ + if *m.AllowPrivilegeEscalation { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if len(m.AllowedHostPaths) > 0 { + for _, msg := range m.AllowedHostPaths { + dAtA[i] = 0x8a + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.AllowedFlexVolumes) > 0 { + for _, msg := range m.AllowedFlexVolumes { + dAtA[i] = 0x92 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RunAsUserStrategyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RunAsUserStrategyOptions) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule))) + i += copy(dAtA[i:], m.Rule) + if len(m.Ranges) > 0 { + for _, msg := range m.Ranges { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *SELinuxStrategyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SELinuxStrategyOptions) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule))) + i += copy(dAtA[i:], m.Rule) + if m.SELinuxOptions != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) + n18, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + } + return i, nil +} + +func (m *SupplementalGroupsStrategyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SupplementalGroupsStrategyOptions) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule))) + i += copy(dAtA[i:], m.Rule) + if len(m.Ranges) > 0 { + for _, msg := range m.Ranges { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) dAtA[offset+1] = uint8(v >> 8) @@ -343,6 +924,22 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } +func (m *AllowedFlexVolume) Size() (n int) { + var l int + _ = l + l = len(m.Driver) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *AllowedHostPath) Size() (n int) { + var l int + _ = l + l = len(m.PathPrefix) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *Eviction) Size() (n int) { var l int _ = l @@ -355,6 +952,36 @@ func (m *Eviction) Size() (n int) { return n } +func (m *FSGroupStrategyOptions) Size() (n int) { + var l int + _ = l + l = len(m.Rule) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Ranges) > 0 { + for _, e := range m.Ranges { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *HostPortRange) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Min)) + n += 1 + sovGenerated(uint64(m.Max)) + return n +} + +func (m *IDRange) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Min)) + n += 1 + sovGenerated(uint64(m.Max)) + return n +} + func (m *PodDisruptionBudget) Size() (n int) { var l int _ = l @@ -419,6 +1046,137 @@ func (m *PodDisruptionBudgetStatus) Size() (n int) { return n } +func (m *PodSecurityPolicy) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PodSecurityPolicyList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PodSecurityPolicySpec) Size() (n int) { + var l int + _ = l + n += 2 + if len(m.DefaultAddCapabilities) > 0 { + for _, s := range m.DefaultAddCapabilities { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.RequiredDropCapabilities) > 0 { + for _, s := range m.RequiredDropCapabilities { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.AllowedCapabilities) > 0 { + for _, s := range m.AllowedCapabilities { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Volumes) > 0 { + for _, s := range m.Volumes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + if len(m.HostPorts) > 0 { + for _, e := range m.HostPorts { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + n += 2 + l = m.SELinux.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.RunAsUser.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.SupplementalGroups.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.FSGroup.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.DefaultAllowPrivilegeEscalation != nil { + n += 2 + } + if m.AllowPrivilegeEscalation != nil { + n += 3 + } + if len(m.AllowedHostPaths) > 0 { + for _, e := range m.AllowedHostPaths { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.AllowedFlexVolumes) > 0 { + for _, e := range m.AllowedFlexVolumes { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RunAsUserStrategyOptions) Size() (n int) { + var l int + _ = l + l = len(m.Rule) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Ranges) > 0 { + for _, e := range m.Ranges { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SELinuxStrategyOptions) Size() (n int) { + var l int + _ = l + l = len(m.Rule) + n += 1 + l + sovGenerated(uint64(l)) + if m.SELinuxOptions != nil { + l = m.SELinuxOptions.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SupplementalGroupsStrategyOptions) Size() (n int) { + var l int + _ = l + l = len(m.Rule) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Ranges) > 0 { + for _, e := range m.Ranges { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func sovGenerated(x uint64) (n int) { for { n++ @@ -432,6 +1190,26 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (this *AllowedFlexVolume) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AllowedFlexVolume{`, + `Driver:` + fmt.Sprintf("%v", this.Driver) + `,`, + `}`, + }, "") + return s +} +func (this *AllowedHostPath) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AllowedHostPath{`, + `PathPrefix:` + fmt.Sprintf("%v", this.PathPrefix) + `,`, + `}`, + }, "") + return s +} func (this *Eviction) String() string { if this == nil { return "nil" @@ -443,6 +1221,39 @@ func (this *Eviction) String() string { }, "") return s } +func (this *FSGroupStrategyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FSGroupStrategyOptions{`, + `Rule:` + fmt.Sprintf("%v", this.Rule) + `,`, + `Ranges:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Ranges), "IDRange", "IDRange", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *HostPortRange) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HostPortRange{`, + `Min:` + fmt.Sprintf("%v", this.Min) + `,`, + `Max:` + fmt.Sprintf("%v", this.Max) + `,`, + `}`, + }, "") + return s +} +func (this *IDRange) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&IDRange{`, + `Min:` + fmt.Sprintf("%v", this.Min) + `,`, + `Max:` + fmt.Sprintf("%v", this.Max) + `,`, + `}`, + }, "") + return s +} func (this *PodDisruptionBudget) String() string { if this == nil { return "nil" @@ -503,6 +1314,88 @@ func (this *PodDisruptionBudgetStatus) String() string { }, "") return s } +func (this *PodSecurityPolicy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodSecurityPolicy{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PodSecurityPolicySpec", "PodSecurityPolicySpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodSecurityPolicyList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodSecurityPolicyList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "PodSecurityPolicy", "PodSecurityPolicy", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodSecurityPolicySpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodSecurityPolicySpec{`, + `Privileged:` + fmt.Sprintf("%v", this.Privileged) + `,`, + `DefaultAddCapabilities:` + fmt.Sprintf("%v", this.DefaultAddCapabilities) + `,`, + `RequiredDropCapabilities:` + fmt.Sprintf("%v", this.RequiredDropCapabilities) + `,`, + `AllowedCapabilities:` + fmt.Sprintf("%v", this.AllowedCapabilities) + `,`, + `Volumes:` + fmt.Sprintf("%v", this.Volumes) + `,`, + `HostNetwork:` + fmt.Sprintf("%v", this.HostNetwork) + `,`, + `HostPorts:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.HostPorts), "HostPortRange", "HostPortRange", 1), `&`, ``, 1) + `,`, + `HostPID:` + fmt.Sprintf("%v", this.HostPID) + `,`, + `HostIPC:` + fmt.Sprintf("%v", this.HostIPC) + `,`, + `SELinux:` + strings.Replace(strings.Replace(this.SELinux.String(), "SELinuxStrategyOptions", "SELinuxStrategyOptions", 1), `&`, ``, 1) + `,`, + `RunAsUser:` + strings.Replace(strings.Replace(this.RunAsUser.String(), "RunAsUserStrategyOptions", "RunAsUserStrategyOptions", 1), `&`, ``, 1) + `,`, + `SupplementalGroups:` + strings.Replace(strings.Replace(this.SupplementalGroups.String(), "SupplementalGroupsStrategyOptions", "SupplementalGroupsStrategyOptions", 1), `&`, ``, 1) + `,`, + `FSGroup:` + strings.Replace(strings.Replace(this.FSGroup.String(), "FSGroupStrategyOptions", "FSGroupStrategyOptions", 1), `&`, ``, 1) + `,`, + `ReadOnlyRootFilesystem:` + fmt.Sprintf("%v", this.ReadOnlyRootFilesystem) + `,`, + `DefaultAllowPrivilegeEscalation:` + valueToStringGenerated(this.DefaultAllowPrivilegeEscalation) + `,`, + `AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`, + `AllowedHostPaths:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedHostPaths), "AllowedHostPath", "AllowedHostPath", 1), `&`, ``, 1) + `,`, + `AllowedFlexVolumes:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedFlexVolumes), "AllowedFlexVolume", "AllowedFlexVolume", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RunAsUserStrategyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RunAsUserStrategyOptions{`, + `Rule:` + fmt.Sprintf("%v", this.Rule) + `,`, + `Ranges:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Ranges), "IDRange", "IDRange", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *SELinuxStrategyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SELinuxStrategyOptions{`, + `Rule:` + fmt.Sprintf("%v", this.Rule) + `,`, + `SELinuxOptions:` + strings.Replace(fmt.Sprintf("%v", this.SELinuxOptions), "SELinuxOptions", "k8s_io_api_core_v1.SELinuxOptions", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SupplementalGroupsStrategyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SupplementalGroupsStrategyOptions{`, + `Rule:` + fmt.Sprintf("%v", this.Rule) + `,`, + `Ranges:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Ranges), "IDRange", "IDRange", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} func valueToStringGenerated(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -511,6 +1404,164 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } +func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllowedFlexVolume: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllowedFlexVolume: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Driver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Driver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllowedHostPath: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllowedHostPath: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PathPrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PathPrefix = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Eviction) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -624,6 +1675,292 @@ func (m *Eviction) Unmarshal(dAtA []byte) error { } return nil } +func (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FSGroupStrategyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FSGroupStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rule = FSGroupStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ranges = append(m.Ranges, IDRange{}) + if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HostPortRange) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HostPortRange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HostPortRange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Min", wireType) + } + m.Min = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Min |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType) + } + m.Max = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Max |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IDRange) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IDRange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IDRange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Min", wireType) + } + m.Min = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Min |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType) + } + m.Max = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Max |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1290,6 +2627,1080 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { } return nil } +func (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodSecurityPolicy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodSecurityPolicy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodSecurityPolicyList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodSecurityPolicyList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodSecurityPolicyList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, PodSecurityPolicy{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodSecurityPolicySpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodSecurityPolicySpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Privileged", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Privileged = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultAddCapabilities", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultAddCapabilities = append(m.DefaultAddCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredDropCapabilities", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RequiredDropCapabilities = append(m.RequiredDropCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedCapabilities", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedCapabilities = append(m.AllowedCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Volumes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Volumes = append(m.Volumes, FSType(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HostNetwork", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.HostNetwork = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HostPorts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HostPorts = append(m.HostPorts, HostPortRange{}) + if err := m.HostPorts[len(m.HostPorts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HostPID", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.HostPID = bool(v != 0) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HostIPC", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.HostIPC = bool(v != 0) + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SELinux", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SELinux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunAsUser", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RunAsUser.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SupplementalGroups", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SupplementalGroups.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FSGroup", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.FSGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnlyRootFilesystem", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnlyRootFilesystem = bool(v != 0) + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultAllowPrivilegeEscalation", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.DefaultAllowPrivilegeEscalation = &b + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowPrivilegeEscalation", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.AllowPrivilegeEscalation = &b + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedHostPaths", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedHostPaths = append(m.AllowedHostPaths, AllowedHostPath{}) + if err := m.AllowedHostPaths[len(m.AllowedHostPaths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedFlexVolumes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedFlexVolumes = append(m.AllowedFlexVolumes, AllowedFlexVolume{}) + if err := m.AllowedFlexVolumes[len(m.AllowedFlexVolumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunAsUserStrategyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunAsUserStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rule = RunAsUserStrategy(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ranges = append(m.Ranges, IDRange{}) + if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SELinuxStrategyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SELinuxStrategyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SELinuxStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rule = SELinuxStrategy(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SELinuxOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SELinuxOptions == nil { + m.SELinuxOptions = &k8s_io_api_core_v1.SELinuxOptions{} + } + if err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SupplementalGroupsStrategyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SupplementalGroupsStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rule = SupplementalGroupsStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ranges = append(m.Ranges, IDRange{}) + if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipGenerated(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -1400,55 +3811,106 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 795 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0x41, 0x6f, 0xdc, 0x44, - 0x14, 0xc7, 0xd7, 0xd9, 0x6c, 0x08, 0xc3, 0xee, 0x2a, 0x0c, 0x14, 0xd2, 0x95, 0xf0, 0xa2, 0x3d, - 0x21, 0xa4, 0x8e, 0x49, 0x5b, 0xa1, 0x88, 0x03, 0xa2, 0x26, 0x51, 0x29, 0x6a, 0x94, 0x6a, 0x52, - 0x2e, 0xa8, 0x48, 0x8c, 0xed, 0x57, 0x67, 0x58, 0xdb, 0x63, 0xcd, 0x8c, 0x4d, 0xf7, 0xc6, 0x81, - 0x0f, 0xc0, 0xf7, 0xe0, 0x8b, 0xe4, 0x80, 0x50, 0x8f, 0x15, 0x87, 0x15, 0x31, 0xe2, 0x7b, 0x20, - 0xdb, 0xb3, 0x9b, 0xf5, 0xee, 0x46, 0xdd, 0xe6, 0xc0, 0xcd, 0xf3, 0xde, 0xfb, 0xff, 0x9e, 0xdf, - 0x7f, 0x9e, 0x8d, 0xdc, 0xf1, 0xa1, 0x22, 0x5c, 0x38, 0xe3, 0xcc, 0x03, 0x99, 0x80, 0x06, 0xe5, - 0xe4, 0x90, 0x04, 0x42, 0x3a, 0x26, 0xc1, 0x52, 0xee, 0xa4, 0x22, 0xe2, 0xfe, 0xc4, 0xc9, 0x0f, - 0x3c, 0xd0, 0xec, 0xc0, 0x09, 0x21, 0x01, 0xc9, 0x34, 0x04, 0x24, 0x95, 0x42, 0x0b, 0x7c, 0xbb, - 0x2e, 0x25, 0x2c, 0xe5, 0xa4, 0x2e, 0x25, 0xa6, 0x74, 0x70, 0x27, 0xe4, 0xfa, 0x3c, 0xf3, 0x88, - 0x2f, 0x62, 0x27, 0x14, 0xa1, 0x70, 0x2a, 0x85, 0x97, 0x3d, 0xaf, 0x4e, 0xd5, 0xa1, 0x7a, 0xaa, - 0x49, 0x83, 0xd1, 0x42, 0x53, 0x5f, 0x48, 0x70, 0xf2, 0x95, 0x6e, 0x83, 0xfb, 0x57, 0x35, 0x31, - 0xf3, 0xcf, 0x79, 0x02, 0x72, 0xe2, 0xa4, 0xe3, 0xb0, 0x0c, 0x28, 0x27, 0x06, 0xcd, 0xd6, 0xa9, - 0x9c, 0xeb, 0x54, 0x32, 0x4b, 0x34, 0x8f, 0x61, 0x45, 0xf0, 0xf9, 0xeb, 0x04, 0xca, 0x3f, 0x87, - 0x98, 0xad, 0xe8, 0xee, 0x5d, 0xa7, 0xcb, 0x34, 0x8f, 0x1c, 0x9e, 0x68, 0xa5, 0xe5, 0xb2, 0x68, - 0xf4, 0x97, 0x85, 0x76, 0x8f, 0x73, 0xee, 0x6b, 0x2e, 0x12, 0xfc, 0x23, 0xda, 0x2d, 0xa7, 0x08, - 0x98, 0x66, 0xfb, 0xd6, 0xc7, 0xd6, 0x27, 0xef, 0xdc, 0xfd, 0x8c, 0x5c, 0x39, 0x3c, 0x87, 0x92, - 0x74, 0x1c, 0x96, 0x01, 0x45, 0xca, 0x6a, 0x92, 0x1f, 0x90, 0x53, 0xef, 0x27, 0xf0, 0xf5, 0x09, - 0x68, 0xe6, 0xe2, 0x8b, 0xe9, 0xb0, 0x55, 0x4c, 0x87, 0xe8, 0x2a, 0x46, 0xe7, 0x54, 0x1c, 0xa1, - 0x5e, 0x00, 0x11, 0x68, 0x38, 0x4d, 0xcb, 0x8e, 0x6a, 0x7f, 0xab, 0x6a, 0x73, 0x6f, 0xb3, 0x36, - 0x47, 0x8b, 0x52, 0xf7, 0xdd, 0x62, 0x3a, 0xec, 0x35, 0x42, 0xb4, 0x09, 0x1f, 0xfd, 0xbe, 0x85, - 0xde, 0x7b, 0x22, 0x82, 0x23, 0xae, 0x64, 0x56, 0x85, 0xdc, 0x2c, 0x08, 0x41, 0xff, 0x0f, 0x73, - 0x3e, 0x45, 0xdb, 0x2a, 0x05, 0xdf, 0x8c, 0x77, 0x97, 0x5c, 0xbb, 0xa7, 0x64, 0xcd, 0xfb, 0x9d, - 0xa5, 0xe0, 0xbb, 0x5d, 0xc3, 0xdf, 0x2e, 0x4f, 0xb4, 0xa2, 0xe1, 0x67, 0x68, 0x47, 0x69, 0xa6, - 0x33, 0xb5, 0xdf, 0xae, 0xb8, 0xf7, 0xdf, 0x90, 0x5b, 0x69, 0xdd, 0xbe, 0x21, 0xef, 0xd4, 0x67, - 0x6a, 0x98, 0xa3, 0x3f, 0x2c, 0xf4, 0xe1, 0x1a, 0xd5, 0x63, 0xae, 0x34, 0x7e, 0xb6, 0xe2, 0x18, - 0xd9, 0xcc, 0xb1, 0x52, 0x5d, 0xf9, 0xb5, 0x67, 0xba, 0xee, 0xce, 0x22, 0x0b, 0x6e, 0x9d, 0xa1, - 0x0e, 0xd7, 0x10, 0x97, 0xdb, 0xd0, 0x5e, 0x42, 0x6f, 0x30, 0x96, 0xdb, 0x33, 0xe8, 0xce, 0xa3, - 0x12, 0x42, 0x6b, 0xd6, 0xe8, 0xcf, 0xad, 0xb5, 0xe3, 0x94, 0x76, 0xe2, 0xe7, 0xa8, 0x1b, 0xf3, - 0xe4, 0x41, 0xce, 0x78, 0xc4, 0xbc, 0x08, 0x5e, 0xbb, 0x04, 0xe5, 0x17, 0x44, 0xea, 0x2f, 0x88, - 0x3c, 0x4a, 0xf4, 0xa9, 0x3c, 0xd3, 0x92, 0x27, 0xa1, 0xbb, 0x57, 0x4c, 0x87, 0xdd, 0x93, 0x05, - 0x12, 0x6d, 0x70, 0xf1, 0x0f, 0x68, 0x57, 0x41, 0x04, 0xbe, 0x16, 0xf2, 0xcd, 0x36, 0xfd, 0x31, - 0xf3, 0x20, 0x3a, 0x33, 0x52, 0xb7, 0x5b, 0xfa, 0x36, 0x3b, 0xd1, 0x39, 0x12, 0x47, 0xa8, 0x1f, - 0xb3, 0x17, 0xdf, 0x25, 0x6c, 0x3e, 0x48, 0xfb, 0x86, 0x83, 0xe0, 0x62, 0x3a, 0xec, 0x9f, 0x34, - 0x58, 0x74, 0x89, 0x3d, 0xfa, 0x77, 0x1b, 0xdd, 0xbe, 0x76, 0xab, 0xf0, 0xb7, 0x08, 0x0b, 0x4f, - 0x81, 0xcc, 0x21, 0x78, 0x58, 0xff, 0x63, 0xb8, 0x48, 0x2a, 0x63, 0xdb, 0xee, 0xc0, 0x5c, 0x10, - 0x3e, 0x5d, 0xa9, 0xa0, 0x6b, 0x54, 0xf8, 0x57, 0x0b, 0xf5, 0x82, 0xba, 0x0d, 0x04, 0x4f, 0x44, - 0x30, 0x5b, 0x8c, 0x87, 0x37, 0xd9, 0x77, 0x72, 0xb4, 0x48, 0x3a, 0x4e, 0xb4, 0x9c, 0xb8, 0xb7, - 0xcc, 0x0b, 0xf5, 0x1a, 0x39, 0xda, 0x6c, 0x8a, 0x4f, 0x10, 0x0e, 0xe6, 0x48, 0xf5, 0x20, 0x8a, - 0xc4, 0xcf, 0x10, 0x54, 0x16, 0x77, 0xdc, 0x8f, 0x0c, 0xe1, 0x56, 0xa3, 0xef, 0xac, 0x88, 0xae, - 0x11, 0xe2, 0x2f, 0x51, 0xdf, 0xcf, 0xa4, 0x84, 0x44, 0x7f, 0x03, 0x2c, 0xd2, 0xe7, 0x93, 0xfd, - 0xed, 0x0a, 0xf5, 0x81, 0x41, 0xf5, 0xbf, 0x6e, 0x64, 0xe9, 0x52, 0x75, 0xa9, 0x0f, 0x40, 0x71, - 0x09, 0xc1, 0x4c, 0xdf, 0x69, 0xea, 0x8f, 0x1a, 0x59, 0xba, 0x54, 0x8d, 0x0f, 0x51, 0x17, 0x5e, - 0xa4, 0xe0, 0xcf, 0x3c, 0xdd, 0xa9, 0xd4, 0xef, 0x1b, 0x75, 0xf7, 0x78, 0x21, 0x47, 0x1b, 0x95, - 0x83, 0x08, 0xe1, 0x55, 0x13, 0xf1, 0x1e, 0x6a, 0x8f, 0x61, 0x52, 0x5d, 0xf1, 0xdb, 0xb4, 0x7c, - 0xc4, 0x5f, 0xa1, 0x4e, 0xce, 0xa2, 0x0c, 0xcc, 0xae, 0x7f, 0xba, 0xd9, 0xae, 0x3f, 0xe5, 0x31, - 0xd0, 0x5a, 0xf8, 0xc5, 0xd6, 0xa1, 0xe5, 0xde, 0xb9, 0xb8, 0xb4, 0x5b, 0x2f, 0x2f, 0xed, 0xd6, - 0xab, 0x4b, 0xbb, 0xf5, 0x4b, 0x61, 0x5b, 0x17, 0x85, 0x6d, 0xbd, 0x2c, 0x6c, 0xeb, 0x55, 0x61, - 0x5b, 0x7f, 0x17, 0xb6, 0xf5, 0xdb, 0x3f, 0x76, 0xeb, 0xfb, 0xb7, 0xcc, 0xc5, 0xff, 0x17, 0x00, - 0x00, 0xff, 0xff, 0x00, 0xc0, 0xac, 0xb5, 0x48, 0x08, 0x00, 0x00, + // 1605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4f, 0x6f, 0x1b, 0xb9, + 0x15, 0xf7, 0x58, 0xb6, 0x65, 0xd3, 0xf2, 0x3f, 0xba, 0x76, 0x27, 0x46, 0x23, 0x35, 0x0a, 0x50, + 0xa4, 0x41, 0x33, 0x8a, 0x9d, 0xa4, 0x35, 0x9a, 0xb6, 0xa8, 0xc7, 0xf2, 0xbf, 0x20, 0xae, 0x55, + 0x2a, 0x09, 0xda, 0x22, 0x2d, 0x4a, 0x69, 0x68, 0x89, 0xf1, 0x68, 0x66, 0x4a, 0x72, 0x14, 0xe9, + 0xd6, 0x43, 0x0f, 0x3d, 0xf6, 0x0b, 0xf4, 0x13, 0x14, 0x3d, 0xed, 0x97, 0xf0, 0x02, 0x8b, 0x45, + 0x8e, 0xc1, 0x1e, 0x84, 0x8d, 0x16, 0xfb, 0x25, 0x72, 0x5a, 0x0c, 0xc5, 0x91, 0x34, 0x33, 0x92, + 0x1c, 0x07, 0x48, 0x6e, 0x1a, 0xbe, 0xdf, 0xef, 0xf7, 0x1e, 0x1f, 0xc9, 0xc7, 0x47, 0x01, 0xf3, + 0x62, 0x97, 0x1b, 0xd4, 0x2d, 0x5c, 0xf8, 0x15, 0xc2, 0x1c, 0x22, 0x08, 0x2f, 0x34, 0x89, 0x63, + 0xb9, 0xac, 0xa0, 0x0c, 0xd8, 0xa3, 0x05, 0xcf, 0xb5, 0x69, 0xb5, 0x5d, 0x68, 0x6e, 0x57, 0x88, + 0xc0, 0xdb, 0x85, 0x1a, 0x71, 0x08, 0xc3, 0x82, 0x58, 0x86, 0xc7, 0x5c, 0xe1, 0xc2, 0x1b, 0x3d, + 0xa8, 0x81, 0x3d, 0x6a, 0xf4, 0xa0, 0x86, 0x82, 0x6e, 0xdd, 0xab, 0x51, 0x51, 0xf7, 0x2b, 0x46, + 0xd5, 0x6d, 0x14, 0x6a, 0x6e, 0xcd, 0x2d, 0x48, 0x46, 0xc5, 0x3f, 0x97, 0x5f, 0xf2, 0x43, 0xfe, + 0xea, 0x29, 0x6d, 0xe5, 0x87, 0x9c, 0x56, 0x5d, 0x46, 0x0a, 0xcd, 0x84, 0xb7, 0xad, 0x87, 0x03, + 0x4c, 0x03, 0x57, 0xeb, 0xd4, 0x21, 0xac, 0x5d, 0xf0, 0x2e, 0x6a, 0xc1, 0x00, 0x2f, 0x34, 0x88, + 0xc0, 0xa3, 0x58, 0x85, 0x71, 0x2c, 0xe6, 0x3b, 0x82, 0x36, 0x48, 0x82, 0xf0, 0xcb, 0xab, 0x08, + 0xbc, 0x5a, 0x27, 0x0d, 0x9c, 0xe0, 0x3d, 0x18, 0xc7, 0xf3, 0x05, 0xb5, 0x0b, 0xd4, 0x11, 0x5c, + 0xb0, 0x38, 0x29, 0xff, 0x18, 0xac, 0xed, 0xd9, 0xb6, 0xfb, 0x9a, 0x58, 0x87, 0x36, 0x69, 0xbd, + 0x70, 0x6d, 0xbf, 0x41, 0xe0, 0xcf, 0xc0, 0x9c, 0xc5, 0x68, 0x93, 0x30, 0x5d, 0xfb, 0xa9, 0x76, + 0x67, 0xc1, 0x5c, 0xbe, 0xec, 0xe4, 0xa6, 0xba, 0x9d, 0xdc, 0x5c, 0x51, 0x8e, 0x22, 0x65, 0xcd, + 0x1f, 0x80, 0x15, 0x45, 0x3e, 0x76, 0xb9, 0x28, 0x61, 0x51, 0x87, 0x3b, 0x00, 0x78, 0x58, 0xd4, + 0x4b, 0x8c, 0x9c, 0xd3, 0x96, 0xa2, 0x43, 0x45, 0x07, 0xa5, 0xbe, 0x05, 0x0d, 0xa1, 0xf2, 0xdf, + 0x68, 0x60, 0xfe, 0xa0, 0x49, 0xab, 0x82, 0xba, 0x0e, 0xfc, 0x3b, 0x98, 0x0f, 0x32, 0x69, 0x61, + 0x81, 0x25, 0x7d, 0x71, 0xe7, 0xbe, 0x31, 0x58, 0xe5, 0xfe, 0xc4, 0x0c, 0xef, 0xa2, 0x16, 0x0c, + 0x70, 0x23, 0x40, 0x1b, 0xcd, 0x6d, 0xe3, 0xac, 0xf2, 0x8a, 0x54, 0xc5, 0x29, 0x11, 0x78, 0xe0, + 0x70, 0x30, 0x86, 0xfa, 0xaa, 0xd0, 0x06, 0x4b, 0x16, 0xb1, 0x89, 0x20, 0x67, 0x5e, 0xe0, 0x91, + 0xeb, 0xd3, 0xd2, 0xcd, 0x83, 0x0f, 0x73, 0x53, 0x1c, 0xa6, 0x9a, 0x6b, 0xdd, 0x4e, 0x6e, 0x29, + 0x32, 0x84, 0xa2, 0xe2, 0xf9, 0xff, 0x6a, 0x60, 0xf3, 0xb0, 0x7c, 0xc4, 0x5c, 0xdf, 0x2b, 0x8b, + 0x20, 0xf3, 0xb5, 0xb6, 0x32, 0xc1, 0x5f, 0x81, 0x19, 0xe6, 0xdb, 0x44, 0x65, 0xe9, 0xb6, 0x0a, + 0x7a, 0x06, 0xf9, 0x36, 0x79, 0xdf, 0xc9, 0xad, 0xc7, 0x58, 0xcf, 0xda, 0x1e, 0x41, 0x92, 0x00, + 0x9f, 0x80, 0x39, 0x86, 0x9d, 0x1a, 0x09, 0x42, 0x4f, 0xdd, 0x59, 0xdc, 0xc9, 0x1b, 0x63, 0xcf, + 0x81, 0x71, 0x52, 0x44, 0x01, 0x74, 0xb0, 0x86, 0xf2, 0x93, 0x23, 0xa5, 0x90, 0x3f, 0x05, 0x4b, + 0x72, 0xf1, 0x5c, 0x26, 0xa4, 0x05, 0xde, 0x04, 0xa9, 0x06, 0x75, 0x64, 0x50, 0xb3, 0xe6, 0xa2, + 0x62, 0xa5, 0x4e, 0xa9, 0x83, 0x82, 0x71, 0x69, 0xc6, 0x2d, 0x99, 0xb3, 0x61, 0x33, 0x6e, 0xa1, + 0x60, 0x3c, 0x7f, 0x04, 0xd2, 0xca, 0xe3, 0xb0, 0x50, 0x6a, 0xb2, 0x50, 0x6a, 0x84, 0xd0, 0xff, + 0xa6, 0xc1, 0x7a, 0xc9, 0xb5, 0x8a, 0x94, 0x33, 0x5f, 0xe6, 0xcb, 0xf4, 0xad, 0x1a, 0x11, 0x9f, + 0x61, 0x7f, 0x3c, 0x03, 0x33, 0xdc, 0x23, 0x55, 0xb5, 0x2d, 0x76, 0x26, 0xe4, 0x76, 0x44, 0x7c, + 0x65, 0x8f, 0x54, 0xcd, 0x4c, 0xb8, 0x94, 0xc1, 0x17, 0x92, 0x6a, 0xf0, 0x25, 0x98, 0xe3, 0x02, + 0x0b, 0x9f, 0xeb, 0x29, 0xa9, 0xfb, 0xf0, 0x9a, 0xba, 0x92, 0x3b, 0x58, 0xc5, 0xde, 0x37, 0x52, + 0x9a, 0xf9, 0xaf, 0x34, 0xf0, 0xe3, 0x11, 0xac, 0xa7, 0x94, 0x0b, 0xf8, 0x32, 0x91, 0x31, 0xe3, + 0xc3, 0x32, 0x16, 0xb0, 0x65, 0xbe, 0x56, 0x95, 0xd7, 0xf9, 0x70, 0x64, 0x28, 0x5b, 0x65, 0x30, + 0x4b, 0x05, 0x69, 0x84, 0x5b, 0xd1, 0xb8, 0xde, 0xb4, 0xcc, 0x25, 0x25, 0x3d, 0x7b, 0x12, 0x88, + 0xa0, 0x9e, 0x56, 0xfe, 0xeb, 0xe9, 0x91, 0xd3, 0x09, 0xd2, 0x09, 0xcf, 0x41, 0xa6, 0x41, 0x9d, + 0xbd, 0x26, 0xa6, 0x36, 0xae, 0xa8, 0xd3, 0x33, 0x69, 0x13, 0x04, 0xd5, 0xcf, 0xe8, 0x55, 0x3f, + 0xe3, 0xc4, 0x11, 0x67, 0xac, 0x2c, 0x18, 0x75, 0x6a, 0xe6, 0x6a, 0xb7, 0x93, 0xcb, 0x9c, 0x0e, + 0x29, 0xa1, 0x88, 0x2e, 0xfc, 0x2b, 0x98, 0xe7, 0xc4, 0x26, 0x55, 0xe1, 0xb2, 0xeb, 0x55, 0x88, + 0xa7, 0xb8, 0x42, 0xec, 0xb2, 0xa2, 0x9a, 0x99, 0x20, 0x6f, 0xe1, 0x17, 0xea, 0x4b, 0x42, 0x1b, + 0x2c, 0x37, 0x70, 0xeb, 0xb9, 0x83, 0xfb, 0x13, 0x49, 0x7d, 0xe4, 0x44, 0x60, 0xb7, 0x93, 0x5b, + 0x3e, 0x8d, 0x68, 0xa1, 0x98, 0x76, 0xfe, 0xfb, 0x19, 0x70, 0x63, 0xec, 0xae, 0x82, 0x4f, 0x00, + 0x74, 0x2b, 0x9c, 0xb0, 0x26, 0xb1, 0x8e, 0x7a, 0xf7, 0x03, 0x75, 0xc3, 0x83, 0xbb, 0xa5, 0x16, + 0x08, 0x9e, 0x25, 0x10, 0x68, 0x04, 0x0b, 0xfe, 0x4b, 0x03, 0x4b, 0x56, 0xcf, 0x0d, 0xb1, 0x4a, + 0xae, 0x15, 0x6e, 0x8c, 0xa3, 0x8f, 0xd9, 0xef, 0x46, 0x71, 0x58, 0xe9, 0xc0, 0x11, 0xac, 0x6d, + 0x6e, 0xa8, 0x80, 0x96, 0x22, 0x36, 0x14, 0x75, 0x0a, 0x4f, 0x01, 0xb4, 0xfa, 0x92, 0x5c, 0xdd, + 0x52, 0x32, 0xc5, 0xb3, 0xe6, 0x4d, 0xa5, 0xb0, 0x11, 0xf1, 0x1b, 0x82, 0xd0, 0x08, 0x22, 0xfc, + 0x1d, 0x58, 0xae, 0xfa, 0x8c, 0x11, 0x47, 0x1c, 0x13, 0x6c, 0x8b, 0x7a, 0x5b, 0x9f, 0x91, 0x52, + 0x9b, 0x4a, 0x6a, 0x79, 0x3f, 0x62, 0x45, 0x31, 0x74, 0xc0, 0xb7, 0x08, 0xa7, 0x8c, 0x58, 0x21, + 0x7f, 0x36, 0xca, 0x2f, 0x46, 0xac, 0x28, 0x86, 0x86, 0xbb, 0x20, 0x43, 0x5a, 0x1e, 0xa9, 0x86, + 0x39, 0x9d, 0x93, 0xec, 0x1f, 0x29, 0x76, 0xe6, 0x60, 0xc8, 0x86, 0x22, 0xc8, 0x2d, 0x1b, 0xc0, + 0x64, 0x12, 0xe1, 0x2a, 0x48, 0x5d, 0x90, 0x76, 0xef, 0xe6, 0x41, 0xc1, 0x4f, 0xf8, 0x7b, 0x30, + 0xdb, 0xc4, 0xb6, 0x4f, 0xd4, 0x5e, 0xbf, 0xfb, 0x61, 0x7b, 0xfd, 0x19, 0x6d, 0x10, 0xd4, 0x23, + 0xfe, 0x7a, 0x7a, 0x57, 0xcb, 0x7f, 0xa9, 0x81, 0xb5, 0x92, 0x6b, 0x95, 0x49, 0xd5, 0x67, 0x54, + 0xb4, 0x4b, 0x72, 0x9d, 0x3f, 0x43, 0xcd, 0x46, 0x91, 0x9a, 0x7d, 0x7f, 0xf2, 0x5e, 0x8b, 0x46, + 0x37, 0xae, 0x62, 0xe7, 0x2f, 0x35, 0xb0, 0x91, 0x40, 0x7f, 0x86, 0x8a, 0xfa, 0xc7, 0x68, 0x45, + 0xfd, 0xc5, 0x75, 0x26, 0x33, 0xa6, 0x9e, 0xbe, 0xcf, 0x8c, 0x98, 0x8a, 0xac, 0xa6, 0x41, 0xbf, + 0xc6, 0x68, 0x93, 0xda, 0xa4, 0x46, 0x2c, 0x39, 0x99, 0xf9, 0xa1, 0x7e, 0xad, 0x6f, 0x41, 0x43, + 0x28, 0xc8, 0xc1, 0xa6, 0x45, 0xce, 0xb1, 0x6f, 0x8b, 0x3d, 0xcb, 0xda, 0xc7, 0x1e, 0xae, 0x50, + 0x9b, 0x0a, 0xaa, 0xda, 0x91, 0x05, 0xf3, 0x71, 0xb7, 0x93, 0xdb, 0x2c, 0x8e, 0x44, 0xbc, 0xef, + 0xe4, 0x6e, 0x26, 0x3b, 0x6d, 0xa3, 0x0f, 0x69, 0xa3, 0x31, 0xd2, 0xb0, 0x0d, 0x74, 0x46, 0xfe, + 0xe1, 0x07, 0x87, 0xa2, 0xc8, 0x5c, 0x2f, 0xe2, 0x36, 0x25, 0xdd, 0xfe, 0xb6, 0xdb, 0xc9, 0xe9, + 0x68, 0x0c, 0xe6, 0x6a, 0xc7, 0x63, 0xe5, 0xe1, 0x2b, 0xb0, 0x8e, 0x7b, 0x75, 0x20, 0xe2, 0x75, + 0x46, 0x7a, 0xdd, 0xed, 0x76, 0x72, 0xeb, 0x7b, 0x49, 0xf3, 0xd5, 0x0e, 0x47, 0x89, 0xc2, 0x02, + 0x48, 0x37, 0x65, 0x13, 0xce, 0xf5, 0x59, 0xa9, 0xbf, 0xd1, 0xed, 0xe4, 0xd2, 0xbd, 0xbe, 0x3c, + 0xd0, 0x9c, 0x3b, 0x2c, 0xcb, 0x46, 0x30, 0x44, 0xc1, 0x47, 0x60, 0xb1, 0xee, 0x72, 0xf1, 0x07, + 0x22, 0x5e, 0xbb, 0xec, 0x42, 0x16, 0x86, 0x79, 0x73, 0x5d, 0xad, 0xe0, 0xe2, 0xf1, 0xc0, 0x84, + 0x86, 0x71, 0xf0, 0xcf, 0x60, 0xa1, 0xae, 0xda, 0x3e, 0xae, 0xa7, 0xe5, 0x46, 0xbb, 0x33, 0x61, + 0xa3, 0x45, 0x5a, 0x44, 0x73, 0x4d, 0xc9, 0x2f, 0x84, 0xc3, 0x1c, 0x0d, 0xd4, 0xe0, 0xcf, 0x41, + 0x5a, 0x7e, 0x9c, 0x14, 0xf5, 0x79, 0x19, 0xcd, 0x8a, 0x82, 0xa7, 0x8f, 0x7b, 0xc3, 0x28, 0xb4, + 0x87, 0xd0, 0x93, 0xd2, 0xbe, 0xbe, 0x90, 0x84, 0x9e, 0x94, 0xf6, 0x51, 0x68, 0x87, 0x2f, 0x41, + 0x9a, 0x93, 0xa7, 0xd4, 0xf1, 0x5b, 0x3a, 0x90, 0x47, 0x6e, 0x7b, 0x42, 0xb8, 0xe5, 0x03, 0x89, + 0x8c, 0x35, 0xdc, 0x03, 0x75, 0x65, 0x47, 0xa1, 0x24, 0xb4, 0xc0, 0x02, 0xf3, 0x9d, 0x3d, 0xfe, + 0x9c, 0x13, 0xa6, 0x2f, 0x26, 0x6e, 0xfb, 0xb8, 0x3e, 0x0a, 0xb1, 0x71, 0x0f, 0xfd, 0xcc, 0xf4, + 0x11, 0x68, 0x20, 0x0c, 0xff, 0xad, 0x01, 0xc8, 0x7d, 0xcf, 0xb3, 0x49, 0x83, 0x38, 0x02, 0xdb, + 0xb2, 0xbf, 0xe7, 0x7a, 0x46, 0xfa, 0xfb, 0xcd, 0xa4, 0xf9, 0x24, 0x48, 0x71, 0xc7, 0xfd, 0x6b, + 0x3a, 0x09, 0x45, 0x23, 0x7c, 0x06, 0xe9, 0x3c, 0xe7, 0xf2, 0xb7, 0xbe, 0x74, 0x65, 0x3a, 0x47, + 0xbf, 0x5f, 0x06, 0xe9, 0x54, 0x76, 0x14, 0x4a, 0xc2, 0x17, 0x60, 0x93, 0x11, 0x6c, 0x9d, 0x39, + 0x76, 0x1b, 0xb9, 0xae, 0x38, 0xa4, 0x36, 0xe1, 0x6d, 0x2e, 0x48, 0x43, 0x5f, 0x96, 0xcb, 0x9c, + 0x55, 0xcc, 0x4d, 0x34, 0x12, 0x85, 0xc6, 0xb0, 0x61, 0x03, 0xe4, 0xc2, 0xf2, 0x10, 0x9c, 0x9d, + 0x7e, 0x7d, 0x3a, 0xe0, 0x55, 0x6c, 0xf7, 0xba, 0x96, 0x15, 0xe9, 0xe0, 0x76, 0xb7, 0x93, 0xcb, + 0x15, 0x27, 0x43, 0xd1, 0x55, 0x5a, 0xf0, 0x4f, 0x40, 0xc7, 0xe3, 0xfc, 0xac, 0x4a, 0x3f, 0x3f, + 0x09, 0x6a, 0xce, 0x58, 0x07, 0x63, 0xd9, 0xd0, 0x03, 0xab, 0x38, 0xfa, 0x72, 0xe6, 0xfa, 0x9a, + 0x3c, 0x85, 0x77, 0x27, 0xac, 0x43, 0xec, 0xb1, 0x6d, 0xea, 0x2a, 0x8d, 0xab, 0x31, 0x03, 0x47, + 0x09, 0x75, 0xd8, 0x02, 0x10, 0xc7, 0x1f, 0xfa, 0x5c, 0x87, 0x57, 0x5e, 0x31, 0x89, 0x7f, 0x07, + 0x06, 0x5b, 0x2d, 0x61, 0xe2, 0x68, 0x84, 0x8f, 0xe0, 0x05, 0xac, 0x8f, 0x3b, 0x30, 0xf0, 0x51, + 0xe4, 0x0d, 0x7c, 0x2b, 0xf6, 0x06, 0x5e, 0x4b, 0xf0, 0x3e, 0xc1, 0x0b, 0xf8, 0xff, 0x1a, 0xd8, + 0x1c, 0x5d, 0x30, 0xe0, 0x83, 0x48, 0x74, 0xb9, 0x58, 0x74, 0x2b, 0x31, 0x96, 0x8a, 0xed, 0x6f, + 0x60, 0x59, 0x95, 0x95, 0xe8, 0x1f, 0x0c, 0x91, 0x18, 0x83, 0xfb, 0x20, 0xe8, 0x08, 0x94, 0x44, + 0x78, 0xa4, 0x64, 0x2f, 0x1f, 0x1d, 0x43, 0x31, 0xb5, 0xfc, 0x17, 0x1a, 0xb8, 0x75, 0x65, 0x41, + 0x80, 0x66, 0x24, 0x74, 0x23, 0x16, 0x7a, 0x76, 0xbc, 0xc0, 0xa7, 0xf9, 0x9f, 0xc1, 0xbc, 0x77, + 0xf9, 0x2e, 0x3b, 0xf5, 0xe6, 0x5d, 0x76, 0xea, 0xed, 0xbb, 0xec, 0xd4, 0x3f, 0xbb, 0x59, 0xed, + 0xb2, 0x9b, 0xd5, 0xde, 0x74, 0xb3, 0xda, 0xdb, 0x6e, 0x56, 0xfb, 0xb6, 0x9b, 0xd5, 0xfe, 0xf3, + 0x5d, 0x76, 0xea, 0x2f, 0x69, 0x25, 0xf7, 0x43, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x7d, 0x0b, + 0x1d, 0x1e, 0x14, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/policy/v1beta1/generated.proto b/vendor/k8s.io/api/policy/v1beta1/generated.proto index 2e01cf3d..514868a9 100644 --- a/vendor/k8s.io/api/policy/v1beta1/generated.proto +++ b/vendor/k8s.io/api/policy/v1beta1/generated.proto @@ -30,6 +30,25 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; +// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. +message AllowedFlexVolume { + // Driver is the name of the Flexvolume driver. + optional string driver = 1; +} + +// defines the host volume conditions that will be enabled by a policy +// for pods to use. It requires the path prefix to be defined. +message AllowedHostPath { + // 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. + // + // Examples: + // `/foo` would allow `/foo`, `/foo/` and `/foo/bar` + // `/foo` would not allow `/food` or `/etc/foo` + optional string pathPrefix = 1; +} + // 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//evictions. @@ -41,6 +60,37 @@ message Eviction { optional k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2; } +// FSGroupStrategyOptions defines the strategy type and options used to create the strategy. +message FSGroupStrategyOptions { + // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext. + // +optional + optional string rule = 1; + + // 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. + // +optional + repeated IDRange ranges = 2; +} + +// Host Port Range 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. +message HostPortRange { + // min is the start of the range, inclusive. + optional int32 min = 1; + + // max is the end of the range, inclusive. + optional int32 max = 2; +} + +// ID Range provides a min/max of an allowed range of IDs. +message IDRange { + // Min is the start of the range, inclusive. + optional int64 min = 1; + + // Max is the end of the range, inclusive. + optional int64 max = 2; +} + // PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods message PodDisruptionBudget { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; @@ -112,3 +162,146 @@ message PodDisruptionBudgetStatus { optional int32 expectedPods = 6; } +// Pod Security Policy governs the ability to make requests that affect the Security Context +// that will be applied to a pod and container. +message PodSecurityPolicy { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // spec defines the policy enforced. + // +optional + optional PodSecurityPolicySpec spec = 2; +} + +// Pod Security Policy List is a list of PodSecurityPolicy objects. +message PodSecurityPolicyList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of schema objects. + repeated PodSecurityPolicy items = 2; +} + +// Pod Security Policy Spec defines the policy enforced. +message PodSecurityPolicySpec { + // privileged determines if a pod can request to be run as privileged. + // +optional + optional bool privileged = 1; + + // 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. + // +optional + repeated string defaultAddCapabilities = 2; + + // RequiredDropCapabilities are the capabilities that will be dropped from the container. These + // are required to be dropped and cannot be added. + // +optional + repeated string requiredDropCapabilities = 3; + + // 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. + // +optional + repeated string allowedCapabilities = 4; + + // volumes is a white list of allowed volume plugins. Empty indicates that all plugins + // may be used. + // +optional + repeated string volumes = 5; + + // hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. + // +optional + optional bool hostNetwork = 6; + + // hostPorts determines which host port ranges are allowed to be exposed. + // +optional + repeated HostPortRange hostPorts = 7; + + // hostPID determines if the policy allows the use of HostPID in the pod spec. + // +optional + optional bool hostPID = 8; + + // hostIPC determines if the policy allows the use of HostIPC in the pod spec. + // +optional + optional bool hostIPC = 9; + + // seLinux is the strategy that will dictate the allowable labels that may be set. + optional SELinuxStrategyOptions seLinux = 10; + + // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. + optional RunAsUserStrategyOptions runAsUser = 11; + + // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. + optional SupplementalGroupsStrategyOptions supplementalGroups = 12; + + // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. + optional FSGroupStrategyOptions fsGroup = 13; + + // 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. + // +optional + optional bool readOnlyRootFilesystem = 14; + + // DefaultAllowPrivilegeEscalation controls the default setting for whether a + // process can gain more privileges than its parent process. + // +optional + optional bool defaultAllowPrivilegeEscalation = 15; + + // AllowPrivilegeEscalation determines if a pod can request to allow + // privilege escalation. If unspecified, defaults to true. + // +optional + optional bool allowPrivilegeEscalation = 16; + + // is a white list of allowed host paths. Empty indicates that all host paths may be used. + // +optional + repeated AllowedHostPath allowedHostPaths = 17; + + // AllowedFlexVolumes is a whitelist of allowed 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. + // +optional + repeated AllowedFlexVolume allowedFlexVolumes = 18; +} + +// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy. +message RunAsUserStrategyOptions { + // Rule is the strategy that will dictate the allowable RunAsUser values that may be set. + optional string rule = 1; + + // Ranges are the allowed ranges of uids that may be used. + // +optional + repeated IDRange ranges = 2; +} + +// SELinux Strategy Options defines the strategy type and any options used to create the strategy. +message SELinuxStrategyOptions { + // type is the strategy that will dictate the allowable labels that may be set. + optional string rule = 1; + + // seLinuxOptions required to run as; required for MustRunAs + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + // +optional + optional k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 2; +} + +// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. +message SupplementalGroupsStrategyOptions { + // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. + // +optional + optional string rule = 1; + + // 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. + // +optional + repeated IDRange ranges = 2; +} + diff --git a/vendor/k8s.io/api/policy/v1beta1/register.go b/vendor/k8s.io/api/policy/v1beta1/register.go index d77f1304..b3efd632 100644 --- a/vendor/k8s.io/api/policy/v1beta1/register.go +++ b/vendor/k8s.io/api/policy/v1beta1/register.go @@ -46,6 +46,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &PodDisruptionBudget{}, &PodDisruptionBudgetList{}, + &PodSecurityPolicy{}, + &PodSecurityPolicyList{}, &Eviction{}, ) // Add the watch version that applies diff --git a/vendor/k8s.io/api/policy/v1beta1/types.go b/vendor/k8s.io/api/policy/v1beta1/types.go index a69a5720..6cea9615 100644 --- a/vendor/k8s.io/api/policy/v1beta1/types.go +++ b/vendor/k8s.io/api/policy/v1beta1/types.go @@ -17,6 +17,7 @@ limitations under the License. package v1beta1 import ( + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" ) @@ -113,3 +114,255 @@ type Eviction struct { // DeleteOptions may be provided DeleteOptions *metav1.DeleteOptions `json:"deleteOptions,omitempty" protobuf:"bytes,2,opt,name=deleteOptions"` } + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Pod Security Policy governs the ability to make requests that affect the Security Context +// that will be applied to a pod and container. +type PodSecurityPolicy struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // spec defines the policy enforced. + // +optional + Spec PodSecurityPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` +} + +// Pod Security Policy Spec defines the policy enforced. +type PodSecurityPolicySpec struct { + // privileged determines if a pod can request to be run as privileged. + // +optional + Privileged bool `json:"privileged,omitempty" protobuf:"varint,1,opt,name=privileged"` + // 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. + // +optional + DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty" protobuf:"bytes,2,rep,name=defaultAddCapabilities,casttype=k8s.io/api/core/v1.Capability"` + // RequiredDropCapabilities are the capabilities that will be dropped from the container. These + // are required to be dropped and cannot be added. + // +optional + RequiredDropCapabilities []v1.Capability `json:"requiredDropCapabilities,omitempty" protobuf:"bytes,3,rep,name=requiredDropCapabilities,casttype=k8s.io/api/core/v1.Capability"` + // 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. + // +optional + AllowedCapabilities []v1.Capability `json:"allowedCapabilities,omitempty" protobuf:"bytes,4,rep,name=allowedCapabilities,casttype=k8s.io/api/core/v1.Capability"` + // volumes is a white list of allowed volume plugins. Empty indicates that all plugins + // may be used. + // +optional + Volumes []FSType `json:"volumes,omitempty" protobuf:"bytes,5,rep,name=volumes,casttype=FSType"` + // hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. + // +optional + HostNetwork bool `json:"hostNetwork,omitempty" protobuf:"varint,6,opt,name=hostNetwork"` + // hostPorts determines which host port ranges are allowed to be exposed. + // +optional + HostPorts []HostPortRange `json:"hostPorts,omitempty" protobuf:"bytes,7,rep,name=hostPorts"` + // hostPID determines if the policy allows the use of HostPID in the pod spec. + // +optional + HostPID bool `json:"hostPID,omitempty" protobuf:"varint,8,opt,name=hostPID"` + // hostIPC determines if the policy allows the use of HostIPC in the pod spec. + // +optional + HostIPC bool `json:"hostIPC,omitempty" protobuf:"varint,9,opt,name=hostIPC"` + // seLinux is the strategy that will dictate the allowable labels that may be set. + SELinux SELinuxStrategyOptions `json:"seLinux" protobuf:"bytes,10,opt,name=seLinux"` + // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. + RunAsUser RunAsUserStrategyOptions `json:"runAsUser" protobuf:"bytes,11,opt,name=runAsUser"` + // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. + SupplementalGroups SupplementalGroupsStrategyOptions `json:"supplementalGroups" protobuf:"bytes,12,opt,name=supplementalGroups"` + // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. + FSGroup FSGroupStrategyOptions `json:"fsGroup" protobuf:"bytes,13,opt,name=fsGroup"` + // 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. + // +optional + ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty" protobuf:"varint,14,opt,name=readOnlyRootFilesystem"` + // DefaultAllowPrivilegeEscalation controls the default setting for whether a + // process can gain more privileges than its parent process. + // +optional + DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty" protobuf:"varint,15,opt,name=defaultAllowPrivilegeEscalation"` + // AllowPrivilegeEscalation determines if a pod can request to allow + // privilege escalation. If unspecified, defaults to true. + // +optional + AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,16,opt,name=allowPrivilegeEscalation"` + // is a white list of allowed host paths. Empty indicates that all host paths may be used. + // +optional + AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty" protobuf:"bytes,17,rep,name=allowedHostPaths"` + // AllowedFlexVolumes is a whitelist of allowed 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. + // +optional + AllowedFlexVolumes []AllowedFlexVolume `json:"allowedFlexVolumes,omitempty" protobuf:"bytes,18,rep,name=allowedFlexVolumes"` +} + +// defines the host volume conditions that will be enabled by a policy +// for pods to use. It requires the path prefix to be defined. +type AllowedHostPath struct { + // 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. + // + // Examples: + // `/foo` would allow `/foo`, `/foo/` and `/foo/bar` + // `/foo` would not allow `/food` or `/etc/foo` + PathPrefix string `json:"pathPrefix,omitempty" protobuf:"bytes,1,rep,name=pathPrefix"` +} + +// FS Type gives strong typing to different file systems that are used by volumes. +type FSType string + +var ( + AzureFile FSType = "azureFile" + Flocker FSType = "flocker" + FlexVolume FSType = "flexVolume" + HostPath FSType = "hostPath" + EmptyDir FSType = "emptyDir" + GCEPersistentDisk FSType = "gcePersistentDisk" + AWSElasticBlockStore FSType = "awsElasticBlockStore" + GitRepo FSType = "gitRepo" + Secret FSType = "secret" + NFS FSType = "nfs" + ISCSI FSType = "iscsi" + Glusterfs FSType = "glusterfs" + PersistentVolumeClaim FSType = "persistentVolumeClaim" + RBD FSType = "rbd" + Cinder FSType = "cinder" + CephFS FSType = "cephFS" + DownwardAPI FSType = "downwardAPI" + FC FSType = "fc" + ConfigMap FSType = "configMap" + Quobyte FSType = "quobyte" + AzureDisk FSType = "azureDisk" + All FSType = "*" +) + +// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. +type AllowedFlexVolume struct { + // Driver is the name of the Flexvolume driver. + Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"` +} + +// Host Port Range 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. +type HostPortRange struct { + // min is the start of the range, inclusive. + Min int32 `json:"min" protobuf:"varint,1,opt,name=min"` + // max is the end of the range, inclusive. + Max int32 `json:"max" protobuf:"varint,2,opt,name=max"` +} + +// SELinux Strategy Options defines the strategy type and any options used to create the strategy. +type SELinuxStrategyOptions struct { + // type is the strategy that will dictate the allowable labels that may be set. + Rule SELinuxStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=SELinuxStrategy"` + // seLinuxOptions required to run as; required for MustRunAs + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + // +optional + SELinuxOptions *v1.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,2,opt,name=seLinuxOptions"` +} + +// SELinuxStrategy denotes strategy types for generating SELinux options for a +// Security Context. +type SELinuxStrategy string + +const ( + // container must have SELinux labels of X applied. + SELinuxStrategyMustRunAs SELinuxStrategy = "MustRunAs" + // container may make requests for any SELinux context labels. + SELinuxStrategyRunAsAny SELinuxStrategy = "RunAsAny" +) + +// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy. +type RunAsUserStrategyOptions struct { + // Rule is the strategy that will dictate the allowable RunAsUser values that may be set. + Rule RunAsUserStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=RunAsUserStrategy"` + // Ranges are the allowed ranges of uids that may be used. + // +optional + Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` +} + +// ID Range provides a min/max of an allowed range of IDs. +type IDRange struct { + // Min is the start of the range, inclusive. + Min int64 `json:"min" protobuf:"varint,1,opt,name=min"` + // Max is the end of the range, inclusive. + Max int64 `json:"max" protobuf:"varint,2,opt,name=max"` +} + +// RunAsUserStrategy denotes strategy types for generating RunAsUser values for a +// Security Context. +type RunAsUserStrategy string + +const ( + // container must run as a particular uid. + RunAsUserStrategyMustRunAs RunAsUserStrategy = "MustRunAs" + // container must run as a non-root uid + RunAsUserStrategyMustRunAsNonRoot RunAsUserStrategy = "MustRunAsNonRoot" + // container may make requests for any uid. + RunAsUserStrategyRunAsAny RunAsUserStrategy = "RunAsAny" +) + +// FSGroupStrategyOptions defines the strategy type and options used to create the strategy. +type FSGroupStrategyOptions struct { + // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext. + // +optional + Rule FSGroupStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=FSGroupStrategyType"` + // 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. + // +optional + Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` +} + +// FSGroupStrategyType denotes strategy types for generating FSGroup values for a +// SecurityContext +type FSGroupStrategyType string + +const ( + // container must have FSGroup of X applied. + FSGroupStrategyMustRunAs FSGroupStrategyType = "MustRunAs" + // container may make requests for any FSGroup labels. + FSGroupStrategyRunAsAny FSGroupStrategyType = "RunAsAny" +) + +// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. +type SupplementalGroupsStrategyOptions struct { + // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. + // +optional + Rule SupplementalGroupsStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=SupplementalGroupsStrategyType"` + // 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. + // +optional + Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` +} + +// SupplementalGroupsStrategyType denotes strategy types for determining valid supplemental +// groups for a SecurityContext. +type SupplementalGroupsStrategyType string + +const ( + // container must run as a particular gid. + SupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = "MustRunAs" + // container may make requests for any gid. + SupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = "RunAsAny" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Pod Security Policy List is a list of PodSecurityPolicy objects. +type PodSecurityPolicyList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of schema objects. + Items []PodSecurityPolicy `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go index 29432506..8c51518d 100644 --- a/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go @@ -27,6 +27,24 @@ package v1beta1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE +var map_AllowedFlexVolume = map[string]string{ + "": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", + "driver": "Driver is the name of the Flexvolume driver.", +} + +func (AllowedFlexVolume) SwaggerDoc() map[string]string { + return map_AllowedFlexVolume +} + +var map_AllowedHostPath = map[string]string{ + "": "defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", + "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`", +} + +func (AllowedHostPath) SwaggerDoc() map[string]string { + return map_AllowedHostPath +} + var map_Eviction = map[string]string{ "": "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//evictions.", "metadata": "ObjectMeta describes the pod that is being evicted.", @@ -37,6 +55,36 @@ func (Eviction) SwaggerDoc() map[string]string { return map_Eviction } +var map_FSGroupStrategyOptions = map[string]string{ + "": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", + "rule": "Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", + "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.", +} + +func (FSGroupStrategyOptions) SwaggerDoc() map[string]string { + return map_FSGroupStrategyOptions +} + +var map_HostPortRange = map[string]string{ + "": "Host Port Range 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.", + "min": "min is the start of the range, inclusive.", + "max": "max is the end of the range, inclusive.", +} + +func (HostPortRange) SwaggerDoc() map[string]string { + return map_HostPortRange +} + +var map_IDRange = map[string]string{ + "": "ID Range provides a min/max of an allowed range of IDs.", + "min": "Min is the start of the range, inclusive.", + "max": "Max is the end of the range, inclusive.", +} + +func (IDRange) SwaggerDoc() map[string]string { + return map_IDRange +} + var map_PodDisruptionBudget = map[string]string{ "": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", "spec": "Specification of the desired behavior of the PodDisruptionBudget.", @@ -80,4 +128,80 @@ func (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string { return map_PodDisruptionBudgetStatus } +var map_PodSecurityPolicy = map[string]string{ + "": "Pod Security Policy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "spec defines the policy enforced.", +} + +func (PodSecurityPolicy) SwaggerDoc() map[string]string { + return map_PodSecurityPolicy +} + +var map_PodSecurityPolicyList = map[string]string{ + "": "Pod Security Policy List is a list of PodSecurityPolicy objects.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "Items is a list of schema objects.", +} + +func (PodSecurityPolicyList) SwaggerDoc() map[string]string { + return map_PodSecurityPolicyList +} + +var map_PodSecurityPolicySpec = map[string]string{ + "": "Pod Security Policy Spec defines the policy enforced.", + "privileged": "privileged determines if a pod can request to be run as privileged.", + "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.", + "requiredDropCapabilities": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", + "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.", + "volumes": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used.", + "hostNetwork": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", + "hostPorts": "hostPorts determines which host port ranges are allowed to be exposed.", + "hostPID": "hostPID determines if the policy allows the use of HostPID in the pod spec.", + "hostIPC": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", + "seLinux": "seLinux is the strategy that will dictate the allowable labels that may be set.", + "runAsUser": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", + "supplementalGroups": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", + "fsGroup": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.", + "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.", + "defaultAllowPrivilegeEscalation": "DefaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", + "allowPrivilegeEscalation": "AllowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", + "allowedHostPaths": "is a white list of allowed host paths. Empty indicates that all host paths may be used.", + "allowedFlexVolumes": "AllowedFlexVolumes is a whitelist of allowed 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.", +} + +func (PodSecurityPolicySpec) SwaggerDoc() map[string]string { + return map_PodSecurityPolicySpec +} + +var map_RunAsUserStrategyOptions = map[string]string{ + "": "Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.", + "rule": "Rule is the strategy that will dictate the allowable RunAsUser values that may be set.", + "ranges": "Ranges are the allowed ranges of uids that may be used.", +} + +func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { + return map_RunAsUserStrategyOptions +} + +var map_SELinuxStrategyOptions = map[string]string{ + "": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", + "rule": "type is the strategy that will dictate the allowable labels that may be set.", + "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", +} + +func (SELinuxStrategyOptions) SwaggerDoc() map[string]string { + return map_SELinuxStrategyOptions +} + +var map_SupplementalGroupsStrategyOptions = map[string]string{ + "": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", + "rule": "Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", + "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.", +} + +func (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string { + return map_SupplementalGroupsStrategyOptions +} + // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go index 78a597b5..6250f308 100644 --- a/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go @@ -21,11 +21,44 @@ limitations under the License. package v1beta1 import ( + core_v1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllowedFlexVolume) DeepCopyInto(out *AllowedFlexVolume) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedFlexVolume. +func (in *AllowedFlexVolume) DeepCopy() *AllowedFlexVolume { + if in == nil { + return nil + } + out := new(AllowedFlexVolume) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllowedHostPath) DeepCopyInto(out *AllowedHostPath) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedHostPath. +func (in *AllowedHostPath) DeepCopy() *AllowedHostPath { + if in == nil { + return nil + } + out := new(AllowedHostPath) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Eviction) DeepCopyInto(out *Eviction) { *out = *in @@ -62,6 +95,59 @@ func (in *Eviction) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FSGroupStrategyOptions) DeepCopyInto(out *FSGroupStrategyOptions) { + *out = *in + if in.Ranges != nil { + in, out := &in.Ranges, &out.Ranges + *out = make([]IDRange, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FSGroupStrategyOptions. +func (in *FSGroupStrategyOptions) DeepCopy() *FSGroupStrategyOptions { + if in == nil { + return nil + } + out := new(FSGroupStrategyOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostPortRange) DeepCopyInto(out *HostPortRange) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPortRange. +func (in *HostPortRange) DeepCopy() *HostPortRange { + if in == nil { + return nil + } + out := new(HostPortRange) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IDRange) DeepCopyInto(out *IDRange) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IDRange. +func (in *IDRange) DeepCopy() *IDRange { + if in == nil { + return nil + } + out := new(IDRange) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) { *out = *in @@ -190,3 +276,205 @@ func (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodSecurityPolicy) DeepCopyInto(out *PodSecurityPolicy) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicy. +func (in *PodSecurityPolicy) DeepCopy() *PodSecurityPolicy { + if in == nil { + return nil + } + out := new(PodSecurityPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodSecurityPolicy) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodSecurityPolicyList) DeepCopyInto(out *PodSecurityPolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PodSecurityPolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyList. +func (in *PodSecurityPolicyList) DeepCopy() *PodSecurityPolicyList { + if in == nil { + return nil + } + out := new(PodSecurityPolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodSecurityPolicyList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { + *out = *in + if in.DefaultAddCapabilities != nil { + in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities + *out = make([]core_v1.Capability, len(*in)) + copy(*out, *in) + } + if in.RequiredDropCapabilities != nil { + in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities + *out = make([]core_v1.Capability, len(*in)) + copy(*out, *in) + } + if in.AllowedCapabilities != nil { + in, out := &in.AllowedCapabilities, &out.AllowedCapabilities + *out = make([]core_v1.Capability, len(*in)) + copy(*out, *in) + } + if in.Volumes != nil { + in, out := &in.Volumes, &out.Volumes + *out = make([]FSType, len(*in)) + copy(*out, *in) + } + if in.HostPorts != nil { + in, out := &in.HostPorts, &out.HostPorts + *out = make([]HostPortRange, len(*in)) + copy(*out, *in) + } + in.SELinux.DeepCopyInto(&out.SELinux) + in.RunAsUser.DeepCopyInto(&out.RunAsUser) + in.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups) + in.FSGroup.DeepCopyInto(&out.FSGroup) + if in.DefaultAllowPrivilegeEscalation != nil { + in, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation + if *in == nil { + *out = nil + } else { + *out = new(bool) + **out = **in + } + } + if in.AllowPrivilegeEscalation != nil { + in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation + if *in == nil { + *out = nil + } else { + *out = new(bool) + **out = **in + } + } + if in.AllowedHostPaths != nil { + in, out := &in.AllowedHostPaths, &out.AllowedHostPaths + *out = make([]AllowedHostPath, len(*in)) + copy(*out, *in) + } + if in.AllowedFlexVolumes != nil { + in, out := &in.AllowedFlexVolumes, &out.AllowedFlexVolumes + *out = make([]AllowedFlexVolume, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySpec. +func (in *PodSecurityPolicySpec) DeepCopy() *PodSecurityPolicySpec { + if in == nil { + return nil + } + out := new(PodSecurityPolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) { + *out = *in + if in.Ranges != nil { + in, out := &in.Ranges, &out.Ranges + *out = make([]IDRange, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsUserStrategyOptions. +func (in *RunAsUserStrategyOptions) DeepCopy() *RunAsUserStrategyOptions { + if in == nil { + return nil + } + out := new(RunAsUserStrategyOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) { + *out = *in + if in.SELinuxOptions != nil { + in, out := &in.SELinuxOptions, &out.SELinuxOptions + if *in == nil { + *out = nil + } else { + *out = new(core_v1.SELinuxOptions) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxStrategyOptions. +func (in *SELinuxStrategyOptions) DeepCopy() *SELinuxStrategyOptions { + if in == nil { + return nil + } + out := new(SELinuxStrategyOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SupplementalGroupsStrategyOptions) DeepCopyInto(out *SupplementalGroupsStrategyOptions) { + *out = *in + if in.Ranges != nil { + in, out := &in.Ranges, &out.Ranges + *out = make([]IDRange, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupplementalGroupsStrategyOptions. +func (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrategyOptions { + if in == nil { + return nil + } + out := new(SupplementalGroupsStrategyOptions) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto b/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto index 588ef971..e964a76d 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto @@ -43,6 +43,9 @@ message PriorityClass { // 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. // +optional optional bool globalDefault = 3; diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/types.go b/vendor/k8s.io/api/scheduling/v1alpha1/types.go index 07bf337f..21e3df0a 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/types.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/types.go @@ -39,6 +39,9 @@ type PriorityClass struct { // 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. // +optional GlobalDefault bool `json:"globalDefault,omitempty" protobuf:"bytes,3,opt,name=globalDefault"` diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go index 4b68bf04..9080dd9d 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go @@ -31,7 +31,7 @@ var map_PriorityClass = map[string]string{ "": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "value": "The 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.", - "globalDefault": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class.", + "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.", "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", } diff --git a/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go b/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go index 08b75538..3d94a304 100644 --- a/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go +++ b/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go @@ -431,6 +431,7 @@ func (s *Scheme) Convert(in, out interface{}, context interface{}) error { return err } unstructuredOut.SetUnstructuredContent(content) + unstructuredOut.GetObjectKind().SetGroupVersionKind(gvk) return nil } diff --git a/vendor/k8s.io/client-go/informers/generic.go b/vendor/k8s.io/client-go/informers/generic.go index c19f137c..43fd7a1c 100644 --- a/vendor/k8s.io/client-go/informers/generic.go +++ b/vendor/k8s.io/client-go/informers/generic.go @@ -198,6 +198,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource // Group=policy, Version=v1beta1 case policy_v1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil + case policy_v1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodSecurityPolicies().Informer()}, nil // Group=rbac.authorization.k8s.io, Version=v1 case rbac_v1.SchemeGroupVersion.WithResource("clusterroles"): diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD index 39a7a9d3..547a0a39 100644 --- a/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD @@ -10,6 +10,7 @@ go_library( srcs = [ "interface.go", "poddisruptionbudget.go", + "podsecuritypolicy.go", ], importpath = "k8s.io/client-go/informers/policy/v1beta1", deps = [ diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go index e59a4aa9..ba331c46 100644 --- a/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go @@ -26,6 +26,8 @@ import ( type Interface interface { // PodDisruptionBudgets returns a PodDisruptionBudgetInformer. PodDisruptionBudgets() PodDisruptionBudgetInformer + // PodSecurityPolicies returns a PodSecurityPolicyInformer. + PodSecurityPolicies() PodSecurityPolicyInformer } type version struct { @@ -43,3 +45,8 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList func (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer { return &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } + +// PodSecurityPolicies returns a PodSecurityPolicyInformer. +func (v *version) PodSecurityPolicies() PodSecurityPolicyInformer { + return &podSecurityPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go new file mode 100644 index 00000000..96e210c4 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go @@ -0,0 +1,88 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by informer-gen + +package v1beta1 + +import ( + time "time" + + policy_v1beta1 "k8s.io/api/policy/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1beta1 "k8s.io/client-go/listers/policy/v1beta1" + cache "k8s.io/client-go/tools/cache" +) + +// PodSecurityPolicyInformer provides access to a shared informer and lister for +// PodSecurityPolicies. +type PodSecurityPolicyInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.PodSecurityPolicyLister +} + +type podSecurityPolicyInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.PolicyV1beta1().PodSecurityPolicies().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.PolicyV1beta1().PodSecurityPolicies().Watch(options) + }, + }, + &policy_v1beta1.PodSecurityPolicy{}, + resyncPeriod, + indexers, + ) +} + +func (f *podSecurityPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *podSecurityPolicyInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&policy_v1beta1.PodSecurityPolicy{}, f.defaultInformer) +} + +func (f *podSecurityPolicyInformer) Lister() v1beta1.PodSecurityPolicyLister { + return v1beta1.NewPodSecurityPolicyLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD index dd86cfec..4c9f03aa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD @@ -32,9 +32,11 @@ go_library( "service.go", "service_expansion.go", "serviceaccount.go", + "serviceaccount_expansion.go", ], importpath = "k8s.io/client-go/kubernetes/typed/core/v1", deps = [ + "//vendor/k8s.io/api/authentication/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go index 3f4b5f89..5bb5f4cd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go @@ -35,5 +35,3 @@ type ReplicationControllerExpansion interface{} type ResourceQuotaExpansion interface{} type SecretExpansion interface{} - -type ServiceAccountExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount_expansion.go new file mode 100644 index 00000000..eaf643f1 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount_expansion.go @@ -0,0 +1,41 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + authenticationv1 "k8s.io/api/authentication/v1" +) + +// The ServiceAccountExpansion interface allows manually adding extra methods +// to the ServiceAccountInterface. +type ServiceAccountExpansion interface { + CreateToken(name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) +} + +// CreateToken creates a new token for a serviceaccount. +func (c *serviceAccounts) CreateToken(name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) { + result := &authenticationv1.TokenRequest{} + err := c.client.Post(). + Namespace(c.ns). + Resource("serviceaccounts"). + SubResource("token"). + Name(name). + Body(tr). + Do(). + Into(result) + return result, err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD index 2abeb549..92606b3c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD @@ -13,6 +13,7 @@ go_library( "eviction_expansion.go", "generated_expansion.go", "poddisruptionbudget.go", + "podsecuritypolicy.go", "policy_client.go", ], importpath = "k8s.io/client-go/kubernetes/typed/policy/v1beta1", diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go index a119239c..113ebd32 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go @@ -17,3 +17,5 @@ limitations under the License. package v1beta1 type PodDisruptionBudgetExpansion interface{} + +type PodSecurityPolicyExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go new file mode 100644 index 00000000..03396a65 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go @@ -0,0 +1,145 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// PodSecurityPoliciesGetter has a method to return a PodSecurityPolicyInterface. +// A group's client should implement this interface. +type PodSecurityPoliciesGetter interface { + PodSecurityPolicies() PodSecurityPolicyInterface +} + +// PodSecurityPolicyInterface has methods to work with PodSecurityPolicy resources. +type PodSecurityPolicyInterface interface { + Create(*v1beta1.PodSecurityPolicy) (*v1beta1.PodSecurityPolicy, error) + Update(*v1beta1.PodSecurityPolicy) (*v1beta1.PodSecurityPolicy, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.PodSecurityPolicy, error) + List(opts v1.ListOptions) (*v1beta1.PodSecurityPolicyList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) + PodSecurityPolicyExpansion +} + +// podSecurityPolicies implements PodSecurityPolicyInterface +type podSecurityPolicies struct { + client rest.Interface +} + +// newPodSecurityPolicies returns a PodSecurityPolicies +func newPodSecurityPolicies(c *PolicyV1beta1Client) *podSecurityPolicies { + return &podSecurityPolicies{ + client: c.RESTClient(), + } +} + +// Get takes name of the podSecurityPolicy, and returns the corresponding podSecurityPolicy object, and an error if there is any. +func (c *podSecurityPolicies) Get(name string, options v1.GetOptions) (result *v1beta1.PodSecurityPolicy, err error) { + result = &v1beta1.PodSecurityPolicy{} + err = c.client.Get(). + Resource("podsecuritypolicies"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of PodSecurityPolicies that match those selectors. +func (c *podSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.PodSecurityPolicyList, err error) { + result = &v1beta1.PodSecurityPolicyList{} + err = c.client.Get(). + Resource("podsecuritypolicies"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested podSecurityPolicies. +func (c *podSecurityPolicies) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("podsecuritypolicies"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// 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. +func (c *podSecurityPolicies) Create(podSecurityPolicy *v1beta1.PodSecurityPolicy) (result *v1beta1.PodSecurityPolicy, err error) { + result = &v1beta1.PodSecurityPolicy{} + err = c.client.Post(). + Resource("podsecuritypolicies"). + Body(podSecurityPolicy). + Do(). + Into(result) + return +} + +// 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. +func (c *podSecurityPolicies) Update(podSecurityPolicy *v1beta1.PodSecurityPolicy) (result *v1beta1.PodSecurityPolicy, err error) { + result = &v1beta1.PodSecurityPolicy{} + err = c.client.Put(). + Resource("podsecuritypolicies"). + Name(podSecurityPolicy.Name). + Body(podSecurityPolicy). + Do(). + Into(result) + return +} + +// Delete takes name of the podSecurityPolicy and deletes it. Returns an error if one occurs. +func (c *podSecurityPolicies) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("podsecuritypolicies"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *podSecurityPolicies) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("podsecuritypolicies"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched podSecurityPolicy. +func (c *podSecurityPolicies) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) { + result = &v1beta1.PodSecurityPolicy{} + err = c.client.Patch(pt). + Resource("podsecuritypolicies"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go index f9020d0b..6d1986f9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go @@ -27,6 +27,7 @@ type PolicyV1beta1Interface interface { RESTClient() rest.Interface EvictionsGetter PodDisruptionBudgetsGetter + PodSecurityPoliciesGetter } // PolicyV1beta1Client is used to interact with features provided by the policy group. @@ -42,6 +43,10 @@ func (c *PolicyV1beta1Client) PodDisruptionBudgets(namespace string) PodDisrupti return newPodDisruptionBudgets(c, namespace) } +func (c *PolicyV1beta1Client) PodSecurityPolicies() PodSecurityPolicyInterface { + return newPodSecurityPolicies(c) +} + // NewForConfig creates a new PolicyV1beta1Client for the given config. func NewForConfig(c *rest.Config) (*PolicyV1beta1Client, error) { config := *c diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD index c678177a..2c5f33df 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD @@ -12,6 +12,7 @@ go_library( "expansion_generated.go", "poddisruptionbudget.go", "poddisruptionbudget_expansion.go", + "podsecuritypolicy.go", ], importpath = "k8s.io/client-go/listers/policy/v1beta1", deps = [ diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go index 090199ad..37070a6c 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go @@ -25,3 +25,7 @@ type EvictionListerExpansion interface{} // EvictionNamespaceListerExpansion allows custom methods to be added to // EvictionNamespaceLister. type EvictionNamespaceListerExpansion interface{} + +// PodSecurityPolicyListerExpansion allows custom methods to be added to +// PodSecurityPolicyLister. +type PodSecurityPolicyListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go new file mode 100644 index 00000000..3ba4a439 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go @@ -0,0 +1,65 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was automatically generated by lister-gen + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// PodSecurityPolicyLister helps list PodSecurityPolicies. +type PodSecurityPolicyLister interface { + // List lists all PodSecurityPolicies in the indexer. + List(selector labels.Selector) (ret []*v1beta1.PodSecurityPolicy, err error) + // Get retrieves the PodSecurityPolicy from the index for a given name. + Get(name string) (*v1beta1.PodSecurityPolicy, error) + PodSecurityPolicyListerExpansion +} + +// podSecurityPolicyLister implements the PodSecurityPolicyLister interface. +type podSecurityPolicyLister struct { + indexer cache.Indexer +} + +// NewPodSecurityPolicyLister returns a new PodSecurityPolicyLister. +func NewPodSecurityPolicyLister(indexer cache.Indexer) PodSecurityPolicyLister { + return &podSecurityPolicyLister{indexer: indexer} +} + +// List lists all PodSecurityPolicies in the indexer. +func (s *podSecurityPolicyLister) List(selector labels.Selector) (ret []*v1beta1.PodSecurityPolicy, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.PodSecurityPolicy)) + }) + return ret, err +} + +// Get retrieves the PodSecurityPolicy from the index for a given name. +func (s *podSecurityPolicyLister) Get(name string) (*v1beta1.PodSecurityPolicy, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("podsecuritypolicy"), name) + } + return obj.(*v1beta1.PodSecurityPolicy), nil +} diff --git a/vendor/k8s.io/client-go/util/cert/cert.go b/vendor/k8s.io/client-go/util/cert/cert.go index 2c95754c..fb7f5fac 100644 --- a/vendor/k8s.io/client-go/util/cert/cert.go +++ b/vendor/k8s.io/client-go/util/cert/cert.go @@ -138,23 +138,50 @@ func MakeEllipticPrivateKeyPEM() ([]byte, error) { // Host may be an IP or a DNS name // You may also specify additional subject alt names (either ip or dns names) for the certificate func GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS []string) ([]byte, []byte, error) { + caKey, err := rsa.GenerateKey(cryptorand.Reader, 2048) + if err != nil { + return nil, nil, err + } + + caTemplate := x509.Certificate{ + SerialNumber: big.NewInt(1), + Subject: pkix.Name{ + CommonName: fmt.Sprintf("%s-ca@%d", host, time.Now().Unix()), + }, + NotBefore: time.Now(), + NotAfter: time.Now().Add(time.Hour * 24 * 365), + + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, + BasicConstraintsValid: true, + IsCA: true, + } + + caDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &caTemplate, &caTemplate, &caKey.PublicKey, caKey) + if err != nil { + return nil, nil, err + } + + caCertificate, err := x509.ParseCertificate(caDERBytes) + if err != nil { + return nil, nil, err + } + priv, err := rsa.GenerateKey(cryptorand.Reader, 2048) if err != nil { return nil, nil, err } template := x509.Certificate{ - SerialNumber: big.NewInt(1), + SerialNumber: big.NewInt(2), Subject: pkix.Name{ CommonName: fmt.Sprintf("%s@%d", host, time.Now().Unix()), }, NotBefore: time.Now(), NotAfter: time.Now().Add(time.Hour * 24 * 365), - KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, BasicConstraintsValid: true, - IsCA: true, } if ip := net.ParseIP(host); ip != nil { @@ -166,16 +193,19 @@ func GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS template.IPAddresses = append(template.IPAddresses, alternateIPs...) template.DNSNames = append(template.DNSNames, alternateDNS...) - derBytes, err := x509.CreateCertificate(cryptorand.Reader, &template, &template, &priv.PublicKey, priv) + derBytes, err := x509.CreateCertificate(cryptorand.Reader, &template, caCertificate, &priv.PublicKey, caKey) if err != nil { return nil, nil, err } - // Generate cert + // Generate cert, followed by ca certBuffer := bytes.Buffer{} if err := pem.Encode(&certBuffer, &pem.Block{Type: CertificateBlockType, Bytes: derBytes}); err != nil { return nil, nil, err } + if err := pem.Encode(&certBuffer, &pem.Block{Type: CertificateBlockType, Bytes: caDERBytes}); err != nil { + return nil, nil, err + } // Generate key keyBuffer := bytes.Buffer{} diff --git a/vendor/k8s.io/code-generator/Godeps/Godeps.json b/vendor/k8s.io/code-generator/Godeps/Godeps.json index b2163d2d..42370282 100644 --- a/vendor/k8s.io/code-generator/Godeps/Godeps.json +++ b/vendor/k8s.io/code-generator/Godeps/Godeps.json @@ -1,270 +1,270 @@ { - "ImportPath": "k8s.io/code-generator", - "GoVersion": "go1.9", - "GodepVersion": "v79", - "Packages": [ - "./..." - ], - "Deps": [ - { - "ImportPath": "github.com/PuerkitoBio/purell", - "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" - }, - { - "ImportPath": "github.com/PuerkitoBio/urlesc", - "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e" - }, - { - "ImportPath": "github.com/emicklei/go-restful", - "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" - }, - { - "ImportPath": "github.com/emicklei/go-restful/log", - "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" - }, - { - "ImportPath": "github.com/go-openapi/jsonpointer", - "Rev": "46af16f9f7b149af66e5d1bd010e3574dc06de98" - }, - { - "ImportPath": "github.com/go-openapi/jsonreference", - "Rev": "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272" - }, - { - "ImportPath": "github.com/go-openapi/spec", - "Rev": "7abd5745472fff5eb3685386d5fb8bf38683154d" - }, - { - "ImportPath": "github.com/go-openapi/swag", - "Rev": "f3f9494671f93fcff853e3c6e9e948b3eb71e590" - }, - { - "ImportPath": "github.com/gogo/protobuf/gogoproto", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/compare", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/description", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/embedcheck", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/enumstringer", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/equal", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/face", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/gostring", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/marshalto", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/populate", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/size", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/stringer", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/testgen", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/union", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/plugin/unmarshal", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/proto", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/sortkeys", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/vanity", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/vanity/command", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/golang/glog", - "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed" - }, - { - "ImportPath": "github.com/mailru/easyjson/buffer", - "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" - }, - { - "ImportPath": "github.com/mailru/easyjson/jlexer", - "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" - }, - { - "ImportPath": "github.com/mailru/easyjson/jwriter", - "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" - }, - { - "ImportPath": "github.com/spf13/pflag", - "Rev": "4c012f6dcd9546820e378d0bdda4d8fc772cdfea" - }, - { - "ImportPath": "golang.org/x/net/idna", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/text/cases", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/internal", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/internal/tag", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/language", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/runes", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/secure/bidirule", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/secure/precis", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/transform", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/unicode/bidi", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/unicode/norm", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/width", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/tools/go/ast/astutil", - "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" - }, - { - "ImportPath": "golang.org/x/tools/imports", - "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" - }, - { - "ImportPath": "gopkg.in/yaml.v2", - "Rev": "670d4cfef0544295bc27a114dbac37980d83185a" - }, - { - "ImportPath": "k8s.io/gengo/args", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/examples/import-boss/generators", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/examples/set-gen/generators", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/examples/set-gen/sets", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/generator", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/namer", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/parser", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/gengo/types", - "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" - }, - { - "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "a07b7bbb58e7fdc5144f8d7046331d29fc9ad3b3" - }, - { - "ImportPath": "k8s.io/kube-openapi/pkg/generators", - "Rev": "a07b7bbb58e7fdc5144f8d7046331d29fc9ad3b3" - } - ] + "ImportPath": "k8s.io/code-generator", + "GoVersion": "go1.9", + "GodepVersion": "v79", + "Packages": [ + "./..." + ], + "Deps": [ + { + "ImportPath": "github.com/PuerkitoBio/purell", + "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" + }, + { + "ImportPath": "github.com/PuerkitoBio/urlesc", + "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e" + }, + { + "ImportPath": "github.com/emicklei/go-restful", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/emicklei/go-restful/log", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/go-openapi/jsonpointer", + "Rev": "46af16f9f7b149af66e5d1bd010e3574dc06de98" + }, + { + "ImportPath": "github.com/go-openapi/jsonreference", + "Rev": "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272" + }, + { + "ImportPath": "github.com/go-openapi/spec", + "Rev": "1de3e0542de65ad8d75452a595886fdd0befb363" + }, + { + "ImportPath": "github.com/go-openapi/swag", + "Rev": "f3f9494671f93fcff853e3c6e9e948b3eb71e590" + }, + { + "ImportPath": "github.com/gogo/protobuf/gogoproto", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/compare", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/description", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/embedcheck", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/enumstringer", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/equal", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/face", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/gostring", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/marshalto", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/populate", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/size", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/stringer", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/testgen", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/union", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/plugin/unmarshal", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/proto", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/sortkeys", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/vanity", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/gogo/protobuf/vanity/command", + "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + }, + { + "ImportPath": "github.com/golang/glog", + "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed" + }, + { + "ImportPath": "github.com/mailru/easyjson/buffer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jlexer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jwriter", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/spf13/pflag", + "Rev": "4c012f6dcd9546820e378d0bdda4d8fc772cdfea" + }, + { + "ImportPath": "golang.org/x/net/idna", + "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + }, + { + "ImportPath": "golang.org/x/text/cases", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal/tag", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/language", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/runes", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/secure/bidirule", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/secure/precis", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/transform", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/bidi", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/norm", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/width", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/tools/go/ast/astutil", + "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" + }, + { + "ImportPath": "golang.org/x/tools/imports", + "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" + }, + { + "ImportPath": "gopkg.in/yaml.v2", + "Rev": "670d4cfef0544295bc27a114dbac37980d83185a" + }, + { + "ImportPath": "k8s.io/gengo/args", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/examples/import-boss/generators", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/examples/set-gen/generators", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/examples/set-gen/sets", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/generator", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/namer", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/parser", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/gengo/types", + "Rev": "b6c426f7730e6d66e6e476a85d1c3eb7633880e0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/common", + "Rev": "a07b7bbb58e7fdc5144f8d7046331d29fc9ad3b3" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/generators", + "Rev": "a07b7bbb58e7fdc5144f8d7046331d29fc9ad3b3" + } + ] } diff --git a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/expander.go b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/expander.go index b4429a21..5054a7be 100644 --- a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/expander.go +++ b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/expander.go @@ -20,6 +20,7 @@ import ( "log" "net/url" "os" + "path" "path/filepath" "reflect" "strings" @@ -83,21 +84,43 @@ func (s *simpleCache) Set(uri string, data interface{}) { // ResolveRefWithBase resolves a reference against a context root with preservation of base path func ResolveRefWithBase(root interface{}, ref *Ref, opts *ExpandOptions) (*Schema, error) { - resolver, err := defaultSchemaLoader(root, nil, opts, nil) + resolver, err := defaultSchemaLoader(root, opts, nil) if err != nil { return nil, err } + specBasePath := "" + if opts != nil && opts.RelativeBase != "" { + specBasePath, _ = absPath(opts.RelativeBase) + } result := new(Schema) - if err := resolver.Resolve(ref, result); err != nil { + if err := resolver.Resolve(ref, result, specBasePath); err != nil { return nil, err } return result, nil } // ResolveRef resolves a reference against a context root +// ref is guaranteed to be in root (no need to go to external files) +// ResolveRef is ONLY called from the code generation module func ResolveRef(root interface{}, ref *Ref) (*Schema, error) { - return ResolveRefWithBase(root, ref, nil) + res, _, err := ref.GetPointer().Get(root) + if err != nil { + panic(err) + } + switch sch := res.(type) { + case Schema: + return &sch, nil + case *Schema: + return sch, nil + case map[string]interface{}: + b, _ := json.Marshal(sch) + newSch := new(Schema) + json.Unmarshal(b, newSch) + return newSch, nil + default: + return nil, fmt.Errorf("unknown type for the resolved reference") + } } // ResolveParameter resolves a paramter reference against a context root @@ -107,13 +130,13 @@ func ResolveParameter(root interface{}, ref Ref) (*Parameter, error) { // ResolveParameterWithBase resolves a paramter reference against a context root and base path func ResolveParameterWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Parameter, error) { - resolver, err := defaultSchemaLoader(root, nil, opts, nil) + resolver, err := defaultSchemaLoader(root, opts, nil) if err != nil { return nil, err } result := new(Parameter) - if err := resolver.Resolve(&ref, result); err != nil { + if err := resolver.Resolve(&ref, result, ""); err != nil { return nil, err } return result, nil @@ -126,13 +149,13 @@ func ResolveResponse(root interface{}, ref Ref) (*Response, error) { // ResolveResponseWithBase resolves response a reference against a context root and base path func ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Response, error) { - resolver, err := defaultSchemaLoader(root, nil, opts, nil) + resolver, err := defaultSchemaLoader(root, opts, nil) if err != nil { return nil, err } result := new(Response) - if err := resolver.Resolve(&ref, result); err != nil { + if err := resolver.Resolve(&ref, result, ""); err != nil { return nil, err } return result, nil @@ -140,13 +163,16 @@ func ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*R // ResolveItems resolves header and parameter items reference against a context root and base path func ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error) { - resolver, err := defaultSchemaLoader(root, nil, opts, nil) + resolver, err := defaultSchemaLoader(root, opts, nil) if err != nil { return nil, err } - + basePath := "" + if opts.RelativeBase != "" { + basePath = opts.RelativeBase + } result := new(Items) - if err := resolver.Resolve(&ref, result); err != nil { + if err := resolver.Resolve(&ref, result, basePath); err != nil { return nil, err } return result, nil @@ -154,26 +180,26 @@ func ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error // ResolvePathItem resolves response a path item against a context root and base path func ResolvePathItem(root interface{}, ref Ref, opts *ExpandOptions) (*PathItem, error) { - resolver, err := defaultSchemaLoader(root, nil, opts, nil) + resolver, err := defaultSchemaLoader(root, opts, nil) if err != nil { return nil, err } - + basePath := "" + if opts.RelativeBase != "" { + basePath = opts.RelativeBase + } result := new(PathItem) - if err := resolver.Resolve(&ref, result); err != nil { + if err := resolver.Resolve(&ref, result, basePath); err != nil { return nil, err } return result, nil } type schemaLoader struct { - loadingRef *Ref - startingRef *Ref - currentRef *Ref - root interface{} - options *ExpandOptions - cache ResolutionCache - loadDoc func(string) (json.RawMessage, error) + root interface{} + options *ExpandOptions + cache ResolutionCache + loadDoc func(string) (json.RawMessage, error) } var idPtr, _ = jsonpointer.New("/id") @@ -194,7 +220,6 @@ func init() { func defaultSchemaLoader( root interface{}, - ref *Ref, expandOptions *ExpandOptions, cache ResolutionCache) (*schemaLoader, error) { @@ -205,20 +230,10 @@ func defaultSchemaLoader( expandOptions = &ExpandOptions{} } - var ptr *jsonpointer.Pointer - if ref != nil { - ptr = ref.GetPointer() - } - - currentRef := nextRef(root, ref, ptr) - return &schemaLoader{ - loadingRef: ref, - startingRef: ref, - currentRef: currentRef, - root: root, - options: expandOptions, - cache: cache, + root: root, + options: expandOptions, + cache: cache, loadDoc: func(path string) (json.RawMessage, error) { debugLog("fetching document at %q", path) return PathLoader(path) @@ -303,172 +318,110 @@ func debugLog(msg string, args ...interface{}) { } } -func normalizeFileRef(ref *Ref, relativeBase string) *Ref { - refURL := ref.GetURL() - debugLog("normalizing %s against %s (%s)", ref.String(), relativeBase, refURL.String()) - if strings.HasPrefix(refURL.String(), "#") { - return ref +// normalize absolute path for cache. +// on Windows, drive letters should be converted to lower as scheme in net/url.URL +func normalizeAbsPath(path string) string { + u, err := url.Parse(path) + if err != nil { + debugLog("normalize absolute path failed: %s", err) + return path } - - if refURL.Scheme == "file" || (refURL.Scheme == "" && refURL.Host == "") { - filePath := refURL.Path - debugLog("normalizing file path: %s", filePath) - - if !filepath.IsAbs(filepath.FromSlash(filePath)) && len(relativeBase) != 0 { - debugLog("joining %s with %s", relativeBase, filePath) - if fi, err := os.Stat(filepath.FromSlash(relativeBase)); err == nil { - if !fi.IsDir() { - relativeBase = filepath.Dir(filepath.FromSlash(relativeBase)) - } - } - filePath = filepath.Join(filepath.FromSlash(relativeBase), filepath.FromSlash(filePath)) - } - if !filepath.IsAbs(filepath.FromSlash(filePath)) { - pwd, err := os.Getwd() - if err == nil { - debugLog("joining cwd %s with %s", pwd, filePath) - filePath = filepath.Join(pwd, filepath.FromSlash(filePath)) - } - } - - debugLog("cleaning %s", filePath) - filePath = filepath.Clean(filepath.FromSlash(filePath)) - _, err := os.Stat(filepath.FromSlash(filePath)) - if err == nil { - debugLog("rewriting url %s to scheme \"\" path %s", refURL.String(), filePath) - slp := filepath.FromSlash(filePath) - if filepath.IsAbs(slp) && filepath.Separator == '\\' && len(slp) > 1 && slp[1] == ':' && ('a' <= slp[0] && slp[0] <= 'z' || 'A' <= slp[0] && slp[0] <= 'Z') { - slp = slp[2:] - } - refURL.Scheme = "" - refURL.Path = filepath.ToSlash(slp) - debugLog("new url with joined filepath: %s", refURL.String()) - *ref = MustCreateRef(refURL.String()) - } - } - - debugLog("refurl: %s", ref.GetURL().String()) - return ref + return u.String() } -func (r *schemaLoader) resolveRef(currentRef, ref *Ref, node, target interface{}) error { +// base or refPath could be a file path or a URL +// given a base absolute path and a ref path, return the absolute path of refPath +// 1) if refPath is absolute, return it +// 2) if refPath is relative, join it with basePath keeping the scheme, hosts, and ports if exists +// base could be a directory or a full file path +func normalizePaths(refPath, base string) string { + refURL, _ := url.Parse(refPath) + if path.IsAbs(refURL.Path) { + // refPath is actually absolute + if refURL.Host != "" { + return refPath + } + return filepath.FromSlash(refPath) + } + // relative refPath + baseURL, _ := url.Parse(base) + if !strings.HasPrefix(refPath, "#") { + // combining paths + if baseURL.Host != "" { + baseURL.Path = path.Join(path.Dir(baseURL.Path), refURL.Path) + } else { // base is a file + newBase := fmt.Sprintf("%s#%s", filepath.Join(filepath.Dir(base), filepath.FromSlash(refURL.Path)), refURL.Fragment) + return newBase + } + + } + // copying fragment from ref to base + baseURL.Fragment = refURL.Fragment + return baseURL.String() +} + +// relativeBase could be an ABSOLUTE file path or an ABSOLUTE URL +func normalizeFileRef(ref *Ref, relativeBase string) *Ref { + // This is important for when the reference is pointing to the root schema + if ref.String() == "" { + r, _ := NewRef(relativeBase) + return &r + } + + refURL := ref.GetURL() + debugLog("normalizing %s against %s (%s)", ref.String(), relativeBase, refURL.String()) + + s := normalizePaths(ref.String(), relativeBase) + r, _ := NewRef(s) + return &r +} + +func (r *schemaLoader) resolveRef(ref *Ref, target interface{}, basePath string) error { tgt := reflect.ValueOf(target) if tgt.Kind() != reflect.Ptr { return fmt.Errorf("resolve ref: target needs to be a pointer") } - oldRef := currentRef + refURL := ref.GetURL() + if refURL == nil { + return nil + } - if currentRef != nil { - debugLog("resolve ref current %s new %s", currentRef.String(), ref.String()) - nextRef := nextRef(node, ref, currentRef.GetPointer()) - if nextRef == nil || nextRef.GetURL() == nil { - return nil + var res interface{} + var data interface{} + var err error + // Resolve against the root if it isn't nil, and if ref is pointing at the root, or has a fragment only which means + // it is pointing somewhere in the root. + root := r.root + if (ref.IsRoot() || ref.HasFragmentOnly) && root == nil && basePath != "" { + if baseRef, err := NewRef(basePath); err == nil { + root, _, _, _ = r.load(baseRef.GetURL()) } - var err error - currentRef, err = currentRef.Inherits(*nextRef) - debugLog("resolved ref current %s", currentRef.String()) + } + if (ref.IsRoot() || ref.HasFragmentOnly) && root != nil { + data = root + } else { + baseRef := normalizeFileRef(ref, basePath) + debugLog("current ref is: %s", ref.String()) + debugLog("current ref normalized file: %s", baseRef.String()) + data, _, _, err = r.load(baseRef.GetURL()) if err != nil { return err } } - if currentRef == nil { - currentRef = ref - } - - refURL := currentRef.GetURL() - if refURL == nil { - return nil - } - if currentRef.IsRoot() { - nv := reflect.ValueOf(node) - reflect.Indirect(tgt).Set(reflect.Indirect(nv)) - return nil - } - - if strings.HasPrefix(refURL.String(), "#") { - res, _, err := ref.GetPointer().Get(node) + res = data + if ref.String() != "" { + res, _, err = ref.GetPointer().Get(data) if err != nil { - res, _, err = ref.GetPointer().Get(r.root) - if err != nil { - return err - } + return err } - rv := reflect.Indirect(reflect.ValueOf(res)) - tgtType := reflect.Indirect(tgt).Type() - if rv.Type().AssignableTo(tgtType) { - reflect.Indirect(tgt).Set(reflect.Indirect(reflect.ValueOf(res))) - } else { - if err := swag.DynamicJSONToStruct(rv.Interface(), target); err != nil { - return err - } - } - - return nil } - - relativeBase := "" - if r.options != nil && r.options.RelativeBase != "" { - relativeBase = r.options.RelativeBase - } - normalizeFileRef(currentRef, relativeBase) - debugLog("current ref normalized file: %s", currentRef.String()) - normalizeFileRef(ref, relativeBase) - debugLog("ref normalized file: %s", currentRef.String()) - - data, _, _, err := r.load(currentRef.GetURL()) - if err != nil { - return err - } - - if ((oldRef == nil && currentRef != nil) || - (oldRef != nil && currentRef == nil) || - oldRef.String() != currentRef.String()) && - ((oldRef == nil && ref != nil) || - (oldRef != nil && ref == nil) || - (oldRef.String() != ref.String())) { - - return r.resolveRef(currentRef, ref, data, target) - } - - var res interface{} - if currentRef.String() != "" { - res, _, err = currentRef.GetPointer().Get(data) - if err != nil { - if strings.HasPrefix(ref.String(), "#") { - if r.loadingRef != nil { - rr, er := r.loadingRef.Inherits(*ref) - if er != nil { - return er - } - refURL = rr.GetURL() - - data, _, _, err = r.load(refURL) - if err != nil { - return err - } - } else { - data = r.root - } - } - - res, _, err = ref.GetPointer().Get(data) - if err != nil { - return err - } - } - } else { - res = data - } - if err := swag.DynamicJSONToStruct(res, target); err != nil { return err } - r.currentRef = currentRef - return nil } @@ -493,50 +446,62 @@ func (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error) return data, toFetch, fromCache, nil } -func (r *schemaLoader) Resolve(ref *Ref, target interface{}) error { - return r.resolveRef(r.currentRef, ref, r.root, target) +// Resolve resolves a reference against basePath and stores the result in target +// Resolve is not in charge of following references, it only resolves ref by following its URL +// if the schema that ref is referring to has more refs in it. Resolve doesn't resolve them +// if basePath is an empty string, ref is resolved against the root schema stored in the schemaLoader struct +func (r *schemaLoader) Resolve(ref *Ref, target interface{}, basePath string) error { + return r.resolveRef(ref, target, basePath) } -func (r *schemaLoader) reset() { - ref := r.startingRef - - var ptr *jsonpointer.Pointer - if ref != nil { - ptr = ref.GetPointer() +// absPath returns the absolute path of a file +func absPath(fname string) (string, error) { + if strings.HasPrefix(fname, "http") { + return fname, nil } - - r.currentRef = nextRef(r.root, ref, ptr) + if filepath.IsAbs(fname) { + return fname, nil + } + wd, err := os.Getwd() + return filepath.Join(wd, fname), err } // ExpandSpec expands the references in a swagger spec func ExpandSpec(spec *Swagger, options *ExpandOptions) error { - resolver, err := defaultSchemaLoader(spec, nil, options, nil) + resolver, err := defaultSchemaLoader(spec, options, nil) // Just in case this ever returns an error. if shouldStopOnError(err, resolver.options) { return err } + // getting the base path of the spec to adjust all subsequent reference resolutions + specBasePath := "" + if options != nil && options.RelativeBase != "" { + specBasePath, _ = absPath(options.RelativeBase) + } + if options == nil || !options.SkipSchemas { for key, definition := range spec.Definitions { var def *Schema var err error - if def, err = expandSchema(definition, []string{"#/definitions/" + key}, resolver); shouldStopOnError(err, resolver.options) { + if def, err = expandSchema(definition, []string{fmt.Sprintf("#/defintions/%s", key)}, resolver, specBasePath); shouldStopOnError(err, resolver.options) { return err } - resolver.reset() - spec.Definitions[key] = *def + if def != nil { + spec.Definitions[key] = *def + } } } for key, parameter := range spec.Parameters { - if err := expandParameter(¶meter, resolver); shouldStopOnError(err, resolver.options) { + if err := expandParameter(¶meter, resolver, specBasePath); shouldStopOnError(err, resolver.options) { return err } spec.Parameters[key] = parameter } for key, response := range spec.Responses { - if err := expandResponse(&response, resolver); shouldStopOnError(err, resolver.options) { + if err := expandResponse(&response, resolver, specBasePath); shouldStopOnError(err, resolver.options) { return err } spec.Responses[key] = response @@ -544,7 +509,7 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error { if spec.Paths != nil { for key, path := range spec.Paths.Paths { - if err := expandPathItem(&path, resolver); shouldStopOnError(err, resolver.options) { + if err := expandPathItem(&path, resolver, specBasePath); shouldStopOnError(err, resolver.options) { return err } spec.Paths.Paths[key] = path @@ -566,69 +531,65 @@ func shouldStopOnError(err error, opts *ExpandOptions) bool { return false } -// ExpandSchema expands the refs in the schema object +// ExpandSchema expands the refs in the schema object with reference to the root object +// go-openapi/validate uses this function +// notice that it is impossible to reference a json scema in a different file other than root func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error { - return ExpandSchemaWithBasePath(schema, root, cache, nil) + // Only save the root to a tmp file if it isn't nil. + var base string + if root != nil { + base, _ = absPath("root") + if cache == nil { + cache = resCache + } + cache.Set(normalizeAbsPath(base), root) + base = "root" + } + + opts := &ExpandOptions{ + RelativeBase: base, + SkipSchemas: false, + ContinueOnError: false, + } + return ExpandSchemaWithBasePath(schema, cache, opts) } // ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options -func ExpandSchemaWithBasePath(schema *Schema, root interface{}, cache ResolutionCache, opts *ExpandOptions) error { +func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error { if schema == nil { return nil } - if root == nil { - root = schema + + var basePath string + if opts.RelativeBase != "" { + basePath, _ = absPath(opts.RelativeBase) } - nrr, _ := NewRef(schema.ID) - var rrr *Ref - if nrr.String() != "" { - switch rt := root.(type) { - case *Schema: - rid, _ := NewRef(rt.ID) - rrr, _ = rid.Inherits(nrr) - case *Swagger: - rid, _ := NewRef(rt.ID) - rrr, _ = rid.Inherits(nrr) - } - } - - resolver, err := defaultSchemaLoader(root, rrr, opts, cache) + resolver, err := defaultSchemaLoader(nil, opts, cache) if err != nil { return err } refs := []string{""} - if rrr != nil { - refs[0] = rrr.String() - } var s *Schema - if s, err = expandSchema(*schema, refs, resolver); err != nil { + if s, err = expandSchema(*schema, refs, resolver, basePath); err != nil { return err } *schema = *s return nil } -func expandItems(target Schema, parentRefs []string, resolver *schemaLoader) (*Schema, error) { +func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) { if target.Items != nil { if target.Items.Schema != nil { - t, err := expandSchema(*target.Items.Schema, parentRefs, resolver) + t, err := expandSchema(*target.Items.Schema, parentRefs, resolver, basePath) if err != nil { - if target.Items.Schema.ID == "" { - target.Items.Schema.ID = target.ID - if err != nil { - t, err = expandSchema(*target.Items.Schema, parentRefs, resolver) - if err != nil { - return nil, err - } - } - } + return nil, err } *target.Items.Schema = *t } for i := range target.Items.Schemas { - t, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver) + t, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver, basePath) if err != nil { return nil, err } @@ -638,36 +599,84 @@ func expandItems(target Schema, parentRefs []string, resolver *schemaLoader) (*S return &target, nil } -func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (*Schema, error) { +// basePathFromSchemaID returns a new basePath based on an existing basePath and a schema ID +func basePathFromSchemaID(oldBasePath, id string) string { + u, err := url.Parse(oldBasePath) + if err != nil { + panic(err) + } + uid, err := url.Parse(id) + if err != nil { + panic(err) + } + + if path.IsAbs(uid.Path) { + return id + } + u.Path = path.Join(path.Dir(u.Path), uid.Path) + return u.String() +} + +func isCircular(ref *Ref, basePath string, parentRefs ...string) bool { + return basePath != "" && swag.ContainsStringsCI(parentRefs, ref.String()) +} + +func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) { if target.Ref.String() == "" && target.Ref.IsRoot() { - debugLog("skipping expand schema for no ref and root: %v", resolver.root) + // normalizing is important + newRef := normalizeFileRef(&target.Ref, basePath) + target.Ref = *newRef + return &target, nil - return resolver.root.(*Schema), nil } - // t is the new expanded schema + /* change the base path of resolution when an ID is encountered + otherwise the basePath should inherit the parent's */ + // important: ID can be relative path + if target.ID != "" { + // handling the case when id is a folder + // remember that basePath has to be a file + refPath := target.ID + if strings.HasSuffix(target.ID, "/") { + // path.Clean here would not work correctly if basepath is http + refPath = fmt.Sprintf("%s%s", refPath, "placeholder.json") + } + basePath = normalizePaths(refPath, basePath) + } + + /* Explain here what this function does */ + var t *Schema + /* if Ref is found, everything else doesn't matter */ + /* Ref also changes the resolution scope of children expandSchema */ + if target.Ref.String() != "" { + /* Here the resolution scope is changed because a $ref was encountered */ + normalizedRef := normalizeFileRef(&target.Ref, basePath) + normalizedBasePath := normalizedRef.RemoteURI() - for target.Ref.String() != "" { - if swag.ContainsStringsCI(parentRefs, target.Ref.String()) { + /* this means there is a circle in the recursion tree */ + /* return the Ref */ + if isCircular(normalizedRef, basePath, parentRefs...) { + target.Ref = *normalizedRef return &target, nil } - if err := resolver.Resolve(&target.Ref, &t); shouldStopOnError(err, resolver.options) { - return &target, err + debugLog("\nbasePath: %s", basePath) + if Debug { + b, _ := json.Marshal(target) + debugLog("calling Resolve with target: %s", string(b)) + } + if err := resolver.Resolve(&target.Ref, &t, basePath); shouldStopOnError(err, resolver.options) { + return nil, err } - if swag.ContainsStringsCI(parentRefs, target.Ref.String()) { - debugLog("ref already exists in parent") - return &target, nil - } - parentRefs = append(parentRefs, target.Ref.String()) if t != nil { - target = *t + parentRefs = append(parentRefs, normalizedRef.String()) + return expandSchema(*t, parentRefs, resolver, normalizedBasePath) } } - t, err := expandItems(target, parentRefs, resolver) + t, err := expandItems(target, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -676,23 +685,21 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } for i := range target.AllOf { - t, err := expandSchema(target.AllOf[i], parentRefs, resolver) + t, err := expandSchema(target.AllOf[i], parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } - if t != nil { - target.AllOf[i] = *t - } + target.AllOf[i] = *t } for i := range target.AnyOf { - t, err := expandSchema(target.AnyOf[i], parentRefs, resolver) + t, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } target.AnyOf[i] = *t } for i := range target.OneOf { - t, err := expandSchema(target.OneOf[i], parentRefs, resolver) + t, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -701,7 +708,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } } if target.Not != nil { - t, err := expandSchema(*target.Not, parentRefs, resolver) + t, err := expandSchema(*target.Not, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -710,7 +717,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } } for k := range target.Properties { - t, err := expandSchema(target.Properties[k], parentRefs, resolver) + t, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -719,7 +726,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } } if target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil { - t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver) + t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -728,7 +735,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } } for k := range target.PatternProperties { - t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver) + t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -738,7 +745,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } for k := range target.Dependencies { if target.Dependencies[k].Schema != nil { - t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver) + t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -748,7 +755,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } } if target.AdditionalItems != nil && target.AdditionalItems.Schema != nil { - t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver) + t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -757,7 +764,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* } } for k := range target.Definitions { - t, err := expandSchema(target.Definitions[k], parentRefs, resolver) + t, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return &target, err } @@ -768,55 +775,78 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader) (* return &target, nil } -func expandPathItem(pathItem *PathItem, resolver *schemaLoader) error { +func derefPathItem(pathItem *PathItem, parentRefs []string, resolver *schemaLoader, basePath string) error { + curRef := pathItem.Ref.String() + if curRef != "" { + normalizedRef := normalizeFileRef(&pathItem.Ref, basePath) + normalizedBasePath := normalizedRef.RemoteURI() + + if isCircular(normalizedRef, basePath, parentRefs...) { + return nil + } + + if err := resolver.Resolve(&pathItem.Ref, pathItem, basePath); shouldStopOnError(err, resolver.options) { + return err + } + + if pathItem.Ref.String() != "" && pathItem.Ref.String() != curRef && basePath != normalizedBasePath { + parentRefs = append(parentRefs, normalizedRef.String()) + return derefPathItem(pathItem, parentRefs, resolver, normalizedBasePath) + } + } + + return nil +} + +func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error { if pathItem == nil { return nil } - if pathItem.Ref.String() != "" { - if err := resolver.Resolve(&pathItem.Ref, &pathItem); err != nil { - return err - } - resolver.reset() - pathItem.Ref = Ref{} + parentRefs := []string{} + if err := derefPathItem(pathItem, parentRefs, resolver, basePath); shouldStopOnError(err, resolver.options) { + return err } + pathItem.Ref = Ref{} + + parentRefs = parentRefs[0:] for idx := range pathItem.Parameters { - if err := expandParameter(&(pathItem.Parameters[idx]), resolver); shouldStopOnError(err, resolver.options) { + if err := expandParameter(&(pathItem.Parameters[idx]), resolver, basePath); shouldStopOnError(err, resolver.options) { return err } } - if err := expandOperation(pathItem.Get, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Get, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } - if err := expandOperation(pathItem.Head, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Head, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } - if err := expandOperation(pathItem.Options, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Options, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } - if err := expandOperation(pathItem.Put, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Put, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } - if err := expandOperation(pathItem.Post, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Post, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } - if err := expandOperation(pathItem.Patch, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Patch, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } - if err := expandOperation(pathItem.Delete, resolver); shouldStopOnError(err, resolver.options) { + if err := expandOperation(pathItem.Delete, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } return nil } -func expandOperation(op *Operation, resolver *schemaLoader) error { +func expandOperation(op *Operation, resolver *schemaLoader, basePath string) error { if op == nil { return nil } for i, param := range op.Parameters { - if err := expandParameter(¶m, resolver); shouldStopOnError(err, resolver.options) { + if err := expandParameter(¶m, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } op.Parameters[i] = param @@ -824,11 +854,11 @@ func expandOperation(op *Operation, resolver *schemaLoader) error { if op.Responses != nil { responses := op.Responses - if err := expandResponse(responses.Default, resolver); shouldStopOnError(err, resolver.options) { + if err := expandResponse(responses.Default, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } for code, response := range responses.StatusCodeResponses { - if err := expandResponse(&response, resolver); shouldStopOnError(err, resolver.options) { + if err := expandResponse(&response, resolver, basePath); shouldStopOnError(err, resolver.options) { return err } responses.StatusCodeResponses[code] = response @@ -837,63 +867,125 @@ func expandOperation(op *Operation, resolver *schemaLoader) error { return nil } -func expandResponse(response *Response, resolver *schemaLoader) error { +// ExpandResponse expands a response based on a basepath +// This is the exported version of expandResponse +// all refs inside response will be resolved relative to basePath +func ExpandResponse(response *Response, basePath string) error { + opts := &ExpandOptions{ + RelativeBase: basePath, + } + resolver, err := defaultSchemaLoader(nil, opts, nil) + if err != nil { + return err + } + + return expandResponse(response, resolver, basePath) +} + +func derefResponse(response *Response, parentRefs []string, resolver *schemaLoader, basePath string) error { + curRef := response.Ref.String() + if curRef != "" { + /* Here the resolution scope is changed because a $ref was encountered */ + normalizedRef := normalizeFileRef(&response.Ref, basePath) + normalizedBasePath := normalizedRef.RemoteURI() + + if isCircular(normalizedRef, basePath, parentRefs...) { + return nil + } + + if err := resolver.Resolve(&response.Ref, response, basePath); shouldStopOnError(err, resolver.options) { + return err + } + + if response.Ref.String() != "" && response.Ref.String() != curRef && basePath != normalizedBasePath { + parentRefs = append(parentRefs, normalizedRef.String()) + return derefResponse(response, parentRefs, resolver, normalizedBasePath) + } + } + + return nil +} + +func expandResponse(response *Response, resolver *schemaLoader, basePath string) error { if response == nil { return nil } - var parentRefs []string - - if response.Ref.String() != "" { - parentRefs = append(parentRefs, response.Ref.String()) - if err := resolver.Resolve(&response.Ref, response); shouldStopOnError(err, resolver.options) { - return err - } - resolver.reset() - response.Ref = Ref{} + parentRefs := []string{} + if err := derefResponse(response, parentRefs, resolver, basePath); shouldStopOnError(err, resolver.options) { + return err } + response.Ref = Ref{} + parentRefs = parentRefs[0:] if !resolver.options.SkipSchemas && response.Schema != nil { parentRefs = append(parentRefs, response.Schema.Ref.String()) - debugLog("response ref: %s", response.Schema.Ref) - if err := resolver.Resolve(&response.Schema.Ref, &response.Schema); shouldStopOnError(err, resolver.options) { - return err - } - s, err := expandSchema(*response.Schema, parentRefs, resolver) + s, err := expandSchema(*response.Schema, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return err } - resolver.reset() *response.Schema = *s } + return nil } -func expandParameter(parameter *Parameter, resolver *schemaLoader) error { +// ExpandParameter expands a parameter based on a basepath +// This is the exported version of expandParameter +// all refs inside parameter will be resolved relative to basePath +func ExpandParameter(parameter *Parameter, basePath string) error { + opts := &ExpandOptions{ + RelativeBase: basePath, + } + resolver, err := defaultSchemaLoader(nil, opts, nil) + if err != nil { + return err + } + + return expandParameter(parameter, resolver, basePath) +} + +func derefParameter(parameter *Parameter, parentRefs []string, resolver *schemaLoader, basePath string) error { + curRef := parameter.Ref.String() + if curRef != "" { + normalizedRef := normalizeFileRef(¶meter.Ref, basePath) + normalizedBasePath := normalizedRef.RemoteURI() + + if isCircular(normalizedRef, basePath, parentRefs...) { + return nil + } + + if err := resolver.Resolve(¶meter.Ref, parameter, basePath); shouldStopOnError(err, resolver.options) { + return err + } + + if parameter.Ref.String() != "" && parameter.Ref.String() != curRef && basePath != normalizedBasePath { + parentRefs = append(parentRefs, normalizedRef.String()) + return derefParameter(parameter, parentRefs, resolver, normalizedBasePath) + } + } + + return nil +} + +func expandParameter(parameter *Parameter, resolver *schemaLoader, basePath string) error { if parameter == nil { return nil } - var parentRefs []string - - if parameter.Ref.String() != "" { - parentRefs = append(parentRefs, parameter.Ref.String()) - if err := resolver.Resolve(¶meter.Ref, parameter); shouldStopOnError(err, resolver.options) { - return err - } - resolver.reset() - parameter.Ref = Ref{} + parentRefs := []string{} + if err := derefParameter(parameter, parentRefs, resolver, basePath); shouldStopOnError(err, resolver.options) { + return err } + parameter.Ref = Ref{} + + parentRefs = parentRefs[0:] if !resolver.options.SkipSchemas && parameter.Schema != nil { parentRefs = append(parentRefs, parameter.Schema.Ref.String()) - if err := resolver.Resolve(¶meter.Schema.Ref, ¶meter.Schema); shouldStopOnError(err, resolver.options) { - return err - } - s, err := expandSchema(*parameter.Schema, parentRefs, resolver) + s, err := expandSchema(*parameter.Schema, parentRefs, resolver, basePath) if shouldStopOnError(err, resolver.options) { return err } - resolver.reset() *parameter.Schema = *s } return nil diff --git a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/items.go b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/items.go index 46944fb6..492423ef 100644 --- a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/items.go +++ b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/items.go @@ -28,6 +28,7 @@ type SimpleSchema struct { Items *Items `json:"items,omitempty"` CollectionFormat string `json:"collectionFormat,omitempty"` Default interface{} `json:"default,omitempty"` + Example interface{} `json:"example,omitempty"` } func (s *SimpleSchema) TypeName() string { @@ -178,9 +179,14 @@ func (i *Items) UnmarshalJSON(data []byte) error { if err := json.Unmarshal(data, &simpleSchema); err != nil { return err } + var vendorExtensible VendorExtensible + if err := json.Unmarshal(data, &vendorExtensible); err != nil { + return err + } i.Refable = ref i.CommonValidations = validations i.SimpleSchema = simpleSchema + i.VendorExtensible = vendorExtensible return nil } @@ -198,7 +204,11 @@ func (i Items) MarshalJSON() ([]byte, error) { if err != nil { return nil, err } - return swag.ConcatJSON(b3, b1, b2), nil + b4, err := json.Marshal(i.VendorExtensible) + if err != nil { + return nil, err + } + return swag.ConcatJSON(b4, b3, b1, b2), nil } // JSONLookup look up a value by the json property name diff --git a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/operation.go b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/operation.go index de1db6f0..e698f9e8 100644 --- a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/operation.go +++ b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/operation.go @@ -31,11 +31,36 @@ type OperationProps struct { ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"` ID string `json:"operationId,omitempty"` Deprecated bool `json:"deprecated,omitempty"` - Security []map[string][]string `json:"security,omitempty"` + Security []map[string][]string `json:"security,omitempty"` //Special case, see MarshalJSON function Parameters []Parameter `json:"parameters,omitempty"` Responses *Responses `json:"responses,omitempty"` } +// MarshalJSON takes care of serializing operation properties to JSON +// +// We use a custom marhaller here to handle a special cases related +// the Security field. We need to preserve zero length slice +// while omiting the field when the value is nil/unset. +func (op OperationProps) MarshalJSON() ([]byte, error) { + type Alias OperationProps + if op.Security == nil { + return json.Marshal(&struct { + Security []map[string][]string `json:"security,omitempty"` + *Alias + }{ + Security: op.Security, + Alias: (*Alias)(&op), + }) + } + return json.Marshal(&struct { + Security []map[string][]string `json:"security"` + *Alias + }{ + Security: op.Security, + Alias: (*Alias)(&op), + }) +} + // Operation describes a single API operation on a path. // // For more information: http://goo.gl/8us55a#operationObject diff --git a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/ref.go b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/ref.go index 4833b87e..1405bfd8 100644 --- a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/ref.go +++ b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/ref.go @@ -145,7 +145,10 @@ func (r *Ref) UnmarshalJSON(d []byte) error { if err := json.Unmarshal(d, &v); err != nil { return err } + return r.fromMap(v) +} +func (r *Ref) fromMap(v map[string]interface{}) error { if v == nil { return nil } diff --git a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/schema.go b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/schema.go index 1cdcc163..05c1a4aa 100644 --- a/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/schema.go +++ b/vendor/k8s.io/code-generator/vendor/github.com/go-openapi/spec/schema.go @@ -135,6 +135,10 @@ func (r *SchemaURL) UnmarshalJSON(data []byte) error { if err := json.Unmarshal(data, &v); err != nil { return err } + return r.fromMap(v) +} + +func (r *SchemaURL) fromMap(v map[string]interface{}) error { if v == nil { return nil } @@ -582,18 +586,17 @@ func (s Schema) MarshalJSON() ([]byte, error) { // UnmarshalJSON marshal this from JSON func (s *Schema) UnmarshalJSON(data []byte) error { - var sch Schema - if err := json.Unmarshal(data, &sch.SchemaProps); err != nil { + props := struct { + SchemaProps + SwaggerSchemaProps + }{} + if err := json.Unmarshal(data, &props); err != nil { return err } - if err := json.Unmarshal(data, &sch.Ref); err != nil { - return err - } - if err := json.Unmarshal(data, &sch.Schema); err != nil { - return err - } - if err := json.Unmarshal(data, &sch.SwaggerSchemaProps); err != nil { - return err + + sch := Schema{ + SchemaProps: props.SchemaProps, + SwaggerSchemaProps: props.SwaggerSchemaProps, } var d map[string]interface{} @@ -601,6 +604,9 @@ func (s *Schema) UnmarshalJSON(data []byte) error { return err } + sch.Ref.fromMap(d) + sch.Schema.fromMap(d) + delete(d, "$ref") delete(d, "$schema") for _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {