diff --git a/go.mod b/go.mod index d15aa3fd3..48c2662fd 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/ahmetb/gen-crd-api-reference-docs v0.3.0 github.com/gardener/external-dns-management v0.14.2 - github.com/gardener/gardener v1.82.1 + github.com/gardener/gardener v1.83.0 github.com/go-logr/logr v1.2.4 github.com/hashicorp/go-multierror v1.1.1 github.com/onsi/ginkgo/v2 v2.12.1 @@ -36,7 +36,7 @@ require ( github.com/bronze1man/yaml2json v0.0.0-20211227013850-8972abeaea25 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.2 // indirect + github.com/cyphar/filepath-securejoin v0.2.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect @@ -64,7 +64,7 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect github.com/google/uuid v1.3.0 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.3.2 // indirect github.com/imdario/mergo v0.3.12 // indirect diff --git a/go.sum b/go.sum index 0ef4b2dab..44dba3185 100644 --- a/go.sum +++ b/go.sum @@ -98,8 +98,8 @@ github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -138,8 +138,8 @@ github.com/gardener/etcd-druid v0.20.1 h1:o6F4higujfg7dvBXvk+yPb86+3t2+XLE0Hmw5W github.com/gardener/etcd-druid v0.20.1/go.mod h1:1tAeHycB0Vb2GfCX6sUCc6V6frGrCQI//quVg4K3GNA= github.com/gardener/external-dns-management v0.14.2 h1:l7ohlZTOplyK+1AuzO9a1J4/ChyGIuKtLFoyrU+T2uI= github.com/gardener/external-dns-management v0.14.2/go.mod h1:dwWtamT74fAhrw2v8N/72XEtc9TvG4R6Gwd0FXKF9Do= -github.com/gardener/gardener v1.82.1 h1:u7p3v7XN9YI3Z6EGQ90g/J5Nk6ToLWqB4wLCIzzhUFE= -github.com/gardener/gardener v1.82.1/go.mod h1:ZdLfUC8Ia/Qo+e13FspxHsMJZ9c3DTek6Iy0ff0QQzc= +github.com/gardener/gardener v1.83.0 h1:lszriM/fi9A+TOKPOdQR93qAIhysBMFa4q2wpIU2S/8= +github.com/gardener/gardener v1.83.0/go.mod h1:WbCEy0CuG3fk1QFDeQeagwvWRtA7FaiuP9ska9EA7Xc= github.com/gardener/hvpa-controller/api v0.5.0 h1:f4F3O7YUrenwh4S3TgPREPiB287JjjUiUL18OqPLyAA= github.com/gardener/hvpa-controller/api v0.5.0/go.mod h1:QQl3ELkCaki+8RhXl0FZMfvnm0WCGwGJlGmrxJj6lvM= github.com/gardener/machine-controller-manager v0.50.0 h1:3dcQjzueFU1TGgprV00adjb3OCR99myTBx8DQGxywks= @@ -271,8 +271,9 @@ github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= diff --git a/vendor/github.com/cyphar/filepath-securejoin/.travis.yml b/vendor/github.com/cyphar/filepath-securejoin/.travis.yml index 3938f3834..b94ff8cf9 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/.travis.yml +++ b/vendor/github.com/cyphar/filepath-securejoin/.travis.yml @@ -4,10 +4,12 @@ language: go go: - - 1.7.x - - 1.8.x + - 1.13.x + - 1.16.x - tip - +arch: + - AMD64 + - ppc64le os: - linux - osx diff --git a/vendor/github.com/cyphar/filepath-securejoin/README.md b/vendor/github.com/cyphar/filepath-securejoin/README.md index 49b2baa9f..3624617c8 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/README.md +++ b/vendor/github.com/cyphar/filepath-securejoin/README.md @@ -7,6 +7,19 @@ standard library][go#20126]. The purpose of this function is to be a "secure" alternative to `filepath.Join`, and in particular it provides certain guarantees that are not provided by `filepath.Join`. +> **NOTE**: This code is *only* safe if you are not at risk of other processes +> modifying path components after you've used `SecureJoin`. If it is possible +> for a malicious process to modify path components of the resolved path, then +> you will be vulnerable to some fairly trivial TOCTOU race conditions. [There +> are some Linux kernel patches I'm working on which might allow for a better +> solution.][lwn-obeneath] +> +> In addition, with a slightly modified API it might be possible to use +> `O_PATH` and verify that the opened path is actually the resolved one -- but +> I have not done that yet. I might add it in the future as a helper function +> to help users verify the path (we can't just return `/proc/self/fd/` +> because that doesn't always work transparently for all users). + This is the function prototype: ```go @@ -16,8 +29,8 @@ func SecureJoin(root, unsafePath string) (string, error) This library **guarantees** the following: * If no error is set, the resulting string **must** be a child path of - `SecureJoin` and will not contain any symlink path components (they will all - be expanded). + `root` and will not contain any symlink path components (they will all be + expanded). * When expanding symlinks, all symlink path components **must** be resolved relative to the provided root. In particular, this can be considered a @@ -25,7 +38,7 @@ This library **guarantees** the following: these symlinks will **not** be expanded lexically (`filepath.Clean` is not called on the input before processing). -* Non-existant path components are unaffected by `SecureJoin` (similar to +* Non-existent path components are unaffected by `SecureJoin` (similar to `filepath.EvalSymlinks`'s semantics). * The returned path will always be `filepath.Clean`ed and thus not contain any @@ -57,6 +70,7 @@ func SecureJoin(root, unsafePath string) (string, error) { } ``` +[lwn-obeneath]: https://lwn.net/Articles/767547/ [go#20126]: https://github.com/golang/go/issues/20126 ### License ### diff --git a/vendor/github.com/cyphar/filepath-securejoin/VERSION b/vendor/github.com/cyphar/filepath-securejoin/VERSION index ee1372d33..717903969 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/VERSION +++ b/vendor/github.com/cyphar/filepath-securejoin/VERSION @@ -1 +1 @@ -0.2.2 +0.2.3 diff --git a/vendor/github.com/cyphar/filepath-securejoin/join.go b/vendor/github.com/cyphar/filepath-securejoin/join.go index c4ca3d713..7dd08dbbd 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/join.go +++ b/vendor/github.com/cyphar/filepath-securejoin/join.go @@ -12,39 +12,20 @@ package securejoin import ( "bytes" + "errors" "os" "path/filepath" "strings" "syscall" - - "github.com/pkg/errors" ) -// ErrSymlinkLoop is returned by SecureJoinVFS when too many symlinks have been -// evaluated in attempting to securely join the two given paths. -var ErrSymlinkLoop = errors.Wrap(syscall.ELOOP, "secure join") - // IsNotExist tells you if err is an error that implies that either the path // accessed does not exist (or path components don't exist). This is // effectively a more broad version of os.IsNotExist. func IsNotExist(err error) bool { - // If it's a bone-fide ENOENT just bail. - if os.IsNotExist(errors.Cause(err)) { - return true - } - // Check that it's not actually an ENOTDIR, which in some cases is a more // convoluted case of ENOENT (usually involving weird paths). - var errno error - switch err := errors.Cause(err).(type) { - case *os.PathError: - errno = err.Err - case *os.LinkError: - errno = err.Err - case *os.SyscallError: - errno = err.Err - } - return errno == syscall.ENOTDIR || errno == syscall.ENOENT + return errors.Is(err, os.ErrNotExist) || errors.Is(err, syscall.ENOTDIR) || errors.Is(err, syscall.ENOENT) } // SecureJoinVFS joins the two given path components (similar to Join) except @@ -68,7 +49,7 @@ func SecureJoinVFS(root, unsafePath string, vfs VFS) (string, error) { n := 0 for unsafePath != "" { if n > 255 { - return "", ErrSymlinkLoop + return "", &os.PathError{Op: "SecureJoin", Path: root + "/" + unsafePath, Err: syscall.ELOOP} } // Next path component, p. diff --git a/vendor/github.com/cyphar/filepath-securejoin/vendor.conf b/vendor/github.com/cyphar/filepath-securejoin/vendor.conf deleted file mode 100644 index 66bb574b9..000000000 --- a/vendor/github.com/cyphar/filepath-securejoin/vendor.conf +++ /dev/null @@ -1 +0,0 @@ -github.com/pkg/errors v0.8.0 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor b/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/doc.go b/vendor/github.com/gardener/gardener/hack/.ci/doc.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/prepare_release b/vendor/github.com/gardener/gardener/hack/.ci/prepare_release old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version b/vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt b/vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/add-license-header.sh b/vendor/github.com/gardener/gardener/hack/add-license-header.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-apidiff.sh b/vendor/github.com/gardener/gardener/hack/check-apidiff.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-charts.sh b/vendor/github.com/gardener/gardener/hack/check-charts.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-docforge.sh b/vendor/github.com/gardener/gardener/hack/check-docforge.sh deleted file mode 100755 index 8186f74a8..000000000 --- a/vendor/github.com/gardener/gardener/hack/check-docforge.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright 2021 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file -# -# 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. - -set -e - -docCommitHash="fa2e9f84851be81e85668986675db235bb43a6b5" - -echo "> Check Docforge Manifest" -repoPath=${1-"$(readlink -f "$(dirname "${0}")/..")"} -manifestPath=${2-"${repoPath}/.docforge/manifest.yaml"} -diffDirs=${3-".docforge/;docs/"} -repoName=${4-"gardener"} -useToken=${5-false} - -tmpDir=$(mktemp -d) -function cleanup { - rm -rf "$tmpDir" -} -trap cleanup EXIT ERR INT TERM - -curl https://raw.githubusercontent.com/gardener/documentation/${docCommitHash}/.ci/check-manifest --output "${tmpDir}/check-manifest-script.sh" && chmod +x "${tmpDir}/check-manifest-script.sh" -curl https://raw.githubusercontent.com/gardener/documentation/${docCommitHash}/.ci/check-manifest-config --output "${tmpDir}/manifest-config" -scriptPath="${tmpDir}/check-manifest-script.sh" -configPath="${tmpDir}/manifest-config" - -${scriptPath} --repo-path "${repoPath}" --repo-name "${repoName}" --use-token "${useToken}" --manifest-path "${manifestPath}" --diff-dirs "${diffDirs}" --config-path "${configPath}" diff --git a/vendor/github.com/gardener/gardener/hack/check-generate.sh b/vendor/github.com/gardener/gardener/hack/check-generate.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-imports.sh b/vendor/github.com/gardener/gardener/hack/check-imports.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-license-header.sh b/vendor/github.com/gardener/gardener/hack/check-license-header.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-plutono-dashboards.sh b/vendor/github.com/gardener/gardener/hack/check-plutono-dashboards.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-skaffold-deps-for-binary.sh b/vendor/github.com/gardener/gardener/hack/check-skaffold-deps-for-binary.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-skaffold-deps.sh b/vendor/github.com/gardener/gardener/hack/check-skaffold-deps.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check.sh b/vendor/github.com/gardener/gardener/hack/check.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh b/vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-common.sh b/vendor/github.com/gardener/gardener/hack/ci-common.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-multi-zone.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-multi-zone.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-single-zone.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-single-zone.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration-ha-single-zone.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration-ha-single-zone.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-operator.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-operator.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-upgrade.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-upgrade.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/clean.sh b/vendor/github.com/gardener/gardener/hack/clean.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-admission-plugins.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-admission-plugins.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-api-groups.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-api-groups.sh new file mode 100644 index 000000000..59b0818cf --- /dev/null +++ b/vendor/github.com/gardener/gardener/hack/compare-k8s-api-groups.sh @@ -0,0 +1,90 @@ +#!/usr/bin/env bash +# +# Copyright 2023 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +usage() { + echo "Usage:" + echo "> compare-k8s-apigroups.sh [ -h | ]" + echo + echo ">> For example: compare-k8s-apigroups.sh 1.26 1.27" + + exit 0 +} + +if [ "$1" == "-h" ] || [ "$#" -ne 2 ]; then + usage +fi + +versions=("$1" "$2") + +out_dir=$(mktemp -d) +function cleanup_output { + rm -rf "$out_dir" +} +trap cleanup_output EXIT + +base_dir="staging/src/k8s.io/client-go/informers" + +for version in "${versions[@]}"; do + rm -rf "${out_dir}/kubernetes-${version}" + rm -f "${out_dir}/k8s-apiGVRs-${version}.txt" + rm -f "${out_dir}/k8s-apiGVs-${version}.txt" + + git clone --depth 1 --filter=blob:none --sparse https://github.com/kubernetes/kubernetes -b "release-${version}" "${out_dir}/kubernetes-${version}" + pushd "${out_dir}/kubernetes-${version}" > /dev/null + git sparse-checkout set "$base_dir" + popd > /dev/null + + groupVersions=() + groupVersionResources=() + g="" + v="" + + while IFS= read -r line; do + if [[ $line =~ Group=([a-zA-Z0-9.-]+),[[:space:]]*Version=([a-zA-Z0-9.-]+) ]]; then + g="${BASH_REMATCH[1]}" + v="${BASH_REMATCH[2]}" + if [[ $g == "core" ]]; then + groupVersions+=("$v") + else + groupVersions+=("$g/$v") + fi + elif [[ $line =~ WithResource\(\"(.*)\"\) ]]; then + k="${BASH_REMATCH[1]}" + if [[ $g == "core" ]]; then + groupVersionResources+=("$v/$k") + else + groupVersionResources+=("$g/$v/$k") + fi + fi + done < "${out_dir}/kubernetes-${version}/${base_dir}/generic.go" + + echo "${groupVersions[@]}" | tr ' ' '\n' | sort | uniq > "${out_dir}/k8s-apiGVs-${version}.txt" + echo "${groupVersionResources[@]}" | tr ' ' '\n' | sort | uniq > "${out_dir}/k8s-apiGVRs-${version}.txt" +done + +echo +echo "Kubernetes API group versions added in $2 compared to $1:" +diff "${out_dir}/k8s-apiGVs-$1.txt" "${out_dir}/k8s-apiGVs-$2.txt" | grep '>' | awk '{print $2}' +echo +echo "Kubernetes API GVRs added in $2 compared to $1:" +diff "${out_dir}/k8s-apiGVRs-$1.txt" "${out_dir}/k8s-apiGVRs-$2.txt" | grep '>' | awk '{print $2}' +echo +echo "Kubernetes API group versions removed in $2 compared to $1:" +diff "${out_dir}/k8s-apiGVs-$1.txt" "${out_dir}/k8s-apiGVs-$2.txt" | grep '<' | awk '{print $2}' +echo +echo "Kubernetes API GVRs removed in $2 compared to $1:" \ No newline at end of file diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/download_gardener_source_code.sh b/vendor/github.com/gardener/gardener/hack/download_gardener_source_code.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/format.sh b/vendor/github.com/gardener/gardener/hack/format.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/gardener-down.sh b/vendor/github.com/gardener/gardener/hack/gardener-down.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/gardener-extensions-down.sh b/vendor/github.com/gardener/gardener/hack/gardener-extensions-down.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/gardener-extensions-up.sh b/vendor/github.com/gardener/gardener/hack/gardener-extensions-up.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-controller-registration.sh b/vendor/github.com/gardener/gardener/hack/generate-controller-registration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-crds.sh b/vendor/github.com/gardener/gardener/hack/generate-crds.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-groups.sh b/vendor/github.com/gardener/gardener/hack/generate-groups.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh b/vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-internal-groups.sh b/vendor/github.com/gardener/gardener/hack/generate-internal-groups.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh b/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-parallel.sh b/vendor/github.com/gardener/gardener/hack/generate-parallel.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-sequential.sh b/vendor/github.com/gardener/gardener/hack/generate-sequential.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate.sh b/vendor/github.com/gardener/gardener/hack/generate.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/get-build-ld-flags.sh b/vendor/github.com/gardener/gardener/hack/get-build-ld-flags.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/hook-me.sh b/vendor/github.com/gardener/gardener/hack/hook-me.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/install.sh b/vendor/github.com/gardener/gardener/hack/install.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/kind-down.sh b/vendor/github.com/gardener/gardener/hack/kind-down.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/kind-extensions-up.sh b/vendor/github.com/gardener/gardener/hack/kind-extensions-up.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/kind-up.sh b/vendor/github.com/gardener/gardener/hack/kind-up.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/prepare-envtest.sh b/vendor/github.com/gardener/gardener/hack/prepare-envtest.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/start-envtest.sh b/vendor/github.com/gardener/gardener/hack/start-envtest.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-cover-clean.sh b/vendor/github.com/gardener/gardener/hack/test-cover-clean.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-cover.sh b/vendor/github.com/gardener/gardener/hack/test-cover.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-e2e-local.env b/vendor/github.com/gardener/gardener/hack/test-e2e-local.env old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh b/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-integration.env b/vendor/github.com/gardener/gardener/hack/test-integration.env old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-integration.sh b/vendor/github.com/gardener/gardener/hack/test-integration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-prometheus.sh b/vendor/github.com/gardener/gardener/hack/test-prometheus.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test.sh b/vendor/github.com/gardener/gardener/hack/test.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/tools.go b/vendor/github.com/gardener/gardener/hack/tools.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/tools.mk b/vendor/github.com/gardener/gardener/hack/tools.mk old mode 100755 new mode 100644 index 05216500f..e896b4178 --- a/vendor/github.com/gardener/gardener/hack/tools.mk +++ b/vendor/github.com/gardener/gardener/hack/tools.mk @@ -30,7 +30,6 @@ endif TOOLS_BIN_DIR := $(TOOLS_DIR)/bin CONTROLLER_GEN := $(TOOLS_BIN_DIR)/controller-gen -DOCFORGE := $(TOOLS_BIN_DIR)/docforge GEN_CRD_API_REFERENCE_DOCS := $(TOOLS_BIN_DIR)/gen-crd-api-reference-docs GINKGO := $(TOOLS_BIN_DIR)/ginkgo GOIMPORTS := $(TOOLS_BIN_DIR)/goimports @@ -58,19 +57,18 @@ YAML2JSON := $(TOOLS_BIN_DIR)/yaml2json YQ := $(TOOLS_BIN_DIR)/yq # default tool versions -DOCFORGE_VERSION ?= v0.34.0 -GOLANGCI_LINT_VERSION ?= v1.54.2 +GOLANGCI_LINT_VERSION ?= v1.55.1 GO_APIDIFF_VERSION ?= v0.6.1 GO_ADD_LICENSE_VERSION ?= v1.1.1 -GOIMPORTSREVISER_VERSION ?= v3.4.5 +GOIMPORTSREVISER_VERSION ?= v3.5.6 GO_VULN_CHECK_VERSION ?= latest -HELM_VERSION ?= v3.12.3 +HELM_VERSION ?= v3.13.1 KIND_VERSION ?= v0.20.0 -KUBECTL_VERSION ?= v1.28.2 -PROMTOOL_VERSION ?= 2.34.0 -PROTOC_VERSION ?= 24.1 +KUBECTL_VERSION ?= v1.28.3 +PROMTOOL_VERSION ?= 2.47.2 +PROTOC_VERSION ?= 24.4 SKAFFOLD_VERSION ?= v2.8.0 -YQ_VERSION ?= v4.35.1 +YQ_VERSION ?= v4.35.2 # tool versions from go.mod CONTROLLER_GEN_VERSION ?= $(call version_gomod,sigs.k8s.io/controller-tools) @@ -124,7 +122,7 @@ ifeq ($(shell if [ -d $(TOOLS_BIN_SOURCE_DIR) ]; then echo "found"; fi),found) endif .PHONY: create-tools-bin -create-tools-bin: $(CONTROLLER_GEN) $(DOCFORGE) $(GEN_CRD_API_REFERENCE_DOCS) $(GINKGO) $(GOIMPORTS) $(GOIMPORTSREVISER) $(GO_ADD_LICENSE) $(GO_APIDIFF) $(GO_VULN_CHECK) $(GO_TO_PROTOBUF) $(HELM) $(IMPORT_BOSS) $(KIND) $(KUBECTL) $(MOCKGEN) $(OPENAPI_GEN) $(PROMTOOL) $(PROTOC) $(PROTOC_GEN_GOGO) $(SETUP_ENVTEST) $(SKAFFOLD) $(YAML2JSON) $(YQ) +create-tools-bin: $(CONTROLLER_GEN) $(GEN_CRD_API_REFERENCE_DOCS) $(GINKGO) $(GOIMPORTS) $(GOIMPORTSREVISER) $(GO_ADD_LICENSE) $(GO_APIDIFF) $(GO_VULN_CHECK) $(GO_TO_PROTOBUF) $(HELM) $(IMPORT_BOSS) $(KIND) $(KUBECTL) $(MOCKGEN) $(OPENAPI_GEN) $(PROMTOOL) $(PROTOC) $(PROTOC_GEN_GOGO) $(SETUP_ENVTEST) $(SKAFFOLD) $(YAML2JSON) $(YQ) ######################################### # Tools # @@ -133,10 +131,6 @@ create-tools-bin: $(CONTROLLER_GEN) $(DOCFORGE) $(GEN_CRD_API_REFERENCE_DOCS) $( $(CONTROLLER_GEN): $(call tool_version_file,$(CONTROLLER_GEN),$(CONTROLLER_GEN_VERSION)) go build -o $(CONTROLLER_GEN) sigs.k8s.io/controller-tools/cmd/controller-gen -$(DOCFORGE): $(call tool_version_file,$(DOCFORGE),$(DOCFORGE_VERSION)) - curl -L -o $(DOCFORGE) https://github.com/gardener/docforge/releases/download/$(DOCFORGE_VERSION)/docforge-$(shell uname -s | tr '[:upper:]' '[:lower:]')-$(shell uname -m | sed 's/x86_64/amd64/') - chmod +x $(DOCFORGE) - $(GEN_CRD_API_REFERENCE_DOCS): $(call tool_version_file,$(GEN_CRD_API_REFERENCE_DOCS),$(GEN_CRD_API_REFERENCE_DOCS_VERSION)) go build -o $(GEN_CRD_API_REFERENCE_DOCS) github.com/ahmetb/gen-crd-api-reference-docs diff --git a/vendor/github.com/gardener/gardener/hack/update-codegen.sh b/vendor/github.com/gardener/gardener/hack/update-codegen.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/update-protobuf.sh b/vendor/github.com/gardener/gardener/hack/update-protobuf.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types.go index ac7692b80..212ecdedf 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types.go @@ -14,7 +14,9 @@ package core -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) const ( // GardenerSeedLeaseNamespace is the namespace in which Gardenlet will report Seeds' diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go index b77e77eb3..3c582e078 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go @@ -98,6 +98,11 @@ type MachineImage struct { Name string // Versions contains versions, expiration dates and container runtimes of the machine image Versions []MachineImageVersion + // UpdateStrategy is the update strategy to use for the machine image. Possible values are: + // - patch: update to the latest patch version of the current minor version. + // - minor: update to the latest minor and patch version. + // - major: always update to the overall latest version (default). + UpdateStrategy *MachineImageUpdateStrategy } // MachineImageVersion is an expirable version with list of supported container runtimes and interfaces @@ -212,3 +217,17 @@ const ( // and will eventually expire. ClassificationDeprecated VersionClassification = "deprecated" ) + +// MachineImageUpdateStrategy is the update strategy to use for a machine image +type MachineImageUpdateStrategy string + +const ( + // UpdateStrategyPatch indicates that auto-updates are performed to the latest patch version of the current minor version. + // When using an expired version during the maintenance window, force updates to the latest patch of the next (not necessarily consecutive) minor when using an expired version. + UpdateStrategyPatch MachineImageUpdateStrategy = "patch" + // UpdateStrategyMinor indicates that auto-updates are performed to the latest patch and minor version of the current major version. + // When using an expired version during the maintenance window, force updates to the latest minor and patch of the next (not necessarily consecutive) major version. + UpdateStrategyMinor MachineImageUpdateStrategy = "minor" + // UpdateStrategyMajor indicates that auto-updates are performed always to the overall latest version. + UpdateStrategyMajor MachineImageUpdateStrategy = "major" +) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_controllerregistration.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_controllerregistration.go index 6192201fb..0cce61bd9 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_controllerregistration.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_controllerregistration.go @@ -94,7 +94,7 @@ type ControllerRegistrationDeployment struct { // considered for a deployment. // An empty list means that all seeds are selected. SeedSelector *metav1.LabelSelector - // DeploymentRefs holds references to `ControllerDeployments`. Only one element is support now. + // DeploymentRefs holds references to `ControllerDeployments`. Only one element is supported currently. DeploymentRefs []DeploymentRef } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults_cloudprofile.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults_cloudprofile.go index 5b9bd84a2..a744a7db6 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults_cloudprofile.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults_cloudprofile.go @@ -20,6 +20,14 @@ import ( v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" ) +// SetDefaults_MachineImage sets default values for MachineImage objects. +func SetDefaults_MachineImage(obj *MachineImage) { + if obj.UpdateStrategy == nil { + updateStrategyMajor := UpdateStrategyMajor + obj.UpdateStrategy = &updateStrategyMajor + } +} + // SetDefaults_MachineImageVersion sets default values for MachineImageVersion objects. func SetDefaults_MachineImageVersion(obj *MachineImageVersion) { if len(obj.CRI) == 0 { diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go index c1debd393..c490e4e4f 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go @@ -5012,758 +5012,761 @@ func init() { } var fileDescriptor_ca37af0df9a5bbd2 = []byte{ - // 12005 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x24, 0xc9, - 0x75, 0x98, 0x7a, 0xf8, 0x35, 0x7c, 0xfc, 0x58, 0x6e, 0xed, 0xc7, 0x71, 0xb9, 0x77, 0x3b, 0xab, - 0xbe, 0x93, 0x72, 0xe7, 0x93, 0xb9, 0xbe, 0xb3, 0xe4, 0xd3, 0xad, 0x7c, 0x3a, 0x91, 0x33, 0xdc, - 0xdd, 0xf1, 0x92, 0x5c, 0x5e, 0x0d, 0x79, 0x77, 0x3a, 0x3b, 0x67, 0x37, 0xa7, 0x8b, 0xc3, 0x3e, - 0xf6, 0x74, 0xcf, 0x75, 0xf7, 0x70, 0x39, 0x77, 0x76, 0x6c, 0xcb, 0x96, 0x62, 0x9d, 0xad, 0xc0, - 0x10, 0xe0, 0x28, 0x92, 0x9c, 0x58, 0x86, 0xe1, 0x38, 0x89, 0x03, 0xc7, 0x70, 0xe0, 0x00, 0xb6, - 0x11, 0xc0, 0x10, 0x90, 0x58, 0x32, 0x2c, 0x43, 0x90, 0x12, 0x44, 0x42, 0x62, 0x3a, 0x62, 0x14, - 0x39, 0x40, 0x02, 0x23, 0x80, 0x11, 0x04, 0xd9, 0x18, 0x4e, 0x50, 0x5f, 0xdd, 0xd5, 0x5f, 0x43, - 0xb2, 0x87, 0xa4, 0x74, 0xb0, 0x7f, 0x91, 0x53, 0x1f, 0xef, 0x55, 0x55, 0x57, 0xbd, 0x7a, 0xef, - 0xd5, 0xfb, 0x80, 0xc5, 0x96, 0x15, 0x6c, 0x77, 0x37, 0xe7, 0x9b, 0x6e, 0xfb, 0x46, 0xcb, 0xf0, - 0x4c, 0xe2, 0x10, 0x2f, 0xfa, 0xa7, 0xb3, 0xd3, 0xba, 0x61, 0x74, 0x2c, 0xff, 0x46, 0xd3, 0xf5, - 0xc8, 0x8d, 0xdd, 0xa7, 0x36, 0x49, 0x60, 0x3c, 0x75, 0xa3, 0x45, 0xeb, 0x8c, 0x80, 0x98, 0xf3, - 0x1d, 0xcf, 0x0d, 0x5c, 0xf4, 0x74, 0x04, 0x63, 0x5e, 0x76, 0x8d, 0xfe, 0xe9, 0xec, 0xb4, 0xe6, - 0x29, 0x8c, 0x79, 0x0a, 0x63, 0x5e, 0xc0, 0x98, 0xfb, 0x6e, 0x15, 0xaf, 0xdb, 0x72, 0x6f, 0x30, - 0x50, 0x9b, 0xdd, 0x2d, 0xf6, 0x8b, 0xfd, 0x60, 0xff, 0x71, 0x14, 0x73, 0x4f, 0xec, 0xbc, 0xdf, - 0x9f, 0xb7, 0x5c, 0x3a, 0x98, 0x1b, 0x46, 0x37, 0x70, 0xfd, 0xa6, 0x61, 0x5b, 0x4e, 0xeb, 0xc6, - 0x6e, 0x6a, 0x34, 0x73, 0xba, 0xd2, 0x54, 0x0c, 0xbb, 0x6f, 0x1b, 0x6f, 0xd3, 0x68, 0x66, 0xb5, - 0x79, 0x6f, 0xd4, 0xa6, 0x6d, 0x34, 0xb7, 0x2d, 0x87, 0x78, 0x3d, 0xb9, 0x20, 0x37, 0x3c, 0xe2, - 0xbb, 0x5d, 0xaf, 0x49, 0x8e, 0xd5, 0xcb, 0xbf, 0xd1, 0x26, 0x81, 0x91, 0x85, 0xeb, 0x46, 0x5e, - 0x2f, 0xaf, 0xeb, 0x04, 0x56, 0x3b, 0x8d, 0xe6, 0xfb, 0x0e, 0xeb, 0xe0, 0x37, 0xb7, 0x49, 0xdb, - 0x48, 0xf5, 0xfb, 0xde, 0xbc, 0x7e, 0xdd, 0xc0, 0xb2, 0x6f, 0x58, 0x4e, 0xe0, 0x07, 0x5e, 0xb2, - 0x93, 0xfe, 0x96, 0x06, 0x33, 0x0b, 0x6b, 0xf5, 0x06, 0xf1, 0x76, 0x89, 0xb7, 0xec, 0xb6, 0x5a, - 0x96, 0xd3, 0x42, 0x4f, 0xc2, 0xf8, 0x2e, 0xf1, 0x36, 0x5d, 0xdf, 0x0a, 0x7a, 0xb3, 0xda, 0x75, - 0xed, 0xf1, 0x91, 0xc5, 0xa9, 0x83, 0xfd, 0xca, 0xf8, 0x8b, 0xb2, 0x10, 0x47, 0xf5, 0xa8, 0x0e, - 0x17, 0xb6, 0x83, 0xa0, 0xb3, 0xd0, 0x6c, 0x12, 0xdf, 0x0f, 0x5b, 0xcc, 0x96, 0x58, 0xb7, 0x87, - 0x0e, 0xf6, 0x2b, 0x17, 0xee, 0xac, 0xaf, 0xaf, 0x25, 0xaa, 0x71, 0x56, 0x1f, 0xfd, 0xb7, 0x34, - 0x38, 0x1f, 0x0e, 0x06, 0x93, 0xd7, 0xbb, 0xc4, 0x0f, 0x7c, 0x84, 0xe1, 0x72, 0xdb, 0xd8, 0x5b, - 0x75, 0x9d, 0x95, 0x6e, 0x60, 0x04, 0x96, 0xd3, 0xaa, 0x3b, 0x5b, 0xb6, 0xd5, 0xda, 0x0e, 0xc4, - 0xd0, 0xe6, 0x0e, 0xf6, 0x2b, 0x97, 0x57, 0x32, 0x5b, 0xe0, 0x9c, 0x9e, 0x74, 0xd0, 0x6d, 0x63, - 0x2f, 0x05, 0x50, 0x19, 0xf4, 0x4a, 0xba, 0x1a, 0x67, 0xf5, 0xd1, 0x9f, 0x86, 0x91, 0x05, 0xd3, - 0x74, 0x1d, 0xf4, 0x04, 0x8c, 0x11, 0xc7, 0xd8, 0xb4, 0x89, 0xc9, 0x06, 0x56, 0x5e, 0x3c, 0xf7, - 0x85, 0xfd, 0xca, 0x3b, 0x0e, 0xf6, 0x2b, 0x63, 0x4b, 0xbc, 0x18, 0xcb, 0x7a, 0xfd, 0x17, 0x4a, - 0x30, 0xca, 0x3a, 0xf9, 0xe8, 0x93, 0x1a, 0x5c, 0xd8, 0xe9, 0x6e, 0x12, 0xcf, 0x21, 0x01, 0xf1, - 0x6b, 0x86, 0xbf, 0xbd, 0xe9, 0x1a, 0x1e, 0x07, 0x31, 0xf1, 0xf4, 0xed, 0xf9, 0xe3, 0x9f, 0xbf, - 0xf9, 0xbb, 0x69, 0x70, 0x7c, 0x4e, 0x19, 0x15, 0x38, 0x0b, 0x39, 0xda, 0x85, 0x49, 0xa7, 0x65, - 0x39, 0x7b, 0x75, 0xa7, 0xe5, 0x11, 0xdf, 0x67, 0xeb, 0x32, 0xf1, 0xf4, 0x87, 0x8a, 0x0c, 0x66, - 0x55, 0x81, 0xb3, 0x38, 0x73, 0xb0, 0x5f, 0x99, 0x54, 0x4b, 0x70, 0x0c, 0x8f, 0xfe, 0x57, 0x1a, - 0x9c, 0x5b, 0x30, 0xdb, 0x96, 0xef, 0x5b, 0xae, 0xb3, 0x66, 0x77, 0x5b, 0x96, 0x83, 0xae, 0xc3, - 0xb0, 0x63, 0xb4, 0x09, 0x5b, 0x90, 0xf1, 0xc5, 0x49, 0xb1, 0xa6, 0xc3, 0xab, 0x46, 0x9b, 0x60, - 0x56, 0x83, 0x5e, 0x80, 0xd1, 0xa6, 0xeb, 0x6c, 0x59, 0x2d, 0x31, 0xce, 0xef, 0x9e, 0xe7, 0x27, - 0x61, 0x5e, 0x3d, 0x09, 0x6c, 0x78, 0xe2, 0x04, 0xcd, 0x63, 0xe3, 0xfe, 0xd2, 0x5e, 0x40, 0x1c, - 0x8a, 0x66, 0x11, 0x0e, 0xf6, 0x2b, 0xa3, 0x55, 0x06, 0x00, 0x0b, 0x40, 0xe8, 0x71, 0x28, 0x9b, - 0x96, 0xcf, 0x3f, 0xe6, 0x10, 0xfb, 0x98, 0x93, 0x07, 0xfb, 0x95, 0x72, 0x4d, 0x94, 0xe1, 0xb0, - 0x16, 0x2d, 0xc3, 0x45, 0xba, 0x82, 0xbc, 0x5f, 0x83, 0x34, 0x3d, 0x12, 0xd0, 0xa1, 0xcd, 0x0e, - 0xb3, 0xe1, 0xce, 0x1e, 0xec, 0x57, 0x2e, 0xde, 0xcd, 0xa8, 0xc7, 0x99, 0xbd, 0xf4, 0x5b, 0x50, - 0x5e, 0xb0, 0x89, 0x47, 0x37, 0x18, 0xba, 0x09, 0xd3, 0xa4, 0x6d, 0x58, 0x36, 0x26, 0x4d, 0x62, - 0xed, 0x12, 0xcf, 0x9f, 0xd5, 0xae, 0x0f, 0x3d, 0x3e, 0xbe, 0x88, 0x0e, 0xf6, 0x2b, 0xd3, 0x4b, - 0xb1, 0x1a, 0x9c, 0x68, 0xa9, 0xff, 0xa4, 0x06, 0x13, 0x0b, 0x5d, 0xd3, 0x0a, 0xf8, 0xbc, 0x90, - 0x07, 0x13, 0x06, 0xfd, 0xb9, 0xe6, 0xda, 0x56, 0xb3, 0x27, 0x36, 0xd7, 0xf3, 0x45, 0xbe, 0xe7, - 0x42, 0x04, 0x66, 0xf1, 0xdc, 0xc1, 0x7e, 0x65, 0x42, 0x29, 0xc0, 0x2a, 0x12, 0x7d, 0x1b, 0xd4, - 0x3a, 0xf4, 0x61, 0x98, 0xe4, 0xd3, 0x5d, 0x31, 0x3a, 0x98, 0x6c, 0x89, 0x31, 0x3c, 0xaa, 0x7c, - 0x2b, 0x89, 0x68, 0xfe, 0xde, 0xe6, 0x6b, 0xa4, 0x19, 0x60, 0xb2, 0x45, 0x3c, 0xe2, 0x34, 0x09, - 0xdf, 0x36, 0x55, 0xa5, 0x33, 0x8e, 0x81, 0xd2, 0xff, 0x94, 0x12, 0xb1, 0x5d, 0xc3, 0xb2, 0x8d, - 0x4d, 0xcb, 0xb6, 0x82, 0xde, 0x2b, 0xae, 0x43, 0x8e, 0xb0, 0x6f, 0x36, 0xe0, 0xa1, 0xae, 0x63, - 0xf0, 0x7e, 0x36, 0x59, 0xe1, 0x3b, 0x65, 0xbd, 0xd7, 0x21, 0x74, 0xc3, 0xd3, 0x95, 0xbe, 0x7a, - 0xb0, 0x5f, 0x79, 0x68, 0x23, 0xbb, 0x09, 0xce, 0xeb, 0x4b, 0xe9, 0x95, 0x52, 0xf5, 0xa2, 0x6b, - 0x77, 0xdb, 0x02, 0xea, 0x10, 0x83, 0xca, 0xe8, 0xd5, 0x46, 0x66, 0x0b, 0x9c, 0xd3, 0x53, 0xff, - 0x42, 0x09, 0x26, 0x17, 0x8d, 0xe6, 0x4e, 0xb7, 0xb3, 0xd8, 0x6d, 0xee, 0x90, 0x00, 0xfd, 0x08, - 0x94, 0xe9, 0x85, 0x63, 0x1a, 0x81, 0x21, 0x56, 0xf2, 0x7b, 0x72, 0x77, 0x3d, 0xfb, 0x88, 0xb4, - 0x75, 0xb4, 0xb6, 0x2b, 0x24, 0x30, 0x16, 0x91, 0x58, 0x13, 0x88, 0xca, 0x70, 0x08, 0x15, 0x6d, - 0xc1, 0xb0, 0xdf, 0x21, 0x4d, 0x71, 0xa6, 0x6a, 0x45, 0xf6, 0x8a, 0x3a, 0xe2, 0x46, 0x87, 0x34, - 0xa3, 0xaf, 0x40, 0x7f, 0x61, 0x06, 0x1f, 0x39, 0x30, 0xea, 0x07, 0x46, 0xd0, 0xf5, 0xd9, 0x41, - 0x9b, 0x78, 0xfa, 0xd6, 0xc0, 0x98, 0x18, 0xb4, 0xc5, 0x69, 0x81, 0x6b, 0x94, 0xff, 0xc6, 0x02, - 0x8b, 0xfe, 0x1f, 0x34, 0x98, 0x51, 0x9b, 0x2f, 0x5b, 0x7e, 0x80, 0x7e, 0x28, 0xb5, 0x9c, 0xf3, - 0x47, 0x5b, 0x4e, 0xda, 0x9b, 0x2d, 0xe6, 0x8c, 0x40, 0x57, 0x96, 0x25, 0xca, 0x52, 0x12, 0x18, - 0xb1, 0x02, 0xd2, 0xe6, 0xdb, 0xaa, 0x20, 0x1d, 0x55, 0x87, 0xbc, 0x38, 0x25, 0x90, 0x8d, 0xd4, - 0x29, 0x58, 0xcc, 0xa1, 0xeb, 0x3f, 0x02, 0x17, 0xd5, 0x56, 0x6b, 0x9e, 0xbb, 0x6b, 0x99, 0xc4, - 0xa3, 0x27, 0x21, 0xe8, 0x75, 0x52, 0x27, 0x81, 0xee, 0x2c, 0xcc, 0x6a, 0xd0, 0xbb, 0x61, 0xd4, - 0x23, 0x2d, 0xcb, 0x75, 0xd8, 0xd7, 0x1e, 0x8f, 0xd6, 0x0e, 0xb3, 0x52, 0x2c, 0x6a, 0xf5, 0xff, - 0x55, 0x8a, 0xaf, 0x1d, 0xfd, 0x8c, 0x68, 0x17, 0xca, 0x1d, 0x81, 0x4a, 0xac, 0xdd, 0x9d, 0x41, - 0x27, 0x28, 0x87, 0x1e, 0xad, 0xaa, 0x2c, 0xc1, 0x21, 0x2e, 0x64, 0xc1, 0xb4, 0xfc, 0xbf, 0x3a, - 0x00, 0xf9, 0x67, 0xe4, 0x74, 0x2d, 0x06, 0x08, 0x27, 0x00, 0xa3, 0x75, 0x18, 0xf7, 0x19, 0x91, - 0xa6, 0x84, 0x6b, 0x28, 0x9f, 0x70, 0x35, 0x64, 0x23, 0x41, 0xb8, 0xce, 0x8b, 0xe1, 0x8f, 0x87, - 0x15, 0x38, 0x02, 0x44, 0x2f, 0x19, 0x9f, 0x10, 0x53, 0xb9, 0x2e, 0xd8, 0x25, 0xd3, 0x10, 0x65, - 0x38, 0xac, 0xd5, 0x3f, 0x37, 0x0c, 0x28, 0xbd, 0xc5, 0xd5, 0x15, 0xe0, 0x25, 0x62, 0xfd, 0x07, - 0x59, 0x01, 0x71, 0x5a, 0x12, 0x80, 0xd1, 0x1b, 0x30, 0x65, 0x1b, 0x7e, 0x70, 0xaf, 0x43, 0xb9, - 0x47, 0xb9, 0x51, 0x26, 0x9e, 0x5e, 0x28, 0xf2, 0xa5, 0x97, 0x55, 0x40, 0x8b, 0xe7, 0x0f, 0xf6, - 0x2b, 0x53, 0xb1, 0x22, 0x1c, 0x47, 0x85, 0x5e, 0x83, 0x71, 0x5a, 0xb0, 0xe4, 0x79, 0xae, 0x27, - 0x56, 0xff, 0xb9, 0xa2, 0x78, 0x19, 0x10, 0xce, 0xcd, 0x86, 0x3f, 0x71, 0x04, 0x1e, 0xfd, 0x00, - 0x20, 0x77, 0xd3, 0xa7, 0x0c, 0xa8, 0x79, 0x9b, 0xb3, 0xca, 0x74, 0xb2, 0xf4, 0xeb, 0x0c, 0x2d, - 0xce, 0x89, 0xaf, 0x89, 0xee, 0xa5, 0x5a, 0xe0, 0x8c, 0x5e, 0x68, 0x07, 0x50, 0xc8, 0x6e, 0x87, - 0x1b, 0x60, 0x76, 0xe4, 0xe8, 0xdb, 0xe7, 0x32, 0x45, 0x76, 0x3b, 0x05, 0x02, 0x67, 0x80, 0xd5, - 0xff, 0x4d, 0x09, 0x26, 0xf8, 0x16, 0x59, 0x72, 0x02, 0xaf, 0x77, 0x06, 0x17, 0x04, 0x89, 0x5d, - 0x10, 0xd5, 0xe2, 0x67, 0x9e, 0x0d, 0x38, 0xf7, 0x7e, 0x68, 0x27, 0xee, 0x87, 0xa5, 0x41, 0x11, - 0xf5, 0xbf, 0x1e, 0xfe, 0xbd, 0x06, 0xe7, 0x94, 0xd6, 0x67, 0x70, 0x3b, 0x98, 0xf1, 0xdb, 0xe1, - 0xf9, 0x01, 0xe7, 0x97, 0x73, 0x39, 0xb8, 0xb1, 0x69, 0x31, 0xc2, 0xfd, 0x34, 0xc0, 0x26, 0x23, - 0x27, 0xab, 0x11, 0x9f, 0x14, 0x7e, 0xf2, 0xc5, 0xb0, 0x06, 0x2b, 0xad, 0x62, 0x34, 0xab, 0xd4, - 0x97, 0x66, 0xfd, 0xd7, 0x21, 0x38, 0x9f, 0x5a, 0xf6, 0x34, 0x1d, 0xd1, 0xbe, 0x4d, 0x74, 0xa4, - 0xf4, 0xed, 0xa0, 0x23, 0x43, 0x85, 0xe8, 0xc8, 0x91, 0xef, 0x09, 0xe4, 0x01, 0x6a, 0x5b, 0x2d, - 0xde, 0xad, 0x11, 0x18, 0x5e, 0xb0, 0x6e, 0xb5, 0x89, 0xa0, 0x38, 0xdf, 0x75, 0xb4, 0x2d, 0x4b, - 0x7b, 0x70, 0xc2, 0xb3, 0x92, 0x82, 0x84, 0x33, 0xa0, 0xeb, 0x5f, 0x19, 0x06, 0xa8, 0x2e, 0x60, - 0x37, 0xe0, 0x83, 0x7d, 0x1e, 0x46, 0x3a, 0xdb, 0x86, 0x2f, 0xf7, 0xd3, 0x13, 0x72, 0x33, 0xae, - 0xd1, 0xc2, 0x07, 0xfb, 0x95, 0xd9, 0xaa, 0x47, 0x4c, 0xe2, 0x04, 0x96, 0x61, 0xfb, 0xb2, 0x13, - 0xab, 0xc3, 0xbc, 0x1f, 0x9d, 0x03, 0x5d, 0xc6, 0xaa, 0xdb, 0xee, 0xd8, 0x84, 0xd6, 0xb2, 0x39, - 0x94, 0x8a, 0xcd, 0x61, 0x39, 0x05, 0x09, 0x67, 0x40, 0x97, 0x38, 0xeb, 0x8e, 0x15, 0x58, 0x46, - 0x88, 0x73, 0xa8, 0x38, 0xce, 0x38, 0x24, 0x9c, 0x01, 0x1d, 0xbd, 0xa5, 0xc1, 0x5c, 0xbc, 0xf8, - 0x96, 0xe5, 0x58, 0xfe, 0x36, 0x31, 0x19, 0xf2, 0xe1, 0x63, 0x23, 0xbf, 0x76, 0xb0, 0x5f, 0x99, - 0x5b, 0xce, 0x85, 0x88, 0xfb, 0x60, 0x43, 0x9f, 0xd0, 0xe0, 0x6a, 0x62, 0x5d, 0x3c, 0xab, 0xd5, - 0x22, 0x9e, 0x18, 0xcd, 0xf1, 0xb7, 0x50, 0xe5, 0x60, 0xbf, 0x72, 0x75, 0x39, 0x1f, 0x24, 0xee, - 0x87, 0x4f, 0xff, 0xbc, 0x06, 0x43, 0x55, 0x5c, 0x47, 0x4f, 0xc6, 0x84, 0xb8, 0x87, 0x54, 0x21, - 0xee, 0xc1, 0x7e, 0x65, 0xac, 0x8a, 0xeb, 0x8a, 0x3c, 0xf7, 0x09, 0x0d, 0xce, 0x37, 0x5d, 0x27, - 0x30, 0xe8, 0xb8, 0x30, 0xe7, 0x74, 0x24, 0x55, 0x2d, 0x24, 0xbf, 0x54, 0x13, 0xc0, 0x16, 0xaf, - 0x88, 0x01, 0x9c, 0x4f, 0xd6, 0xf8, 0x38, 0x8d, 0x59, 0xff, 0x9a, 0x06, 0x93, 0x55, 0xdb, 0xed, - 0x9a, 0x6b, 0x9e, 0xbb, 0x65, 0xd9, 0xe4, 0xed, 0x21, 0xb4, 0xa9, 0x23, 0xce, 0xbb, 0x94, 0x99, - 0x10, 0xa5, 0x36, 0x7c, 0x9b, 0x08, 0x51, 0xea, 0x90, 0x73, 0xee, 0xc9, 0x5f, 0x18, 0x8b, 0xcf, - 0x8c, 0xdd, 0x94, 0x8f, 0x43, 0xb9, 0x69, 0x2c, 0x76, 0x1d, 0xd3, 0x0e, 0xa5, 0x28, 0x3a, 0xca, - 0xea, 0x02, 0x2f, 0xc3, 0x61, 0x2d, 0x7a, 0x03, 0x20, 0x52, 0xa8, 0x89, 0xcf, 0x70, 0x6b, 0x30, - 0x25, 0x5e, 0x83, 0x04, 0x81, 0xe5, 0xb4, 0xfc, 0xe8, 0xd3, 0x47, 0x75, 0x58, 0xc1, 0x86, 0x7e, - 0x0c, 0xa6, 0xc4, 0x22, 0xd7, 0xdb, 0x46, 0x4b, 0xe8, 0x1b, 0x0a, 0xae, 0xd4, 0x8a, 0x02, 0x68, - 0xf1, 0x92, 0x40, 0x3c, 0xa5, 0x96, 0xfa, 0x38, 0x8e, 0x0d, 0xf5, 0x60, 0xb2, 0xad, 0xea, 0x50, - 0x86, 0x8b, 0xb3, 0x33, 0x8a, 0x3e, 0x65, 0xf1, 0xa2, 0x40, 0x3e, 0x19, 0xd3, 0xbe, 0xc4, 0x50, - 0x65, 0x88, 0x82, 0x23, 0xa7, 0x25, 0x0a, 0x12, 0x18, 0xe3, 0xc2, 0xb0, 0x3f, 0x3b, 0xca, 0x26, - 0x78, 0xb3, 0xc8, 0x04, 0xb9, 0x5c, 0x1d, 0x69, 0x88, 0xf9, 0x6f, 0x1f, 0x4b, 0xd8, 0x68, 0x17, - 0x26, 0xe9, 0xad, 0xde, 0x20, 0x36, 0x69, 0x06, 0xae, 0x37, 0x3b, 0x56, 0x5c, 0x03, 0xdb, 0x50, - 0xe0, 0x70, 0x55, 0x9a, 0x5a, 0x82, 0x63, 0x78, 0x42, 0x5d, 0x41, 0x39, 0x57, 0x57, 0xd0, 0x85, - 0x89, 0x5d, 0x45, 0xa7, 0x35, 0xce, 0x16, 0xe1, 0x83, 0x45, 0x06, 0x16, 0x29, 0xb8, 0x16, 0x2f, - 0x08, 0x44, 0x13, 0xaa, 0x32, 0x4c, 0xc5, 0xa3, 0xff, 0x23, 0x80, 0xf3, 0x55, 0xbb, 0xeb, 0x07, - 0xc4, 0x5b, 0x10, 0x8f, 0x44, 0xc4, 0x43, 0x1f, 0xd1, 0xe0, 0x32, 0xfb, 0xb7, 0xe6, 0xde, 0x77, - 0x6a, 0xc4, 0x36, 0x7a, 0x0b, 0x5b, 0xb4, 0x85, 0x69, 0x1e, 0x8f, 0x02, 0xd5, 0xba, 0x82, 0x8b, - 0x64, 0xca, 0xb9, 0x46, 0x26, 0x44, 0x9c, 0x83, 0x09, 0xfd, 0xac, 0x06, 0x57, 0x32, 0xaa, 0x6a, - 0xc4, 0x26, 0x81, 0xe4, 0x5c, 0x8e, 0x3b, 0x8e, 0x47, 0x0e, 0xf6, 0x2b, 0x57, 0x1a, 0x79, 0x40, - 0x71, 0x3e, 0x3e, 0xf4, 0xf7, 0x34, 0x98, 0xcb, 0xa8, 0xbd, 0x65, 0x58, 0x76, 0xd7, 0x93, 0x4c, - 0xcd, 0x71, 0x87, 0xc3, 0x78, 0x8b, 0x46, 0x2e, 0x54, 0xdc, 0x07, 0x23, 0xfa, 0x71, 0xb8, 0x14, - 0xd6, 0x6e, 0x38, 0x0e, 0x21, 0x66, 0x8c, 0xc5, 0x39, 0xee, 0x50, 0xae, 0x1c, 0xec, 0x57, 0x2e, - 0x35, 0xb2, 0x00, 0xe2, 0x6c, 0x3c, 0xa8, 0x05, 0x8f, 0x44, 0x15, 0x81, 0x65, 0x5b, 0x6f, 0x70, - 0x2e, 0x6c, 0xdb, 0x23, 0xfe, 0xb6, 0x6b, 0x9b, 0x8c, 0x58, 0x68, 0x8b, 0xef, 0x3c, 0xd8, 0xaf, - 0x3c, 0xd2, 0xe8, 0xd7, 0x10, 0xf7, 0x87, 0x83, 0x4c, 0x98, 0xf4, 0x9b, 0x86, 0x53, 0x77, 0x02, - 0xe2, 0xed, 0x1a, 0xf6, 0xec, 0x68, 0xa1, 0x09, 0xf2, 0x23, 0xaa, 0xc0, 0xc1, 0x31, 0xa8, 0xe8, - 0xfd, 0x50, 0x26, 0x7b, 0x1d, 0xc3, 0x31, 0x09, 0x27, 0x0b, 0xe3, 0x8b, 0x0f, 0xd3, 0xcb, 0x68, - 0x49, 0x94, 0x3d, 0xd8, 0xaf, 0x4c, 0xca, 0xff, 0x57, 0x5c, 0x93, 0xe0, 0xb0, 0x35, 0xfa, 0x51, - 0xb8, 0xc8, 0xde, 0xc3, 0x4c, 0xc2, 0x88, 0x9c, 0x2f, 0x19, 0xdd, 0x72, 0xa1, 0x71, 0xb2, 0xb7, - 0x8d, 0x95, 0x0c, 0x78, 0x38, 0x13, 0x0b, 0xfd, 0x0c, 0x6d, 0x63, 0xef, 0xb6, 0x67, 0x34, 0xc9, - 0x56, 0xd7, 0x5e, 0x27, 0x5e, 0xdb, 0x72, 0xb8, 0x2c, 0x41, 0x9a, 0xae, 0x63, 0x52, 0x52, 0xa2, - 0x3d, 0x3e, 0xc2, 0x3f, 0xc3, 0x4a, 0xbf, 0x86, 0xb8, 0x3f, 0x1c, 0xf4, 0x5e, 0x98, 0xb4, 0x5a, - 0x8e, 0xeb, 0x91, 0x75, 0xc3, 0x72, 0x02, 0x7f, 0x16, 0x98, 0xda, 0x9d, 0x2d, 0x6b, 0x5d, 0x29, - 0xc7, 0xb1, 0x56, 0x68, 0x17, 0x90, 0x43, 0xee, 0xaf, 0xb9, 0x26, 0xdb, 0x02, 0x1b, 0x1d, 0xb6, - 0x91, 0x67, 0x27, 0x0a, 0x2d, 0x0d, 0x93, 0x03, 0x56, 0x53, 0xd0, 0x70, 0x06, 0x06, 0x74, 0x0b, - 0x50, 0xdb, 0xd8, 0x5b, 0x6a, 0x77, 0x82, 0xde, 0x62, 0xd7, 0xde, 0x11, 0x54, 0x63, 0x92, 0xad, - 0x05, 0x97, 0xc3, 0x52, 0xb5, 0x38, 0xa3, 0x87, 0xbe, 0x3f, 0x04, 0xe3, 0x55, 0xd7, 0x31, 0x2d, - 0x26, 0x86, 0x3d, 0x15, 0xd3, 0xf9, 0x3e, 0xa2, 0xd2, 0xf1, 0x07, 0xfb, 0x95, 0xa9, 0xb0, 0xa1, - 0x42, 0xd8, 0x9f, 0x0d, 0x15, 0x2d, 0x5c, 0xb0, 0x7f, 0x67, 0x5c, 0x43, 0xf2, 0x60, 0xbf, 0x72, - 0x2e, 0xec, 0x16, 0x57, 0x9a, 0xd0, 0xb5, 0xa3, 0xdc, 0xfc, 0xba, 0x67, 0x38, 0xbe, 0x35, 0x80, - 0xfc, 0x14, 0x4a, 0xc6, 0xcb, 0x29, 0x68, 0x38, 0x03, 0x03, 0x7a, 0x0d, 0xa6, 0x69, 0xe9, 0x46, - 0xc7, 0x34, 0x02, 0x52, 0x50, 0x6c, 0xba, 0x2c, 0x70, 0x4e, 0x2f, 0xc7, 0x20, 0xe1, 0x04, 0x64, - 0xae, 0x23, 0x37, 0x7c, 0xd7, 0x61, 0xe4, 0x22, 0xa6, 0x23, 0xa7, 0xa5, 0x58, 0xd4, 0xa2, 0x27, - 0x60, 0xac, 0x4d, 0x7c, 0xdf, 0x68, 0x11, 0x76, 0xfe, 0xc7, 0xa3, 0x4b, 0x7e, 0x85, 0x17, 0x63, - 0x59, 0x8f, 0xde, 0x03, 0x23, 0x4d, 0xd7, 0x24, 0xfe, 0xec, 0x18, 0xdb, 0xa1, 0xf4, 0x6b, 0x8f, - 0x54, 0x69, 0xc1, 0x83, 0xfd, 0xca, 0x38, 0xd3, 0x23, 0xd0, 0x5f, 0x98, 0x37, 0xd2, 0x7f, 0x89, - 0xf2, 0xdc, 0x09, 0x21, 0xe3, 0x08, 0xba, 0xfd, 0xb3, 0x53, 0x93, 0xeb, 0x9f, 0xa2, 0x02, 0x8f, - 0xeb, 0x04, 0x9e, 0x6b, 0xaf, 0xd9, 0x86, 0x43, 0xd0, 0xc7, 0x34, 0x98, 0xd9, 0xb6, 0x5a, 0xdb, - 0xea, 0xe3, 0x9c, 0xb8, 0x98, 0x0b, 0xc9, 0x26, 0x77, 0x12, 0xb0, 0x16, 0x2f, 0x1e, 0xec, 0x57, - 0x66, 0x92, 0xa5, 0x38, 0x85, 0x53, 0xff, 0x78, 0x09, 0x2e, 0x8a, 0x91, 0xd9, 0xf4, 0xa6, 0xec, - 0xd8, 0x6e, 0xaf, 0x4d, 0x9c, 0xb3, 0x78, 0x47, 0x93, 0x5f, 0xa8, 0x94, 0xfb, 0x85, 0xda, 0xa9, - 0x2f, 0x34, 0x54, 0xe4, 0x0b, 0x85, 0x1b, 0xf9, 0x90, 0xaf, 0xf4, 0x67, 0x1a, 0xcc, 0x66, 0xad, - 0xc5, 0x19, 0xc8, 0x70, 0xed, 0xb8, 0x0c, 0x77, 0xa7, 0xa8, 0x50, 0x9e, 0x1c, 0x7a, 0x8e, 0x2c, - 0xf7, 0xad, 0x12, 0x5c, 0x8e, 0x9a, 0xd7, 0x1d, 0x3f, 0x30, 0x6c, 0x9b, 0xab, 0xa9, 0x4e, 0xff, - 0xbb, 0x77, 0x62, 0xa2, 0xf8, 0xea, 0x60, 0x53, 0x55, 0xc7, 0x9e, 0xab, 0x29, 0xdf, 0x4b, 0x68, - 0xca, 0xd7, 0x4e, 0x10, 0x67, 0x7f, 0xa5, 0xf9, 0x7f, 0xd7, 0x60, 0x2e, 0xbb, 0xe3, 0x19, 0x6c, - 0x2a, 0x37, 0xbe, 0xa9, 0x7e, 0xe0, 0xe4, 0x66, 0x9d, 0xb3, 0xad, 0x7e, 0xab, 0x94, 0x37, 0x5b, - 0xa6, 0x2c, 0xd8, 0x82, 0x73, 0x54, 0x8a, 0xf3, 0x03, 0xa1, 0xd2, 0x3d, 0x9e, 0xad, 0x83, 0xd4, - 0x71, 0x9d, 0xc3, 0x71, 0x18, 0x38, 0x09, 0x14, 0xad, 0xc2, 0x18, 0x15, 0xdd, 0x28, 0xfc, 0xd2, - 0xd1, 0xe1, 0x87, 0xb7, 0x51, 0x83, 0xf7, 0xc5, 0x12, 0x08, 0xfa, 0x21, 0x98, 0x32, 0xc3, 0x13, - 0x75, 0xc8, 0x43, 0x67, 0x12, 0x2a, 0x53, 0xbe, 0xd7, 0xd4, 0xde, 0x38, 0x0e, 0x4c, 0xff, 0x4b, - 0x0d, 0x1e, 0xee, 0xb7, 0xb7, 0xd0, 0xeb, 0x00, 0x4d, 0xc9, 0x5e, 0x70, 0x53, 0x97, 0x82, 0xea, - 0xf9, 0x90, 0x49, 0x89, 0x0e, 0x68, 0x58, 0xe4, 0x63, 0x05, 0x49, 0xc6, 0xfb, 0x69, 0xe9, 0x94, - 0xde, 0x4f, 0xf5, 0xff, 0xa1, 0xa9, 0xa4, 0x48, 0xfd, 0xb6, 0x6f, 0x37, 0x52, 0xa4, 0x8e, 0x3d, - 0x57, 0x3f, 0xf8, 0xd5, 0x12, 0x5c, 0xcf, 0xee, 0xa2, 0xdc, 0xbd, 0x1f, 0x82, 0xd1, 0x0e, 0xb7, - 0x47, 0x1a, 0x62, 0x77, 0xe3, 0xe3, 0x94, 0xb2, 0x70, 0x6b, 0xa1, 0x07, 0xfb, 0x95, 0xb9, 0x2c, - 0x42, 0x2f, 0xec, 0x8c, 0x44, 0x3f, 0x64, 0x25, 0xb4, 0x24, 0x9c, 0xfb, 0xfb, 0xde, 0x23, 0x12, - 0x17, 0x63, 0x93, 0xd8, 0x47, 0x56, 0x8c, 0xfc, 0xa4, 0x06, 0xd3, 0xb1, 0x1d, 0xed, 0xcf, 0x8e, - 0xb0, 0x3d, 0x5a, 0xe8, 0xe9, 0x2a, 0x76, 0x54, 0xa2, 0x9b, 0x3b, 0x56, 0xec, 0xe3, 0x04, 0xc2, - 0x04, 0x99, 0x55, 0x57, 0xf5, 0x6d, 0x47, 0x66, 0xd5, 0xc1, 0xe7, 0x90, 0xd9, 0x5f, 0x2c, 0xe5, - 0xcd, 0x96, 0x91, 0xd9, 0xfb, 0x30, 0x2e, 0x2d, 0x75, 0x25, 0xb9, 0xb8, 0x35, 0xe8, 0x98, 0x38, - 0xb8, 0xc8, 0x6c, 0x43, 0x96, 0xf8, 0x38, 0xc2, 0x85, 0x7e, 0x5a, 0x03, 0x88, 0x3e, 0x8c, 0x38, - 0x54, 0xeb, 0x27, 0xb7, 0x1c, 0x0a, 0x5b, 0x33, 0x4d, 0x8f, 0xb4, 0xb2, 0x29, 0x14, 0xbc, 0xfa, - 0xff, 0x19, 0x02, 0x94, 0x1e, 0x3b, 0x65, 0x37, 0x77, 0x2c, 0xc7, 0x4c, 0x0a, 0x04, 0x77, 0x2d, - 0xc7, 0xc4, 0xac, 0xe6, 0x08, 0x0c, 0xe9, 0x73, 0x70, 0xae, 0x65, 0xbb, 0x9b, 0x86, 0x6d, 0xf7, - 0x84, 0xe9, 0xaa, 0x30, 0x82, 0xbc, 0x40, 0x2f, 0xa6, 0xdb, 0xf1, 0x2a, 0x9c, 0x6c, 0x8b, 0x3a, - 0x30, 0xe3, 0x51, 0x51, 0xbc, 0x69, 0xd9, 0x4c, 0x74, 0x72, 0xbb, 0x41, 0x41, 0x5d, 0x0f, 0x63, - 0xef, 0x71, 0x02, 0x16, 0x4e, 0x41, 0x47, 0xef, 0x82, 0xb1, 0x8e, 0x67, 0xb5, 0x0d, 0xaf, 0xc7, - 0x84, 0xb3, 0xf2, 0xe2, 0x04, 0xbd, 0xe1, 0xd6, 0x78, 0x11, 0x96, 0x75, 0xe8, 0x47, 0x61, 0xdc, - 0xb6, 0xb6, 0x48, 0xb3, 0xd7, 0xb4, 0x89, 0x50, 0xce, 0xdc, 0x3b, 0x99, 0x2d, 0xb3, 0x2c, 0xc1, - 0x8a, 0x27, 0x61, 0xf9, 0x13, 0x47, 0x08, 0x51, 0x1d, 0x2e, 0xdc, 0x77, 0xbd, 0x1d, 0xe2, 0xd9, - 0xc4, 0xf7, 0x1b, 0xdd, 0x4e, 0xc7, 0xf5, 0x02, 0x62, 0x32, 0x15, 0x4e, 0x99, 0xdb, 0xe7, 0xbe, - 0x94, 0xae, 0xc6, 0x59, 0x7d, 0xf4, 0xb7, 0x4a, 0x70, 0xb5, 0xcf, 0x20, 0x10, 0xa6, 0x67, 0x43, - 0xac, 0x91, 0xd8, 0x09, 0xef, 0xe5, 0xfb, 0x59, 0x14, 0x3e, 0xd8, 0xaf, 0x3c, 0xda, 0x07, 0x40, - 0x83, 0x6e, 0x45, 0xd2, 0xea, 0xe1, 0x08, 0x0c, 0xaa, 0xc3, 0xa8, 0x19, 0x69, 0x34, 0xc7, 0x17, - 0x9f, 0xa2, 0xd4, 0x9a, 0xeb, 0x1e, 0x8e, 0x0a, 0x4d, 0x00, 0x40, 0xcb, 0x30, 0xc6, 0x1f, 0x92, - 0x89, 0xa0, 0xfc, 0x4f, 0x33, 0xf1, 0x98, 0x17, 0x1d, 0x15, 0x98, 0x04, 0xa1, 0xff, 0x6f, 0x0d, - 0xc6, 0xaa, 0xae, 0x47, 0x6a, 0xab, 0x0d, 0xd4, 0x83, 0x09, 0xc5, 0x85, 0x40, 0x50, 0xc1, 0x82, - 0x64, 0x81, 0x41, 0x5c, 0x88, 0xa0, 0x49, 0x73, 0xd7, 0xb0, 0x00, 0xab, 0xb8, 0xd0, 0xeb, 0x74, - 0xcd, 0xef, 0x7b, 0x56, 0x40, 0x11, 0x0f, 0xf2, 0xfe, 0xc6, 0x11, 0x63, 0x09, 0x8b, 0xef, 0xa8, - 0xf0, 0x27, 0x8e, 0xb0, 0xe8, 0x6b, 0x94, 0x02, 0x24, 0x87, 0x89, 0x6e, 0xc2, 0x70, 0xdb, 0x35, - 0xe5, 0x77, 0x7f, 0xb7, 0x3c, 0xdf, 0x2b, 0xae, 0x49, 0xd7, 0xf6, 0x72, 0xba, 0x07, 0xd3, 0x12, - 0xb2, 0x3e, 0xfa, 0x2a, 0xcc, 0x24, 0xf1, 0xa3, 0x9b, 0x30, 0xdd, 0x74, 0xdb, 0x6d, 0xd7, 0x69, - 0x74, 0xb7, 0xb6, 0xac, 0x3d, 0x12, 0xb3, 0x43, 0xae, 0xc6, 0x6a, 0x70, 0xa2, 0xa5, 0xfe, 0x59, - 0x0d, 0x86, 0xe8, 0x77, 0xd1, 0x61, 0xd4, 0x74, 0xdb, 0x86, 0xe5, 0x88, 0x51, 0x31, 0x9b, 0xeb, - 0x1a, 0x2b, 0xc1, 0xa2, 0x06, 0x75, 0x60, 0x5c, 0x32, 0x4d, 0x03, 0xd9, 0xc2, 0xd4, 0x56, 0x1b, - 0xa1, 0xfd, 0x60, 0x48, 0xc9, 0x65, 0x89, 0x8f, 0x23, 0x24, 0xba, 0x01, 0xe7, 0x6b, 0xab, 0x8d, - 0xba, 0xd3, 0xb4, 0xbb, 0x26, 0x59, 0xda, 0x63, 0x7f, 0x28, 0x2d, 0xb1, 0x78, 0x89, 0x98, 0x27, - 0xa3, 0x25, 0xa2, 0x11, 0x96, 0x75, 0xb4, 0x19, 0xe1, 0x3d, 0x84, 0xb1, 0x30, 0x6b, 0x26, 0x80, - 0x60, 0x59, 0xa7, 0x7f, 0xad, 0x04, 0x13, 0xca, 0x80, 0x90, 0x0d, 0x63, 0x7c, 0xba, 0xd2, 0x56, - 0x6f, 0xa9, 0xe0, 0x14, 0xe3, 0xa3, 0xe6, 0xd8, 0xf9, 0x82, 0xfa, 0x58, 0xa2, 0x50, 0xe9, 0x62, - 0xa9, 0x0f, 0x5d, 0x9c, 0x07, 0xf0, 0x23, 0xcb, 0x75, 0x7e, 0x24, 0xd9, 0xd5, 0xa3, 0xd8, 0xab, - 0x2b, 0x2d, 0xd0, 0xc3, 0xe2, 0x06, 0xe1, 0xc6, 0x28, 0xe5, 0xc4, 0xed, 0xb1, 0x05, 0x23, 0x6f, - 0xb8, 0x0e, 0xf1, 0xc5, 0x1b, 0xdc, 0x09, 0x4d, 0x70, 0x9c, 0xf2, 0x07, 0xaf, 0x50, 0xb8, 0x98, - 0x83, 0xd7, 0x7f, 0x59, 0x03, 0xa8, 0x19, 0x81, 0xc1, 0x9f, 0x8c, 0x8e, 0x60, 0xef, 0xfd, 0x70, - 0xec, 0xe2, 0x2b, 0xa7, 0x6c, 0x60, 0x87, 0x7d, 0xeb, 0x0d, 0x39, 0xfd, 0x90, 0xa1, 0xe6, 0xd0, - 0x1b, 0xd6, 0x1b, 0x04, 0xb3, 0x7a, 0xf4, 0x24, 0x8c, 0x13, 0xa7, 0xe9, 0xf5, 0x3a, 0x94, 0x78, - 0x0f, 0xb3, 0x55, 0x65, 0x27, 0x74, 0x49, 0x16, 0xe2, 0xa8, 0x5e, 0x7f, 0x0a, 0xe2, 0x52, 0xd1, - 0xe1, 0xa3, 0xd4, 0xbf, 0x31, 0x0c, 0x57, 0x96, 0xd6, 0xab, 0x35, 0x01, 0xcf, 0x72, 0x9d, 0xbb, - 0xa4, 0xf7, 0x37, 0xe6, 0x35, 0x7f, 0x63, 0x5e, 0x73, 0x82, 0xe6, 0x35, 0x0f, 0x34, 0x98, 0x59, - 0xda, 0xeb, 0x58, 0x1e, 0xf3, 0x33, 0x20, 0x1e, 0x15, 0x63, 0xd1, 0x13, 0x30, 0xb6, 0xcb, 0xff, - 0x15, 0x9b, 0x2b, 0x54, 0x15, 0x88, 0x16, 0x58, 0xd6, 0xa3, 0x2d, 0x98, 0x26, 0xac, 0x3b, 0xe3, - 0x57, 0x8d, 0xa0, 0xc8, 0x06, 0xe2, 0x6e, 0x2c, 0x31, 0x28, 0x38, 0x01, 0x15, 0x35, 0x60, 0xba, - 0x69, 0x1b, 0xbe, 0x6f, 0x6d, 0x59, 0xcd, 0xc8, 0x82, 0x6e, 0x7c, 0xf1, 0x49, 0x76, 0xf5, 0xc4, - 0x6a, 0x1e, 0xec, 0x57, 0x2e, 0x89, 0x71, 0xc6, 0x2b, 0x70, 0x02, 0x84, 0xfe, 0xe9, 0x12, 0x4c, - 0x2d, 0xed, 0x75, 0x5c, 0xbf, 0xeb, 0x11, 0xd6, 0xf4, 0x0c, 0x24, 0xf0, 0x27, 0x60, 0x6c, 0xdb, - 0x70, 0x4c, 0x9b, 0x78, 0x82, 0xfa, 0x84, 0x6b, 0x7b, 0x87, 0x17, 0x63, 0x59, 0x8f, 0xde, 0x04, - 0xf0, 0x9b, 0xdb, 0xc4, 0xec, 0x32, 0x0e, 0x86, 0x1f, 0x92, 0xbb, 0x45, 0x68, 0x68, 0x6c, 0x8e, - 0x8d, 0x10, 0xa4, 0xa0, 0xec, 0xe1, 0x6f, 0xac, 0xa0, 0xd3, 0xbf, 0xae, 0xc1, 0xf9, 0x58, 0xbf, - 0x33, 0x10, 0x2c, 0xb7, 0xe2, 0x82, 0xe5, 0xc2, 0xc0, 0x73, 0xcd, 0x91, 0x27, 0x7f, 0xa6, 0x04, - 0x0f, 0xe5, 0xac, 0x49, 0xca, 0xdc, 0x42, 0x3b, 0x23, 0x73, 0x8b, 0x2e, 0x4c, 0x04, 0xae, 0x2d, - 0x0c, 0x3d, 0xe5, 0x0a, 0x14, 0x32, 0xa6, 0x58, 0x0f, 0xc1, 0x44, 0xc6, 0x14, 0x51, 0x99, 0x8f, - 0x55, 0x3c, 0xfa, 0xe7, 0x35, 0x18, 0x0f, 0xf5, 0x57, 0xdf, 0x51, 0x6f, 0x48, 0x47, 0xf7, 0xbc, - 0xd3, 0xff, 0xa8, 0x04, 0x97, 0x43, 0xd8, 0x52, 0x4e, 0x68, 0x04, 0x94, 0x6e, 0x1c, 0x2e, 0x04, - 0x3f, 0x2c, 0xee, 0x61, 0x85, 0x17, 0x50, 0x38, 0x05, 0xca, 0x37, 0x75, 0xbd, 0x8e, 0xeb, 0x4b, - 0x76, 0x80, 0xf3, 0x4d, 0xbc, 0x08, 0xcb, 0x3a, 0xb4, 0x0a, 0x23, 0x3e, 0xc5, 0x27, 0x6e, 0x93, - 0x63, 0xae, 0x06, 0xe3, 0x68, 0xd8, 0x78, 0x31, 0x07, 0x83, 0xde, 0x54, 0x55, 0x1a, 0x23, 0xc5, - 0xd5, 0x2c, 0x74, 0x26, 0xa6, 0x5c, 0x91, 0x0c, 0x6f, 0x94, 0x2c, 0xb5, 0x86, 0xbe, 0x0c, 0x33, - 0xc2, 0x62, 0x83, 0x6f, 0x1b, 0xa7, 0x49, 0xd0, 0xfb, 0x63, 0x3b, 0xe3, 0xb1, 0xc4, 0x2b, 0xf2, - 0xc5, 0x64, 0xfb, 0x68, 0xc7, 0xe8, 0x3e, 0x94, 0x6f, 0x8b, 0x41, 0xa2, 0x39, 0x28, 0x59, 0xf2, - 0x5b, 0x80, 0x80, 0x51, 0xaa, 0xd7, 0x70, 0xc9, 0x32, 0x43, 0x7e, 0xa8, 0x94, 0xcb, 0xb5, 0x29, - 0xd7, 0xd2, 0x50, 0xff, 0x6b, 0x49, 0xff, 0x66, 0x09, 0x2e, 0x4a, 0xac, 0x72, 0x8e, 0x35, 0xf1, - 0x06, 0x77, 0x08, 0x6f, 0x78, 0xb8, 0x52, 0xe4, 0x1e, 0x0c, 0x33, 0x02, 0x58, 0xe8, 0x6d, 0x2e, - 0x04, 0x48, 0x87, 0x83, 0x19, 0x20, 0xf4, 0xa3, 0x30, 0x6a, 0x1b, 0x9b, 0xc4, 0x96, 0x96, 0x72, - 0x85, 0x54, 0x48, 0x59, 0xd3, 0xe5, 0x9a, 0x4d, 0x9f, 0x7b, 0x03, 0x84, 0x4f, 0x36, 0xbc, 0x10, - 0x0b, 0x9c, 0x73, 0xcf, 0xc2, 0x84, 0xd2, 0x0c, 0xcd, 0xc0, 0xd0, 0x0e, 0xe1, 0x6f, 0xb3, 0xe3, - 0x98, 0xfe, 0x8b, 0x2e, 0xc2, 0xc8, 0xae, 0x61, 0x77, 0xc5, 0x92, 0x60, 0xfe, 0xe3, 0x66, 0xe9, - 0xfd, 0x9a, 0xfe, 0x1b, 0x1a, 0x4c, 0xdc, 0xb1, 0x36, 0x89, 0xc7, 0xcd, 0x2e, 0x98, 0x28, 0x14, - 0x73, 0x7c, 0x9e, 0xc8, 0x72, 0x7a, 0x46, 0x7b, 0x30, 0x2e, 0x6e, 0x9a, 0xd0, 0x2a, 0xf7, 0x76, - 0xb1, 0x47, 0xe0, 0x10, 0xb5, 0xa0, 0xe0, 0xaa, 0xa3, 0x95, 0xc4, 0x80, 0x23, 0x64, 0xfa, 0x9b, - 0x70, 0x21, 0xa3, 0x13, 0xaa, 0xb0, 0xe3, 0xeb, 0x05, 0x62, 0x5b, 0xc8, 0xf3, 0xe8, 0x05, 0x98, - 0x97, 0xa3, 0x2b, 0x30, 0x44, 0x1c, 0x53, 0xec, 0x89, 0xb1, 0x83, 0xfd, 0xca, 0xd0, 0x92, 0x63, - 0x62, 0x5a, 0x46, 0xc9, 0x94, 0xed, 0xc6, 0x78, 0x12, 0x46, 0xa6, 0x96, 0x45, 0x19, 0x0e, 0x6b, - 0xd9, 0xb3, 0x7d, 0xf2, 0x85, 0x9a, 0x72, 0xa7, 0x33, 0x5b, 0x89, 0xd3, 0x33, 0xc8, 0xc3, 0x78, - 0xf2, 0x24, 0x2e, 0xce, 0x8a, 0x05, 0x49, 0x9d, 0x69, 0x9c, 0xc2, 0xab, 0xff, 0xee, 0x30, 0x3c, - 0x72, 0xc7, 0xf5, 0xac, 0x37, 0x5c, 0x27, 0x30, 0xec, 0x35, 0xd7, 0x8c, 0x0c, 0xec, 0x04, 0x51, - 0xfe, 0xa8, 0x06, 0x0f, 0x35, 0x3b, 0x5d, 0xce, 0xdd, 0x4a, 0xbb, 0xa7, 0x35, 0xe2, 0x59, 0x6e, - 0x51, 0x3b, 0x3b, 0xe6, 0x5a, 0x5b, 0x5d, 0xdb, 0xc8, 0x02, 0x89, 0xf3, 0x70, 0x31, 0x73, 0x3f, - 0xd3, 0xbd, 0xef, 0xb0, 0xc1, 0x35, 0x02, 0xb6, 0x9a, 0x6f, 0x44, 0x1f, 0xa1, 0xa0, 0xb9, 0x5f, - 0x2d, 0x13, 0x22, 0xce, 0xc1, 0x84, 0x7e, 0x1c, 0x2e, 0x59, 0x7c, 0x70, 0x98, 0x18, 0xa6, 0xe5, - 0x10, 0xdf, 0xe7, 0xb6, 0x42, 0x03, 0xd8, 0xb3, 0xd5, 0xb3, 0x00, 0xe2, 0x6c, 0x3c, 0xe8, 0x55, - 0x00, 0xbf, 0xe7, 0x34, 0xc5, 0xfa, 0x8f, 0x14, 0xc2, 0xca, 0x99, 0xc0, 0x10, 0x0a, 0x56, 0x20, - 0x52, 0x09, 0x37, 0x08, 0x37, 0xe5, 0x28, 0xb3, 0x8d, 0x63, 0x12, 0x6e, 0xb4, 0x87, 0xa2, 0x7a, - 0xfd, 0x9f, 0x6b, 0x30, 0x26, 0xdc, 0xf7, 0xd1, 0xbb, 0x13, 0x5a, 0x9e, 0x90, 0xf6, 0x24, 0x34, - 0x3d, 0x3d, 0xf6, 0xd4, 0x27, 0x34, 0x7c, 0x82, 0x95, 0x28, 0xa4, 0x26, 0x10, 0x88, 0x23, 0x75, - 0x61, 0xec, 0xc9, 0x4f, 0xaa, 0x10, 0x15, 0x64, 0xfa, 0xe7, 0x34, 0x38, 0x9f, 0xea, 0x75, 0x04, - 0x7e, 0xe1, 0x0c, 0xad, 0x68, 0xbe, 0x3a, 0x0c, 0xd3, 0xcc, 0xd8, 0xcf, 0x31, 0x6c, 0xae, 0x80, - 0x39, 0x03, 0x01, 0xe5, 0x49, 0x18, 0xb7, 0xda, 0xed, 0x6e, 0x40, 0x49, 0xb5, 0xd0, 0xa1, 0xb3, - 0x6f, 0x5e, 0x97, 0x85, 0x38, 0xaa, 0x47, 0x8e, 0xb8, 0x0a, 0x39, 0x11, 0x5f, 0x2e, 0xf6, 0xe5, - 0xd4, 0x09, 0xce, 0xd3, 0x6b, 0x8b, 0xdf, 0x57, 0x59, 0x37, 0xe5, 0xc7, 0x34, 0x00, 0x3f, 0xf0, - 0x2c, 0xa7, 0x45, 0x0b, 0xc5, 0x75, 0x89, 0x4f, 0x00, 0x6d, 0x23, 0x04, 0xca, 0x91, 0x87, 0x6b, - 0x14, 0x55, 0x60, 0x05, 0x33, 0x5a, 0x10, 0x5c, 0x02, 0xa7, 0xf8, 0xdf, 0x9d, 0xe0, 0x87, 0x1e, - 0x49, 0x47, 0xa7, 0x11, 0x2e, 0x9d, 0x11, 0x1b, 0x31, 0xf7, 0x0c, 0x8c, 0x87, 0xf8, 0x0e, 0xbb, - 0x75, 0x27, 0x95, 0x5b, 0x77, 0xee, 0x39, 0x38, 0x97, 0x18, 0xee, 0xb1, 0x2e, 0xed, 0xff, 0xa8, - 0x01, 0x8a, 0xcf, 0xfe, 0x0c, 0x44, 0xbb, 0x56, 0x5c, 0xb4, 0x5b, 0x1c, 0xfc, 0x93, 0xe5, 0xc8, - 0x76, 0x5f, 0x9e, 0x02, 0x16, 0xdd, 0x24, 0x8c, 0x1e, 0x23, 0x2e, 0x2e, 0x7a, 0xcf, 0x46, 0x1e, - 0x12, 0xe2, 0xe4, 0x0e, 0x70, 0xcf, 0xde, 0x4d, 0xc0, 0x8a, 0xee, 0xd9, 0x64, 0x0d, 0x4e, 0xe1, - 0x45, 0x1f, 0xd7, 0x60, 0xc6, 0x88, 0x47, 0x37, 0x91, 0x2b, 0x53, 0xc8, 0x7b, 0x36, 0x11, 0x29, - 0x25, 0x1a, 0x4b, 0xa2, 0xc2, 0xc7, 0x29, 0xb4, 0xe8, 0xbd, 0x30, 0x69, 0x74, 0xac, 0x85, 0xae, - 0x69, 0x51, 0xd1, 0x40, 0x86, 0xa6, 0x60, 0xe2, 0xea, 0xc2, 0x5a, 0x3d, 0x2c, 0xc7, 0xb1, 0x56, - 0x61, 0x18, 0x11, 0xb1, 0x90, 0xc3, 0x03, 0x86, 0x11, 0x11, 0x6b, 0x18, 0x85, 0x11, 0x11, 0x4b, - 0xa7, 0x22, 0x41, 0x0e, 0x80, 0x6b, 0x99, 0x4d, 0x81, 0x92, 0xbf, 0xda, 0x15, 0x92, 0x90, 0xef, - 0xd5, 0x6b, 0x55, 0x81, 0x91, 0xdd, 0x7e, 0xd1, 0x6f, 0xac, 0x60, 0x40, 0x9f, 0xd2, 0x60, 0x4a, - 0xd0, 0x6e, 0x81, 0x73, 0x8c, 0x7d, 0xa2, 0x57, 0x8a, 0xee, 0x97, 0xc4, 0x9e, 0x9c, 0xc7, 0x2a, - 0x70, 0x4e, 0x77, 0x42, 0x07, 0x9b, 0x58, 0x1d, 0x8e, 0x8f, 0x03, 0xfd, 0x7d, 0x0d, 0x2e, 0xfa, - 0xc4, 0xdb, 0xb5, 0x9a, 0x64, 0xa1, 0xd9, 0x74, 0xbb, 0x8e, 0xfc, 0x0e, 0xe5, 0xe2, 0x51, 0x17, - 0x1a, 0x19, 0xf0, 0xb8, 0x65, 0x77, 0x56, 0x0d, 0xce, 0xc4, 0x4f, 0xd9, 0xb2, 0x73, 0xf7, 0x8d, - 0xa0, 0xb9, 0x5d, 0x35, 0x9a, 0xdb, 0x4c, 0x57, 0xce, 0x8d, 0xb9, 0x0b, 0xee, 0xeb, 0x97, 0xe2, - 0xa0, 0xf8, 0xab, 0x73, 0xa2, 0x10, 0x27, 0x11, 0x22, 0x17, 0xca, 0x9e, 0x08, 0x19, 0x35, 0x0b, - 0xc5, 0x59, 0x8a, 0x54, 0xfc, 0x29, 0xce, 0xd8, 0xcb, 0x5f, 0x38, 0x44, 0x82, 0x5a, 0xf0, 0x08, - 0x17, 0x6d, 0x16, 0x1c, 0xd7, 0xe9, 0xb5, 0xdd, 0xae, 0xbf, 0xd0, 0x0d, 0xb6, 0x89, 0x13, 0x48, - 0x5d, 0xe5, 0x04, 0xbb, 0x46, 0x99, 0x3d, 0xfb, 0x52, 0xbf, 0x86, 0xb8, 0x3f, 0x1c, 0xf4, 0x32, - 0x94, 0xc9, 0x2e, 0x71, 0x82, 0xf5, 0xf5, 0x65, 0x66, 0x17, 0x7e, 0x7c, 0x6e, 0x8f, 0x4d, 0x61, - 0x49, 0xc0, 0xc0, 0x21, 0x34, 0xb4, 0x03, 0x63, 0x36, 0x8f, 0xf9, 0x35, 0x3b, 0x55, 0x9c, 0x28, - 0x26, 0xe3, 0x87, 0x71, 0xf9, 0x4f, 0xfc, 0xc0, 0x12, 0x03, 0xea, 0xc0, 0x75, 0x93, 0x6c, 0x19, - 0x5d, 0x3b, 0x58, 0x75, 0x03, 0xca, 0xd2, 0xf6, 0x22, 0xfd, 0x94, 0x74, 0x01, 0x98, 0x66, 0x0e, - 0xd2, 0x8f, 0x1d, 0xec, 0x57, 0xae, 0xd7, 0x0e, 0x69, 0x8b, 0x0f, 0x85, 0x86, 0x7a, 0xf0, 0xa8, - 0x68, 0xb3, 0xe1, 0x78, 0xc4, 0x68, 0x6e, 0xd3, 0x55, 0x4e, 0x23, 0x3d, 0xc7, 0x90, 0xfe, 0xad, - 0x83, 0xfd, 0xca, 0xa3, 0xb5, 0xc3, 0x9b, 0xe3, 0xa3, 0xc0, 0x9c, 0xfb, 0x10, 0xa0, 0xf4, 0x39, - 0x3f, 0xec, 0xc2, 0x2e, 0xab, 0x17, 0xf6, 0x67, 0x46, 0xe0, 0x2a, 0x25, 0x1f, 0x11, 0x9b, 0xba, - 0x62, 0x38, 0x46, 0xeb, 0x3b, 0xf3, 0x6a, 0xfb, 0x0d, 0x0d, 0x1e, 0xda, 0xce, 0x16, 0x21, 0x05, - 0xa3, 0xfc, 0x42, 0x21, 0x51, 0xbf, 0x9f, 0x54, 0xca, 0x4f, 0x56, 0xdf, 0x26, 0x38, 0x6f, 0x50, - 0xe8, 0x43, 0x30, 0xe3, 0xb8, 0x26, 0xa9, 0xd6, 0x6b, 0x78, 0xc5, 0xf0, 0x77, 0x1a, 0xf2, 0xe5, - 0x6f, 0x84, 0xdb, 0x9c, 0xac, 0x26, 0xea, 0x70, 0xaa, 0x35, 0xda, 0x05, 0xd4, 0x71, 0xcd, 0xa5, - 0x5d, 0xab, 0x29, 0xdf, 0x9c, 0x8a, 0xdb, 0xb9, 0xb0, 0x87, 0xad, 0xb5, 0x14, 0x34, 0x9c, 0x81, - 0x81, 0xc9, 0xc0, 0x74, 0x30, 0x2b, 0xae, 0x63, 0x05, 0xae, 0xc7, 0xfc, 0x60, 0x06, 0x12, 0x05, - 0x99, 0x0c, 0xbc, 0x9a, 0x09, 0x11, 0xe7, 0x60, 0xd2, 0xff, 0xa7, 0x06, 0xe7, 0xe8, 0xb6, 0x58, - 0xf3, 0xdc, 0xbd, 0xde, 0x77, 0xe2, 0x86, 0x7c, 0x42, 0x18, 0x41, 0x70, 0xdd, 0xcd, 0x25, 0xc5, - 0x00, 0x62, 0x9c, 0x8d, 0x39, 0xb2, 0x79, 0x50, 0xd5, 0x57, 0x43, 0xf9, 0xea, 0x2b, 0xfd, 0x53, - 0x25, 0xce, 0x62, 0x4a, 0xf5, 0xd1, 0x77, 0xe4, 0x39, 0x7c, 0x06, 0xa6, 0x68, 0xd9, 0x8a, 0xb1, - 0xb7, 0x56, 0x7b, 0xd1, 0xb5, 0xa5, 0x2b, 0x0f, 0x33, 0xcf, 0xbd, 0xab, 0x56, 0xe0, 0x78, 0x3b, - 0x74, 0x13, 0xc6, 0x3a, 0xdc, 0xe1, 0x59, 0x08, 0x37, 0xd7, 0xb9, 0xa5, 0x00, 0x2b, 0x7a, 0xb0, - 0x5f, 0x39, 0x1f, 0x3d, 0x96, 0x88, 0x42, 0x2c, 0x3b, 0xe8, 0x9f, 0xb8, 0x04, 0x0c, 0xb8, 0x4d, - 0x82, 0xef, 0xc4, 0x35, 0x79, 0x0a, 0x26, 0x9a, 0x9d, 0x6e, 0xf5, 0x56, 0xe3, 0x85, 0xae, 0xcb, - 0x84, 0x56, 0x16, 0x9b, 0x91, 0xf2, 0x9c, 0xd5, 0xb5, 0x0d, 0x59, 0x8c, 0xd5, 0x36, 0x94, 0x3a, - 0x34, 0x3b, 0x5d, 0x41, 0x6f, 0xd7, 0x54, 0x1b, 0x55, 0x46, 0x1d, 0xaa, 0x6b, 0x1b, 0xb1, 0x3a, - 0x9c, 0x6a, 0x8d, 0x7e, 0x1c, 0x26, 0x89, 0x38, 0xb8, 0x77, 0x0c, 0xcf, 0x14, 0x74, 0xa1, 0x5e, - 0x74, 0xf2, 0xe1, 0xd2, 0x4a, 0x6a, 0xc0, 0x59, 0xf5, 0x25, 0x05, 0x05, 0x8e, 0x21, 0x44, 0x3f, - 0x08, 0x57, 0xe4, 0x6f, 0xfa, 0x95, 0x5d, 0x33, 0x49, 0x28, 0x46, 0xb8, 0x8f, 0xe9, 0x52, 0x5e, - 0x23, 0x9c, 0xdf, 0x1f, 0xfd, 0xba, 0x06, 0x97, 0xc3, 0x5a, 0xcb, 0xb1, 0xda, 0xdd, 0x36, 0x26, - 0x4d, 0xdb, 0xb0, 0xda, 0x82, 0x41, 0x7f, 0xe9, 0xc4, 0x26, 0x1a, 0x07, 0xcf, 0x89, 0x55, 0x76, - 0x1d, 0xce, 0x19, 0x12, 0xfa, 0x9c, 0x06, 0xd7, 0x65, 0xd5, 0x9a, 0x47, 0x7c, 0xbf, 0xeb, 0x91, - 0xc8, 0x91, 0x4c, 0x2c, 0xc9, 0x58, 0x21, 0xda, 0xc9, 0x38, 0x95, 0xa5, 0x43, 0x60, 0xe3, 0x43, - 0xb1, 0xab, 0xdb, 0xa5, 0xe1, 0x6e, 0x05, 0x82, 0xa3, 0x3f, 0xad, 0xed, 0x42, 0x51, 0xe0, 0x18, - 0x42, 0xf4, 0x2f, 0x34, 0x78, 0x48, 0x2d, 0x50, 0x77, 0x0b, 0x67, 0xe5, 0x5f, 0x3e, 0xb1, 0xc1, - 0x24, 0xe0, 0x73, 0x5d, 0x70, 0x4e, 0x25, 0xce, 0x1b, 0x15, 0x25, 0xdb, 0x6d, 0xb6, 0x31, 0x39, - 0xbb, 0x3f, 0xc2, 0xc9, 0x36, 0xdf, 0xab, 0x3e, 0x96, 0x75, 0x54, 0xd0, 0xed, 0xb8, 0xe6, 0x9a, - 0x65, 0xfa, 0xcb, 0x56, 0xdb, 0x0a, 0x18, 0x53, 0x3e, 0xc4, 0x97, 0x63, 0xcd, 0x35, 0xd7, 0xea, - 0x35, 0x5e, 0x8e, 0x63, 0xad, 0x98, 0x4b, 0xb7, 0xd5, 0x36, 0x5a, 0x64, 0xad, 0x6b, 0xdb, 0x6b, - 0x9e, 0xcb, 0x14, 0x86, 0x35, 0x62, 0x98, 0xb6, 0xe5, 0x90, 0x82, 0x4c, 0x38, 0x3b, 0x6e, 0xf5, - 0x3c, 0xa0, 0x38, 0x1f, 0x1f, 0x9a, 0x07, 0xd8, 0x32, 0x2c, 0xbb, 0x71, 0xdf, 0xe8, 0xdc, 0x73, - 0x18, 0xa7, 0x5e, 0xe6, 0x22, 0xec, 0xad, 0xb0, 0x14, 0x2b, 0x2d, 0xe8, 0x6e, 0xa2, 0x54, 0x10, - 0x13, 0x1e, 0x4a, 0x88, 0x71, 0xd5, 0x27, 0xb1, 0x9b, 0x24, 0x40, 0xbe, 0x7c, 0x77, 0x15, 0x14, - 0x38, 0x86, 0x10, 0x7d, 0x54, 0x83, 0x69, 0xbf, 0xe7, 0x07, 0xa4, 0x1d, 0x8e, 0xe1, 0xdc, 0x49, - 0x8f, 0x81, 0xa9, 0x52, 0x1b, 0x31, 0x24, 0x38, 0x81, 0x14, 0x19, 0x70, 0x95, 0xad, 0xea, 0xed, - 0xea, 0x1d, 0xab, 0xb5, 0x1d, 0x3a, 0x6a, 0xaf, 0x11, 0xaf, 0x49, 0x9c, 0x60, 0x76, 0x86, 0xed, - 0x1b, 0x66, 0x4a, 0x53, 0xcf, 0x6f, 0x86, 0xfb, 0xc1, 0x40, 0xaf, 0xc2, 0x9c, 0xa8, 0x5e, 0x76, - 0xef, 0xa7, 0x30, 0x9c, 0x67, 0x18, 0x98, 0xe9, 0x50, 0x3d, 0xb7, 0x15, 0xee, 0x03, 0x01, 0xd5, - 0xe1, 0x82, 0x4f, 0x3c, 0xf6, 0x12, 0x42, 0xc2, 0xcd, 0xe3, 0xcf, 0xa2, 0xc8, 0x6a, 0xb8, 0x91, - 0xae, 0xc6, 0x59, 0x7d, 0xd0, 0x73, 0xa1, 0x63, 0x52, 0x8f, 0x16, 0xbc, 0xb0, 0xd6, 0x98, 0xbd, - 0xc0, 0xc6, 0x77, 0x41, 0xf1, 0x37, 0x92, 0x55, 0x38, 0xd9, 0x96, 0xf2, 0x16, 0xb2, 0x68, 0xb1, - 0xeb, 0xf9, 0xc1, 0xec, 0x45, 0xd6, 0x99, 0xf1, 0x16, 0x58, 0xad, 0xc0, 0xf1, 0x76, 0xe8, 0x26, - 0x4c, 0xfb, 0xa4, 0xd9, 0x74, 0xdb, 0x1d, 0x21, 0x5e, 0xcd, 0x5e, 0x62, 0xa3, 0xe7, 0x5f, 0x30, - 0x56, 0x83, 0x13, 0x2d, 0x51, 0x0f, 0x2e, 0x84, 0x81, 0x75, 0x96, 0xdd, 0xd6, 0x8a, 0xb1, 0xc7, - 0x58, 0xf5, 0xcb, 0x87, 0x9f, 0xc0, 0x79, 0xf9, 0xb4, 0x3d, 0xff, 0x42, 0xd7, 0x70, 0x02, 0x2b, - 0xe8, 0xf1, 0xe5, 0xaa, 0xa6, 0xc1, 0xe1, 0x2c, 0x1c, 0x68, 0x19, 0x2e, 0x26, 0x8a, 0x6f, 0x59, - 0x36, 0xf1, 0x67, 0x1f, 0x62, 0xd3, 0x66, 0x3a, 0x92, 0x6a, 0x46, 0x3d, 0xce, 0xec, 0x85, 0xee, - 0xc1, 0xa5, 0x8e, 0xe7, 0x06, 0xa4, 0x19, 0xdc, 0xa5, 0xec, 0x89, 0x2d, 0x26, 0xe8, 0xcf, 0xce, - 0xb2, 0xb5, 0x60, 0xaf, 0x40, 0x6b, 0x59, 0x0d, 0x70, 0x76, 0x3f, 0xf4, 0x19, 0x0d, 0xae, 0xf9, - 0x81, 0x47, 0x8c, 0xb6, 0xe5, 0xb4, 0xaa, 0xae, 0xe3, 0x10, 0x46, 0x26, 0xeb, 0x66, 0x64, 0x74, - 0x7f, 0xa5, 0x10, 0x9d, 0xd2, 0x0f, 0xf6, 0x2b, 0xd7, 0x1a, 0x7d, 0x21, 0xe3, 0x43, 0x30, 0xa3, - 0x37, 0x01, 0xda, 0xa4, 0xed, 0x7a, 0x3d, 0x4a, 0x91, 0x66, 0xe7, 0x8a, 0x1b, 0x31, 0xad, 0x84, - 0x50, 0xf8, 0xf1, 0x8f, 0xbd, 0x5f, 0x45, 0x95, 0x58, 0x41, 0xa7, 0xef, 0x97, 0xe0, 0x52, 0xe6, - 0xc5, 0x43, 0x4f, 0x00, 0x6f, 0xb7, 0x20, 0x83, 0xec, 0x8a, 0x27, 0x1f, 0x76, 0x02, 0x56, 0xe2, - 0x55, 0x38, 0xd9, 0x96, 0xb2, 0x85, 0xec, 0xa4, 0xde, 0x6a, 0x44, 0xfd, 0x4b, 0x11, 0x5b, 0x58, - 0x4f, 0xd4, 0xe1, 0x54, 0x6b, 0x54, 0x85, 0xf3, 0xa2, 0xac, 0x4e, 0x25, 0x2b, 0xff, 0x96, 0x47, - 0x24, 0xc3, 0x4d, 0x65, 0x94, 0xf3, 0xf5, 0x64, 0x25, 0x4e, 0xb7, 0xa7, 0xb3, 0xa0, 0x3f, 0xd4, - 0x51, 0x0c, 0x47, 0xb3, 0x58, 0x8d, 0x57, 0xe1, 0x64, 0x5b, 0x29, 0xfa, 0xc6, 0x86, 0x30, 0x12, - 0xcd, 0x62, 0x35, 0x51, 0x87, 0x53, 0xad, 0xf5, 0xff, 0x34, 0x0c, 0x8f, 0x1e, 0x81, 0x59, 0x43, - 0xed, 0xec, 0xe5, 0x3e, 0xfe, 0xc1, 0x3d, 0xda, 0xe7, 0xe9, 0xe4, 0x7c, 0x9e, 0xe3, 0xe3, 0x3b, - 0xea, 0xe7, 0xf4, 0xf3, 0x3e, 0xe7, 0xf1, 0x51, 0x1e, 0xfd, 0xf3, 0xb7, 0xb3, 0x3f, 0x7f, 0xc1, - 0x55, 0x3d, 0x74, 0xbb, 0x74, 0x72, 0xb6, 0x4b, 0xc1, 0x55, 0x3d, 0xc2, 0xf6, 0xfa, 0x93, 0x61, - 0x78, 0xec, 0x28, 0x8c, 0x63, 0xc1, 0xfd, 0x95, 0x41, 0xf2, 0x4e, 0x75, 0x7f, 0xe5, 0xf9, 0x35, - 0x9d, 0xe2, 0xfe, 0xca, 0x40, 0x79, 0xda, 0xfb, 0x2b, 0x6f, 0x55, 0x4f, 0x6b, 0x7f, 0xe5, 0xad, - 0xea, 0x11, 0xf6, 0xd7, 0x5f, 0x24, 0xef, 0x87, 0x90, 0x5f, 0xac, 0xc3, 0x50, 0xb3, 0xd3, 0x2d, - 0x48, 0xa4, 0x98, 0x81, 0x50, 0x75, 0x6d, 0x03, 0x53, 0x18, 0x08, 0xc3, 0x28, 0xdf, 0x3f, 0x05, - 0x49, 0x10, 0xf3, 0x90, 0xe1, 0x5b, 0x12, 0x0b, 0x48, 0x74, 0xa9, 0x48, 0x67, 0x9b, 0xb4, 0x89, - 0x67, 0xd8, 0x8d, 0xc0, 0xf5, 0x8c, 0x56, 0x51, 0x6a, 0xc3, 0x96, 0x6a, 0x29, 0x01, 0x0b, 0xa7, - 0xa0, 0xd3, 0x05, 0xe9, 0x58, 0x66, 0x41, 0xfa, 0xc2, 0x16, 0x64, 0xad, 0x5e, 0xc3, 0x14, 0x86, - 0xfe, 0x8f, 0xc7, 0x41, 0x09, 0x5c, 0x87, 0x7e, 0x10, 0xae, 0x18, 0xb6, 0xed, 0xde, 0x5f, 0xf3, - 0xac, 0x5d, 0xcb, 0x26, 0x2d, 0x62, 0x86, 0xcc, 0x94, 0x2f, 0xcc, 0xc8, 0x98, 0xc0, 0xb4, 0x90, - 0xd7, 0x08, 0xe7, 0xf7, 0x47, 0x6f, 0x69, 0x70, 0xbe, 0x99, 0x0c, 0x16, 0x36, 0x88, 0xa1, 0x49, - 0x2a, 0xf2, 0x18, 0x3f, 0x4f, 0xa9, 0x62, 0x9c, 0x46, 0x8b, 0x7e, 0x42, 0xe3, 0x4a, 0xb9, 0xf0, - 0x99, 0x44, 0x7c, 0xb3, 0xdb, 0x27, 0xf4, 0xa0, 0x18, 0x69, 0xf7, 0xa2, 0xb7, 0xab, 0x38, 0x42, - 0xf4, 0x39, 0x0d, 0x2e, 0xed, 0x64, 0xbd, 0x25, 0x88, 0x2f, 0x7b, 0xaf, 0xe8, 0x50, 0x72, 0x1e, - 0x27, 0x38, 0x3b, 0x9b, 0xd9, 0x00, 0x67, 0x0f, 0x24, 0x5c, 0xa5, 0x50, 0xbd, 0x2a, 0x88, 0x40, - 0xe1, 0x55, 0x4a, 0xe8, 0x69, 0xa3, 0x55, 0x0a, 0x2b, 0x70, 0x1c, 0x21, 0xea, 0xc0, 0xf8, 0x8e, - 0xd4, 0x69, 0x0b, 0x3d, 0x56, 0xb5, 0x28, 0x76, 0x45, 0x31, 0xce, 0x0d, 0x69, 0xc2, 0x42, 0x1c, - 0x21, 0x41, 0xdb, 0x30, 0xb6, 0xc3, 0x09, 0x91, 0xd0, 0x3f, 0x2d, 0x0c, 0x2c, 0x1f, 0x73, 0x35, - 0x88, 0x28, 0xc2, 0x12, 0xbc, 0x6a, 0x45, 0x5b, 0x3e, 0xc4, 0xb9, 0xe3, 0x33, 0x1a, 0x5c, 0xda, - 0x25, 0x5e, 0x60, 0x35, 0x93, 0x2f, 0x39, 0xe3, 0xc5, 0x65, 0xf8, 0x17, 0xb3, 0x00, 0xf2, 0x6d, - 0x92, 0x59, 0x85, 0xb3, 0x87, 0x40, 0x25, 0x7a, 0xae, 0x90, 0x6f, 0x04, 0x46, 0x60, 0x35, 0xd7, - 0xdd, 0x1d, 0xe2, 0x44, 0xf9, 0x55, 0x98, 0x26, 0xa8, 0xcc, 0x25, 0xfa, 0xa5, 0xfc, 0x66, 0xb8, - 0x1f, 0x0c, 0xfd, 0x5b, 0x1a, 0xa4, 0xd4, 0xca, 0xe8, 0xe7, 0x35, 0x98, 0xdc, 0x22, 0x46, 0xd0, - 0xf5, 0xc8, 0x6d, 0x23, 0x08, 0x3d, 0xce, 0x5f, 0x3c, 0x09, 0x6d, 0xf6, 0xfc, 0x2d, 0x05, 0x30, - 0x37, 0x08, 0x08, 0x83, 0x5e, 0xaa, 0x55, 0x38, 0x36, 0x82, 0xb9, 0xe7, 0xe1, 0x7c, 0xaa, 0xe3, - 0xb1, 0x5e, 0x18, 0xff, 0xb5, 0x06, 0x59, 0x29, 0x81, 0xd0, 0xab, 0x30, 0x62, 0x98, 0x66, 0x18, - 0xe3, 0xff, 0xd9, 0x62, 0xb6, 0x29, 0xa6, 0xea, 0xd8, 0xcf, 0x7e, 0x62, 0x0e, 0x16, 0xdd, 0x02, - 0x64, 0xc4, 0x5e, 0xb8, 0x57, 0x22, 0x77, 0x55, 0xf6, 0x12, 0xb6, 0x90, 0xaa, 0xc5, 0x19, 0x3d, - 0xf4, 0x9f, 0xd1, 0x00, 0xa5, 0xc3, 0xa4, 0x22, 0x0f, 0xca, 0x62, 0x2b, 0xcb, 0xaf, 0x54, 0x2b, - 0xe8, 0x52, 0x12, 0xf3, 0x8f, 0x8a, 0x0c, 0x9d, 0x44, 0x81, 0x8f, 0x43, 0x3c, 0xfa, 0x5f, 0x6a, - 0x10, 0xc5, 0x01, 0x47, 0xef, 0x83, 0x09, 0x93, 0xf8, 0x4d, 0xcf, 0xea, 0x04, 0x91, 0x37, 0x55, - 0xe8, 0x95, 0x51, 0x8b, 0xaa, 0xb0, 0xda, 0x0e, 0xe9, 0x30, 0x1a, 0x18, 0xfe, 0x4e, 0xbd, 0x26, - 0x84, 0x4a, 0xc6, 0x02, 0xac, 0xb3, 0x12, 0x2c, 0x6a, 0xa2, 0x90, 0x61, 0x43, 0x47, 0x08, 0x19, - 0x86, 0xb6, 0x4e, 0x20, 0x3e, 0x1a, 0x3a, 0x3c, 0x36, 0x9a, 0xfe, 0xab, 0x25, 0x38, 0x47, 0x9b, - 0xac, 0x18, 0x96, 0x13, 0x10, 0x87, 0xf9, 0x0e, 0x14, 0x5c, 0x84, 0x16, 0x4c, 0x05, 0x31, 0xdf, - 0xb8, 0xe3, 0x7b, 0x96, 0x85, 0xd6, 0x34, 0x71, 0x8f, 0xb8, 0x38, 0x5c, 0xf4, 0xac, 0x74, 0xde, - 0xe0, 0xe2, 0xf7, 0xa3, 0x72, 0xab, 0x32, 0x8f, 0x8c, 0x07, 0xc2, 0xd1, 0x30, 0x0c, 0x1e, 0x1f, - 0xf3, 0xd3, 0x78, 0x06, 0xa6, 0x84, 0x11, 0x35, 0x8f, 0xfd, 0x26, 0xc4, 0x6f, 0x76, 0xc3, 0xdc, - 0x52, 0x2b, 0x70, 0xbc, 0x9d, 0xfe, 0x95, 0x12, 0xc4, 0x43, 0xd4, 0x17, 0x5d, 0xa5, 0x74, 0xe0, - 0xbb, 0xd2, 0xa9, 0x05, 0xbe, 0x7b, 0x0f, 0xcb, 0xef, 0xc2, 0x13, 0x81, 0xf1, 0x27, 0x72, 0x35, - 0x2b, 0x0b, 0x4f, 0xe3, 0x15, 0xb6, 0x88, 0x96, 0x75, 0xf8, 0xd8, 0xcb, 0xfa, 0x3e, 0x61, 0x5d, - 0x39, 0x12, 0x0b, 0x3f, 0x28, 0xad, 0x2b, 0xcf, 0xc7, 0x3a, 0x2a, 0xae, 0x26, 0x5f, 0xd4, 0x60, - 0x4c, 0xc4, 0x06, 0x3e, 0x82, 0x2b, 0xd3, 0x16, 0x8c, 0x30, 0x91, 0x67, 0x10, 0x6e, 0xb0, 0xb1, - 0xed, 0xba, 0x41, 0x2c, 0x42, 0x32, 0xf3, 0x1d, 0x60, 0xff, 0x62, 0x0e, 0x9e, 0x19, 0xd8, 0x79, - 0xcd, 0x6d, 0x2b, 0x20, 0xcd, 0x40, 0xc6, 0x5d, 0x95, 0x06, 0x76, 0x4a, 0x39, 0x8e, 0xb5, 0xd2, - 0x3f, 0x3b, 0x0c, 0xd7, 0x05, 0xe0, 0x14, 0x8b, 0x14, 0x12, 0xb8, 0x1e, 0x5c, 0x10, 0xdf, 0xb6, - 0xe6, 0x19, 0x56, 0x68, 0x7a, 0x50, 0x4c, 0xf4, 0x15, 0xc9, 0xee, 0x52, 0xe0, 0x70, 0x16, 0x0e, - 0x1e, 0x41, 0x94, 0x15, 0xdf, 0x21, 0x86, 0x1d, 0x6c, 0x4b, 0xdc, 0xa5, 0x41, 0x22, 0x88, 0xa6, - 0xe1, 0xe1, 0x4c, 0x2c, 0xcc, 0xf4, 0x41, 0x54, 0x54, 0x3d, 0x62, 0xa8, 0x76, 0x17, 0x03, 0x98, - 0xff, 0xaf, 0x64, 0x42, 0xc4, 0x39, 0x98, 0x98, 0x0e, 0xd1, 0xd8, 0x63, 0x2a, 0x09, 0x4c, 0x02, - 0xcf, 0x62, 0x91, 0xae, 0x43, 0x2d, 0xfa, 0x4a, 0xbc, 0x0a, 0x27, 0xdb, 0xa2, 0x9b, 0x30, 0xcd, - 0x4c, 0x49, 0xa2, 0x50, 0x57, 0x23, 0x51, 0x34, 0x85, 0xd5, 0x58, 0x0d, 0x4e, 0xb4, 0xd4, 0x7f, - 0x4d, 0x83, 0x49, 0x75, 0xdb, 0x1d, 0xc1, 0xaf, 0xa9, 0xab, 0x5c, 0x86, 0x03, 0xf8, 0xdc, 0xa8, - 0x58, 0x8f, 0x72, 0x1f, 0x7e, 0x62, 0x08, 0x2e, 0x64, 0xf4, 0x61, 0x86, 0x01, 0x24, 0x71, 0xb1, - 0x0e, 0x62, 0x18, 0x90, 0xba, 0xa4, 0x43, 0xc3, 0x80, 0x64, 0x0d, 0x4e, 0xe1, 0x45, 0x2f, 0xc2, - 0x50, 0xd3, 0xb3, 0xc4, 0xb2, 0x3c, 0x53, 0x48, 0x2c, 0xc4, 0xf5, 0xc5, 0x09, 0x81, 0x71, 0xa8, - 0x8a, 0xeb, 0x98, 0x02, 0xa4, 0xd7, 0x83, 0x7a, 0xa8, 0xe5, 0x5d, 0xcd, 0xae, 0x07, 0xf5, 0xec, - 0xfb, 0x38, 0xde, 0x0e, 0xbd, 0x0c, 0xb3, 0x82, 0x5f, 0x97, 0x9e, 0xcc, 0xae, 0xe3, 0x07, 0xf4, - 0xfc, 0x05, 0x82, 0x9c, 0x3e, 0x7c, 0xb0, 0x5f, 0x99, 0xbd, 0x9b, 0xd3, 0x06, 0xe7, 0xf6, 0xd6, - 0xff, 0x7c, 0x08, 0x26, 0x94, 0xf8, 0xe9, 0x68, 0x65, 0x10, 0x45, 0x47, 0x34, 0x63, 0xa9, 0xec, - 0x58, 0x81, 0xa1, 0x56, 0xa7, 0x5b, 0x50, 0xd3, 0x11, 0x82, 0xbb, 0x4d, 0xc1, 0xb5, 0x3a, 0x5d, - 0xf4, 0x62, 0xa8, 0x3b, 0x29, 0xa6, 0xdd, 0x08, 0xfd, 0x4e, 0x12, 0xfa, 0x13, 0x79, 0x5c, 0x86, - 0x73, 0x8f, 0x4b, 0x1b, 0xc6, 0x7c, 0xa1, 0x58, 0x19, 0x29, 0x1e, 0x3b, 0x46, 0x59, 0x69, 0xa1, - 0x48, 0xe1, 0x52, 0x99, 0xd4, 0xb3, 0x48, 0x1c, 0x94, 0xe3, 0xeb, 0x32, 0x6f, 0x56, 0x26, 0x6e, - 0x96, 0x39, 0xc7, 0xb7, 0xc1, 0x4a, 0xb0, 0xa8, 0x49, 0x5d, 0x24, 0x63, 0x47, 0xba, 0x48, 0xfe, - 0x6e, 0x09, 0x50, 0x7a, 0x18, 0xe8, 0x51, 0x18, 0x61, 0xde, 0xf0, 0x82, 0x62, 0x84, 0xfc, 0x39, - 0xf3, 0x87, 0xc6, 0xbc, 0x0e, 0x35, 0x44, 0x24, 0x8c, 0x62, 0x9f, 0x93, 0x59, 0xd6, 0x08, 0x7c, - 0x4a, 0xd8, 0x8c, 0xeb, 0x31, 0xd7, 0x89, 0xac, 0x9b, 0x79, 0x03, 0xc6, 0xda, 0x96, 0xc3, 0x9e, - 0xf7, 0x8a, 0xe9, 0x9b, 0xb8, 0x01, 0x00, 0x07, 0x81, 0x25, 0x2c, 0xfd, 0x4f, 0x4a, 0x74, 0xeb, - 0x47, 0x7c, 0x69, 0x0f, 0xc0, 0xe8, 0x06, 0x2e, 0x67, 0x70, 0xc4, 0x09, 0xa8, 0x17, 0xfb, 0xca, - 0x21, 0xd0, 0x85, 0x10, 0x20, 0x7f, 0x98, 0x8a, 0x7e, 0x63, 0x05, 0x19, 0x45, 0x1d, 0x58, 0x6d, - 0xf2, 0x92, 0xe5, 0x98, 0xee, 0x7d, 0xb1, 0xbc, 0x83, 0xa2, 0x5e, 0x0f, 0x01, 0x72, 0xd4, 0xd1, - 0x6f, 0xac, 0x20, 0xa3, 0xa4, 0x85, 0x89, 0xb7, 0x0e, 0x4b, 0x68, 0x21, 0xc6, 0xe6, 0xda, 0xb6, - 0xbc, 0x3b, 0xcb, 0x9c, 0xb4, 0x54, 0x73, 0xda, 0xe0, 0xdc, 0xde, 0xfa, 0xaf, 0x6b, 0x70, 0x29, - 0x73, 0x29, 0xd0, 0x6d, 0x38, 0x1f, 0x19, 0x63, 0xa9, 0xc4, 0xbe, 0x1c, 0x25, 0x52, 0xb9, 0x9b, - 0x6c, 0x80, 0xd3, 0x7d, 0x78, 0xb6, 0xde, 0xd4, 0x65, 0x22, 0x2c, 0xb9, 0x54, 0x06, 0x46, 0xad, - 0xc6, 0x59, 0x7d, 0xf4, 0x1f, 0x8c, 0x0d, 0x36, 0x5a, 0x2c, 0x7a, 0x32, 0x36, 0x49, 0x2b, 0x74, - 0x5d, 0x0b, 0x4f, 0xc6, 0x22, 0x2d, 0xc4, 0xbc, 0x0e, 0x3d, 0xa2, 0x3a, 0x84, 0x86, 0x74, 0x4b, - 0x3a, 0x85, 0xea, 0x3f, 0x0c, 0x0f, 0xe5, 0xbc, 0x57, 0xa2, 0x1a, 0x4c, 0xfa, 0xf7, 0x8d, 0xce, - 0x22, 0xd9, 0x36, 0x76, 0x2d, 0x11, 0x60, 0x80, 0x1b, 0xd9, 0x4d, 0x36, 0x94, 0xf2, 0x07, 0x89, - 0xdf, 0x38, 0xd6, 0x4b, 0x0f, 0x00, 0x84, 0x31, 0xa6, 0xe5, 0xb4, 0xd0, 0x16, 0x94, 0x0d, 0x91, - 0x2c, 0x56, 0xec, 0xe3, 0xef, 0x2f, 0x24, 0xaa, 0x0b, 0x18, 0xdc, 0x4a, 0x5c, 0xfe, 0xc2, 0x21, - 0x6c, 0xfd, 0x9f, 0x6a, 0x70, 0x39, 0xdb, 0xa5, 0xfc, 0x08, 0x0c, 0x48, 0x1b, 0x26, 0xbc, 0xa8, - 0x9b, 0xd8, 0xf4, 0xdf, 0xa7, 0xc6, 0x14, 0x55, 0x82, 0x68, 0x51, 0xe6, 0xac, 0xea, 0xb9, 0xbe, - 0xfc, 0xf2, 0xc9, 0x30, 0xa3, 0xa1, 0x60, 0xa4, 0x8c, 0x04, 0xab, 0xf0, 0xf5, 0xdf, 0x2d, 0x01, - 0xac, 0x92, 0xe0, 0xbe, 0xeb, 0xed, 0xd0, 0x25, 0x7a, 0x38, 0x26, 0x0f, 0x94, 0xbf, 0x7d, 0x61, - 0x0d, 0x1e, 0x86, 0xe1, 0x8e, 0x6b, 0xfa, 0x82, 0xfc, 0xb1, 0x81, 0x30, 0x3b, 0x25, 0x56, 0x8a, - 0x2a, 0x30, 0xc2, 0x9e, 0x27, 0xc4, 0xcd, 0xc4, 0xa4, 0x09, 0xca, 0x0b, 0xfa, 0x98, 0x97, 0xf3, - 0x14, 0x60, 0xcc, 0xf3, 0xc2, 0x17, 0xe2, 0x91, 0x48, 0x01, 0xc6, 0xcb, 0x70, 0x58, 0x8b, 0x6e, - 0x02, 0x58, 0x9d, 0x5b, 0x46, 0xdb, 0xb2, 0x29, 0x67, 0x3a, 0x1a, 0x66, 0x9c, 0x85, 0xfa, 0x9a, - 0x2c, 0x7d, 0xb0, 0x5f, 0x29, 0x8b, 0x5f, 0x3d, 0xac, 0xb4, 0xd6, 0xff, 0x6a, 0x08, 0x62, 0xd9, - 0x99, 0x23, 0x4d, 0x90, 0x76, 0x3a, 0x9a, 0xa0, 0x97, 0x61, 0xd6, 0x76, 0x0d, 0x73, 0xd1, 0xb0, - 0xe9, 0x69, 0xf4, 0x1a, 0xfc, 0x33, 0x1a, 0x4e, 0x2b, 0x4c, 0xc1, 0xcb, 0xa8, 0xd2, 0x72, 0x4e, - 0x1b, 0x9c, 0xdb, 0x1b, 0x05, 0x61, 0x4e, 0xe8, 0xa1, 0xe2, 0x4e, 0x8a, 0xea, 0x5a, 0xcc, 0xab, - 0xfe, 0x3a, 0x21, 0x83, 0x91, 0x48, 0x1b, 0xfd, 0x11, 0x0d, 0x2e, 0x91, 0x3d, 0xee, 0xaf, 0xb6, - 0xee, 0x19, 0x5b, 0x5b, 0x56, 0x53, 0x58, 0x8f, 0xf2, 0x0f, 0xbb, 0x7c, 0xb0, 0x5f, 0xb9, 0xb4, - 0x94, 0xd5, 0xe0, 0xc1, 0x7e, 0xe5, 0x46, 0xa6, 0xfb, 0x20, 0xfb, 0xac, 0x99, 0x5d, 0x70, 0x36, - 0xaa, 0xb9, 0x67, 0x61, 0xe2, 0x18, 0x3e, 0x07, 0x31, 0x27, 0xc1, 0xdf, 0x2b, 0xc1, 0x24, 0xdd, - 0x77, 0xcb, 0x6e, 0xd3, 0xb0, 0x6b, 0xab, 0x8d, 0x63, 0xe4, 0x34, 0x47, 0xcb, 0x70, 0x71, 0xcb, - 0xf5, 0x9a, 0x64, 0xbd, 0xba, 0xb6, 0xee, 0x8a, 0x87, 0x91, 0xda, 0x6a, 0x43, 0x50, 0x69, 0x26, - 0xea, 0xdd, 0xca, 0xa8, 0xc7, 0x99, 0xbd, 0xd0, 0x3d, 0xb8, 0x14, 0x95, 0x6f, 0x74, 0xb8, 0xb9, - 0x09, 0x05, 0x37, 0x14, 0x99, 0xcb, 0xdc, 0xca, 0x6a, 0x80, 0xb3, 0xfb, 0x21, 0x03, 0xae, 0x8a, - 0xc8, 0x21, 0xb7, 0x5c, 0xef, 0xbe, 0xe1, 0x99, 0x71, 0xb0, 0xc3, 0x91, 0xe2, 0xb8, 0x96, 0xdf, - 0x0c, 0xf7, 0x83, 0xa1, 0xff, 0xe2, 0x28, 0x28, 0x4e, 0x65, 0xc7, 0x48, 0x1a, 0xf5, 0x2b, 0x1a, - 0x5c, 0x6c, 0xda, 0x16, 0x71, 0x82, 0x84, 0x07, 0x11, 0x27, 0x47, 0x1b, 0x85, 0xbc, 0xdd, 0x3a, - 0xc4, 0xa9, 0xd7, 0x84, 0x75, 0x4e, 0x35, 0x03, 0xb8, 0xb0, 0x60, 0xca, 0xa8, 0xc1, 0x99, 0x83, - 0x61, 0xf3, 0x61, 0xe5, 0xf5, 0x9a, 0x1a, 0xf2, 0xa0, 0x2a, 0xca, 0x70, 0x58, 0x8b, 0x9e, 0x82, - 0x89, 0x96, 0xe7, 0x76, 0x3b, 0x7e, 0x95, 0x99, 0x04, 0xf3, 0xbd, 0xcf, 0xf8, 0xc2, 0xdb, 0x51, - 0x31, 0x56, 0xdb, 0x50, 0x2e, 0x97, 0xff, 0x5c, 0xf3, 0xc8, 0x96, 0xb5, 0x27, 0x88, 0x1c, 0xe3, - 0x72, 0x6f, 0x2b, 0xe5, 0x38, 0xd6, 0x8a, 0x79, 0x2d, 0xfb, 0x7e, 0x97, 0x78, 0x1b, 0x78, 0x59, - 0x64, 0x5b, 0xe0, 0x5e, 0xcb, 0xb2, 0x10, 0x47, 0xf5, 0xe8, 0x93, 0x1a, 0x4c, 0x7b, 0xe4, 0xf5, - 0xae, 0xe5, 0x11, 0x93, 0x21, 0xf5, 0x85, 0x67, 0x1f, 0x1e, 0xcc, 0x9b, 0x70, 0x1e, 0xc7, 0x80, - 0x72, 0x0a, 0x11, 0x2a, 0xd7, 0xe2, 0x95, 0x38, 0x31, 0x02, 0xba, 0x54, 0xbe, 0xd5, 0x72, 0x2c, - 0xa7, 0xb5, 0x60, 0xb7, 0xfc, 0xd9, 0x32, 0x23, 0x7a, 0x9c, 0x85, 0x8e, 0x8a, 0xb1, 0xda, 0x86, - 0x8a, 0x97, 0x5d, 0x9f, 0x9e, 0xfb, 0x36, 0xe1, 0xeb, 0x3b, 0x1e, 0x69, 0x1f, 0x37, 0xd4, 0x0a, - 0x1c, 0x6f, 0x87, 0x6e, 0xc2, 0xb4, 0x2c, 0x10, 0xab, 0x0c, 0x3c, 0xd6, 0x1d, 0x1d, 0xe7, 0x46, - 0xac, 0x06, 0x27, 0x5a, 0xce, 0x2d, 0xc0, 0x85, 0x8c, 0x69, 0x1e, 0x8b, 0xb8, 0xfc, 0x3f, 0x0d, - 0x2e, 0xf1, 0x8c, 0x97, 0x32, 0x4f, 0x83, 0x0c, 0x6a, 0x97, 0x1d, 0x1f, 0x4e, 0x3b, 0xd5, 0xf8, - 0x70, 0xdf, 0x86, 0x38, 0x78, 0xfa, 0xaf, 0x95, 0xe0, 0x9d, 0x87, 0x9e, 0x4b, 0xf4, 0x0f, 0x35, - 0x98, 0x20, 0x7b, 0x81, 0x67, 0x84, 0x7e, 0x13, 0x74, 0x93, 0x6e, 0x9d, 0x0a, 0x11, 0x98, 0x5f, - 0x8a, 0x10, 0xf1, 0x8d, 0x1b, 0xb2, 0x58, 0x4a, 0x0d, 0x56, 0xc7, 0x43, 0x85, 0x56, 0x1e, 0x0b, - 0x52, 0x7d, 0xa6, 0x10, 0x89, 0x88, 0x45, 0xcd, 0xdc, 0x07, 0x61, 0x26, 0x09, 0xf9, 0x58, 0x7b, - 0xe5, 0x77, 0x4a, 0x30, 0xb6, 0xe6, 0xb9, 0x94, 0xfb, 0x3b, 0x83, 0xe0, 0x07, 0x46, 0x2c, 0x3e, - 0x7a, 0x21, 0x7f, 0x66, 0x31, 0xd8, 0xdc, 0xdc, 0x0c, 0x56, 0x22, 0x37, 0xc3, 0xc2, 0x20, 0x48, - 0xfa, 0x27, 0x63, 0xf8, 0x92, 0x06, 0x13, 0xa2, 0xe5, 0x19, 0xb8, 0xf8, 0xff, 0x48, 0xdc, 0xc5, - 0xff, 0x03, 0x03, 0xcc, 0x2b, 0xc7, 0xb7, 0xff, 0x33, 0x1a, 0x4c, 0x89, 0x16, 0x2b, 0xa4, 0xbd, - 0x49, 0x3c, 0x74, 0x0b, 0xc6, 0xfc, 0x2e, 0xfb, 0x90, 0x62, 0x42, 0x57, 0x55, 0x79, 0xc2, 0xdb, - 0x34, 0x9a, 0x2c, 0x9b, 0x36, 0x6f, 0xa2, 0x64, 0x3c, 0xe0, 0x05, 0x58, 0x76, 0xa6, 0xd2, 0x8b, - 0xe7, 0xda, 0xa9, 0xa0, 0x4f, 0xd8, 0xb5, 0x09, 0x66, 0x35, 0x94, 0x31, 0xa7, 0x7f, 0xa5, 0x0a, - 0x8f, 0x31, 0xe6, 0xb4, 0xda, 0xc7, 0xbc, 0x5c, 0xff, 0xe8, 0x70, 0xb8, 0xd8, 0x2c, 0x2a, 0xf9, - 0x1d, 0x18, 0x6f, 0x7a, 0xc4, 0x08, 0x88, 0xb9, 0xd8, 0x3b, 0xca, 0xe0, 0xd8, 0x75, 0x55, 0x95, - 0x3d, 0x70, 0xd4, 0x99, 0xde, 0x0c, 0xea, 0xcb, 0x50, 0x29, 0xba, 0x44, 0x73, 0x5f, 0x85, 0xbe, - 0x1f, 0x46, 0xdc, 0xfb, 0x4e, 0x68, 0x60, 0xd2, 0x17, 0x31, 0x9b, 0xca, 0x3d, 0xda, 0x1a, 0xf3, - 0x4e, 0x6a, 0xd0, 0xb3, 0xe1, 0x3e, 0x41, 0xcf, 0x6c, 0x18, 0x6b, 0xb3, 0xcf, 0x30, 0x50, 0x00, - 0xfc, 0xd8, 0x07, 0x55, 0x53, 0x24, 0x31, 0xc8, 0x58, 0xa2, 0xa0, 0x37, 0x3c, 0xbd, 0x85, 0xfc, - 0x8e, 0xd1, 0x24, 0xea, 0x0d, 0xbf, 0x2a, 0x0b, 0x71, 0x54, 0x8f, 0x7a, 0xf1, 0x68, 0x7a, 0x63, - 0xc5, 0x35, 0x78, 0x62, 0x78, 0x4a, 0x00, 0x3d, 0xbe, 0xf4, 0xb9, 0x11, 0xf5, 0x7e, 0x76, 0x38, - 0xdc, 0xa4, 0x22, 0x9f, 0x45, 0x76, 0x06, 0x68, 0xad, 0x50, 0x06, 0xe8, 0xef, 0x95, 0x51, 0x5f, - 0x4b, 0xb1, 0x74, 0x5e, 0x61, 0xd4, 0xd7, 0x49, 0x81, 0x3a, 0x16, 0xe9, 0xb5, 0x0b, 0x17, 0xfc, - 0xc0, 0xb0, 0x49, 0xc3, 0x12, 0x9a, 0x0e, 0x3f, 0x30, 0xda, 0x9d, 0x02, 0x61, 0x57, 0xb9, 0x97, - 0x41, 0x1a, 0x14, 0xce, 0x82, 0x8f, 0x7e, 0x5a, 0x83, 0x59, 0x56, 0xbe, 0xd0, 0x0d, 0x5c, 0x1e, - 0x1f, 0x3c, 0x42, 0x7e, 0xfc, 0xe7, 0x67, 0x26, 0x00, 0x36, 0x72, 0xe0, 0xe1, 0x5c, 0x4c, 0xe8, - 0x4d, 0xb8, 0x44, 0x6f, 0xe0, 0x85, 0x66, 0x60, 0xed, 0x5a, 0x41, 0x2f, 0x1a, 0xc2, 0xf1, 0x63, - 0xad, 0x32, 0x61, 0x63, 0x39, 0x0b, 0x18, 0xce, 0xc6, 0xa1, 0xff, 0x85, 0x06, 0x28, 0xbd, 0x85, - 0x90, 0x0d, 0x65, 0x53, 0x9a, 0xfd, 0x6b, 0x27, 0x12, 0xea, 0x31, 0xa4, 0xcc, 0xa1, 0xb7, 0x40, - 0x88, 0x01, 0xb9, 0x30, 0x7e, 0x7f, 0xdb, 0x0a, 0x88, 0x6d, 0xf9, 0xc1, 0x09, 0x45, 0x96, 0x0c, - 0xc3, 0xac, 0xbd, 0x24, 0x01, 0xe3, 0x08, 0x87, 0xfe, 0x73, 0xc3, 0x50, 0x0e, 0x03, 0x5d, 0x1f, - 0xfe, 0x12, 0xdb, 0x05, 0xd4, 0x54, 0x92, 0x85, 0x0d, 0xa2, 0x81, 0x61, 0x4c, 0x58, 0x35, 0x05, - 0x0c, 0x67, 0x20, 0x40, 0x6f, 0xc2, 0x45, 0xcb, 0xd9, 0xf2, 0x0c, 0x3f, 0xf0, 0xba, 0x4c, 0x57, - 0x3e, 0x48, 0xce, 0x2d, 0x26, 0x43, 0xd5, 0x33, 0xc0, 0xe1, 0x4c, 0x24, 0x88, 0xc0, 0x18, 0x8f, - 0xe7, 0x2f, 0x83, 0xfe, 0x15, 0xca, 0x1e, 0xcb, 0xf3, 0x04, 0x44, 0x54, 0x93, 0xff, 0xf6, 0xb1, - 0x84, 0xcd, 0x03, 0x72, 0xf0, 0xff, 0xe5, 0xab, 0xb1, 0xd8, 0xf7, 0xd5, 0xe2, 0xf8, 0xa2, 0x44, - 0xc4, 0x3c, 0x20, 0x47, 0xbc, 0x10, 0x27, 0x11, 0xea, 0x7f, 0xa8, 0xc1, 0x08, 0x77, 0xa7, 0x3d, - 0x7d, 0x0e, 0xee, 0x87, 0x63, 0x1c, 0x5c, 0xa1, 0xb4, 0x41, 0x6c, 0xa8, 0xb9, 0x09, 0x6d, 0xbe, - 0xa8, 0xc1, 0x38, 0x6b, 0x71, 0x06, 0x2c, 0xd5, 0xab, 0x71, 0x96, 0xea, 0xd9, 0xc2, 0xb3, 0xc9, - 0x61, 0xa8, 0xfe, 0x70, 0x48, 0xcc, 0x85, 0x71, 0x2c, 0x75, 0xb8, 0x20, 0x6c, 0x56, 0x97, 0xad, - 0x2d, 0x42, 0xb7, 0x78, 0xcd, 0xe8, 0xf1, 0x07, 0xa2, 0x11, 0xe1, 0x31, 0x95, 0xae, 0xc6, 0x59, - 0x7d, 0xd0, 0xef, 0x69, 0x94, 0x37, 0x08, 0x3c, 0xab, 0x39, 0x50, 0x96, 0x98, 0x70, 0x6c, 0xf3, - 0x2b, 0x1c, 0x18, 0x97, 0x4c, 0x36, 0x22, 0x26, 0x81, 0x95, 0x3e, 0xd8, 0xaf, 0x54, 0x32, 0x54, - 0x66, 0x51, 0xc6, 0x08, 0x3f, 0xf8, 0xc8, 0x9f, 0xf6, 0x6d, 0xc2, 0xd4, 0xd4, 0x72, 0xc4, 0xe8, - 0x0e, 0x8c, 0xf8, 0x4d, 0xb7, 0x43, 0x8e, 0x93, 0xf7, 0x2a, 0x5c, 0xe0, 0x06, 0xed, 0x89, 0x39, - 0x80, 0xb9, 0xd7, 0x60, 0x52, 0x1d, 0x79, 0x86, 0xe4, 0x53, 0x53, 0x25, 0x9f, 0x63, 0xbf, 0x74, - 0xa9, 0x92, 0xd2, 0xef, 0x97, 0x60, 0x94, 0x67, 0x8f, 0x3e, 0x82, 0x32, 0xde, 0x92, 0xa1, 0xf9, - 0x07, 0x48, 0x8a, 0xaf, 0xc6, 0xb1, 0x7c, 0xc5, 0x75, 0x94, 0x35, 0x50, 0xa3, 0xf3, 0x23, 0x27, - 0x8c, 0x6e, 0x3a, 0x54, 0x3c, 0x37, 0x0f, 0x9f, 0xd8, 0x69, 0xc7, 0x33, 0xfd, 0x63, 0x0d, 0x26, - 0x63, 0xe1, 0x62, 0xdb, 0x30, 0xe4, 0x85, 0x59, 0xdb, 0x8a, 0xbe, 0x55, 0x48, 0xcb, 0xa7, 0xab, - 0x7d, 0x1a, 0x61, 0x8a, 0x27, 0x8c, 0x2c, 0x5b, 0x3a, 0xa1, 0xc8, 0xb2, 0xfa, 0xa7, 0x34, 0xb8, - 0x2c, 0x27, 0x14, 0x8f, 0x9b, 0x84, 0x1e, 0x87, 0xb2, 0xd1, 0xb1, 0x98, 0x4a, 0x4d, 0x55, 0x4a, - 0x2e, 0xac, 0xd5, 0x59, 0x19, 0x0e, 0x6b, 0xd1, 0x7b, 0xa0, 0x2c, 0x37, 0x9e, 0x60, 0x3b, 0x43, - 0x9a, 0x15, 0xbe, 0xbe, 0x84, 0x2d, 0xd0, 0xbb, 0x94, 0xec, 0x09, 0x23, 0x11, 0x9f, 0x10, 0x22, - 0xe6, 0xaf, 0xc0, 0xfa, 0xf7, 0xc1, 0x78, 0xa3, 0x71, 0x67, 0xa1, 0xd9, 0x24, 0xbe, 0x7f, 0x0c, - 0xe5, 0xb2, 0xfe, 0xf1, 0x21, 0x98, 0x12, 0x01, 0xe0, 0x2c, 0xc7, 0xb4, 0x9c, 0xd6, 0x19, 0xdc, - 0x29, 0xeb, 0x30, 0xce, 0xb5, 0x19, 0x87, 0x64, 0xd8, 0x6b, 0xc8, 0x46, 0xc9, 0x30, 0xcb, 0x61, - 0x05, 0x8e, 0x00, 0xa1, 0xbb, 0x30, 0xfa, 0x3a, 0xa5, 0x6f, 0xf2, 0x5c, 0x1c, 0x89, 0xcc, 0x84, - 0x9b, 0x9e, 0x91, 0x46, 0x1f, 0x0b, 0x10, 0xc8, 0x67, 0xa6, 0x79, 0x8c, 0xe1, 0x1a, 0x24, 0xc2, - 0x44, 0x6c, 0x65, 0xc3, 0xdc, 0x29, 0x93, 0xc2, 0xc2, 0x8f, 0xfd, 0xc2, 0x21, 0x22, 0x16, 0x23, - 0x3e, 0xd6, 0xe3, 0x6d, 0x12, 0x23, 0x3e, 0x36, 0xe6, 0x9c, 0xab, 0xf1, 0x59, 0xb8, 0x94, 0xb9, - 0x18, 0x87, 0xb3, 0xb3, 0xfa, 0x6f, 0x96, 0x60, 0xb8, 0x41, 0x88, 0x79, 0x06, 0x3b, 0xf3, 0xd5, - 0x18, 0xb7, 0xf3, 0xfd, 0x85, 0xa3, 0xd4, 0xe7, 0x29, 0xab, 0xb6, 0x12, 0xca, 0xaa, 0x0f, 0x16, - 0xc6, 0xd0, 0x5f, 0x53, 0xf5, 0x4b, 0x25, 0x00, 0xda, 0x6c, 0xd1, 0x68, 0xee, 0x70, 0x8a, 0x13, - 0xee, 0x66, 0x2d, 0x4e, 0x71, 0xd2, 0xdb, 0xf0, 0x2c, 0x1f, 0x6f, 0x75, 0x18, 0xf5, 0xd8, 0x4d, - 0x24, 0xde, 0x3d, 0x80, 0xa7, 0x7d, 0xa6, 0x25, 0x58, 0xd4, 0xc4, 0xa9, 0xc5, 0xf0, 0x09, 0x51, - 0x0b, 0x7d, 0x0f, 0x58, 0x9e, 0xce, 0xda, 0x6a, 0x03, 0xb5, 0x95, 0xd5, 0x29, 0x15, 0xe7, 0xe5, - 0x05, 0xb8, 0x43, 0x4f, 0xf9, 0xc7, 0x35, 0x38, 0x97, 0x68, 0x7b, 0x04, 0x99, 0xee, 0x54, 0x68, - 0xa6, 0xfe, 0x07, 0x1a, 0x94, 0xe9, 0x58, 0xce, 0x80, 0xd0, 0xfc, 0xed, 0x38, 0xa1, 0x79, 0x7f, - 0xd1, 0x25, 0xce, 0xa1, 0x2f, 0x7f, 0x56, 0x02, 0x96, 0x0e, 0x42, 0x98, 0x28, 0x28, 0x2f, 0xff, - 0x5a, 0xce, 0xcb, 0xff, 0x75, 0x61, 0x38, 0x90, 0xd0, 0x51, 0x2a, 0xc6, 0x03, 0xef, 0x51, 0x6c, - 0x03, 0x86, 0xe2, 0xc7, 0x26, 0xc3, 0x3e, 0xe0, 0x0d, 0x98, 0xf2, 0xb7, 0x5d, 0x37, 0x08, 0xe3, - 0x0f, 0x0c, 0x17, 0xd7, 0x47, 0x33, 0x3b, 0x68, 0x39, 0x15, 0xfe, 0x00, 0xd5, 0x50, 0x61, 0xe3, - 0x38, 0x2a, 0x34, 0x0f, 0xb0, 0x69, 0xbb, 0xcd, 0x9d, 0x6a, 0xbd, 0x86, 0xa5, 0xdd, 0x2b, 0x33, - 0x5a, 0x5a, 0x0c, 0x4b, 0xb1, 0xd2, 0x62, 0x20, 0x5b, 0x86, 0x6f, 0x6a, 0x7c, 0xa5, 0x8f, 0xb1, - 0x79, 0xcf, 0x90, 0xa2, 0xbc, 0x3b, 0x41, 0x51, 0x94, 0x64, 0xf2, 0x31, 0xaa, 0x52, 0x91, 0x0c, - 0xfb, 0x70, 0xa4, 0x7f, 0x8e, 0x25, 0xc1, 0xfa, 0x1d, 0x31, 0xcd, 0x30, 0xa3, 0x48, 0x07, 0xa6, - 0x6c, 0x35, 0xb1, 0xa9, 0x38, 0x23, 0x85, 0x72, 0xa2, 0x86, 0x8e, 0x14, 0xb1, 0x62, 0x1c, 0x47, - 0x80, 0x9e, 0x81, 0x29, 0x39, 0x3b, 0xba, 0x98, 0xd2, 0x72, 0x83, 0x6d, 0x87, 0x35, 0xb5, 0x02, - 0xc7, 0xdb, 0xe9, 0xff, 0x60, 0x18, 0x1e, 0xe1, 0x63, 0x67, 0x1a, 0x83, 0x1a, 0xe9, 0x10, 0xc7, - 0x24, 0x4e, 0xb3, 0xc7, 0x78, 0x56, 0xd3, 0x6d, 0xa1, 0x9f, 0xd2, 0xa0, 0x4c, 0x1c, 0xb3, 0xe3, - 0x5a, 0x8e, 0x54, 0xf5, 0x7f, 0xb8, 0x78, 0x4e, 0x96, 0x1c, 0x2c, 0x4b, 0x02, 0x81, 0x88, 0x92, - 0x29, 0x7e, 0xe1, 0x10, 0x31, 0xba, 0x0f, 0x23, 0x1d, 0xcf, 0xdd, 0x94, 0xc2, 0xda, 0x8b, 0x27, - 0x3e, 0x82, 0x35, 0x0a, 0x9d, 0x7f, 0x5c, 0xf6, 0x2f, 0xe6, 0xf8, 0xd0, 0x9b, 0x30, 0x7a, 0x9f, - 0x10, 0x33, 0x54, 0xe8, 0xbf, 0x74, 0xe2, 0x98, 0x5f, 0x62, 0xe0, 0xf9, 0x85, 0xc6, 0xff, 0xc7, - 0x02, 0x25, 0x45, 0xce, 0x46, 0x21, 0x39, 0xcb, 0x97, 0x4e, 0x67, 0xda, 0x02, 0x39, 0xff, 0x1f, - 0x0b, 0x94, 0x3a, 0x86, 0x77, 0x1d, 0xe9, 0x9b, 0x1d, 0x47, 0x86, 0xb8, 0x07, 0xfa, 0xe1, 0xc3, - 0x39, 0x0e, 0xc0, 0x35, 0x78, 0xf4, 0x08, 0xf3, 0x3b, 0x49, 0x88, 0xfc, 0x13, 0x1d, 0x07, 0xe2, - 0xd7, 0x35, 0x78, 0x4c, 0x01, 0xb9, 0xb4, 0x47, 0x25, 0xaf, 0xaa, 0xd1, 0x31, 0x9a, 0x56, 0xd0, - 0xe3, 0x7e, 0xef, 0xc7, 0x4a, 0xe2, 0xf1, 0x71, 0x0d, 0xc6, 0xb8, 0xb1, 0x93, 0xbc, 0x22, 0x5f, - 0x1d, 0x70, 0x5f, 0xe4, 0x0e, 0x49, 0x46, 0x87, 0x96, 0x73, 0xe3, 0xbf, 0x7d, 0x2c, 0xf1, 0xeb, - 0xff, 0x76, 0x04, 0xbe, 0xeb, 0xe8, 0x80, 0xd0, 0x37, 0xb5, 0x74, 0xc6, 0xe0, 0xf6, 0xe9, 0x0e, - 0x3e, 0xd4, 0x34, 0x09, 0xe5, 0xc5, 0x4b, 0xa9, 0x0c, 0x3c, 0x27, 0xa4, 0xc4, 0x52, 0xd2, 0x13, - 0xff, 0x33, 0x0d, 0x26, 0x29, 0xeb, 0x10, 0x5e, 0x00, 0xfc, 0x33, 0x75, 0x4e, 0x79, 0xa6, 0xab, - 0x0a, 0xca, 0x84, 0x0f, 0xab, 0x5a, 0x85, 0x63, 0x63, 0x43, 0x1b, 0xf1, 0x17, 0x3b, 0x2e, 0x12, - 0x5f, 0xcb, 0xe2, 0x18, 0x8f, 0x93, 0xdf, 0x6a, 0xce, 0x86, 0xe9, 0xf8, 0xca, 0x9f, 0xa6, 0x0a, - 0x6e, 0xee, 0x79, 0x38, 0x9f, 0x9a, 0xfd, 0xb1, 0x14, 0x50, 0x3f, 0x35, 0x0c, 0x15, 0x65, 0xa9, - 0x63, 0xe6, 0x8e, 0x92, 0x6f, 0xfb, 0xac, 0x06, 0x13, 0x86, 0xe3, 0x08, 0x93, 0x19, 0xb9, 0x7f, - 0xcd, 0x01, 0xbf, 0x6a, 0x16, 0xaa, 0xf9, 0x85, 0x08, 0x4d, 0xc2, 0x26, 0x44, 0xa9, 0xc1, 0xea, - 0x68, 0xfa, 0x18, 0x3e, 0x96, 0xce, 0xcc, 0xf0, 0x11, 0xfd, 0x98, 0x64, 0x96, 0xf8, 0x36, 0x7a, - 0xf9, 0x14, 0xd6, 0x86, 0xf1, 0x5e, 0xd9, 0x1a, 0xcf, 0xb9, 0x0f, 0xc2, 0x4c, 0x72, 0xe5, 0x8e, - 0xb5, 0x0b, 0x7e, 0x73, 0x28, 0x46, 0xaa, 0x73, 0xd1, 0x1f, 0x41, 0xcf, 0xfb, 0xb9, 0xc4, 0x66, - 0xe1, 0x24, 0xc0, 0x3a, 0xad, 0x05, 0x39, 0xd9, 0x1d, 0x33, 0x74, 0x76, 0xa6, 0xb2, 0x83, 0x7e, - 0xb2, 0x45, 0xb8, 0xa4, 0xac, 0x8f, 0x92, 0x4f, 0xf0, 0x09, 0x18, 0xdb, 0xb5, 0x7c, 0x4b, 0x46, - 0x24, 0x52, 0x6e, 0xe8, 0x17, 0x79, 0x31, 0x96, 0xf5, 0xfa, 0x72, 0xec, 0xec, 0xaf, 0xbb, 0x1d, - 0xd7, 0x76, 0x5b, 0xbd, 0x85, 0xfb, 0x86, 0x47, 0xb0, 0xdb, 0x0d, 0x04, 0xb4, 0xa3, 0xde, 0xf7, - 0x2b, 0x70, 0x5d, 0x81, 0x96, 0x19, 0x5a, 0xe1, 0x38, 0xe0, 0xbe, 0x34, 0x26, 0xc5, 0x0b, 0xe1, - 0x7b, 0xfa, 0xdb, 0x1a, 0x5c, 0x21, 0x79, 0x57, 0x81, 0x60, 0xd1, 0x5f, 0x3e, 0xad, 0xab, 0x46, - 0x44, 0xac, 0xcd, 0xab, 0xc6, 0xf9, 0x23, 0x43, 0xbd, 0x58, 0x56, 0xcd, 0xd2, 0x20, 0xba, 0xd2, - 0x8c, 0xef, 0xdd, 0x2f, 0xa7, 0x26, 0xfa, 0x65, 0x0d, 0x2e, 0xda, 0x19, 0x47, 0x47, 0xf0, 0xd5, - 0x8d, 0x53, 0x38, 0x95, 0xfc, 0x5d, 0x3a, 0xab, 0x06, 0x67, 0x0e, 0x05, 0xfd, 0x6a, 0x6e, 0xcc, - 0x0f, 0xfe, 0x6c, 0xbc, 0x3e, 0xe0, 0x20, 0x4f, 0x2a, 0xfc, 0xc7, 0xa7, 0x35, 0x40, 0x66, 0x8a, - 0x2d, 0x16, 0x96, 0x3e, 0x2f, 0x9c, 0xb8, 0x84, 0xc2, 0x0d, 0x0b, 0xd2, 0xe5, 0x38, 0x63, 0x10, - 0xec, 0x3b, 0x07, 0x19, 0xc7, 0x57, 0x04, 0xf3, 0x1d, 0xf4, 0x3b, 0x67, 0x51, 0x06, 0xfe, 0x9d, - 0xb3, 0x6a, 0x70, 0xe6, 0x50, 0xf4, 0x4f, 0x8d, 0x71, 0x4d, 0x1a, 0x7b, 0xf9, 0xdd, 0x84, 0xd1, - 0x4d, 0xa6, 0x79, 0x15, 0xe7, 0xb6, 0xb0, 0x9a, 0x97, 0xeb, 0x6f, 0xb9, 0x20, 0xc7, 0xff, 0xc7, - 0x02, 0x32, 0x7a, 0x05, 0x86, 0x4c, 0xc7, 0x17, 0x07, 0xee, 0x03, 0x03, 0x28, 0x2c, 0x23, 0x77, - 0xab, 0xda, 0x6a, 0x03, 0x53, 0xa0, 0xc8, 0x81, 0xb2, 0x23, 0x94, 0x4f, 0x42, 0x40, 0x2e, 0x9c, - 0xb0, 0x35, 0x54, 0x62, 0x85, 0xaa, 0x33, 0x59, 0x82, 0x43, 0x1c, 0x14, 0x5f, 0xe2, 0xb5, 0xa5, - 0x30, 0xbe, 0x50, 0xfd, 0xda, 0x4f, 0xc3, 0xbd, 0xa6, 0x2a, 0x53, 0x47, 0x8e, 0xae, 0x4c, 0x9d, - 0xca, 0x7d, 0x7c, 0x22, 0x30, 0x1a, 0x18, 0x96, 0x13, 0x70, 0x65, 0x5a, 0x41, 0x43, 0x09, 0x3a, - 0xfe, 0x75, 0x0a, 0x25, 0xd2, 0x5a, 0xb1, 0x9f, 0x3e, 0x16, 0xc0, 0xe9, 0xc6, 0xda, 0x65, 0x69, - 0xd3, 0xc5, 0xc1, 0x2c, 0xbc, 0xb1, 0x78, 0xf2, 0x75, 0xbe, 0xb1, 0xf8, 0xff, 0x58, 0x40, 0x46, - 0xaf, 0x41, 0xd9, 0x97, 0xa6, 0x2d, 0xe5, 0x41, 0xb3, 0xf5, 0x0a, 0xbb, 0x16, 0xe1, 0x53, 0x25, - 0x0c, 0x5a, 0x42, 0xf8, 0x68, 0x13, 0xc6, 0x2c, 0xee, 0x05, 0x24, 0x42, 0x20, 0x7d, 0x60, 0x80, - 0x64, 0x75, 0x5c, 0xb0, 0x16, 0x3f, 0xb0, 0x04, 0xac, 0x7f, 0x09, 0xf8, 0x5b, 0x88, 0xb0, 0x1e, - 0xdc, 0x82, 0xb2, 0x04, 0x37, 0x88, 0x6f, 0x9f, 0x4c, 0x0f, 0xca, 0xa7, 0x16, 0x26, 0x0b, 0x0d, - 0x61, 0xa3, 0x6a, 0x96, 0x8f, 0x66, 0x94, 0x34, 0xe1, 0x68, 0xfe, 0x99, 0xaf, 0xb3, 0x7c, 0x7e, - 0x32, 0x9e, 0xc1, 0x50, 0xf1, 0xad, 0x15, 0xc6, 0x3a, 0x88, 0xe5, 0xf1, 0x93, 0xe1, 0x10, 0x14, - 0x24, 0x39, 0xd6, 0x95, 0xc3, 0x85, 0xac, 0x2b, 0x9f, 0x83, 0x73, 0xc2, 0x9a, 0xa5, 0xce, 0x52, - 0xe7, 0x07, 0x3d, 0xe1, 0x7e, 0xc2, 0xec, 0x9c, 0xaa, 0xf1, 0x2a, 0x9c, 0x6c, 0x8b, 0x7e, 0x5f, - 0x83, 0x72, 0x53, 0xb0, 0x1c, 0xe2, 0x5c, 0x2d, 0x0f, 0xf6, 0x60, 0x36, 0x2f, 0x39, 0x18, 0xce, - 0x4c, 0xbf, 0x28, 0x69, 0x84, 0x2c, 0x3e, 0x21, 0xa5, 0x41, 0x38, 0x6a, 0xf4, 0x47, 0x54, 0x5e, - 0xb0, 0x59, 0xca, 0x52, 0xe6, 0x8d, 0xce, 0xfd, 0x62, 0xee, 0x0d, 0x38, 0x8b, 0x85, 0x08, 0x22, - 0x9f, 0xc8, 0x87, 0x43, 0xa9, 0x20, 0xaa, 0x39, 0xa1, 0xb9, 0xa8, 0xc3, 0x47, 0xff, 0x44, 0x83, - 0xc7, 0xb8, 0x33, 0x52, 0x95, 0x72, 0x11, 0x2c, 0xf3, 0x3b, 0x89, 0x52, 0xcd, 0x47, 0xb6, 0xa0, - 0xe5, 0x63, 0xdb, 0x82, 0x3e, 0x7e, 0xb0, 0x5f, 0x79, 0xac, 0x7a, 0x04, 0xd8, 0xf8, 0x48, 0x23, - 0x40, 0x6f, 0xc0, 0x94, 0xad, 0xc6, 0xb5, 0x11, 0x04, 0xa6, 0xd0, 0x73, 0x4c, 0x2c, 0x40, 0x0e, - 0xd7, 0xbf, 0xc7, 0x8a, 0x70, 0x1c, 0xd5, 0xdc, 0x0e, 0x4c, 0xc5, 0x36, 0xda, 0xa9, 0x2a, 0x49, - 0x1c, 0x98, 0x49, 0xee, 0x87, 0x53, 0xb5, 0x8b, 0xba, 0x0b, 0xe3, 0xe1, 0x45, 0x85, 0x1e, 0x51, - 0x10, 0x45, 0x8c, 0xc4, 0x5d, 0xd2, 0xe3, 0x58, 0x2b, 0x31, 0x01, 0x8f, 0x2b, 0xe2, 0x5f, 0xa4, - 0x05, 0x02, 0xa0, 0xfe, 0x65, 0xf1, 0xca, 0xb2, 0x4e, 0xda, 0x1d, 0xdb, 0x08, 0xc8, 0xdb, 0xff, - 0x8d, 0x5f, 0xff, 0x6f, 0x1a, 0xbf, 0x6f, 0xf8, 0xb5, 0x8a, 0x0c, 0x98, 0x68, 0xf3, 0xe0, 0xcd, - 0x2c, 0x00, 0x83, 0x56, 0x3c, 0xf4, 0xc3, 0x4a, 0x04, 0x06, 0xab, 0x30, 0xd1, 0x7d, 0x18, 0x97, - 0xac, 0x8d, 0xd4, 0x48, 0xdc, 0x1a, 0x8c, 0x31, 0x08, 0xb9, 0xa8, 0xf0, 0xf9, 0x58, 0x96, 0xf8, - 0x38, 0xc2, 0xa5, 0x1b, 0x80, 0xd2, 0x7d, 0xa8, 0x14, 0x2c, 0xdd, 0x1d, 0xb4, 0x78, 0x44, 0xc4, - 0x94, 0xcb, 0xc3, 0xa1, 0x49, 0xca, 0xf5, 0xcf, 0x97, 0x20, 0x33, 0x61, 0x1e, 0xd2, 0x61, 0x94, - 0x7b, 0x20, 0xca, 0xfc, 0xe7, 0x94, 0x95, 0xe1, 0xee, 0x89, 0x58, 0xd4, 0xa0, 0x7b, 0x5c, 0x13, - 0xe2, 0x98, 0x2c, 0x12, 0x61, 0x44, 0x25, 0x54, 0x5f, 0xd7, 0xa5, 0xac, 0x06, 0x38, 0xbb, 0x1f, - 0xda, 0x05, 0xd4, 0x36, 0xf6, 0x92, 0xd0, 0x06, 0x48, 0x4d, 0xb5, 0x92, 0x82, 0x86, 0x33, 0x30, - 0xd0, 0x8b, 0xd4, 0x68, 0x36, 0x49, 0x27, 0x20, 0x26, 0x9f, 0xa2, 0x7c, 0xe4, 0x65, 0x17, 0xe9, - 0x42, 0xbc, 0x0a, 0x27, 0xdb, 0xea, 0xdf, 0x18, 0x86, 0x2b, 0xf1, 0x45, 0xa4, 0x27, 0x54, 0x3a, - 0x09, 0x3e, 0x2f, 0x7d, 0x20, 0xf8, 0x42, 0x3e, 0x91, 0xf4, 0x81, 0x98, 0xad, 0x7a, 0x84, 0x5d, - 0xc9, 0x86, 0xed, 0xcb, 0x4e, 0x31, 0x7f, 0x88, 0x6f, 0x83, 0xc7, 0x5f, 0x8e, 0x67, 0xe3, 0xd0, - 0xa9, 0x7a, 0x36, 0xbe, 0xa5, 0xc1, 0x5c, 0xbc, 0xf8, 0x96, 0xe5, 0x58, 0xfe, 0xb6, 0x88, 0xa7, - 0x77, 0x7c, 0x17, 0x0c, 0x96, 0xbe, 0x62, 0x39, 0x17, 0x22, 0xee, 0x83, 0x0d, 0x7d, 0x42, 0x83, - 0xab, 0x89, 0x75, 0x89, 0x45, 0xf7, 0x3b, 0xbe, 0x37, 0x06, 0xf3, 0xd1, 0x5e, 0xce, 0x07, 0x89, - 0xfb, 0xe1, 0xd3, 0xff, 0x65, 0x09, 0x46, 0x98, 0x8d, 0xc2, 0xdb, 0xc3, 0x28, 0x9d, 0x0d, 0x35, - 0xd7, 0x4e, 0xab, 0x95, 0xb0, 0xd3, 0x7a, 0xbe, 0x38, 0x8a, 0xfe, 0x86, 0x5a, 0x1f, 0x86, 0xcb, - 0xac, 0xd9, 0x82, 0xc9, 0xd4, 0x32, 0x3e, 0x31, 0x17, 0x4c, 0x93, 0x45, 0x88, 0x38, 0x5c, 0x17, - 0xfd, 0x08, 0x0c, 0x75, 0x3d, 0x3b, 0x19, 0x33, 0x65, 0x03, 0x2f, 0x63, 0x5a, 0xae, 0xbf, 0xa5, - 0xc1, 0x0c, 0x83, 0xad, 0x1c, 0x5f, 0xb4, 0x0b, 0x65, 0x4f, 0x1c, 0x61, 0xf1, 0x6d, 0x96, 0x0b, - 0x4f, 0x2d, 0x83, 0x2c, 0x88, 0x94, 0x9e, 0xe2, 0x17, 0x0e, 0x71, 0xe9, 0x5f, 0x1b, 0x85, 0xd9, - 0xbc, 0x4e, 0xe8, 0x93, 0x1a, 0x5c, 0x6e, 0x46, 0xdc, 0xdc, 0x42, 0x37, 0xd8, 0x76, 0x3d, 0x2b, - 0xb0, 0x84, 0xf1, 0x4e, 0x41, 0x31, 0xb7, 0xba, 0x10, 0x8e, 0x8a, 0x45, 0xa3, 0xab, 0x66, 0x62, - 0xc0, 0x39, 0x98, 0xd1, 0x9b, 0x00, 0x3b, 0x51, 0xf8, 0xdb, 0x52, 0xf1, 0x44, 0x1b, 0x6c, 0xda, - 0x4a, 0x88, 0x5c, 0x39, 0x28, 0xa6, 0xd9, 0x54, 0xca, 0x15, 0x74, 0x14, 0xb9, 0xef, 0x6f, 0xdf, - 0x25, 0xbd, 0x8e, 0x61, 0x49, 0x1b, 0x85, 0xe2, 0xc8, 0x1b, 0x8d, 0x3b, 0x02, 0x54, 0x1c, 0xb9, - 0x52, 0xae, 0xa0, 0x43, 0x1f, 0xd1, 0x60, 0xca, 0x55, 0xdd, 0xc9, 0x07, 0xb1, 0x80, 0xcd, 0xf4, - 0x4b, 0xe7, 0x2c, 0x74, 0xbc, 0x2a, 0x8e, 0x92, 0xee, 0x89, 0xf3, 0x7e, 0xf2, 0xca, 0x12, 0x44, - 0x6d, 0x65, 0xf0, 0x7c, 0xbc, 0xca, 0xfd, 0xc7, 0xc5, 0xf1, 0x74, 0x75, 0x1a, 0x3d, 0x1b, 0x14, - 0x09, 0x9a, 0xe6, 0x92, 0xd3, 0xf4, 0x7a, 0xcc, 0x33, 0x94, 0x0e, 0x6a, 0xb4, 0xf8, 0xa0, 0x96, - 0xd6, 0xab, 0xb5, 0x18, 0xb0, 0xf8, 0xa0, 0xd2, 0xd5, 0x69, 0xf4, 0xfa, 0x4f, 0x96, 0xe0, 0xa1, - 0x9c, 0x3d, 0xf6, 0xd7, 0xc6, 0xff, 0xff, 0x8b, 0x1a, 0x8c, 0xb3, 0x35, 0x78, 0x9b, 0x38, 0x11, - 0xb1, 0xb1, 0xe6, 0x58, 0x32, 0xfe, 0x81, 0x06, 0xe7, 0x53, 0x71, 0x50, 0x8f, 0xe4, 0x82, 0x72, - 0x66, 0x46, 0x76, 0xef, 0x8a, 0x62, 0x9e, 0x0f, 0x45, 0x0e, 0xcd, 0xc9, 0x78, 0xe7, 0xfa, 0x4b, - 0x30, 0x15, 0x33, 0x64, 0x0c, 0x63, 0x35, 0x69, 0x99, 0xb1, 0x9a, 0xd4, 0x50, 0x4c, 0xa5, 0x7e, - 0xa1, 0x98, 0xa2, 0x2d, 0x9f, 0xa6, 0x6c, 0x7f, 0x6d, 0xb6, 0xfc, 0xd7, 0xcf, 0x89, 0x2d, 0xcf, - 0x5e, 0x1c, 0x5e, 0x85, 0x51, 0x16, 0xf8, 0x49, 0xde, 0x98, 0x37, 0x0b, 0x07, 0x94, 0xf2, 0xb9, - 0x24, 0xc5, 0xff, 0xc7, 0x02, 0x2a, 0xaa, 0xc1, 0x4c, 0xd3, 0x76, 0xbb, 0xa6, 0x48, 0x51, 0xba, - 0x1a, 0x09, 0x6d, 0x61, 0x5c, 0xd0, 0x6a, 0xa2, 0x1e, 0xa7, 0x7a, 0x20, 0xcc, 0xdf, 0x2c, 0xf8, - 0x7d, 0x56, 0x28, 0x2e, 0x68, 0x6d, 0xb5, 0xc1, 0xb3, 0x5f, 0x84, 0x6f, 0x15, 0xaf, 0x03, 0x10, - 0xb9, 0x79, 0xa5, 0xef, 0xe7, 0x73, 0xc5, 0x22, 0x9e, 0x86, 0x47, 0x40, 0x32, 0x9f, 0x61, 0x91, - 0x8f, 0x15, 0x24, 0xc8, 0x83, 0x89, 0x6d, 0x6b, 0x93, 0x78, 0x0e, 0xe7, 0xa3, 0x46, 0x8a, 0xb3, - 0x88, 0x77, 0x22, 0x30, 0x5c, 0xc6, 0x57, 0x0a, 0xb0, 0x8a, 0x04, 0x79, 0x9c, 0x1d, 0xe1, 0xea, - 0xe1, 0x41, 0x92, 0xf5, 0x47, 0x7a, 0xe7, 0x68, 0x9e, 0x51, 0x19, 0x56, 0xb0, 0x20, 0x07, 0xc0, - 0x09, 0x23, 0xbe, 0x0d, 0xf2, 0xe2, 0x10, 0xc5, 0x8d, 0xe3, 0x8c, 0x47, 0xf4, 0x1b, 0x2b, 0x18, - 0xe8, 0xba, 0xb6, 0xa3, 0x10, 0x82, 0x42, 0x87, 0xf8, 0xfc, 0x80, 0x61, 0x1c, 0x85, 0xee, 0x24, - 0x2a, 0xc0, 0x2a, 0x12, 0x3a, 0xc7, 0x76, 0x18, 0xf8, 0x4f, 0xe8, 0x08, 0x0b, 0xcd, 0x31, 0x0a, - 0x1f, 0x28, 0x52, 0xa8, 0x85, 0xbf, 0xb1, 0x82, 0x01, 0xbd, 0xa6, 0x3c, 0x75, 0x41, 0x71, 0x0d, - 0xd4, 0x91, 0x9e, 0xb9, 0xde, 0x17, 0x29, 0x62, 0x26, 0xd8, 0x59, 0xbd, 0xaa, 0x28, 0x61, 0x58, - 0x40, 0x44, 0x4a, 0x3f, 0x52, 0x4a, 0x99, 0xc8, 0x84, 0x7a, 0xb2, 0xaf, 0x09, 0x75, 0x95, 0x72, - 0x68, 0x8a, 0x4b, 0x0f, 0x23, 0x0a, 0x53, 0xd1, 0x0b, 0x47, 0x23, 0x59, 0x89, 0xd3, 0xed, 0x39, - 0xd1, 0x27, 0x26, 0xeb, 0x3b, 0xad, 0x12, 0x7d, 0x5e, 0x86, 0xc3, 0x5a, 0xb4, 0x0b, 0x93, 0xbe, - 0x62, 0x8f, 0x2d, 0xf2, 0x5e, 0x0e, 0xf0, 0x36, 0x25, 0x6c, 0xb1, 0x59, 0x28, 0x2c, 0xb5, 0x04, - 0xc7, 0xf0, 0xa0, 0x37, 0x55, 0xe3, 0xc6, 0x99, 0xe2, 0xce, 0xb7, 0xd9, 0x81, 0x1e, 0x23, 0x0d, - 0x5b, 0x68, 0x57, 0xa7, 0xda, 0x1c, 0x76, 0xe3, 0x66, 0x7c, 0xe7, 0x4f, 0x24, 0xd8, 0xc0, 0xa1, - 0x66, 0x7e, 0xf4, 0xd3, 0x92, 0xbd, 0x8e, 0xeb, 0x77, 0x3d, 0xc2, 0x02, 0xd8, 0xb2, 0xcf, 0x83, - 0xa2, 0x4f, 0xbb, 0x94, 0xac, 0xc4, 0xe9, 0xf6, 0xe8, 0x63, 0x1a, 0xcc, 0xf0, 0xb4, 0xa1, 0xf4, - 0xea, 0x72, 0x1d, 0xe2, 0x04, 0x3e, 0xcb, 0x8b, 0x59, 0xd0, 0x3f, 0xb6, 0x91, 0x80, 0xc5, 0x73, - 0x2d, 0x25, 0x4b, 0x71, 0x0a, 0x27, 0xdd, 0x39, 0x6a, 0xb8, 0x02, 0x96, 0x5e, 0xb3, 0xe0, 0xce, - 0x51, 0x43, 0x21, 0xf0, 0x9d, 0xa3, 0x96, 0xe0, 0x18, 0x1e, 0xf4, 0x0c, 0x4c, 0xf9, 0x32, 0x07, - 0x0e, 0x5b, 0xc1, 0x4b, 0x51, 0x3c, 0xb1, 0x86, 0x5a, 0x81, 0xe3, 0xed, 0xf4, 0x7f, 0xa7, 0x01, - 0x84, 0xda, 0x83, 0xb3, 0xd0, 0x89, 0x9b, 0x31, 0x85, 0xca, 0xe2, 0x40, 0xda, 0x0e, 0x92, 0xab, - 0x19, 0xff, 0xaa, 0x06, 0xd3, 0x51, 0xb3, 0x33, 0x60, 0xd5, 0x9b, 0x71, 0x56, 0xfd, 0x83, 0x83, - 0xcd, 0x2b, 0x87, 0x5f, 0xff, 0xbf, 0x25, 0x75, 0x56, 0x8c, 0x1b, 0xdb, 0x8d, 0xbd, 0x31, 0x53, - 0xd4, 0x77, 0x06, 0x79, 0x63, 0x56, 0x5d, 0xa8, 0xa3, 0xf9, 0x66, 0xbc, 0x39, 0xff, 0x9d, 0x18, - 0x2f, 0x34, 0x40, 0xa0, 0x80, 0x90, 0xf1, 0x91, 0xa8, 0xf9, 0x02, 0x1c, 0xc6, 0x18, 0xbd, 0xae, - 0x92, 0x4a, 0xfe, 0x5a, 0xfd, 0xa1, 0x62, 0xde, 0xe9, 0xca, 0x84, 0xfb, 0x12, 0x48, 0xfd, 0x8b, - 0x53, 0x30, 0xa1, 0x28, 0xda, 0x12, 0x2f, 0xe6, 0xda, 0x59, 0xbc, 0x98, 0x07, 0x30, 0xd1, 0x0c, - 0x03, 0xc2, 0xcb, 0x65, 0x1f, 0x10, 0x67, 0x48, 0xa2, 0xa3, 0x50, 0xf3, 0x3e, 0x56, 0xd1, 0x50, - 0x46, 0x22, 0xdc, 0x63, 0x43, 0x27, 0x60, 0xc7, 0xd0, 0x6f, 0x5f, 0xbd, 0x17, 0x40, 0xf2, 0xa2, - 0xc4, 0x14, 0x11, 0x3d, 0x43, 0x23, 0xf4, 0xba, 0x7f, 0x27, 0xac, 0xc3, 0x4a, 0xbb, 0xf4, 0x0b, - 0xec, 0xc8, 0x99, 0xbd, 0xc0, 0xd2, 0x6d, 0x60, 0xcb, 0xac, 0x41, 0x03, 0xd9, 0xe4, 0x84, 0xb9, - 0x87, 0xa2, 0x6d, 0x10, 0x16, 0xf9, 0x58, 0x41, 0x92, 0x63, 0x38, 0x31, 0x56, 0xc8, 0x70, 0xa2, - 0x0b, 0x17, 0x3c, 0x12, 0x78, 0xbd, 0x6a, 0xaf, 0xc9, 0x92, 0x69, 0x79, 0x01, 0x93, 0x28, 0xcb, - 0xc5, 0x22, 0x4c, 0xe1, 0x34, 0x28, 0x9c, 0x05, 0x3f, 0xc6, 0x8c, 0x8d, 0xf7, 0x65, 0xc6, 0xde, - 0x07, 0x13, 0x01, 0x69, 0x6e, 0x3b, 0x56, 0xd3, 0xb0, 0xeb, 0x35, 0x11, 0xee, 0x32, 0xe2, 0x2b, - 0xa2, 0x2a, 0xac, 0xb6, 0x43, 0x8b, 0x30, 0xd4, 0xb5, 0x4c, 0xc1, 0x8d, 0x7e, 0x4f, 0xa8, 0xb2, - 0xae, 0xd7, 0x1e, 0xec, 0x57, 0xde, 0x19, 0x59, 0x22, 0x84, 0xb3, 0xba, 0xd1, 0xd9, 0x69, 0xdd, - 0x08, 0x7a, 0x1d, 0xe2, 0xcf, 0x6f, 0xd4, 0x6b, 0x98, 0x76, 0xce, 0x32, 0x2a, 0x99, 0x3c, 0x86, - 0x51, 0xc9, 0xa7, 0x35, 0xb8, 0x60, 0x24, 0xb5, 0xed, 0xc4, 0x9f, 0x9d, 0x2a, 0x4e, 0x2d, 0xb3, - 0x35, 0xf8, 0x8b, 0x57, 0xc5, 0xfc, 0x2e, 0x2c, 0xa4, 0xd1, 0xe1, 0xac, 0x31, 0x20, 0x0f, 0x50, - 0xdb, 0x6a, 0x85, 0x09, 0x7c, 0xc4, 0x57, 0x9f, 0x2e, 0xa6, 0x47, 0x58, 0x49, 0x41, 0xc2, 0x19, - 0xd0, 0xd1, 0x7d, 0x98, 0x68, 0x46, 0x3a, 0x79, 0xc1, 0x55, 0xd7, 0x4e, 0xe2, 0x51, 0x80, 0x4b, - 0x5e, 0xaa, 0xc2, 0x5f, 0xc5, 0x14, 0xbe, 0xa6, 0x29, 0x22, 0xaf, 0x78, 0x51, 0x62, 0xb3, 0x9e, - 0x29, 0xfe, 0x9a, 0x96, 0x0d, 0x11, 0xf7, 0xc1, 0xc6, 0xe2, 0x3a, 0xd9, 0xf1, 0x3c, 0x5b, 0x2c, - 0xc5, 0x7c, 0x41, 0x5f, 0xf0, 0x44, 0xca, 0x2e, 0xbe, 0x35, 0x13, 0x85, 0x38, 0x89, 0x50, 0xff, - 0x8a, 0x26, 0x14, 0x66, 0x67, 0x68, 0x0d, 0x71, 0xda, 0x4f, 0x69, 0xfa, 0x9f, 0x6b, 0x90, 0xe2, - 0xd1, 0xd1, 0x26, 0x8c, 0x51, 0x10, 0xb5, 0xd5, 0x86, 0x98, 0xd6, 0x07, 0x8a, 0x5d, 0x97, 0x0c, - 0x04, 0xd7, 0x3e, 0x8a, 0x1f, 0x58, 0x02, 0xa6, 0x5c, 0xbf, 0xa3, 0x44, 0xdc, 0x16, 0x33, 0x2c, - 0xc4, 0x8f, 0xa8, 0x91, 0xbb, 0x39, 0xd7, 0xaf, 0x96, 0xe0, 0x18, 0x1e, 0x7d, 0x19, 0x20, 0x92, - 0xab, 0x06, 0x36, 0x90, 0xf9, 0xd6, 0x08, 0x5c, 0x1a, 0xd4, 0xd9, 0x80, 0xa5, 0x77, 0x22, 0xbb, - 0x56, 0x33, 0x58, 0xd8, 0x0a, 0x88, 0x77, 0xef, 0xde, 0xca, 0xfa, 0xb6, 0x47, 0xfc, 0x6d, 0xd7, - 0x36, 0x0b, 0xe6, 0x97, 0x62, 0x0f, 0x6a, 0x4b, 0x99, 0x10, 0x71, 0x0e, 0x26, 0x26, 0x53, 0x8a, - 0x74, 0xd3, 0x98, 0x32, 0x93, 0x5d, 0xcf, 0x0f, 0x44, 0x54, 0x1b, 0x2e, 0x53, 0x26, 0x2b, 0x71, - 0xba, 0x7d, 0x12, 0xc8, 0xb2, 0xd5, 0xb6, 0x78, 0x06, 0x1f, 0x2d, 0x0d, 0x84, 0x55, 0xe2, 0x74, - 0x7b, 0x15, 0x08, 0xff, 0x52, 0xf4, 0xb4, 0x8f, 0xa4, 0x81, 0x84, 0x95, 0x38, 0xdd, 0x1e, 0x99, - 0xf0, 0xb0, 0x47, 0x9a, 0x6e, 0xbb, 0x4d, 0x1c, 0x93, 0x67, 0x4e, 0x34, 0xbc, 0x96, 0xe5, 0xdc, - 0xf2, 0x0c, 0xd6, 0x90, 0xa9, 0xe8, 0x34, 0x96, 0x87, 0xe2, 0x61, 0xdc, 0xa7, 0x1d, 0xee, 0x0b, - 0x05, 0xb5, 0xe1, 0x5c, 0x97, 0xe5, 0xfc, 0xf0, 0xea, 0x4e, 0x40, 0xbc, 0x5d, 0xc3, 0x16, 0x7a, - 0xb8, 0x42, 0x29, 0xa3, 0x37, 0xe2, 0xa0, 0x70, 0x12, 0x36, 0xea, 0x51, 0xbe, 0x43, 0x0c, 0x47, - 0x41, 0x59, 0x2e, 0x9e, 0x00, 0x0d, 0xa7, 0xc1, 0xe1, 0x2c, 0x1c, 0xfa, 0xa7, 0x35, 0x10, 0x96, - 0xc8, 0xe8, 0xe1, 0xd8, 0x5b, 0x47, 0x39, 0xf1, 0xce, 0x21, 0x33, 0x4f, 0x94, 0x32, 0x33, 0x4f, - 0xbc, 0x5b, 0x09, 0x97, 0x34, 0x1e, 0xd1, 0x3e, 0x0e, 0x59, 0xc9, 0x9a, 0xf3, 0x24, 0x8c, 0x13, - 0xfe, 0x8c, 0x16, 0x72, 0xb4, 0xcc, 0xba, 0x7b, 0x49, 0x16, 0xe2, 0xa8, 0x5e, 0xff, 0x63, 0x0d, - 0x04, 0x04, 0x96, 0xe3, 0xe9, 0x48, 0xb9, 0x7e, 0x0e, 0x35, 0x6d, 0x52, 0x72, 0x14, 0x0d, 0xe5, - 0xe6, 0x28, 0x3a, 0xa5, 0xd4, 0x3d, 0xbf, 0xad, 0xc1, 0xb9, 0x78, 0xfc, 0x2a, 0x1f, 0xbd, 0x0b, - 0xc6, 0x44, 0x84, 0x4b, 0x11, 0xa2, 0x8e, 0x75, 0x15, 0x21, 0x26, 0xb0, 0xac, 0x8b, 0xab, 0xc3, - 0x06, 0x10, 0x31, 0xb3, 0xc3, 0x68, 0x1d, 0x22, 0xed, 0x7d, 0x74, 0x06, 0x46, 0x79, 0x78, 0x44, - 0x4a, 0xd3, 0x32, 0xdc, 0x36, 0xef, 0x16, 0x8f, 0xc2, 0x58, 0xc4, 0xd7, 0x4e, 0xcd, 0x44, 0x50, - 0xea, 0x9b, 0x89, 0x00, 0xf3, 0x94, 0x68, 0x03, 0x3c, 0x7d, 0x54, 0x71, 0x5d, 0x64, 0x42, 0x97, - 0xe9, 0xd0, 0x82, 0xd8, 0x9b, 0xc0, 0x70, 0x71, 0xce, 0x8d, 0x2f, 0x80, 0xf2, 0x32, 0x30, 0xdd, - 0xf7, 0x55, 0x40, 0xc6, 0x9f, 0x1b, 0x29, 0x6e, 0x6a, 0x28, 0x96, 0xfc, 0x08, 0xf1, 0xe7, 0xc2, - 0x83, 0x34, 0x9a, 0x7b, 0x90, 0xb6, 0x60, 0x4c, 0x1c, 0x05, 0x41, 0x1c, 0x3f, 0x30, 0x40, 0x6e, - 0x31, 0x25, 0x64, 0x32, 0x2f, 0xc0, 0x12, 0x38, 0xbd, 0x71, 0xdb, 0xc6, 0x9e, 0xd5, 0xee, 0xb6, - 0x19, 0x45, 0x1c, 0x51, 0x9b, 0xb2, 0x62, 0x2c, 0xeb, 0x59, 0x53, 0x6e, 0xa1, 0xc9, 0x04, 0x29, - 0xb5, 0x29, 0x2f, 0xc6, 0xb2, 0x1e, 0xbd, 0x02, 0xe5, 0xb6, 0xb1, 0xd7, 0xe8, 0x7a, 0x2d, 0x22, - 0x5e, 0x04, 0xf2, 0x79, 0xbc, 0x6e, 0x60, 0xd9, 0xf3, 0x54, 0xfc, 0x0f, 0xbc, 0xf9, 0xba, 0x13, - 0xdc, 0xf3, 0x1a, 0x81, 0x17, 0x26, 0x18, 0x5a, 0x11, 0x50, 0x70, 0x08, 0x0f, 0xd9, 0x30, 0xdd, - 0x36, 0xf6, 0x36, 0x1c, 0x83, 0x87, 0x16, 0xb4, 0xf9, 0x43, 0x40, 0x11, 0x0c, 0xec, 0x59, 0x78, - 0x25, 0x06, 0x0b, 0x27, 0x60, 0x67, 0xbc, 0x40, 0x4f, 0x9e, 0xd6, 0x0b, 0xf4, 0x42, 0xe8, 0x6f, - 0xc3, 0xe5, 0xb6, 0x2b, 0x99, 0x9e, 0xed, 0x7d, 0x7d, 0x69, 0x5e, 0x0d, 0x7d, 0x69, 0xa6, 0x8b, - 0x3f, 0x99, 0xf6, 0xf1, 0xa3, 0xe9, 0xc2, 0x04, 0xe5, 0xb0, 0x79, 0x29, 0x15, 0xac, 0x0a, 0xab, - 0x20, 0x6b, 0x21, 0x18, 0x25, 0x81, 0x6d, 0x04, 0x1a, 0xab, 0x78, 0xd0, 0x3d, 0x9e, 0x90, 0xde, - 0x26, 0x41, 0xd4, 0x84, 0x09, 0xf4, 0x33, 0xec, 0xfc, 0x84, 0xf9, 0xe3, 0x53, 0x0d, 0x70, 0x76, - 0xbf, 0x28, 0x52, 0xce, 0xf9, 0xec, 0x48, 0x39, 0xe8, 0xe7, 0xb2, 0xf4, 0xfc, 0x88, 0xad, 0xe9, - 0x0f, 0x14, 0xa7, 0x0d, 0x85, 0xb5, 0xfd, 0xff, 0x4a, 0x83, 0xd9, 0x76, 0x4e, 0xa6, 0x57, 0xf1, - 0xfc, 0xb0, 0x3e, 0x00, 0x7d, 0xc8, 0xcd, 0x1e, 0xbb, 0xf8, 0xd8, 0xc1, 0x7e, 0xe5, 0xd0, 0x1c, - 0xb3, 0x38, 0x77, 0x6c, 0xc8, 0x83, 0x31, 0xbf, 0xe7, 0x37, 0x03, 0xdb, 0x9f, 0xbd, 0x58, 0x3c, - 0xa1, 0xa8, 0xa0, 0xac, 0x0d, 0x0e, 0x89, 0x93, 0xd6, 0x28, 0x50, 0x3f, 0x2f, 0xc5, 0x12, 0xd1, - 0xa0, 0x7e, 0xda, 0x03, 0x04, 0x07, 0x9d, 0xbb, 0x09, 0x93, 0xea, 0x20, 0x8f, 0xe5, 0x1e, 0xfe, - 0x2b, 0x1a, 0xcc, 0x24, 0x2f, 0x2d, 0x35, 0xe7, 0xbf, 0x76, 0xba, 0x39, 0xff, 0x15, 0xfb, 0x97, - 0x52, 0x1f, 0xfb, 0x97, 0xe7, 0xe0, 0x72, 0xf6, 0x5e, 0xa6, 0x1c, 0xa4, 0x61, 0xdb, 0xee, 0x7d, - 0x21, 0xb9, 0x45, 0x39, 0xbc, 0x68, 0x21, 0xe6, 0x75, 0xfa, 0x8f, 0x41, 0x32, 0x14, 0x34, 0x7a, - 0x0d, 0xc6, 0x7d, 0x7f, 0x9b, 0x47, 0xf9, 0x14, 0x93, 0x2c, 0x26, 0xb2, 0xcb, 0x50, 0xa1, 0xc2, - 0xa5, 0x51, 0xfe, 0xc4, 0x11, 0xf8, 0xc5, 0x97, 0xbf, 0xf0, 0x8d, 0x6b, 0xef, 0xf8, 0xf2, 0x37, - 0xae, 0xbd, 0xe3, 0x6b, 0xdf, 0xb8, 0xf6, 0x8e, 0x9f, 0x38, 0xb8, 0xa6, 0x7d, 0xe1, 0xe0, 0x9a, - 0xf6, 0xe5, 0x83, 0x6b, 0xda, 0xd7, 0x0e, 0xae, 0x69, 0xff, 0xf9, 0xe0, 0x9a, 0xf6, 0xf3, 0xff, - 0xe5, 0xda, 0x3b, 0x5e, 0x79, 0x3a, 0xc2, 0x7e, 0x43, 0x22, 0x8d, 0xfe, 0xe9, 0xec, 0xb4, 0x6e, - 0x50, 0xec, 0xd2, 0xb5, 0x88, 0x61, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x81, 0x58, 0xdc, - 0xab, 0x3f, 0xeb, 0x00, 0x00, + // 12050 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x6c, 0x24, 0xc9, + 0x79, 0x18, 0xae, 0x1e, 0xbe, 0x86, 0x1f, 0x1f, 0xcb, 0xad, 0x7d, 0x1c, 0x97, 0x7b, 0xb7, 0xb3, + 0xea, 0x3b, 0xe9, 0x77, 0xe7, 0x93, 0xb9, 0xbe, 0xb3, 0xe4, 0xd3, 0xad, 0x7c, 0x77, 0x22, 0x67, + 0xb8, 0xbb, 0xe3, 0x25, 0xb9, 0xbc, 0x1a, 0xf2, 0xee, 0x74, 0xf6, 0xef, 0xec, 0xe6, 0x74, 0x71, + 0xd8, 0xc7, 0x9e, 0xee, 0xb9, 0xee, 0x1e, 0x2e, 0xe7, 0xce, 0x8e, 0x2d, 0xd9, 0x72, 0xac, 0xb3, + 0x15, 0x18, 0x06, 0x1c, 0x45, 0x92, 0x13, 0xcb, 0x30, 0x9c, 0x97, 0x03, 0xc7, 0x70, 0xe0, 0x00, + 0xb6, 0x11, 0xc0, 0x10, 0x90, 0x58, 0x32, 0x2c, 0x43, 0x90, 0x12, 0x44, 0x42, 0x62, 0x3a, 0x62, + 0x14, 0x39, 0x40, 0x02, 0x23, 0x80, 0x11, 0x04, 0xd9, 0x18, 0x4e, 0x50, 0xaf, 0xee, 0xea, 0xd7, + 0x90, 0xec, 0x21, 0x29, 0x1d, 0xec, 0xbf, 0xc8, 0xa9, 0xc7, 0xf7, 0x55, 0x55, 0x57, 0x7d, 0xf5, + 0x7d, 0x5f, 0x7d, 0x0f, 0x58, 0x6c, 0x59, 0xc1, 0x76, 0x77, 0x73, 0xbe, 0xe9, 0xb6, 0x6f, 0xb4, + 0x0c, 0xcf, 0x24, 0x0e, 0xf1, 0xa2, 0x7f, 0x3a, 0x3b, 0xad, 0x1b, 0x46, 0xc7, 0xf2, 0x6f, 0x34, + 0x5d, 0x8f, 0xdc, 0xd8, 0x7d, 0x6a, 0x93, 0x04, 0xc6, 0x53, 0x37, 0x5a, 0xb4, 0xce, 0x08, 0x88, + 0x39, 0xdf, 0xf1, 0xdc, 0xc0, 0x45, 0x4f, 0x47, 0x30, 0xe6, 0x65, 0xd7, 0xe8, 0x9f, 0xce, 0x4e, + 0x6b, 0x9e, 0xc2, 0x98, 0xa7, 0x30, 0xe6, 0x05, 0x8c, 0xb9, 0xef, 0x56, 0xf1, 0xba, 0x2d, 0xf7, + 0x06, 0x03, 0xb5, 0xd9, 0xdd, 0x62, 0xbf, 0xd8, 0x0f, 0xf6, 0x1f, 0x47, 0x31, 0xf7, 0xc4, 0xce, + 0x07, 0xfd, 0x79, 0xcb, 0xa5, 0x83, 0xb9, 0x61, 0x74, 0x03, 0xd7, 0x6f, 0x1a, 0xb6, 0xe5, 0xb4, + 0x6e, 0xec, 0xa6, 0x46, 0x33, 0xa7, 0x2b, 0x4d, 0xc5, 0xb0, 0xfb, 0xb6, 0xf1, 0x36, 0x8d, 0x66, + 0x56, 0x9b, 0xf7, 0x47, 0x6d, 0xda, 0x46, 0x73, 0xdb, 0x72, 0x88, 0xd7, 0x93, 0x0b, 0x72, 0xc3, + 0x23, 0xbe, 0xdb, 0xf5, 0x9a, 0xe4, 0x58, 0xbd, 0xfc, 0x1b, 0x6d, 0x12, 0x18, 0x59, 0xb8, 0x6e, + 0xe4, 0xf5, 0xf2, 0xba, 0x4e, 0x60, 0xb5, 0xd3, 0x68, 0xbe, 0xef, 0xb0, 0x0e, 0x7e, 0x73, 0x9b, + 0xb4, 0x8d, 0x54, 0xbf, 0xef, 0xcd, 0xeb, 0xd7, 0x0d, 0x2c, 0xfb, 0x86, 0xe5, 0x04, 0x7e, 0xe0, + 0x25, 0x3b, 0xe9, 0x6f, 0x6b, 0x30, 0xb3, 0xb0, 0x56, 0x6f, 0x10, 0x6f, 0x97, 0x78, 0xcb, 0x6e, + 0xab, 0x65, 0x39, 0x2d, 0xf4, 0x24, 0x8c, 0xef, 0x12, 0x6f, 0xd3, 0xf5, 0xad, 0xa0, 0x37, 0xab, + 0x5d, 0xd7, 0x1e, 0x1f, 0x59, 0x9c, 0x3a, 0xd8, 0xaf, 0x8c, 0xbf, 0x24, 0x0b, 0x71, 0x54, 0x8f, + 0xea, 0x70, 0x61, 0x3b, 0x08, 0x3a, 0x0b, 0xcd, 0x26, 0xf1, 0xfd, 0xb0, 0xc5, 0x6c, 0x89, 0x75, + 0x7b, 0xe8, 0x60, 0xbf, 0x72, 0xe1, 0xce, 0xfa, 0xfa, 0x5a, 0xa2, 0x1a, 0x67, 0xf5, 0xd1, 0x7f, + 0x4b, 0x83, 0xf3, 0xe1, 0x60, 0x30, 0x79, 0xa3, 0x4b, 0xfc, 0xc0, 0x47, 0x18, 0x2e, 0xb7, 0x8d, + 0xbd, 0x55, 0xd7, 0x59, 0xe9, 0x06, 0x46, 0x60, 0x39, 0xad, 0xba, 0xb3, 0x65, 0x5b, 0xad, 0xed, + 0x40, 0x0c, 0x6d, 0xee, 0x60, 0xbf, 0x72, 0x79, 0x25, 0xb3, 0x05, 0xce, 0xe9, 0x49, 0x07, 0xdd, + 0x36, 0xf6, 0x52, 0x00, 0x95, 0x41, 0xaf, 0xa4, 0xab, 0x71, 0x56, 0x1f, 0xfd, 0x69, 0x18, 0x59, + 0x30, 0x4d, 0xd7, 0x41, 0x4f, 0xc0, 0x18, 0x71, 0x8c, 0x4d, 0x9b, 0x98, 0x6c, 0x60, 0xe5, 0xc5, + 0x73, 0x5f, 0xd8, 0xaf, 0xbc, 0xeb, 0x60, 0xbf, 0x32, 0xb6, 0xc4, 0x8b, 0xb1, 0xac, 0xd7, 0x7f, + 0xb1, 0x04, 0xa3, 0xac, 0x93, 0x8f, 0x7e, 0x41, 0x83, 0x0b, 0x3b, 0xdd, 0x4d, 0xe2, 0x39, 0x24, + 0x20, 0x7e, 0xcd, 0xf0, 0xb7, 0x37, 0x5d, 0xc3, 0xe3, 0x20, 0x26, 0x9e, 0xbe, 0x3d, 0x7f, 0xfc, + 0xf3, 0x37, 0x7f, 0x37, 0x0d, 0x8e, 0xcf, 0x29, 0xa3, 0x02, 0x67, 0x21, 0x47, 0xbb, 0x30, 0xe9, + 0xb4, 0x2c, 0x67, 0xaf, 0xee, 0xb4, 0x3c, 0xe2, 0xfb, 0x6c, 0x5d, 0x26, 0x9e, 0xfe, 0x70, 0x91, + 0xc1, 0xac, 0x2a, 0x70, 0x16, 0x67, 0x0e, 0xf6, 0x2b, 0x93, 0x6a, 0x09, 0x8e, 0xe1, 0xd1, 0xff, + 0x4a, 0x83, 0x73, 0x0b, 0x66, 0xdb, 0xf2, 0x7d, 0xcb, 0x75, 0xd6, 0xec, 0x6e, 0xcb, 0x72, 0xd0, + 0x75, 0x18, 0x76, 0x8c, 0x36, 0x61, 0x0b, 0x32, 0xbe, 0x38, 0x29, 0xd6, 0x74, 0x78, 0xd5, 0x68, + 0x13, 0xcc, 0x6a, 0xd0, 0x8b, 0x30, 0xda, 0x74, 0x9d, 0x2d, 0xab, 0x25, 0xc6, 0xf9, 0xdd, 0xf3, + 0xfc, 0x24, 0xcc, 0xab, 0x27, 0x81, 0x0d, 0x4f, 0x9c, 0xa0, 0x79, 0x6c, 0xdc, 0x5f, 0xda, 0x0b, + 0x88, 0x43, 0xd1, 0x2c, 0xc2, 0xc1, 0x7e, 0x65, 0xb4, 0xca, 0x00, 0x60, 0x01, 0x08, 0x3d, 0x0e, + 0x65, 0xd3, 0xf2, 0xf9, 0xc7, 0x1c, 0x62, 0x1f, 0x73, 0xf2, 0x60, 0xbf, 0x52, 0xae, 0x89, 0x32, + 0x1c, 0xd6, 0xa2, 0x65, 0xb8, 0x48, 0x57, 0x90, 0xf7, 0x6b, 0x90, 0xa6, 0x47, 0x02, 0x3a, 0xb4, + 0xd9, 0x61, 0x36, 0xdc, 0xd9, 0x83, 0xfd, 0xca, 0xc5, 0xbb, 0x19, 0xf5, 0x38, 0xb3, 0x97, 0x7e, + 0x0b, 0xca, 0x0b, 0x36, 0xf1, 0xe8, 0x06, 0x43, 0x37, 0x61, 0x9a, 0xb4, 0x0d, 0xcb, 0xc6, 0xa4, + 0x49, 0xac, 0x5d, 0xe2, 0xf9, 0xb3, 0xda, 0xf5, 0xa1, 0xc7, 0xc7, 0x17, 0xd1, 0xc1, 0x7e, 0x65, + 0x7a, 0x29, 0x56, 0x83, 0x13, 0x2d, 0xf5, 0x8f, 0x6a, 0x30, 0xb1, 0xd0, 0x35, 0xad, 0x80, 0xcf, + 0x0b, 0x79, 0x30, 0x61, 0xd0, 0x9f, 0x6b, 0xae, 0x6d, 0x35, 0x7b, 0x62, 0x73, 0xbd, 0x50, 0xe4, + 0x7b, 0x2e, 0x44, 0x60, 0x16, 0xcf, 0x1d, 0xec, 0x57, 0x26, 0x94, 0x02, 0xac, 0x22, 0xd1, 0xb7, + 0x41, 0xad, 0x43, 0x1f, 0x81, 0x49, 0x3e, 0xdd, 0x15, 0xa3, 0x83, 0xc9, 0x96, 0x18, 0xc3, 0xa3, + 0xca, 0xb7, 0x92, 0x88, 0xe6, 0xef, 0x6d, 0xbe, 0x4e, 0x9a, 0x01, 0x26, 0x5b, 0xc4, 0x23, 0x4e, + 0x93, 0xf0, 0x6d, 0x53, 0x55, 0x3a, 0xe3, 0x18, 0x28, 0xfd, 0x4f, 0x29, 0x11, 0xdb, 0x35, 0x2c, + 0xdb, 0xd8, 0xb4, 0x6c, 0x2b, 0xe8, 0xbd, 0xea, 0x3a, 0xe4, 0x08, 0xfb, 0x66, 0x03, 0x1e, 0xea, + 0x3a, 0x06, 0xef, 0x67, 0x93, 0x15, 0xbe, 0x53, 0xd6, 0x7b, 0x1d, 0x42, 0x37, 0x3c, 0x5d, 0xe9, + 0xab, 0x07, 0xfb, 0x95, 0x87, 0x36, 0xb2, 0x9b, 0xe0, 0xbc, 0xbe, 0x94, 0x5e, 0x29, 0x55, 0x2f, + 0xb9, 0x76, 0xb7, 0x2d, 0xa0, 0x0e, 0x31, 0xa8, 0x8c, 0x5e, 0x6d, 0x64, 0xb6, 0xc0, 0x39, 0x3d, + 0xf5, 0x2f, 0x94, 0x60, 0x72, 0xd1, 0x68, 0xee, 0x74, 0x3b, 0x8b, 0xdd, 0xe6, 0x0e, 0x09, 0xd0, + 0x8f, 0x40, 0x99, 0x5e, 0x38, 0xa6, 0x11, 0x18, 0x62, 0x25, 0xbf, 0x27, 0x77, 0xd7, 0xb3, 0x8f, + 0x48, 0x5b, 0x47, 0x6b, 0xbb, 0x42, 0x02, 0x63, 0x11, 0x89, 0x35, 0x81, 0xa8, 0x0c, 0x87, 0x50, + 0xd1, 0x16, 0x0c, 0xfb, 0x1d, 0xd2, 0x14, 0x67, 0xaa, 0x56, 0x64, 0xaf, 0xa8, 0x23, 0x6e, 0x74, + 0x48, 0x33, 0xfa, 0x0a, 0xf4, 0x17, 0x66, 0xf0, 0x91, 0x03, 0xa3, 0x7e, 0x60, 0x04, 0x5d, 0x9f, + 0x1d, 0xb4, 0x89, 0xa7, 0x6f, 0x0d, 0x8c, 0x89, 0x41, 0x5b, 0x9c, 0x16, 0xb8, 0x46, 0xf9, 0x6f, + 0x2c, 0xb0, 0xe8, 0xff, 0x5e, 0x83, 0x19, 0xb5, 0xf9, 0xb2, 0xe5, 0x07, 0xe8, 0x87, 0x52, 0xcb, + 0x39, 0x7f, 0xb4, 0xe5, 0xa4, 0xbd, 0xd9, 0x62, 0xce, 0x08, 0x74, 0x65, 0x59, 0xa2, 0x2c, 0x25, + 0x81, 0x11, 0x2b, 0x20, 0x6d, 0xbe, 0xad, 0x0a, 0xd2, 0x51, 0x75, 0xc8, 0x8b, 0x53, 0x02, 0xd9, + 0x48, 0x9d, 0x82, 0xc5, 0x1c, 0xba, 0xfe, 0x23, 0x70, 0x51, 0x6d, 0xb5, 0xe6, 0xb9, 0xbb, 0x96, + 0x49, 0x3c, 0x7a, 0x12, 0x82, 0x5e, 0x27, 0x75, 0x12, 0xe8, 0xce, 0xc2, 0xac, 0x06, 0xbd, 0x17, + 0x46, 0x3d, 0xd2, 0xb2, 0x5c, 0x87, 0x7d, 0xed, 0xf1, 0x68, 0xed, 0x30, 0x2b, 0xc5, 0xa2, 0x56, + 0xff, 0x9f, 0xa5, 0xf8, 0xda, 0xd1, 0xcf, 0x88, 0x76, 0xa1, 0xdc, 0x11, 0xa8, 0xc4, 0xda, 0xdd, + 0x19, 0x74, 0x82, 0x72, 0xe8, 0xd1, 0xaa, 0xca, 0x12, 0x1c, 0xe2, 0x42, 0x16, 0x4c, 0xcb, 0xff, + 0xab, 0x03, 0x90, 0x7f, 0x46, 0x4e, 0xd7, 0x62, 0x80, 0x70, 0x02, 0x30, 0x5a, 0x87, 0x71, 0x9f, + 0x11, 0x69, 0x4a, 0xb8, 0x86, 0xf2, 0x09, 0x57, 0x43, 0x36, 0x12, 0x84, 0xeb, 0xbc, 0x18, 0xfe, + 0x78, 0x58, 0x81, 0x23, 0x40, 0xf4, 0x92, 0xf1, 0x09, 0x31, 0x95, 0xeb, 0x82, 0x5d, 0x32, 0x0d, + 0x51, 0x86, 0xc3, 0x5a, 0xfd, 0x73, 0xc3, 0x80, 0xd2, 0x5b, 0x5c, 0x5d, 0x01, 0x5e, 0x22, 0xd6, + 0x7f, 0x90, 0x15, 0x10, 0xa7, 0x25, 0x01, 0x18, 0xbd, 0x09, 0x53, 0xb6, 0xe1, 0x07, 0xf7, 0x3a, + 0x94, 0x7b, 0x94, 0x1b, 0x65, 0xe2, 0xe9, 0x85, 0x22, 0x5f, 0x7a, 0x59, 0x05, 0xb4, 0x78, 0xfe, + 0x60, 0xbf, 0x32, 0x15, 0x2b, 0xc2, 0x71, 0x54, 0xe8, 0x75, 0x18, 0xa7, 0x05, 0x4b, 0x9e, 0xe7, + 0x7a, 0x62, 0xf5, 0x9f, 0x2b, 0x8a, 0x97, 0x01, 0xe1, 0xdc, 0x6c, 0xf8, 0x13, 0x47, 0xe0, 0xd1, + 0x0f, 0x00, 0x72, 0x37, 0x7d, 0xca, 0x80, 0x9a, 0xb7, 0x39, 0xab, 0x4c, 0x27, 0x4b, 0xbf, 0xce, + 0xd0, 0xe2, 0x9c, 0xf8, 0x9a, 0xe8, 0x5e, 0xaa, 0x05, 0xce, 0xe8, 0x85, 0x76, 0x00, 0x85, 0xec, + 0x76, 0xb8, 0x01, 0x66, 0x47, 0x8e, 0xbe, 0x7d, 0x2e, 0x53, 0x64, 0xb7, 0x53, 0x20, 0x70, 0x06, + 0x58, 0xfd, 0x5f, 0x97, 0x60, 0x82, 0x6f, 0x91, 0x25, 0x27, 0xf0, 0x7a, 0x67, 0x70, 0x41, 0x90, + 0xd8, 0x05, 0x51, 0x2d, 0x7e, 0xe6, 0xd9, 0x80, 0x73, 0xef, 0x87, 0x76, 0xe2, 0x7e, 0x58, 0x1a, + 0x14, 0x51, 0xff, 0xeb, 0xe1, 0xdf, 0x69, 0x70, 0x4e, 0x69, 0x7d, 0x06, 0xb7, 0x83, 0x19, 0xbf, + 0x1d, 0x5e, 0x18, 0x70, 0x7e, 0x39, 0x97, 0x83, 0x1b, 0x9b, 0x16, 0x23, 0xdc, 0x4f, 0x03, 0x6c, + 0x32, 0x72, 0xb2, 0x1a, 0xf1, 0x49, 0xe1, 0x27, 0x5f, 0x0c, 0x6b, 0xb0, 0xd2, 0x2a, 0x46, 0xb3, + 0x4a, 0x7d, 0x69, 0xd6, 0x7f, 0x19, 0x82, 0xf3, 0xa9, 0x65, 0x4f, 0xd3, 0x11, 0xed, 0xdb, 0x44, + 0x47, 0x4a, 0xdf, 0x0e, 0x3a, 0x32, 0x54, 0x88, 0x8e, 0x1c, 0xf9, 0x9e, 0x40, 0x1e, 0xa0, 0xb6, + 0xd5, 0xe2, 0xdd, 0x1a, 0x81, 0xe1, 0x05, 0xeb, 0x56, 0x9b, 0x08, 0x8a, 0xf3, 0x5d, 0x47, 0xdb, + 0xb2, 0xb4, 0x07, 0x27, 0x3c, 0x2b, 0x29, 0x48, 0x38, 0x03, 0xba, 0xfe, 0x95, 0x61, 0x80, 0xea, + 0x02, 0x76, 0x03, 0x3e, 0xd8, 0x17, 0x60, 0xa4, 0xb3, 0x6d, 0xf8, 0x72, 0x3f, 0x3d, 0x21, 0x37, + 0xe3, 0x1a, 0x2d, 0x7c, 0xb0, 0x5f, 0x99, 0xad, 0x7a, 0xc4, 0x24, 0x4e, 0x60, 0x19, 0xb6, 0x2f, + 0x3b, 0xb1, 0x3a, 0xcc, 0xfb, 0xd1, 0x39, 0xd0, 0x65, 0xac, 0xba, 0xed, 0x8e, 0x4d, 0x68, 0x2d, + 0x9b, 0x43, 0xa9, 0xd8, 0x1c, 0x96, 0x53, 0x90, 0x70, 0x06, 0x74, 0x89, 0xb3, 0xee, 0x58, 0x81, + 0x65, 0x84, 0x38, 0x87, 0x8a, 0xe3, 0x8c, 0x43, 0xc2, 0x19, 0xd0, 0xd1, 0xdb, 0x1a, 0xcc, 0xc5, + 0x8b, 0x6f, 0x59, 0x8e, 0xe5, 0x6f, 0x13, 0x93, 0x21, 0x1f, 0x3e, 0x36, 0xf2, 0x6b, 0x07, 0xfb, + 0x95, 0xb9, 0xe5, 0x5c, 0x88, 0xb8, 0x0f, 0x36, 0xf4, 0x49, 0x0d, 0xae, 0x26, 0xd6, 0xc5, 0xb3, + 0x5a, 0x2d, 0xe2, 0x89, 0xd1, 0x1c, 0x7f, 0x0b, 0x55, 0x0e, 0xf6, 0x2b, 0x57, 0x97, 0xf3, 0x41, + 0xe2, 0x7e, 0xf8, 0xf4, 0xcf, 0x6b, 0x30, 0x54, 0xc5, 0x75, 0xf4, 0x64, 0x4c, 0x88, 0x7b, 0x48, + 0x15, 0xe2, 0x1e, 0xec, 0x57, 0xc6, 0xaa, 0xb8, 0xae, 0xc8, 0x73, 0x9f, 0xd4, 0xe0, 0x7c, 0xd3, + 0x75, 0x02, 0x83, 0x8e, 0x0b, 0x73, 0x4e, 0x47, 0x52, 0xd5, 0x42, 0xf2, 0x4b, 0x35, 0x01, 0x6c, + 0xf1, 0x8a, 0x18, 0xc0, 0xf9, 0x64, 0x8d, 0x8f, 0xd3, 0x98, 0xf5, 0xaf, 0x69, 0x30, 0x59, 0xb5, + 0xdd, 0xae, 0xb9, 0xe6, 0xb9, 0x5b, 0x96, 0x4d, 0xde, 0x19, 0x42, 0x9b, 0x3a, 0xe2, 0xbc, 0x4b, + 0x99, 0x09, 0x51, 0x6a, 0xc3, 0x77, 0x88, 0x10, 0xa5, 0x0e, 0x39, 0xe7, 0x9e, 0xfc, 0xc5, 0xb1, + 0xf8, 0xcc, 0xd8, 0x4d, 0xf9, 0x38, 0x94, 0x9b, 0xc6, 0x62, 0xd7, 0x31, 0xed, 0x50, 0x8a, 0xa2, + 0xa3, 0xac, 0x2e, 0xf0, 0x32, 0x1c, 0xd6, 0xa2, 0x37, 0x01, 0x22, 0x85, 0x9a, 0xf8, 0x0c, 0xb7, + 0x06, 0x53, 0xe2, 0x35, 0x48, 0x10, 0x58, 0x4e, 0xcb, 0x8f, 0x3e, 0x7d, 0x54, 0x87, 0x15, 0x6c, + 0xe8, 0xc7, 0x60, 0x4a, 0x2c, 0x72, 0xbd, 0x6d, 0xb4, 0x84, 0xbe, 0xa1, 0xe0, 0x4a, 0xad, 0x28, + 0x80, 0x16, 0x2f, 0x09, 0xc4, 0x53, 0x6a, 0xa9, 0x8f, 0xe3, 0xd8, 0x50, 0x0f, 0x26, 0xdb, 0xaa, + 0x0e, 0x65, 0xb8, 0x38, 0x3b, 0xa3, 0xe8, 0x53, 0x16, 0x2f, 0x0a, 0xe4, 0x93, 0x31, 0xed, 0x4b, + 0x0c, 0x55, 0x86, 0x28, 0x38, 0x72, 0x5a, 0xa2, 0x20, 0x81, 0x31, 0x2e, 0x0c, 0xfb, 0xb3, 0xa3, + 0x6c, 0x82, 0x37, 0x8b, 0x4c, 0x90, 0xcb, 0xd5, 0x91, 0x86, 0x98, 0xff, 0xf6, 0xb1, 0x84, 0x8d, + 0x76, 0x61, 0x92, 0xde, 0xea, 0x0d, 0x62, 0x93, 0x66, 0xe0, 0x7a, 0xb3, 0x63, 0xc5, 0x35, 0xb0, + 0x0d, 0x05, 0x0e, 0x57, 0xa5, 0xa9, 0x25, 0x38, 0x86, 0x27, 0xd4, 0x15, 0x94, 0x73, 0x75, 0x05, + 0x5d, 0x98, 0xd8, 0x55, 0x74, 0x5a, 0xe3, 0x6c, 0x11, 0x9e, 0x2f, 0x32, 0xb0, 0x48, 0xc1, 0xb5, + 0x78, 0x41, 0x20, 0x9a, 0x50, 0x95, 0x61, 0x2a, 0x1e, 0xfd, 0x1f, 0x00, 0x9c, 0xaf, 0xda, 0x5d, + 0x3f, 0x20, 0xde, 0x82, 0x78, 0x24, 0x22, 0x1e, 0xfa, 0x98, 0x06, 0x97, 0xd9, 0xbf, 0x35, 0xf7, + 0xbe, 0x53, 0x23, 0xb6, 0xd1, 0x5b, 0xd8, 0xa2, 0x2d, 0x4c, 0xf3, 0x78, 0x14, 0xa8, 0xd6, 0x15, + 0x5c, 0x24, 0x53, 0xce, 0x35, 0x32, 0x21, 0xe2, 0x1c, 0x4c, 0xe8, 0x67, 0x35, 0xb8, 0x92, 0x51, + 0x55, 0x23, 0x36, 0x09, 0x24, 0xe7, 0x72, 0xdc, 0x71, 0x3c, 0x72, 0xb0, 0x5f, 0xb9, 0xd2, 0xc8, + 0x03, 0x8a, 0xf3, 0xf1, 0xa1, 0xbf, 0xa3, 0xc1, 0x5c, 0x46, 0xed, 0x2d, 0xc3, 0xb2, 0xbb, 0x9e, + 0x64, 0x6a, 0x8e, 0x3b, 0x1c, 0xc6, 0x5b, 0x34, 0x72, 0xa1, 0xe2, 0x3e, 0x18, 0xd1, 0x8f, 0xc3, + 0xa5, 0xb0, 0x76, 0xc3, 0x71, 0x08, 0x31, 0x63, 0x2c, 0xce, 0x71, 0x87, 0x72, 0xe5, 0x60, 0xbf, + 0x72, 0xa9, 0x91, 0x05, 0x10, 0x67, 0xe3, 0x41, 0x2d, 0x78, 0x24, 0xaa, 0x08, 0x2c, 0xdb, 0x7a, + 0x93, 0x73, 0x61, 0xdb, 0x1e, 0xf1, 0xb7, 0x5d, 0xdb, 0x64, 0xc4, 0x42, 0x5b, 0x7c, 0xf7, 0xc1, + 0x7e, 0xe5, 0x91, 0x46, 0xbf, 0x86, 0xb8, 0x3f, 0x1c, 0x64, 0xc2, 0xa4, 0xdf, 0x34, 0x9c, 0xba, + 0x13, 0x10, 0x6f, 0xd7, 0xb0, 0x67, 0x47, 0x0b, 0x4d, 0x90, 0x1f, 0x51, 0x05, 0x0e, 0x8e, 0x41, + 0x45, 0x1f, 0x84, 0x32, 0xd9, 0xeb, 0x18, 0x8e, 0x49, 0x38, 0x59, 0x18, 0x5f, 0x7c, 0x98, 0x5e, + 0x46, 0x4b, 0xa2, 0xec, 0xc1, 0x7e, 0x65, 0x52, 0xfe, 0xbf, 0xe2, 0x9a, 0x04, 0x87, 0xad, 0xd1, + 0x8f, 0xc2, 0x45, 0xf6, 0x1e, 0x66, 0x12, 0x46, 0xe4, 0x7c, 0xc9, 0xe8, 0x96, 0x0b, 0x8d, 0x93, + 0xbd, 0x6d, 0xac, 0x64, 0xc0, 0xc3, 0x99, 0x58, 0xe8, 0x67, 0x68, 0x1b, 0x7b, 0xb7, 0x3d, 0xa3, + 0x49, 0xb6, 0xba, 0xf6, 0x3a, 0xf1, 0xda, 0x96, 0xc3, 0x65, 0x09, 0xd2, 0x74, 0x1d, 0x93, 0x92, + 0x12, 0xed, 0xf1, 0x11, 0xfe, 0x19, 0x56, 0xfa, 0x35, 0xc4, 0xfd, 0xe1, 0xa0, 0xf7, 0xc3, 0xa4, + 0xd5, 0x72, 0x5c, 0x8f, 0xac, 0x1b, 0x96, 0x13, 0xf8, 0xb3, 0xc0, 0xd4, 0xee, 0x6c, 0x59, 0xeb, + 0x4a, 0x39, 0x8e, 0xb5, 0x42, 0xbb, 0x80, 0x1c, 0x72, 0x7f, 0xcd, 0x35, 0xd9, 0x16, 0xd8, 0xe8, + 0xb0, 0x8d, 0x3c, 0x3b, 0x51, 0x68, 0x69, 0x98, 0x1c, 0xb0, 0x9a, 0x82, 0x86, 0x33, 0x30, 0xa0, + 0x5b, 0x80, 0xda, 0xc6, 0xde, 0x52, 0xbb, 0x13, 0xf4, 0x16, 0xbb, 0xf6, 0x8e, 0xa0, 0x1a, 0x93, + 0x6c, 0x2d, 0xb8, 0x1c, 0x96, 0xaa, 0xc5, 0x19, 0x3d, 0xf4, 0xfd, 0x21, 0x18, 0xaf, 0xba, 0x8e, + 0x69, 0x31, 0x31, 0xec, 0xa9, 0x98, 0xce, 0xf7, 0x11, 0x95, 0x8e, 0x3f, 0xd8, 0xaf, 0x4c, 0x85, + 0x0d, 0x15, 0xc2, 0xfe, 0x6c, 0xa8, 0x68, 0xe1, 0x82, 0xfd, 0xbb, 0xe3, 0x1a, 0x92, 0x07, 0xfb, + 0x95, 0x73, 0x61, 0xb7, 0xb8, 0xd2, 0x84, 0xae, 0x1d, 0xe5, 0xe6, 0xd7, 0x3d, 0xc3, 0xf1, 0xad, + 0x01, 0xe4, 0xa7, 0x50, 0x32, 0x5e, 0x4e, 0x41, 0xc3, 0x19, 0x18, 0xd0, 0xeb, 0x30, 0x4d, 0x4b, + 0x37, 0x3a, 0xa6, 0x11, 0x90, 0x82, 0x62, 0xd3, 0x65, 0x81, 0x73, 0x7a, 0x39, 0x06, 0x09, 0x27, + 0x20, 0x73, 0x1d, 0xb9, 0xe1, 0xbb, 0x0e, 0x23, 0x17, 0x31, 0x1d, 0x39, 0x2d, 0xc5, 0xa2, 0x16, + 0x3d, 0x01, 0x63, 0x6d, 0xe2, 0xfb, 0x46, 0x8b, 0xb0, 0xf3, 0x3f, 0x1e, 0x5d, 0xf2, 0x2b, 0xbc, + 0x18, 0xcb, 0x7a, 0xf4, 0x3e, 0x18, 0x69, 0xba, 0x26, 0xf1, 0x67, 0xc7, 0xd8, 0x0e, 0xa5, 0x5f, + 0x7b, 0xa4, 0x4a, 0x0b, 0x1e, 0xec, 0x57, 0xc6, 0x99, 0x1e, 0x81, 0xfe, 0xc2, 0xbc, 0x91, 0xfe, + 0xcb, 0x94, 0xe7, 0x4e, 0x08, 0x19, 0x47, 0xd0, 0xed, 0x9f, 0x9d, 0x9a, 0x5c, 0xff, 0x14, 0x15, + 0x78, 0x5c, 0x27, 0xf0, 0x5c, 0x7b, 0xcd, 0x36, 0x1c, 0x82, 0x7e, 0x5a, 0x83, 0x99, 0x6d, 0xab, + 0xb5, 0xad, 0x3e, 0xce, 0x89, 0x8b, 0xb9, 0x90, 0x6c, 0x72, 0x27, 0x01, 0x6b, 0xf1, 0xe2, 0xc1, + 0x7e, 0x65, 0x26, 0x59, 0x8a, 0x53, 0x38, 0xf5, 0x4f, 0x94, 0xe0, 0xa2, 0x18, 0x99, 0x4d, 0x6f, + 0xca, 0x8e, 0xed, 0xf6, 0xda, 0xc4, 0x39, 0x8b, 0x77, 0x34, 0xf9, 0x85, 0x4a, 0xb9, 0x5f, 0xa8, + 0x9d, 0xfa, 0x42, 0x43, 0x45, 0xbe, 0x50, 0xb8, 0x91, 0x0f, 0xf9, 0x4a, 0x7f, 0xa6, 0xc1, 0x6c, + 0xd6, 0x5a, 0x9c, 0x81, 0x0c, 0xd7, 0x8e, 0xcb, 0x70, 0x77, 0x8a, 0x0a, 0xe5, 0xc9, 0xa1, 0xe7, + 0xc8, 0x72, 0xdf, 0x2a, 0xc1, 0xe5, 0xa8, 0x79, 0xdd, 0xf1, 0x03, 0xc3, 0xb6, 0xb9, 0x9a, 0xea, + 0xf4, 0xbf, 0x7b, 0x27, 0x26, 0x8a, 0xaf, 0x0e, 0x36, 0x55, 0x75, 0xec, 0xb9, 0x9a, 0xf2, 0xbd, + 0x84, 0xa6, 0x7c, 0xed, 0x04, 0x71, 0xf6, 0x57, 0x9a, 0xff, 0x37, 0x0d, 0xe6, 0xb2, 0x3b, 0x9e, + 0xc1, 0xa6, 0x72, 0xe3, 0x9b, 0xea, 0x07, 0x4e, 0x6e, 0xd6, 0x39, 0xdb, 0xea, 0xb7, 0x4a, 0x79, + 0xb3, 0x65, 0xca, 0x82, 0x2d, 0x38, 0x47, 0xa5, 0x38, 0x3f, 0x10, 0x2a, 0xdd, 0xe3, 0xd9, 0x3a, + 0x48, 0x1d, 0xd7, 0x39, 0x1c, 0x87, 0x81, 0x93, 0x40, 0xd1, 0x2a, 0x8c, 0x51, 0xd1, 0x8d, 0xc2, + 0x2f, 0x1d, 0x1d, 0x7e, 0x78, 0x1b, 0x35, 0x78, 0x5f, 0x2c, 0x81, 0xa0, 0x1f, 0x82, 0x29, 0x33, + 0x3c, 0x51, 0x87, 0x3c, 0x74, 0x26, 0xa1, 0x32, 0xe5, 0x7b, 0x4d, 0xed, 0x8d, 0xe3, 0xc0, 0xf4, + 0xbf, 0xd4, 0xe0, 0xe1, 0x7e, 0x7b, 0x0b, 0xbd, 0x01, 0xd0, 0x94, 0xec, 0x05, 0x37, 0x75, 0x29, + 0xa8, 0x9e, 0x0f, 0x99, 0x94, 0xe8, 0x80, 0x86, 0x45, 0x3e, 0x56, 0x90, 0x64, 0xbc, 0x9f, 0x96, + 0x4e, 0xe9, 0xfd, 0x54, 0xff, 0xef, 0x9a, 0x4a, 0x8a, 0xd4, 0x6f, 0xfb, 0x4e, 0x23, 0x45, 0xea, + 0xd8, 0x73, 0xf5, 0x83, 0x5f, 0x2d, 0xc1, 0xf5, 0xec, 0x2e, 0xca, 0xdd, 0xfb, 0x61, 0x18, 0xed, + 0x70, 0x7b, 0xa4, 0x21, 0x76, 0x37, 0x3e, 0x4e, 0x29, 0x0b, 0xb7, 0x16, 0x7a, 0xb0, 0x5f, 0x99, + 0xcb, 0x22, 0xf4, 0xc2, 0xce, 0x48, 0xf4, 0x43, 0x56, 0x42, 0x4b, 0xc2, 0xb9, 0xbf, 0xef, 0x3d, + 0x22, 0x71, 0x31, 0x36, 0x89, 0x7d, 0x64, 0xc5, 0xc8, 0x47, 0x35, 0x98, 0x8e, 0xed, 0x68, 0x7f, + 0x76, 0x84, 0xed, 0xd1, 0x42, 0x4f, 0x57, 0xb1, 0xa3, 0x12, 0xdd, 0xdc, 0xb1, 0x62, 0x1f, 0x27, + 0x10, 0x26, 0xc8, 0xac, 0xba, 0xaa, 0xef, 0x38, 0x32, 0xab, 0x0e, 0x3e, 0x87, 0xcc, 0xfe, 0x52, + 0x29, 0x6f, 0xb6, 0x8c, 0xcc, 0xde, 0x87, 0x71, 0x69, 0xa9, 0x2b, 0xc9, 0xc5, 0xad, 0x41, 0xc7, + 0xc4, 0xc1, 0x45, 0x66, 0x1b, 0xb2, 0xc4, 0xc7, 0x11, 0x2e, 0xf4, 0x53, 0x1a, 0x40, 0xf4, 0x61, + 0xc4, 0xa1, 0x5a, 0x3f, 0xb9, 0xe5, 0x50, 0xd8, 0x9a, 0x69, 0x7a, 0xa4, 0x95, 0x4d, 0xa1, 0xe0, + 0xd5, 0xff, 0xf7, 0x10, 0xa0, 0xf4, 0xd8, 0x29, 0xbb, 0xb9, 0x63, 0x39, 0x66, 0x52, 0x20, 0xb8, + 0x6b, 0x39, 0x26, 0x66, 0x35, 0x47, 0x60, 0x48, 0x9f, 0x83, 0x73, 0x2d, 0xdb, 0xdd, 0x34, 0x6c, + 0xbb, 0x27, 0x4c, 0x57, 0x85, 0x11, 0xe4, 0x05, 0x7a, 0x31, 0xdd, 0x8e, 0x57, 0xe1, 0x64, 0x5b, + 0xd4, 0x81, 0x19, 0x8f, 0x8a, 0xe2, 0x4d, 0xcb, 0x66, 0xa2, 0x93, 0xdb, 0x0d, 0x0a, 0xea, 0x7a, + 0x18, 0x7b, 0x8f, 0x13, 0xb0, 0x70, 0x0a, 0x3a, 0x7a, 0x0f, 0x8c, 0x75, 0x3c, 0xab, 0x6d, 0x78, + 0x3d, 0x26, 0x9c, 0x95, 0x17, 0x27, 0xe8, 0x0d, 0xb7, 0xc6, 0x8b, 0xb0, 0xac, 0x43, 0x3f, 0x0a, + 0xe3, 0xb6, 0xb5, 0x45, 0x9a, 0xbd, 0xa6, 0x4d, 0x84, 0x72, 0xe6, 0xde, 0xc9, 0x6c, 0x99, 0x65, + 0x09, 0x56, 0x3c, 0x09, 0xcb, 0x9f, 0x38, 0x42, 0x88, 0xea, 0x70, 0xe1, 0xbe, 0xeb, 0xed, 0x10, + 0xcf, 0x26, 0xbe, 0xdf, 0xe8, 0x76, 0x3a, 0xae, 0x17, 0x10, 0x93, 0xa9, 0x70, 0xca, 0xdc, 0x3e, + 0xf7, 0xe5, 0x74, 0x35, 0xce, 0xea, 0xa3, 0xbf, 0x5d, 0x82, 0xab, 0x7d, 0x06, 0x81, 0x30, 0x3d, + 0x1b, 0x62, 0x8d, 0xc4, 0x4e, 0x78, 0x3f, 0xdf, 0xcf, 0xa2, 0xf0, 0xc1, 0x7e, 0xe5, 0xd1, 0x3e, + 0x00, 0x1a, 0x74, 0x2b, 0x92, 0x56, 0x0f, 0x47, 0x60, 0x50, 0x1d, 0x46, 0xcd, 0x48, 0xa3, 0x39, + 0xbe, 0xf8, 0x14, 0xa5, 0xd6, 0x5c, 0xf7, 0x70, 0x54, 0x68, 0x02, 0x00, 0x5a, 0x86, 0x31, 0xfe, + 0x90, 0x4c, 0x04, 0xe5, 0x7f, 0x9a, 0x89, 0xc7, 0xbc, 0xe8, 0xa8, 0xc0, 0x24, 0x08, 0xfd, 0x7f, + 0x69, 0x30, 0x56, 0x75, 0x3d, 0x52, 0x5b, 0x6d, 0xa0, 0x1e, 0x4c, 0x28, 0x2e, 0x04, 0x82, 0x0a, + 0x16, 0x24, 0x0b, 0x0c, 0xe2, 0x42, 0x04, 0x4d, 0x9a, 0xbb, 0x86, 0x05, 0x58, 0xc5, 0x85, 0xde, + 0xa0, 0x6b, 0x7e, 0xdf, 0xb3, 0x02, 0x8a, 0x78, 0x90, 0xf7, 0x37, 0x8e, 0x18, 0x4b, 0x58, 0x7c, + 0x47, 0x85, 0x3f, 0x71, 0x84, 0x45, 0x5f, 0xa3, 0x14, 0x20, 0x39, 0x4c, 0x74, 0x13, 0x86, 0xdb, + 0xae, 0x29, 0xbf, 0xfb, 0x7b, 0xe5, 0xf9, 0x5e, 0x71, 0x4d, 0xba, 0xb6, 0x97, 0xd3, 0x3d, 0x98, + 0x96, 0x90, 0xf5, 0xd1, 0x57, 0x61, 0x26, 0x89, 0x1f, 0xdd, 0x84, 0xe9, 0xa6, 0xdb, 0x6e, 0xbb, + 0x4e, 0xa3, 0xbb, 0xb5, 0x65, 0xed, 0x91, 0x98, 0x1d, 0x72, 0x35, 0x56, 0x83, 0x13, 0x2d, 0xf5, + 0xcf, 0x6a, 0x30, 0x44, 0xbf, 0x8b, 0x0e, 0xa3, 0xa6, 0xdb, 0x36, 0x2c, 0x47, 0x8c, 0x8a, 0xd9, + 0x5c, 0xd7, 0x58, 0x09, 0x16, 0x35, 0xa8, 0x03, 0xe3, 0x92, 0x69, 0x1a, 0xc8, 0x16, 0xa6, 0xb6, + 0xda, 0x08, 0xed, 0x07, 0x43, 0x4a, 0x2e, 0x4b, 0x7c, 0x1c, 0x21, 0xd1, 0x0d, 0x38, 0x5f, 0x5b, + 0x6d, 0xd4, 0x9d, 0xa6, 0xdd, 0x35, 0xc9, 0xd2, 0x1e, 0xfb, 0x43, 0x69, 0x89, 0xc5, 0x4b, 0xc4, + 0x3c, 0x19, 0x2d, 0x11, 0x8d, 0xb0, 0xac, 0xa3, 0xcd, 0x08, 0xef, 0x21, 0x8c, 0x85, 0x59, 0x33, + 0x01, 0x04, 0xcb, 0x3a, 0xfd, 0x6b, 0x25, 0x98, 0x50, 0x06, 0x84, 0x6c, 0x18, 0xe3, 0xd3, 0x95, + 0xb6, 0x7a, 0x4b, 0x05, 0xa7, 0x18, 0x1f, 0x35, 0xc7, 0xce, 0x17, 0xd4, 0xc7, 0x12, 0x85, 0x4a, + 0x17, 0x4b, 0x7d, 0xe8, 0xe2, 0x3c, 0x80, 0x1f, 0x59, 0xae, 0xf3, 0x23, 0xc9, 0xae, 0x1e, 0xc5, + 0x5e, 0x5d, 0x69, 0x81, 0x1e, 0x16, 0x37, 0x08, 0x37, 0x46, 0x29, 0x27, 0x6e, 0x8f, 0x2d, 0x18, + 0x79, 0xd3, 0x75, 0x88, 0x2f, 0xde, 0xe0, 0x4e, 0x68, 0x82, 0xe3, 0x94, 0x3f, 0x78, 0x95, 0xc2, + 0xc5, 0x1c, 0xbc, 0xfe, 0x2b, 0x1a, 0x40, 0xcd, 0x08, 0x0c, 0xfe, 0x64, 0x74, 0x04, 0x7b, 0xef, + 0x87, 0x63, 0x17, 0x5f, 0x39, 0x65, 0x03, 0x3b, 0xec, 0x5b, 0x6f, 0xca, 0xe9, 0x87, 0x0c, 0x35, + 0x87, 0xde, 0xb0, 0xde, 0x24, 0x98, 0xd5, 0xa3, 0x27, 0x61, 0x9c, 0x38, 0x4d, 0xaf, 0xd7, 0xa1, + 0xc4, 0x7b, 0x98, 0xad, 0x2a, 0x3b, 0xa1, 0x4b, 0xb2, 0x10, 0x47, 0xf5, 0xfa, 0x53, 0x10, 0x97, + 0x8a, 0x0e, 0x1f, 0xa5, 0xfe, 0x8d, 0x61, 0xb8, 0xb2, 0xb4, 0x5e, 0xad, 0x09, 0x78, 0x96, 0xeb, + 0xdc, 0x25, 0xbd, 0xbf, 0x31, 0xaf, 0xf9, 0x1b, 0xf3, 0x9a, 0x13, 0x34, 0xaf, 0x79, 0xa0, 0xc1, + 0xcc, 0xd2, 0x5e, 0xc7, 0xf2, 0x98, 0x9f, 0x01, 0xf1, 0xa8, 0x18, 0x8b, 0x9e, 0x80, 0xb1, 0x5d, + 0xfe, 0xaf, 0xd8, 0x5c, 0xa1, 0xaa, 0x40, 0xb4, 0xc0, 0xb2, 0x1e, 0x6d, 0xc1, 0x34, 0x61, 0xdd, + 0x19, 0xbf, 0x6a, 0x04, 0x45, 0x36, 0x10, 0x77, 0x63, 0x89, 0x41, 0xc1, 0x09, 0xa8, 0xa8, 0x01, + 0xd3, 0x4d, 0xdb, 0xf0, 0x7d, 0x6b, 0xcb, 0x6a, 0x46, 0x16, 0x74, 0xe3, 0x8b, 0x4f, 0xb2, 0xab, + 0x27, 0x56, 0xf3, 0x60, 0xbf, 0x72, 0x49, 0x8c, 0x33, 0x5e, 0x81, 0x13, 0x20, 0xf4, 0x4f, 0x97, + 0x60, 0x6a, 0x69, 0xaf, 0xe3, 0xfa, 0x5d, 0x8f, 0xb0, 0xa6, 0x67, 0x20, 0x81, 0x3f, 0x01, 0x63, + 0xdb, 0x86, 0x63, 0xda, 0xc4, 0x13, 0xd4, 0x27, 0x5c, 0xdb, 0x3b, 0xbc, 0x18, 0xcb, 0x7a, 0xf4, + 0x16, 0x80, 0xdf, 0xdc, 0x26, 0x66, 0x97, 0x71, 0x30, 0xfc, 0x90, 0xdc, 0x2d, 0x42, 0x43, 0x63, + 0x73, 0x6c, 0x84, 0x20, 0x05, 0x65, 0x0f, 0x7f, 0x63, 0x05, 0x9d, 0xfe, 0x75, 0x0d, 0xce, 0xc7, + 0xfa, 0x9d, 0x81, 0x60, 0xb9, 0x15, 0x17, 0x2c, 0x17, 0x06, 0x9e, 0x6b, 0x8e, 0x3c, 0xf9, 0x33, + 0x25, 0x78, 0x28, 0x67, 0x4d, 0x52, 0xe6, 0x16, 0xda, 0x19, 0x99, 0x5b, 0x74, 0x61, 0x22, 0x70, + 0x6d, 0x61, 0xe8, 0x29, 0x57, 0xa0, 0x90, 0x31, 0xc5, 0x7a, 0x08, 0x26, 0x32, 0xa6, 0x88, 0xca, + 0x7c, 0xac, 0xe2, 0xd1, 0x3f, 0xaf, 0xc1, 0x78, 0xa8, 0xbf, 0xfa, 0x8e, 0x7a, 0x43, 0x3a, 0xba, + 0xe7, 0x9d, 0xfe, 0x47, 0x25, 0xb8, 0x1c, 0xc2, 0x96, 0x72, 0x42, 0x23, 0xa0, 0x74, 0xe3, 0x70, + 0x21, 0xf8, 0x61, 0x71, 0x0f, 0x2b, 0xbc, 0x80, 0xc2, 0x29, 0x50, 0xbe, 0xa9, 0xeb, 0x75, 0x5c, + 0x5f, 0xb2, 0x03, 0x9c, 0x6f, 0xe2, 0x45, 0x58, 0xd6, 0xa1, 0x55, 0x18, 0xf1, 0x29, 0x3e, 0x71, + 0x9b, 0x1c, 0x73, 0x35, 0x18, 0x47, 0xc3, 0xc6, 0x8b, 0x39, 0x18, 0xf4, 0x96, 0xaa, 0xd2, 0x18, + 0x29, 0xae, 0x66, 0xa1, 0x33, 0x31, 0xe5, 0x8a, 0x64, 0x78, 0xa3, 0x64, 0xa9, 0x35, 0xf4, 0x65, + 0x98, 0x11, 0x16, 0x1b, 0x7c, 0xdb, 0x38, 0x4d, 0x82, 0x3e, 0x18, 0xdb, 0x19, 0x8f, 0x25, 0x5e, + 0x91, 0x2f, 0x26, 0xdb, 0x47, 0x3b, 0x46, 0xf7, 0xa1, 0x7c, 0x5b, 0x0c, 0x12, 0xcd, 0x41, 0xc9, + 0x92, 0xdf, 0x02, 0x04, 0x8c, 0x52, 0xbd, 0x86, 0x4b, 0x96, 0x19, 0xf2, 0x43, 0xa5, 0x5c, 0xae, + 0x4d, 0xb9, 0x96, 0x86, 0xfa, 0x5f, 0x4b, 0xfa, 0x37, 0x4b, 0x70, 0x51, 0x62, 0x95, 0x73, 0xac, + 0x89, 0x37, 0xb8, 0x43, 0x78, 0xc3, 0xc3, 0x95, 0x22, 0xf7, 0x60, 0x98, 0x11, 0xc0, 0x42, 0x6f, + 0x73, 0x21, 0x40, 0x3a, 0x1c, 0xcc, 0x00, 0xa1, 0x1f, 0x85, 0x51, 0xdb, 0xd8, 0x24, 0xb6, 0xb4, + 0x94, 0x2b, 0xa4, 0x42, 0xca, 0x9a, 0x2e, 0xd7, 0x6c, 0xfa, 0xdc, 0x1b, 0x20, 0x7c, 0xb2, 0xe1, + 0x85, 0x58, 0xe0, 0x9c, 0x7b, 0x16, 0x26, 0x94, 0x66, 0x68, 0x06, 0x86, 0x76, 0x08, 0x7f, 0x9b, + 0x1d, 0xc7, 0xf4, 0x5f, 0x74, 0x11, 0x46, 0x76, 0x0d, 0xbb, 0x2b, 0x96, 0x04, 0xf3, 0x1f, 0x37, + 0x4b, 0x1f, 0xd4, 0xf4, 0xdf, 0xd0, 0x60, 0xe2, 0x8e, 0xb5, 0x49, 0x3c, 0x6e, 0x76, 0xc1, 0x44, + 0xa1, 0x98, 0xe3, 0xf3, 0x44, 0x96, 0xd3, 0x33, 0xda, 0x83, 0x71, 0x71, 0xd3, 0x84, 0x56, 0xb9, + 0xb7, 0x8b, 0x3d, 0x02, 0x87, 0xa8, 0x05, 0x05, 0x57, 0x1d, 0xad, 0x24, 0x06, 0x1c, 0x21, 0xd3, + 0xdf, 0x82, 0x0b, 0x19, 0x9d, 0x50, 0x85, 0x1d, 0x5f, 0x2f, 0x10, 0xdb, 0x42, 0x9e, 0x47, 0x2f, + 0xc0, 0xbc, 0x1c, 0x5d, 0x81, 0x21, 0xe2, 0x98, 0x62, 0x4f, 0x8c, 0x1d, 0xec, 0x57, 0x86, 0x96, + 0x1c, 0x13, 0xd3, 0x32, 0x4a, 0xa6, 0x6c, 0x37, 0xc6, 0x93, 0x30, 0x32, 0xb5, 0x2c, 0xca, 0x70, + 0x58, 0xcb, 0x9e, 0xed, 0x93, 0x2f, 0xd4, 0x94, 0x3b, 0x9d, 0xd9, 0x4a, 0x9c, 0x9e, 0x41, 0x1e, + 0xc6, 0x93, 0x27, 0x71, 0x71, 0x56, 0x2c, 0x48, 0xea, 0x4c, 0xe3, 0x14, 0x5e, 0xfd, 0x77, 0x87, + 0xe1, 0x91, 0x3b, 0xae, 0x67, 0xbd, 0xe9, 0x3a, 0x81, 0x61, 0xaf, 0xb9, 0x66, 0x64, 0x60, 0x27, + 0x88, 0xf2, 0xc7, 0x35, 0x78, 0xa8, 0xd9, 0xe9, 0x72, 0xee, 0x56, 0xda, 0x3d, 0xad, 0x11, 0xcf, + 0x72, 0x8b, 0xda, 0xd9, 0x31, 0xd7, 0xda, 0xea, 0xda, 0x46, 0x16, 0x48, 0x9c, 0x87, 0x8b, 0x99, + 0xfb, 0x99, 0xee, 0x7d, 0x87, 0x0d, 0xae, 0x11, 0xb0, 0xd5, 0x7c, 0x33, 0xfa, 0x08, 0x05, 0xcd, + 0xfd, 0x6a, 0x99, 0x10, 0x71, 0x0e, 0x26, 0xf4, 0xe3, 0x70, 0xc9, 0xe2, 0x83, 0xc3, 0xc4, 0x30, + 0x2d, 0x87, 0xf8, 0x3e, 0xb7, 0x15, 0x1a, 0xc0, 0x9e, 0xad, 0x9e, 0x05, 0x10, 0x67, 0xe3, 0x41, + 0xaf, 0x01, 0xf8, 0x3d, 0xa7, 0x29, 0xd6, 0x7f, 0xa4, 0x10, 0x56, 0xce, 0x04, 0x86, 0x50, 0xb0, + 0x02, 0x91, 0x4a, 0xb8, 0x41, 0xb8, 0x29, 0x47, 0x99, 0x6d, 0x1c, 0x93, 0x70, 0xa3, 0x3d, 0x14, + 0xd5, 0xeb, 0xff, 0x4c, 0x83, 0x31, 0xe1, 0xbe, 0x8f, 0xde, 0x9b, 0xd0, 0xf2, 0x84, 0xb4, 0x27, + 0xa1, 0xe9, 0xe9, 0xb1, 0xa7, 0x3e, 0xa1, 0xe1, 0x13, 0xac, 0x44, 0x21, 0x35, 0x81, 0x40, 0x1c, + 0xa9, 0x0b, 0x63, 0x4f, 0x7e, 0x52, 0x85, 0xa8, 0x20, 0xd3, 0x3f, 0xa7, 0xc1, 0xf9, 0x54, 0xaf, + 0x23, 0xf0, 0x0b, 0x67, 0x68, 0x45, 0xf3, 0xd5, 0x61, 0x98, 0x66, 0xc6, 0x7e, 0x8e, 0x61, 0x73, + 0x05, 0xcc, 0x19, 0x08, 0x28, 0x4f, 0xc2, 0xb8, 0xd5, 0x6e, 0x77, 0x03, 0x4a, 0xaa, 0x85, 0x0e, + 0x9d, 0x7d, 0xf3, 0xba, 0x2c, 0xc4, 0x51, 0x3d, 0x72, 0xc4, 0x55, 0xc8, 0x89, 0xf8, 0x72, 0xb1, + 0x2f, 0xa7, 0x4e, 0x70, 0x9e, 0x5e, 0x5b, 0xfc, 0xbe, 0xca, 0xba, 0x29, 0x7f, 0x5a, 0x03, 0xf0, + 0x03, 0xcf, 0x72, 0x5a, 0xb4, 0x50, 0x5c, 0x97, 0xf8, 0x04, 0xd0, 0x36, 0x42, 0xa0, 0x1c, 0x79, + 0xb8, 0x46, 0x51, 0x05, 0x56, 0x30, 0xa3, 0x05, 0xc1, 0x25, 0x70, 0x8a, 0xff, 0xdd, 0x09, 0x7e, + 0xe8, 0x91, 0x74, 0x74, 0x1a, 0xe1, 0xd2, 0x19, 0xb1, 0x11, 0x73, 0xcf, 0xc0, 0x78, 0x88, 0xef, + 0xb0, 0x5b, 0x77, 0x52, 0xb9, 0x75, 0xe7, 0x9e, 0x83, 0x73, 0x89, 0xe1, 0x1e, 0xeb, 0xd2, 0xfe, + 0x0f, 0x1a, 0xa0, 0xf8, 0xec, 0xcf, 0x40, 0xb4, 0x6b, 0xc5, 0x45, 0xbb, 0xc5, 0xc1, 0x3f, 0x59, + 0x8e, 0x6c, 0xf7, 0xe5, 0x29, 0x60, 0xd1, 0x4d, 0xc2, 0xe8, 0x31, 0xe2, 0xe2, 0xa2, 0xf7, 0x6c, + 0xe4, 0x21, 0x21, 0x4e, 0xee, 0x00, 0xf7, 0xec, 0xdd, 0x04, 0xac, 0xe8, 0x9e, 0x4d, 0xd6, 0xe0, + 0x14, 0x5e, 0xf4, 0x09, 0x0d, 0x66, 0x8c, 0x78, 0x74, 0x13, 0xb9, 0x32, 0x85, 0xbc, 0x67, 0x13, + 0x91, 0x52, 0xa2, 0xb1, 0x24, 0x2a, 0x7c, 0x9c, 0x42, 0x8b, 0xde, 0x0f, 0x93, 0x46, 0xc7, 0x5a, + 0xe8, 0x9a, 0x16, 0x15, 0x0d, 0x64, 0x68, 0x0a, 0x26, 0xae, 0x2e, 0xac, 0xd5, 0xc3, 0x72, 0x1c, + 0x6b, 0x15, 0x86, 0x11, 0x11, 0x0b, 0x39, 0x3c, 0x60, 0x18, 0x11, 0xb1, 0x86, 0x51, 0x18, 0x11, + 0xb1, 0x74, 0x2a, 0x12, 0xe4, 0x00, 0xb8, 0x96, 0xd9, 0x14, 0x28, 0xf9, 0xab, 0x5d, 0x21, 0x09, + 0xf9, 0x5e, 0xbd, 0x56, 0x15, 0x18, 0xd9, 0xed, 0x17, 0xfd, 0xc6, 0x0a, 0x06, 0xf4, 0x29, 0x0d, + 0xa6, 0x04, 0xed, 0x16, 0x38, 0xc7, 0xd8, 0x27, 0x7a, 0xb5, 0xe8, 0x7e, 0x49, 0xec, 0xc9, 0x79, + 0xac, 0x02, 0xe7, 0x74, 0x27, 0x74, 0xb0, 0x89, 0xd5, 0xe1, 0xf8, 0x38, 0xd0, 0xdf, 0xd5, 0xe0, + 0xa2, 0x4f, 0xbc, 0x5d, 0xab, 0x49, 0x16, 0x9a, 0x4d, 0xb7, 0xeb, 0xc8, 0xef, 0x50, 0x2e, 0x1e, + 0x75, 0xa1, 0x91, 0x01, 0x8f, 0x5b, 0x76, 0x67, 0xd5, 0xe0, 0x4c, 0xfc, 0x94, 0x2d, 0x3b, 0x77, + 0xdf, 0x08, 0x9a, 0xdb, 0x55, 0xa3, 0xb9, 0xcd, 0x74, 0xe5, 0xdc, 0x98, 0xbb, 0xe0, 0xbe, 0x7e, + 0x39, 0x0e, 0x8a, 0xbf, 0x3a, 0x27, 0x0a, 0x71, 0x12, 0x21, 0x72, 0xa1, 0xec, 0x89, 0x90, 0x51, + 0xb3, 0x50, 0x9c, 0xa5, 0x48, 0xc5, 0x9f, 0xe2, 0x8c, 0xbd, 0xfc, 0x85, 0x43, 0x24, 0xa8, 0x05, + 0x8f, 0x70, 0xd1, 0x66, 0xc1, 0x71, 0x9d, 0x5e, 0xdb, 0xed, 0xfa, 0x0b, 0xdd, 0x60, 0x9b, 0x38, + 0x81, 0xd4, 0x55, 0x4e, 0xb0, 0x6b, 0x94, 0xd9, 0xb3, 0x2f, 0xf5, 0x6b, 0x88, 0xfb, 0xc3, 0x41, + 0xaf, 0x40, 0x99, 0xec, 0x12, 0x27, 0x58, 0x5f, 0x5f, 0x66, 0x76, 0xe1, 0xc7, 0xe7, 0xf6, 0xd8, + 0x14, 0x96, 0x04, 0x0c, 0x1c, 0x42, 0x43, 0x3b, 0x30, 0x66, 0xf3, 0x98, 0x5f, 0xb3, 0x53, 0xc5, + 0x89, 0x62, 0x32, 0x7e, 0x18, 0x97, 0xff, 0xc4, 0x0f, 0x2c, 0x31, 0xa0, 0x0e, 0x5c, 0x37, 0xc9, + 0x96, 0xd1, 0xb5, 0x83, 0x55, 0x37, 0xa0, 0x2c, 0x6d, 0x2f, 0xd2, 0x4f, 0x49, 0x17, 0x80, 0x69, + 0xe6, 0x20, 0xfd, 0xd8, 0xc1, 0x7e, 0xe5, 0x7a, 0xed, 0x90, 0xb6, 0xf8, 0x50, 0x68, 0xa8, 0x07, + 0x8f, 0x8a, 0x36, 0x1b, 0x8e, 0x47, 0x8c, 0xe6, 0x36, 0x5d, 0xe5, 0x34, 0xd2, 0x73, 0x0c, 0xe9, + 0xff, 0x77, 0xb0, 0x5f, 0x79, 0xb4, 0x76, 0x78, 0x73, 0x7c, 0x14, 0x98, 0x73, 0x1f, 0x06, 0x94, + 0x3e, 0xe7, 0x87, 0x5d, 0xd8, 0x65, 0xf5, 0xc2, 0xfe, 0xcc, 0x08, 0x5c, 0xa5, 0xe4, 0x23, 0x62, + 0x53, 0x57, 0x0c, 0xc7, 0x68, 0x7d, 0x67, 0x5e, 0x6d, 0xbf, 0xa1, 0xc1, 0x43, 0xdb, 0xd9, 0x22, + 0xa4, 0x60, 0x94, 0x5f, 0x2c, 0x24, 0xea, 0xf7, 0x93, 0x4a, 0xf9, 0xc9, 0xea, 0xdb, 0x04, 0xe7, + 0x0d, 0x0a, 0x7d, 0x18, 0x66, 0x1c, 0xd7, 0x24, 0xd5, 0x7a, 0x0d, 0xaf, 0x18, 0xfe, 0x4e, 0x43, + 0xbe, 0xfc, 0x8d, 0x70, 0x9b, 0x93, 0xd5, 0x44, 0x1d, 0x4e, 0xb5, 0x46, 0xbb, 0x80, 0x3a, 0xae, + 0xb9, 0xb4, 0x6b, 0x35, 0xe5, 0x9b, 0x53, 0x71, 0x3b, 0x17, 0xf6, 0xb0, 0xb5, 0x96, 0x82, 0x86, + 0x33, 0x30, 0x30, 0x19, 0x98, 0x0e, 0x66, 0xc5, 0x75, 0xac, 0xc0, 0xf5, 0x98, 0x1f, 0xcc, 0x40, + 0xa2, 0x20, 0x93, 0x81, 0x57, 0x33, 0x21, 0xe2, 0x1c, 0x4c, 0xfa, 0xff, 0xd0, 0xe0, 0x1c, 0xdd, + 0x16, 0x6b, 0x9e, 0xbb, 0xd7, 0xfb, 0x4e, 0xdc, 0x90, 0x4f, 0x08, 0x23, 0x08, 0xae, 0xbb, 0xb9, + 0xa4, 0x18, 0x40, 0x8c, 0xb3, 0x31, 0x47, 0x36, 0x0f, 0xaa, 0xfa, 0x6a, 0x28, 0x5f, 0x7d, 0xa5, + 0x7f, 0xaa, 0xc4, 0x59, 0x4c, 0xa9, 0x3e, 0xfa, 0x8e, 0x3c, 0x87, 0xcf, 0xc0, 0x14, 0x2d, 0x5b, + 0x31, 0xf6, 0xd6, 0x6a, 0x2f, 0xb9, 0xb6, 0x74, 0xe5, 0x61, 0xe6, 0xb9, 0x77, 0xd5, 0x0a, 0x1c, + 0x6f, 0x87, 0x6e, 0xc2, 0x58, 0x87, 0x3b, 0x3c, 0x0b, 0xe1, 0xe6, 0x3a, 0xb7, 0x14, 0x60, 0x45, + 0x0f, 0xf6, 0x2b, 0xe7, 0xa3, 0xc7, 0x12, 0x51, 0x88, 0x65, 0x07, 0xfd, 0x93, 0x97, 0x80, 0x01, + 0xb7, 0x49, 0xf0, 0x9d, 0xb8, 0x26, 0x4f, 0xc1, 0x44, 0xb3, 0xd3, 0xad, 0xde, 0x6a, 0xbc, 0xd8, + 0x75, 0x99, 0xd0, 0xca, 0x62, 0x33, 0x52, 0x9e, 0xb3, 0xba, 0xb6, 0x21, 0x8b, 0xb1, 0xda, 0x86, + 0x52, 0x87, 0x66, 0xa7, 0x2b, 0xe8, 0xed, 0x9a, 0x6a, 0xa3, 0xca, 0xa8, 0x43, 0x75, 0x6d, 0x23, + 0x56, 0x87, 0x53, 0xad, 0xd1, 0x8f, 0xc3, 0x24, 0x11, 0x07, 0xf7, 0x8e, 0xe1, 0x99, 0x82, 0x2e, + 0xd4, 0x8b, 0x4e, 0x3e, 0x5c, 0x5a, 0x49, 0x0d, 0x38, 0xab, 0xbe, 0xa4, 0xa0, 0xc0, 0x31, 0x84, + 0xe8, 0x07, 0xe1, 0x8a, 0xfc, 0x4d, 0xbf, 0xb2, 0x6b, 0x26, 0x09, 0xc5, 0x08, 0xf7, 0x31, 0x5d, + 0xca, 0x6b, 0x84, 0xf3, 0xfb, 0xa3, 0x5f, 0xd7, 0xe0, 0x72, 0x58, 0x6b, 0x39, 0x56, 0xbb, 0xdb, + 0xc6, 0xa4, 0x69, 0x1b, 0x56, 0x5b, 0x30, 0xe8, 0x2f, 0x9f, 0xd8, 0x44, 0xe3, 0xe0, 0x39, 0xb1, + 0xca, 0xae, 0xc3, 0x39, 0x43, 0x42, 0x9f, 0xd3, 0xe0, 0xba, 0xac, 0x5a, 0xf3, 0x88, 0xef, 0x77, + 0x3d, 0x12, 0x39, 0x92, 0x89, 0x25, 0x19, 0x2b, 0x44, 0x3b, 0x19, 0xa7, 0xb2, 0x74, 0x08, 0x6c, + 0x7c, 0x28, 0x76, 0x75, 0xbb, 0x34, 0xdc, 0xad, 0x40, 0x70, 0xf4, 0xa7, 0xb5, 0x5d, 0x28, 0x0a, + 0x1c, 0x43, 0x88, 0xfe, 0xb9, 0x06, 0x0f, 0xa9, 0x05, 0xea, 0x6e, 0xe1, 0xac, 0xfc, 0x2b, 0x27, + 0x36, 0x98, 0x04, 0x7c, 0xae, 0x0b, 0xce, 0xa9, 0xc4, 0x79, 0xa3, 0xa2, 0x64, 0xbb, 0xcd, 0x36, + 0x26, 0x67, 0xf7, 0x47, 0x38, 0xd9, 0xe6, 0x7b, 0xd5, 0xc7, 0xb2, 0x8e, 0x0a, 0xba, 0x1d, 0xd7, + 0x5c, 0xb3, 0x4c, 0x7f, 0xd9, 0x6a, 0x5b, 0x01, 0x63, 0xca, 0x87, 0xf8, 0x72, 0xac, 0xb9, 0xe6, + 0x5a, 0xbd, 0xc6, 0xcb, 0x71, 0xac, 0x15, 0x73, 0xe9, 0xb6, 0xda, 0x46, 0x8b, 0xac, 0x75, 0x6d, + 0x7b, 0xcd, 0x73, 0x99, 0xc2, 0xb0, 0x46, 0x0c, 0xd3, 0xb6, 0x1c, 0x52, 0x90, 0x09, 0x67, 0xc7, + 0xad, 0x9e, 0x07, 0x14, 0xe7, 0xe3, 0x43, 0xf3, 0x00, 0x5b, 0x86, 0x65, 0x37, 0xee, 0x1b, 0x9d, + 0x7b, 0x0e, 0xe3, 0xd4, 0xcb, 0x5c, 0x84, 0xbd, 0x15, 0x96, 0x62, 0xa5, 0x05, 0xdd, 0x4d, 0x94, + 0x0a, 0x62, 0xc2, 0x43, 0x09, 0x31, 0xae, 0xfa, 0x24, 0x76, 0x93, 0x04, 0xc8, 0x97, 0xef, 0xae, + 0x82, 0x02, 0xc7, 0x10, 0xa2, 0x8f, 0x6b, 0x30, 0xed, 0xf7, 0xfc, 0x80, 0xb4, 0xc3, 0x31, 0x9c, + 0x3b, 0xe9, 0x31, 0x30, 0x55, 0x6a, 0x23, 0x86, 0x04, 0x27, 0x90, 0x22, 0x03, 0xae, 0xb2, 0x55, + 0xbd, 0x5d, 0xbd, 0x63, 0xb5, 0xb6, 0x43, 0x47, 0xed, 0x35, 0xe2, 0x35, 0x89, 0x13, 0xcc, 0xce, + 0xb0, 0x7d, 0xc3, 0x4c, 0x69, 0xea, 0xf9, 0xcd, 0x70, 0x3f, 0x18, 0xe8, 0x35, 0x98, 0x13, 0xd5, + 0xcb, 0xee, 0xfd, 0x14, 0x86, 0xf3, 0x0c, 0x03, 0x33, 0x1d, 0xaa, 0xe7, 0xb6, 0xc2, 0x7d, 0x20, + 0xa0, 0x3a, 0x5c, 0xf0, 0x89, 0xc7, 0x5e, 0x42, 0x48, 0xb8, 0x79, 0xfc, 0x59, 0x14, 0x59, 0x0d, + 0x37, 0xd2, 0xd5, 0x38, 0xab, 0x0f, 0x7a, 0x2e, 0x74, 0x4c, 0xea, 0xd1, 0x82, 0x17, 0xd7, 0x1a, + 0xb3, 0x17, 0xd8, 0xf8, 0x2e, 0x28, 0xfe, 0x46, 0xb2, 0x0a, 0x27, 0xdb, 0x52, 0xde, 0x42, 0x16, + 0x2d, 0x76, 0x3d, 0x3f, 0x98, 0xbd, 0xc8, 0x3a, 0x33, 0xde, 0x02, 0xab, 0x15, 0x38, 0xde, 0x0e, + 0xdd, 0x84, 0x69, 0x9f, 0x34, 0x9b, 0x6e, 0xbb, 0x23, 0xc4, 0xab, 0xd9, 0x4b, 0x6c, 0xf4, 0xfc, + 0x0b, 0xc6, 0x6a, 0x70, 0xa2, 0x25, 0xea, 0xc1, 0x85, 0x30, 0xb0, 0xce, 0xb2, 0xdb, 0x5a, 0x31, + 0xf6, 0x18, 0xab, 0x7e, 0xf9, 0xf0, 0x13, 0x38, 0x2f, 0x9f, 0xb6, 0xe7, 0x5f, 0xec, 0x1a, 0x4e, + 0x60, 0x05, 0x3d, 0xbe, 0x5c, 0xd5, 0x34, 0x38, 0x9c, 0x85, 0x03, 0x2d, 0xc3, 0xc5, 0x44, 0xf1, + 0x2d, 0xcb, 0x26, 0xfe, 0xec, 0x43, 0x6c, 0xda, 0x4c, 0x47, 0x52, 0xcd, 0xa8, 0xc7, 0x99, 0xbd, + 0xd0, 0x3d, 0xb8, 0xd4, 0xf1, 0xdc, 0x80, 0x34, 0x83, 0xbb, 0x94, 0x3d, 0xb1, 0xc5, 0x04, 0xfd, + 0xd9, 0x59, 0xb6, 0x16, 0xec, 0x15, 0x68, 0x2d, 0xab, 0x01, 0xce, 0xee, 0x87, 0x3e, 0xa3, 0xc1, + 0x35, 0x3f, 0xf0, 0x88, 0xd1, 0xb6, 0x9c, 0x56, 0xd5, 0x75, 0x1c, 0xc2, 0xc8, 0x64, 0xdd, 0x8c, + 0x8c, 0xee, 0xaf, 0x14, 0xa2, 0x53, 0xfa, 0xc1, 0x7e, 0xe5, 0x5a, 0xa3, 0x2f, 0x64, 0x7c, 0x08, + 0x66, 0xf4, 0x16, 0x40, 0x9b, 0xb4, 0x5d, 0xaf, 0x47, 0x29, 0xd2, 0xec, 0x5c, 0x71, 0x23, 0xa6, + 0x95, 0x10, 0x0a, 0x3f, 0xfe, 0xb1, 0xf7, 0xab, 0xa8, 0x12, 0x2b, 0xe8, 0xf4, 0xfd, 0x12, 0x5c, + 0xca, 0xbc, 0x78, 0xe8, 0x09, 0xe0, 0xed, 0x16, 0x64, 0x90, 0x5d, 0xf1, 0xe4, 0xc3, 0x4e, 0xc0, + 0x4a, 0xbc, 0x0a, 0x27, 0xdb, 0x52, 0xb6, 0x90, 0x9d, 0xd4, 0x5b, 0x8d, 0xa8, 0x7f, 0x29, 0x62, + 0x0b, 0xeb, 0x89, 0x3a, 0x9c, 0x6a, 0x8d, 0xaa, 0x70, 0x5e, 0x94, 0xd5, 0xa9, 0x64, 0xe5, 0xdf, + 0xf2, 0x88, 0x64, 0xb8, 0xa9, 0x8c, 0x72, 0xbe, 0x9e, 0xac, 0xc4, 0xe9, 0xf6, 0x74, 0x16, 0xf4, + 0x87, 0x3a, 0x8a, 0xe1, 0x68, 0x16, 0xab, 0xf1, 0x2a, 0x9c, 0x6c, 0x2b, 0x45, 0xdf, 0xd8, 0x10, + 0x46, 0xa2, 0x59, 0xac, 0x26, 0xea, 0x70, 0xaa, 0xb5, 0xfe, 0x1f, 0x87, 0xe1, 0xd1, 0x23, 0x30, + 0x6b, 0xa8, 0x9d, 0xbd, 0xdc, 0xc7, 0x3f, 0xb8, 0x47, 0xfb, 0x3c, 0x9d, 0x9c, 0xcf, 0x73, 0x7c, + 0x7c, 0x47, 0xfd, 0x9c, 0x7e, 0xde, 0xe7, 0x3c, 0x3e, 0xca, 0xa3, 0x7f, 0xfe, 0x76, 0xf6, 0xe7, + 0x2f, 0xb8, 0xaa, 0x87, 0x6e, 0x97, 0x4e, 0xce, 0x76, 0x29, 0xb8, 0xaa, 0x47, 0xd8, 0x5e, 0x7f, + 0x32, 0x0c, 0x8f, 0x1d, 0x85, 0x71, 0x2c, 0xb8, 0xbf, 0x32, 0x48, 0xde, 0xa9, 0xee, 0xaf, 0x3c, + 0xbf, 0xa6, 0x53, 0xdc, 0x5f, 0x19, 0x28, 0x4f, 0x7b, 0x7f, 0xe5, 0xad, 0xea, 0x69, 0xed, 0xaf, + 0xbc, 0x55, 0x3d, 0xc2, 0xfe, 0xfa, 0x8b, 0xe4, 0xfd, 0x10, 0xf2, 0x8b, 0x75, 0x18, 0x6a, 0x76, + 0xba, 0x05, 0x89, 0x14, 0x33, 0x10, 0xaa, 0xae, 0x6d, 0x60, 0x0a, 0x03, 0x61, 0x18, 0xe5, 0xfb, + 0xa7, 0x20, 0x09, 0x62, 0x1e, 0x32, 0x7c, 0x4b, 0x62, 0x01, 0x89, 0x2e, 0x15, 0xe9, 0x6c, 0x93, + 0x36, 0xf1, 0x0c, 0xbb, 0x11, 0xb8, 0x9e, 0xd1, 0x2a, 0x4a, 0x6d, 0xd8, 0x52, 0x2d, 0x25, 0x60, + 0xe1, 0x14, 0x74, 0xba, 0x20, 0x1d, 0xcb, 0x2c, 0x48, 0x5f, 0xd8, 0x82, 0xac, 0xd5, 0x6b, 0x98, + 0xc2, 0xd0, 0xff, 0xe1, 0x38, 0x28, 0x81, 0xeb, 0xd0, 0x0f, 0xc2, 0x15, 0xc3, 0xb6, 0xdd, 0xfb, + 0x6b, 0x9e, 0xb5, 0x6b, 0xd9, 0xa4, 0x45, 0xcc, 0x90, 0x99, 0xf2, 0x85, 0x19, 0x19, 0x13, 0x98, + 0x16, 0xf2, 0x1a, 0xe1, 0xfc, 0xfe, 0xe8, 0x6d, 0x0d, 0xce, 0x37, 0x93, 0xc1, 0xc2, 0x06, 0x31, + 0x34, 0x49, 0x45, 0x1e, 0xe3, 0xe7, 0x29, 0x55, 0x8c, 0xd3, 0x68, 0xd1, 0x4f, 0x68, 0x5c, 0x29, + 0x17, 0x3e, 0x93, 0x88, 0x6f, 0x76, 0xfb, 0x84, 0x1e, 0x14, 0x23, 0xed, 0x5e, 0xf4, 0x76, 0x15, + 0x47, 0x88, 0x3e, 0xa7, 0xc1, 0xa5, 0x9d, 0xac, 0xb7, 0x04, 0xf1, 0x65, 0xef, 0x15, 0x1d, 0x4a, + 0xce, 0xe3, 0x04, 0x67, 0x67, 0x33, 0x1b, 0xe0, 0xec, 0x81, 0x84, 0xab, 0x14, 0xaa, 0x57, 0x05, + 0x11, 0x28, 0xbc, 0x4a, 0x09, 0x3d, 0x6d, 0xb4, 0x4a, 0x61, 0x05, 0x8e, 0x23, 0x44, 0x1d, 0x18, + 0xdf, 0x91, 0x3a, 0x6d, 0xa1, 0xc7, 0xaa, 0x16, 0xc5, 0xae, 0x28, 0xc6, 0xb9, 0x21, 0x4d, 0x58, + 0x88, 0x23, 0x24, 0x68, 0x1b, 0xc6, 0x76, 0x38, 0x21, 0x12, 0xfa, 0xa7, 0x85, 0x81, 0xe5, 0x63, + 0xae, 0x06, 0x11, 0x45, 0x58, 0x82, 0x57, 0xad, 0x68, 0xcb, 0x87, 0x38, 0x77, 0x7c, 0x46, 0x83, + 0x4b, 0xbb, 0xc4, 0x0b, 0xac, 0x66, 0xf2, 0x25, 0x67, 0xbc, 0xb8, 0x0c, 0xff, 0x52, 0x16, 0x40, + 0xbe, 0x4d, 0x32, 0xab, 0x70, 0xf6, 0x10, 0xa8, 0x44, 0xcf, 0x15, 0xf2, 0x8d, 0xc0, 0x08, 0xac, + 0xe6, 0xba, 0xbb, 0x43, 0x9c, 0x28, 0xbf, 0x0a, 0xd3, 0x04, 0x95, 0xb9, 0x44, 0xbf, 0x94, 0xdf, + 0x0c, 0xf7, 0x83, 0xa1, 0x7f, 0x4b, 0x83, 0x94, 0x5a, 0x19, 0xfd, 0xbc, 0x06, 0x93, 0x5b, 0xc4, + 0x08, 0xba, 0x1e, 0xb9, 0x6d, 0x04, 0xa1, 0xc7, 0xf9, 0x4b, 0x27, 0xa1, 0xcd, 0x9e, 0xbf, 0xa5, + 0x00, 0xe6, 0x06, 0x01, 0x61, 0xd0, 0x4b, 0xb5, 0x0a, 0xc7, 0x46, 0x30, 0xf7, 0x02, 0x9c, 0x4f, + 0x75, 0x3c, 0xd6, 0x0b, 0xe3, 0xbf, 0xd2, 0x20, 0x2b, 0x25, 0x10, 0x7a, 0x0d, 0x46, 0x0c, 0xd3, + 0x0c, 0x63, 0xfc, 0x3f, 0x5b, 0xcc, 0x36, 0xc5, 0x54, 0x1d, 0xfb, 0xd9, 0x4f, 0xcc, 0xc1, 0xa2, + 0x5b, 0x80, 0x8c, 0xd8, 0x0b, 0xf7, 0x4a, 0xe4, 0xae, 0xca, 0x5e, 0xc2, 0x16, 0x52, 0xb5, 0x38, + 0xa3, 0x87, 0xfe, 0x33, 0x1a, 0xa0, 0x74, 0x98, 0x54, 0xe4, 0x41, 0x59, 0x6c, 0x65, 0xf9, 0x95, + 0x6a, 0x05, 0x5d, 0x4a, 0x62, 0xfe, 0x51, 0x91, 0xa1, 0x93, 0x28, 0xf0, 0x71, 0x88, 0x47, 0xff, + 0x4b, 0x0d, 0xa2, 0x38, 0xe0, 0xe8, 0x03, 0x30, 0x61, 0x12, 0xbf, 0xe9, 0x59, 0x9d, 0x20, 0xf2, + 0xa6, 0x0a, 0xbd, 0x32, 0x6a, 0x51, 0x15, 0x56, 0xdb, 0x21, 0x1d, 0x46, 0x03, 0xc3, 0xdf, 0xa9, + 0xd7, 0x84, 0x50, 0xc9, 0x58, 0x80, 0x75, 0x56, 0x82, 0x45, 0x4d, 0x14, 0x32, 0x6c, 0xe8, 0x08, + 0x21, 0xc3, 0xd0, 0xd6, 0x09, 0xc4, 0x47, 0x43, 0x87, 0xc7, 0x46, 0xd3, 0x7f, 0xad, 0x04, 0xe7, + 0x68, 0x93, 0x15, 0xc3, 0x72, 0x02, 0xe2, 0x30, 0xdf, 0x81, 0x82, 0x8b, 0xd0, 0x82, 0xa9, 0x20, + 0xe6, 0x1b, 0x77, 0x7c, 0xcf, 0xb2, 0xd0, 0x9a, 0x26, 0xee, 0x11, 0x17, 0x87, 0x8b, 0x9e, 0x95, + 0xce, 0x1b, 0x5c, 0xfc, 0x7e, 0x54, 0x6e, 0x55, 0xe6, 0x91, 0xf1, 0x40, 0x38, 0x1a, 0x86, 0xc1, + 0xe3, 0x63, 0x7e, 0x1a, 0xcf, 0xc0, 0x94, 0x30, 0xa2, 0xe6, 0xb1, 0xdf, 0x84, 0xf8, 0xcd, 0x6e, + 0x98, 0x5b, 0x6a, 0x05, 0x8e, 0xb7, 0xd3, 0xbf, 0x52, 0x82, 0x78, 0x88, 0xfa, 0xa2, 0xab, 0x94, + 0x0e, 0x7c, 0x57, 0x3a, 0xb5, 0xc0, 0x77, 0xef, 0x63, 0xf9, 0x5d, 0x78, 0x22, 0x30, 0xfe, 0x44, + 0xae, 0x66, 0x65, 0xe1, 0x69, 0xbc, 0xc2, 0x16, 0xd1, 0xb2, 0x0e, 0x1f, 0x7b, 0x59, 0x3f, 0x20, + 0xac, 0x2b, 0x47, 0x62, 0xe1, 0x07, 0xa5, 0x75, 0xe5, 0xf9, 0x58, 0x47, 0xc5, 0xd5, 0xe4, 0x8b, + 0x1a, 0x8c, 0x89, 0xd8, 0xc0, 0x47, 0x70, 0x65, 0xda, 0x82, 0x11, 0x26, 0xf2, 0x0c, 0xc2, 0x0d, + 0x36, 0xb6, 0x5d, 0x37, 0x88, 0x45, 0x48, 0x66, 0xbe, 0x03, 0xec, 0x5f, 0xcc, 0xc1, 0x33, 0x03, + 0x3b, 0xaf, 0xb9, 0x6d, 0x05, 0xa4, 0x19, 0xc8, 0xb8, 0xab, 0xd2, 0xc0, 0x4e, 0x29, 0xc7, 0xb1, + 0x56, 0xfa, 0x67, 0x87, 0xe1, 0xba, 0x00, 0x9c, 0x62, 0x91, 0x42, 0x02, 0xd7, 0x83, 0x0b, 0xe2, + 0xdb, 0xd6, 0x3c, 0xc3, 0x0a, 0x4d, 0x0f, 0x8a, 0x89, 0xbe, 0x22, 0xd9, 0x5d, 0x0a, 0x1c, 0xce, + 0xc2, 0xc1, 0x23, 0x88, 0xb2, 0xe2, 0x3b, 0xc4, 0xb0, 0x83, 0x6d, 0x89, 0xbb, 0x34, 0x48, 0x04, + 0xd1, 0x34, 0x3c, 0x9c, 0x89, 0x85, 0x99, 0x3e, 0x88, 0x8a, 0xaa, 0x47, 0x0c, 0xd5, 0xee, 0x62, + 0x00, 0xf3, 0xff, 0x95, 0x4c, 0x88, 0x38, 0x07, 0x13, 0xd3, 0x21, 0x1a, 0x7b, 0x4c, 0x25, 0x81, + 0x49, 0xe0, 0x59, 0x2c, 0xd2, 0x75, 0xa8, 0x45, 0x5f, 0x89, 0x57, 0xe1, 0x64, 0x5b, 0x74, 0x13, + 0xa6, 0x99, 0x29, 0x49, 0x14, 0xea, 0x6a, 0x24, 0x8a, 0xa6, 0xb0, 0x1a, 0xab, 0xc1, 0x89, 0x96, + 0xfa, 0x47, 0x4b, 0x30, 0xa9, 0x6e, 0xbb, 0x23, 0xf8, 0x35, 0x75, 0x95, 0xcb, 0x70, 0x00, 0x9f, + 0x1b, 0x15, 0xeb, 0x11, 0xee, 0x43, 0xf4, 0x0a, 0x4c, 0x77, 0x19, 0x05, 0x91, 0xe1, 0x3a, 0xc4, + 0xfe, 0xff, 0x1e, 0x3a, 0xcb, 0x8d, 0x58, 0xcd, 0x83, 0xfd, 0xca, 0x9c, 0x0a, 0x3e, 0x5e, 0x8b, + 0x13, 0x70, 0xf4, 0x4f, 0x0e, 0xc1, 0x85, 0x8c, 0xd1, 0x30, 0x93, 0x03, 0x92, 0xb8, 0xb2, 0x07, + 0x31, 0x39, 0x48, 0x5d, 0xff, 0xa1, 0xc9, 0x41, 0xb2, 0x06, 0xa7, 0xf0, 0xa2, 0x97, 0x60, 0xa8, + 0xe9, 0x59, 0x62, 0xc1, 0x9f, 0x29, 0x24, 0x70, 0xe2, 0xfa, 0xe2, 0x84, 0xc0, 0x38, 0x54, 0xc5, + 0x75, 0x4c, 0x01, 0xd2, 0x8b, 0x47, 0x25, 0x17, 0x92, 0x0b, 0x60, 0x17, 0x8f, 0x4a, 0x55, 0x7c, + 0x1c, 0x6f, 0x87, 0x5e, 0x81, 0x59, 0x21, 0x09, 0x48, 0x1f, 0x69, 0xd7, 0xf1, 0x03, 0x7a, 0xb2, + 0x03, 0x41, 0xa8, 0x1f, 0x3e, 0xd8, 0xaf, 0xcc, 0xde, 0xcd, 0x69, 0x83, 0x73, 0x7b, 0xeb, 0x7f, + 0x3e, 0x04, 0x13, 0x4a, 0x64, 0x76, 0xb4, 0x32, 0x88, 0x0a, 0x25, 0x9a, 0xb1, 0x54, 0xa3, 0xac, + 0xc0, 0x50, 0xab, 0xd3, 0x2d, 0xa8, 0x43, 0x09, 0xc1, 0xdd, 0xa6, 0xe0, 0x5a, 0x9d, 0x2e, 0x7a, + 0x29, 0xd4, 0xca, 0x14, 0xd3, 0x9b, 0x84, 0x1e, 0x2d, 0x09, 0xcd, 0x8c, 0x3c, 0x88, 0xc3, 0xb9, + 0x07, 0xb1, 0x0d, 0x63, 0xbe, 0x50, 0xd9, 0x8c, 0x14, 0x8f, 0x4a, 0xa3, 0xac, 0xb4, 0x50, 0xd1, + 0x70, 0x79, 0x4f, 0x6a, 0x70, 0x24, 0x0e, 0xca, 0x4b, 0x76, 0x99, 0x9f, 0x2c, 0x13, 0x64, 0xcb, + 0x9c, 0x97, 0xdc, 0x60, 0x25, 0x58, 0xd4, 0xa4, 0xae, 0xa8, 0xb1, 0x23, 0x5d, 0x51, 0x7f, 0xbb, + 0x04, 0x28, 0x3d, 0x0c, 0xf4, 0x28, 0x8c, 0x30, 0x3f, 0x7b, 0x41, 0x8b, 0x42, 0xce, 0x9f, 0x79, + 0x5a, 0x63, 0x5e, 0x87, 0x1a, 0x22, 0xc6, 0x46, 0xb1, 0xcf, 0xc9, 0x6c, 0x76, 0x04, 0x3e, 0x25, + 0x20, 0xc7, 0xf5, 0x98, 0x53, 0x46, 0xd6, 0x9d, 0xbf, 0x01, 0x63, 0x6d, 0xcb, 0x61, 0x0f, 0x87, + 0xc5, 0x34, 0x59, 0xdc, 0xb4, 0x80, 0x83, 0xc0, 0x12, 0x96, 0xfe, 0x27, 0x25, 0xba, 0xf5, 0x23, + 0x8e, 0xb7, 0x07, 0x60, 0x74, 0x03, 0x97, 0x13, 0x30, 0x71, 0x02, 0xea, 0xc5, 0xbe, 0x72, 0x08, + 0x74, 0x21, 0x04, 0xc8, 0x9f, 0xbc, 0xa2, 0xdf, 0x58, 0x41, 0x46, 0x51, 0x07, 0x56, 0x9b, 0xbc, + 0x6c, 0x39, 0xa6, 0x7b, 0x5f, 0x2c, 0xef, 0xa0, 0xa8, 0xd7, 0x43, 0x80, 0x1c, 0x75, 0xf4, 0x1b, + 0x2b, 0xc8, 0x28, 0x69, 0x61, 0x82, 0xb3, 0xc3, 0x52, 0x65, 0x88, 0xb1, 0xb9, 0xb6, 0x2d, 0x6f, + 0xe5, 0x32, 0x27, 0x2d, 0xd5, 0x9c, 0x36, 0x38, 0xb7, 0xb7, 0xfe, 0xeb, 0x1a, 0x5c, 0xca, 0x5c, + 0x0a, 0x74, 0x1b, 0xce, 0x47, 0x66, 0x5e, 0x2a, 0xb1, 0x2f, 0x47, 0x29, 0x5a, 0xee, 0x26, 0x1b, + 0xe0, 0x74, 0x1f, 0x9e, 0x07, 0x38, 0x75, 0x99, 0x08, 0x1b, 0x31, 0x95, 0x35, 0x52, 0xab, 0x71, + 0x56, 0x1f, 0xfd, 0x07, 0x63, 0x83, 0x8d, 0x16, 0x8b, 0x9e, 0x8c, 0x4d, 0xd2, 0x0a, 0x9d, 0xe2, + 0xc2, 0x93, 0xb1, 0x48, 0x0b, 0x31, 0xaf, 0x43, 0x8f, 0xa8, 0xae, 0xa6, 0x21, 0xdd, 0x92, 0xee, + 0xa6, 0xfa, 0x0f, 0xc3, 0x43, 0x39, 0x2f, 0xa1, 0xa8, 0x06, 0x93, 0xfe, 0x7d, 0xa3, 0xb3, 0x48, + 0xb6, 0x8d, 0x5d, 0x4b, 0x84, 0x2e, 0xe0, 0xe6, 0x7b, 0x93, 0x0d, 0xa5, 0xfc, 0x41, 0xe2, 0x37, + 0x8e, 0xf5, 0xd2, 0x03, 0x00, 0x61, 0xe6, 0x69, 0x39, 0x2d, 0xb4, 0x05, 0x65, 0x43, 0xa4, 0xa1, + 0x15, 0xfb, 0xf8, 0xfb, 0x0b, 0x29, 0x01, 0x04, 0x0c, 0x6e, 0x7f, 0x2e, 0x7f, 0xe1, 0x10, 0xb6, + 0xfe, 0x4f, 0x34, 0xb8, 0x9c, 0xed, 0xac, 0x7e, 0x04, 0xd6, 0xa6, 0x0d, 0x13, 0x5e, 0xd4, 0x4d, + 0x6c, 0xfa, 0xef, 0x53, 0xa3, 0x95, 0x2a, 0xe1, 0xb9, 0x28, 0xdb, 0x57, 0xf5, 0x5c, 0x5f, 0x7e, + 0xf9, 0x64, 0x00, 0xd3, 0x50, 0xe4, 0x52, 0x46, 0x82, 0x55, 0xf8, 0xfa, 0xef, 0x96, 0x00, 0x56, + 0x49, 0x70, 0xdf, 0xf5, 0x76, 0xe8, 0x12, 0x3d, 0x1c, 0x93, 0x34, 0xca, 0xdf, 0xbe, 0x80, 0x09, + 0x0f, 0xc3, 0x70, 0xc7, 0x35, 0x7d, 0x41, 0xfe, 0xd8, 0x40, 0x98, 0x05, 0x14, 0x2b, 0x45, 0x15, + 0x18, 0x61, 0x0f, 0x1f, 0xe2, 0x66, 0x62, 0x72, 0x0a, 0xe5, 0x32, 0x7d, 0xcc, 0xcb, 0x79, 0x72, + 0x31, 0xe6, 0xd3, 0xe1, 0x0b, 0xc1, 0x4b, 0x24, 0x17, 0xe3, 0x65, 0x38, 0xac, 0x45, 0x37, 0x01, + 0xac, 0xce, 0x2d, 0xa3, 0x6d, 0xd9, 0x94, 0xe7, 0x1d, 0x0d, 0x73, 0xd9, 0x42, 0x7d, 0x4d, 0x96, + 0x3e, 0xd8, 0xaf, 0x94, 0xc5, 0xaf, 0x1e, 0x56, 0x5a, 0xeb, 0x7f, 0x35, 0x04, 0xb1, 0xbc, 0xcf, + 0x91, 0x8e, 0x49, 0x3b, 0x1d, 0x1d, 0xd3, 0x2b, 0x30, 0x6b, 0xbb, 0x86, 0xb9, 0x68, 0xd8, 0xf4, + 0x34, 0x7a, 0x0d, 0xfe, 0x19, 0x0d, 0xa7, 0x15, 0x26, 0xf7, 0x65, 0x54, 0x69, 0x39, 0xa7, 0x0d, + 0xce, 0xed, 0x8d, 0x82, 0x30, 0xdb, 0xf4, 0x50, 0x71, 0xf7, 0x47, 0x75, 0x2d, 0xe6, 0x55, 0x4f, + 0xa0, 0x90, 0xc1, 0x48, 0x24, 0xa4, 0xfe, 0x98, 0x06, 0x97, 0xc8, 0x1e, 0xf7, 0x84, 0x5b, 0xf7, + 0x8c, 0xad, 0x2d, 0xab, 0x29, 0xec, 0x52, 0xf9, 0x87, 0x5d, 0x3e, 0xd8, 0xaf, 0x5c, 0x5a, 0xca, + 0x6a, 0xf0, 0x60, 0xbf, 0x72, 0x23, 0xd3, 0x31, 0x91, 0x7d, 0xd6, 0xcc, 0x2e, 0x38, 0x1b, 0xd5, + 0xdc, 0xb3, 0x30, 0x71, 0x0c, 0x6f, 0x86, 0x98, 0xfb, 0xe1, 0xef, 0x95, 0x60, 0x92, 0xee, 0xbb, + 0x65, 0xb7, 0x69, 0xd8, 0xb5, 0xd5, 0xc6, 0x31, 0xb2, 0xa5, 0xa3, 0x65, 0xb8, 0xb8, 0xe5, 0x7a, + 0x4d, 0xb2, 0x5e, 0x5d, 0x5b, 0x77, 0xc5, 0x93, 0x4b, 0x6d, 0xb5, 0x21, 0xa8, 0x34, 0x13, 0x22, + 0x6f, 0x65, 0xd4, 0xe3, 0xcc, 0x5e, 0xe8, 0x1e, 0x5c, 0x8a, 0xca, 0x37, 0x3a, 0xdc, 0x90, 0x85, + 0x82, 0x1b, 0x8a, 0x0c, 0x71, 0x6e, 0x65, 0x35, 0xc0, 0xd9, 0xfd, 0x90, 0x01, 0x57, 0x45, 0x4c, + 0x92, 0x5b, 0xae, 0x77, 0xdf, 0xf0, 0xcc, 0x38, 0xd8, 0xe1, 0x48, 0x25, 0x5d, 0xcb, 0x6f, 0x86, + 0xfb, 0xc1, 0xd0, 0x7f, 0x69, 0x14, 0x14, 0x77, 0xb5, 0x63, 0xa4, 0xa3, 0xfa, 0x55, 0x0d, 0x2e, + 0x36, 0x6d, 0x8b, 0x38, 0x41, 0xc2, 0x37, 0x89, 0x93, 0xa3, 0x8d, 0x42, 0x7e, 0x74, 0x1d, 0xe2, + 0xd4, 0x6b, 0xc2, 0xee, 0xa7, 0x9a, 0x01, 0x5c, 0xd8, 0x46, 0x65, 0xd4, 0xe0, 0xcc, 0xc1, 0xb0, + 0xf9, 0xb0, 0xf2, 0x7a, 0x4d, 0x0d, 0xa6, 0x50, 0x15, 0x65, 0x38, 0xac, 0x45, 0x4f, 0xc1, 0x44, + 0xcb, 0x73, 0xbb, 0x1d, 0xbf, 0xca, 0x8c, 0x8d, 0xf9, 0xde, 0x67, 0x7c, 0xe1, 0xed, 0xa8, 0x18, + 0xab, 0x6d, 0x28, 0x97, 0xcb, 0x7f, 0xae, 0x79, 0x64, 0xcb, 0xda, 0x13, 0x44, 0x8e, 0x71, 0xb9, + 0xb7, 0x95, 0x72, 0x1c, 0x6b, 0xc5, 0xfc, 0xa1, 0x7d, 0xbf, 0x4b, 0xbc, 0x0d, 0xbc, 0x2c, 0xf2, + 0x38, 0x70, 0x7f, 0x68, 0x59, 0x88, 0xa3, 0x7a, 0xf4, 0x0b, 0x1a, 0x4c, 0x7b, 0xe4, 0x8d, 0xae, + 0xe5, 0x11, 0x93, 0x21, 0xf5, 0x85, 0xcf, 0x20, 0x1e, 0xcc, 0x4f, 0x71, 0x1e, 0xc7, 0x80, 0x72, + 0x0a, 0x11, 0xaa, 0xed, 0xe2, 0x95, 0x38, 0x31, 0x02, 0xba, 0x54, 0xbe, 0xd5, 0x72, 0x2c, 0xa7, + 0xb5, 0x60, 0xb7, 0xfc, 0xd9, 0x32, 0x23, 0x7a, 0x9c, 0x85, 0x8e, 0x8a, 0xb1, 0xda, 0x86, 0x8a, + 0x97, 0x5d, 0x9f, 0x9e, 0xfb, 0x36, 0xe1, 0xeb, 0x3b, 0x1e, 0xe9, 0x35, 0x37, 0xd4, 0x0a, 0x1c, + 0x6f, 0x87, 0x6e, 0xc2, 0xb4, 0x2c, 0x10, 0xab, 0x0c, 0x3c, 0x8a, 0x1e, 0x13, 0xf7, 0x63, 0x35, + 0x38, 0xd1, 0x72, 0x6e, 0x01, 0x2e, 0x64, 0x4c, 0xf3, 0x58, 0xc4, 0xe5, 0xff, 0x6a, 0x70, 0x89, + 0xe7, 0xd2, 0x94, 0x19, 0x20, 0x64, 0xb8, 0xbc, 0xec, 0xc8, 0x73, 0xda, 0xa9, 0x46, 0x9e, 0xfb, + 0x36, 0x44, 0xd8, 0xd3, 0xff, 0x51, 0x09, 0xde, 0x7d, 0xe8, 0xb9, 0x44, 0x7f, 0x5f, 0x83, 0x09, + 0xb2, 0x17, 0x78, 0x46, 0xe8, 0x91, 0x41, 0x37, 0xe9, 0xd6, 0xa9, 0x10, 0x81, 0xf9, 0xa5, 0x08, + 0x11, 0xdf, 0xb8, 0x21, 0x8b, 0xa5, 0xd4, 0x60, 0x75, 0x3c, 0x54, 0x68, 0xe5, 0x51, 0x26, 0xd5, + 0x07, 0x10, 0x91, 0xe2, 0x58, 0xd4, 0xcc, 0x3d, 0x0f, 0x33, 0x49, 0xc8, 0xc7, 0xda, 0x2b, 0xbf, + 0x53, 0x82, 0xb1, 0x35, 0xcf, 0xa5, 0xdc, 0xdf, 0x19, 0x84, 0x55, 0x30, 0x62, 0x91, 0xd7, 0x0b, + 0x79, 0x4a, 0x8b, 0xc1, 0xe6, 0x66, 0x7d, 0xb0, 0x12, 0x59, 0x1f, 0x16, 0x06, 0x41, 0xd2, 0x3f, + 0xcd, 0xc3, 0x97, 0x34, 0x98, 0x10, 0x2d, 0xcf, 0x20, 0x78, 0xc0, 0x8f, 0xc4, 0x83, 0x07, 0x7c, + 0x68, 0x80, 0x79, 0xe5, 0x44, 0x0d, 0xf8, 0x8c, 0x06, 0x53, 0xa2, 0xc5, 0x0a, 0x69, 0x6f, 0x12, + 0x0f, 0xdd, 0x82, 0x31, 0xbf, 0xcb, 0x3e, 0xa4, 0x98, 0xd0, 0x55, 0x55, 0x9e, 0xf0, 0x36, 0x8d, + 0x26, 0xcb, 0xd3, 0xcd, 0x9b, 0x28, 0xb9, 0x14, 0x78, 0x01, 0x96, 0x9d, 0xa9, 0xf4, 0xe2, 0xb9, + 0x76, 0x2a, 0x9c, 0x14, 0x76, 0x6d, 0x82, 0x59, 0x0d, 0x65, 0xcc, 0xe9, 0x5f, 0xa9, 0xc2, 0x63, + 0x8c, 0x39, 0xad, 0xf6, 0x31, 0x2f, 0xd7, 0x3f, 0x3e, 0x1c, 0x2e, 0x36, 0x8b, 0x77, 0x7e, 0x07, + 0xc6, 0x9b, 0x1e, 0x31, 0x02, 0x62, 0x2e, 0xf6, 0x8e, 0x32, 0x38, 0x76, 0x5d, 0x55, 0x65, 0x0f, + 0x1c, 0x75, 0xa6, 0x37, 0x83, 0xfa, 0xe6, 0x54, 0x8a, 0x2e, 0xd1, 0xdc, 0xf7, 0xa6, 0xef, 0x87, + 0x11, 0xf7, 0xbe, 0x13, 0x9a, 0xae, 0xf4, 0x45, 0xcc, 0xa6, 0x72, 0x8f, 0xb6, 0xc6, 0xbc, 0x93, + 0x1a, 0x4e, 0x6d, 0xb8, 0x4f, 0x38, 0x35, 0x1b, 0xc6, 0xda, 0xec, 0x33, 0x0c, 0x14, 0x5a, 0x3f, + 0xf6, 0x41, 0xd5, 0xe4, 0x4b, 0x0c, 0x32, 0x96, 0x28, 0xe8, 0x0d, 0x4f, 0x6f, 0x21, 0xbf, 0x63, + 0x34, 0x89, 0x7a, 0xc3, 0xaf, 0xca, 0x42, 0x1c, 0xd5, 0xa3, 0x5e, 0x3c, 0x4e, 0xdf, 0x58, 0x71, + 0x0d, 0x9e, 0x18, 0x9e, 0x12, 0x9a, 0x8f, 0x2f, 0x7d, 0x6e, 0xac, 0xbe, 0x9f, 0x1d, 0x0e, 0x37, + 0xa9, 0xc8, 0x94, 0x91, 0x9d, 0x5b, 0x5a, 0x2b, 0x94, 0x5b, 0xfa, 0x7b, 0x65, 0x3c, 0xd9, 0x52, + 0x2c, 0x51, 0x58, 0x18, 0x4f, 0x76, 0x52, 0xa0, 0x8e, 0xc5, 0x90, 0xed, 0xc2, 0x05, 0x3f, 0x30, + 0x6c, 0xd2, 0xb0, 0x84, 0xa6, 0xc3, 0x0f, 0x8c, 0x76, 0xa7, 0x40, 0x40, 0x57, 0xee, 0xbf, 0x90, + 0x06, 0x85, 0xb3, 0xe0, 0xa3, 0x9f, 0xd2, 0x60, 0x96, 0x95, 0x2f, 0x74, 0x03, 0x97, 0x47, 0x1e, + 0x8f, 0x90, 0x1f, 0xff, 0x61, 0x9b, 0x09, 0x80, 0x8d, 0x1c, 0x78, 0x38, 0x17, 0x13, 0x7a, 0x0b, + 0x2e, 0xd1, 0x1b, 0x78, 0xa1, 0x19, 0x58, 0xbb, 0x56, 0xd0, 0x8b, 0x86, 0x70, 0xfc, 0x28, 0xae, + 0x4c, 0xd8, 0x58, 0xce, 0x02, 0x86, 0xb3, 0x71, 0xe8, 0x7f, 0xa1, 0x01, 0x4a, 0x6f, 0x21, 0x64, + 0x43, 0xd9, 0x94, 0x0e, 0x05, 0xda, 0x89, 0x04, 0x91, 0x0c, 0x29, 0x73, 0xe8, 0x87, 0x10, 0x62, + 0x40, 0x2e, 0x8c, 0xdf, 0xdf, 0xb6, 0x02, 0x62, 0x5b, 0x7e, 0x70, 0x42, 0x31, 0x2b, 0xc3, 0x00, + 0x6e, 0x2f, 0x4b, 0xc0, 0x38, 0xc2, 0xa1, 0xff, 0xdc, 0x30, 0x94, 0xc3, 0x10, 0xda, 0x87, 0xbf, + 0xf1, 0x76, 0x01, 0x35, 0x95, 0x34, 0x64, 0x83, 0x68, 0x60, 0x18, 0x13, 0x56, 0x4d, 0x01, 0xc3, + 0x19, 0x08, 0xd0, 0x5b, 0x70, 0xd1, 0x72, 0xb6, 0x3c, 0xc3, 0x0f, 0xbc, 0x2e, 0xd3, 0x95, 0x0f, + 0x92, 0xcd, 0x8b, 0xc9, 0x50, 0xf5, 0x0c, 0x70, 0x38, 0x13, 0x09, 0x22, 0x30, 0xc6, 0x33, 0x05, + 0xc8, 0x70, 0x82, 0x85, 0xf2, 0xd2, 0xf2, 0x0c, 0x04, 0x11, 0xd5, 0xe4, 0xbf, 0x7d, 0x2c, 0x61, + 0xf3, 0x50, 0x1f, 0xfc, 0x7f, 0xf9, 0x1e, 0x2d, 0xf6, 0x7d, 0xb5, 0x38, 0xbe, 0x28, 0xc5, 0x31, + 0x0f, 0xf5, 0x11, 0x2f, 0xc4, 0x49, 0x84, 0xfa, 0x1f, 0x6a, 0x30, 0xc2, 0x1d, 0x75, 0x4f, 0x9f, + 0x83, 0xfb, 0xe1, 0x18, 0x07, 0x57, 0x28, 0x21, 0x11, 0x1b, 0x6a, 0x6e, 0xaa, 0x9c, 0x2f, 0x6a, + 0x30, 0xce, 0x5a, 0x9c, 0x01, 0x4b, 0xf5, 0x5a, 0x9c, 0xa5, 0x7a, 0xb6, 0xf0, 0x6c, 0x72, 0x18, + 0xaa, 0x3f, 0x1c, 0x12, 0x73, 0x61, 0x1c, 0x4b, 0x1d, 0x2e, 0x08, 0x6b, 0xd8, 0x65, 0x6b, 0x8b, + 0xd0, 0x2d, 0x5e, 0x33, 0x7a, 0xfc, 0x81, 0x68, 0x44, 0xf8, 0x62, 0xa5, 0xab, 0x71, 0x56, 0x1f, + 0xf4, 0x7b, 0x1a, 0xe5, 0x0d, 0x02, 0xcf, 0x6a, 0x0e, 0x94, 0x7f, 0x26, 0x1c, 0xdb, 0xfc, 0x0a, + 0x07, 0xc6, 0x25, 0x93, 0x8d, 0x88, 0x49, 0x60, 0xa5, 0x0f, 0xf6, 0x2b, 0x95, 0x0c, 0x95, 0x59, + 0x94, 0x8b, 0xc2, 0x0f, 0x3e, 0xf6, 0xa7, 0x7d, 0x9b, 0x30, 0x35, 0xb5, 0x1c, 0x31, 0xba, 0x03, + 0x23, 0x7e, 0xd3, 0xed, 0x90, 0xe3, 0x64, 0xd4, 0x0a, 0x17, 0xb8, 0x41, 0x7b, 0x62, 0x0e, 0x60, + 0xee, 0x75, 0x98, 0x54, 0x47, 0x9e, 0x21, 0xf9, 0xd4, 0x54, 0xc9, 0xe7, 0xd8, 0x2f, 0x5d, 0xaa, + 0xa4, 0xf4, 0xfb, 0x25, 0x18, 0xe5, 0x79, 0xa9, 0x8f, 0xa0, 0x8c, 0xb7, 0x64, 0xd0, 0xff, 0x01, + 0xd2, 0xed, 0xab, 0x11, 0x32, 0x5f, 0x75, 0x1d, 0x65, 0x0d, 0xd4, 0xb8, 0xff, 0xc8, 0x09, 0xe3, + 0xa6, 0x0e, 0x15, 0xcf, 0xfa, 0xc3, 0x27, 0x76, 0xda, 0x91, 0x52, 0xff, 0x58, 0x83, 0xc9, 0x58, + 0x20, 0xda, 0x36, 0x0c, 0x79, 0x61, 0x3e, 0xb8, 0xa2, 0x6f, 0x15, 0xd2, 0xa6, 0xea, 0x6a, 0x9f, + 0x46, 0x98, 0xe2, 0x09, 0x63, 0xd6, 0x96, 0x4e, 0x28, 0x66, 0xad, 0xfe, 0x29, 0x0d, 0x2e, 0xcb, + 0x09, 0xc5, 0x23, 0x32, 0xa1, 0xc7, 0xa1, 0x6c, 0x74, 0x2c, 0xa6, 0x52, 0x53, 0x95, 0x92, 0x0b, + 0x6b, 0x75, 0x56, 0x86, 0xc3, 0x5a, 0xf4, 0x3e, 0x28, 0xcb, 0x8d, 0x27, 0xd8, 0xce, 0x90, 0x66, + 0x85, 0xaf, 0x2f, 0x61, 0x0b, 0xf4, 0x1e, 0x25, 0x2f, 0xc3, 0x48, 0xc4, 0x27, 0x84, 0x88, 0xf9, + 0x2b, 0xb0, 0xfe, 0x7d, 0x30, 0xde, 0x68, 0xdc, 0x59, 0x68, 0x36, 0x89, 0xef, 0x1f, 0x43, 0xb9, + 0xac, 0x7f, 0x62, 0x08, 0xa6, 0x44, 0x68, 0x39, 0xcb, 0x31, 0x2d, 0xa7, 0x75, 0x06, 0x77, 0xca, + 0x3a, 0x8c, 0x73, 0x6d, 0xc6, 0x21, 0xb9, 0xfb, 0x1a, 0xb2, 0x51, 0x32, 0x80, 0x73, 0x58, 0x81, + 0x23, 0x40, 0xe8, 0x2e, 0x8c, 0xbe, 0x41, 0xe9, 0x9b, 0x3c, 0x17, 0x47, 0x22, 0x33, 0xe1, 0xa6, + 0x67, 0xa4, 0xd1, 0xc7, 0x02, 0x04, 0xf2, 0x99, 0xd1, 0x1f, 0x63, 0xb8, 0x06, 0x89, 0x5d, 0x11, + 0x5b, 0xd9, 0x30, 0x2b, 0xcb, 0xa4, 0xb0, 0x1d, 0x64, 0xbf, 0x70, 0x88, 0x88, 0x45, 0x9f, 0x8f, + 0xf5, 0x78, 0x87, 0x44, 0x9f, 0x8f, 0x8d, 0x39, 0xe7, 0x6a, 0x7c, 0x16, 0x2e, 0x65, 0x2e, 0xc6, + 0xe1, 0xec, 0xac, 0xfe, 0x9b, 0x25, 0x18, 0x6e, 0x10, 0x62, 0x9e, 0xc1, 0xce, 0x7c, 0x2d, 0xc6, + 0xed, 0x7c, 0x7f, 0xe1, 0xf8, 0xf7, 0x79, 0xca, 0xaa, 0xad, 0x84, 0xb2, 0xea, 0xf9, 0xc2, 0x18, + 0xfa, 0x6b, 0xaa, 0x7e, 0xb9, 0x04, 0x40, 0x9b, 0x2d, 0x1a, 0xcd, 0x1d, 0x4e, 0x71, 0xc2, 0xdd, + 0xac, 0xc5, 0x29, 0x4e, 0x7a, 0x1b, 0x9e, 0xe5, 0xe3, 0xad, 0x0e, 0xa3, 0x1e, 0xbb, 0x89, 0xc4, + 0xbb, 0x07, 0xf0, 0x84, 0xd2, 0xb4, 0x04, 0x8b, 0x9a, 0x38, 0xb5, 0x18, 0x3e, 0x21, 0x6a, 0xa1, + 0xef, 0x01, 0xcb, 0x00, 0x5a, 0x5b, 0x6d, 0xa0, 0xb6, 0xb2, 0x3a, 0xa5, 0xe2, 0xbc, 0xbc, 0x00, + 0x77, 0xe8, 0x29, 0xff, 0x84, 0x06, 0xe7, 0x12, 0x6d, 0x8f, 0x20, 0xd3, 0x9d, 0x0a, 0xcd, 0xd4, + 0xff, 0x40, 0x83, 0x32, 0x1d, 0xcb, 0x19, 0x10, 0x9a, 0xff, 0x3f, 0x4e, 0x68, 0x3e, 0x58, 0x74, + 0x89, 0x73, 0xe8, 0xcb, 0x9f, 0x95, 0x80, 0x25, 0x9a, 0x10, 0x26, 0x0a, 0xca, 0xcb, 0xbf, 0x96, + 0xf3, 0xf2, 0x7f, 0x5d, 0x18, 0x0e, 0x24, 0x74, 0x94, 0x8a, 0xf1, 0xc0, 0xfb, 0x14, 0xdb, 0x80, + 0xa1, 0xf8, 0xb1, 0xc9, 0xb0, 0x0f, 0x78, 0x13, 0xa6, 0xfc, 0x6d, 0xd7, 0x0d, 0xc2, 0xc8, 0x06, + 0xc3, 0xc5, 0xf5, 0xd1, 0xcc, 0xc2, 0x5a, 0x4e, 0x85, 0x3f, 0x40, 0x35, 0x54, 0xd8, 0x38, 0x8e, + 0x0a, 0xcd, 0x03, 0x6c, 0xda, 0x6e, 0x73, 0xa7, 0x5a, 0xaf, 0x61, 0x69, 0x51, 0xcb, 0x8c, 0x96, + 0x16, 0xc3, 0x52, 0xac, 0xb4, 0x18, 0xc8, 0x96, 0xe1, 0x9b, 0x1a, 0x5f, 0xe9, 0x63, 0x6c, 0xde, + 0x33, 0xa4, 0x28, 0xef, 0x4d, 0x50, 0x14, 0x25, 0x4d, 0x7d, 0x8c, 0xaa, 0x54, 0x24, 0xc3, 0x3e, + 0x1c, 0xe9, 0x9f, 0x63, 0xe9, 0xb5, 0x7e, 0x47, 0x4c, 0x33, 0xcc, 0x55, 0xd2, 0x81, 0x29, 0x5b, + 0x4d, 0x99, 0x2a, 0xce, 0x48, 0xa1, 0x6c, 0xab, 0xa1, 0x8b, 0x46, 0xac, 0x18, 0xc7, 0x11, 0xa0, + 0x67, 0x60, 0x4a, 0xce, 0x8e, 0x2e, 0xa6, 0xb4, 0xdc, 0x60, 0xdb, 0x61, 0x4d, 0xad, 0xc0, 0xf1, + 0x76, 0xfa, 0xdf, 0x1b, 0x86, 0x47, 0xf8, 0xd8, 0x99, 0xc6, 0xa0, 0x46, 0x3a, 0xc4, 0x31, 0x89, + 0xd3, 0xec, 0x31, 0x9e, 0xd5, 0x74, 0x5b, 0xe8, 0x27, 0x35, 0x28, 0x13, 0xc7, 0xec, 0xb8, 0x96, + 0x23, 0x55, 0xfd, 0x1f, 0x29, 0x9e, 0xed, 0x25, 0x07, 0xcb, 0x92, 0x40, 0x20, 0xe2, 0x6f, 0x8a, + 0x5f, 0x38, 0x44, 0x8c, 0xee, 0xc3, 0x48, 0xc7, 0x73, 0x37, 0xa5, 0xb0, 0xf6, 0xd2, 0x89, 0x8f, + 0x60, 0x8d, 0x42, 0xe7, 0x1f, 0x97, 0xfd, 0x8b, 0x39, 0x3e, 0xf4, 0x16, 0x8c, 0xde, 0x27, 0xc4, + 0x0c, 0x15, 0xfa, 0x2f, 0x9f, 0x38, 0xe6, 0x97, 0x19, 0x78, 0x7e, 0xa1, 0xf1, 0xff, 0xb1, 0x40, + 0x49, 0x91, 0xb3, 0x51, 0x48, 0xce, 0xf2, 0xe5, 0xd3, 0x99, 0xb6, 0x40, 0xce, 0xff, 0xc7, 0x02, + 0xa5, 0x8e, 0xe1, 0x3d, 0x47, 0xfa, 0x66, 0xc7, 0x91, 0x21, 0xee, 0x81, 0x7e, 0xf8, 0x70, 0x8e, + 0x03, 0x70, 0x0d, 0x1e, 0x3d, 0xc2, 0xfc, 0x4e, 0x12, 0x22, 0xff, 0x44, 0xc7, 0x81, 0xf8, 0x75, + 0x0d, 0x1e, 0x53, 0x40, 0x2e, 0xed, 0x51, 0xc9, 0xab, 0x6a, 0x74, 0x8c, 0xa6, 0x15, 0xf4, 0xb8, + 0x47, 0xfd, 0xb1, 0xd2, 0x83, 0x7c, 0x42, 0x83, 0x31, 0x6e, 0xec, 0x24, 0xaf, 0xc8, 0xd7, 0x06, + 0xdc, 0x17, 0xb9, 0x43, 0x92, 0x71, 0xa7, 0xe5, 0xdc, 0xf8, 0x6f, 0x1f, 0x4b, 0xfc, 0xfa, 0xbf, + 0x19, 0x81, 0xef, 0x3a, 0x3a, 0x20, 0xf4, 0x4d, 0x2d, 0x9d, 0x8b, 0xb8, 0x7d, 0xba, 0x83, 0x0f, + 0x35, 0x4d, 0x42, 0x79, 0xf1, 0x72, 0x2a, 0xb7, 0xcf, 0x09, 0x29, 0xb1, 0x94, 0xc4, 0xc7, 0xff, + 0x54, 0x83, 0x49, 0xca, 0x3a, 0x84, 0x17, 0x00, 0xff, 0x4c, 0x9d, 0x53, 0x9e, 0xe9, 0xaa, 0x82, + 0x32, 0xe1, 0x1d, 0xab, 0x56, 0xe1, 0xd8, 0xd8, 0xd0, 0x46, 0xfc, 0xc5, 0x8e, 0x8b, 0xc4, 0xd7, + 0xb2, 0x38, 0xc6, 0xe3, 0x64, 0xce, 0x9a, 0xb3, 0x61, 0x3a, 0xbe, 0xf2, 0xa7, 0xa9, 0x82, 0x9b, + 0x7b, 0x01, 0xce, 0xa7, 0x66, 0x7f, 0x2c, 0x05, 0xd4, 0x4f, 0x0e, 0x43, 0x45, 0x59, 0xea, 0x98, + 0xb9, 0xa3, 0xe4, 0xdb, 0x3e, 0xab, 0xc1, 0x84, 0xe1, 0x38, 0xc2, 0x64, 0x46, 0xee, 0x5f, 0x73, + 0xc0, 0xaf, 0x9a, 0x85, 0x6a, 0x7e, 0x21, 0x42, 0x93, 0xb0, 0x09, 0x51, 0x6a, 0xb0, 0x3a, 0x9a, + 0x3e, 0x86, 0x8f, 0xa5, 0x33, 0x33, 0x7c, 0x44, 0x3f, 0x26, 0x99, 0x25, 0xbe, 0x8d, 0x5e, 0x39, + 0x85, 0xb5, 0x61, 0xbc, 0x57, 0xb6, 0xc6, 0x73, 0xee, 0x79, 0x98, 0x49, 0xae, 0xdc, 0xb1, 0x76, + 0xc1, 0x6f, 0x0e, 0xc5, 0x48, 0x75, 0x2e, 0xfa, 0x23, 0xe8, 0x79, 0x3f, 0x97, 0xd8, 0x2c, 0x9c, + 0x04, 0x58, 0xa7, 0xb5, 0x20, 0x27, 0xbb, 0x63, 0x86, 0xce, 0xce, 0x54, 0x76, 0xd0, 0x4f, 0xb6, + 0x08, 0x97, 0x94, 0xf5, 0x51, 0x32, 0x15, 0x3e, 0x01, 0x63, 0xbb, 0x96, 0x6f, 0xc9, 0x58, 0x47, + 0xca, 0x0d, 0xfd, 0x12, 0x2f, 0xc6, 0xb2, 0x5e, 0x5f, 0x8e, 0x9d, 0xfd, 0x75, 0xb7, 0xe3, 0xda, + 0x6e, 0xab, 0xb7, 0x70, 0xdf, 0xf0, 0x08, 0x76, 0xbb, 0x81, 0x80, 0x76, 0xd4, 0xfb, 0x7e, 0x05, + 0xae, 0x2b, 0xd0, 0x32, 0x83, 0x36, 0x1c, 0x07, 0xdc, 0x97, 0xc6, 0xa4, 0x78, 0x21, 0xbc, 0x5a, + 0x7f, 0x5b, 0x83, 0x2b, 0x24, 0xef, 0x2a, 0x10, 0x2c, 0xfa, 0x2b, 0xa7, 0x75, 0xd5, 0x88, 0x58, + 0xb8, 0x79, 0xd5, 0x38, 0x7f, 0x64, 0xa8, 0x17, 0xcb, 0xd7, 0x59, 0x1a, 0x44, 0x57, 0x9a, 0xf1, + 0xbd, 0xfb, 0x65, 0xeb, 0x44, 0xbf, 0xa2, 0xc1, 0x45, 0x3b, 0xe3, 0xe8, 0x08, 0xbe, 0xba, 0x71, + 0x0a, 0xa7, 0x92, 0xbf, 0x4b, 0x67, 0xd5, 0xe0, 0xcc, 0xa1, 0xa0, 0x5f, 0xcb, 0x8d, 0x26, 0xc2, + 0x9f, 0x8d, 0xd7, 0x07, 0x1c, 0xe4, 0x49, 0x05, 0x16, 0xf9, 0xb4, 0x06, 0xc8, 0x4c, 0xb1, 0xc5, + 0xc2, 0xd2, 0xe7, 0xc5, 0x13, 0x97, 0x50, 0xb8, 0x61, 0x41, 0xba, 0x1c, 0x67, 0x0c, 0x82, 0x7d, + 0xe7, 0x20, 0xe3, 0xf8, 0x8a, 0x30, 0xc1, 0x83, 0x7e, 0xe7, 0x2c, 0xca, 0xc0, 0xbf, 0x73, 0x56, + 0x0d, 0xce, 0x1c, 0x8a, 0xfe, 0xa9, 0x31, 0xae, 0x49, 0x63, 0x2f, 0xbf, 0x9b, 0x30, 0xba, 0xc9, + 0x34, 0xaf, 0xe2, 0xdc, 0x16, 0x56, 0xf3, 0x72, 0xfd, 0x2d, 0x17, 0xe4, 0xf8, 0xff, 0x58, 0x40, + 0x46, 0xaf, 0xc2, 0x90, 0xe9, 0xf8, 0xe2, 0xc0, 0x7d, 0x68, 0x00, 0x85, 0x65, 0xe4, 0x6e, 0x55, + 0x5b, 0x6d, 0x60, 0x0a, 0x14, 0x39, 0x50, 0x76, 0x84, 0xf2, 0x49, 0x08, 0xc8, 0x85, 0x53, 0xc1, + 0x86, 0x4a, 0xac, 0x50, 0x75, 0x26, 0x4b, 0x70, 0x88, 0x83, 0xe2, 0x4b, 0xbc, 0xb6, 0x14, 0xc6, + 0x17, 0xaa, 0x5f, 0xfb, 0x69, 0xb8, 0xd7, 0x54, 0x65, 0xea, 0xc8, 0xd1, 0x95, 0xa9, 0x53, 0xb9, + 0x8f, 0x4f, 0x04, 0x46, 0x03, 0xc3, 0x72, 0x02, 0xae, 0x4c, 0x2b, 0x68, 0x28, 0x41, 0xc7, 0xbf, + 0x4e, 0xa1, 0x44, 0x5a, 0x2b, 0xf6, 0xd3, 0xc7, 0x02, 0x38, 0xdd, 0x58, 0xbb, 0x2c, 0x21, 0xbb, + 0x38, 0x98, 0x85, 0x37, 0x16, 0x4f, 0xeb, 0xce, 0x37, 0x16, 0xff, 0x1f, 0x0b, 0xc8, 0xe8, 0x75, + 0x28, 0xfb, 0xd2, 0xb4, 0xa5, 0x3c, 0x68, 0x1e, 0x60, 0x61, 0xd7, 0x22, 0x7c, 0xaa, 0x84, 0x41, + 0x4b, 0x08, 0x1f, 0x6d, 0xc2, 0x98, 0xc5, 0xbd, 0x80, 0x44, 0x70, 0xa5, 0x0f, 0x0d, 0x90, 0x06, + 0x8f, 0x0b, 0xd6, 0xe2, 0x07, 0x96, 0x80, 0xf5, 0x2f, 0x01, 0x7f, 0x0b, 0x11, 0xd6, 0x83, 0x5b, + 0x50, 0x96, 0xe0, 0x06, 0xf1, 0xed, 0x93, 0x89, 0x47, 0xf9, 0xd4, 0xc2, 0x34, 0xa4, 0x21, 0x6c, + 0x54, 0xcd, 0xf2, 0xd1, 0x8c, 0xd2, 0x31, 0x1c, 0xcd, 0x3f, 0xf3, 0x0d, 0x96, 0x29, 0x50, 0x46, + 0x4a, 0x18, 0x2a, 0xbe, 0xb5, 0xc2, 0x28, 0x0a, 0xb1, 0x0c, 0x81, 0x32, 0xd0, 0x82, 0x82, 0x24, + 0xc7, 0xba, 0x72, 0xb8, 0x90, 0x75, 0xe5, 0x73, 0x70, 0x4e, 0x58, 0xb3, 0xd4, 0x59, 0x52, 0xfe, + 0xa0, 0x27, 0xdc, 0x4f, 0x98, 0x9d, 0x53, 0x35, 0x5e, 0x85, 0x93, 0x6d, 0xd1, 0xef, 0x6b, 0x50, + 0x6e, 0x0a, 0x96, 0x43, 0x9c, 0xab, 0xe5, 0xc1, 0x1e, 0xcc, 0xe6, 0x25, 0x07, 0xc3, 0x99, 0xe9, + 0x97, 0x24, 0x8d, 0x90, 0xc5, 0x27, 0xa4, 0x34, 0x08, 0x47, 0x8d, 0xfe, 0x88, 0xca, 0x0b, 0x36, + 0x4b, 0x86, 0xca, 0xbc, 0xd1, 0xb9, 0x5f, 0xcc, 0xbd, 0x01, 0x67, 0xb1, 0x10, 0x41, 0xe4, 0x13, + 0xf9, 0x48, 0x28, 0x15, 0x44, 0x35, 0x27, 0x34, 0x17, 0x75, 0xf8, 0xe8, 0x1f, 0x6b, 0xf0, 0x18, + 0x77, 0x46, 0xaa, 0x52, 0x2e, 0x82, 0xe5, 0x94, 0x27, 0x51, 0x12, 0xfb, 0xc8, 0x16, 0xb4, 0x7c, + 0x6c, 0x5b, 0xd0, 0xc7, 0x0f, 0xf6, 0x2b, 0x8f, 0x55, 0x8f, 0x00, 0x1b, 0x1f, 0x69, 0x04, 0xe8, + 0x4d, 0x98, 0xb2, 0xd5, 0x88, 0x39, 0x82, 0xc0, 0x14, 0x7a, 0x8e, 0x89, 0x85, 0xde, 0xe1, 0xfa, + 0xf7, 0x58, 0x11, 0x8e, 0xa3, 0x9a, 0xdb, 0x81, 0xa9, 0xd8, 0x46, 0x3b, 0x55, 0x25, 0x89, 0x03, + 0x33, 0xc9, 0xfd, 0x70, 0xaa, 0x76, 0x51, 0x77, 0x61, 0x3c, 0xbc, 0xa8, 0xd0, 0x23, 0x0a, 0xa2, + 0x88, 0x91, 0xb8, 0x4b, 0x7a, 0x1c, 0x6b, 0x25, 0x26, 0xe0, 0x71, 0x45, 0xfc, 0x4b, 0xb4, 0x40, + 0x00, 0xd4, 0xbf, 0x2c, 0x5e, 0x59, 0xd6, 0x49, 0xbb, 0x63, 0x1b, 0x01, 0x79, 0xe7, 0xbf, 0xf1, + 0xeb, 0xff, 0x55, 0xe3, 0xf7, 0x0d, 0xbf, 0x56, 0x91, 0x01, 0x13, 0x6d, 0x1e, 0x16, 0x9a, 0x05, + 0x60, 0xd0, 0x8a, 0x87, 0x7e, 0x58, 0x89, 0xc0, 0x60, 0x15, 0x26, 0xba, 0x0f, 0xe3, 0x92, 0xb5, + 0x91, 0x1a, 0x89, 0x5b, 0x83, 0x31, 0x06, 0x21, 0x17, 0x15, 0x3e, 0x1f, 0xcb, 0x12, 0x1f, 0x47, + 0xb8, 0x74, 0x03, 0x50, 0xba, 0x0f, 0x95, 0x82, 0xa5, 0xbb, 0x83, 0x16, 0x8f, 0xb5, 0x98, 0x72, + 0x79, 0x38, 0x34, 0xfd, 0xb9, 0xfe, 0xf9, 0x12, 0x64, 0xa6, 0xe2, 0x43, 0x3a, 0x8c, 0x72, 0x0f, + 0x44, 0x99, 0x59, 0x9d, 0xb2, 0x32, 0xdc, 0x3d, 0x11, 0x8b, 0x1a, 0x74, 0x8f, 0x6b, 0x42, 0x1c, + 0x93, 0xc5, 0x38, 0x8c, 0xa8, 0x84, 0xea, 0xeb, 0xba, 0x94, 0xd5, 0x00, 0x67, 0xf7, 0x43, 0xbb, + 0x80, 0xda, 0xc6, 0x5e, 0x12, 0xda, 0x00, 0x49, 0xaf, 0x56, 0x52, 0xd0, 0x70, 0x06, 0x06, 0x7a, + 0x91, 0x1a, 0xcd, 0x26, 0xe9, 0x04, 0xc4, 0xe4, 0x53, 0x94, 0x8f, 0xbc, 0xec, 0x22, 0x5d, 0x88, + 0x57, 0xe1, 0x64, 0x5b, 0xfd, 0x1b, 0xc3, 0x70, 0x25, 0xbe, 0x88, 0xf4, 0x84, 0x4a, 0x27, 0xc1, + 0x17, 0xa4, 0x0f, 0x04, 0x5f, 0xc8, 0x27, 0x92, 0x3e, 0x10, 0xb3, 0x55, 0x8f, 0xb0, 0x2b, 0xd9, + 0xb0, 0x7d, 0xd9, 0x29, 0xe6, 0x0f, 0xf1, 0x6d, 0xf0, 0xf8, 0xcb, 0xf1, 0x6c, 0x1c, 0x3a, 0x55, + 0xcf, 0xc6, 0xb7, 0x35, 0x98, 0x8b, 0x17, 0xdf, 0xb2, 0x1c, 0xcb, 0xdf, 0x16, 0x91, 0xfa, 0x8e, + 0xef, 0x82, 0xc1, 0x12, 0x63, 0x2c, 0xe7, 0x42, 0xc4, 0x7d, 0xb0, 0xa1, 0x4f, 0x6a, 0x70, 0x35, + 0xb1, 0x2e, 0xb1, 0xb8, 0x81, 0xc7, 0xf7, 0xc6, 0x60, 0x3e, 0xda, 0xcb, 0xf9, 0x20, 0x71, 0x3f, + 0x7c, 0xfa, 0xbf, 0x28, 0xc1, 0x08, 0xb3, 0x51, 0x78, 0x67, 0x18, 0xa5, 0xb3, 0xa1, 0xe6, 0xda, + 0x69, 0xb5, 0x12, 0x76, 0x5a, 0x2f, 0x14, 0x47, 0xd1, 0xdf, 0x50, 0xeb, 0x23, 0x70, 0x99, 0x35, + 0x5b, 0x30, 0x99, 0x5a, 0xc6, 0x27, 0xe6, 0x82, 0x69, 0xb2, 0x08, 0x11, 0x87, 0xeb, 0xa2, 0x1f, + 0x81, 0xa1, 0xae, 0x67, 0x27, 0x63, 0xa6, 0x6c, 0xe0, 0x65, 0x4c, 0xcb, 0xf5, 0xb7, 0x35, 0x98, + 0x61, 0xb0, 0x95, 0xe3, 0x8b, 0x76, 0xa1, 0xec, 0x89, 0x23, 0x2c, 0xbe, 0xcd, 0x72, 0xe1, 0xa9, + 0x65, 0x90, 0x05, 0x91, 0x2c, 0x54, 0xfc, 0xc2, 0x21, 0x2e, 0xfd, 0x6b, 0xa3, 0x30, 0x9b, 0xd7, + 0x09, 0xfd, 0x82, 0x06, 0x97, 0x9b, 0x11, 0x37, 0xb7, 0xd0, 0x0d, 0xb6, 0x5d, 0xcf, 0x0a, 0x2c, + 0x61, 0xbc, 0x53, 0x50, 0xcc, 0xad, 0x2e, 0x84, 0xa3, 0x62, 0x71, 0xee, 0xaa, 0x99, 0x18, 0x70, + 0x0e, 0x66, 0xf4, 0x16, 0xc0, 0x4e, 0x14, 0x58, 0xb7, 0x54, 0x3c, 0x85, 0x07, 0x9b, 0xb6, 0x12, + 0x7c, 0x57, 0x0e, 0x8a, 0x69, 0x36, 0x95, 0x72, 0x05, 0x1d, 0x45, 0xee, 0xfb, 0xdb, 0x77, 0x49, + 0xaf, 0x63, 0x58, 0xd2, 0x46, 0xa1, 0x38, 0xf2, 0x46, 0xe3, 0x8e, 0x00, 0x15, 0x47, 0xae, 0x94, + 0x2b, 0xe8, 0xd0, 0xc7, 0x34, 0x98, 0x72, 0x55, 0x77, 0xf2, 0x41, 0x2c, 0x60, 0x33, 0xfd, 0xd2, + 0x39, 0x0b, 0x1d, 0xaf, 0x8a, 0xa3, 0xa4, 0x7b, 0xe2, 0xbc, 0x9f, 0xbc, 0xb2, 0x04, 0x51, 0x5b, + 0x19, 0x3c, 0xd3, 0xaf, 0x72, 0xff, 0x71, 0x71, 0x3c, 0x5d, 0x9d, 0x46, 0xcf, 0x06, 0x45, 0x82, + 0xa6, 0xb9, 0xe4, 0x34, 0xbd, 0x1e, 0xf3, 0x0c, 0xa5, 0x83, 0x1a, 0x2d, 0x3e, 0xa8, 0xa5, 0xf5, + 0x6a, 0x2d, 0x06, 0x2c, 0x3e, 0xa8, 0x74, 0x75, 0x1a, 0xbd, 0xfe, 0xd1, 0x12, 0x3c, 0x94, 0xb3, + 0xc7, 0xfe, 0xda, 0xf8, 0xff, 0x7f, 0x51, 0x83, 0x71, 0xb6, 0x06, 0xef, 0x10, 0x27, 0x22, 0x36, + 0xd6, 0x1c, 0x4b, 0xc6, 0x3f, 0xd0, 0xe0, 0x7c, 0x2a, 0xc2, 0xea, 0x91, 0x5c, 0x50, 0xce, 0xcc, + 0xc8, 0xee, 0x3d, 0x51, 0x34, 0xf5, 0xa1, 0xc8, 0xa1, 0x39, 0x19, 0x49, 0x5d, 0x7f, 0x19, 0xa6, + 0x62, 0x86, 0x8c, 0x61, 0xac, 0x26, 0x2d, 0x33, 0x56, 0x93, 0x1a, 0x8a, 0xa9, 0xd4, 0x2f, 0x14, + 0x53, 0xb4, 0xe5, 0xd3, 0x94, 0xed, 0xaf, 0xcd, 0x96, 0xff, 0xfa, 0x39, 0xb1, 0xe5, 0xd9, 0x8b, + 0xc3, 0x6b, 0x30, 0xca, 0x02, 0x3f, 0xc9, 0x1b, 0xf3, 0x66, 0xe1, 0x80, 0x52, 0x3e, 0x97, 0xa4, + 0xf8, 0xff, 0x58, 0x40, 0x45, 0x35, 0x98, 0x69, 0xda, 0x6e, 0xd7, 0x14, 0xc9, 0x4f, 0x57, 0x23, + 0xa1, 0x2d, 0x8c, 0x0b, 0x5a, 0x4d, 0xd4, 0xe3, 0x54, 0x0f, 0x84, 0xf9, 0x9b, 0x05, 0xbf, 0xcf, + 0x0a, 0xc5, 0x05, 0xad, 0xad, 0x36, 0x78, 0x5e, 0x8d, 0xf0, 0xad, 0xe2, 0x0d, 0x00, 0x22, 0x37, + 0xaf, 0xf4, 0xfd, 0x7c, 0xae, 0x58, 0xc4, 0xd3, 0xf0, 0x08, 0x48, 0xe6, 0x33, 0x2c, 0xf2, 0xb1, + 0x82, 0x04, 0x79, 0x30, 0xb1, 0x6d, 0x6d, 0x12, 0xcf, 0xe1, 0x7c, 0xd4, 0x48, 0x71, 0x16, 0xf1, + 0x4e, 0x04, 0x86, 0xcb, 0xf8, 0x4a, 0x01, 0x56, 0x91, 0x20, 0x8f, 0xb3, 0x23, 0x5c, 0x3d, 0x2c, + 0xae, 0x9c, 0xe7, 0x07, 0x8b, 0xbe, 0x1f, 0xcd, 0x33, 0x2a, 0xc3, 0x0a, 0x16, 0xe4, 0x00, 0x38, + 0x61, 0xc4, 0xb7, 0x41, 0x5e, 0x1c, 0xa2, 0xb8, 0x71, 0x9c, 0xf1, 0x88, 0x7e, 0x63, 0x05, 0x03, + 0x5d, 0xd7, 0x76, 0x14, 0x42, 0x50, 0xe8, 0x10, 0x5f, 0x18, 0x30, 0x8c, 0xa3, 0xd0, 0x9d, 0x44, + 0x05, 0x58, 0x45, 0x42, 0xe7, 0xd8, 0x0e, 0x03, 0xff, 0x09, 0x1d, 0x61, 0xa1, 0x39, 0x46, 0xe1, + 0x03, 0x45, 0x72, 0xb6, 0xf0, 0x37, 0x56, 0x30, 0xa0, 0xd7, 0x95, 0xa7, 0x2e, 0x28, 0xae, 0x81, + 0x3a, 0xd2, 0x33, 0xd7, 0x07, 0x22, 0x45, 0xcc, 0x04, 0x3b, 0xab, 0x57, 0x15, 0x25, 0x0c, 0x0b, + 0x88, 0x48, 0xe9, 0x47, 0x4a, 0x29, 0x13, 0x99, 0x50, 0x4f, 0xf6, 0x35, 0xa1, 0xae, 0x52, 0x0e, + 0x4d, 0x71, 0xe9, 0x61, 0x44, 0x61, 0x2a, 0x7a, 0xe1, 0x68, 0x24, 0x2b, 0x71, 0xba, 0x3d, 0x27, + 0xfa, 0xc4, 0x64, 0x7d, 0xa7, 0x55, 0xa2, 0xcf, 0xcb, 0x70, 0x58, 0x8b, 0x76, 0x61, 0xd2, 0x57, + 0xec, 0xb1, 0x45, 0x46, 0xcd, 0x01, 0xde, 0xa6, 0x84, 0x2d, 0x36, 0x0b, 0x85, 0xa5, 0x96, 0xe0, + 0x18, 0x1e, 0xf4, 0x96, 0x6a, 0xdc, 0x38, 0x53, 0xdc, 0xf9, 0x36, 0x3b, 0xd0, 0x63, 0xa4, 0x61, + 0x0b, 0xed, 0xea, 0x54, 0x9b, 0xc3, 0x6e, 0xdc, 0x8c, 0xef, 0xfc, 0x89, 0x04, 0x1b, 0x38, 0xd4, + 0xcc, 0x8f, 0x7e, 0x5a, 0xb2, 0xd7, 0x71, 0xfd, 0xae, 0x47, 0x58, 0x00, 0x5b, 0xf6, 0x79, 0x50, + 0xf4, 0x69, 0x97, 0x92, 0x95, 0x38, 0xdd, 0x1e, 0xfd, 0xb4, 0x06, 0x33, 0x3c, 0x21, 0x29, 0xbd, + 0xba, 0x5c, 0x87, 0x38, 0x81, 0xcf, 0x32, 0x6e, 0x16, 0xf4, 0x8f, 0x6d, 0x24, 0x60, 0xf1, 0x2c, + 0x4e, 0xc9, 0x52, 0x9c, 0xc2, 0x49, 0x77, 0x8e, 0x1a, 0xae, 0x80, 0x25, 0xee, 0x2c, 0xb8, 0x73, + 0xd4, 0x50, 0x08, 0x7c, 0xe7, 0xa8, 0x25, 0x38, 0x86, 0x07, 0x3d, 0x03, 0x53, 0xbe, 0xcc, 0xae, + 0xc3, 0x56, 0xf0, 0x52, 0x14, 0x4f, 0xac, 0xa1, 0x56, 0xe0, 0x78, 0x3b, 0xfd, 0xdf, 0x6a, 0x00, + 0xa1, 0xf6, 0xe0, 0x2c, 0x74, 0xe2, 0x66, 0x4c, 0xa1, 0xb2, 0x38, 0x90, 0xb6, 0x83, 0xe4, 0x6a, + 0xc6, 0xbf, 0xaa, 0xc1, 0x74, 0xd4, 0xec, 0x0c, 0x58, 0xf5, 0x66, 0x9c, 0x55, 0x7f, 0x7e, 0xb0, + 0x79, 0xe5, 0xf0, 0xeb, 0xff, 0xa7, 0xa4, 0xce, 0x8a, 0x71, 0x63, 0xbb, 0xb1, 0x37, 0x66, 0x8a, + 0xfa, 0xce, 0x20, 0x6f, 0xcc, 0xaa, 0x0b, 0x75, 0x34, 0xdf, 0x8c, 0x37, 0xe7, 0xbf, 0x15, 0xe3, + 0x85, 0x06, 0x08, 0x14, 0x10, 0x32, 0x3e, 0x12, 0x35, 0x5f, 0x80, 0xc3, 0x18, 0xa3, 0x37, 0x54, + 0x52, 0xc9, 0x5f, 0xab, 0x3f, 0x5c, 0xcc, 0x3b, 0x5d, 0x99, 0x70, 0x5f, 0x02, 0xa9, 0x7f, 0x71, + 0x0a, 0x26, 0x14, 0x45, 0x5b, 0xe2, 0xc5, 0x5c, 0x3b, 0x8b, 0x17, 0xf3, 0x00, 0x26, 0x9a, 0x61, + 0x40, 0x78, 0xb9, 0xec, 0x03, 0xe2, 0x0c, 0x49, 0x74, 0x14, 0x6a, 0xde, 0xc7, 0x2a, 0x1a, 0xca, + 0x48, 0x84, 0x7b, 0x6c, 0xe8, 0x04, 0xec, 0x18, 0xfa, 0xed, 0xab, 0xf7, 0x03, 0x48, 0x5e, 0x94, + 0x98, 0x22, 0xa2, 0x67, 0x68, 0x84, 0x5e, 0xf7, 0xef, 0x84, 0x75, 0x58, 0x69, 0x97, 0x7e, 0x81, + 0x1d, 0x39, 0xb3, 0x17, 0x58, 0xba, 0x0d, 0x6c, 0x99, 0x8f, 0x68, 0x20, 0x9b, 0x9c, 0x30, 0xab, + 0x51, 0xb4, 0x0d, 0xc2, 0x22, 0x1f, 0x2b, 0x48, 0x72, 0x0c, 0x27, 0xc6, 0x0a, 0x19, 0x4e, 0x74, + 0xe1, 0x82, 0x47, 0x02, 0xaf, 0x57, 0xed, 0x35, 0x59, 0x9a, 0x2e, 0x2f, 0x60, 0x12, 0x65, 0xb9, + 0x58, 0x84, 0x29, 0x9c, 0x06, 0x85, 0xb3, 0xe0, 0xc7, 0x98, 0xb1, 0xf1, 0xbe, 0xcc, 0xd8, 0x07, + 0x60, 0x22, 0x20, 0xcd, 0x6d, 0xc7, 0x6a, 0x1a, 0x76, 0xbd, 0x26, 0xc2, 0x5d, 0x46, 0x7c, 0x45, + 0x54, 0x85, 0xd5, 0x76, 0x68, 0x11, 0x86, 0xba, 0x96, 0x29, 0xb8, 0xd1, 0xef, 0x09, 0x55, 0xd6, + 0xf5, 0xda, 0x83, 0xfd, 0xca, 0xbb, 0x23, 0x4b, 0x84, 0x70, 0x56, 0x37, 0x3a, 0x3b, 0xad, 0x1b, + 0x41, 0xaf, 0x43, 0xfc, 0xf9, 0x8d, 0x7a, 0x0d, 0xd3, 0xce, 0x59, 0x46, 0x25, 0x93, 0xc7, 0x30, + 0x2a, 0xf9, 0xb4, 0x06, 0x17, 0x8c, 0xa4, 0xb6, 0x9d, 0xf8, 0xb3, 0x53, 0xc5, 0xa9, 0x65, 0xb6, + 0x06, 0x7f, 0xf1, 0xaa, 0x98, 0xdf, 0x85, 0x85, 0x34, 0x3a, 0x9c, 0x35, 0x06, 0xe4, 0x01, 0x6a, + 0x5b, 0xad, 0x30, 0x35, 0x90, 0xf8, 0xea, 0xd3, 0xc5, 0xf4, 0x08, 0x2b, 0x29, 0x48, 0x38, 0x03, + 0x3a, 0xba, 0x0f, 0x13, 0xcd, 0x48, 0x27, 0x2f, 0xb8, 0xea, 0xda, 0x49, 0x3c, 0x0a, 0x70, 0xc9, + 0x4b, 0x55, 0xf8, 0xab, 0x98, 0xc2, 0xd7, 0x34, 0x45, 0xe4, 0x15, 0x2f, 0x4a, 0x6c, 0xd6, 0x33, + 0xc5, 0x5f, 0xd3, 0xb2, 0x21, 0xe2, 0x3e, 0xd8, 0x58, 0x5c, 0x27, 0x3b, 0x9e, 0xc1, 0x8b, 0x25, + 0xaf, 0x2f, 0xe8, 0x0b, 0x9e, 0x48, 0x06, 0xc6, 0xb7, 0x66, 0xa2, 0x10, 0x27, 0x11, 0xea, 0x5f, + 0xd1, 0x84, 0xc2, 0xec, 0x0c, 0xad, 0x21, 0x4e, 0xfb, 0x29, 0x4d, 0xff, 0x73, 0x0d, 0x52, 0x3c, + 0x3a, 0xda, 0x84, 0x31, 0x0a, 0xa2, 0xb6, 0xda, 0x10, 0xd3, 0xfa, 0x50, 0xb1, 0xeb, 0x92, 0x81, + 0xe0, 0xda, 0x47, 0xf1, 0x03, 0x4b, 0xc0, 0x94, 0xeb, 0x77, 0x94, 0x88, 0xdb, 0x62, 0x86, 0x85, + 0xf8, 0x11, 0x35, 0x72, 0x37, 0xe7, 0xfa, 0xd5, 0x12, 0x1c, 0xc3, 0xa3, 0x2f, 0x03, 0x44, 0x72, + 0xd5, 0xc0, 0x06, 0x32, 0xdf, 0x1a, 0x81, 0x4b, 0x83, 0x3a, 0x1b, 0xb0, 0xc4, 0x51, 0x64, 0xd7, + 0x6a, 0x06, 0x0b, 0x5b, 0x01, 0xf1, 0xee, 0xdd, 0x5b, 0x59, 0xdf, 0xf6, 0x88, 0xbf, 0xed, 0xda, + 0x66, 0xc1, 0xcc, 0x55, 0xec, 0x41, 0x6d, 0x29, 0x13, 0x22, 0xce, 0xc1, 0xc4, 0x64, 0x4a, 0x91, + 0xc8, 0x1a, 0x53, 0x66, 0xb2, 0xeb, 0xf9, 0x81, 0x88, 0x6a, 0xc3, 0x65, 0xca, 0x64, 0x25, 0x4e, + 0xb7, 0x4f, 0x02, 0x59, 0xb6, 0xda, 0x16, 0xcf, 0xe0, 0xa3, 0xa5, 0x81, 0xb0, 0x4a, 0x9c, 0x6e, + 0xaf, 0x02, 0xe1, 0x5f, 0x8a, 0x9e, 0xf6, 0x91, 0x34, 0x90, 0xb0, 0x12, 0xa7, 0xdb, 0x23, 0x13, + 0x1e, 0xf6, 0x48, 0xd3, 0x6d, 0xb7, 0x89, 0x63, 0xf2, 0x9c, 0x8c, 0x86, 0xd7, 0xb2, 0x9c, 0x5b, + 0x9e, 0xc1, 0x1a, 0x32, 0x15, 0x9d, 0xc6, 0xf2, 0x50, 0x3c, 0x8c, 0xfb, 0xb4, 0xc3, 0x7d, 0xa1, + 0xa0, 0x36, 0x9c, 0xe3, 0x09, 0xa0, 0xbc, 0xba, 0x13, 0x10, 0x6f, 0xd7, 0xb0, 0x85, 0x1e, 0xae, + 0x50, 0x32, 0xea, 0x8d, 0x38, 0x28, 0x9c, 0x84, 0x8d, 0x7a, 0x94, 0xef, 0x10, 0xc3, 0x51, 0x50, + 0x96, 0x8b, 0xa7, 0x56, 0xc3, 0x69, 0x70, 0x38, 0x0b, 0x87, 0xfe, 0x69, 0x0d, 0x84, 0x25, 0x32, + 0x7a, 0x38, 0xf6, 0xd6, 0x51, 0x4e, 0xbc, 0x73, 0xc8, 0xcc, 0x13, 0xa5, 0xcc, 0xcc, 0x13, 0xef, + 0x55, 0xc2, 0x25, 0x8d, 0x47, 0xb4, 0x8f, 0x43, 0x56, 0xb2, 0xe6, 0x3c, 0x09, 0xe3, 0x84, 0x3f, + 0xa3, 0x85, 0x1c, 0x2d, 0xb3, 0xee, 0x5e, 0x92, 0x85, 0x38, 0xaa, 0xd7, 0xff, 0x58, 0x03, 0x01, + 0x81, 0xe5, 0x78, 0x3a, 0x52, 0xae, 0x9f, 0x43, 0x4d, 0x9b, 0x94, 0x1c, 0x45, 0x43, 0xb9, 0x39, + 0x8a, 0x4e, 0x29, 0x75, 0xcf, 0x6f, 0x6b, 0x70, 0x2e, 0x1e, 0xbf, 0xca, 0x47, 0xef, 0x81, 0x31, + 0x11, 0xe1, 0x52, 0x84, 0xa8, 0x63, 0x5d, 0x45, 0x88, 0x09, 0x2c, 0xeb, 0xe2, 0xea, 0xb0, 0x01, + 0x44, 0xcc, 0xec, 0x30, 0x5a, 0x87, 0x48, 0x7b, 0x1f, 0x9f, 0x81, 0x51, 0x1e, 0x1e, 0x91, 0xd2, + 0xb4, 0x0c, 0xb7, 0xcd, 0xbb, 0xc5, 0xa3, 0x30, 0x16, 0xf1, 0xb5, 0x53, 0x33, 0x11, 0x94, 0xfa, + 0x66, 0x22, 0xc0, 0x3c, 0x25, 0xda, 0x00, 0x4f, 0x1f, 0x55, 0x5c, 0x17, 0x39, 0xd6, 0x65, 0x3a, + 0xb4, 0x20, 0xf6, 0x26, 0x30, 0x5c, 0x9c, 0x73, 0xe3, 0x0b, 0xa0, 0xbc, 0x0c, 0x4c, 0xf7, 0x7d, + 0x15, 0x90, 0xf1, 0xe7, 0x46, 0x8a, 0x9b, 0x1a, 0x8a, 0x25, 0x3f, 0x42, 0xfc, 0xb9, 0xf0, 0x20, + 0x8d, 0xe6, 0x1e, 0xa4, 0x2d, 0x18, 0x13, 0x47, 0x41, 0x10, 0xc7, 0x0f, 0x0d, 0x90, 0x5b, 0x4c, + 0x09, 0x99, 0xcc, 0x0b, 0xb0, 0x04, 0x4e, 0x6f, 0xdc, 0xb6, 0xb1, 0x67, 0xb5, 0xbb, 0x6d, 0x46, + 0x11, 0x47, 0xd4, 0xa6, 0xac, 0x18, 0xcb, 0x7a, 0xd6, 0x94, 0x5b, 0x68, 0x32, 0x41, 0x4a, 0x6d, + 0xca, 0x8b, 0xb1, 0xac, 0x47, 0xaf, 0x42, 0xb9, 0x6d, 0xec, 0x35, 0xba, 0x5e, 0x8b, 0x88, 0x17, + 0x81, 0x7c, 0x1e, 0xaf, 0x1b, 0x58, 0xf6, 0x3c, 0x15, 0xff, 0x03, 0x6f, 0xbe, 0xee, 0x04, 0xf7, + 0xbc, 0x46, 0xe0, 0x85, 0x09, 0x86, 0x56, 0x04, 0x14, 0x1c, 0xc2, 0x43, 0x36, 0x4c, 0xb7, 0x8d, + 0xbd, 0x0d, 0xc7, 0xe0, 0xa1, 0x05, 0x6d, 0xfe, 0x10, 0x50, 0x04, 0x03, 0x7b, 0x16, 0x5e, 0x89, + 0xc1, 0xc2, 0x09, 0xd8, 0x19, 0x2f, 0xd0, 0x93, 0xa7, 0xf5, 0x02, 0xbd, 0x10, 0xfa, 0xdb, 0x70, + 0xb9, 0xed, 0x4a, 0xa6, 0x67, 0x7b, 0x5f, 0x5f, 0x9a, 0xd7, 0x42, 0x5f, 0x9a, 0xe9, 0xe2, 0x4f, + 0xa6, 0x7d, 0xfc, 0x68, 0xba, 0x30, 0x41, 0x39, 0x6c, 0x5e, 0x4a, 0x05, 0xab, 0xc2, 0x2a, 0xc8, + 0x5a, 0x08, 0x46, 0x49, 0x8d, 0x1b, 0x81, 0xc6, 0x2a, 0x1e, 0x74, 0x8f, 0xa7, 0xba, 0xb7, 0x49, + 0x10, 0x35, 0x61, 0x02, 0xfd, 0x0c, 0x3b, 0x3f, 0x61, 0x66, 0xfa, 0x54, 0x03, 0x9c, 0xdd, 0x2f, + 0x8a, 0x94, 0x73, 0x3e, 0x3b, 0x52, 0x0e, 0xfa, 0xb9, 0x2c, 0x3d, 0x3f, 0x62, 0x6b, 0xfa, 0x03, + 0xc5, 0x69, 0x43, 0x61, 0x6d, 0xff, 0xbf, 0xd4, 0x60, 0xb6, 0x9d, 0x93, 0x43, 0x56, 0x3c, 0x3f, + 0xac, 0x0f, 0x40, 0x1f, 0x72, 0xf3, 0xd2, 0x2e, 0x3e, 0x76, 0xb0, 0x5f, 0x39, 0x34, 0x7b, 0x2d, + 0xce, 0x1d, 0x1b, 0xf2, 0x60, 0xcc, 0xef, 0xf9, 0xcd, 0xc0, 0xf6, 0x67, 0x2f, 0x16, 0x4f, 0x55, + 0x2a, 0x28, 0x6b, 0x83, 0x43, 0xe2, 0xa4, 0x35, 0x0a, 0xd4, 0xcf, 0x4b, 0xb1, 0x44, 0x34, 0xa8, + 0x9f, 0xf6, 0x00, 0xc1, 0x41, 0xe7, 0x6e, 0xc2, 0xa4, 0x3a, 0xc8, 0x63, 0xb9, 0x87, 0xff, 0xaa, + 0x06, 0x33, 0xc9, 0x4b, 0x0b, 0x6d, 0x83, 0x4c, 0xf7, 0x2f, 0x84, 0xca, 0x85, 0xa2, 0xef, 0xe3, + 0x36, 0x11, 0x56, 0xe6, 0x9c, 0x07, 0x12, 0x45, 0x58, 0x82, 0x57, 0xed, 0x5f, 0x4a, 0x7d, 0xec, + 0x5f, 0x9e, 0x83, 0xcb, 0xd9, 0x7b, 0x99, 0x72, 0x90, 0x86, 0x6d, 0xbb, 0xf7, 0x85, 0xe4, 0x16, + 0xe5, 0xf0, 0xa2, 0x85, 0x98, 0xd7, 0xe9, 0x3f, 0x06, 0xc9, 0x50, 0xd0, 0xe8, 0x75, 0x18, 0xf7, + 0xfd, 0x6d, 0x1e, 0xe5, 0x53, 0x4c, 0xb2, 0x98, 0xc8, 0x2e, 0x43, 0x85, 0x0a, 0x97, 0x46, 0xf9, + 0x13, 0x47, 0xe0, 0x17, 0x5f, 0xf9, 0xc2, 0x37, 0xae, 0xbd, 0xeb, 0xcb, 0xdf, 0xb8, 0xf6, 0xae, + 0xaf, 0x7d, 0xe3, 0xda, 0xbb, 0x7e, 0xe2, 0xe0, 0x9a, 0xf6, 0x85, 0x83, 0x6b, 0xda, 0x97, 0x0f, + 0xae, 0x69, 0x5f, 0x3b, 0xb8, 0xa6, 0xfd, 0xa7, 0x83, 0x6b, 0xda, 0xcf, 0xff, 0xe7, 0x6b, 0xef, + 0x7a, 0xf5, 0xe9, 0x08, 0xfb, 0x0d, 0x89, 0x34, 0xfa, 0xa7, 0xb3, 0xd3, 0xba, 0x41, 0xb1, 0x4b, + 0xd7, 0x22, 0x86, 0xfd, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x84, 0x95, 0xa7, 0x15, 0x99, 0xeb, + 0x00, 0x00, } func (m *APIServerLogging) Marshal() (dAtA []byte, err error) { @@ -10610,6 +10613,13 @@ func (m *MachineImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.UpdateStrategy != nil { + i -= len(*m.UpdateStrategy) + copy(dAtA[i:], *m.UpdateStrategy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.UpdateStrategy))) + i-- + dAtA[i] = 0x1a + } if len(m.Versions) > 0 { for iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- { { @@ -17649,6 +17659,10 @@ func (m *MachineImage) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.UpdateStrategy != nil { + l = len(*m.UpdateStrategy) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -20789,6 +20803,7 @@ func (this *MachineImage) String() string { s := strings.Join([]string{`&MachineImage{`, `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `Versions:` + repeatedStringForVersions + `,`, + `UpdateStrategy:` + valueToStringGenerated(this.UpdateStrategy) + `,`, `}`, }, "") return s @@ -36394,6 +36409,39 @@ func (m *MachineImage) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", 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 < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := MachineImageUpdateStrategy(dAtA[iNdEx:postIndex]) + m.UpdateStrategy = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto index ad003c7a6..859ffa6f3 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto @@ -553,7 +553,7 @@ message ControllerRegistrationDeployment { // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector seedSelector = 4; - // DeploymentRefs holds references to `ControllerDeployments`. Only one element is support now. + // DeploymentRefs holds references to `ControllerDeployments`. Only one element is supported currently. // +optional repeated DeploymentRef deploymentRefs = 5; } @@ -1564,6 +1564,13 @@ message MachineImage { // +patchMergeKey=version // +patchStrategy=merge repeated MachineImageVersion versions = 2; + + // UpdateStrategy is the update strategy to use for the machine image. Possible values are: + // - patch: update to the latest patch version of the current minor version. + // - minor: update to the latest minor and patch version. + // - major: always update to the overall latest version (default). + // +optional + optional string updateStrategy = 3; } // MachineImageVersion is an expirable version with list of supported container runtimes and interfaces diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go index 7b02086cf..88a41cdb2 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go @@ -16,6 +16,7 @@ package helper import ( "fmt" + "slices" "strconv" "strings" "time" @@ -452,7 +453,8 @@ func ShootMachineImageVersionExists(constraint gardencorev1beta1.MachineImage, i return false, 0 } -func toExpirableVersions(versions []gardencorev1beta1.MachineImageVersion) []gardencorev1beta1.ExpirableVersion { +// ToExpirableVersions returns the expirable versions from the given machine image versions. +func ToExpirableVersions(versions []gardencorev1beta1.MachineImageVersion) []gardencorev1beta1.ExpirableVersion { expVersions := []gardencorev1beta1.ExpirableVersion{} for _, version := range versions { expVersions = append(expVersions, version.ExpirableVersion) @@ -460,32 +462,6 @@ func toExpirableVersions(versions []gardencorev1beta1.MachineImageVersion) []gar return expVersions } -// GetLatestQualifyingShootMachineImage determines the latest qualifying version in a machine image and returns that as a ShootMachineImage. -// A version qualifies if its classification is not preview and the version is not expired. -// Older but non-deprecated version is preferred over newer but deprecated one. -func GetLatestQualifyingShootMachineImage(image gardencorev1beta1.MachineImage, predicates ...VersionPredicate) (bool, *gardencorev1beta1.ShootMachineImage, error) { - predicates = append(predicates, FilterExpiredVersion()) - - // Try to find non-deprecated version first - qualifyingVersionFound, latestNonDeprecatedImageVersion, err := GetLatestQualifyingVersion(toExpirableVersions(image.Versions), append(predicates, FilterDeprecatedVersion())...) - if err != nil { - return false, nil, err - } - if qualifyingVersionFound { - return true, &gardencorev1beta1.ShootMachineImage{Name: image.Name, Version: &latestNonDeprecatedImageVersion.Version}, nil - } - - // It looks like there is no non-deprecated version, now look also into the deprecated versions - qualifyingVersionFound, latestImageVersion, err := GetLatestQualifyingVersion(toExpirableVersions(image.Versions), predicates...) - if err != nil { - return false, nil, err - } - if !qualifyingVersionFound { - return false, nil, nil - } - return true, &gardencorev1beta1.ShootMachineImage{Name: image.Name, Version: &latestImageVersion.Version}, nil -} - // FindMachineTypeByName tries to find the machine type details with the given name. If it cannot be found it returns nil. func FindMachineTypeByName(machines []gardencorev1beta1.MachineType, name string) *gardencorev1beta1.MachineType { for _, m := range machines { @@ -557,20 +533,89 @@ func FindPrimaryDNSProvider(providers []gardencorev1beta1.DNSProvider) *gardenco // VersionPredicate is a function that evaluates a condition on the given versions. type VersionPredicate func(expirableVersion gardencorev1beta1.ExpirableVersion, version *semver.Version) (bool, error) -// GetKubernetesVersionForPatchUpdate finds the latest Kubernetes patch version for its minor version in the compared -// to the given . Preview and expired versions do not qualify for the kubernetes patch update. In case it does not find a newer patch version, it returns false. Otherwise, -// true and the found version will be returned. -func GetKubernetesVersionForPatchUpdate(cloudProfile *gardencorev1beta1.CloudProfile, currentVersion string) (bool, string, error) { +// GetLatestVersionForPatchAutoUpdate finds the latest patch version for a given for the current minor version from a given slice of versions. +// The current version, preview and expired versions do not qualify. +// In case no newer patch version is found, returns false and an empty string. Otherwise, returns true and the found version. +func GetLatestVersionForPatchAutoUpdate(versions []gardencorev1beta1.ExpirableVersion, currentVersion string) (bool, string, error) { + currentSemVerVersion, err := semver.NewVersion(currentVersion) + if err != nil { + return false, "", err + } + + predicates := []VersionPredicate{FilterDifferentMajorMinorVersionAndLowerPatchVersionsOfSameMinor(*currentSemVerVersion)} + + return getVersionForAutoUpdate(versions, currentSemVerVersion, predicates) +} + +// GetLatestVersionForMinorAutoUpdate finds the latest minor with the latest patch version higher than a given for the current major version from a given slice of versions. +// Returns the highest patch version for the current minor in case the current version is not the highest patch version yet. +// The current version, preview and expired versions do not qualify. +// In case no newer version is found, returns false and an empty string. Otherwise, returns true and the found version. +func GetLatestVersionForMinorAutoUpdate(versions []gardencorev1beta1.ExpirableVersion, currentVersion string) (bool, string, error) { + // always first check if there is a higher patch version available + found, version, err := GetLatestVersionForPatchAutoUpdate(versions, currentVersion) + if found { + return found, version, nil + } + if err != nil { + return false, version, err + } + + currentSemVerVersion, err := semver.NewVersion(currentVersion) + if err != nil { + return false, "", err + } + + predicates := []VersionPredicate{FilterDifferentMajorVersion(*currentSemVerVersion)} + + return getVersionForAutoUpdate(versions, currentSemVerVersion, predicates) +} + +// GetOverallLatestVersionForAutoUpdate finds the overall latest version higher than a given for the current major version from a given slice of versions. +// Returns the highest patch version for the current minor in case the current version is not the highest patch version yet. +// The current, preview and expired versions do not qualify. +// In case no newer version is found, returns false and an empty string. Otherwise, returns true and the found version. +func GetOverallLatestVersionForAutoUpdate(versions []gardencorev1beta1.ExpirableVersion, currentVersion string) (bool, string, error) { + // always first check if there is a higher patch version available to update to + found, version, err := GetLatestVersionForPatchAutoUpdate(versions, currentVersion) + if found { + return found, version, nil + } + if err != nil { + return false, version, err + } + currentSemVerVersion, err := semver.NewVersion(currentVersion) if err != nil { return false, "", err } - qualifyingVersionFound, latestVersion, err := GetLatestQualifyingVersion(cloudProfile.Spec.Kubernetes.Versions, FilterDifferentMajorMinorVersion(*currentSemVerVersion), FilterSameVersion(*currentSemVerVersion), FilterExpiredVersion()) + // if there is no higher patch version available, get the overall latest + return getVersionForAutoUpdate(versions, currentSemVerVersion, []VersionPredicate{}) +} + +// getVersionForAutoUpdate finds the latest eligible version higher than a given from a slice of versions. +// Versions <= the current version, preview and expired versions do not qualify for patch updates. +// First tries to find a non-deprecated version. +// In case no newer patch version is found, returns false and an empty string. Otherwise, returns true and the found version. +func getVersionForAutoUpdate(versions []gardencorev1beta1.ExpirableVersion, currentSemVerVersion *semver.Version, predicates []VersionPredicate) (bool, string, error) { + versionPredicates := append([]VersionPredicate{FilterExpiredVersion(), FilterSameVersion(*currentSemVerVersion), FilterLowerVersion(*currentSemVerVersion)}, predicates...) + + // Try to find non-deprecated version first + qualifyingVersionFound, latestNonDeprecatedImageVersion, err := GetLatestQualifyingVersion(versions, append(versionPredicates, FilterDeprecatedVersion())...) if err != nil { return false, "", err } - // latest version cannot be found. Do not return an error, but allow for minor upgrade if Shoot's machine image version is expired. + if qualifyingVersionFound { + return true, latestNonDeprecatedImageVersion.Version, nil + } + + // otherwise, also consider deprecated versions + qualifyingVersionFound, latestVersion, err := GetLatestQualifyingVersion(versions, versionPredicates...) + if err != nil { + return false, "", err + } + // latest version cannot be found. Do not return an error, but allow for forceful upgrade if Shoot's version is expired. if !qualifyingVersionFound { return false, "", nil } @@ -578,24 +623,28 @@ func GetKubernetesVersionForPatchUpdate(cloudProfile *gardencorev1beta1.CloudPro return true, latestVersion.Version, nil } -// GetKubernetesVersionForMinorUpdate finds a Kubernetes version in the that qualifies for a Kubernetes minor level update given a . -// A qualifying version is a non-preview version having the minor version increased by exactly one version. -// In case the consecutive minor version has only expired versions, picks the latest expired version (will do another minor update during the next maintenance time) +// GetVersionForForcefulUpdateToConsecutiveMinor finds a version from a slice of expirable versions that qualifies for a minor level update given a . +// A qualifying version is a non-preview version having the minor version increased by exactly one version (required for Kubernetes version upgrades). +// In case the consecutive minor version has only expired versions, picks the latest expired version (will try another update during the next maintenance time). // If a version can be found, returns true and the qualifying patch version of the next minor version. -// In case it does not find a version, it returns false. -func GetKubernetesVersionForMinorUpdate(cloudProfile *gardencorev1beta1.CloudProfile, currentVersion string) (bool, string, error) { +// In case it does not find a version, it returns false and an empty string. +func GetVersionForForcefulUpdateToConsecutiveMinor(versions []gardencorev1beta1.ExpirableVersion, currentVersion string) (bool, string, error) { currentSemVerVersion, err := semver.NewVersion(currentVersion) if err != nil { return false, "", err } - qualifyingVersionFound, latestVersion, err := GetLatestQualifyingVersion(cloudProfile.Spec.Kubernetes.Versions, FilterNonConsecutiveMinorVersion(*currentSemVerVersion), FilterSameVersion(*currentSemVerVersion), FilterExpiredVersion()) + // filters out any version that does not have minor version +1 + predicates := []VersionPredicate{FilterDifferentMajorVersion(*currentSemVerVersion), FilterNonConsecutiveMinorVersion(*currentSemVerVersion)} + + qualifyingVersionFound, latestVersion, err := GetLatestQualifyingVersion(versions, append(predicates, FilterExpiredVersion())...) if err != nil { return false, "", err } + + // if no qualifying version is found, allow force update to an expired version if !qualifyingVersionFound { - // in case there are only expired versions in the consecutive minor version, pick the latest expired version - qualifyingVersionFound, latestVersion, err = GetLatestQualifyingVersion(cloudProfile.Spec.Kubernetes.Versions, FilterNonConsecutiveMinorVersion(*currentSemVerVersion), FilterSameVersion(*currentSemVerVersion)) + qualifyingVersionFound, latestVersion, err = GetLatestQualifyingVersion(versions, predicates...) if err != nil { return false, "", err } @@ -607,7 +656,78 @@ func GetKubernetesVersionForMinorUpdate(cloudProfile *gardencorev1beta1.CloudPro return true, latestVersion.Version, nil } -// GetLatestQualifyingVersion returns the latest expirable version from a set of expirable versions +// GetVersionForForcefulUpdateToNextHigherMinor finds a version from a slice of expirable versions that qualifies for a minor level update given a . +// A qualifying version is the highest non-preview version with the next higher minor version from the given slice of versions. +// In case the consecutive minor version has only expired versions, picks the latest expired version (will try another update during the next maintenance time). +// If a version can be found, returns true and the qualifying version. +// In case it does not find a version, it returns false and an empty string. +func GetVersionForForcefulUpdateToNextHigherMinor(versions []gardencorev1beta1.ExpirableVersion, currentVersion string) (bool, string, error) { + currentSemVerVersion, err := semver.NewVersion(currentVersion) + if err != nil { + return false, "", err + } + + predicates := []VersionPredicate{FilterDifferentMajorVersion(*currentSemVerVersion), FilterEqualAndSmallerMinorVersion(*currentSemVerVersion)} + + // prefer non-expired version + return getVersionForMachineImageForceUpdate(versions, func(v semver.Version) int64 { return int64(v.Minor()) }, currentSemVerVersion, predicates) +} + +// GetVersionForForcefulUpdateToNextHigherMajor finds a version from a slice of expirable versions that qualifies for a major level update given a . +// A qualifying version is a non-preview version with the next (as defined in the CloudProfile for the image) higher major version. +// In case the next major version has only expired versions, picks the latest expired version (will try another update during the next maintenance time). +// If a version can be found, returns true and the qualifying version of the next major version. +// In case it does not find a version, it returns false and an empty string. +func GetVersionForForcefulUpdateToNextHigherMajor(versions []gardencorev1beta1.ExpirableVersion, currentVersion string) (bool, string, error) { + currentSemVerVersion, err := semver.NewVersion(currentVersion) + if err != nil { + return false, "", err + } + + predicates := []VersionPredicate{FilterEqualAndSmallerMajorVersion(*currentSemVerVersion)} + + // prefer non-expired version + return getVersionForMachineImageForceUpdate(versions, func(v semver.Version) int64 { return int64(v.Major()) }, currentSemVerVersion, predicates) +} + +// getVersionForMachineImageForceUpdate finds a version from a slice of expirable versions that qualifies for an update given a . +// In contrast to determining a version for an auto-update, also allows update to an expired version in case a not-expired version cannot be determined. +// Used only for machine image updates, as finds a qualifying version from the next higher minor version, which is not necessarily consecutive (n+1). +func getVersionForMachineImageForceUpdate(versions []gardencorev1beta1.ExpirableVersion, getMajorOrMinor GetMajorOrMinor, currentSemVerVersion *semver.Version, predicates []VersionPredicate) (bool, string, error) { + foundVersion, qualifyingVersion, nextMinorOrMajorVersion, err := GetQualifyingVersionForNextHigher(versions, getMajorOrMinor, currentSemVerVersion, append(predicates, FilterExpiredVersion())...) + if err != nil { + return false, "", err + } + + skippedNextMajorMinor := false + if foundVersion { + parse, err := semver.NewVersion(qualifyingVersion.Version) + if err != nil { + return false, "", err + } + skippedNextMajorMinor = getMajorOrMinor(*parse) > nextMinorOrMajorVersion + } + + // Two options when allowing updates to expired versions + // 1) No higher non-expired qualifying version could be found at all + // 2) Found a qualifying non-expired version, but we skipped the next minor/major. + // Potentially skipped expired versions in the next minor/major that qualify. + // Prefer update to expired version in next minor/major instead of skipping over minor/major altogether. + // Example: current version: 1.1.0, qualifying version : 1.4.1, next minor: 2. We skipped over the next minor which might have qualifying expired versions. + if !foundVersion || skippedNextMajorMinor { + foundVersion, qualifyingVersion, _, err = GetQualifyingVersionForNextHigher(versions, getMajorOrMinor, currentSemVerVersion, predicates...) + if err != nil { + return false, "", err + } + if !foundVersion { + return false, "", nil + } + } + + return true, qualifyingVersion.Version, nil +} + +// GetLatestQualifyingVersion returns the latest expirable version from a set of expirable versions. // A version qualifies if its classification is not preview and the optional predicate does not filter out the version. // If the predicate returns true, the version is not considered for the latest qualifying version. func GetLatestQualifyingVersion(versions []gardencorev1beta1.ExpirableVersion, predicate ...VersionPredicate) (qualifyingVersionFound bool, latest *gardencorev1beta1.ExpirableVersion, err error) { @@ -652,9 +772,82 @@ OUTER: return true, latestVersion, nil } -// FilterDifferentMajorMinorVersion returns a VersionPredicate(closure) that evaluates whether a given version v has a different same major.minor version compared to the currentSemVerVersion -// returns true if v has a different major.minor version -func FilterDifferentMajorMinorVersion(currentSemVerVersion semver.Version) VersionPredicate { +// GetMajorOrMinor returns either the major or the minor version from a semVer version. +type GetMajorOrMinor func(v semver.Version) int64 + +// GetQualifyingVersionForNextHigher returns the latest expirable version for the next higher {minor/major} (not necessarily consecutive n+1) version from a set of expirable versions. +// A version qualifies if its classification is not preview and the optional predicate does not filter out the version. +// If the predicate returns true, the version is not considered for the latest qualifying version. +func GetQualifyingVersionForNextHigher(versions []gardencorev1beta1.ExpirableVersion, majorOrMinor GetMajorOrMinor, currentSemVerVersion *semver.Version, predicates ...VersionPredicate) (qualifyingVersionFound bool, qualifyingVersion *gardencorev1beta1.ExpirableVersion, nextMinorOrMajor int64, err error) { + // How to find the highest version with the next higher (not necessarily consecutive n+1) minor version (if the next higher minor version has no qualifying version, skip it to avoid consecutive updates) + // 1) Sort the versions in ascending order + // 2) Loop over the sorted array until the minor version changes (select all versions for the next higher minor) + // - predicates filter out version with minor/major <= current_minor/major + // 3) Then select the last version in the array (that's the highest) + + slices.SortFunc(versions, func(a, b gardencorev1beta1.ExpirableVersion) int { + return semver.MustParse(a.Version).Compare(semver.MustParse(b.Version)) + }) + + var ( + highestVersionNextHigherMinorOrMajor *semver.Version + nextMajorOrMinorVersion int64 = -1 + expirableVersionNextHigherMinorOrMajor = gardencorev1beta1.ExpirableVersion{} + ) + +OUTER: + for _, v := range versions { + parse, err := semver.NewVersion(v.Version) + if err != nil { + return false, nil, 0, err + } + + // Determine the next higher minor/major version, even though all versions from that minor/major might be filtered (e.g, all expired) + // That's required so that the caller can determine if the next minor/major version has been skipped or not. + if majorOrMinor(*parse) > majorOrMinor(*currentSemVerVersion) && (majorOrMinor(*parse) < nextMajorOrMinorVersion || nextMajorOrMinorVersion == -1) { + nextMajorOrMinorVersion = majorOrMinor(*parse) + } + + // never update to preview versions + if v.Classification != nil && *v.Classification == gardencorev1beta1.ClassificationPreview { + continue + } + + for _, p := range predicates { + if p == nil { + continue + } + + shouldFilter, err := p(v, parse) + if err != nil { + return false, nil, nextMajorOrMinorVersion, fmt.Errorf("error while evaluation predicate: %w", err) + } + if shouldFilter { + continue OUTER + } + } + + // last version is the highest version for next larger minor/major + if highestVersionNextHigherMinorOrMajor != nil && majorOrMinor(*parse) > majorOrMinor(*highestVersionNextHigherMinorOrMajor) { + break + } + highestVersionNextHigherMinorOrMajor = parse + expirableVersionNextHigherMinorOrMajor = v + } + + // unable to find qualified versions + if highestVersionNextHigherMinorOrMajor == nil { + return false, nil, nextMajorOrMinorVersion, nil + } + return true, &expirableVersionNextHigherMinorOrMajor, nextMajorOrMinorVersion, nil +} + +// FilterDifferentMajorMinorVersionAndLowerPatchVersionsOfSameMinor returns a VersionPredicate(closure) that returns true if a given version v +// - has a different major.minor version compared to the currentSemVerVersion +// - has a lower patch version (acts as >= relational operator) +// +// Uses the tilde range operator. +func FilterDifferentMajorMinorVersionAndLowerPatchVersionsOfSameMinor(currentSemVerVersion semver.Version) VersionPredicate { return func(_ gardencorev1beta1.ExpirableVersion, v *semver.Version) (bool, error) { isWithinRange, err := versionutils.CompareVersions(v.String(), "~", currentSemVerVersion.String()) if err != nil { @@ -665,7 +858,9 @@ func FilterDifferentMajorMinorVersion(currentSemVerVersion semver.Version) Versi } // FilterNonConsecutiveMinorVersion returns a VersionPredicate(closure) that evaluates whether a given version v has a consecutive minor version compared to the currentSemVerVersion -// returns true if v does not have a consecutive minor version +// - implicitly, therefore also versions cannot be smaller than the current version +// +// returns true if v does not have a consecutive minor version. func FilterNonConsecutiveMinorVersion(currentSemVerVersion semver.Version) VersionPredicate { return func(_ gardencorev1beta1.ExpirableVersion, v *semver.Version) (bool, error) { if v.Major() != currentSemVerVersion.Major() { @@ -677,8 +872,32 @@ func FilterNonConsecutiveMinorVersion(currentSemVerVersion semver.Version) Versi } } -// FilterSameVersion returns a VersionPredicate(closure) that evaluates whether a given version v is equal to the currentSemVerVersion -// returns true if it is equal +// FilterDifferentMajorVersion returns a VersionPredicate(closure) that evaluates whether a given version v has the same major version compared to the currentSemVerVersion. +// Returns true if v does not have the same major version. +func FilterDifferentMajorVersion(currentSemVerVersion semver.Version) VersionPredicate { + return func(_ gardencorev1beta1.ExpirableVersion, v *semver.Version) (bool, error) { + return v.Major() != currentSemVerVersion.Major(), nil + } +} + +// FilterEqualAndSmallerMajorVersion returns a VersionPredicate(closure) that evaluates whether a given version v has a smaller major version compared to the currentSemVerVersion. +// Returns true if v has a smaller or equal major version. +func FilterEqualAndSmallerMajorVersion(currentSemVerVersion semver.Version) VersionPredicate { + return func(_ gardencorev1beta1.ExpirableVersion, v *semver.Version) (bool, error) { + return v.Major() <= currentSemVerVersion.Major(), nil + } +} + +// FilterEqualAndSmallerMinorVersion returns a VersionPredicate(closure) that evaluates whether a given version v has a smaller or equal minor version compared to the currentSemVerVersion. +// Returns true if v has a smaller or equal minor version. +func FilterEqualAndSmallerMinorVersion(currentSemVerVersion semver.Version) VersionPredicate { + return func(_ gardencorev1beta1.ExpirableVersion, v *semver.Version) (bool, error) { + return v.Minor() <= currentSemVerVersion.Minor(), nil + } +} + +// FilterSameVersion returns a VersionPredicate(closure) that evaluates whether a given version v is equal to the currentSemVerVersion. +// returns true if it is equal. func FilterSameVersion(currentSemVerVersion semver.Version) VersionPredicate { return func(_ gardencorev1beta1.ExpirableVersion, v *semver.Version) (bool, error) { return v.Equal(¤tSemVerVersion), nil diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go index 6617a8bdb..e8071afa2 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go @@ -113,6 +113,12 @@ type MachineImage struct { // +patchMergeKey=version // +patchStrategy=merge Versions []MachineImageVersion `json:"versions" patchStrategy:"merge" patchMergeKey:"version" protobuf:"bytes,2,rep,name=versions"` + // UpdateStrategy is the update strategy to use for the machine image. Possible values are: + // - patch: update to the latest patch version of the current minor version. + // - minor: update to the latest minor and patch version. + // - major: always update to the overall latest version (default). + // +optional + UpdateStrategy *MachineImageUpdateStrategy `json:"updateStrategy,omitempty" protobuf:"bytes,3,opt,name=updateStrategy,casttype=MachineImageUpdateStrategy"` } // MachineImageVersion is an expirable version with list of supported container runtimes and interfaces @@ -245,3 +251,17 @@ const ( // and will eventually expire. ClassificationDeprecated VersionClassification = "deprecated" ) + +// MachineImageUpdateStrategy is the update strategy to use for a machine image +type MachineImageUpdateStrategy string + +const ( + // UpdateStrategyPatch indicates that auto-updates are performed to the latest patch version of the current minor version. + // When using an expired version during the maintenance window, force updates to the latest patch of the next (not necessarily consecutive) minor when using an expired version. + UpdateStrategyPatch MachineImageUpdateStrategy = "patch" + // UpdateStrategyMinor indicates that auto-updates are performed to the latest patch and minor version of the current major version. + // When using an expired version during the maintenance window, force updates to the latest minor and patch of the next (not necessarily consecutive) major version. + UpdateStrategyMinor MachineImageUpdateStrategy = "minor" + // UpdateStrategyMajor indicates that auto-updates are performed always to the overall latest version. + UpdateStrategyMajor MachineImageUpdateStrategy = "major" +) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go index 7f8f0abd2..a18eced5d 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go @@ -14,7 +14,9 @@ package v1beta1 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) // ErrorCode is a string alias. type ErrorCode string diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go index a80c13707..70e39b0d3 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go @@ -104,7 +104,7 @@ type ControllerRegistrationDeployment struct { // An empty list means that all seeds are selected. // +optional SeedSelector *metav1.LabelSelector `json:"seedSelector,omitempty" protobuf:"bytes,4,opt,name=seedSelector"` - // DeploymentRefs holds references to `ControllerDeployments`. Only one element is support now. + // DeploymentRefs holds references to `ControllerDeployments`. Only one element is supported currently. // +optional DeploymentRefs []DeploymentRef `json:"deploymentRefs,omitempty" protobuf:"bytes,5,opt,name=deploymentRefs"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go index d4af84026..ed55f8a57 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go @@ -4014,6 +4014,7 @@ func Convert_core_MachineControllerManagerSettings_To_v1beta1_MachineControllerM func autoConvert_v1beta1_MachineImage_To_core_MachineImage(in *MachineImage, out *core.MachineImage, s conversion.Scope) error { out.Name = in.Name out.Versions = *(*[]core.MachineImageVersion)(unsafe.Pointer(&in.Versions)) + out.UpdateStrategy = (*core.MachineImageUpdateStrategy)(unsafe.Pointer(in.UpdateStrategy)) return nil } @@ -4025,6 +4026,7 @@ func Convert_v1beta1_MachineImage_To_core_MachineImage(in *MachineImage, out *co func autoConvert_core_MachineImage_To_v1beta1_MachineImage(in *core.MachineImage, out *MachineImage, s conversion.Scope) error { out.Name = in.Name out.Versions = *(*[]MachineImageVersion)(unsafe.Pointer(&in.Versions)) + out.UpdateStrategy = (*MachineImageUpdateStrategy)(unsafe.Pointer(in.UpdateStrategy)) return nil } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go index 0f762100e..add5f11b6 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go @@ -2641,6 +2641,11 @@ func (in *MachineImage) DeepCopyInto(out *MachineImage) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.UpdateStrategy != nil { + in, out := &in.UpdateStrategy, &out.UpdateStrategy + *out = new(MachineImageUpdateStrategy) + **out = **in + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.defaults.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.defaults.go index 752ae794d..64aeb9796 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.defaults.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.defaults.go @@ -47,6 +47,7 @@ func RegisterDefaults(scheme *runtime.Scheme) error { func SetObjectDefaults_CloudProfile(in *CloudProfile) { for i := range in.Spec.MachineImages { a := &in.Spec.MachineImages[i] + SetDefaults_MachineImage(a) for j := range a.Versions { b := &a.Versions[j] SetDefaults_MachineImageVersion(b) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go index 9140af188..1b3a338ba 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go @@ -2636,6 +2636,11 @@ func (in *MachineImage) DeepCopyInto(out *MachineImage) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.UpdateStrategy != nil { + in, out := &in.UpdateStrategy, &out.UpdateStrategy + *out = new(MachineImageUpdateStrategy) + **out = **in + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_operatingsystemconfig.go b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_operatingsystemconfig.go index 61f5e04a5..3d98318d2 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_operatingsystemconfig.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_operatingsystemconfig.go @@ -53,7 +53,6 @@ func (o *OperatingSystemConfig) GetExtensionSpec() Spec { // GetExtensionPurpose implements Object. func (o *OperatingSystemConfigSpec) GetExtensionPurpose() *string { return (*string)(&o.Purpose) - } // GetExtensionStatus implements Object. @@ -110,7 +109,7 @@ type Unit struct { Name string `json:"name"` // Command is the unit's command. // +optional - Command *string `json:"command,omitempty"` + Command *UnitCommand `json:"command,omitempty"` // Enable describes whether the unit is enabled or not. // +optional Enable *bool `json:"enable,omitempty"` @@ -122,6 +121,29 @@ type Unit struct { // +patchStrategy=merge // +optional DropIns []DropIn `json:"dropIns,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // Files is a list of files the unit depends on that should get written to the host's file system. + // If any file changes a restart of the dependent unit will be triggered. + // +patchMergeKey=path + // +patchStrategy=merge + // +optional + Files []File `json:"files,omitempty" patchStrategy:"merge" patchMergeKey:"path"` +} + +// UnitCommand is a string alias. +type UnitCommand string + +const ( + // CommandStart is the 'start' command for a unit. + CommandStart UnitCommand = "start" + // CommandRestart is the 'restart' command for a unit. + CommandRestart UnitCommand = "restart" + // CommandStop is the 'stop' command for a unit. + CommandStop UnitCommand = "stop" +) + +// UnitCommandPtr returns a pointer to the provided unit command. +func UnitCommandPtr(c UnitCommand) *UnitCommand { + return &c } // DropIn is a drop-in configuration for a systemd unit. @@ -157,6 +179,9 @@ type FileContent struct { // This for example can be used to manipulate the clear-text content before it reaches the node. // +optional TransmitUnencoded *bool `json:"transmitUnencoded,omitempty"` + // ImageRef describes a container image which contains a file. + // +optional + ImageRef *FileContentImageRef `json:"imageRef,omitempty"` } // FileContentSecretRef contains keys for referencing a file content's data from a secret in the same namespace. @@ -175,6 +200,14 @@ type FileContentInline struct { Data string `json:"data"` } +// FileContentImageRef describes a container image which contains a file +type FileContentImageRef struct { + // Image contains the container image repository with tag. + Image string `json:"image"` + // FilePathInImage contains the path in the image to the file that should be extracted. + FilePathInImage string `json:"filePathInImage"` +} + // OperatingSystemConfigStatus is the status for a OperatingSystemConfig resource. type OperatingSystemConfigStatus struct { // DefaultStatus is a structure containing common fields used by all extension resources. @@ -263,8 +296,4 @@ const ( PlainFileCodecID FileCodecID = "" // B64FileCodecID is the base64 file codec id. B64FileCodecID FileCodecID = "b64" - // GZIPFileCodecID is the gzip file codec id. - GZIPFileCodecID FileCodecID = "gzip" - // GZIPB64FileCodecID is the gzip combined with base64 codec id. - GZIPB64FileCodecID FileCodecID = "gzip+b64" ) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go index 70dd50087..fe15d3895 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go @@ -1056,6 +1056,11 @@ func (in *FileContent) DeepCopyInto(out *FileContent) { *out = new(bool) **out = **in } + if in.ImageRef != nil { + in, out := &in.ImageRef, &out.ImageRef + *out = new(FileContentImageRef) + **out = **in + } return } @@ -1069,6 +1074,22 @@ func (in *FileContent) DeepCopy() *FileContent { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FileContentImageRef) DeepCopyInto(out *FileContentImageRef) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileContentImageRef. +func (in *FileContentImageRef) DeepCopy() *FileContentImageRef { + if in == nil { + return nil + } + out := new(FileContentImageRef) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *FileContentInline) DeepCopyInto(out *FileContentInline) { *out = *in @@ -1520,7 +1541,7 @@ func (in *Unit) DeepCopyInto(out *Unit) { *out = *in if in.Command != nil { in, out := &in.Command, &out.Command - *out = new(string) + *out = new(UnitCommand) **out = **in } if in.Enable != nil { @@ -1538,6 +1559,13 @@ func (in *Unit) DeepCopyInto(out *Unit) { *out = make([]DropIn, len(*in)) copy(*out, *in) } + if in.Files != nil { + in, out := &in.Files, &out.Files + *out = make([]File, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/operator/v1alpha1/types.go b/vendor/github.com/gardener/gardener/pkg/apis/operator/v1alpha1/types.go index 2fccce0ff..19b94151a 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/operator/v1alpha1/types.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/operator/v1alpha1/types.go @@ -373,7 +373,7 @@ type KubeControllerManagerConfig struct { CertificateSigningDuration *metav1.Duration `json:"certificateSigningDuration,omitempty"` } -// Gardener contains the configuration settings for the Gardener componenets. +// Gardener contains the configuration settings for the Gardener components. type Gardener struct { // ClusterIdentity is the identity of the garden cluster. This field is immutable. // +kubebuilder:validation:MinLength=1 diff --git a/vendor/github.com/gardener/gardener/pkg/component/deploy.go b/vendor/github.com/gardener/gardener/pkg/component/deploy.go index 38914f02a..89871494b 100644 --- a/vendor/github.com/gardener/gardener/pkg/component/deploy.go +++ b/vendor/github.com/gardener/gardener/pkg/component/deploy.go @@ -14,7 +14,9 @@ package component -import "context" +import ( + "context" +) // OpDestroy creates a Deployer which calls Destroy instead of Deploy. func OpDestroy(d ...Deployer) Deployer { diff --git a/vendor/github.com/gardener/gardener/pkg/utils/errors/unwrap.go b/vendor/github.com/gardener/gardener/pkg/utils/errors/unwrap.go index d79b43d47..f751dda45 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/errors/unwrap.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/errors/unwrap.go @@ -14,7 +14,9 @@ package errors -import "errors" +import ( + "errors" +) // Unwrap unwraps and returns the root error. Multiple wrappings via `fmt.Errorf` implementations are properly taken into account. func Unwrap(err error) error { diff --git a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go index 577259707..e3f6985ed 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go @@ -31,7 +31,7 @@ func daemonSetMaxUnavailable(daemonSet *appsv1.DaemonSet) int32 { return 0 } - maxUnavailable, err := intstr.GetValueFromIntOrPercent(rollingUpdate.MaxUnavailable, int(daemonSet.Status.DesiredNumberScheduled), false) + maxUnavailable, err := intstr.GetScaledValueFromIntOrPercent(rollingUpdate.MaxUnavailable, int(daemonSet.Status.DesiredNumberScheduled), false) if err != nil { return 0 } diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go index 2d879ae9c..9674b2229 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go @@ -71,7 +71,6 @@ func (v *VPNTLSAuth) SecretData() map[string][]byte { // generateVPNKey generates PSK for OpenVPN similar as generated by `openvpn --genkey` command. func generateVPNKey() ([]byte, error) { - allowedCharacters := "0123456789abcdef" keyString, err := utils.GenerateRandomStringFromCharset(512, allowedCharacters) if err != nil { diff --git a/vendor/github.com/gardener/gardener/pkg/utils/test/test_resources.go b/vendor/github.com/gardener/gardener/pkg/utils/test/test_resources.go index 820bfb610..c58948612 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/test/test_resources.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/test/test_resources.go @@ -76,7 +76,6 @@ func ReadTestResources(scheme *runtime.Scheme, namespaceName, path string) ([]cl var objects []client.Object for _, file := range files { - if file.IsDir() { continue } @@ -108,7 +107,6 @@ func ReadTestResources(scheme *runtime.Scheme, namespaceName, path string) ([]cl } } return objects, nil - } // readDocuments reads documents from file diff --git a/vendor/github.com/gardener/gardener/test/framework/common.go b/vendor/github.com/gardener/gardener/test/framework/common.go index fb3d9cef4..0cbe01d3a 100644 --- a/vendor/github.com/gardener/gardener/test/framework/common.go +++ b/vendor/github.com/gardener/gardener/test/framework/common.go @@ -14,7 +14,9 @@ package framework -import "time" +import ( + "time" +) const ( k8sClientInitPollInterval = 20 * time.Second diff --git a/vendor/github.com/gardener/gardener/test/framework/commonframework.go b/vendor/github.com/gardener/gardener/test/framework/commonframework.go index c88dca58b..32864b08c 100644 --- a/vendor/github.com/gardener/gardener/test/framework/commonframework.go +++ b/vendor/github.com/gardener/gardener/test/framework/commonframework.go @@ -102,7 +102,6 @@ func (f *CommonFramework) BeforeEach() { // CommonAfterSuite performs necessary common steps after all tests of a suite a run func CommonAfterSuite() { - // run all registered cleanup functions RunCleanupActions() diff --git a/vendor/github.com/gardener/gardener/test/framework/errors.go b/vendor/github.com/gardener/gardener/test/framework/errors.go index c27519db3..07224c83b 100644 --- a/vendor/github.com/gardener/gardener/test/framework/errors.go +++ b/vendor/github.com/gardener/gardener/test/framework/errors.go @@ -14,7 +14,9 @@ package framework -import "errors" +import ( + "errors" +) var ( // ErrNoRepositoriesFound no repositories found in repository file diff --git a/vendor/github.com/gardener/gardener/test/framework/k8s_utils.go b/vendor/github.com/gardener/gardener/test/framework/k8s_utils.go index 82777cdca..1fee90b38 100644 --- a/vendor/github.com/gardener/gardener/test/framework/k8s_utils.go +++ b/vendor/github.com/gardener/gardener/test/framework/k8s_utils.go @@ -277,7 +277,7 @@ func DeleteAndWaitForResource(ctx context.Context, k8sClient kubernetes.Interfac } return retry.MinorError(err) } - return retry.MinorError(errors.New("Object still exists")) + return retry.MinorError(errors.New("object still exists")) }) } diff --git a/vendor/github.com/gardener/gardener/test/framework/reporter/esreporter.go b/vendor/github.com/gardener/gardener/test/framework/reporter/esreporter.go index 84e6f7652..c67fe6863 100644 --- a/vendor/github.com/gardener/gardener/test/framework/reporter/esreporter.go +++ b/vendor/github.com/gardener/gardener/test/framework/reporter/esreporter.go @@ -148,7 +148,6 @@ func (reporter *GardenerESReporter) processReport(report ginkgo.Report) { testCase.Duration = spec.RunTime.Seconds() reporter.testCases = append(reporter.testCases, testCase) - } if reporter.suite.Failures != 0 || reporter.suite.Errors != 0 { diff --git a/vendor/github.com/gardener/gardener/test/framework/test_options.go b/vendor/github.com/gardener/gardener/test/framework/test_options.go index 8274b94d6..8cebebc35 100644 --- a/vendor/github.com/gardener/gardener/test/framework/test_options.go +++ b/vendor/github.com/gardener/gardener/test/framework/test_options.go @@ -45,7 +45,6 @@ func (o *TestOptions) ApplyOptions(opts []TestOption) *TestOptions { // it should be a function that configures a ginkgo test case // This should get called when all options are applied. func (o *TestOptions) Complete(it func()) { - if len(o.AfterTests) == 0 && len(o.CAfterTests) == 0 { it() return diff --git a/vendor/github.com/gardener/gardener/test/framework/worker_utils.go b/vendor/github.com/gardener/gardener/test/framework/worker_utils.go index 039757687..46b8fc0f4 100644 --- a/vendor/github.com/gardener/gardener/test/framework/worker_utils.go +++ b/vendor/github.com/gardener/gardener/test/framework/worker_utils.go @@ -80,7 +80,7 @@ func AddWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.C machineType := cloudProfile.Spec.MachineTypes[0] - //select first machine type of CPU architecture amd64 + // select first machine type of CPU architecture amd64 for _, machine := range cloudProfile.Spec.MachineTypes { if *machine.Architecture == v1beta1constants.ArchitectureAMD64 { machineType = machine @@ -98,15 +98,17 @@ func AddWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.C return fmt.Errorf("no MachineImage that supports architecture amd64 configured in the Cloudprofile '%s'", cloudProfile.Name) } - qualifyingVersionFound, shootMachineImage, err := helper.GetLatestQualifyingShootMachineImage(*machineImage) + qualifyingVersionFound, latestImageVersion, err := helper.GetLatestQualifyingVersion(helper.ToExpirableVersions(machineImage.Versions)) if err != nil { - return err + return fmt.Errorf("an error occurred while determining the latest Shoot machine image for machine image %q: %w", machineImage.Name, err) } if !qualifyingVersionFound { return fmt.Errorf("could not add worker. No latest qualifying Shoot machine image could be determined for machine image %q. Make sure the machine image in the CloudProfile has at least one version that is not expired and not in preview", machineImage.Name) } + shootMachineImage := &gardencorev1beta1.ShootMachineImage{Name: machineImage.Name, Version: &latestImageVersion.Version} + workerName, err := generateRandomWorkerName(fmt.Sprintf("%s-", shootMachineImage.Name)) if err != nil { return err diff --git a/vendor/github.com/gardener/gardener/test/utils/access/serviceaccount.go b/vendor/github.com/gardener/gardener/test/utils/access/serviceaccount.go index 9fab2e917..9338d6dc8 100644 --- a/vendor/github.com/gardener/gardener/test/utils/access/serviceaccount.go +++ b/vendor/github.com/gardener/gardener/test/utils/access/serviceaccount.go @@ -104,7 +104,7 @@ func CreateShootClientFromStaticServiceAccountToken(ctx context.Context, shootCl return retry.Ok() }); err != nil { - return "", nil + return "", err } return string(secret.Data[corev1.ServiceAccountTokenKey]), nil diff --git a/vendor/github.com/hashicorp/errwrap/errwrap.go b/vendor/github.com/hashicorp/errwrap/errwrap.go index a733bef18..44e368e56 100644 --- a/vendor/github.com/hashicorp/errwrap/errwrap.go +++ b/vendor/github.com/hashicorp/errwrap/errwrap.go @@ -44,6 +44,8 @@ func Wrap(outer, inner error) error { // // format is the format of the error message. The string '{{err}}' will // be replaced with the original error message. +// +// Deprecated: Use fmt.Errorf() func Wrapf(format string, err error) error { outerMsg := "" if err != nil { @@ -148,6 +150,9 @@ func Walk(err error, cb WalkFunc) { for _, err := range e.WrappedErrors() { Walk(err, cb) } + case interface{ Unwrap() error }: + cb(err) + Walk(e.Unwrap(), cb) default: cb(err) } @@ -167,3 +172,7 @@ func (w *wrappedError) Error() string { func (w *wrappedError) WrappedErrors() []error { return []error{w.Outer, w.Inner} } + +func (w *wrappedError) Unwrap() error { + return w.Inner +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 1da45d85a..915d0fe34 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -36,8 +36,8 @@ github.com/cespare/xxhash/v2 # github.com/coreos/go-systemd/v22 v22.5.0 ## explicit; go 1.12 github.com/coreos/go-systemd/v22/unit -# github.com/cyphar/filepath-securejoin v0.2.2 -## explicit +# github.com/cyphar/filepath-securejoin v0.2.3 +## explicit; go 1.13 github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.1 ## explicit @@ -76,7 +76,7 @@ github.com/gardener/etcd-druid/api/v1alpha1 ## explicit; go 1.19 github.com/gardener/external-dns-management/pkg/apis/dns github.com/gardener/external-dns-management/pkg/apis/dns/v1alpha1 -# github.com/gardener/gardener v1.82.1 +# github.com/gardener/gardener v1.83.0 ## explicit; go 1.21 github.com/gardener/gardener/.github github.com/gardener/gardener/.github/ISSUE_TEMPLATE @@ -278,7 +278,7 @@ github.com/google/pprof/profile # github.com/google/uuid v1.3.0 ## explicit github.com/google/uuid -# github.com/hashicorp/errwrap v1.0.0 +# github.com/hashicorp/errwrap v1.1.0 ## explicit github.com/hashicorp/errwrap # github.com/hashicorp/go-multierror v1.1.1