691 lines
18 KiB
JSON
691 lines
18 KiB
JSON
|
[
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "certificates.networking.internal.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "networking.internal.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1alpha1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type==\"Ready\")].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type==\"Ready\")].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Certificate",
|
||
|
"plural": "certificates",
|
||
|
"singular": "certificate",
|
||
|
"categories": [
|
||
|
"knative-internal",
|
||
|
"networking"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"kcert"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "configurations.serving.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true",
|
||
|
"duck.knative.dev/podspecable": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "serving.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "LatestCreated",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.latestCreatedRevisionName"
|
||
|
},
|
||
|
{
|
||
|
"name": "LatestReady",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.latestReadyRevisionName"
|
||
|
},
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Configuration",
|
||
|
"plural": "configurations",
|
||
|
"singular": "configuration",
|
||
|
"categories": [
|
||
|
"all",
|
||
|
"knative",
|
||
|
"serving"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"config",
|
||
|
"cfg"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "ingresses.networking.internal.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "networking.internal.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1alpha1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Ingress",
|
||
|
"plural": "ingresses",
|
||
|
"singular": "ingress",
|
||
|
"categories": [
|
||
|
"knative-internal",
|
||
|
"networking"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"kingress",
|
||
|
"king"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "metrics.autoscaling.internal.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "autoscaling.internal.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1alpha1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Metric",
|
||
|
"plural": "metrics",
|
||
|
"singular": "metric",
|
||
|
"categories": [
|
||
|
"knative-internal",
|
||
|
"autoscaling"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "podautoscalers.autoscaling.internal.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "autoscaling.internal.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1alpha1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "DesiredScale",
|
||
|
"type": "integer",
|
||
|
"jsonPath": ".status.desiredScale"
|
||
|
},
|
||
|
{
|
||
|
"name": "ActualScale",
|
||
|
"type": "integer",
|
||
|
"jsonPath": ".status.actualScale"
|
||
|
},
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "PodAutoscaler",
|
||
|
"plural": "podautoscalers",
|
||
|
"singular": "podautoscaler",
|
||
|
"categories": [
|
||
|
"knative-internal",
|
||
|
"autoscaling"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"kpa",
|
||
|
"pa"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "revisions.serving.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "serving.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "Config Name",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".metadata.labels['serving\\.knative\\.dev/configuration']"
|
||
|
},
|
||
|
{
|
||
|
"name": "K8s Service Name",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.serviceName"
|
||
|
},
|
||
|
{
|
||
|
"name": "Generation",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".metadata.labels['serving\\.knative\\.dev/configurationGeneration']"
|
||
|
},
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Revision",
|
||
|
"plural": "revisions",
|
||
|
"singular": "revision",
|
||
|
"categories": [
|
||
|
"all",
|
||
|
"knative",
|
||
|
"serving"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"rev"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "routes.serving.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true",
|
||
|
"duck.knative.dev/addressable": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "serving.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "URL",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.url"
|
||
|
},
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Route",
|
||
|
"plural": "routes",
|
||
|
"singular": "route",
|
||
|
"categories": [
|
||
|
"all",
|
||
|
"knative",
|
||
|
"serving"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"rt"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "serverlessservices.networking.internal.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "networking.internal.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1alpha1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "Mode",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".spec.mode"
|
||
|
},
|
||
|
{
|
||
|
"name": "Activators",
|
||
|
"type": "integer",
|
||
|
"jsonPath": ".spec.numActivators"
|
||
|
},
|
||
|
{
|
||
|
"name": "ServiceName",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.serviceName"
|
||
|
},
|
||
|
{
|
||
|
"name": "PrivateServiceName",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.privateServiceName"
|
||
|
},
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "ServerlessService",
|
||
|
"plural": "serverlessservices",
|
||
|
"singular": "serverlessservice",
|
||
|
"categories": [
|
||
|
"knative-internal",
|
||
|
"networking"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"sks"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "services.serving.knative.dev",
|
||
|
"labels": {
|
||
|
"serving.knative.dev/release": "v0.19.0",
|
||
|
"knative.dev/crd-install": "true",
|
||
|
"duck.knative.dev/addressable": "true",
|
||
|
"duck.knative.dev/podspecable": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "serving.knative.dev",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true,
|
||
|
"properties": {
|
||
|
"spec": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true,
|
||
|
"properties": {
|
||
|
"template": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true,
|
||
|
"description": "A template for the current desired application state.\nChanges to `template` will cause a new Revision to be created as\ndefined in the lifecycle section. The contents of the Service's\nRevisionTemplateSpec is used to create a corresponding Configuration.\n"
|
||
|
},
|
||
|
"traffic": {
|
||
|
"x-kubernetes-preserve-unknown-fields": true,
|
||
|
"type": "array",
|
||
|
"description": "Traffic specifies how to distribute traffic over a\ncollection of Revisions belonging to the Service. If traffic is\nempty or not provided, defaults to 100% traffic to the latest\n`Ready` Revision. The contents of the Service's TrafficTarget is\nused to create a corresponding Route.\n",
|
||
|
"items": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true,
|
||
|
"properties": {
|
||
|
"revisionName": {
|
||
|
"type": "string",
|
||
|
"description": "A specific revision to which to send this portion\nof traffic.\nThis is mutually exclusive with configurationName.\n"
|
||
|
},
|
||
|
"configurationName": {
|
||
|
"type": "string",
|
||
|
"description": "ConfigurationName of a configuration to whose latest revision we will send\nthis portion of traffic. When the \"status.latestReadyRevisionName\" of the\nreferenced configuration changes, we will automatically migrate traffic\nfrom the prior \"latest ready\" revision to the new one. This field is never\nset in Route's status, only its spec.\nThis is mutually exclusive with RevisionName.\n"
|
||
|
},
|
||
|
"latestRevision": {
|
||
|
"type": "boolean",
|
||
|
"description": "`latestRevision` may be optionally provided to indicate\nthat the latest ready Revision of the Configuration should be used\nfor this traffic target. When provided latestRevision MUST be true\nif revisionName is empty, and it MUST be false when revisionName is non-empty.\n"
|
||
|
},
|
||
|
"tag": {
|
||
|
"type": "string",
|
||
|
"description": "Tag is optionally used to expose a dedicated URL for\nreferencing this target exclusively. The dedicated URL MUST include\nin it the string provided by tag.\n"
|
||
|
},
|
||
|
"percent": {
|
||
|
"type": "integer",
|
||
|
"description": "The percentage of requests which should be allocated\nfrom the main Route domain name to the specified `revisionName` or\n`configurationName`.\nAll `percent` values in `traffic` MUST sum to 100.\n",
|
||
|
"minimum": 0,
|
||
|
"maximum": 100
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"status": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "URL",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.url"
|
||
|
},
|
||
|
{
|
||
|
"name": "LatestCreated",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.latestCreatedRevisionName"
|
||
|
},
|
||
|
{
|
||
|
"name": "LatestReady",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.latestReadyRevisionName"
|
||
|
},
|
||
|
{
|
||
|
"name": "Ready",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].status"
|
||
|
},
|
||
|
{
|
||
|
"name": "Reason",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".status.conditions[?(@.type=='Ready')].reason"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"names": {
|
||
|
"kind": "Service",
|
||
|
"plural": "services",
|
||
|
"singular": "service",
|
||
|
"categories": [
|
||
|
"all",
|
||
|
"knative",
|
||
|
"serving"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"kservice",
|
||
|
"ksvc"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"apiVersion": "apiextensions.k8s.io/v1",
|
||
|
"kind": "CustomResourceDefinition",
|
||
|
"metadata": {
|
||
|
"name": "images.caching.internal.knative.dev",
|
||
|
"labels": {
|
||
|
"knative.dev/crd-install": "true"
|
||
|
}
|
||
|
},
|
||
|
"spec": {
|
||
|
"group": "caching.internal.knative.dev",
|
||
|
"names": {
|
||
|
"kind": "Image",
|
||
|
"plural": "images",
|
||
|
"singular": "image",
|
||
|
"categories": [
|
||
|
"knative-internal",
|
||
|
"caching"
|
||
|
],
|
||
|
"shortNames": [
|
||
|
"img"
|
||
|
]
|
||
|
},
|
||
|
"scope": "Namespaced",
|
||
|
"versions": [
|
||
|
{
|
||
|
"name": "v1alpha1",
|
||
|
"served": true,
|
||
|
"storage": true,
|
||
|
"subresources": {
|
||
|
"status": {
|
||
|
}
|
||
|
},
|
||
|
"schema": {
|
||
|
"openAPIV3Schema": {
|
||
|
"type": "object",
|
||
|
"x-kubernetes-preserve-unknown-fields": true
|
||
|
}
|
||
|
},
|
||
|
"additionalPrinterColumns": [
|
||
|
{
|
||
|
"name": "Image",
|
||
|
"type": "string",
|
||
|
"jsonPath": ".spec.image"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|