From 55a8fdac17c0fb785f1879d313f3110e124bf8ad Mon Sep 17 00:00:00 2001 From: Tam Mach Date: Fri, 5 Sep 2025 14:17:12 +1000 Subject: [PATCH 001/176] helm: Cleanup KPR values for old cilium versions The current accepted values for KPR are true and false only, hence other value will break helm install even if upgradeCompatibility is set to older versions (e.g. 1.8, 1.9, 1.12). Signed-off-by: Tam Mach --- install/kubernetes/cilium/templates/cilium-configmap.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/install/kubernetes/cilium/templates/cilium-configmap.yaml b/install/kubernetes/cilium/templates/cilium-configmap.yaml index edaea581bd18a..5e2cacf8672a1 100644 --- a/install/kubernetes/cilium/templates/cilium-configmap.yaml +++ b/install/kubernetes/cilium/templates/cilium-configmap.yaml @@ -33,12 +33,6 @@ {{- end }} {{- $defaultBpfCtTcpMax = 0 -}} {{- $defaultBpfCtAnyMax = 0 -}} - {{- $defaultKubeProxyReplacement = "probe" -}} -{{- end -}} - -{{- /* Default values when 1.9 was initially deployed */ -}} -{{- if semverCompare ">=1.9" (default "1.9" .Values.upgradeCompatibility) -}} - {{- $defaultKubeProxyReplacement = "probe" -}} {{- end -}} {{- /* Default values when 1.10 was initially deployed */ -}} @@ -52,7 +46,6 @@ {{- if .Values.azure.enabled }} {{- $azureUsePrimaryAddress = "false" -}} {{- end }} - {{- $defaultKubeProxyReplacement = "disabled" -}} {{- $defaultDNSProxyEnableTransparentMode = "true" -}} {{- end -}} From 574fd11641031c0fa68a538bf2e6cc82b970b229 Mon Sep 17 00:00:00 2001 From: iofq Date: Tue, 9 Sep 2025 11:26:20 -0500 Subject: [PATCH 002/176] docs: document request-timeout ingress annotation Documents the request-timeout ingress annotation. Signed-off-by: iofq --- Documentation/network/servicemesh/ingress.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Documentation/network/servicemesh/ingress.rst b/Documentation/network/servicemesh/ingress.rst index 0711486f63a41..89596373d125f 100644 --- a/Documentation/network/servicemesh/ingress.rst +++ b/Documentation/network/servicemesh/ingress.rst @@ -183,11 +183,18 @@ Supported Ingress Annotations | ``enforce-ingress-https`` configuration | file setting (or ``ingressController.enforceHttps`` | in Helm). - | + | | Any host with TLS config will have redirects to | HTTPS configured for each match specified in the | Ingress. - unspecified + * - ``ingress.cilium.io/request-timeout`` + - | Request timeout in seconds for Ingress backend HTTP requests. + | + | Note that if the annotation is present, it will override + | any value set by the ``ingress-default-request-timeout`` operator flag. + | If neither is set, defaults to ``0`` (no limit) + - ``0`` Additionally, cloud-provider specific annotations for the LoadBalancer Service are supported. @@ -334,7 +341,7 @@ Cilium's Ingress features: http ingress-and-network-policy - path-types + path-types grpc tls-termination tls-default-certificate From 169ad8c1db5a11b9316036e4a645530c97e85328 Mon Sep 17 00:00:00 2001 From: Timo Beckers Date: Wed, 10 Sep 2025 16:58:32 +0200 Subject: [PATCH 003/176] analyze: add test for concurrent calls to Reachability() on the same Blocks cilium/cilium#41616 found a data race in setting Block.predict. Block was never meant to be changed during reachability analysis; all bookkeeping must be done out-of-band (like the live bitmap). This test reliably triggers the race (and others like it) when run with -race. Signed-off-by: Timo Beckers --- pkg/bpf/analyze/reachability_test.go | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/pkg/bpf/analyze/reachability_test.go b/pkg/bpf/analyze/reachability_test.go index 1a5ecf5032a1e..39cadc225f829 100644 --- a/pkg/bpf/analyze/reachability_test.go +++ b/pkg/bpf/analyze/reachability_test.go @@ -13,6 +13,7 @@ import ( "github.com/cilium/ebpf/asm" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "golang.org/x/sync/errgroup" ) // Simple example with a `__config_use_map_b` Variable acting as a feature flag. @@ -226,6 +227,36 @@ func TestReachabilityLongJump(t *testing.T) { assert.True(t, enabled.isLive(3)) } +// Test that Reachability can be called concurrently. This is a regression test +// for data races in Blocks and Block. Block should never be modified by +// reachability analysis as it is shared across all users of (copies of) a +// CollectionSpec. +func TestReachabilityConcurrent(t *testing.T) { + spec, err := ebpf.LoadCollectionSpec("../testdata/unused-map-pruning.o") + require.NoError(t, err) + + obj := struct { + Program *ebpf.ProgramSpec `ebpf:"sample_program"` + UseMapB *ebpf.VariableSpec `ebpf:"__config_use_map_b"` + }{} + require.NoError(t, spec.Assign(&obj)) + + // Predict first branch as taken. + obj.UseMapB.Set(true) + + blocks, err := computeBlocks(obj.Program.Instructions) + require.NoError(t, err) + + var eg errgroup.Group + for range 2 { + eg.Go(func() error { + _, err := Reachability(blocks, obj.Program.Instructions, VariableSpecs(spec.Variables)) + return err + }) + } + require.NoError(t, eg.Wait()) +} + func BenchmarkReachability(b *testing.B) { b.ReportAllocs() From 57fe6ec050c61fda0f508147825a81577356f3f5 Mon Sep 17 00:00:00 2001 From: Timo Beckers Date: Wed, 10 Sep 2025 17:46:54 +0200 Subject: [PATCH 004/176] analyze: store branch prediction result in bitmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Block should not be modified as it's shared between users of (copies of) a CollectionSpec. Store prediction results out-of-band instead. Changing visitBlock() to take a Block instead of a *Block was considered in addition, but proved too costly due to the amount of copying required. goos: linux goarch: amd64 pkg: github.com/cilium/cilium/pkg/bpf/analyze cpu: AMD Ryzen 7 3700X 8-Core Processor │ old.txt │ new.txt │ │ sec/op │ sec/op vs base │ ComputeBlocks-16 642.5µ ± 1% 645.0µ ± 2% ~ (p=0.699 n=6) Reachability-16 31.39µ ± 4% 33.83µ ± 2% +7.78% (p=0.002 n=6) geomean 142.0µ 147.7µ +4.02% │ old.txt │ new.txt │ │ B/op │ B/op vs base │ ComputeBlocks-16 372.6Ki ± 0% 372.6Ki ± 0% +0.01% (p=0.002 n=6) Reachability-16 8.172Ki ± 0% 8.328Ki ± 0% +1.91% (p=0.002 n=6) geomean 55.18Ki 55.71Ki +0.96% │ old.txt │ new.txt │ │ allocs/op │ allocs/op vs base │ ComputeBlocks-16 8.054k ± 0% 8.054k ± 0% ~ (p=1.000 n=6) ¹ Reachability-16 3.000 ± 0% 4.000 ± 0% +33.33% (p=0.002 n=6) geomean 155.4 179.5 +15.47% ¹ all samples are equal Signed-off-by: Timo Beckers --- pkg/bpf/analyze/blocks.go | 31 ++++++++++++++++++------------- pkg/bpf/analyze/reachability.go | 27 ++++++++++++++------------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/pkg/bpf/analyze/blocks.go b/pkg/bpf/analyze/blocks.go index e6b80236e4075..40a78e6fd3f56 100644 --- a/pkg/bpf/analyze/blocks.go +++ b/pkg/bpf/analyze/blocks.go @@ -170,7 +170,6 @@ type Block struct { predecessors []*Block branch *Block fthrough *Block - predict uint8 } func (b *Block) leader(insns asm.Instructions) *leader { @@ -312,17 +311,6 @@ func (b *Block) Dump(insns asm.Instructions) string { sb.WriteString("\n") } - if b.predict != 0 { - sb.WriteString("Predict: ") - switch b.predict { - case 1: - sb.WriteString("branch taken\n") - case 2: - sb.WriteString("fallthrough taken\n") - default: - } - } - return sb.String() } @@ -350,6 +338,10 @@ type Blocks struct { // l is a bitmap tracking reachable blocks. l bitmap + + // j is a bitmap tracking predicted jumps. If the nth bit is 1, the jump + // at the end of block n is predicted to always be taken. + j bitmap } // LiveInstructions returns a sequence of [asm.Instruction]s held by Blocks. The @@ -439,7 +431,20 @@ func (bl *Blocks) Dump(insns asm.Instructions) string { for _, block := range bl.b { sb.WriteString(fmt.Sprintf("\n=== Block %d ===\n", block.id)) sb.WriteString(block.Dump(insns)) - sb.WriteString(fmt.Sprintf("Live: %t\n", bl.l.get(uint64(block.id)))) + + // No reachability information yet. + if len(bl.l) == 0 { + continue + } + + sb.WriteString(fmt.Sprintf("Live: %t, ", bl.l.get(uint64(block.id)))) + sb.WriteString("branch: ") + if bl.j.get(uint64(block.id)) { + sb.WriteString("jump") + } else { + sb.WriteString("fallthrough") + } + sb.WriteString("\n") } return sb.String() } diff --git a/pkg/bpf/analyze/reachability.go b/pkg/bpf/analyze/reachability.go index ec189dfc61a0f..64d0805a50969 100644 --- a/pkg/bpf/analyze/reachability.go +++ b/pkg/bpf/analyze/reachability.go @@ -142,13 +142,15 @@ func Reachability(blocks *Blocks, insns asm.Instructions, variables map[string]V } live := newBitmap(uint64(blocks.count())) + jumps := newBitmap(uint64(blocks.count())) // Start recursing at first block since it is always live. - if err := visitBlock(blocks.first(), insns, vars, live); err != nil { + if err := visitBlock(blocks.first(), insns, vars, live, jumps); err != nil { return nil, fmt.Errorf("predicting blocks: %w", err) } blocks.l = live + blocks.j = jumps return blocks, nil } @@ -232,11 +234,11 @@ type mapOffset struct { // unpredictableBlock is called when the branch cannot be predicted. It visits // both the branch and fallthrough blocks. -func unpredictableBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpec, live bitmap) error { - if err := visitBlock(b.branch, insns, vars, live); err != nil { +func unpredictableBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpec, live, jumps bitmap) error { + if err := visitBlock(b.branch, insns, vars, live, jumps); err != nil { return fmt.Errorf("visiting branch block %d: %w", b.branch.id, err) } - if err := visitBlock(b.fthrough, insns, vars, live); err != nil { + if err := visitBlock(b.fthrough, insns, vars, live, jumps); err != nil { return fmt.Errorf("visiting fallthrough block %d: %w", b.fthrough.id, err) } return nil @@ -244,7 +246,7 @@ func unpredictableBlock(b *Block, insns asm.Instructions, vars map[mapOffset]Var // visitBlock recursively visits a block and its successors to determine // reachability based on the branch instructions and the provided vars. -func visitBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpec, live bitmap) error { +func visitBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpec, live, jumps bitmap) error { if b == nil { return nil } @@ -260,17 +262,17 @@ func visitBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpe branch := findBranch(pull) if branch == nil { - return unpredictableBlock(b, insns, vars, live) + return unpredictableBlock(b, insns, vars, live, jumps) } deref := findDereference(pull, branch.Dst) if deref == nil { - return unpredictableBlock(b, insns, vars, live) + return unpredictableBlock(b, insns, vars, live, jumps) } load := findMapLoad(pull, deref.Src) if load == nil { - return unpredictableBlock(b, insns, vars, live) + return unpredictableBlock(b, insns, vars, live, jumps) } // TODO(tb): evalBranch doesn't currently take the deref's offset field into @@ -278,7 +280,7 @@ func visitBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpe // to be more robust and remove this limitation. vs := lookupVariable(load, vars) if vs == nil || !vs.Constant() || vs.Size() > 8 { - return unpredictableBlock(b, insns, vars, live) + return unpredictableBlock(b, insns, vars, live, jumps) } jump, err := evalBranch(branch, vs) @@ -288,13 +290,12 @@ func visitBlock(b *Block, insns asm.Instructions, vars map[mapOffset]VariableSpe // If the branch is always taken, only visit the branch target. if jump { - b.predict = 1 - return visitBlock(b.branch, insns, vars, live) + jumps.set(b.id, true) + return visitBlock(b.branch, insns, vars, live, jumps) } // Otherwise, only visit the fallthrough target. - b.predict = 2 - return visitBlock(b.fthrough, insns, vars, live) + return visitBlock(b.fthrough, insns, vars, live, jumps) } // lookupVariable retrieves the VariableSpec for the given load instruction from From a860170c107dcb1c295491b1bd638d7d392945b1 Mon Sep 17 00:00:00 2001 From: Ben Bigdelle Date: Thu, 27 Feb 2025 16:17:56 +0000 Subject: [PATCH 005/176] feat: add IPv4 packet tracing via IP options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change introduces a new feature that allows for tracing IPv4 packets with an embedded a trace ID in its IP option. Code changes include creating the feature flag, parsing, and the BPF map to store the trace ID. The following changes are included: - A new feature-gate, `ip-tracing-option-type`, is added to enable and configure the IP option type to be used for tracing. - Helper functions are implemented to parse IPv4 options and extract the trace ID. - Logic is added to save the parsed IPv4 options into a per-CPU array map, which can then be used by other parts of the system.  Signed-off-by: Ben Bigdelle --- Documentation/cmdref/cilium-agent.md | 1 + bpf/include/bpf/config/node.h | 2 + bpf/lib/ip_options.h | 190 +++++ bpf/lib/trace_helpers.h | 63 ++ bpf/tests/ip_options_trace_id.c | 975 ++++++++++++++++++++++ daemon/cmd/daemon_main.go | 3 + pkg/datapath/config/node_config.go | 4 +- pkg/datapath/loader/config.go | 2 + pkg/datapath/loader/verifier_load_test.go | 6 + pkg/defaults/defaults.go | 3 + pkg/option/config.go | 9 + 11 files changed, 1257 insertions(+), 1 deletion(-) create mode 100644 bpf/lib/ip_options.h create mode 100644 bpf/lib/trace_helpers.h create mode 100644 bpf/tests/ip_options_trace_id.c diff --git a/Documentation/cmdref/cilium-agent.md b/Documentation/cmdref/cilium-agent.md index c609d7849d054..2a32269998644 100644 --- a/Documentation/cmdref/cilium-agent.md +++ b/Documentation/cmdref/cilium-agent.md @@ -263,6 +263,7 @@ cilium-agent [flags] --install-no-conntrack-iptables-rules Install Iptables rules to skip netfilter connection tracking on all pod traffic. This option is only effective when Cilium is running in direct routing and full KPR mode. Moreover, this option cannot be enabled when Cilium is running in a managed Kubernetes environment or in a chained CNI setup. --install-uplink-routes-for-delegated-ipam Install ingress/egress routes through uplink on host for Pods when working with delegated IPAM plugin. --ip-masq-agent-config-path string ip-masq-agent configuration file path (default "/etc/config/ip-masq-agent") + --ip-tracing-option-type uint8 Specifies what IPv4 option type should be used to extract trace information from a packet; a value of 0 (default) disables IP tracing. --ipam string Backend to use for IPAM (default "cluster-pool") --ipam-cilium-node-update-rate duration Maximum rate at which the CiliumNode custom resource is updated (default 15s) --ipam-default-ip-pool string Name of the default IP Pool when using multi-pool (default "default") diff --git a/bpf/include/bpf/config/node.h b/bpf/include/bpf/config/node.h index dc017e814198b..1e1b64bbb2364 100644 --- a/bpf/include/bpf/config/node.h +++ b/bpf/include/bpf/config/node.h @@ -29,3 +29,5 @@ NODE_CONFIG(__u32, direct_routing_dev_ifindex, "Index of the interface used to c NODE_CONFIG(bool, supports_fib_lookup_skip_neigh, "Whether or not BPF_FIB_LOOKUP_SKIP_NEIGH is supported.") + +NODE_CONFIG(__u8, tracing_ip_option_type, "The IP option type to use for packet tracing") diff --git a/bpf/lib/ip_options.h b/bpf/lib/ip_options.h new file mode 100644 index 0000000000000..4ee6b5e1a88f5 --- /dev/null +++ b/bpf/lib/ip_options.h @@ -0,0 +1,190 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* Copyright Authors of Cilium */ + +#include "common.h" + +/* Length of the initial supported IPv4 trace_id option (4 bytes). + * IPv4 IP options consist of 2 fixed bytes for the type and length, + * followed by a variable-length data field. An option length of 4 bytes + * indicates 2 fixed bytes for the type and length fields, and 2 bytes of + * ip_trace_id data. + */ +#define OPT16_LEN 4 + +/* Length of the second supported IPv4 trace_id option (6 bytes). + * Indicates 4 bytes of ip_trace_id data. + */ +#define OPT32_LEN 6 + +/* Length of the third supported IPv4 trace_id option (10 bytes). + * Indicates 8 bytes of ip_trace_id data. + */ +#define OPT64_LEN 10 + +/* Maximum number of IPv4 options to process. */ +#define MAX_IPV4_OPTS 3 + +/* The minimum value for IHL which corresponds to a packet with no options. + * + * A standard IP packet header has 20 bytes and the IHL is the number of 32 byte + * words. + */ +#define IHL_WITH_NO_OPTS 5 + +/* Signifies that options were parsed correctly but no trace ID was found. */ +#define TRACE_ID_NOT_FOUND 0 + +/* Signifies a failure to determine the trace ID based on an unspecified error. */ +#define TRACE_ID_ERROR -1 + +/* Signifies that the trace ID was found but it was invalid. */ +#define TRACE_ID_INVALID -2 + +/* Signifies a failure to determine trace ID because the IP family was not found. */ +#define TRACE_ID_NO_FAMILY -3 + +/* Signifies a failure to determine trace ID because the IP option length was + * not supported. + */ +#define TRACE_ID_UNSUPPORTED_LENGTH_ERROR -4 + +/* Signifies trace points which are being ignored because they're in IPv6 + * code and not supported yet. + */ +#define TRACE_ID_SKIP_IPV6 -100 + +/* trace_id_from_ip4 parses the IP options and returns the trace ID. + * + * See trace_id_from_ctx for more info. + */ +static __always_inline int +trace_id_from_ip4(struct __ctx_buff *ctx, __s64 *value, + const struct iphdr *ip4, + __u8 trace_ip_opt_type) +{ + __u8 opt_type; + __u32 offset; + __u8 optlen; + __u32 end; + int i; + + if (ip4->ihl <= IHL_WITH_NO_OPTS) + return TRACE_ID_NOT_FOUND; + + offset = ETH_HLEN + sizeof(struct iphdr); + end = offset + (ip4->ihl << 2); + +#pragma unroll(MAX_IPV4_OPTS) + for (i = 0; i < MAX_IPV4_OPTS && offset < end; i++) { + /* We load the option header 1 field at a time since different types + * have different formats. + * + * "Options 0 and 1 are exactly one octet which is their type field. All + * other options have their one octet type field, followed by a one + * octet length field, followed by length-2 octets of option data." + * + * Ref: https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml + */ + + if (ctx_load_bytes(ctx, offset, &opt_type, 1) < 0) + return TRACE_ID_ERROR; + + if (opt_type == IPOPT_END) + break; + + if (opt_type == IPOPT_NOOP) { + offset++; + continue; + } + + if (ctx_load_bytes(ctx, offset + 1, &optlen, 1) < 0) + return TRACE_ID_ERROR; + + if (opt_type != trace_ip_opt_type) { + offset += optlen; + continue; + } + + if (optlen != OPT16_LEN && optlen != OPT32_LEN && optlen != OPT64_LEN) + return TRACE_ID_INVALID; + + switch (optlen) { + case OPT16_LEN: { + __s16 temp; + + if (ctx_load_bytes(ctx, offset + 2, &temp, sizeof(temp)) < 0) + return TRACE_ID_ERROR; + *value = bpf_ntohs(temp); + return 0; + } + case OPT32_LEN: { + __s32 temp; + + if (ctx_load_bytes(ctx, offset + 2, &temp, sizeof(temp)) < 0) + return TRACE_ID_ERROR; + *value = bpf_ntohl(temp); + return 0; + } + case OPT64_LEN: { + __s64 temp; + + if (ctx_load_bytes(ctx, offset + 2, &temp, sizeof(temp)) < 0) + return TRACE_ID_ERROR; + *value = __bpf_be64_to_cpu(temp); + return 0; + } + default: + return TRACE_ID_UNSUPPORTED_LENGTH_ERROR; + } + } + return TRACE_ID_NOT_FOUND; +} + +/* + * Parses the context to extract the trace ID from the IP options. + * + * Arguments: + * - ctx: The context buffer from which the IP options will be read. + * - value: A pointer to an __s64 where the resulting trace ID will be stored. + * - ip_opt_type_value: The type value of the IP option that contains the trace ID. + * + * Prerequisites: + * - Supports reading a trace ID embedded in IP options with lengths of 2, 4, or 8 bytes. + * - No support for trace_ids that are not 2, 4, or 8 bytes. + * + * Outputs: + * - Returns 0 if the trace ID is found. + * - Returns TRACE_ID_NOT_FOUND if no trace ID is found in the options. + * - Returns TRACE_ID_INVALID if the found trace ID is invalid (e.g., non-positive). + * - Returns TRACE_ID_ERROR if there is an error during parsing. + * - Returns TRACE_ID_NO_FAMILY if the packet is not IPv4. + * - Returns TRACE_ID_SKIP_IPV6 if the packet is IPv6. + */ +static __always_inline int +trace_id_from_ctx(struct __ctx_buff *ctx, __s64 *value, __u8 ip_opt_type_value) +{ + void *data, *data_end; + __s64 trace_id = 0; + struct iphdr *ip4; + __u16 proto; + int ret; + + if (!validate_ethertype(ctx, &proto)) + return TRACE_ID_ERROR; + + if (proto == bpf_htons(ETH_P_IPV6)) + return TRACE_ID_SKIP_IPV6; + + if (proto != bpf_htons(ETH_P_IP)) + return TRACE_ID_NO_FAMILY; + + if (!revalidate_data(ctx, &data, &data_end, &ip4)) + return TRACE_ID_ERROR; + + ret = trace_id_from_ip4(ctx, &trace_id, ip4, ip_opt_type_value); + if (IS_ERR(ret)) + return ret; + + *value = trace_id; + return 0; +} diff --git a/bpf/lib/trace_helpers.h b/bpf/lib/trace_helpers.h new file mode 100644 index 0000000000000..ac8e99c162cf6 --- /dev/null +++ b/bpf/lib/trace_helpers.h @@ -0,0 +1,63 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* Copyright Authors of Cilium */ + +#pragma once + +#include +#include +#include "common.h" +#include "ip_options.h" + +/* Define the ip trace ID map with __u64 trace_id */ +struct { + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __uint(max_entries, 1); + __type(key, __u32); /* only one key */ + __type(value, __u64); /* trace_id type */ + __uint(pinning, LIBBPF_PIN_BY_NAME); +} cilium_percpu_trace_id __section_maps_btf; + +/* bpf_trace_id_set sets the trace_id in the map. */ +static __always_inline void bpf_trace_id_set(__u64 trace_id) +{ + __u32 zero = 0; + __u64 *value = map_lookup_elem(&cilium_percpu_trace_id, &zero); + + if (value) + *value = trace_id; +} + +/* bpf_trace_id_get retrieves the trace_id from the map. */ +static __always_inline __u64 bpf_trace_id_get(void) +{ + __u32 zero = 0; + __u64 *value = map_lookup_elem(&cilium_percpu_trace_id, &zero); + + if (value) + return *value; + return 0; +} + +/* Function to parse and store the trace_id if the feature is enabled. */ +static __always_inline void +check_and_store_ip_trace_id(struct __ctx_buff *ctx) +{ + __s64 trace_id = 0; + int ret; + + if (CONFIG(tracing_ip_option_type) == 0) { + bpf_trace_id_set(0); + return; + } + + ret = trace_id_from_ctx(ctx, &trace_id, CONFIG(tracing_ip_option_type)); + if (IS_ERR(ret)) + bpf_trace_id_set(0); + else + bpf_trace_id_set(trace_id); +} + +static __always_inline __u64 load_ip_trace_id(void) +{ + return bpf_trace_id_get(); +} diff --git a/bpf/tests/ip_options_trace_id.c b/bpf/tests/ip_options_trace_id.c new file mode 100644 index 0000000000000..59eefcfa7f590 --- /dev/null +++ b/bpf/tests/ip_options_trace_id.c @@ -0,0 +1,975 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +/* Copyright Authors of Cilium */ + +#include +#include "common.h" +#include "pktgen.h" +#include "node_config.h" + +#define DEBUG +#include + +/* Used to define IP options for packet generation. */ +struct ipopthdr { + /* type field of the IP option. */ + __u8 type; + /* len field of the IP option. Usually equal to total length of the IP + * option, including type and len. Can be specified different from data + * length for testing purposes. If zero, it will not be written to the + * packet, so that tests can specify single-byte options. + */ + __u8 len; + /* Arbitrary data for the payload of the IP option. */ + __u8 *data; + /* Length of the data field in bytes. Must match exactly. */ + __u8 data_len; +}; + +/* Injects a packet into the ctx with the IPv4 options specified. See comments + * on the struct for more details on how to specify options. The total byte + * content of the options must align on 4-byte boundaries so that the IHL can be + * accurate. + * opts_len: the number of options in opts. + * opts_bytes: the total number of bytes in options. + */ +static __always_inline __maybe_unused int +gen_packet_with_options(struct __sk_buff *ctx, + const struct ipopthdr *opts, + __u8 opts_len, __u8 opt_bytes) +{ + struct pktgen builder; + struct iphdr *l3; + __u8 *new_opt; + int i, j, new_opt_len; + + if (opt_bytes % 4 != 0) + return TEST_ERROR; + pktgen__init(&builder, ctx); + if (!pktgen__push_ethhdr(&builder)) + return TEST_ERROR; + l3 = pktgen__push_default_iphdr_with_options(&builder, opt_bytes / 4); + if (!l3) + return TEST_ERROR; + + new_opt = (__u8 *)&l3[1]; + for (i = 0; i < opts_len; i++) { + new_opt_len = 0; + new_opt[0] = opts[i].type; + new_opt_len++; + if (opts[i].len != 0) { + new_opt[new_opt_len] = opts[i].len; + new_opt_len++; + } + for (j = 0; j < opts[i].data_len; j++) { + new_opt[new_opt_len] = opts[i].data[j]; + new_opt_len++; + } + new_opt += new_opt_len; + } + if (!pktgen__push_data(&builder, default_data, sizeof(default_data))) + return TEST_ERROR; + pktgen__finish(&builder); + return TEST_PASS; +} + +/* Following section has tests for trace ID feature for packet + * validation and preprocessing. + */ + +/* Test packet with no l3 header should return TRACE_ID_ERROR. */ +PKTGEN("tc", "extract_trace_id_with_no_l3_header_error") +int test_extract_trace_id_with_no_l3_header_error_pktgen(struct __ctx_buff *ctx) +{ + struct pktgen builder; + + pktgen__init(&builder, ctx); + if (!pktgen__push_ethhdr(&builder)) + return TEST_ERROR; + if (!pktgen__push_data(&builder, default_data, sizeof(default_data))) + return TEST_ERROR; + pktgen__finish(&builder); + return TEST_PASS; +} + +CHECK("tc", "extract_trace_id_with_no_l3_header_error") +int test_extract_trace_id_with_no_l3_header_error_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_ERROR; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test packet with no eth header should return TRACE_ID_NO_FAMILY. */ +PKTGEN("tc", "extract_trace_id_with_no_eth_header_no_family") +int test_extract_trace_id_with_no_eth_header_no_family_pktgen(struct __ctx_buff *ctx) +{ + struct pktgen builder; + + pktgen__init(&builder, ctx); + if (!pktgen__push_data(&builder, default_data, sizeof(default_data))) + return TEST_ERROR; + pktgen__finish(&builder); + return TEST_PASS; +} + +CHECK("tc", "extract_trace_id_with_no_eth_header_no_family") +int test_extract_trace_id_with_no_eth_header_no_family_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_NO_FAMILY; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test packet with IPv6 header should return TRACE_ID_SKIP_IPV6. */ +PKTGEN("tc", "extract_trace_id_no_ipv6_options") +int test_extract_trace_id_no_ipv6_options_pktgen(struct __ctx_buff *ctx) +{ + struct pktgen builder; + + pktgen__init(&builder, ctx); + if (!pktgen__push_ethhdr(&builder)) + return TEST_ERROR; + if (!pktgen__push_default_ipv6hdr(&builder)) + return TEST_ERROR; + if (!pktgen__push_data(&builder, default_data, sizeof(default_data))) + return TEST_ERROR; + + pktgen__finish(&builder); + return TEST_PASS; +} + +CHECK("tc", "extract_trace_id_no_ipv6_options") +int test_extract_trace_id_no_ipv6_options_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_SKIP_IPV6; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test a single option specifying the trace ID with no special cases. */ +PKTGEN("tc", "extract_trace_id_solo") +int test_extract_trace_id_solo_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + }; + return gen_packet_with_options(ctx, opts, 1, 4); +} + +CHECK("tc", "extract_trace_id_solo") +int test_extract_trace_id_solo_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 1; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test packet with IPv4 header should return TRACE_ID_NOT_FOUND. */ +PKTGEN("tc", "extract_trace_id_no_ipv4_options") +int test_extract_trace_id_no_options_pktgen(struct __ctx_buff *ctx) +{ + struct pktgen builder; + + pktgen__init(&builder, ctx); + if (!pktgen__push_ethhdr(&builder)) + return TEST_ERROR; + if (!pktgen__push_iphdr(&builder, 0)) + return TEST_ERROR; + if (!pktgen__push_data(&builder, default_data, sizeof(default_data))) + return TEST_ERROR; + + pktgen__finish(&builder); + return TEST_PASS; +} + +CHECK("tc", "extract_trace_id_no_ipv4_options") +int test_extract_trace_id_no_options_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_NOT_FOUND; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test trace ID after END should return TRACE_ID_NOT_FOUND. */ +PKTGEN("tc", "extract_trace_id_after_ipopt_end_not_found") +int test_extract_trace_id_after_ipopt_end_not_found_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = IPOPT_END, + .len = 0, + .data_len = 0, + }, + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + /* Add padding to align on 4-byte boundary. */ + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + }; + return gen_packet_with_options(ctx, opts, 5, 8); +} + +CHECK("tc", "extract_trace_id_after_ipopt_end_not_found") +int test_extract_trace_id_after_ipopt_end_not_found_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_NOT_FOUND; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test trace ID comes after loop limit should return TRACE_ID_NOT_FOUND. */ +PKTGEN("tc", "extract_trace_id_after_loop_limit_not_found") +int test_extract_trace_id_after_loop_limit_not_found_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + /* The loop limit is 3 so the following options are ignored. */ + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + }; + return gen_packet_with_options(ctx, opts, 5, 8); +} + +CHECK("tc", "extract_trace_id_after_loop_limit_not_found") +int test_extract_trace_id_after_loop_limit_not_found_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_NOT_FOUND; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test three options with the trace ID option being first. */ +PKTGEN("tc", "extract_trace_id_first_of_three") +int test_extract_trace_id_first_of_three_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + { + .type = 10, + .len = 4, + .data = (__u8 *)"\x10\x10", + .data_len = 2, + }, + { + .type = 11, + .len = 4, + .data = (__u8 *)"\x11\x11", + .data_len = 2, + }, + }; + return gen_packet_with_options(ctx, opts, 3, 12); +} + +CHECK("tc", "extract_trace_id_first_of_three") +int test_extract_trace_id_first_of_three_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 1; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test three options with the trace ID option being between the other two. */ +PKTGEN("tc", "extract_trace_id_middle_of_three") +int test_extract_trace_id_middle_of_three_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 10, + .len = 4, + .data = (__u8 *)"\x10\x10", + .data_len = 2, + }, + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + { + .type = 11, + .len = 4, + .data = (__u8 *)"\x11\x11", + .data_len = 2, + }, + }; + return gen_packet_with_options(ctx, opts, 3, 12); +} + +CHECK("tc", "extract_trace_id_middle_of_three") +int test_extract_trace_id_middle_of_three_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 1; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test three options with the trace ID option being last of the three. */ +PKTGEN("tc", "extract_trace_id_last_of_three") +int test_extract_trace_id_last_of_three_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 10, + .len = 4, + .data = (__u8 *)"\x10\x10", + .data_len = 2, + }, + { + .type = 11, + .len = 4, + .data = (__u8 *)"\x11\x11", + .data_len = 2, + }, + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + }; + + return gen_packet_with_options(ctx, opts, 3, 12); +} + +CHECK("tc", "extract_trace_id_last_of_three") +int test_extract_trace_id_last_of_three_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 1; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test multiple options with the trace ID coming after a NOOP option. */ +PKTGEN("tc", "extract_trace_id_after_ipopt_noop") +int test_extract_trace_id_after_ipopt_noop_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = IPOPT_NOOP, + .len = 0, /* Single byte option. */ + .data_len = 0, + }, + { + .type = IPOPT_NOOP, + .len = 0, /* Single byte option. */ + .data_len = 0, + }, + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + { + .type = IPOPT_NOOP, + .len = 0, /* Single byte option. */ + .data_len = 0, + }, + { + .type = IPOPT_NOOP, + .len = 0, /* Single byte option. */ + .data_len = 0, + }, + }; + return gen_packet_with_options(ctx, opts, 5, 8); +} + +CHECK("tc", "extract_trace_id_after_ipopt_noop") +int test_extract_trace_id_after_ipopt_noop_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 1; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test multiple options with the trace ID not present should return TRACE_ID_NOT_FOUND. */ +PKTGEN("tc", "extract_trace_id_not_found_with_other_options") +int test_extract_trace_id__not_found_with_other_options_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 10, + .len = 4, + .data = (__u8 *)"\x10\x10", + .data_len = 2, + }, + { + .type = 11, + .len = 4, + .data = (__u8 *)"\x11\x11", + .data_len = 2, + }, + }; + + return gen_packet_with_options(ctx, opts, 2, 8); +} + +CHECK("tc", "extract_trace_id_not_found_with_other_options") +int test_extract_trace_id_not_found_with_other_options_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_NOT_FOUND; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test trace ID with incorrect length field should return INVALID. */ +PKTGEN("tc", "extract_trace_id_wrong_len_invalid") +int test_extract_trace_id_wrong_len_invalid_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 3, /* Invalid length with this option. */ + .data = (__u8 *)"\x00\x01", + .data_len = 2, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 4); +} + +CHECK("tc", "extract_trace_id_wrong_len_invalid") +int test_extract_trace_id_wrong_len_invalid_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_INVALID; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test trace ID with negative value should return TRACE_ID_INVALID. */ +PKTGEN("tc", "extract_trace_id_negative") +int test_extract_trace_id_negative_invalid_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 4, + .data = (__u8 *)"\x80\x01", + .data_len = 2, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 4); +} + +CHECK("tc", "extract_trace_id_negative") +int test_extract_trace_id_negative_invalid_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x8001; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + + test_finish(); +} + +/* Store and read trace ID to different option than stream ID with 2 bytes of data. */ +PKTGEN("tc", "extract_trace_id_different_option_type") +int test_extract_trace_id_different_option_type_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 137, + .len = 4, + .data = (__u8 *)"\x00\x02", + .data_len = 2, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 4); +} + +CHECK("tc", "extract_trace_id_different_option_type") +int test_extract_trace_id_different_option_type_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x0002; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 137); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Read trace ID from wrong IP option. */ +PKTGEN("tc", "extract_read_trace_id_wrong_option_type") +int test_extract_read_trace_id_wrong_option_type_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 137, + .len = 4, + .data = (__u8 *)"\x00\x02", + .data_len = 2, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 4); +} + +CHECK("tc", "extract_read_trace_id_wrong_option_type") +int test_extract_read_trace_id_wrong_option_type_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_NOT_FOUND; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %d; want %d\n", trace_id, want); + test_finish(); +} + +/* Test a valid 4-byte trace ID. */ +PKTGEN("tc", "extract_trace_id_4_bytes_valid") +int test_extract_trace_id_4_bytes_valid_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 6, + .data = (__u8 *)"\x00\x01\x23\x45", + .data_len = 4, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 8); +} + +CHECK("tc", "extract_trace_id_4_bytes_valid") +int test_extract_trace_id_4_bytes_valid_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x00012345; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test negative trace id should return valid. */ +PKTGEN("tc", "extract_trace_id_negative_4_bytes") +int test_extract_trace_id_negative_4_bytes_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 6, + .data = (__u8 *)"\x80\x01\x23\x45", + .data_len = 4, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 8); +} + +CHECK("tc", "extract_trace_id_negative_4_bytes") +int test_extract_trace_id_negative_4_bytes_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x80012345; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test a 4-byte trace ID with incorrect length. */ +PKTGEN("tc", "extract_trace_id_4_bytes_wrong_length") +int test_extract_trace_id_4_bytes_wrong_length_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 5, /* Incorrect length */ + .data = (__u8 *)"\x01\x23\x45\x67", + .data_len = 4, + }, + }; + return gen_packet_with_options(ctx, opts, 1, 8); +} + +CHECK("tc", "extract_trace_id_4_bytes_wrong_length") +int test_extract_trace_id_4_bytes_wrong_length_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_INVALID; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test a 4-byte trace ID before the end of option list. */ +PKTGEN("tc", "extract_trace_id_4_bytes_before_end") +int test_extract_trace_id_4_bytes_before_end_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 6, + .data = (__u8 *)"\x00\x01\x23\x45", + .data_len = 4, + }, + { + .type = IPOPT_END, + .len = 0, + .data_len = 0, + }, + }; + return gen_packet_with_options(ctx, opts, 2, 8); +} + +CHECK("tc", "extract_trace_id_4_bytes_before_end") +int test_extract_trace_id_4_bytes_before_end_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x12345; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test a valid 8-byte trace ID should return TRACE_ID_ERROR. */ +PKTGEN("tc", "extract_trace_id_8_bytes_valid") +int test_extract_trace_id_8_bytes_valid_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 10, + .data = (__u8 *)"\x12\x34\x56\x78\x9A\xBC\xDE\xF0", + .data_len = 8, + }, + }; + return gen_packet_with_options(ctx, opts, 1, 12); +} + +CHECK("tc", "extract_trace_id_8_bytes_valid") +int test_extract_trace_id_8_bytes_valid_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x123456789abcdef0; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test an 8-byte trace ID followed by padding. */ +PKTGEN("tc", "extract_trace_id_8_bytes_with_padding") +int test_extract_trace_id_8_bytes_with_padding_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 10, /* Total length including type and len fields */ + .data = (__u8 *)"\x01\x02\x03\x04\x00\x00\x00\x00", + .data_len = 8, + }, + { + .type = IPOPT_NOOP, + .len = 0, + .data_len = 0, + }, + }; + + return gen_packet_with_options(ctx, opts, 2, 12); +} + +CHECK("tc", "extract_trace_id_8_bytes_with_padding") +int test_extract_trace_id_8_bytes_with_padding_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0x0102030400000000; /* Expected valid trace ID */ + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} + +/* Test an 8-byte trace ID that represents a negative value. */ +PKTGEN("tc", "extract_trace_id_8_bytes_negative") +int test_extract_trace_id_8_bytes_negative_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 10, + .data = (__u8 *)"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFA", + .data_len = 8, + }, + }; + + return gen_packet_with_options(ctx, opts, 1, 12); +} + +CHECK("tc", "extract_trace_id_8_bytes_negative") +int test_extract_trace_id_8_bytes_negative_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = 0xFFFFFFFFFFFFFFFA; + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + + test_finish(); +} + +/* Test an 8-byte trace ID with an invalid option length. */ +PKTGEN("tc", "extract_trace_id_8_bytes_invalid_length") +int test_extract_trace_id_8_bytes_invalid_length_pktgen(struct __ctx_buff *ctx) +{ + struct ipopthdr opts[] = { + { + .type = 136, + .len = 9, /* Invalid length, should be 10 */ + .data = (__u8 *)"\x01\x02\x03\x04\x05\x06\x07\x08", + .data_len = 8, + }, + }; + return gen_packet_with_options(ctx, opts, 1, 12); +} + +CHECK("tc", "extract_trace_id_8_bytes_invalid_length") +int test_extract_trace_id_8_bytes_invalid_length_check(struct __ctx_buff *ctx) +{ + test_init(); + __s64 want = TRACE_ID_INVALID; /* Expected invalid trace ID */ + __s64 trace_id = 0; + int ret; + + ret = trace_id_from_ctx(ctx, &trace_id, 136); + if (IS_ERR(ret)) + trace_id = ret; + + if (trace_id != want) + test_fatal("trace_id_from_ctx(ctx) = %lld; want %lld\n", trace_id, want); + test_finish(); +} diff --git a/daemon/cmd/daemon_main.go b/daemon/cmd/daemon_main.go index 876a678d21400..b7c1974b2de63 100644 --- a/daemon/cmd/daemon_main.go +++ b/daemon/cmd/daemon_main.go @@ -871,6 +871,9 @@ func InitGlobalFlags(logger *slog.Logger, cmd *cobra.Command, vp *viper.Viper) { flags.Bool(option.EnableExtendedIPProtocols, defaults.EnableExtendedIPProtocols, "Enable traffic with extended IP protocols in datapath") option.BindEnv(vp, option.EnableExtendedIPProtocols) + flags.Uint8(option.IPTracingOptionType, 0, "Specifies what IPv4 option type should be used to extract trace information from a packet; a value of 0 (default) disables IP tracing.") + option.BindEnv(vp, option.IPTracingOptionType) + if err := vp.BindPFlags(flags); err != nil { logging.Fatal(logger, "BindPFlags failed", logfields.Error, err) } diff --git a/pkg/datapath/config/node_config.go b/pkg/datapath/config/node_config.go index fb4aeb31baf46..88d3341da4db6 100644 --- a/pkg/datapath/config/node_config.go +++ b/pkg/datapath/config/node_config.go @@ -23,6 +23,8 @@ type Node struct { TracePayloadLen uint32 `config:"trace_payload_len"` // Length of payload to capture when tracing overlay packets. TracePayloadLenOverlay uint32 `config:"trace_payload_len_overlay"` + // The IP option type to use for packet tracing. + TracingIPOptionType uint8 `config:"tracing_ip_option_type"` } func NewNode() *Node { @@ -30,5 +32,5 @@ func NewNode() *Node { [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, [4]byte{0x0, 0x0, 0x0, 0x0}, [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, - false, 0x0, 0x0} + false, 0x0, 0x0, 0x0} } diff --git a/pkg/datapath/loader/config.go b/pkg/datapath/loader/config.go index 4e651412bfefa..1b2ec526b0a19 100644 --- a/pkg/datapath/loader/config.go +++ b/pkg/datapath/loader/config.go @@ -34,5 +34,7 @@ func nodeConfig(lnc *datapath.LocalNodeConfiguration) config.Node { node.SupportsFibLookupSkipNeigh = probes.HaveFibLookupSkipNeigh() == nil + node.TracingIPOptionType = uint8(option.Config.IPTracingOptionType) + return node } diff --git a/pkg/datapath/loader/verifier_load_test.go b/pkg/datapath/loader/verifier_load_test.go index afe2d91dadc2e..016dc8fb1ad5c 100644 --- a/pkg/datapath/loader/verifier_load_test.go +++ b/pkg/datapath/loader/verifier_load_test.go @@ -13,6 +13,7 @@ func lxcLoadPermutations() iter.Seq[*config.BPFLXC] { return func(yield func(*config.BPFLXC) bool) { for permutation := range permute(1) { cfg := config.NewBPFLXC(*config.NewNode()) + cfg.Node.TracingIPOptionType = 1 cfg.SecctxFromIPCache = permutation[0] if !yield(cfg) { return @@ -25,6 +26,7 @@ func hostLoadPermutations() iter.Seq[*config.BPFHost] { return func(yield func(*config.BPFHost) bool) { for permutation := range permute(2) { cfg := config.NewBPFHost(*config.NewNode()) + cfg.Node.TracingIPOptionType = 1 cfg.SecctxFromIPCache = permutation[0] cfg.EnableRemoteNodeMasquerade = permutation[1] if !yield(cfg) { @@ -37,6 +39,7 @@ func hostLoadPermutations() iter.Seq[*config.BPFHost] { func networkLoadPermutations() iter.Seq[*config.BPFNetwork] { return func(yield func(*config.BPFNetwork) bool) { cfg := config.NewBPFNetwork(*config.NewNode()) + cfg.Node.TracingIPOptionType = 1 if !yield(cfg) { return } @@ -47,6 +50,7 @@ func overlayLoadPermutations() iter.Seq[*config.BPFOverlay] { return func(yield func(*config.BPFOverlay) bool) { for permutation := range permute(1) { cfg := config.NewBPFOverlay(*config.NewNode()) + cfg.Node.TracingIPOptionType = 1 cfg.SecctxFromIPCache = permutation[0] if !yield(cfg) { return @@ -68,6 +72,7 @@ func wireguardLoadPermutations() iter.Seq[*config.BPFWireguard] { return func(yield func(*config.BPFWireguard) bool) { for permutation := range permute(1) { cfg := config.NewBPFWireguard(*config.NewNode()) + cfg.Node.TracingIPOptionType = 1 cfg.SecctxFromIPCache = permutation[0] if !yield(cfg) { return @@ -80,6 +85,7 @@ func xdpLoadPermutations() iter.Seq[*config.BPFXDP] { return func(yield func(*config.BPFXDP) bool) { for permutation := range permute(1) { cfg := config.NewBPFXDP(*config.NewNode()) + cfg.Node.TracingIPOptionType = 1 cfg.SecctxFromIPCache = permutation[0] if !yield(cfg) { return diff --git a/pkg/defaults/defaults.go b/pkg/defaults/defaults.go index 5570664c848ef..cde7f66b678d0 100644 --- a/pkg/defaults/defaults.go +++ b/pkg/defaults/defaults.go @@ -537,6 +537,9 @@ const ( // EnableExtendedIPProtocols controls whether traffic with extended IP protocols is supported in datapath. EnableExtendedIPProtocols = false + + // IPTracingOptionType is the default value for option.IPTracingOptionType + IPTracingOptionType = 0 ) var ( diff --git a/pkg/option/config.go b/pkg/option/config.go index 362115a2bfc7b..7812bc6ad78e8 100644 --- a/pkg/option/config.go +++ b/pkg/option/config.go @@ -998,6 +998,9 @@ const ( // EnableExtendedIPProtocols controls whether traffic with extended IP protocols is supported in datapath. EnableExtendedIPProtocols = "enable-extended-ip-protocols" + + // IPTracingOptionType specifies what IPv4 option type should be used to extract trace information from a packet + IPTracingOptionType = "ip-tracing-option-type" ) // Default string arguments @@ -1889,6 +1892,9 @@ type DaemonConfig struct { // EnableExtendedIPProtocols controls whether traffic with extended IP protocols is supported in datapath EnableExtendedIPProtocols bool + + // IPTracingOptionType determines whether to enable IP tracing, and if enabled what option type to use. + IPTracingOptionType uint } var ( @@ -1947,6 +1953,8 @@ var ( EnableSourceIPVerification: defaults.EnableSourceIPVerification, ConnectivityProbeFrequencyRatio: defaults.ConnectivityProbeFrequencyRatio, + + IPTracingOptionType: defaults.IPTracingOptionType, } ) @@ -2580,6 +2588,7 @@ func (c *DaemonConfig) Populate(logger *slog.Logger, vp *viper.Viper) { c.BPFConntrackAccounting = vp.GetBool(BPFConntrackAccounting) c.BootIDFile = vp.GetString(BootIDFilename) c.EnableExtendedIPProtocols = vp.GetBool(EnableExtendedIPProtocols) + c.IPTracingOptionType = vp.GetUint(IPTracingOptionType) c.ServiceNoBackendResponse = vp.GetString(ServiceNoBackendResponse) switch c.ServiceNoBackendResponse { From 0c19e9c3a93b90dacb2a9e97626ff04bb3f3352c Mon Sep 17 00:00:00 2001 From: Ben Bigdelle Date: Thu, 27 Feb 2025 16:17:57 +0000 Subject: [PATCH 006/176] feat: add IP option tracing parsing in ingress programs This change introduces the ability to parse IP options in ingress BPF programs. This is a prerequisite for implementing IP-based tracing on the ingress path. If the feature is enabled, and a trace ID exists for a packet, it is stored into the BPF map to be used in event messages. - Implemented parsing logic for IP options in ingress programs. - Store extracted IP options into per-CPU array map. Signed-off-by: Ben Bigdelle --- bpf/bpf_host.c | 7 +++++++ bpf/bpf_lxc.c | 2 ++ bpf/bpf_network.c | 1 + bpf/bpf_overlay.c | 2 ++ bpf/bpf_wireguard.c | 2 ++ bpf/bpf_xdp.c | 1 + bpf/lib/drop.h | 1 + bpf/lib/trace.h | 1 + 8 files changed, 17 insertions(+) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 86d156773f8d7..11b09c8c6e2a7 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -1208,6 +1208,8 @@ int cil_from_netdev(struct __ctx_buff *ctx) __u32 src_id = UNKNOWN_ID; __be16 proto = 0; + check_and_store_ip_trace_id(ctx); + #ifdef ENABLE_NODEPORT_ACCELERATION __u32 flags = ctx_get_xfer(ctx, XFER_FLAGS); #endif @@ -1285,6 +1287,8 @@ int cil_from_host(struct __ctx_buff *ctx) __be16 proto = 0; __u32 magic; + check_and_store_ip_trace_id(ctx); + /* Traffic from the host ns going through cilium_host device must * not be subject to EDT rate-limiting. */ @@ -1353,6 +1357,7 @@ int cil_to_netdev(struct __ctx_buff *ctx) __s8 ext_err = 0; bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); if (magic == MARK_MAGIC_HOST || magic == MARK_MAGIC_OVERLAY || ctx_mark_is_encrypted(ctx)) src_sec_identity = HOST_ID; @@ -1677,6 +1682,8 @@ int cil_to_host(struct __ctx_buff *ctx) __u32 src_id = 0; __s8 ext_err = 0; + check_and_store_ip_trace_id(ctx); + /* Prefer ctx->mark when it is set to one of the expected values. * Also see https://github.com/cilium/cilium/issues/36329. */ diff --git a/bpf/bpf_lxc.c b/bpf/bpf_lxc.c index 03f73252df3ad..99c7c51aad237 100644 --- a/bpf/bpf_lxc.c +++ b/bpf/bpf_lxc.c @@ -1515,6 +1515,7 @@ int cil_from_container(struct __ctx_buff *ctx) bool valid_ethertype = validate_ethertype(ctx, &proto); bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); /* Workaround for GH-18311 where veth driver might have recorded * veth's RX queue mapping instead of leaving it at 0. This can @@ -2388,6 +2389,7 @@ int cil_to_container(struct __ctx_buff *ctx) } bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); #if defined(ENABLE_L7_LB) if ((ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_PROXY_EGRESS_EPID) { diff --git a/bpf/bpf_network.c b/bpf/bpf_network.c index 5b133e64feac8..b3c10dd0974c3 100644 --- a/bpf/bpf_network.c +++ b/bpf/bpf_network.c @@ -26,6 +26,7 @@ int cil_from_network(struct __ctx_buff *ctx) enum trace_point obs_point_from = TRACE_FROM_NETWORK; bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); #ifdef ENABLE_IPSEC /* This program should be attached to the tc-ingress of diff --git a/bpf/bpf_overlay.c b/bpf/bpf_overlay.c index 0c439d0e2f82a..16b4076738f9d 100644 --- a/bpf/bpf_overlay.c +++ b/bpf/bpf_overlay.c @@ -666,6 +666,7 @@ int cil_from_overlay(struct __ctx_buff *ctx) bpf_clear_meta(ctx); ctx_skip_nodeport_clear(ctx); + check_and_store_ip_trace_id(ctx); if (!validate_ethertype(ctx, &proto)) { /* Pass unknown traffic to the stack */ @@ -803,6 +804,7 @@ int cil_to_overlay(struct __ctx_buff *ctx) __s8 ext_err = 0; bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); /* Load the ethertype just once: */ validate_ethertype(ctx, &proto); diff --git a/bpf/bpf_wireguard.c b/bpf/bpf_wireguard.c index 37a0fc044a892..dd67073296540 100644 --- a/bpf/bpf_wireguard.c +++ b/bpf/bpf_wireguard.c @@ -278,6 +278,7 @@ int cil_from_wireguard(struct __ctx_buff *ctx) return TC_ACT_OK; bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); switch (proto) { #ifdef ENABLE_IPV6 @@ -349,6 +350,7 @@ int cil_to_wireguard(struct __ctx_buff *ctx) src_sec_identity = get_identity(ctx); bpf_clear_meta(ctx); + check_and_store_ip_trace_id(ctx); #ifdef ENABLE_NODEPORT if (magic == MARK_MAGIC_OVERLAY) diff --git a/bpf/bpf_xdp.c b/bpf/bpf_xdp.c index 12a0ebea9fb23..4b52dab572666 100644 --- a/bpf/bpf_xdp.c +++ b/bpf/bpf_xdp.c @@ -362,6 +362,7 @@ static __always_inline int check_filters(struct __ctx_buff *ctx) __section_entry int cil_xdp_entry(struct __ctx_buff *ctx) { + check_and_store_ip_trace_id(ctx); return check_filters(ctx); } diff --git a/bpf/lib/drop.h b/bpf/lib/drop.h index 0065a155ecfeb..86fda6c3843e5 100644 --- a/bpf/lib/drop.h +++ b/bpf/lib/drop.h @@ -21,6 +21,7 @@ #include "ratelimit.h" #include "tailcall.h" #include "classifiers.h" +#include "trace_helpers.h" #define NOTIFY_DROP_VER 2 diff --git a/bpf/lib/trace.h b/bpf/lib/trace.h index 5909a124ada59..86916f7f477a1 100644 --- a/bpf/lib/trace.h +++ b/bpf/lib/trace.h @@ -29,6 +29,7 @@ #include "metrics.h" #include "ratelimit.h" #include "classifiers.h" +#include "trace_helpers.h" /* Reasons for forwarding a packet, keep in sync with pkg/monitor/datapath_trace.go */ enum trace_reason { From fe521cde836400c84a87aa32c3d713ae5d84629a Mon Sep 17 00:00:00 2001 From: Benjamin Bigdelle Date: Mon, 18 Aug 2025 03:19:06 +0000 Subject: [PATCH 007/176] test: update drop notify test to accommodate versioning This change refactors the drop notify tests to be version-aware. This is a preparatory step to allow for the introduction of new fields to the `DropNotify` struct in a backward-compatible manner. The tests are updated to: - Define separate test cases for different versions of the `DropNotify` struct. Signed-off-by: Ben Bigdelle --- pkg/hubble/parser/threefour/parser_test.go | 174 +++++++++++++-------- 1 file changed, 110 insertions(+), 64 deletions(-) diff --git a/pkg/hubble/parser/threefour/parser_test.go b/pkg/hubble/parser/threefour/parser_test.go index 0d56128a1e976..af186e658d49c 100644 --- a/pkg/hubble/parser/threefour/parser_test.go +++ b/pkg/hubble/parser/threefour/parser_test.go @@ -14,6 +14,7 @@ import ( "github.com/cilium/hive/hivetest" "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" "github.com/gopacket/gopacket" "github.com/gopacket/gopacket/layers" "github.com/stretchr/testify/assert" @@ -498,10 +499,21 @@ func BenchmarkL34Decode(b *testing.B) { } func TestDecodeTraceNotify(t *testing.T) { - for _, c := range []struct { + testCases := []struct { Name string IsL3Device bool - }{{"L3Device", true}, {"L2Device", false}} { + }{ + { + Name: "L3Device", + IsL3Device: true, + }, + { + Name: "L2Device", + IsL3Device: false, + }, + } + + for _, c := range testCases { t.Run(c.Name, func(t *testing.T) { tn := monitor.TraceNotify{ Type: byte(monitorAPI.MessageTypeTrace), @@ -570,78 +582,112 @@ func TestDecodeTraceNotify(t *testing.T) { } func TestDecodeDropNotify(t *testing.T) { - for _, c := range []struct { - Name string - IsL3Device bool - }{{"L3Device", true}, {"L2Device", false}} { - t.Run(c.Name, func(t *testing.T) { - dn := monitor.DropNotify{ - Type: byte(monitorAPI.MessageTypeDrop), - File: 1, // bpf_host.c - Line: 42, - SrcLabel: 123, - DstLabel: 456, - Version: monitor.DropNotifyVersion2, - } - lay := []gopacket.SerializableLayer{ - &layers.Ethernet{ - SrcMAC: net.HardwareAddr{1, 2, 3, 4, 5, 6}, - DstMAC: net.HardwareAddr{1, 2, 3, 4, 5, 6}, - EthernetType: layers.EthernetTypeIPv4, - }, - &layers.IPv4{ - Version: 4, - IHL: 5, - Length: 49, - Id: 0xCECB, - TTL: 64, - Protocol: layers.IPProtocolUDP, - SrcIP: net.IPv4(1, 2, 3, 4), - DstIP: net.IPv4(1, 2, 3, 4), - }, - &layers.UDP{ - SrcPort: 23939, - DstPort: 32412, - }, + packetBuffer := gopacket.NewSerializeBuffer() + if err := gopacket.SerializeLayers(packetBuffer, + gopacket.SerializeOptions{}, + &layers.Ethernet{ + SrcMAC: net.HardwareAddr{1, 2, 3, 4, 5, 6}, + DstMAC: net.HardwareAddr{4, 5, 6, 7, 8, 9}, + EthernetType: layers.EthernetTypeIPv4, + }, + &layers.IPv4{ + IHL: 5, + SrcIP: net.IPv4(1, 2, 3, 4), + DstIP: net.IPv4(1, 2, 3, 4), + }, + ); err != nil { + t.Fatalf("SerializeLayers(...) buffer: %v", err) + } + + SrcLabel := identity.NumericIdentity(123) + DstLabel := identity.NumericIdentity(456) + + dropNotify := func(version uint16) monitor.DropNotify { + return monitor.DropNotify{ + Type: byte(monitorAPI.MessageTypeDrop), + File: 1, // bpf_host.c + Version: version, + SrcLabel: SrcLabel, + DstLabel: DstLabel, + } + } + identityGetter := &testutils.FakeIdentityGetter{ + OnGetIdentity: func(securityIdentity uint32) (*identity.Identity, error) { + m := map[identity.NumericIdentity][]string{ + SrcLabel: {"k8s:src=label"}, + DstLabel: {"k8s:dst=label"}, } - if c.IsL3Device { - dn.Flags = monitor.TraceNotifyFlagIsL3Device - lay = lay[1:] + v, ok := m[identity.NumericIdentity(securityIdentity)] + if !ok { + return nil, fmt.Errorf("identity not found for %d", securityIdentity) } + return &identity.Identity{Labels: labels.NewLabelsFromModel(v)}, nil + }, + } - buf := &bytes.Buffer{} - err := binary.Write(buf, byteorder.Native, &dn) - require.NoError(t, err) - buffer := gopacket.NewSerializeBuffer() - err = gopacket.SerializeLayers(buffer, gopacket.SerializeOptions{}, lay...) - require.NoError(t, err) - buf.Write(buffer.Bytes()) - require.NoError(t, err) - identityGetter := &testutils.FakeIdentityGetter{ - OnGetIdentity: func(securityIdentity uint32) (*identity.Identity, error) { - if securityIdentity == uint32(dn.SrcLabel) { - return &identity.Identity{Labels: labels.NewLabelsFromModel([]string{"k8s:src=label"})}, nil - } else if securityIdentity == uint32(dn.DstLabel) { - return &identity.Identity{Labels: labels.NewLabelsFromModel([]string{"k8s:dst=label"})}, nil - } - return nil, fmt.Errorf("identity not found for %d", securityIdentity) + testCases := []struct { + name string + dn any + srcLabels []string + dstLabels []string + want *flowpb.Flow + }{ + { + name: "v2", + dn: dropNotify(2), + srcLabels: []string{"k8s:src=label"}, + dstLabels: []string{"k8s:dst=label"}, + want: &flowpb.Flow{ + Verdict: flowpb.Verdict_DROPPED, + Ethernet: &flowpb.Ethernet{ + Source: "01:02:03:04:05:06", + Destination: "04:05:06:07:08:09", + }, + IP: &flowpb.IP{ + Source: "1.2.3.4", + Destination: "1.2.3.4", + IpVersion: flowpb.IPVersion_IPv4, }, + Source: &flowpb.Endpoint{ + Identity: 123, + Labels: []string{"k8s:src=label"}, + }, + Destination: &flowpb.Endpoint{ + Identity: 456, + Labels: []string{"k8s:dst=label"}, + }, + Type: flowpb.FlowType_L3_L4, + EventType: &flowpb.CiliumEventType{ + Type: 1, + }, + Summary: "IPv4", + File: &flowpb.FileInfo{Name: "bpf_host.c"}, + }, + }, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + n := tc.dn + buf := &bytes.Buffer{} + if err := binary.Write(buf, byteorder.Native, n); err != nil { + t.Fatalf("Write(...) %T to buffer: %v", n, err) } + buf.Write(packetBuffer.Bytes()) parser, err := New(hivetest.Logger(t), &testutils.NoopEndpointGetter, identityGetter, &testutils.NoopDNSGetter, &testutils.NoopIPGetter, &testutils.NoopServiceGetter, &testutils.NoopLinkGetter) - require.NoError(t, err) + if err != nil { + t.Fatalf("New parser: %v", err) + } f := &flowpb.Flow{} - err = parser.Decode(buf.Bytes(), f) - require.NoError(t, err) - assert.Equal(t, []string{"k8s:src=label"}, f.GetSource().GetLabels()) - assert.Equal(t, []string{"k8s:dst=label"}, f.GetDestination().GetLabels()) - assert.NotNil(t, f.GetFile()) - assert.Equal(t, "bpf_host.c", f.GetFile().GetName()) - assert.Equal(t, uint32(42), f.GetFile().GetLine()) - assert.Equal(t, uint32(23939), f.GetL4().GetUDP().GetSourcePort()) - assert.Equal(t, uint32(32412), f.GetL4().GetUDP().GetDestinationPort()) + if err := parser.Decode(buf.Bytes(), f); err != nil { + t.Fatalf("parser.Decode(bytes, f): %v", err) + } + + if diff := cmp.Diff(tc.want, f, cmpopts.IgnoreFields(flowpb.Flow{}, "File"), protocmp.Transform()); diff != "" { + t.Errorf("Unexpected diff (-want +got):\n%s", diff) + } }) } } From 30457f79def151ad7a35a1373ab845c7a3c46ad9 Mon Sep 17 00:00:00 2001 From: Ben Bigdelle Date: Mon, 18 Aug 2025 19:06:02 +0000 Subject: [PATCH 008/176] feat: expose IP trace in drop notify struct MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change extends the `DropNotify` struct to include the IP trace
 ID. The following changes are included: - The `DropNotify` struct in the control plane is updated to include the `IPTraceID` field. - The BPF code is updated to check to see if there is a stored trace ID in the BPF map and, if so, populating it. - The `cilium-monitor` output is updated to display the IP trace ID when present in a drop notify message. Signed-off-by: Ben Bigdelle --- bpf/lib/drop.h | 5 +- pkg/hubble/parser/threefour/parser_test.go | 7 +- pkg/monitor/datapath_drop.go | 98 ++++---- pkg/monitor/datapath_drop_test.go | 249 ++++++++++++++++----- 4 files changed, 256 insertions(+), 103 deletions(-) diff --git a/bpf/lib/drop.h b/bpf/lib/drop.h index 86fda6c3843e5..20a7c71c1fada 100644 --- a/bpf/lib/drop.h +++ b/bpf/lib/drop.h @@ -23,7 +23,7 @@ #include "classifiers.h" #include "trace_helpers.h" -#define NOTIFY_DROP_VER 2 +#define NOTIFY_DROP_VER 3 struct drop_notify { NOTIFY_CAPTURE_HDR @@ -39,6 +39,7 @@ struct drop_notify { * move to flags_lower/flags_upper). */ __u8 pad2[3]; + __u64 ip_trace_id; }; #ifdef DROP_NOTIFY @@ -64,6 +65,7 @@ int tail_drop_notify(struct __ctx_buff *ctx) { /* Mask needed to calm verifier. */ __u32 error = ctx_load_meta(ctx, 2) & 0xFFFFFFFF; + __u64 ip_trace_id = load_ip_trace_id(); __u64 ctx_len = ctx_full_len(ctx); __u64 cap_len; __u32 meta4 = ctx_load_meta(ctx, 4); @@ -100,6 +102,7 @@ int tail_drop_notify(struct __ctx_buff *ctx) .ext_error = (__s8)(__u8)(error >> 8), .ifindex = ctx_get_ifindex(ctx), .flags = flags, + .ip_trace_id = ip_trace_id, }; ctx_event_output(ctx, &cilium_events, diff --git a/pkg/hubble/parser/threefour/parser_test.go b/pkg/hubble/parser/threefour/parser_test.go index af186e658d49c..9e7a9d05b42a0 100644 --- a/pkg/hubble/parser/threefour/parser_test.go +++ b/pkg/hubble/parser/threefour/parser_test.go @@ -414,7 +414,8 @@ func TestL34Decode(t *testing.T) { // ff02::1:ff00:b3e5 f00d::a10:0:0:9195 L3/4 d2 := []byte{ 4, 5, 168, 11, 95, 22, 242, 184, 86, 0, 0, 0, 86, 0, 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, 255, 0, 179, 229, 18, 145, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 51, 255, 0, 179, 229, 18, 145, 6, 226, 34, 26, 134, 221, 96, 0, 0, 0, 0, 32, 58, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 255, 0, 179, 229, 240, 13, 0, 0, 0, 0, 0, 0, 10, 16, 0, 0, 0, 0, 145, 149, 135, 0, 80, 117, 0, 0, 0, 0, 240, 13, 0, 0, 0, @@ -634,8 +635,8 @@ func TestDecodeDropNotify(t *testing.T) { want *flowpb.Flow }{ { - name: "v2", - dn: dropNotify(2), + name: "v3", + dn: dropNotify(3), srcLabels: []string{"k8s:src=label"}, dstLabels: []string{"k8s:dst=label"}, want: &flowpb.Flow{ diff --git a/pkg/monitor/datapath_drop.go b/pkg/monitor/datapath_drop.go index d244a0f82ba41..a1e34ceed595b 100644 --- a/pkg/monitor/datapath_drop.go +++ b/pkg/monitor/datapath_drop.go @@ -17,6 +17,7 @@ const ( DropNotifyVersion0 = iota DropNotifyVersion1 DropNotifyVersion2 + DropNotifyVersion3 ) const ( @@ -24,6 +25,8 @@ const ( dropNotifyV1Len = 36 // dropNotifyV2Len is the amount of packet data provided in a v2 drop notification. dropNotifyV2Len = 40 + // dropNotifyV3Len is the amount of packet data provided in a v3 drop notification. + dropNotifyV3Len = 48 ) const ( @@ -42,27 +45,29 @@ var ( DropNotifyVersion0: dropNotifyV1Len, // retain backwards compatibility for testing. DropNotifyVersion1: dropNotifyV1Len, DropNotifyVersion2: dropNotifyV2Len, + DropNotifyVersion3: dropNotifyV3Len, } ) // DropNotify is the message format of a drop notification in the BPF ring buffer type DropNotify struct { - Type uint8 - SubType uint8 - Source uint16 - Hash uint32 - OrigLen uint32 - CapLen uint16 - Version uint16 - SrcLabel identity.NumericIdentity - DstLabel identity.NumericIdentity - DstID uint32 - Line uint16 - File uint8 - ExtError int8 - Ifindex uint32 - Flags uint8 - _ [3]uint8 + Type uint8 + SubType uint8 + Source uint16 + Hash uint32 + OrigLen uint32 + CapLen uint16 + Version uint16 + SrcLabel identity.NumericIdentity + DstLabel identity.NumericIdentity + DstID uint32 + Line uint16 + File uint8 + ExtError int8 + Ifindex uint32 + Flags uint8 + _ [3]uint8 + IPTraceID uint64 // data } @@ -108,7 +113,7 @@ func (n *DropNotify) Decode(data []byte) error { version := byteorder.Native.Uint16(data[14:16]) // Check against max version. - if version > DropNotifyVersion2 { + if version > DropNotifyVersion3 { return fmt.Errorf("Unrecognized drop event (version %d)", version) } @@ -120,6 +125,13 @@ func (n *DropNotify) Decode(data []byte) error { n.Flags = data[36] } + if version >= DropNotifyVersion3 { + if l := len(data); l < dropNotifyV3Len { + return fmt.Errorf("unexpected DropNotify data length (version %d), expected at least %d but got %d", version, dropNotifyV3Len, l) + } + n.IPTraceID = byteorder.Native.Uint64(data[40:48]) + } + // Decode logic for version >= v0/v1. n.Type = data[0] n.SubType = data[1] @@ -171,6 +183,9 @@ func (n *DropNotify) DataOffset() uint { func (n *DropNotify) DumpInfo(buf *bufio.Writer, data []byte, numeric api.DisplayFormat) { fmt.Fprintf(buf, "xx drop (%s) flow %#x to endpoint %d, ifindex %d, file %s:%d, ", api.DropReasonExt(n.SubType, n.ExtError), n.Hash, n.DstID, n.Ifindex, api.BPFFileName(n.File), int(n.Line)) + if id := n.IPTraceID; id > 0 { + fmt.Fprintf(buf, " [ ip-trace-id = %d ]", id) + } n.dumpIdentity(buf, numeric) fmt.Fprintf(buf, ": %s\n", GetConnectionSummary(data[n.DataOffset():], &decodeOpts{n.IsL3Device(), n.IsIPv6(), n.IsVXLAN(), n.IsGeneve()})) } @@ -190,13 +205,16 @@ func (n *DropNotify) DumpVerbose(buf *bufio.Writer, dissect bool, data []byte, p fmt.Fprintf(buf, "\n") } + if id := n.IPTraceID; id > 0 { + fmt.Fprintf(buf, " [ IP-TRACE-ID=%d", id) + } + if offset := int(n.DataOffset()); n.CapLen > 0 && len(data) > offset { Dissect(buf, dissect, data[offset:], &decodeOpts{n.IsL3Device(), n.IsIPv6(), n.IsVXLAN(), n.IsGeneve()}) } } func (n *DropNotify) getJSON(data []byte, cpuPrefix string) (string, error) { - v := DropNotifyToVerbose(n) v.CPUPrefix = cpuPrefix if offset := int(n.DataOffset()); n.CapLen > 0 && len(data) > offset { @@ -222,15 +240,16 @@ type DropNotifyVerbose struct { Mark string `json:"mark,omitempty"` Reason string `json:"reason,omitempty"` - Source uint16 `json:"source"` - Bytes uint32 `json:"bytes"` - SrcLabel identity.NumericIdentity `json:"srcLabel"` - DstLabel identity.NumericIdentity `json:"dstLabel"` - DstID uint32 `json:"dstID"` - Line uint16 `json:"Line"` - File uint8 `json:"File"` - ExtError int8 `json:"ExtError"` - Ifindex uint32 `json:"Ifindex"` + Source uint16 `json:"source"` + Bytes uint32 `json:"bytes"` + SrcLabel identity.NumericIdentity `json:"srcLabel"` + DstLabel identity.NumericIdentity `json:"dstLabel"` + DstID uint32 `json:"dstID"` + Line uint16 `json:"Line"` + File uint8 `json:"File"` + ExtError int8 `json:"ExtError"` + Ifindex uint32 `json:"Ifindex"` + IPTraceID uint64 `json:"IPTraceID,omitempty"` Summary *DissectSummary `json:"summary,omitempty"` } @@ -238,17 +257,18 @@ type DropNotifyVerbose struct { // DropNotifyToVerbose creates verbose notification from DropNotify func DropNotifyToVerbose(n *DropNotify) DropNotifyVerbose { return DropNotifyVerbose{ - Type: "drop", - Mark: fmt.Sprintf("%#x", n.Hash), - Reason: api.DropReasonExt(n.SubType, n.ExtError), - Source: n.Source, - Bytes: n.OrigLen, - SrcLabel: n.SrcLabel, - DstLabel: n.DstLabel, - DstID: n.DstID, - Line: n.Line, - File: n.File, - ExtError: n.ExtError, - Ifindex: n.Ifindex, + Type: "drop", + Mark: fmt.Sprintf("%#x", n.Hash), + Reason: api.DropReasonExt(n.SubType, n.ExtError), + Source: n.Source, + Bytes: n.OrigLen, + SrcLabel: n.SrcLabel, + DstLabel: n.DstLabel, + DstID: n.DstID, + Line: n.Line, + File: n.File, + ExtError: n.ExtError, + Ifindex: n.Ifindex, + IPTraceID: n.IPTraceID, } } diff --git a/pkg/monitor/datapath_drop_test.go b/pkg/monitor/datapath_drop_test.go index c1ab8b5d9373a..1f3f630e3f83d 100644 --- a/pkg/monitor/datapath_drop_test.go +++ b/pkg/monitor/datapath_drop_test.go @@ -8,76 +8,205 @@ import ( "encoding/binary" "testing" + "github.com/google/go-cmp/cmp" "github.com/stretchr/testify/require" "github.com/cilium/cilium/pkg/byteorder" ) -func TestDecodeDropNotify(t *testing.T) { +func TestDropNotifyV1_Decode(t *testing.T) { // This check on the struct length constant is there to ensure that this // test is updated when the struct changes. - require.Equal(t, 40, dropNotifyV2Len) + require.Equal(t, 36, dropNotifyV1Len) + + testCases := []struct { + name string + input DropNotify + }{ + { + name: "empty", + }, + { + name: "arbitrary", + input: DropNotify{ + Type: 0x00, + SubType: 0x01, + Source: 0x02_03, + Hash: 0x04_05_06_07, + OrigLen: 0x08_09_0a_0b, + CapLen: 0x0e_10, + Version: 0x00_01, + SrcLabel: 0x11_12_13_14, + DstLabel: 0x15_16_17_18, + DstID: 0x19_1a_1b_1c, + Line: 0x1d_1e, + File: 0x20, + ExtError: 0x21, + Ifindex: 0x22_23_24_25, + }, + }, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + buf := bytes.NewBuffer(nil) + if err := binary.Write(buf, byteorder.Native, tc.input); err != nil { + t.Fatalf("Unexpected error from Write(...); got: %v", err) + } + + output := DropNotify{} + if err := output.Decode(buf.Bytes()); err != nil { + t.Fatalf("Unexpected error from Decode(); got: %v", err) + } + + if diff := cmp.Diff(tc.input, output); diff != "" { + t.Errorf("Unexpected diff (-want +got):\n%s", diff) + } + }) + } +} - input := DropNotify{ - Type: 0x00, - SubType: 0x01, - Source: 0x02_03, - Hash: 0x04_05_06_07, - OrigLen: 0x08_09_0a_0b, - CapLen: 0x0c_0d, - Version: 0x02, - SrcLabel: 0x11_12_13_14, - DstLabel: 0x15_16_17_18, - DstID: 0x19_1a_1b_1c, - Line: 0x1d_1e, - File: 0x20, - ExtError: 0x21, - Ifindex: 0x22_23_24_25, - Flags: 0x0f, +func TestDropNotify_Decode(t *testing.T) { + // This check on the struct length constant is there to ensure that this + // test is updated when the struct changes. + require.Equal(t, 40, dropNotifyV2Len) + require.Equal(t, 48, dropNotifyV3Len) + + testCases := []struct { + name string + input DropNotify + }{ + { + name: "empty", + }, + { + name: "arbitrary", + input: DropNotify{ + Type: 0x00, + SubType: 0x01, + Source: 0x02_03, + Hash: 0x04_05_06_07, + OrigLen: 0x08_09_0a_0b, + CapLen: 0x0e_10, + Version: 0x00_03, + SrcLabel: 0x11_12_13_14, + DstLabel: 0x15_16_17_18, + DstID: 0x19_1a_1b_1c, + Line: 0x1d_1e, + File: 0x20, + ExtError: 0x21, + Ifindex: 0x22_23_24_25, + Flags: 0x0f, + IPTraceID: 0x99, + }, + }, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + buf := bytes.NewBuffer(nil) + if err := binary.Write(buf, byteorder.Native, tc.input); err != nil { + t.Fatalf("Unexpected error from Write(...); got: %v", err) + } + + output := DropNotify{} + if err := output.Decode(buf.Bytes()); err != nil { + t.Fatalf("Unexpected error from Decode(); got: %v", err) + } + + if diff := cmp.Diff(tc.input, output); diff != "" { + t.Errorf("Unexpected diff (-want +got):\n%s", diff) + } + }) } - buf := bytes.NewBuffer(nil) - err := binary.Write(buf, byteorder.Native, input) - require.NoError(t, err) - - output := &DropNotify{} - err = output.Decode(buf.Bytes()) - require.NoError(t, err) - - require.Equal(t, input.Type, output.Type) - require.Equal(t, input.SubType, output.SubType) - require.Equal(t, input.Source, output.Source) - require.Equal(t, input.Hash, output.Hash) - require.Equal(t, input.OrigLen, output.OrigLen) - require.Equal(t, input.CapLen, output.CapLen) - require.Equal(t, input.SrcLabel, output.SrcLabel) - require.Equal(t, input.DstLabel, output.DstLabel) - require.Equal(t, input.DstID, output.DstID) - require.Equal(t, input.Line, output.Line) - require.Equal(t, input.File, output.File) - require.Equal(t, input.ExtError, output.ExtError) - require.Equal(t, input.Ifindex, output.Ifindex) - require.Equal(t, input.Flags, output.Flags) - require.True(t, output.IsL3Device()) - require.True(t, output.IsIPv6()) - require.True(t, output.IsVXLAN()) - require.True(t, output.IsGeneve()) } -func TestDecodeDropNotifyErrors(t *testing.T) { - n := DropNotify{} - err := n.Decode([]byte{}) - require.Error(t, err) - require.Equal(t, "unexpected DropNotify data length, expected at least 36 but got 0", err.Error()) - - // invalid version - ev := make([]byte, dropNotifyV2Len) - ev[14] = 0xff - err = n.Decode(ev) - require.Error(t, err) - require.Equal(t, "Unrecognized drop event (version 255)", err.Error()) +func TestDecodeDropNotify(t *testing.T) { + testCases := []struct { + name string + input any + want uint + }{ + { + name: "v1", + input: DropNotify{ + Type: 0x00, + SubType: 0x01, + Source: 0x02_03, + Hash: 0x04_05_06_07, + OrigLen: 0x08_09_0a_0b, + CapLen: 0x0e_10, + Version: 0x00_01, + SrcLabel: 0x11_12_13_14, + DstLabel: 0x15_16_17_18, + DstID: 0x19_1a_1b_1c, + Line: 0x1d_1e, + File: 0x20, + ExtError: 0x21, + Ifindex: 0x22_23_24_25, + }, + want: dropNotifyV1Len, + }, + { + name: "v2", + input: DropNotify{ + Type: 0x00, + SubType: 0x01, + Source: 0x02_03, + Hash: 0x04_05_06_07, + OrigLen: 0x08_09_0a_0b, + CapLen: 0x0e_10, + Version: 0x00_02, + SrcLabel: 0x11_12_13_14, + DstLabel: 0x15_16_17_18, + DstID: 0x19_1a_1b_1c, + Line: 0x1d_1e, + File: 0x20, + ExtError: 0x21, + Ifindex: 0x22_23_24_25, + }, + want: dropNotifyV2Len, + }, + { + name: "with_iptrace", + input: DropNotify{ + Type: 0x00, + SubType: 0x01, + Source: 0x02_03, + Hash: 0x04_05_06_07, + OrigLen: 0x08_09_0a_0b, + CapLen: 0x0e_10, + Version: 0x00_03, + SrcLabel: 0x11_12_13_14, + DstLabel: 0x15_16_17_18, + DstID: 0x19_1a_1b_1c, + Line: 0x1d_1e, + File: 0x20, + ExtError: 0x21, + Ifindex: 0x22_23_24_25, + IPTraceID: 0x999, + }, + want: dropNotifyV3Len, + }, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + buf := bytes.NewBuffer(nil) + if err := binary.Write(buf, byteorder.Native, tc.input); err != nil { + t.Fatalf("Unexpected error from Write(...); got: %v", err) + } + + output := DropNotify{} + if err := output.Decode(buf.Bytes()); err != nil { + t.Fatalf("Unexpected error from Decode(); got: %v", err) + } + + if got := output.DataOffset(); got != tc.want { + t.Fatalf("Unexpected DataOffset(); want %d, got %d", tc.want, got) + } + }) + } } -func BenchmarkDecodeDropNotifyV1(b *testing.B) { +func BenchmarkNewDropNotifyV1_Decode(b *testing.B) { input := DropNotify{} buf := bytes.NewBuffer(nil) @@ -95,8 +224,8 @@ func BenchmarkDecodeDropNotifyV1(b *testing.B) { } } -func BenchmarkDecodeDropNotifyV2(b *testing.B) { - input := DropNotify{Version: DropNotifyVersion2} +func BenchmarkOldDropNotifyV1_Decode(b *testing.B) { + input := DropNotify{} buf := bytes.NewBuffer(nil) if err := binary.Write(buf, byteorder.Native, input); err != nil { @@ -107,7 +236,7 @@ func BenchmarkDecodeDropNotifyV2(b *testing.B) { for b.Loop() { dn := &DropNotify{} - if err := dn.Decode(buf.Bytes()); err != nil { + if err := binary.Read(bytes.NewReader(buf.Bytes()), byteorder.Native, dn); err != nil { b.Fatal(err) } } From 3a78b98f71ec809ca589250a0958e3eeb299c971 Mon Sep 17 00:00:00 2001 From: Ben Bigdelle Date: Tue, 19 Aug 2025 17:52:40 +0000 Subject: [PATCH 009/176] feat: expose IP trace in trace notify messages This change extends the `TraceNotify` struct to include the IP trace. The following changes are included: - The `TraceNotify` struct in the control plane is updated to include the `IPTraceID` field. - At the creation of a TraceNotify event, check to see if IP trace is stored in the BPF map and populate it in the message if so. - The `cilium-monitor` output is updated to display the IP trace ID when present in a trace notify message. Signed-off-by: Ben Bigdelle --- bpf/lib/trace.h | 17 ++++- pkg/hubble/parser/threefour/parser_test.go | 2 +- pkg/hubble/testutils/payload_test.go | 51 ++++++++++----- pkg/monitor/datapath_trace.go | 73 ++++++++++++++-------- pkg/monitor/datapath_trace_test.go | 27 ++++---- 5 files changed, 115 insertions(+), 55 deletions(-) diff --git a/bpf/lib/trace.h b/bpf/lib/trace.h index 86916f7f477a1..af7d97a497cac 100644 --- a/bpf/lib/trace.h +++ b/bpf/lib/trace.h @@ -166,9 +166,14 @@ struct trace_notify { }; union v6addr orig_ip6; }; + __u64 ip_trace_id; }; #ifdef TRACE_NOTIFY + +/* Trace notify version 2 includes IP Trace support. */ +#define NOTIFY_TRACE_VER 2 + static __always_inline bool emit_trace_notify(enum trace_point obs_point, __u32 monitor) { @@ -206,6 +211,7 @@ _send_trace_notify(struct __ctx_buff *ctx, enum trace_point obs_point, enum trace_reason reason, __u32 monitor, __be16 proto, __u16 line, __u8 file) { + __u64 ip_trace_id = load_ip_trace_id(); __u64 ctx_len = ctx_full_len(ctx); __u64 cap_len; struct ratelimit_key rkey = { @@ -234,13 +240,14 @@ _send_trace_notify(struct __ctx_buff *ctx, enum trace_point obs_point, msg = (typeof(msg)) { __notify_common_hdr(CILIUM_NOTIFY_TRACE, obs_point), - __notify_pktcap_hdr((__u32)ctx_len, (__u16)cap_len, NOTIFY_CAPTURE_VER), + __notify_pktcap_hdr((__u32)ctx_len, (__u16)cap_len, NOTIFY_TRACE_VER), .src_label = src, .dst_label = dst, .dst_id = dst_id, .reason = reason, .flags = flags, .ifindex = ifindex, + .ip_trace_id = ip_trace_id, }; memset(&msg.orig_ip6, 0, sizeof(union v6addr)); @@ -255,6 +262,7 @@ _send_trace_notify4(struct __ctx_buff *ctx, enum trace_point obs_point, __u32 ifindex, enum trace_reason reason, __u32 monitor, __u16 line, __u8 file) { + __u64 ip_trace_id = load_ip_trace_id(); __u64 ctx_len = ctx_full_len(ctx); __u64 cap_len; struct ratelimit_key rkey = { @@ -283,7 +291,7 @@ _send_trace_notify4(struct __ctx_buff *ctx, enum trace_point obs_point, msg = (typeof(msg)) { __notify_common_hdr(CILIUM_NOTIFY_TRACE, obs_point), - __notify_pktcap_hdr((__u32)ctx_len, (__u16)cap_len, NOTIFY_CAPTURE_VER), + __notify_pktcap_hdr((__u32)ctx_len, (__u16)cap_len, NOTIFY_TRACE_VER), .src_label = src, .dst_label = dst, .dst_id = dst_id, @@ -291,6 +299,7 @@ _send_trace_notify4(struct __ctx_buff *ctx, enum trace_point obs_point, .ifindex = ifindex, .flags = flags, .orig_ip4 = orig_addr, + .ip_trace_id = ip_trace_id, }; ctx_event_output(ctx, &cilium_events, @@ -304,6 +313,7 @@ _send_trace_notify6(struct __ctx_buff *ctx, enum trace_point obs_point, __u16 dst_id, __u32 ifindex, enum trace_reason reason, __u32 monitor, __u16 line, __u8 file) { + __u64 ip_trace_id = load_ip_trace_id(); __u64 ctx_len = ctx_full_len(ctx); __u64 cap_len; struct ratelimit_key rkey = { @@ -332,13 +342,14 @@ _send_trace_notify6(struct __ctx_buff *ctx, enum trace_point obs_point, msg = (typeof(msg)) { __notify_common_hdr(CILIUM_NOTIFY_TRACE, obs_point), - __notify_pktcap_hdr((__u32)ctx_len, (__u16)cap_len, NOTIFY_CAPTURE_VER), + __notify_pktcap_hdr((__u32)ctx_len, (__u16)cap_len, NOTIFY_TRACE_VER), .src_label = src, .dst_label = dst, .dst_id = dst_id, .reason = reason, .ifindex = ifindex, .flags = flags, + .ip_trace_id = ip_trace_id, }; ipv6_addr_copy(&msg.orig_ip6, orig_addr); diff --git a/pkg/hubble/parser/threefour/parser_test.go b/pkg/hubble/parser/threefour/parser_test.go index 9e7a9d05b42a0..554f3a88d70f8 100644 --- a/pkg/hubble/parser/threefour/parser_test.go +++ b/pkg/hubble/parser/threefour/parser_test.go @@ -520,7 +520,7 @@ func TestDecodeTraceNotify(t *testing.T) { Type: byte(monitorAPI.MessageTypeTrace), SrcLabel: 123, DstLabel: 456, - Version: monitor.TraceNotifyVersion1, + Version: monitor.TraceNotifyVersion2, } lay := []gopacket.SerializableLayer{ &layers.Ethernet{ diff --git a/pkg/hubble/testutils/payload_test.go b/pkg/hubble/testutils/payload_test.go index be39e24c609b9..964b869abdc20 100644 --- a/pkg/hubble/testutils/payload_test.go +++ b/pkg/hubble/testutils/payload_test.go @@ -28,15 +28,16 @@ func TestCreateL3L4Payload(t *testing.T) { // These contain TraceNotify headers plus the ethernet header of the packet // - IPv4: test with TraceNotifyVersion0 // - IPv6: test with TraceNotifyVersion1 (additional [16]bytes for empty OrigIP) - packetv4Prefix := decodeHex("0403a80b8d4598d462000000620000006800000001000000000002000000000006e9183bb275129106e2221a080045000054bfe900003f019ae2") - packetv4802Prefix := decodeHex("0403a80b8d4598d462000000620000006800000001000000000002000000000006e9183bb275129106e2221a81000202080045000054bfe900003f019ae2") - packetv6Prefix := decodeHex("0405a80b5f16f2b8560000005600010068000000000000000000000000000000000000000000000000000000000000003333ff00b3e5129106e2221a86dd6000000000203aff") - packetv6802Prefix := decodeHex("0405a80b5f16f2b8560000005600010068000000000000000000000000000000000000000000000000000000000000003333ff00b3e5129106e2221a8100020286dd6000000000203aff") + packetv4Prefix := "0403a80b8d4598d462000000620000006800000001000000000002000000000006e9183bb275129106e2221a080045000054bfe900003f019ae2" + packetv4PrefixV2 := "0403a80b8d4598d462000000620002006800000001000000000002000000000000000000000000000000000000000000f0debc9a7856341206e9183bb275129106e2221a080045000054bfe900003f019ae2" + packetv4802Prefix := "0403a80b8d4598d462000000620000006800000001000000000002000000000006e9183bb275129106e2221a81000202080045000054bfe900003f019ae2" + packetv6Prefix := "0405a80b5f16f2b8560000005600010068000000000000000000000000000000000000000000000000000000000000003333ff00b3e5129106e2221a86dd6000000000203aff" + packetv6802Prefix := "0405a80b5f16f2b8560000005600010068000000000000000000000000000000000000000000000000000000000000003333ff00b3e5129106e2221a8100020286dd6000000000203aff" // ICMPv4/v6 packets (with reversed src/dst IPs) - packetICMPv4 := decodeHex("010101010a107e4000003639225700051b7b415d0000000086bf050000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637") - packetICMPv6Req := decodeHex("f00d0000000000000a10000000009195ff0200000000000000000001ff00b3e58700507500000000f00d0000000000000a1000000000b3e50101129106e2221a") - packetICMPv4Rev := decodeHex("0a107e400101010100003639225700051b7b415d0000000086bf050000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637") - packetICMPv6Rev := decodeHex("ff0200000000000000000001ff00b3e5f00d0000000000000a100000000091958700507500000000f00d0000000000000a1000000000b3e50101129106e2221a") + packetICMPv4 := "010101010a107e4000003639225700051b7b415d0000000086bf050000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637" + packetICMPv6Req := "f00d0000000000000a10000000009195ff0200000000000000000001ff00b3e58700507500000000f00d0000000000000a1000000000b3e50101129106e2221a" + packetICMPv4Rev := "0a107e400101010100003639225700051b7b415d0000000086bf050000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637" + packetICMPv6Rev := "ff0200000000000000000001ff00b3e5f00d0000000000000a100000000091958700507500000000f00d0000000000000a1000000000b3e50101129106e2221a" // The following structs are decoded pieces of the above packets traceNotifyIPv4 := monitor.TraceNotify{ @@ -63,13 +64,25 @@ func TestCreateL3L4Payload(t *testing.T) { Reason: monitor.TraceReasonPolicy, Version: monitor.TraceNotifyVersion1, } + traceNotifyIPv4V2 := monitor.TraceNotify{ + Type: monitorAPI.MessageTypeTrace, + ObsPoint: monitorAPI.TraceToStack, + Source: 0xba8, + Hash: 0xd498458d, + OrigLen: 0x62, + CapLen: 0x62, + SrcLabel: 0x68, + DstLabel: 0x1, + Reason: monitor.TraceReasonCtReply, + Version: monitor.TraceNotifyVersion2, + IPTraceID: 0x123456789abcdef0, + } etherIPv4 := &layers.Ethernet{ EthernetType: layers.EthernetTypeIPv4, SrcMAC: net.HardwareAddr{0x12, 0x91, 0x06, 0xe2, 0x22, 0x1a}, DstMAC: net.HardwareAddr{0x06, 0xe9, 0x18, 0x3b, 0xb2, 0x75}, } - etherIPv6 := &layers.Ethernet{ EthernetType: layers.EthernetTypeIPv6, SrcMAC: net.HardwareAddr{0x12, 0x91, 0x6, 0xe2, 0x22, 0x1a}, @@ -166,7 +179,7 @@ func TestCreateL3L4Payload(t *testing.T) { msg: traceNotifyIPv4, l: []gopacket.SerializableLayer{etherIPv4, ipv4, icmpv4, icmpv4Payload}, }, - want: append(packetv4Prefix[:], packetICMPv4...), + want: decodeHex(packetv4Prefix + packetICMPv4), }, { name: "ICMPv6 Neighbor Solicitation", @@ -174,7 +187,15 @@ func TestCreateL3L4Payload(t *testing.T) { msg: traceNotifyIPv6, l: []gopacket.SerializableLayer{etherIPv6, ipv6, icmpv6, icmpv6Payload}, }, - want: append(packetv6Prefix[:], packetICMPv6Req...), + want: decodeHex(packetv6Prefix + packetICMPv6Req), + }, + { + name: "ICMPv4 Echo Reply with IP Trace", + args: args{ + msg: traceNotifyIPv4V2, + l: []gopacket.SerializableLayer{etherIPv4, ipv4, icmpv4, icmpv4Payload}, + }, + want: decodeHex(packetv4PrefixV2 + packetICMPv4), }, { name: "ICMPv4 Echo Reply Reversed", @@ -182,7 +203,7 @@ func TestCreateL3L4Payload(t *testing.T) { msg: traceNotifyIPv4, l: []gopacket.SerializableLayer{etherIPv4, ipv4Rev, icmpv4, icmpv4Payload}, }, - want: append(packetv4Prefix[:], packetICMPv4Rev...), + want: decodeHex(packetv4Prefix + packetICMPv4Rev), }, { name: "ICMPv6 Neighbor Solicitation Reversed", @@ -190,7 +211,7 @@ func TestCreateL3L4Payload(t *testing.T) { msg: traceNotifyIPv6, l: []gopacket.SerializableLayer{etherIPv6, ipv6Rev, icmpv6, icmpv6Payload}, }, - want: append(packetv6Prefix[:], packetICMPv6Rev...), + want: decodeHex(packetv6Prefix + packetICMPv6Rev), }, { name: "802.11q ICMPv4 Echo Reply", @@ -198,7 +219,7 @@ func TestCreateL3L4Payload(t *testing.T) { msg: traceNotifyIPv4, l: []gopacket.SerializableLayer{etherIPv4Dot1Q, dot1QIPv4, ipv4, icmpv4, icmpv4Payload}, }, - want: append(packetv4802Prefix[:], packetICMPv4...), + want: decodeHex(packetv4802Prefix + packetICMPv4), }, { name: "802.11q ICMPv6 Neighbor Solicitation", @@ -206,7 +227,7 @@ func TestCreateL3L4Payload(t *testing.T) { msg: traceNotifyIPv6, l: []gopacket.SerializableLayer{etherIPv6Dot1Q, dot1QIPv6, ipv6, icmpv6, icmpv6Payload}, }, - want: append(packetv6802Prefix[:], packetICMPv6Req...), + want: decodeHex(packetv6802Prefix + packetICMPv6Req), }, } for _, tt := range tests { diff --git a/pkg/monitor/datapath_trace.go b/pkg/monitor/datapath_trace.go index f8375eb1e654f..5215cfc40a001 100644 --- a/pkg/monitor/datapath_trace.go +++ b/pkg/monitor/datapath_trace.go @@ -21,6 +21,8 @@ const ( traceNotifyV0Len = 32 // traceNotifyV1Len is the amount of packet data provided in a trace notification v1. traceNotifyV1Len = 48 + // traceNotifyV2Len is the amount of packet data provided in a trace notification v2. + traceNotifyV2Len = 56 ) const ( @@ -41,24 +43,26 @@ const ( const ( TraceNotifyVersion0 = iota TraceNotifyVersion1 + TraceNotifyVersion2 ) // TraceNotify is the message format of a trace notification in the BPF ring buffer type TraceNotify struct { - Type uint8 - ObsPoint uint8 - Source uint16 - Hash uint32 - OrigLen uint32 - CapLen uint16 - Version uint16 - SrcLabel identity.NumericIdentity - DstLabel identity.NumericIdentity - DstID uint16 - Reason uint8 - Flags uint8 - Ifindex uint32 - OrigIP types.IPv6 + Type uint8 + ObsPoint uint8 + Source uint16 + Hash uint32 + OrigLen uint32 + CapLen uint16 + Version uint16 + SrcLabel identity.NumericIdentity + DstLabel identity.NumericIdentity + DstID uint16 + Reason uint8 + Flags uint8 + Ifindex uint32 + OrigIP types.IPv6 + IPTraceID uint64 // data } @@ -94,12 +98,19 @@ func (tn *TraceNotify) Decode(data []byte) error { version := byteorder.Native.Uint16(data[14:16]) // Check against max version. - if version > TraceNotifyVersion1 { + if version > TraceNotifyVersion2 { return fmt.Errorf("Unrecognized trace event (version %d)", version) } // Decode logic for version >= v1. - if version >= TraceNotifyVersion1 { + switch version { + case TraceNotifyVersion2: + if l := len(data); l < traceNotifyV2Len { + return fmt.Errorf("unexpected TraceNotify data length (version %d), expected at least %d but got %d", version, traceNotifyV2Len, l) + } + tn.IPTraceID = byteorder.Native.Uint64(data[48:56]) + fallthrough + case TraceNotifyVersion1: if l := len(data); l < traceNotifyV1Len { return fmt.Errorf("unexpected TraceNotify data length (version %d), expected at least %d but got %d", version, traceNotifyV1Len, l) } @@ -172,6 +183,7 @@ var ( traceNotifyLength = map[uint16]uint{ TraceNotifyVersion0: traceNotifyV0Len, TraceNotifyVersion1: traceNotifyV1Len, + TraceNotifyVersion2: traceNotifyV2Len, } ) @@ -316,14 +328,23 @@ func (n *TraceNotify) DumpInfo(buf *bufio.Writer, data []byte, numeric api.Displ } n.dumpIdentity(buf, numeric) ifname := linkMonitor.Name(n.Ifindex) - fmt.Fprintf(buf, " state %s ifindex %s orig-ip %s: %s\n", n.traceReasonString(), - ifname, n.OriginalIP().String(), GetConnectionSummary(data[hdrLen:], &decodeOpts{n.IsL3Device(), n.IsIPv6(), n.IsVXLAN(), n.IsGeneve()})) + + if id := n.IPTraceID; id > 0 { + fmt.Fprintf(buf, " [ ip-trace-id = %d ]", id) + } + fmt.Fprintf(buf, " state %s ifindex %s orig-ip %s: %s\n", + n.traceReasonString(), ifname, n.OriginalIP().String(), GetConnectionSummary(data[hdrLen:], &decodeOpts{n.IsL3Device(), n.IsIPv6(), n.IsVXLAN(), n.IsGeneve()})) + buf.Flush() } // DumpVerbose prints the trace notification in human readable form func (n *TraceNotify) DumpVerbose(buf *bufio.Writer, dissect bool, data []byte, prefix string, numeric api.DisplayFormat, linkMonitor getters.LinkGetter) { - fmt.Fprintf(buf, "%s MARK %#x FROM %d %s: %d bytes (%d captured), state %s", - prefix, n.Hash, n.Source, api.TraceObservationPoint(n.ObsPoint), n.OrigLen, n.CapLen, n.traceReasonString()) + fmt.Fprintf(buf, "%s MARK %#x", prefix, n.Hash) + if id := n.IPTraceID; id > 0 { + fmt.Fprintf(buf, " [ IP-TRACE-ID = %d ]", id) + } + fmt.Fprintf(buf, " FROM %d %s: %d bytes (%d captured), state %s", + n.Source, api.TraceObservationPoint(n.ObsPoint), n.OrigLen, n.CapLen, n.traceReasonString()) if n.Ifindex != 0 { ifname := linkMonitor.Name(n.Ifindex) @@ -383,11 +404,12 @@ type TraceNotifyVerbose struct { ObservationPoint string `json:"observationPoint"` TraceSummary string `json:"traceSummary"` - Source uint16 `json:"source"` - Bytes uint32 `json:"bytes"` - SrcLabel identity.NumericIdentity `json:"srcLabel"` - DstLabel identity.NumericIdentity `json:"dstLabel"` - DstID uint16 `json:"dstID"` + Source uint16 `json:"source"` + Bytes uint32 `json:"bytes"` + SrcLabel identity.NumericIdentity `json:"srcLabel"` + DstLabel identity.NumericIdentity `json:"dstLabel"` + DstID uint16 `json:"dstID"` + IPTraceID uint64 `json:"IpTraceID"` Summary *DissectSummary `json:"summary,omitempty"` } @@ -407,5 +429,6 @@ func TraceNotifyToVerbose(n *TraceNotify, linkMonitor getters.LinkGetter) TraceN SrcLabel: n.SrcLabel, DstLabel: n.DstLabel, DstID: n.DstID, + IPTraceID: n.IPTraceID, } } diff --git a/pkg/monitor/datapath_trace_test.go b/pkg/monitor/datapath_trace_test.go index b502965c12d94..855843e300426 100644 --- a/pkg/monitor/datapath_trace_test.go +++ b/pkg/monitor/datapath_trace_test.go @@ -18,7 +18,7 @@ import ( func TestDecodeTraceNotify(t *testing.T) { // This check on the struct length constant is there to ensure that this // test is updated when the struct changes. - require.Equal(t, 48, traceNotifyV1Len) + require.Equal(t, 56, traceNotifyV2Len) in := TraceNotify{ Type: 0x00, @@ -27,20 +27,20 @@ func TestDecodeTraceNotify(t *testing.T) { Hash: 0x05_06_07_08, OrigLen: 0x09_0a_0b_0c, CapLen: 0x0d_0e, - Version: TraceNotifyVersion1, - SrcLabel: identity.NumericIdentity(0x_11_12_13_14), - DstLabel: identity.NumericIdentity(0x_15_16_17_18), + Version: TraceNotifyVersion2, + SrcLabel: identity.NumericIdentity(0x11_12_13_14), + DstLabel: identity.NumericIdentity(0x15_16_17_18), DstID: 0x19_1a, Reason: 0x1b, Flags: 0x1c, Ifindex: 0x1d_1e_1f_20, OrigIP: types.IPv6{ - 0x21, 0x22, - 0x23, 0x24, - 0x25, 0x26, - 0x27, 0x28, - 0x29, 0x2a, + 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2e, 0x2f, 0x30, }, + IPTraceID: 0x2b_2c_2d_2e_2f_30_31_32, } buf := bytes.NewBuffer(nil) err := binary.Write(buf, byteorder.Native, in) @@ -63,6 +63,7 @@ func TestDecodeTraceNotify(t *testing.T) { require.Equal(t, in.Flags, out.Flags) require.Equal(t, in.Ifindex, out.Ifindex) require.Equal(t, in.OrigIP, out.OrigIP) + require.Equal(t, in.IPTraceID, out.IPTraceID) } func TestDecodeTraceNotifyErrors(t *testing.T) { @@ -330,7 +331,9 @@ func BenchmarkDecodeTraceNotifyVersion0(b *testing.B) { } func BenchmarkDecodeTraceNotifyVersion1(b *testing.B) { - input := TraceNotify{Version: TraceNotifyVersion1} + input := TraceNotify{ + Version: TraceNotifyVersion1, + } buf := bytes.NewBuffer(nil) if err := binary.Write(buf, byteorder.Native, input); err != nil { @@ -340,7 +343,9 @@ func BenchmarkDecodeTraceNotifyVersion1(b *testing.B) { b.ReportAllocs() for b.Loop() { - tn := &TraceNotify{Version: TraceNotifyVersion1} + tn := &TraceNotify{ + Version: TraceNotifyVersion1, + } if err := tn.Decode(buf.Bytes()); err != nil { b.Fatal(err) } From d30630a80e2d2e77dcb9e43f8f7a9296c6f1ff1b Mon Sep 17 00:00:00 2001 From: Ben Bigdelle Date: Tue, 19 Aug 2025 22:50:34 +0000 Subject: [PATCH 010/176] feat: add IPTraceID into flow struct This change introduces the IPTraceID field to the Hubble protobuf. This allows IP-based tracing information to be propagated and associated with flows observed by Hubble. The following changes are included: - A new `IPTraceID` message type is defined in `flow.proto`, containing the trace ID and the IP option type. - The Hubble parser is updated to decode the IP trace ID from monitor events (both drop and trace notifications) and populate the `ip_trace_id` field in the resulting `Flow` message. - The Hubble printer is updated to display the IP trace ID in the output. Signed-off-by: Ben Bigdelle --- api/v1/flow/README.md | 19 ++ api/v1/flow/flow.pb.go | 347 +++++++++++++-------- api/v1/flow/flow.pb.json.go | 12 + api/v1/flow/flow.proto | 10 + api/v1/observer/observer.pb.go | 1 + hubble/pkg/defaults/defaults.go | 1 + hubble/pkg/printer/printer.go | 13 +- hubble/pkg/printer/printer_test.go | 55 +++- pkg/hubble/parser/threefour/parser.go | 19 ++ pkg/hubble/parser/threefour/parser_test.go | 91 +++++- 10 files changed, 421 insertions(+), 147 deletions(-) diff --git a/api/v1/flow/README.md b/api/v1/flow/README.md index 8c665dc4c2d30..c5edd5deebcc5 100644 --- a/api/v1/flow/README.md +++ b/api/v1/flow/README.md @@ -24,6 +24,7 @@ - [ICMPv6](#flow-ICMPv6) - [IP](#flow-IP) - [IPCacheNotification](#flow-IPCacheNotification) + - [IPTraceID](#flow-IPTraceID) - [Kafka](#flow-Kafka) - [Layer4](#flow-Layer4) - [Layer7](#flow-Layer7) @@ -312,6 +313,7 @@ EventTypeFilter is a filter describing a particular event type. | trace_observation_point | [TraceObservationPoint](#flow-TraceObservationPoint) | | Only applicable to cilium trace notifications, blank for other types. | | trace_reason | [TraceReason](#flow-TraceReason) | | Cilium datapath trace reason info. | | file | [FileInfo](#flow-FileInfo) | | Cilium datapath filename and line number. Currently only applicable when Verdict = DROPPED. | +| ip_trace_id | [IPTraceID](#flow-IPTraceID) | | IPTraceID relates to the trace ID in the IP options of a packet. | | drop_reason_desc | [DropReason](#flow-DropReason) | | only applicable to Verdict = DROPPED. | | is_reply | [google.protobuf.BoolValue](#google-protobuf-BoolValue) | | is_reply indicates that this was a packet (L4) or message (L7) in the reply direction. May be absent (in which case it is unknown whether it is a reply or not). | | debug_capture_point | [DebugCapturePoint](#flow-DebugCapturePoint) | | Only applicable to cilium debug capture events, blank for other types | @@ -381,6 +383,7 @@ multiple fields are set, then all fields must match for the filter to match. | node_labels | [string](#string) | repeated | node_labels filters on a list of node label selectors. Selectors support the full Kubernetes label selector syntax. | | ip_version | [IPVersion](#flow-IPVersion) | repeated | filter based on IP version (ipv4 or ipv6) | | trace_id | [string](#string) | repeated | trace_id filters flows by trace ID | +| ip_trace_id | [uint64](#uint64) | repeated | ip_trace_id filters flows by IPTraceID | | experimental | [FlowFilter.Experimental](#flow-FlowFilter-Experimental) | | experimental contains filters that are not stable yet. Support for experimental features is always optional and subject to change. | @@ -512,6 +515,22 @@ L7 information for HTTP flows. It corresponds to Cilium's [accesslog.LogReco + + +### IPTraceID + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| trace_id | [uint64](#uint64) | | | +| ip_option_type | [uint32](#uint32) | | | + + + + + + ### Kafka diff --git a/api/v1/flow/flow.pb.go b/api/v1/flow/flow.pb.go index 01608c899f096..3480c8c279529 100644 --- a/api/v1/flow/flow.pb.go +++ b/api/v1/flow/flow.pb.go @@ -1499,6 +1499,8 @@ type Flow struct { // Cilium datapath filename and line number. Currently only applicable when // Verdict = DROPPED. File *FileInfo `protobuf:"bytes,38,opt,name=file,proto3" json:"file,omitempty"` + // IPTraceID relates to the trace ID in the IP options of a packet. + IpTraceId *IPTraceID `protobuf:"bytes,40,opt,name=ip_trace_id,json=ipTraceId,proto3" json:"ip_trace_id,omitempty"` // only applicable to Verdict = DROPPED. DropReasonDesc DropReason `protobuf:"varint,25,opt,name=drop_reason_desc,json=dropReasonDesc,proto3,enum=flow.DropReason" json:"drop_reason_desc,omitempty"` // is_reply indicates that this was a packet (L4) or message (L7) in the @@ -1764,6 +1766,13 @@ func (x *Flow) GetFile() *FileInfo { return nil } +func (x *Flow) GetIpTraceId() *IPTraceID { + if x != nil { + return x.IpTraceId + } + return nil +} + func (x *Flow) GetDropReasonDesc() DropReason { if x != nil { return x.DropReasonDesc @@ -3286,6 +3295,8 @@ type FlowFilter struct { IpVersion []IPVersion `protobuf:"varint,25,rep,packed,name=ip_version,json=ipVersion,proto3,enum=flow.IPVersion" json:"ip_version,omitempty"` // trace_id filters flows by trace ID TraceId []string `protobuf:"bytes,28,rep,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` + // ip_trace_id filters flows by IPTraceID + IpTraceId []uint64 `protobuf:"varint,39,rep,packed,name=ip_trace_id,json=ipTraceId,proto3" json:"ip_trace_id,omitempty"` // experimental contains filters that are not stable yet. Support for // experimental features is always optional and subject to change. Experimental *FlowFilter_Experimental `protobuf:"bytes,999,opt,name=experimental,proto3" json:"experimental,omitempty"` @@ -3589,6 +3600,13 @@ func (x *FlowFilter) GetTraceId() []string { return nil } +func (x *FlowFilter) GetIpTraceId() []uint64 { + if x != nil { + return x.IpTraceId + } + return nil +} + func (x *FlowFilter) GetExperimental() *FlowFilter_Experimental { if x != nil { return x.Experimental @@ -3970,6 +3988,58 @@ func (x *Service) GetNamespace() string { return "" } +type IPTraceID struct { + state protoimpl.MessageState `protogen:"open.v1"` + TraceId uint64 `protobuf:"varint,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` + IpOptionType uint32 `protobuf:"varint,2,opt,name=ip_option_type,json=ipOptionType,proto3" json:"ip_option_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IPTraceID) Reset() { + *x = IPTraceID{} + mi := &file_flow_flow_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IPTraceID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IPTraceID) ProtoMessage() {} + +func (x *IPTraceID) ProtoReflect() protoreflect.Message { + mi := &file_flow_flow_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IPTraceID.ProtoReflect.Descriptor instead. +func (*IPTraceID) Descriptor() ([]byte, []int) { + return file_flow_flow_proto_rawDescGZIP(), []int{26} +} + +func (x *IPTraceID) GetTraceId() uint64 { + if x != nil { + return x.TraceId + } + return 0 +} + +func (x *IPTraceID) GetIpOptionType() uint32 { + if x != nil { + return x.IpOptionType + } + return 0 +} + // LostEvent is a message which notifies consumers about a loss of events // that happened before the events were captured by Hubble. type LostEvent struct { @@ -3987,7 +4057,7 @@ type LostEvent struct { func (x *LostEvent) Reset() { *x = LostEvent{} - mi := &file_flow_flow_proto_msgTypes[26] + mi := &file_flow_flow_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3999,7 +4069,7 @@ func (x *LostEvent) String() string { func (*LostEvent) ProtoMessage() {} func (x *LostEvent) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[26] + mi := &file_flow_flow_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4012,7 +4082,7 @@ func (x *LostEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LostEvent.ProtoReflect.Descriptor instead. func (*LostEvent) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{26} + return file_flow_flow_proto_rawDescGZIP(), []int{27} } func (x *LostEvent) GetSource() LostEventSource { @@ -4056,7 +4126,7 @@ type AgentEvent struct { func (x *AgentEvent) Reset() { *x = AgentEvent{} - mi := &file_flow_flow_proto_msgTypes[27] + mi := &file_flow_flow_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4068,7 +4138,7 @@ func (x *AgentEvent) String() string { func (*AgentEvent) ProtoMessage() {} func (x *AgentEvent) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[27] + mi := &file_flow_flow_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4081,7 +4151,7 @@ func (x *AgentEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentEvent.ProtoReflect.Descriptor instead. func (*AgentEvent) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{27} + return file_flow_flow_proto_rawDescGZIP(), []int{28} } func (x *AgentEvent) GetType() AgentEventType { @@ -4240,7 +4310,7 @@ type AgentEventUnknown struct { func (x *AgentEventUnknown) Reset() { *x = AgentEventUnknown{} - mi := &file_flow_flow_proto_msgTypes[28] + mi := &file_flow_flow_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4252,7 +4322,7 @@ func (x *AgentEventUnknown) String() string { func (*AgentEventUnknown) ProtoMessage() {} func (x *AgentEventUnknown) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[28] + mi := &file_flow_flow_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4265,7 +4335,7 @@ func (x *AgentEventUnknown) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentEventUnknown.ProtoReflect.Descriptor instead. func (*AgentEventUnknown) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{28} + return file_flow_flow_proto_rawDescGZIP(), []int{29} } func (x *AgentEventUnknown) GetType() string { @@ -4291,7 +4361,7 @@ type TimeNotification struct { func (x *TimeNotification) Reset() { *x = TimeNotification{} - mi := &file_flow_flow_proto_msgTypes[29] + mi := &file_flow_flow_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4303,7 +4373,7 @@ func (x *TimeNotification) String() string { func (*TimeNotification) ProtoMessage() {} func (x *TimeNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[29] + mi := &file_flow_flow_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4316,7 +4386,7 @@ func (x *TimeNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeNotification.ProtoReflect.Descriptor instead. func (*TimeNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{29} + return file_flow_flow_proto_rawDescGZIP(), []int{30} } func (x *TimeNotification) GetTime() *timestamppb.Timestamp { @@ -4337,7 +4407,7 @@ type PolicyUpdateNotification struct { func (x *PolicyUpdateNotification) Reset() { *x = PolicyUpdateNotification{} - mi := &file_flow_flow_proto_msgTypes[30] + mi := &file_flow_flow_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4349,7 +4419,7 @@ func (x *PolicyUpdateNotification) String() string { func (*PolicyUpdateNotification) ProtoMessage() {} func (x *PolicyUpdateNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[30] + mi := &file_flow_flow_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4362,7 +4432,7 @@ func (x *PolicyUpdateNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyUpdateNotification.ProtoReflect.Descriptor instead. func (*PolicyUpdateNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{30} + return file_flow_flow_proto_rawDescGZIP(), []int{31} } func (x *PolicyUpdateNotification) GetLabels() []string { @@ -4397,7 +4467,7 @@ type EndpointRegenNotification struct { func (x *EndpointRegenNotification) Reset() { *x = EndpointRegenNotification{} - mi := &file_flow_flow_proto_msgTypes[31] + mi := &file_flow_flow_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4409,7 +4479,7 @@ func (x *EndpointRegenNotification) String() string { func (*EndpointRegenNotification) ProtoMessage() {} func (x *EndpointRegenNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[31] + mi := &file_flow_flow_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4422,7 +4492,7 @@ func (x *EndpointRegenNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use EndpointRegenNotification.ProtoReflect.Descriptor instead. func (*EndpointRegenNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{31} + return file_flow_flow_proto_rawDescGZIP(), []int{32} } func (x *EndpointRegenNotification) GetId() uint64 { @@ -4459,7 +4529,7 @@ type EndpointUpdateNotification struct { func (x *EndpointUpdateNotification) Reset() { *x = EndpointUpdateNotification{} - mi := &file_flow_flow_proto_msgTypes[32] + mi := &file_flow_flow_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4471,7 +4541,7 @@ func (x *EndpointUpdateNotification) String() string { func (*EndpointUpdateNotification) ProtoMessage() {} func (x *EndpointUpdateNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[32] + mi := &file_flow_flow_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4484,7 +4554,7 @@ func (x *EndpointUpdateNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use EndpointUpdateNotification.ProtoReflect.Descriptor instead. func (*EndpointUpdateNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{32} + return file_flow_flow_proto_rawDescGZIP(), []int{33} } func (x *EndpointUpdateNotification) GetId() uint64 { @@ -4538,7 +4608,7 @@ type IPCacheNotification struct { func (x *IPCacheNotification) Reset() { *x = IPCacheNotification{} - mi := &file_flow_flow_proto_msgTypes[33] + mi := &file_flow_flow_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4550,7 +4620,7 @@ func (x *IPCacheNotification) String() string { func (*IPCacheNotification) ProtoMessage() {} func (x *IPCacheNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[33] + mi := &file_flow_flow_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4563,7 +4633,7 @@ func (x *IPCacheNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use IPCacheNotification.ProtoReflect.Descriptor instead. func (*IPCacheNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{33} + return file_flow_flow_proto_rawDescGZIP(), []int{34} } func (x *IPCacheNotification) GetCidr() string { @@ -4633,7 +4703,7 @@ type ServiceUpsertNotificationAddr struct { func (x *ServiceUpsertNotificationAddr) Reset() { *x = ServiceUpsertNotificationAddr{} - mi := &file_flow_flow_proto_msgTypes[34] + mi := &file_flow_flow_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4645,7 +4715,7 @@ func (x *ServiceUpsertNotificationAddr) String() string { func (*ServiceUpsertNotificationAddr) ProtoMessage() {} func (x *ServiceUpsertNotificationAddr) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[34] + mi := &file_flow_flow_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4658,7 +4728,7 @@ func (x *ServiceUpsertNotificationAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceUpsertNotificationAddr.ProtoReflect.Descriptor instead. func (*ServiceUpsertNotificationAddr) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{34} + return file_flow_flow_proto_rawDescGZIP(), []int{35} } func (x *ServiceUpsertNotificationAddr) GetIp() string { @@ -4694,7 +4764,7 @@ type ServiceUpsertNotification struct { func (x *ServiceUpsertNotification) Reset() { *x = ServiceUpsertNotification{} - mi := &file_flow_flow_proto_msgTypes[35] + mi := &file_flow_flow_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4706,7 +4776,7 @@ func (x *ServiceUpsertNotification) String() string { func (*ServiceUpsertNotification) ProtoMessage() {} func (x *ServiceUpsertNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[35] + mi := &file_flow_flow_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4719,7 +4789,7 @@ func (x *ServiceUpsertNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceUpsertNotification.ProtoReflect.Descriptor instead. func (*ServiceUpsertNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{35} + return file_flow_flow_proto_rawDescGZIP(), []int{36} } func (x *ServiceUpsertNotification) GetId() uint32 { @@ -4796,7 +4866,7 @@ type ServiceDeleteNotification struct { func (x *ServiceDeleteNotification) Reset() { *x = ServiceDeleteNotification{} - mi := &file_flow_flow_proto_msgTypes[36] + mi := &file_flow_flow_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4808,7 +4878,7 @@ func (x *ServiceDeleteNotification) String() string { func (*ServiceDeleteNotification) ProtoMessage() {} func (x *ServiceDeleteNotification) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[36] + mi := &file_flow_flow_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4821,7 +4891,7 @@ func (x *ServiceDeleteNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceDeleteNotification.ProtoReflect.Descriptor instead. func (*ServiceDeleteNotification) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{36} + return file_flow_flow_proto_rawDescGZIP(), []int{37} } func (x *ServiceDeleteNotification) GetId() uint32 { @@ -4841,7 +4911,7 @@ type NetworkInterface struct { func (x *NetworkInterface) Reset() { *x = NetworkInterface{} - mi := &file_flow_flow_proto_msgTypes[37] + mi := &file_flow_flow_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4853,7 +4923,7 @@ func (x *NetworkInterface) String() string { func (*NetworkInterface) ProtoMessage() {} func (x *NetworkInterface) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[37] + mi := &file_flow_flow_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4866,7 +4936,7 @@ func (x *NetworkInterface) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkInterface.ProtoReflect.Descriptor instead. func (*NetworkInterface) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{37} + return file_flow_flow_proto_rawDescGZIP(), []int{38} } func (x *NetworkInterface) GetIndex() uint32 { @@ -4899,7 +4969,7 @@ type DebugEvent struct { func (x *DebugEvent) Reset() { *x = DebugEvent{} - mi := &file_flow_flow_proto_msgTypes[38] + mi := &file_flow_flow_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4911,7 +4981,7 @@ func (x *DebugEvent) String() string { func (*DebugEvent) ProtoMessage() {} func (x *DebugEvent) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[38] + mi := &file_flow_flow_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4924,7 +4994,7 @@ func (x *DebugEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use DebugEvent.ProtoReflect.Descriptor instead. func (*DebugEvent) Descriptor() ([]byte, []int) { - return file_flow_flow_proto_rawDescGZIP(), []int{38} + return file_flow_flow_proto_rawDescGZIP(), []int{39} } func (x *DebugEvent) GetType() DebugEventType { @@ -5003,7 +5073,7 @@ type FlowFilter_Experimental struct { func (x *FlowFilter_Experimental) Reset() { *x = FlowFilter_Experimental{} - mi := &file_flow_flow_proto_msgTypes[39] + mi := &file_flow_flow_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5015,7 +5085,7 @@ func (x *FlowFilter_Experimental) String() string { func (*FlowFilter_Experimental) ProtoMessage() {} func (x *FlowFilter_Experimental) ProtoReflect() protoreflect.Message { - mi := &file_flow_flow_proto_msgTypes[39] + mi := &file_flow_flow_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5042,7 +5112,7 @@ var File_flow_flow_proto protoreflect.FileDescriptor const file_flow_flow_proto_rawDesc = "" + "\n" + - "\x0fflow/flow.proto\x12\x04flow\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb4\x0f\n" + + "\x0fflow/flow.proto\x12\x04flow\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe5\x0f\n" + "\x04Flow\x12.\n" + "\x04time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12\x12\n" + "\x04uuid\x18\" \x01(\tR\x04uuid\x12'\n" + @@ -5073,7 +5143,8 @@ const file_flow_flow_proto_rawDesc = "" + "\x11policy_match_type\x18\x17 \x01(\rR\x0fpolicyMatchType\x12S\n" + "\x17trace_observation_point\x18\x18 \x01(\x0e2\x1b.flow.TraceObservationPointR\x15traceObservationPoint\x124\n" + "\ftrace_reason\x18$ \x01(\x0e2\x11.flow.TraceReasonR\vtraceReason\x12\"\n" + - "\x04file\x18& \x01(\v2\x0e.flow.FileInfoR\x04file\x12:\n" + + "\x04file\x18& \x01(\v2\x0e.flow.FileInfoR\x04file\x12/\n" + + "\vip_trace_id\x18( \x01(\v2\x0f.flow.IPTraceIDR\tipTraceId\x12:\n" + "\x10drop_reason_desc\x18\x19 \x01(\x0e2\x10.flow.DropReasonR\x0edropReasonDesc\x125\n" + "\bis_reply\x18\x1a \x01(\v2\x1a.google.protobuf.BoolValueR\aisReply\x12G\n" + "\x13debug_capture_point\x18\x1b \x01(\x0e2\x17.flow.DebugCapturePointR\x11debugCapturePoint\x124\n" + @@ -5189,7 +5260,7 @@ const file_flow_flow_proto_rawDesc = "" + "\bsub_type\x18\x03 \x01(\x05R\asubType\"@\n" + "\x0fCiliumEventType\x12\x12\n" + "\x04type\x18\x01 \x01(\x05R\x04type\x12\x19\n" + - "\bsub_type\x18\x02 \x01(\x05R\asubType\"\xa4\r\n" + + "\bsub_type\x18\x02 \x01(\x05R\asubType\"\xc4\r\n" + "\n" + "FlowFilter\x12\x12\n" + "\x04uuid\x18\x1d \x03(\tR\x04uuid\x12\x1b\n" + @@ -5238,7 +5309,8 @@ const file_flow_flow_proto_rawDesc = "" + "nodeLabels\x12.\n" + "\n" + "ip_version\x18\x19 \x03(\x0e2\x0f.flow.IPVersionR\tipVersion\x12\x19\n" + - "\btrace_id\x18\x1c \x03(\tR\atraceId\x12B\n" + + "\btrace_id\x18\x1c \x03(\tR\atraceId\x12\x1e\n" + + "\vip_trace_id\x18' \x03(\x04R\tipTraceId\x12B\n" + "\fexperimental\x18\xe7\a \x01(\v2\x1d.flow.FlowFilter.ExperimentalR\fexperimental\x1a5\n" + "\fExperimental\x12%\n" + "\x0ecel_expression\x18\x01 \x03(\tR\rcelExpression\"\xce\x01\n" + @@ -5271,7 +5343,10 @@ const file_flow_flow_proto_rawDesc = "" + "\x05topic\x18\x05 \x01(\tR\x05topic\";\n" + "\aService\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n" + - "\tnamespace\x18\x02 \x01(\tR\tnamespace\"\x91\x01\n" + + "\tnamespace\x18\x02 \x01(\tR\tnamespace\"L\n" + + "\tIPTraceID\x12\x19\n" + + "\btrace_id\x18\x01 \x01(\x04R\atraceId\x12$\n" + + "\x0eip_option_type\x18\x02 \x01(\rR\fipOptionType\"\x91\x01\n" + "\tLostEvent\x12-\n" + "\x06source\x18\x01 \x01(\x0e2\x15.flow.LostEventSourceR\x06source\x12&\n" + "\x0fnum_events_lost\x18\x02 \x01(\x04R\rnumEventsLost\x12-\n" + @@ -5624,7 +5699,7 @@ func file_flow_flow_proto_rawDescGZIP() []byte { } var file_flow_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 16) -var file_flow_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_flow_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_flow_flow_proto_goTypes = []any{ (FlowType)(0), // 0: flow.FlowType (AuthType)(0), // 1: flow.AuthType @@ -5668,28 +5743,29 @@ var file_flow_flow_proto_goTypes = []any{ (*HTTP)(nil), // 39: flow.HTTP (*Kafka)(nil), // 40: flow.Kafka (*Service)(nil), // 41: flow.Service - (*LostEvent)(nil), // 42: flow.LostEvent - (*AgentEvent)(nil), // 43: flow.AgentEvent - (*AgentEventUnknown)(nil), // 44: flow.AgentEventUnknown - (*TimeNotification)(nil), // 45: flow.TimeNotification - (*PolicyUpdateNotification)(nil), // 46: flow.PolicyUpdateNotification - (*EndpointRegenNotification)(nil), // 47: flow.EndpointRegenNotification - (*EndpointUpdateNotification)(nil), // 48: flow.EndpointUpdateNotification - (*IPCacheNotification)(nil), // 49: flow.IPCacheNotification - (*ServiceUpsertNotificationAddr)(nil), // 50: flow.ServiceUpsertNotificationAddr - (*ServiceUpsertNotification)(nil), // 51: flow.ServiceUpsertNotification - (*ServiceDeleteNotification)(nil), // 52: flow.ServiceDeleteNotification - (*NetworkInterface)(nil), // 53: flow.NetworkInterface - (*DebugEvent)(nil), // 54: flow.DebugEvent - (*FlowFilter_Experimental)(nil), // 55: flow.FlowFilter.Experimental - (*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp - (*wrapperspb.BoolValue)(nil), // 57: google.protobuf.BoolValue - (*anypb.Any)(nil), // 58: google.protobuf.Any - (*wrapperspb.Int32Value)(nil), // 59: google.protobuf.Int32Value - (*wrapperspb.UInt32Value)(nil), // 60: google.protobuf.UInt32Value + (*IPTraceID)(nil), // 42: flow.IPTraceID + (*LostEvent)(nil), // 43: flow.LostEvent + (*AgentEvent)(nil), // 44: flow.AgentEvent + (*AgentEventUnknown)(nil), // 45: flow.AgentEventUnknown + (*TimeNotification)(nil), // 46: flow.TimeNotification + (*PolicyUpdateNotification)(nil), // 47: flow.PolicyUpdateNotification + (*EndpointRegenNotification)(nil), // 48: flow.EndpointRegenNotification + (*EndpointUpdateNotification)(nil), // 49: flow.EndpointUpdateNotification + (*IPCacheNotification)(nil), // 50: flow.IPCacheNotification + (*ServiceUpsertNotificationAddr)(nil), // 51: flow.ServiceUpsertNotificationAddr + (*ServiceUpsertNotification)(nil), // 52: flow.ServiceUpsertNotification + (*ServiceDeleteNotification)(nil), // 53: flow.ServiceDeleteNotification + (*NetworkInterface)(nil), // 54: flow.NetworkInterface + (*DebugEvent)(nil), // 55: flow.DebugEvent + (*FlowFilter_Experimental)(nil), // 56: flow.FlowFilter.Experimental + (*timestamppb.Timestamp)(nil), // 57: google.protobuf.Timestamp + (*wrapperspb.BoolValue)(nil), // 58: google.protobuf.BoolValue + (*anypb.Any)(nil), // 59: google.protobuf.Any + (*wrapperspb.Int32Value)(nil), // 60: google.protobuf.Int32Value + (*wrapperspb.UInt32Value)(nil), // 61: google.protobuf.UInt32Value } var file_flow_flow_proto_depIdxs = []int32{ - 56, // 0: flow.Flow.time:type_name -> google.protobuf.Timestamp + 57, // 0: flow.Flow.time:type_name -> google.protobuf.Timestamp 6, // 1: flow.Flow.verdict:type_name -> flow.Verdict 1, // 2: flow.Flow.auth_type:type_name -> flow.AuthType 26, // 3: flow.Flow.ethernet:type_name -> flow.Ethernet @@ -5707,72 +5783,73 @@ var file_flow_flow_proto_depIdxs = []int32{ 2, // 15: flow.Flow.trace_observation_point:type_name -> flow.TraceObservationPoint 3, // 16: flow.Flow.trace_reason:type_name -> flow.TraceReason 17, // 17: flow.Flow.file:type_name -> flow.FileInfo - 7, // 18: flow.Flow.drop_reason_desc:type_name -> flow.DropReason - 57, // 19: flow.Flow.is_reply:type_name -> google.protobuf.BoolValue - 9, // 20: flow.Flow.debug_capture_point:type_name -> flow.DebugCapturePoint - 53, // 21: flow.Flow.interface:type_name -> flow.NetworkInterface - 20, // 22: flow.Flow.trace_context:type_name -> flow.TraceContext - 13, // 23: flow.Flow.sock_xlate_point:type_name -> flow.SocketTranslationPoint - 58, // 24: flow.Flow.extensions:type_name -> google.protobuf.Any - 33, // 25: flow.Flow.egress_allowed_by:type_name -> flow.Policy - 33, // 26: flow.Flow.ingress_allowed_by:type_name -> flow.Policy - 33, // 27: flow.Flow.egress_denied_by:type_name -> flow.Policy - 33, // 28: flow.Flow.ingress_denied_by:type_name -> flow.Policy - 24, // 29: flow.Layer4.TCP:type_name -> flow.TCP - 28, // 30: flow.Layer4.UDP:type_name -> flow.UDP - 30, // 31: flow.Layer4.ICMPv4:type_name -> flow.ICMPv4 - 31, // 32: flow.Layer4.ICMPv6:type_name -> flow.ICMPv6 - 29, // 33: flow.Layer4.SCTP:type_name -> flow.SCTP - 4, // 34: flow.Layer7.type:type_name -> flow.L7FlowType - 37, // 35: flow.Layer7.dns:type_name -> flow.DNS - 39, // 36: flow.Layer7.http:type_name -> flow.HTTP - 40, // 37: flow.Layer7.kafka:type_name -> flow.Kafka - 21, // 38: flow.TraceContext.parent:type_name -> flow.TraceParent - 23, // 39: flow.Endpoint.workloads:type_name -> flow.Workload - 27, // 40: flow.TCP.flags:type_name -> flow.TCPFlags - 5, // 41: flow.IP.ipVersion:type_name -> flow.IPVersion - 15, // 42: flow.Tunnel.protocol:type_name -> flow.Tunnel.Protocol - 25, // 43: flow.Tunnel.IP:type_name -> flow.IP - 18, // 44: flow.Tunnel.l4:type_name -> flow.Layer4 - 23, // 45: flow.FlowFilter.source_workload:type_name -> flow.Workload - 23, // 46: flow.FlowFilter.destination_workload:type_name -> flow.Workload - 8, // 47: flow.FlowFilter.traffic_direction:type_name -> flow.TrafficDirection - 6, // 48: flow.FlowFilter.verdict:type_name -> flow.Verdict - 7, // 49: flow.FlowFilter.drop_reason_desc:type_name -> flow.DropReason - 53, // 50: flow.FlowFilter.interface:type_name -> flow.NetworkInterface - 34, // 51: flow.FlowFilter.event_type:type_name -> flow.EventTypeFilter - 38, // 52: flow.FlowFilter.http_header:type_name -> flow.HTTPHeader - 27, // 53: flow.FlowFilter.tcp_flags:type_name -> flow.TCPFlags - 5, // 54: flow.FlowFilter.ip_version:type_name -> flow.IPVersion - 55, // 55: flow.FlowFilter.experimental:type_name -> flow.FlowFilter.Experimental - 38, // 56: flow.HTTP.headers:type_name -> flow.HTTPHeader - 11, // 57: flow.LostEvent.source:type_name -> flow.LostEventSource - 59, // 58: flow.LostEvent.cpu:type_name -> google.protobuf.Int32Value - 12, // 59: flow.AgentEvent.type:type_name -> flow.AgentEventType - 44, // 60: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown - 45, // 61: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification - 46, // 62: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification - 47, // 63: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification - 48, // 64: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification - 49, // 65: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification - 51, // 66: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification - 52, // 67: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification - 56, // 68: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp - 60, // 69: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value - 50, // 70: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr - 50, // 71: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr - 14, // 72: flow.DebugEvent.type:type_name -> flow.DebugEventType - 22, // 73: flow.DebugEvent.source:type_name -> flow.Endpoint - 60, // 74: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value - 60, // 75: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value - 60, // 76: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value - 60, // 77: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value - 59, // 78: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value - 79, // [79:79] is the sub-list for method output_type - 79, // [79:79] is the sub-list for method input_type - 79, // [79:79] is the sub-list for extension type_name - 79, // [79:79] is the sub-list for extension extendee - 0, // [0:79] is the sub-list for field type_name + 42, // 18: flow.Flow.ip_trace_id:type_name -> flow.IPTraceID + 7, // 19: flow.Flow.drop_reason_desc:type_name -> flow.DropReason + 58, // 20: flow.Flow.is_reply:type_name -> google.protobuf.BoolValue + 9, // 21: flow.Flow.debug_capture_point:type_name -> flow.DebugCapturePoint + 54, // 22: flow.Flow.interface:type_name -> flow.NetworkInterface + 20, // 23: flow.Flow.trace_context:type_name -> flow.TraceContext + 13, // 24: flow.Flow.sock_xlate_point:type_name -> flow.SocketTranslationPoint + 59, // 25: flow.Flow.extensions:type_name -> google.protobuf.Any + 33, // 26: flow.Flow.egress_allowed_by:type_name -> flow.Policy + 33, // 27: flow.Flow.ingress_allowed_by:type_name -> flow.Policy + 33, // 28: flow.Flow.egress_denied_by:type_name -> flow.Policy + 33, // 29: flow.Flow.ingress_denied_by:type_name -> flow.Policy + 24, // 30: flow.Layer4.TCP:type_name -> flow.TCP + 28, // 31: flow.Layer4.UDP:type_name -> flow.UDP + 30, // 32: flow.Layer4.ICMPv4:type_name -> flow.ICMPv4 + 31, // 33: flow.Layer4.ICMPv6:type_name -> flow.ICMPv6 + 29, // 34: flow.Layer4.SCTP:type_name -> flow.SCTP + 4, // 35: flow.Layer7.type:type_name -> flow.L7FlowType + 37, // 36: flow.Layer7.dns:type_name -> flow.DNS + 39, // 37: flow.Layer7.http:type_name -> flow.HTTP + 40, // 38: flow.Layer7.kafka:type_name -> flow.Kafka + 21, // 39: flow.TraceContext.parent:type_name -> flow.TraceParent + 23, // 40: flow.Endpoint.workloads:type_name -> flow.Workload + 27, // 41: flow.TCP.flags:type_name -> flow.TCPFlags + 5, // 42: flow.IP.ipVersion:type_name -> flow.IPVersion + 15, // 43: flow.Tunnel.protocol:type_name -> flow.Tunnel.Protocol + 25, // 44: flow.Tunnel.IP:type_name -> flow.IP + 18, // 45: flow.Tunnel.l4:type_name -> flow.Layer4 + 23, // 46: flow.FlowFilter.source_workload:type_name -> flow.Workload + 23, // 47: flow.FlowFilter.destination_workload:type_name -> flow.Workload + 8, // 48: flow.FlowFilter.traffic_direction:type_name -> flow.TrafficDirection + 6, // 49: flow.FlowFilter.verdict:type_name -> flow.Verdict + 7, // 50: flow.FlowFilter.drop_reason_desc:type_name -> flow.DropReason + 54, // 51: flow.FlowFilter.interface:type_name -> flow.NetworkInterface + 34, // 52: flow.FlowFilter.event_type:type_name -> flow.EventTypeFilter + 38, // 53: flow.FlowFilter.http_header:type_name -> flow.HTTPHeader + 27, // 54: flow.FlowFilter.tcp_flags:type_name -> flow.TCPFlags + 5, // 55: flow.FlowFilter.ip_version:type_name -> flow.IPVersion + 56, // 56: flow.FlowFilter.experimental:type_name -> flow.FlowFilter.Experimental + 38, // 57: flow.HTTP.headers:type_name -> flow.HTTPHeader + 11, // 58: flow.LostEvent.source:type_name -> flow.LostEventSource + 60, // 59: flow.LostEvent.cpu:type_name -> google.protobuf.Int32Value + 12, // 60: flow.AgentEvent.type:type_name -> flow.AgentEventType + 45, // 61: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown + 46, // 62: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification + 47, // 63: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification + 48, // 64: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification + 49, // 65: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification + 50, // 66: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification + 52, // 67: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification + 53, // 68: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification + 57, // 69: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp + 61, // 70: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value + 51, // 71: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr + 51, // 72: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr + 14, // 73: flow.DebugEvent.type:type_name -> flow.DebugEventType + 22, // 74: flow.DebugEvent.source:type_name -> flow.Endpoint + 61, // 75: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value + 61, // 76: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value + 61, // 77: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value + 61, // 78: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value + 60, // 79: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value + 80, // [80:80] is the sub-list for method output_type + 80, // [80:80] is the sub-list for method input_type + 80, // [80:80] is the sub-list for extension type_name + 80, // [80:80] is the sub-list for extension extendee + 0, // [0:80] is the sub-list for field type_name } func init() { file_flow_flow_proto_init() } @@ -5792,7 +5869,7 @@ func file_flow_flow_proto_init() { (*Layer7_Http)(nil), (*Layer7_Kafka)(nil), } - file_flow_flow_proto_msgTypes[27].OneofWrappers = []any{ + file_flow_flow_proto_msgTypes[28].OneofWrappers = []any{ (*AgentEvent_Unknown)(nil), (*AgentEvent_AgentStart)(nil), (*AgentEvent_PolicyUpdate)(nil), @@ -5808,7 +5885,7 @@ func file_flow_flow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_flow_flow_proto_rawDesc), len(file_flow_flow_proto_rawDesc)), NumEnums: 16, - NumMessages: 40, + NumMessages: 41, NumExtensions: 0, NumServices: 0, }, diff --git a/api/v1/flow/flow.pb.json.go b/api/v1/flow/flow.pb.json.go index 0876b597cb162..1bc77a60c0130 100644 --- a/api/v1/flow/flow.pb.json.go +++ b/api/v1/flow/flow.pb.json.go @@ -334,6 +334,18 @@ func (msg *Service) UnmarshalJSON(b []byte) error { return protojson.UnmarshalOptions{}.Unmarshal(b, msg) } +// MarshalJSON implements json.Marshaler +func (msg *IPTraceID) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *IPTraceID) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{}.Unmarshal(b, msg) +} + // MarshalJSON implements json.Marshaler func (msg *LostEvent) MarshalJSON() ([]byte, error) { return protojson.MarshalOptions{ diff --git a/api/v1/flow/flow.proto b/api/v1/flow/flow.proto index 1b45dd2917af7..6da37607b535d 100644 --- a/api/v1/flow/flow.proto +++ b/api/v1/flow/flow.proto @@ -87,6 +87,9 @@ message Flow { // Verdict = DROPPED. FileInfo file = 38; + // IPTraceID relates to the trace ID in the IP options of a packet. + IPTraceID ip_trace_id = 40; + // only applicable to Verdict = DROPPED. DropReason drop_reason_desc = 25; @@ -640,6 +643,8 @@ message FlowFilter { // trace_id filters flows by trace ID repeated string trace_id = 28; + // ip_trace_id filters flows by IPTraceID + repeated uint64 ip_trace_id = 39; // Experimental contains filters that are not stable yet. Support for // experimental features is always optional and subject to change. @@ -721,6 +726,11 @@ message Service { string namespace = 2; } +message IPTraceID { + uint64 trace_id = 1; + uint32 ip_option_type = 2; +} + enum LostEventSource { UNKNOWN_LOST_EVENT_SOURCE = 0; // PERF_EVENT_RING_BUFFER indicates that events were dropped in the BPF diff --git a/api/v1/observer/observer.pb.go b/api/v1/observer/observer.pb.go index 4c36303c847c4..2036bf0996b1c 100644 --- a/api/v1/observer/observer.pb.go +++ b/api/v1/observer/observer.pb.go @@ -392,6 +392,7 @@ type HTTPHeader = flow.HTTPHeader type HTTP = flow.HTTP type Kafka = flow.Kafka type Service = flow.Service +type IPTraceID = flow.IPTraceID type LostEvent = flow.LostEvent type AgentEvent = flow.AgentEvent type AgentEvent_Unknown = flow.AgentEvent_Unknown diff --git a/hubble/pkg/defaults/defaults.go b/hubble/pkg/defaults/defaults.go index e07685e4bbdc5..402115762a8e6 100644 --- a/hubble/pkg/defaults/defaults.go +++ b/hubble/pkg/defaults/defaults.go @@ -65,6 +65,7 @@ var ( "destination_service", "is_reply", "Summary", + "ip_trace_id", } ) diff --git a/hubble/pkg/printer/printer.go b/hubble/pkg/printer/printer.go index bee0abf5cc76b..a0f52bdcc175d 100644 --- a/hubble/pkg/printer/printer.go +++ b/hubble/pkg/printer/printer.go @@ -280,12 +280,17 @@ func formatPolicyNames(policies []*flowpb.Policy) string { } func (p Printer) getSummary(f *flowpb.Flow) string { - auth := p.getAuth(f) - if auth == "" { - return f.GetSummary() + b := strings.Builder{} + if f.IpTraceId != nil && f.IpTraceId.TraceId > 0 { + b.WriteString(fmt.Sprintf("IP Trace ID: %d; ", f.IpTraceId.TraceId)) } + b.WriteString(f.GetSummary()) - return fmt.Sprintf("%s; Auth: %s", f.GetSummary(), auth) + if auth := p.getAuth(f); auth != "" { + b.WriteString("; Auth: " + auth) + } + + return b.String() } func (p Printer) getAuth(f *flowpb.Flow) string { diff --git a/hubble/pkg/printer/printer_test.go b/hubble/pkg/printer/printer_test.go index 1bd83d5827fe4..6f02d27957887 100644 --- a/hubble/pkg/printer/printer_test.go +++ b/hubble/pkg/printer/printer_test.go @@ -155,7 +155,8 @@ func TestPrinter_WriteProtoFlow(t *testing.T) { policyAllowed.IngressAllowedBy = []*flowpb.Policy{{Name: "my-policy", Namespace: "my-policy-namespace", Kind: "CiliumNetworkPolicy"}, {Name: "my-policy-2", Kind: "CiliumClusterwideNetworkPolicy"}} type args struct { - f *flowpb.Flow + f *flowpb.Flow + merge *flowpb.Flow } tests := []struct { name string @@ -235,6 +236,26 @@ Jan 1 00:20:34.567 1.1.1.1:31793 2.2.2.2:8080 kafka-request DROPPED K "1.1.1.1:31793 (health) -> 2.2.2.2:8080 (ID:12345) " + "Policy denied DROPPED (TCP Flags: SYN)\n", }, + { + name: "compact-with-trace-id", + options: []Option{ + Compact(), + WithColor("never"), + WithNodeName(), + Writer(&buf), + }, + args: args{ + f: &f, + merge: &flowpb.Flow{ + IpTraceId: &flowpb.IPTraceID{TraceId: 1234}, + }, + }, + wantErr: false, + expected: "Jan 1 00:20:34.567 [k8s1]: " + + "1.1.1.1:31793 (health) -> 2.2.2.2:8080 (ID:12345) " + + "Policy denied DROPPED " + + "(IP Trace ID: 1234; TCP Flags: SYN)\n", + }, { name: "compact-reply", options: []Option{ @@ -408,6 +429,33 @@ Jan 1 00:20:34.567 1.1.1.1:31793 2.2.2.2:8080 kafka-request DROPPED K `"event_type":{"type":1,"sub_type":133},` + `"is_reply":false,"Summary":"Kafka request 1234 correlation id 1 topic 'my-topic[^[30mblack[^[0m[^\\r'"}}`, }, + { + name: "jsonpb_with_trace", + options: []Option{ + JSONPB(), + WithColor("never"), + Writer(&buf), + }, + args: args{ + f: &f, + merge: &flowpb.Flow{ + IpTraceId: &flowpb.IPTraceID{ + IpOptionType: 136, + TraceId: 1234, + }, + }, + }, + wantErr: false, + expected: `{"flow":{"time":"1970-01-01T00:20:34.567800Z",` + + `"verdict":"DROPPED",` + + `"IP":{"source":"1.1.1.1","destination":"2.2.2.2"},` + + `"l4":{"TCP":{"source_port":31793,"destination_port":8080}},` + + `"source":{"identity":4},"destination":{"identity":12345},` + + `"Type":"L3_L4","node_name":"k8s1",` + + `"event_type":{"type":1,"sub_type":133},` + + `"ip_trace_id":{"trace_id":"1234","ip_option_type":136},` + + `"is_reply":false,"Summary":"TCP Flags: SYN"}}`, + }, { name: "dict", options: []Option{ @@ -487,9 +535,12 @@ DESTINATION: 2.2.2.2:8080 for _, tt := range tests { buf.Reset() t.Run(tt.name, func(t *testing.T) { + f := proto.Clone(tt.args.f).(*flowpb.Flow) + proto.Merge(f, tt.args.merge) + p := New(tt.options...) res := &observerpb.GetFlowsResponse{ - ResponseTypes: &observerpb.GetFlowsResponse_Flow{Flow: tt.args.f}, + ResponseTypes: &observerpb.GetFlowsResponse_Flow{Flow: f}, } // writes a node status event into the error stream if err := p.WriteProtoFlow(res); (err != nil) != tt.wantErr { diff --git a/pkg/hubble/parser/threefour/parser.go b/pkg/hubble/parser/threefour/parser.go index 80ce10175eab8..75a359b9694ec 100644 --- a/pkg/hubble/parser/threefour/parser.go +++ b/pkg/hubble/parser/threefour/parser.go @@ -23,6 +23,7 @@ import ( "github.com/cilium/cilium/pkg/lock" "github.com/cilium/cilium/pkg/monitor" monitorAPI "github.com/cilium/cilium/pkg/monitor/api" + "github.com/cilium/cilium/pkg/option" "github.com/cilium/cilium/pkg/policy/correlation" ) @@ -270,6 +271,7 @@ func (p *Parser) Decode(data []byte, decoded *pb.Flow) error { decoded.TrafficDirection = decodeTrafficDirection(srcEndpoint.ID, dn, tn, pvn) decoded.EventType = decodeCiliumEventType(eventType, eventSubType) decoded.TraceReason = decodeTraceReason(tn) + decoded.IpTraceId = decodeIpTraceId(dn, tn) decoded.SourceService = sourceService decoded.DestinationService = destinationService decoded.PolicyMatchType = decodePolicyMatchType(pvn) @@ -615,6 +617,23 @@ func decodeTraceReason(tn *monitor.TraceNotify) pb.TraceReason { } } +func decodeIpTraceId(dn *monitor.DropNotify, tn *monitor.TraceNotify) *pb.IPTraceID { + var id uint64 + switch { + case dn != nil: + id = uint64(dn.IPTraceID) + case tn != nil: + id = uint64(tn.IPTraceID) + } + if id == 0 { + return nil + } + return &pb.IPTraceID{ + TraceId: id, + IpOptionType: uint32(option.Config.IPTracingOptionType), + } +} + func decodeSecurityIdentities(dn *monitor.DropNotify, tn *monitor.TraceNotify, pvn *monitor.PolicyVerdictNotify) ( sourceSecurityIdentiy, destinationSecurityIdentity uint32, ) { diff --git a/pkg/hubble/parser/threefour/parser_test.go b/pkg/hubble/parser/threefour/parser_test.go index 554f3a88d70f8..9b1d5681a4496 100644 --- a/pkg/hubble/parser/threefour/parser_test.go +++ b/pkg/hubble/parser/threefour/parser_test.go @@ -603,13 +603,19 @@ func TestDecodeDropNotify(t *testing.T) { SrcLabel := identity.NumericIdentity(123) DstLabel := identity.NumericIdentity(456) - dropNotify := func(version uint16) monitor.DropNotify { + dropNotify := func(version uint16, iptraceid ...uint64) monitor.DropNotify { + var id uint64 + if len(iptraceid) > 0 { + id = iptraceid[0] + } + return monitor.DropNotify{ - Type: byte(monitorAPI.MessageTypeDrop), - File: 1, // bpf_host.c - Version: version, - SrcLabel: SrcLabel, - DstLabel: DstLabel, + Type: byte(monitorAPI.MessageTypeDrop), + File: 1, // bpf_host.c + Version: version, + SrcLabel: SrcLabel, + DstLabel: DstLabel, + IPTraceID: id, } } identityGetter := &testutils.FakeIdentityGetter{ @@ -666,6 +672,39 @@ func TestDecodeDropNotify(t *testing.T) { File: &flowpb.FileInfo{Name: "bpf_host.c"}, }, }, + { + name: "v2 with IP Trace ID", + dn: dropNotify(3, 0x12345678), + srcLabels: []string{"k8s:src=label"}, + dstLabels: []string{"k8s:dst=label"}, + want: &flowpb.Flow{ + Verdict: flowpb.Verdict_DROPPED, + Ethernet: &flowpb.Ethernet{ + Source: "01:02:03:04:05:06", + Destination: "04:05:06:07:08:09", + }, + IP: &flowpb.IP{ + Source: "1.2.3.4", + Destination: "1.2.3.4", + IpVersion: flowpb.IPVersion_IPv4, + }, + Source: &flowpb.Endpoint{ + Identity: 123, + Labels: []string{"k8s:src=label"}, + }, + Destination: &flowpb.Endpoint{ + Identity: 456, + Labels: []string{"k8s:dst=label"}, + }, + Type: flowpb.FlowType_L3_L4, + EventType: &flowpb.CiliumEventType{Type: 1}, + Summary: "IPv4", + File: &flowpb.FileInfo{Name: "bpf_host.c"}, + IpTraceId: &flowpb.IPTraceID{ + TraceId: 0x12345678, + }, + }, + }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { @@ -2235,6 +2274,46 @@ func TestDecode_TraceNotify(t *testing.T) { TraceObservationPoint: flowpb.TraceObservationPoint_TO_STACK, }, }, + { + name: "v2_from_lxc", + event: monitor.TraceNotify{ + Type: byte(monitorAPI.MessageTypeTrace), + Source: localEP, + ObsPoint: monitorAPI.TraceFromLxc, + Reason: monitor.TraceReasonUnknown, + Version: monitor.TraceNotifyVersion2, + }, + ipTuple: egressTuple, + want: &flowpb.Flow{ + EventType: &flowpb.CiliumEventType{ + SubType: 5, + }, + Source: &flowpb.Endpoint{ID: 1234}, + TraceObservationPoint: flowpb.TraceObservationPoint_FROM_ENDPOINT, + }, + }, + { + name: "v2_from_lxc_with_ip_trace_id", + event: monitor.TraceNotify{ + Type: byte(monitorAPI.MessageTypeTrace), + Source: localEP, + ObsPoint: monitorAPI.TraceFromLxc, + Reason: monitor.TraceReasonUnknown, + Version: monitor.TraceNotifyVersion2, + IPTraceID: 1234, + }, + ipTuple: egressTuple, + want: &flowpb.Flow{ + EventType: &flowpb.CiliumEventType{ + SubType: 5, + }, + Source: &flowpb.Endpoint{ID: 1234}, + TraceObservationPoint: flowpb.TraceObservationPoint_FROM_ENDPOINT, + IpTraceId: &flowpb.IPTraceID{ + TraceId: 1234, + }, + }, + }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { From d49e81f7d4a8db0245b7f3d7e778cd49a5ed909c Mon Sep 17 00:00:00 2001 From: Ben Bigdelle Date: Tue, 19 Aug 2025 22:58:37 +0000 Subject: [PATCH 011/176] feat: add IP trace ID filter to Hubble CLI This change introduces the ability to filter Hubble flows by IP trace ID directly from the Hubble CLI. The following changes are included: - A new `--ip-trace-id` flag is added to the `hubble observe` command, which can be specified multiple times to filter for multiple trace IDs. - A new `IPTraceIDFilter` is implemented to perform the filtering logic based onthe provided trace IDs. - The `IPTraceIDFilter` is added to the list of default filters. - The help text for the `hubble observe` command is updated to include the new flag. Signed-off-by: Ben Bigdelle --- hubble/cmd/cli_test.go | 9 ++- hubble/cmd/observe/flows.go | 4 + hubble/cmd/observe/flows_filter.go | 12 +++ hubble/cmd/observe/flows_filter_test.go | 49 +++++++++++++ hubble/cmd/observe_help.txt | 11 +-- pkg/hubble/filters/filters.go | 1 + pkg/hubble/filters/ip_tracing.go | 31 ++++++++ pkg/hubble/filters/ip_tracing_test.go | 98 +++++++++++++++++++++++++ 8 files changed, 209 insertions(+), 6 deletions(-) create mode 100644 pkg/hubble/filters/ip_tracing.go create mode 100644 pkg/hubble/filters/ip_tracing_test.go diff --git a/hubble/cmd/cli_test.go b/hubble/cmd/cli_test.go index 218da5678c196..f233dcda23528 100644 --- a/hubble/cmd/cli_test.go +++ b/hubble/cmd/cli_test.go @@ -8,6 +8,7 @@ import ( "context" _ "embed" "fmt" + "strings" "testing" "github.com/spf13/viper" @@ -41,6 +42,12 @@ denylist: - '{"source_ip":["1.1.1.1"]}' ` +func normalizeNewlines(content string) string { + content = strings.ReplaceAll(content, "\r\n", "\n") + content = strings.ReplaceAll(content, "\r", "\n") + return content +} + func TestTestHubbleObserve(t *testing.T) { tests := []struct { name string @@ -116,7 +123,7 @@ Use "hubble [command] --help" for more information about a command. cli.SetArgs(tt.args) err := cli.Execute() require.Equal(t, tt.expectErr, err) - output := b.String() + output := normalizeNewlines(b.String()) if tt.expectedOutput != "" { assert.Equal(t, tt.expectedOutput, output, "expected output does not match") } diff --git a/hubble/cmd/observe/flows.go b/hubble/cmd/observe/flows.go index 7eb4bd5a703ef..65194002e725f 100644 --- a/hubble/cmd/observe/flows.go +++ b/hubble/cmd/observe/flows.go @@ -420,6 +420,10 @@ func newFlowsCmdHelper(usage cmdUsage, vp *viper.Viper, ofilter *flowFilter) *co "trace-id", ofilter, "Show only flows which match this trace ID")) + filterFlags.Var(filterVar( + "ip-trace-id", ofilter, + "Show only flows which match this IP trace ID")) + filterFlags.Var(filterVar( "from-fqdn", ofilter, `Show all flows originating at the given fully qualified domain name (e.g. "*.cilium.io").`)) diff --git a/hubble/cmd/observe/flows_filter.go b/hubble/cmd/observe/flows_filter.go index f9f0bb2d6a1af..da3dfcd22fb21 100644 --- a/hubble/cmd/observe/flows_filter.go +++ b/hubble/cmd/observe/flows_filter.go @@ -514,6 +514,18 @@ func (of *flowFilter) set(f *filterTracker, name, val string, track bool) error f.TraceId = append(f.GetTraceId(), val) }) + case "ip-trace-id": + if val == "0" { + return fmt.Errorf("invalid --ip-trace-id value; must be greater than 0") + } + traceID, err := strconv.ParseUint(val, 10, 64) + if err != nil { + return fmt.Errorf("invalid --ip-trace-id value: %w", err) + } + f.apply(func(f *flowpb.FlowFilter) { + f.IpTraceId = append(f.GetIpTraceId(), traceID) + }) + case "verdict": if wipe { f.apply(func(f *flowpb.FlowFilter) { diff --git a/hubble/cmd/observe/flows_filter_test.go b/hubble/cmd/observe/flows_filter_test.go index 73b0d09e6711d..31c90f9cf3d8d 100644 --- a/hubble/cmd/observe/flows_filter_test.go +++ b/hubble/cmd/observe/flows_filter_test.go @@ -1129,6 +1129,55 @@ func TestCluster(t *testing.T) { } } +func TestIpTraceId(t *testing.T) { + tt := []struct { + name string + flags []string + filters []*flowpb.FlowFilter + err string + }{ + { + name: "error", + flags: []string{"--ip-trace-id", "0"}, + filters: []*flowpb.FlowFilter{}, + err: "invalid --ip-trace-id value; must be greater than 0", + }, + { + name: "single", + flags: []string{"--ip-trace-id", "1"}, + filters: []*flowpb.FlowFilter{ + {IpTraceId: []uint64{1}}, + }, + }, + { + name: "multiple", + flags: []string{"--ip-trace-id", "1", "--ip-trace-id", "2"}, + filters: []*flowpb.FlowFilter{ + {IpTraceId: []uint64{1, 2}}, + }, + }, + } + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + f := newFlowFilter() + cmd := newFlowsCmdWithFilter(viper.New(), f) + err := cmd.Flags().Parse(tc.flags) + if tc.err != "" { + require.Errorf(t, err, tc.err) + return + } else { + require.NoError(t, err) + } + assert.Nil(t, f.blacklist) + got := f.whitelist.flowFilters() + diff := cmp.Diff(tc.filters, got, cmpopts.IgnoreUnexported(flowpb.FlowFilter{})) + if diff != "" { + t.Errorf("mismatch (-want +got):\n%s", diff) + } + }) + } +} + func TestCELExpression(t *testing.T) { tt := []struct { name string diff --git a/hubble/cmd/observe_help.txt b/hubble/cmd/observe_help.txt index bd78b7ae4d497..7b3fb82164238 100644 --- a/hubble/cmd/observe_help.txt +++ b/hubble/cmd/observe_help.txt @@ -62,6 +62,7 @@ Filters Flags: --identity filter Show all flows related to an endpoint with the given security identity --interface filter Show all flows observed at the given interface name (e.g. eth0) --ip filter Show all flows originating or terminating at the given IP address. Each of the IPs can be specified as an exact match (e.g. '1.1.1.1') or as a CIDR range (e.g.'1.1.1.0/24'). + --ip-trace-id filter Show only flows which match this IP trace ID --ip-version filter Show only IPv4, IPv6 flows or non IP flows (e.g. ARP packets) (ie: "none", "v4", "v6") -4, --ipv4 filter[=v4] Show only IPv4 flows -6, --ipv6 filter[=v6] Show only IPv6 flows @@ -156,15 +157,15 @@ Server Flags: --request-timeout duration Unary Request timeout. Only applies to non-streaming RPCs (ServerStatus, ListNodes, ListNamespaces). (default 12s) --server string Address of a Hubble server. Ignored when --input-file or --port-forward is provided. (default "localhost:4245") --timeout duration Hubble server dialing timeout (default 5s) - --tls Specify that TLS must be used when establishing a connection to a Hubble server. + --tls Specify that TLS must be used when establishing a connection to a Hubble server. By default, TLS is only enabled if the server address starts with 'tls://'. - --tls-allow-insecure Allows the client to skip verifying the server's certificate chain and host name. - This option is NOT recommended as, in this mode, TLS is susceptible to machine-in-the-middle attacks. + --tls-allow-insecure Allows the client to skip verifying the server's certificate chain and host name. + This option is NOT recommended as, in this mode, TLS is susceptible to machine-in-the-middle attacks. See also the 'tls-server-name' option which allows setting the server name. --tls-ca-cert-files strings Paths to custom Certificate Authority (CA) certificate files.The files must contain PEM encoded data. - --tls-client-cert-file string Path to the public key file for the client certificate to connect to a Hubble server (implies TLS). + --tls-client-cert-file string Path to the public key file for the client certificate to connect to a Hubble server (implies TLS). The file must contain PEM encoded data. - --tls-client-key-file string Path to the private key file for the client certificate to connect a Hubble server (implies TLS). + --tls-client-key-file string Path to the private key file for the client certificate to connect a Hubble server (implies TLS). The file must contain PEM encoded data. --tls-server-name string Specify a server name to verify the hostname on the returned certificate (eg: 'instance.hubble-relay.cilium.io'). diff --git a/pkg/hubble/filters/filters.go b/pkg/hubble/filters/filters.go index 04f558b588e3f..b1f4312c7c30d 100644 --- a/pkg/hubble/filters/filters.go +++ b/pkg/hubble/filters/filters.go @@ -149,5 +149,6 @@ func DefaultFilters(log *slog.Logger) []OnBuildFilter { &TrafficDirectionFilter{}, &CELExpressionFilter{log: log}, &NetworkInterfaceFilter{}, + &IPTraceIDFilter{}, } } diff --git a/pkg/hubble/filters/ip_tracing.go b/pkg/hubble/filters/ip_tracing.go new file mode 100644 index 0000000000000..71258faf593ca --- /dev/null +++ b/pkg/hubble/filters/ip_tracing.go @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Hubble + +package filters + +import ( + "context" + "slices" + + flowpb "github.com/cilium/cilium/api/v1/flow" + v1 "github.com/cilium/cilium/pkg/hubble/api/v1" +) + +func filterByIPTraceID(tids []uint64) FilterFunc { + return func(ev *v1.Event) bool { + trace := ev.GetFlow().GetIpTraceId().GetTraceId() + return slices.Contains(tids, trace) + } +} + +// TraceIDFilter implements filtering based on IP trace IDs. +type IPTraceIDFilter struct{} + +// OnBuildFilter builds a IP trace ID filter. +func (t *IPTraceIDFilter) OnBuildFilter(_ context.Context, ff *flowpb.FlowFilter) ([]FilterFunc, error) { + var fs []FilterFunc + if ids := ff.GetIpTraceId(); len(ids) > 0 { + fs = append(fs, filterByIPTraceID(ids)) + } + return fs, nil +} diff --git a/pkg/hubble/filters/ip_tracing_test.go b/pkg/hubble/filters/ip_tracing_test.go new file mode 100644 index 0000000000000..2294fd15d48a6 --- /dev/null +++ b/pkg/hubble/filters/ip_tracing_test.go @@ -0,0 +1,98 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Hubble + +package filters + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + + flowpb "github.com/cilium/cilium/api/v1/flow" + v1 "github.com/cilium/cilium/pkg/hubble/api/v1" +) + +func TestIPTraceIDFilter(t *testing.T) { + ctx := context.Background() + tests := []struct { + name string + f []*flowpb.FlowFilter + ev *v1.Event + want bool + }{ + { + name: "match_single_filter", + f: []*flowpb.FlowFilter{ + {IpTraceId: []uint64{1}}, + }, + ev: &v1.Event{ + Event: &flowpb.Flow{ + IpTraceId: &flowpb.IPTraceID{ + TraceId: 1, + }, + }, + }, + want: true, + }, + { + name: "match_multiple_filters", + f: []*flowpb.FlowFilter{ + {IpTraceId: []uint64{1}}, + {IpTraceId: []uint64{2}}, + }, + ev: &v1.Event{ + Event: &flowpb.Flow{ + IpTraceId: &flowpb.IPTraceID{ + TraceId: 2, + }, + }, + }, + want: true, + }, + { + name: "no_filter", + ev: &v1.Event{ + Event: &flowpb.Flow{ + IpTraceId: &flowpb.IPTraceID{ + TraceId: 1, + }, + }, + }, + want: true, + }, + { + name: "mismatch", + f: []*flowpb.FlowFilter{ + {IpTraceId: []uint64{1}}, + }, + ev: &v1.Event{ + Event: &flowpb.Flow{ + IpTraceId: &flowpb.IPTraceID{ + TraceId: 2, + }, + }, + }, + want: false, + }, + { + name: "no_trace_id", + f: []*flowpb.FlowFilter{ + {IpTraceId: []uint64{1}}, + }, + ev: &v1.Event{ + Event: &flowpb.Flow{}, + }, + want: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + fl, err := BuildFilterList(ctx, tt.f, []OnBuildFilter{&IPTraceIDFilter{}}) + if err != nil { + t.Fatalf("Faile to build filter: %v", err) + } + assert.Equal(t, tt.want, fl.MatchOne(tt.ev)) + }) + } +} From c6823a349cdca33c4a27c341e2fa446bc4391440 Mon Sep 17 00:00:00 2001 From: Liyi Huang Date: Tue, 9 Sep 2025 12:23:25 -0400 Subject: [PATCH 012/176] pkg: add port name to address-based lrp we stored the port name in the frontend mapping struct, but we didn't add it to the frontend params. if we have this type of lrp apiVersion: "cilium.io/v2" kind: CiliumLocalRedirectPolicy metadata: name: "lrp-addr" spec: redirectFrontend: addressMatcher: ip: "169.254.169.254" toPorts: - port: "8080" name: "test" protocol: TCP - port: "8081" name: "test1" protocol: TCP redirectBackend: localEndpointSelector: matchLabels: app: proxy toPorts: - port: "80" name: "test" protocol: TCP - port: "81" name: "test1" protocol: TCP and pod apiVersion: v1 kind: Pod metadata: name: lrp-pod labels: app: proxy spec: containers: - name: lrp-pod image: nginx ports: - containerPort: 80 name: test protocol: TCP - containerPort: 81 name: test1 protocol: TCP we will end up with 6 169.254.169.254:8080/TCP LocalRedirect 1 => 10.244.1.75:80/TCP (active) 2 => 10.244.1.75:81/TCP (active) 7 169.254.169.254:8081/TCP LocalRedirect 1 => 10.244.1.75:80/TCP (active) 2 => 10.244.1.75:81/TCP (active) with this PR, we will get the correct backend 8 169.254.169.254:8080/TCP LocalRedirect 1 => 10.244.1.30:80/TCP (active) 9 169.254.169.254:8081/TCP LocalRedirect 1 => 10.244.1.30:81/TCP (active) Signed-off-by: Liyi Huang --- pkg/loadbalancer/redirectpolicy/controller.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/loadbalancer/redirectpolicy/controller.go b/pkg/loadbalancer/redirectpolicy/controller.go index 9a8c7a97ed663..62869b18d8eda 100644 --- a/pkg/loadbalancer/redirectpolicy/controller.go +++ b/pkg/loadbalancer/redirectpolicy/controller.go @@ -329,6 +329,13 @@ func (c *lrpController) updateRedirects(wtxn writer.WriteTxn, ws *statedb.WatchS Type: lb.SVCTypeLocalRedirect, ServiceName: lrpServiceName, ServicePort: feM.feAddr.Port(), + //if we only have one frontend mapping, we dont need the frontend port name so it will not check the port name in the backend ports + PortName: func() lb.FEPortName { + if len(lrp.FrontendMappings) > 1 { + return feM.fePort + } + return lb.FEPortName("") + }(), }, ) if err != nil { From bbac9d0256af41743aa711635e6c887a39829922 Mon Sep 17 00:00:00 2001 From: Aditi Ghag Date: Tue, 9 Sep 2025 15:54:16 -0700 Subject: [PATCH 013/176] redirectpolicy: Add unit test cases Signed-off-by: Aditi Ghag --- .../testdata/address-malformed.txtar | 108 ++++++++++ .../address-matcher-named-ports.txtar | 192 ++++++++++++++++++ 2 files changed, 300 insertions(+) create mode 100644 pkg/loadbalancer/redirectpolicy/testdata/address-malformed.txtar create mode 100644 pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar diff --git a/pkg/loadbalancer/redirectpolicy/testdata/address-malformed.txtar b/pkg/loadbalancer/redirectpolicy/testdata/address-malformed.txtar new file mode 100644 index 0000000000000..09b08f2ad58e2 --- /dev/null +++ b/pkg/loadbalancer/redirectpolicy/testdata/address-malformed.txtar @@ -0,0 +1,108 @@ +# Verifies that malformed AddressMatcher LRPs are not applied + +hive start + +# Add LRP and then LRP-selected pod. +k8s/add lrp-addr-malformed.yaml +k8s/add pod.yaml + +# Tables and maps should be empty. +* db/empty services frontends backends localredirectpolicies + +# Delete the LRP. +k8s/delete lrp-addr-malformed.yaml + +# Add it again LRP. +k8s/add lrp-addr-malformed.yaml + +# Tables and maps should still be empty. +* db/empty services frontends backends localredirectpolicies + +-- lrp-addr-malformed.yaml -- +apiVersion: "cilium.io/v2" +kind: CiliumLocalRedirectPolicy +metadata: + name: "lrp-addr" +spec: + redirectFrontend: + addressMatcher: + ip: "169.254.169.254" + toPorts: + - port: "5050" + name: "test" + protocol: TCP + - port: "5051" + name: "test1" + protocol: TCP + redirectBackend: + localEndpointSelector: + matchLabels: + app: proxy + toPorts: + - port: "80" + name: "test" + protocol: TCP + - port: "81" + name: "test1" + protocol: TCP + +-- lrp-addr.yaml -- +apiVersion: "cilium.io/v2" +kind: CiliumLocalRedirectPolicy +metadata: + name: "lrp-addr" + namespace: test +spec: + redirectFrontend: + addressMatcher: + ip: "169.254.169.254" + toPorts: + - port: "5050" + name: "test" + protocol: TCP + - port: "5051" + name: "test1" + protocol: TCP + redirectBackend: + localEndpointSelector: + matchLabels: + app: proxy + toPorts: + - port: "80" + name: "test" + protocol: TCP + - port: "81" + name: "test1" + protocol: TCP + +-- pod.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: lrp-pod + namespace: test + labels: + app: proxy +spec: + containers: + - name: lrp-pod + image: nginx + ports: + - containerPort: 80 + name: test + protocol: TCP + - containerPort: 81 + name: test1 + protocol: TCP + nodeName: testnode +status: + hostIP: 172.19.0.3 + hostIPs: + - ip: 172.19.0.3 + phase: Running + podIP: 10.244.2.1 + podIPs: + - ip: 10.244.2.1 + conditions: + - lastProbeTime: null + type: Ready diff --git a/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar b/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar new file mode 100644 index 0000000000000..3959101ce1596 --- /dev/null +++ b/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar @@ -0,0 +1,192 @@ +# AddressMatcherLRPs with named ports, LRP resources applied in different orders + +hive start + +# Add LRP and then LRP-selected pod. +k8s/add lrp-addr.yaml +k8s/add pod.yaml + +# Add a correct LRP. + +# Compare tables +db/cmp localredirectpolicies lrp.table +db/cmp services services.table +db/cmp frontends frontends.table +db/cmp backends backends.table + +# Remove the LRP. +k8s/delete lrp-addr.yaml + +# Tables and maps should now be empty. +* db/empty services frontends backends localredirectpolicies + +# Add the LRP -- LRP-selected pod already exists. +k8s/add lrp-addr.yaml + +# Compare tables +db/cmp localredirectpolicies lrp.table +db/cmp services services.table +db/cmp frontends frontends.table +db/cmp backends backends.table + +# Remove the LRP. +k8s/delete lrp-addr.yaml + +# Tables and maps should now be empty. +* db/empty services frontends backends localredirectpolicies + +# Add LRP with single named port. +k8s/add lrp-addr-single.yaml +k8s/add pod-single.yaml + +# Compare tables +db/cmp localredirectpolicies lrp-single.table +db/cmp services services-single.table +db/cmp frontends frontends-single.table +db/cmp backends backends-single.table + +-- lrp.table -- +Name Type FrontendType Frontends +test/lrp-addr address addr-named-ports 169.254.169.254:5050/TCP, 169.254.169.254:5051/TCP + +-- services.table -- +Name Source +test/lrp-addr:local-redirect k8s + +-- frontends.table -- +Address Type ServiceName Backends RedirectTo Status +169.254.169.254:5050/TCP LocalRedirect test/lrp-addr:local-redirect 10.244.2.1:50/TCP Done +169.254.169.254:5051/TCP LocalRedirect test/lrp-addr:local-redirect 10.244.2.1:51/TCP Done + +-- backends.table -- +Address Instances +10.244.2.1:50/TCP test/lrp-addr:local-redirect (test) +10.244.2.1:51/TCP test/lrp-addr:local-redirect (test1) + +-- lrp-single.table -- +Name Type FrontendType Frontends +test/lrp-addr-single address addr-single-port 169.254.169.254:5050/TCP + +-- services-single.table -- +Name Source +test/lrp-addr-single:local-redirect k8s + +-- frontends-single.table -- +Address Type ServiceName Backends RedirectTo Status +169.254.169.254:5050/TCP LocalRedirect test/lrp-addr-single:local-redirect 10.244.2.1:50/TCP Done + +-- backends-single.table -- +Address Instances +10.244.2.1:50/TCP test/lrp-addr-single:local-redirect + +-- lrp-addr.yaml -- +apiVersion: "cilium.io/v2" +kind: CiliumLocalRedirectPolicy +metadata: + name: "lrp-addr" + namespace: test +spec: + redirectFrontend: + addressMatcher: + ip: "169.254.169.254" + toPorts: + - port: "5050" + name: "test" + protocol: TCP + - port: "5051" + name: "test1" + protocol: TCP + redirectBackend: + localEndpointSelector: + matchLabels: + app: proxy + toPorts: + - port: "50" + name: "test" + protocol: TCP + - port: "51" + name: "test1" + protocol: TCP + +-- lrp-addr-single.yaml -- +apiVersion: "cilium.io/v2" +kind: CiliumLocalRedirectPolicy +metadata: + name: "lrp-addr-single" + namespace: test +spec: + redirectFrontend: + addressMatcher: + ip: "169.254.169.254" + toPorts: + - port: "5050" + name: "test" + protocol: TCP + redirectBackend: + localEndpointSelector: + matchLabels: + app: proxy + toPorts: + - port: "50" + name: "test" + protocol: TCP + +-- pod.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: lrp-pod + namespace: test + labels: + app: proxy +spec: + containers: + - name: lrp-pod + image: nginx + ports: + - containerPort: 50 + name: test + protocol: TCP + - containerPort: 51 + name: test1 + protocol: TCP + nodeName: testnode +status: + hostIP: 172.19.0.3 + hostIPs: + - ip: 172.19.0.3 + phase: Running + podIP: 10.244.2.1 + podIPs: + - ip: 10.244.2.1 + conditions: + - lastProbeTime: null + type: Ready + +-- pod-single.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: lrp-pod + namespace: test + labels: + app: proxy +spec: + containers: + - name: lrp-pod + image: nginx + ports: + - containerPort: 50 + protocol: TCP + nodeName: testnode +status: + hostIP: 172.19.0.3 + hostIPs: + - ip: 172.19.0.3 + phase: Running + podIP: 10.244.2.1 + podIPs: + - ip: 10.244.2.1 + conditions: + - lastProbeTime: null + type: Ready From b6d16144839309f238da21d3a760fe578f182882 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 14 Sep 2025 00:47:21 +0000 Subject: [PATCH 014/176] fix(deps): update aws-sdk-go-v2 monorepo Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- go.mod | 22 +++++----- go.sum | 44 +++++++++---------- .../aws-sdk-go-v2/aws/go_module_metadata.go | 2 +- .../aws/middleware/user_agent.go | 2 + .../aws/aws-sdk-go-v2/config/CHANGELOG.md | 8 ++++ .../config/go_module_metadata.go | 2 +- .../aws-sdk-go-v2/credentials/CHANGELOG.md | 8 ++++ .../credentials/go_module_metadata.go | 2 +- .../feature/ec2/imds/CHANGELOG.md | 4 ++ .../feature/ec2/imds/go_module_metadata.go | 2 +- .../internal/configsources/CHANGELOG.md | 4 ++ .../configsources/go_module_metadata.go | 2 +- .../internal/endpoints/v2/CHANGELOG.md | 4 ++ .../endpoints/v2/go_module_metadata.go | 2 +- .../aws-sdk-go-v2/service/ec2/CHANGELOG.md | 8 ++++ .../aws-sdk-go-v2/service/ec2/endpoints.go | 2 + .../service/ec2/go_module_metadata.go | 2 +- .../internal/presigned-url/CHANGELOG.md | 4 ++ .../presigned-url/go_module_metadata.go | 2 +- .../aws-sdk-go-v2/service/sso/CHANGELOG.md | 8 ++++ .../aws-sdk-go-v2/service/sso/endpoints.go | 2 + .../service/sso/go_module_metadata.go | 2 +- .../service/ssooidc/CHANGELOG.md | 8 ++++ .../service/ssooidc/endpoints.go | 2 + .../service/ssooidc/go_module_metadata.go | 2 +- .../aws-sdk-go-v2/service/sts/CHANGELOG.md | 8 ++++ .../aws-sdk-go-v2/service/sts/endpoints.go | 3 ++ .../service/sts/go_module_metadata.go | 2 +- vendor/modules.txt | 22 +++++----- 29 files changed, 130 insertions(+), 55 deletions(-) diff --git a/go.mod b/go.mod index 07d4be0e64e7f..a0b7967e27b21 100644 --- a/go.mod +++ b/go.mod @@ -9,10 +9,10 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v7 v7.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v7 v7.0.0 github.com/aliyun/alibaba-cloud-sdk-go v1.63.107 - github.com/aws/aws-sdk-go-v2 v1.38.3 - github.com/aws/aws-sdk-go-v2/config v1.31.6 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.0 + github.com/aws/aws-sdk-go-v2 v1.39.0 + github.com/aws/aws-sdk-go-v2/config v1.31.8 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 github.com/aws/smithy-go v1.23.0 github.com/blang/semver/v4 v4.0.0 github.com/cespare/xxhash/v2 v2.3.0 @@ -157,15 +157,15 @@ require ( github.com/alecthomas/participle/v2 v2.1.0 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.18.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.12 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/cilium/deepequal-gen v0.0.0-20241016021505-f57df2fe2e62 // indirect diff --git a/go.sum b/go.sum index 43be80348793c..5d7ac7a446597 100644 --- a/go.sum +++ b/go.sum @@ -76,32 +76,32 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.38.3 h1:B6cV4oxnMs45fql4yRH+/Po/YU+597zgWqvDpYMturk= -github.com/aws/aws-sdk-go-v2 v1.38.3/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= -github.com/aws/aws-sdk-go-v2/config v1.31.6 h1:a1t8fXY4GT4xjyJExz4knbuoxSCacB5hT/WgtfPyLjo= -github.com/aws/aws-sdk-go-v2/config v1.31.6/go.mod h1:5ByscNi7R+ztvOGzeUaIu49vkMk2soq5NaH5PYe33MQ= -github.com/aws/aws-sdk-go-v2/credentials v1.18.10 h1:xdJnXCouCx8Y0NncgoptztUocIYLKeQxrCgN6x9sdhg= -github.com/aws/aws-sdk-go-v2/credentials v1.18.10/go.mod h1:7tQk08ntj914F/5i9jC4+2HQTAuJirq7m1vZVIhEkWs= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 h1:wbjnrrMnKew78/juW7I2BtKQwa1qlf6EjQgS69uYY14= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6/go.mod h1:AtiqqNrDioJXuUgz3+3T0mBWN7Hro2n9wll2zRUc0ww= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 h1:uF68eJA6+S9iVr9WgX1NaRGyQ/6MdIyc4JNUo6TN1FA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6/go.mod h1:qlPeVZCGPiobx8wb1ft0GHT5l+dc6ldnwInDFaMvC7Y= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 h1:pa1DEC6JoI0zduhZePp3zmhWvk/xxm4NB8Hy/Tlsgos= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6/go.mod h1:gxEjPebnhWGJoaDdtDkA0JX46VRg1wcTHYe63OfX5pE= +github.com/aws/aws-sdk-go-v2 v1.39.0 h1:xm5WV/2L4emMRmMjHFykqiA4M/ra0DJVSWUkDyBjbg4= +github.com/aws/aws-sdk-go-v2 v1.39.0/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.31.8 h1:kQjtOLlTU4m4A64TsRcqwNChhGCwaPBt+zCQt/oWsHU= +github.com/aws/aws-sdk-go-v2/config v1.31.8/go.mod h1:QPpc7IgljrKwH0+E6/KolCgr4WPLerURiU592AYzfSY= +github.com/aws/aws-sdk-go-v2/credentials v1.18.12 h1:zmc9e1q90wMn8wQbjryy8IwA6Q4XlaL9Bx2zIqdNNbk= +github.com/aws/aws-sdk-go-v2/credentials v1.18.12/go.mod h1:3VzdRDR5u3sSJRI4kYcOSIBbeYsgtVk7dG5R/U6qLWY= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 h1:Is2tPmieqGS2edBnmOJIbdvOA6Op+rRpaYR60iBAwXM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7/go.mod h1:F1i5V5421EGci570yABvpIXgRIBPb5JM+lSkHF6Dq5w= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 h1:UCxq0X9O3xrlENdKf1r9eRJoKz/b0AfGkpp3a7FPlhg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7/go.mod h1:rHRoJUNUASj5Z/0eqI4w32vKvC7atoWR0jC+IkmVH8k= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 h1:Y6DTZUn7ZUC4th9FMBbo8LVE+1fyq3ofw+tRwkUd3PY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.0 h1:hGHSNZDTFnhLGUpRkQORM8uBY9R/FOkxCkuUUJBEOQ4= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.0/go.mod h1:SmMqzfS4HVsOD58lwLZ79oxF58f8zVe5YdK3o+/o1Ck= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 h1:6TssXFfLHcwUS5E3MdYKkCFeOrYVBlDhJjs5kRJp0ic= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2/go.mod h1:MXJiLJZtMqb2dVXgEIn35d5+7MqLd4r8noLen881kpk= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 h1:LHS1YAIJXJ4K9zS+1d/xa9JAA9sL2QyXIQCQFQW/X08= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6/go.mod h1:c9PCiTEuh0wQID5/KqA32J+HAgZxN9tOGXKCiYJjTZI= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 h1:8OLZnVJPvjnrxEwHFg9hVUof/P4sibH+Ea4KKuqAGSg= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.1/go.mod h1:27M3BpVi0C02UiQh1w9nsBEit6pLhlaH3NHna6WUbDE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 h1:gKWSTnqudpo8dAxqBqZnDoDWCiEh/40FziUjr/mo6uA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2/go.mod h1:x7+rkNmRoEN1U13A6JE2fXne9EWyJy54o3n6d4mGaXQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 h1:YZPjhyaGzhDQEvsffDEcpycq49nl7fiGcfJTIo8BszI= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.2/go.mod h1:2dIN8qhQfv37BdUYGgEC8Q3tteM3zFxTI1MLO2O3J3c= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7/go.mod h1:wXb/eQnqt8mDQIQTTmcw58B5mYGxzLGZGK8PWNFZ0BA= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 h1:7PKX3VYsZ8LUWceVRuv0+PU+E7OtQb1lgmi5vmUE9CM= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.3/go.mod h1:Ql6jE9kyyWI5JHn+61UT/Y5Z0oyVJGmgmJbZD5g4unY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 h1:e0XBRn3AptQotkyBFrHAxFB8mDhAIOfsG+7KyJ0dg98= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4/go.mod h1:XclEty74bsGBCr1s0VSaA11hQ4ZidK4viWK7rRfO88I= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 h1:PR00NXRYgY4FWHqOGx3fC3lhVKjsp1GdloDv2ynMSd8= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.4/go.mod h1:Z+Gd23v97pX9zK97+tX4ppAgqCt3Z2dIXB02CtBncK8= github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go index b72921f87be29..86f7edb16a033 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go @@ -3,4 +3,4 @@ package aws // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.38.3" +const goModuleVersion = "1.39.0" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/user_agent.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/user_agent.go index 6ee3391be2737..3314230fd8ca8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/user_agent.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/user_agent.go @@ -135,6 +135,8 @@ const ( UserAgentFeatureCredentialsAwsSdkStore = "y" // n/a (this is used by .NET based sdk) UserAgentFeatureCredentialsHTTP = "z" UserAgentFeatureCredentialsIMDS = "0" + + UserAgentFeatureBearerServiceEnvVars = "3" ) var credentialSourceToFeature = map[aws.CredentialSource]UserAgentFeature{ diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md index be76d2ce8e93f..748be162a65c6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.31.8 (2025-09-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.31.7 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.31.6 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go index 13bccf2d20f21..2971dd9fad1e8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go @@ -3,4 +3,4 @@ package config // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.31.6" +const goModuleVersion = "1.31.8" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md index e5c6b5a38b663..48b3b7ca84305 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.18.12 (2025-09-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.18.11 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.18.10 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go index 03dee74957f8d..05c61c64c09bb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go @@ -3,4 +3,4 @@ package credentials // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.18.10" +const goModuleVersion = "1.18.12" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md index db2ef11aee56e..f27565751599e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.18.7 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.18.6 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go index d82f70843d230..c6028b32aca77 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go @@ -3,4 +3,4 @@ package imds // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.18.6" +const goModuleVersion = "1.18.7" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md index e0ebf39032d62..553faf5037dc8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.4.7 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.4.6 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go index 3479c11c48a81..d0c4a4e33e0d7 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go @@ -3,4 +3,4 @@ package configsources // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.4.6" +const goModuleVersion = "1.4.7" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md index 7ccb390338ad9..4f0701fd0d78b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v2.7.7 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v2.7.6 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go index 2d36cac95a8b3..af8faba143bc0 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go @@ -3,4 +3,4 @@ package endpoints // goModuleVersion is the tagged release for this module -const goModuleVersion = "2.7.6" +const goModuleVersion = "2.7.7" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md index 4b0dd74d8d367..498ec3d574b49 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.251.2 (2025-09-10) + +* No change notes available for this release. + +# v1.251.1 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.251.0 (2025-09-04) * **Feature**: Add m8i, m8i-flex and i8ge instance types. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/endpoints.go index 1743a98bc8ad7..6d8a49eb4ce68 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/endpoints.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/endpoints.go @@ -328,7 +328,9 @@ func (r *resolver) ResolveEndpoint( return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) } _UseDualStack := *params.UseDualStack + _ = _UseDualStack _UseFIPS := *params.UseFIPS + _ = _UseFIPS if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go index 67906b4444436..b1e664fb70a71 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go @@ -3,4 +3,4 @@ package ec2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.251.0" +const goModuleVersion = "1.251.2" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md index cb68986ec7ac4..ba1764f378c39 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.13.7 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.13.6 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go index 88ba2f3928ae7..e65ba0d51bfde 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go @@ -3,4 +3,4 @@ package presignedurl // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.13.6" +const goModuleVersion = "1.13.7" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md index 7c3eed8d38b11..152c4089cd07b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.29.3 (2025-09-10) + +* No change notes available for this release. + +# v1.29.2 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.29.1 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/endpoints.go index 82bd25b164267..2b22ab779c2aa 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/endpoints.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/endpoints.go @@ -328,7 +328,9 @@ func (r *resolver) ResolveEndpoint( return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) } _UseDualStack := *params.UseDualStack + _ = _UseDualStack _UseFIPS := *params.UseFIPS + _ = _UseFIPS if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go index ec53123102982..8655c1c7ba710 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go @@ -3,4 +3,4 @@ package sso // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.29.1" +const goModuleVersion = "1.29.3" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md index 5b6aed74f3fd3..c66053d05bf7f 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.34.4 (2025-09-10) + +* No change notes available for this release. + +# v1.34.3 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.34.2 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/endpoints.go index 6feea0c9fec47..1e001f7a9e804 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/endpoints.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/endpoints.go @@ -328,7 +328,9 @@ func (r *resolver) ResolveEndpoint( return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) } _UseDualStack := *params.UseDualStack + _ = _UseDualStack _UseFIPS := *params.UseFIPS + _ = _UseFIPS if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go index 3b20ebb481105..64cd520297f14 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go @@ -3,4 +3,4 @@ package ssooidc // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.34.2" +const goModuleVersion = "1.34.4" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md index a6ec400a2ce64..b25d184e19e65 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.38.4 (2025-09-10) + +* No change notes available for this release. + +# v1.38.3 (2025-09-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.38.2 (2025-08-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/endpoints.go index dca2ce3599e46..945682e1a50e1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/endpoints.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/endpoints.go @@ -346,8 +346,11 @@ func (r *resolver) ResolveEndpoint( return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) } _UseDualStack := *params.UseDualStack + _ = _UseDualStack _UseFIPS := *params.UseFIPS + _ = _UseFIPS _UseGlobalEndpoint := *params.UseGlobalEndpoint + _ = _UseGlobalEndpoint if _UseGlobalEndpoint == true { if !(params.Endpoint != nil) { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go index 9700338658533..bf368537e2833 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go @@ -3,4 +3,4 @@ package sts // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.38.2" +const goModuleVersion = "1.38.4" diff --git a/vendor/modules.txt b/vendor/modules.txt index 92392f4653acc..71fb3999d379d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -130,7 +130,7 @@ github.com/antlr4-go/antlr/v4 # github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 ## explicit; go 1.13 github.com/asaskevich/govalidator -# github.com/aws/aws-sdk-go-v2 v1.38.3 +# github.com/aws/aws-sdk-go-v2 v1.39.0 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/aws github.com/aws/aws-sdk-go-v2/aws/defaults @@ -157,10 +157,10 @@ github.com/aws/aws-sdk-go-v2/internal/shareddefaults github.com/aws/aws-sdk-go-v2/internal/strings github.com/aws/aws-sdk-go-v2/internal/sync/singleflight github.com/aws/aws-sdk-go-v2/internal/timeconv -# github.com/aws/aws-sdk-go-v2/config v1.31.6 +# github.com/aws/aws-sdk-go-v2/config v1.31.8 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/config -# github.com/aws/aws-sdk-go-v2/credentials v1.18.10 +# github.com/aws/aws-sdk-go-v2/credentials v1.18.12 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/credentials github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds @@ -169,20 +169,20 @@ github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client github.com/aws/aws-sdk-go-v2/credentials/processcreds github.com/aws/aws-sdk-go-v2/credentials/ssocreds github.com/aws/aws-sdk-go-v2/credentials/stscreds -# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 +# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/feature/ec2/imds github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config -# github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 +# github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/internal/configsources -# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 +# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 # github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/internal/ini -# github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.0 +# github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/ec2 github.com/aws/aws-sdk-go-v2/service/ec2/internal/endpoints @@ -190,20 +190,20 @@ github.com/aws/aws-sdk-go-v2/service/ec2/types # github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding -# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 +# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url -# github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 +# github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/sso github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints github.com/aws/aws-sdk-go-v2/service/sso/types -# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 +# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/ssooidc github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints github.com/aws/aws-sdk-go-v2/service/ssooidc/types -# github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 +# github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/sts github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints From 4e8788177ff1d2c3c1c8771982769e865f7dd212 Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Fri, 29 Aug 2025 15:29:23 +0200 Subject: [PATCH 015/176] pkg/bpf: Improve tail call pruning with knowledge of load config We already had logic to prune statically unreachable tail calls, tail calls which were unreachable due to compile time macros. However, we did not prune tail calls which were unreachable due to load time config. This commit updates the existing logic to also prune tail calls which are unreachable due to load time config. This should allow us to migrate macros that control reachability of tail calls to load time config. Signed-off-by: Dylan Reimerink Signed-off-by: Timo Beckers --- pkg/bpf/collection.go | 77 +++++++++++++++--------- pkg/bpf/collection_test.go | 41 ++++++++++--- pkg/bpf/testdata/unreachable-tailcall.c | 6 +- pkg/bpf/testdata/unreachable-tailcall.o | Bin 4240 -> 4360 bytes 4 files changed, 83 insertions(+), 41 deletions(-) diff --git a/pkg/bpf/collection.go b/pkg/bpf/collection.go index 150e719eae8c4..2f648c5223839 100644 --- a/pkg/bpf/collection.go +++ b/pkg/bpf/collection.go @@ -43,14 +43,6 @@ func LoadCollectionSpec(logger *slog.Logger, path string) (*ebpf.CollectionSpec, return nil, fmt.Errorf("checking for unspecified programs: %w", err) } - if err := removeUnreachableTailcalls(logger, spec); err != nil { - return nil, fmt.Errorf("removing unreachable tail calls: %w", err) - } - - if err := resolveTailCalls(spec); err != nil { - return nil, fmt.Errorf("resolving tail calls: %w", err) - } - return spec, nil } @@ -135,27 +127,17 @@ func resolveTailCalls(spec *ebpf.CollectionSpec) error { return nil } -// removeUnreachableTailcalls removes tail calls that are not reachable from -// entrypoint programs. This is done by traversing the call graph of the -// entrypoint programs and marking all reachable tail calls. Any tail call that -// is not marked is removed from the CollectionSpec. -func removeUnreachableTailcalls(logger *slog.Logger, spec *ebpf.CollectionSpec) error { +// removeUnusedTailcalls removes tail calls that are not reachable from +// entrypoint programs. +func removeUnusedTailcalls(logger *slog.Logger, spec *ebpf.CollectionSpec) error { type tail struct { referenced bool visited bool spec *ebpf.ProgramSpec } - // Build a map of entrypoint programs annotated with __section_entry. - entrypoints := make(map[string]*ebpf.ProgramSpec) - for _, prog := range spec.Programs { - if isEntrypoint(prog) { - entrypoints[prog.Name] = prog - } - } - // Build a map of tail call slots to ProgramSpecs. - tailcalls := make(map[uint32]*tail) + tails := make(map[uint32]*tail) for _, prog := range spec.Programs { if !isTailCall(prog) { continue @@ -166,15 +148,39 @@ func removeUnreachableTailcalls(logger *slog.Logger, spec *ebpf.CollectionSpec) return fmt.Errorf("getting tail call slot: %w", err) } - tailcalls[slot] = &tail{ + tails[slot] = &tail{ spec: prog, } } // Discover all tailcalls that are reachable from the given program. visit := func(prog *ebpf.ProgramSpec, tailcalls map[uint32]*tail) error { - // We look back from any tailcall, so we expect there to always be 3 instructions ahead of any tail call instr. - for i := 3; i < len(prog.Instructions); i++ { + // Load Blocks computed after compilation, or compute new ones. + bl, err := analyze.MakeBlocks(prog.Instructions) + if err != nil { + return fmt.Errorf("computing Blocks for Program %s: %w", prog.Name, err) + } + + // Analyze reachability given the VariableSpecs provided at load time. + bl, err = analyze.Reachability(bl, prog.Instructions, analyze.VariableSpecs(spec.Variables)) + if err != nil { + return fmt.Errorf("reachability analysis for program %s: %w", prog.Name, err) + } + + const windowSize = 3 + + i := -1 + for _, live := range bl.LiveInstructions(prog.Instructions) { + i++ + if !live { + continue + } + + if i <= windowSize { + // Not enough instructions to backtrack yet. + continue + } + // The `tail_call_static` C function is always used to call tail calls when // the map index is known at compile time. // Due to inline ASM this generates the following instructions: @@ -232,18 +238,21 @@ func removeUnreachableTailcalls(logger *slog.Logger, spec *ebpf.CollectionSpec) } // Discover all tailcalls that are reachable from the entrypoints. - for _, prog := range entrypoints { - if err := visit(prog, tailcalls); err != nil { + for _, prog := range spec.Programs { + if !isEntrypoint(prog) { + continue + } + if err := visit(prog, tails); err != nil { return err } } // Keep visiting tailcalls until no more are discovered. reset: - for _, tailcall := range tailcalls { + for _, tailcall := range tails { // If a tailcall is referenced by an entrypoint or another tailcall we should visit it if tailcall.referenced && !tailcall.visited { - if err := visit(tailcall.spec, tailcalls); err != nil { + if err := visit(tailcall.spec, tails); err != nil { return err } tailcall.visited = true @@ -255,7 +264,7 @@ reset: } // Remove all tailcalls that are not referenced. - for _, tailcall := range tailcalls { + for _, tailcall := range tails { if !tailcall.referenced { logger.Debug( "unreferenced tail call, deleting", @@ -369,6 +378,14 @@ func LoadCollection(logger *slog.Logger, spec *ebpf.CollectionSpec, opts *Collec return nil, nil, fmt.Errorf("applying variable overrides: %w", err) } + if err := removeUnusedTailcalls(logger, spec); err != nil { + return nil, nil, fmt.Errorf("removing unused tail calls: %w", err) + } + + if err := resolveTailCalls(spec); err != nil { + return nil, nil, fmt.Errorf("resolving tail calls: %w", err) + } + keep, err := removeUnusedMaps(spec, opts.Keep) if err != nil { return nil, nil, fmt.Errorf("pruning unused maps: %w", err) diff --git a/pkg/bpf/collection_test.go b/pkg/bpf/collection_test.go index f3bc8e1e787ff..4b40c10547cfe 100644 --- a/pkg/bpf/collection_test.go +++ b/pkg/bpf/collection_test.go @@ -14,10 +14,10 @@ import ( "github.com/cilium/cilium/pkg/testutils" ) -func TestRemoveUnreachableTailcalls(t *testing.T) { +func TestRemoveUnusedTailcalls(t *testing.T) { logger := hivetest.Logger(t) // Use upstream LoadCollectionSpec to defer the call to - // removeUnreachableTailcalls. + // removeUnusedTailcalls. spec, err := ebpf.LoadCollectionSpec("testdata/unreachable-tailcall.o") require.NoError(t, err) @@ -28,14 +28,37 @@ func TestRemoveUnreachableTailcalls(t *testing.T) { assert.Contains(t, spec.Programs, "d") assert.Contains(t, spec.Programs, "e") - require.NoError(t, removeUnreachableTailcalls(logger, spec)) + cpy := spec.Copy() + obj := struct { + UseTailB *ebpf.VariableSpec `ebpf:"__config_use_tail_b"` + }{} + require.NoError(t, cpy.Assign(&obj)) + require.NoError(t, obj.UseTailB.Set(true)) - assert.Contains(t, spec.Programs, "cil_entry") - assert.Contains(t, spec.Programs, "a") - assert.Contains(t, spec.Programs, "b") - assert.Contains(t, spec.Programs, "c") - assert.NotContains(t, spec.Programs, "d") - assert.NotContains(t, spec.Programs, "e") + require.NoError(t, removeUnusedTailcalls(logger, cpy)) + + assert.Contains(t, cpy.Programs, "cil_entry") + assert.Contains(t, cpy.Programs, "a") + assert.Contains(t, cpy.Programs, "b") + assert.Contains(t, cpy.Programs, "c") + assert.NotContains(t, cpy.Programs, "d") + assert.NotContains(t, cpy.Programs, "e") + + cpy = spec.Copy() + obj = struct { + UseTailB *ebpf.VariableSpec `ebpf:"__config_use_tail_b"` + }{} + require.NoError(t, cpy.Assign(&obj)) + require.NoError(t, obj.UseTailB.Set(false)) + + require.NoError(t, removeUnusedTailcalls(logger, cpy)) + + assert.Contains(t, cpy.Programs, "cil_entry") + assert.Contains(t, cpy.Programs, "a") + assert.NotContains(t, cpy.Programs, "b") + assert.Contains(t, cpy.Programs, "c") + assert.NotContains(t, cpy.Programs, "d") + assert.NotContains(t, cpy.Programs, "e") } func TestPrivilegedUpgradeMap(t *testing.T) { diff --git a/pkg/bpf/testdata/unreachable-tailcall.c b/pkg/bpf/testdata/unreachable-tailcall.c index 15513936b4385..73475797dc215 100644 --- a/pkg/bpf/testdata/unreachable-tailcall.c +++ b/pkg/bpf/testdata/unreachable-tailcall.c @@ -1,10 +1,12 @@ #include #include "common.h" +#include + #include #include -volatile const int global_var = 0; +DECLARE_CONFIG(bool, use_tail_b, "Use tailcall B or C") #define TAIL_A 0 #define TAIL_B 1 @@ -36,7 +38,7 @@ static int b(void *ctx) { __declare_tail(TAIL_A) static int a(void *ctx) { - if (global_var == 0x01) { + if (CONFIG(use_tail_b)) { tail_call_static(ctx, cilium_calls, TAIL_B); } else { tail_call_static(ctx, cilium_calls, TAIL_C); diff --git a/pkg/bpf/testdata/unreachable-tailcall.o b/pkg/bpf/testdata/unreachable-tailcall.o index 860901c39cf93fcd3e77d8285508904b4f7dd759..3486ab0600fa7e605fe2248e4dfa023543f3f6a2 100644 GIT binary patch delta 906 zcmZvaO=uHQ5Xa}GvCYQpmjq%J%r@9B57FX96l|J`Uldadf(LQ4O=4WT$=W0p5hMo@ zdJxPqpdLJ=pwNO~C09X34+6glX~@e3nxHn+1QQTgn2Y1kZ8K1B|cdivU@{2l&g(0-P0mnpnC9 z&=Bm`6Ep=cP`u7*UIXq+ z5a1H&^zD7)`W0e$=`VMypLmxyS_0Tb`dZ-|e89Hhm=tA2w4_+KO~C;5(dg!u@=t&% z^eB3rh)1(RO^MsXCz7dOCeooxXtZ`53K#YFd=9c8xkSFwS_r>oeaT9}spWR^B|_41 zE|g3wpRZKy;$IuYW~4j%zn=jgMKY{}x*U_{BfLGpZ5)zKmPSt=X8ZBA9Ai!VBG=h6 z+Dbn=iJlV2sH$N~)^JHlv74x?@t)q!cJ=R*kGbBEcfyRa0ZZyW99BZOsO||E8}X~! a$Bv?|#iXVfAVdSi*$f`nV(b>$TK_L3XR=)Y delta 786 zcmZvZL1+_E5QgV%lBRFXCc7%6@zAD=81)b%Uh1JSLJtaxJt%mP#!XXVVM}Tns-99o zA$UreO9T%IC|K|!iQrAa9u!1W@Zv2>4_Xkxi@m7-OCK7F1OJ=%&CHwkcBk$(#v2EX zw~^JuZ-lqHwP|(@BBdWj=bNY)C$XiEY9WfcSOl~IhL5RWe}PXzn*;IvU}eG1yWo4V zyX2P(o}XX#D#^*oWafJ2C_fq68u=Hd^n$mzMCnSo=v6)b6|U8$h-`GY3cXUT&J&Gj z{tPcK66G|v6<;En9^^%$%bKUuvsZ|&Xr2MfTSN`b{quFAmgY6&3)Ccfr~@w$uF`~%m2&d<9GlM-Xn7nY+-kJ z&B}|jETbn9r@`ui95iSX>_uy$&b??#++Z0S6G8rBjq#~iE_54(LUrU;Y}j}f;;+`| zzMBaCuTj(FPqD1g46|!zji)9T>;s7lC=Q(YU4~nM{@Mh$?Nmrj!%+Q2hI@AE4-|ik ACjbBd From d33ceb5d10395a5f7d3e061269ee0a004d5d0d5a Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Fri, 29 Aug 2025 15:39:13 +0200 Subject: [PATCH 016/176] pkg/bpf: Move unused tail call pruning logic to separate file Move the logic for pruning unused tail calls from collection.go to a new file. Signed-off-by: Dylan Reimerink --- pkg/bpf/collection.go | 153 ---------------------------- pkg/bpf/collection_test.go | 47 --------- pkg/bpf/unused_tailcalls.go | 167 +++++++++++++++++++++++++++++++ pkg/bpf/unused_tailcalls_test.go | 60 +++++++++++ 4 files changed, 227 insertions(+), 200 deletions(-) create mode 100644 pkg/bpf/unused_tailcalls.go create mode 100644 pkg/bpf/unused_tailcalls_test.go diff --git a/pkg/bpf/collection.go b/pkg/bpf/collection.go index 2f648c5223839..f0d865151ab74 100644 --- a/pkg/bpf/collection.go +++ b/pkg/bpf/collection.go @@ -12,7 +12,6 @@ import ( "strings" "github.com/cilium/ebpf" - "github.com/cilium/ebpf/asm" "github.com/cilium/ebpf/btf" "github.com/cilium/cilium/pkg/bpf/analyze" @@ -127,158 +126,6 @@ func resolveTailCalls(spec *ebpf.CollectionSpec) error { return nil } -// removeUnusedTailcalls removes tail calls that are not reachable from -// entrypoint programs. -func removeUnusedTailcalls(logger *slog.Logger, spec *ebpf.CollectionSpec) error { - type tail struct { - referenced bool - visited bool - spec *ebpf.ProgramSpec - } - - // Build a map of tail call slots to ProgramSpecs. - tails := make(map[uint32]*tail) - for _, prog := range spec.Programs { - if !isTailCall(prog) { - continue - } - - slot, err := tailCallSlot(prog) - if err != nil { - return fmt.Errorf("getting tail call slot: %w", err) - } - - tails[slot] = &tail{ - spec: prog, - } - } - - // Discover all tailcalls that are reachable from the given program. - visit := func(prog *ebpf.ProgramSpec, tailcalls map[uint32]*tail) error { - // Load Blocks computed after compilation, or compute new ones. - bl, err := analyze.MakeBlocks(prog.Instructions) - if err != nil { - return fmt.Errorf("computing Blocks for Program %s: %w", prog.Name, err) - } - - // Analyze reachability given the VariableSpecs provided at load time. - bl, err = analyze.Reachability(bl, prog.Instructions, analyze.VariableSpecs(spec.Variables)) - if err != nil { - return fmt.Errorf("reachability analysis for program %s: %w", prog.Name, err) - } - - const windowSize = 3 - - i := -1 - for _, live := range bl.LiveInstructions(prog.Instructions) { - i++ - if !live { - continue - } - - if i <= windowSize { - // Not enough instructions to backtrack yet. - continue - } - - // The `tail_call_static` C function is always used to call tail calls when - // the map index is known at compile time. - // Due to inline ASM this generates the following instructions: - // Mov R1, Rx - // Mov R2, - // Mov R3, - // call tail_call - - // Find the tail call instruction. - inst := prog.Instructions[i] - if !inst.IsBuiltinCall() || inst.Constant != int64(asm.FnTailCall) { - continue - } - - // Check that the previous instruction is a mov of the tail call index. - movIdx := prog.Instructions[i-1] - if movIdx.OpCode.ALUOp() != asm.Mov || movIdx.Dst != asm.R3 { - continue - } - - // Check that the instruction before that is the load of the tail call map. - movR2 := prog.Instructions[i-2] - if movR2.OpCode != asm.LoadImmOp(asm.DWord) || movR2.Src != asm.PseudoMapFD { - continue - } - - ref := movR2.Reference() - - // Ignore static tail calls made to maps that are not the calls map - if ref != callsMap { - logger.Debug( - "skipping tail call into map other than the calls map", - logfields.Section, prog.SectionName, - logfields.Prog, prog.Name, - logfields.Instruction, i, - logfields.Reference, ref, - ) - continue - } - - tc := tailcalls[uint32(movIdx.Constant)] - if tc == nil { - return fmt.Errorf( - "potential missed tail call in program %s to slot %d at insn %d", - prog.Name, - movIdx.Constant, - i, - ) - } - - tc.referenced = true - } - - return nil - } - - // Discover all tailcalls that are reachable from the entrypoints. - for _, prog := range spec.Programs { - if !isEntrypoint(prog) { - continue - } - if err := visit(prog, tails); err != nil { - return err - } - } - - // Keep visiting tailcalls until no more are discovered. -reset: - for _, tailcall := range tails { - // If a tailcall is referenced by an entrypoint or another tailcall we should visit it - if tailcall.referenced && !tailcall.visited { - if err := visit(tailcall.spec, tails); err != nil { - return err - } - tailcall.visited = true - - // Visiting this tail call might have caused tail calls earlier in the list to become referenced, but this - // loop already skipped them. So reset the loop. If we already visited a tailcall we will ignore them anyway. - goto reset - } - } - - // Remove all tailcalls that are not referenced. - for _, tailcall := range tails { - if !tailcall.referenced { - logger.Debug( - "unreferenced tail call, deleting", - logfields.Section, tailcall.spec.SectionName, - logfields.Prog, tailcall.spec.Name, - ) - - delete(spec.Programs, tailcall.spec.Name) - } - } - - return nil -} - // LoadAndAssign loads spec into the kernel and assigns the requested eBPF // objects to the given object. It is a wrapper around [LoadCollection]. See its // documentation for more details on the loading process. diff --git a/pkg/bpf/collection_test.go b/pkg/bpf/collection_test.go index 4b40c10547cfe..51a530018ebc4 100644 --- a/pkg/bpf/collection_test.go +++ b/pkg/bpf/collection_test.go @@ -14,53 +14,6 @@ import ( "github.com/cilium/cilium/pkg/testutils" ) -func TestRemoveUnusedTailcalls(t *testing.T) { - logger := hivetest.Logger(t) - // Use upstream LoadCollectionSpec to defer the call to - // removeUnusedTailcalls. - spec, err := ebpf.LoadCollectionSpec("testdata/unreachable-tailcall.o") - require.NoError(t, err) - - assert.Contains(t, spec.Programs, "cil_entry") - assert.Contains(t, spec.Programs, "a") - assert.Contains(t, spec.Programs, "b") - assert.Contains(t, spec.Programs, "c") - assert.Contains(t, spec.Programs, "d") - assert.Contains(t, spec.Programs, "e") - - cpy := spec.Copy() - obj := struct { - UseTailB *ebpf.VariableSpec `ebpf:"__config_use_tail_b"` - }{} - require.NoError(t, cpy.Assign(&obj)) - require.NoError(t, obj.UseTailB.Set(true)) - - require.NoError(t, removeUnusedTailcalls(logger, cpy)) - - assert.Contains(t, cpy.Programs, "cil_entry") - assert.Contains(t, cpy.Programs, "a") - assert.Contains(t, cpy.Programs, "b") - assert.Contains(t, cpy.Programs, "c") - assert.NotContains(t, cpy.Programs, "d") - assert.NotContains(t, cpy.Programs, "e") - - cpy = spec.Copy() - obj = struct { - UseTailB *ebpf.VariableSpec `ebpf:"__config_use_tail_b"` - }{} - require.NoError(t, cpy.Assign(&obj)) - require.NoError(t, obj.UseTailB.Set(false)) - - require.NoError(t, removeUnusedTailcalls(logger, cpy)) - - assert.Contains(t, cpy.Programs, "cil_entry") - assert.Contains(t, cpy.Programs, "a") - assert.NotContains(t, cpy.Programs, "b") - assert.Contains(t, cpy.Programs, "c") - assert.NotContains(t, cpy.Programs, "d") - assert.NotContains(t, cpy.Programs, "e") -} - func TestPrivilegedUpgradeMap(t *testing.T) { testutils.PrivilegedTest(t) logger := hivetest.Logger(t) diff --git a/pkg/bpf/unused_tailcalls.go b/pkg/bpf/unused_tailcalls.go new file mode 100644 index 0000000000000..09a855247f199 --- /dev/null +++ b/pkg/bpf/unused_tailcalls.go @@ -0,0 +1,167 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package bpf + +import ( + "fmt" + "log/slog" + + "github.com/cilium/ebpf" + "github.com/cilium/ebpf/asm" + + "github.com/cilium/cilium/pkg/bpf/analyze" + "github.com/cilium/cilium/pkg/logging/logfields" +) + +// removeUnusedTailcalls removes tail calls that are not reachable from +// entrypoint programs. +func removeUnusedTailcalls(logger *slog.Logger, spec *ebpf.CollectionSpec) error { + type tail struct { + referenced bool + visited bool + spec *ebpf.ProgramSpec + } + + // Build a map of tail call slots to ProgramSpecs. + tails := make(map[uint32]*tail) + for _, prog := range spec.Programs { + if !isTailCall(prog) { + continue + } + + slot, err := tailCallSlot(prog) + if err != nil { + return fmt.Errorf("getting tail call slot: %w", err) + } + + tails[slot] = &tail{ + spec: prog, + } + } + + // Discover all tailcalls that are reachable from the given program. + visit := func(prog *ebpf.ProgramSpec, tailcalls map[uint32]*tail) error { + // Load Blocks computed after compilation, or compute new ones. + bl, err := analyze.MakeBlocks(prog.Instructions) + if err != nil { + return fmt.Errorf("computing Blocks for Program %s: %w", prog.Name, err) + } + + // Analyze reachability given the VariableSpecs provided at load time. + bl, err = analyze.Reachability(bl, prog.Instructions, analyze.VariableSpecs(spec.Variables)) + if err != nil { + return fmt.Errorf("reachability analysis for program %s: %w", prog.Name, err) + } + + const windowSize = 3 + + i := -1 + for _, live := range bl.LiveInstructions(prog.Instructions) { + i++ + if !live { + continue + } + + if i <= windowSize { + // Not enough instructions to backtrack yet. + continue + } + + // The `tail_call_static` C function is always used to call tail calls when + // the map index is known at compile time. + // Due to inline ASM this generates the following instructions: + // Mov R1, Rx + // Mov R2, + // Mov R3, + // call tail_call + + // Find the tail call instruction. + inst := prog.Instructions[i] + if !inst.IsBuiltinCall() || inst.Constant != int64(asm.FnTailCall) { + continue + } + + // Check that the previous instruction is a mov of the tail call index. + movIdx := prog.Instructions[i-1] + if movIdx.OpCode.ALUOp() != asm.Mov || movIdx.Dst != asm.R3 { + continue + } + + // Check that the instruction before that is the load of the tail call map. + movR2 := prog.Instructions[i-2] + if movR2.OpCode != asm.LoadImmOp(asm.DWord) || movR2.Src != asm.PseudoMapFD { + continue + } + + ref := movR2.Reference() + + // Ignore static tail calls made to maps that are not the calls map + if ref != callsMap { + logger.Debug( + "skipping tail call into map other than the calls map", + logfields.Section, prog.SectionName, + logfields.Prog, prog.Name, + logfields.Instruction, i, + logfields.Reference, ref, + ) + continue + } + + tc := tailcalls[uint32(movIdx.Constant)] + if tc == nil { + return fmt.Errorf( + "potential missed tail call in program %s to slot %d at insn %d", + prog.Name, + movIdx.Constant, + i, + ) + } + + tc.referenced = true + } + + return nil + } + + // Discover all tailcalls that are reachable from the entrypoints. + for _, prog := range spec.Programs { + if !isEntrypoint(prog) { + continue + } + if err := visit(prog, tails); err != nil { + return err + } + } + + // Keep visiting tailcalls until no more are discovered. +reset: + for _, tailcall := range tails { + // If a tailcall is referenced by an entrypoint or another tailcall we should visit it + if tailcall.referenced && !tailcall.visited { + if err := visit(tailcall.spec, tails); err != nil { + return err + } + tailcall.visited = true + + // Visiting this tail call might have caused tail calls earlier in the list to become referenced, but this + // loop already skipped them. So reset the loop. If we already visited a tailcall we will ignore them anyway. + goto reset + } + } + + // Remove all tailcalls that are not referenced. + for _, tailcall := range tails { + if !tailcall.referenced { + logger.Debug( + "unreferenced tail call, deleting", + logfields.Section, tailcall.spec.SectionName, + logfields.Prog, tailcall.spec.Name, + ) + + delete(spec.Programs, tailcall.spec.Name) + } + } + + return nil +} diff --git a/pkg/bpf/unused_tailcalls_test.go b/pkg/bpf/unused_tailcalls_test.go new file mode 100644 index 0000000000000..d41ed72c9ac33 --- /dev/null +++ b/pkg/bpf/unused_tailcalls_test.go @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package bpf + +import ( + "testing" + + "github.com/cilium/ebpf" + "github.com/cilium/hive/hivetest" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestRemoveUnusedTailcalls(t *testing.T) { + logger := hivetest.Logger(t) + // Use upstream LoadCollectionSpec to defer the call to + // removeUnusedTailcalls. + spec, err := ebpf.LoadCollectionSpec("testdata/unreachable-tailcall.o") + require.NoError(t, err) + + assert.Contains(t, spec.Programs, "cil_entry") + assert.Contains(t, spec.Programs, "a") + assert.Contains(t, spec.Programs, "b") + assert.Contains(t, spec.Programs, "c") + assert.Contains(t, spec.Programs, "d") + assert.Contains(t, spec.Programs, "e") + + cpy := spec.Copy() + obj := struct { + UseTailB *ebpf.VariableSpec `ebpf:"__config_use_tail_b"` + }{} + require.NoError(t, cpy.Assign(&obj)) + require.NoError(t, obj.UseTailB.Set(true)) + + require.NoError(t, removeUnusedTailcalls(logger, cpy)) + + assert.Contains(t, cpy.Programs, "cil_entry") + assert.Contains(t, cpy.Programs, "a") + assert.Contains(t, cpy.Programs, "b") + assert.Contains(t, cpy.Programs, "c") + assert.NotContains(t, cpy.Programs, "d") + assert.NotContains(t, cpy.Programs, "e") + + cpy = spec.Copy() + obj = struct { + UseTailB *ebpf.VariableSpec `ebpf:"__config_use_tail_b"` + }{} + require.NoError(t, cpy.Assign(&obj)) + require.NoError(t, obj.UseTailB.Set(false)) + + require.NoError(t, removeUnusedTailcalls(logger, cpy)) + + assert.Contains(t, cpy.Programs, "cil_entry") + assert.Contains(t, cpy.Programs, "a") + assert.NotContains(t, cpy.Programs, "b") + assert.Contains(t, cpy.Programs, "c") + assert.NotContains(t, cpy.Programs, "d") + assert.NotContains(t, cpy.Programs, "e") +} From 322d465a8fe547e4f4c159a8f1888453b7012c02 Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Fri, 29 Aug 2025 15:40:34 +0200 Subject: [PATCH 017/176] pkg/bpf: Remove `LoadCollectionSpec` The `LoadCollectionSpec` function was a wrapper around `ebpf.LoadCollectionSpec` that additionally did the unused tail call pruning. Now that this functionality has been moved into the `LoadCollection` function, this wrapper is no longer needed. Signed-off-by: Dylan Reimerink --- bpf/tests/bpftest/bpf_test.go | 3 +-- pkg/bpf/collection.go | 25 ++++--------------------- pkg/bpf/collection_test.go | 2 +- pkg/datapath/loader/base.go | 2 +- pkg/datapath/loader/cache.go | 3 +-- pkg/datapath/loader/loader.go | 4 ++-- pkg/datapath/loader/loader_test.go | 16 ++++++++-------- pkg/datapath/loader/verifier_test.go | 2 +- pkg/datapath/loader/xdp.go | 2 +- pkg/socketlb/socketlb.go | 2 +- 10 files changed, 21 insertions(+), 40 deletions(-) diff --git a/bpf/tests/bpftest/bpf_test.go b/bpf/tests/bpftest/bpf_test.go index 57fbfe31ed2d4..91e9299fca4f4 100644 --- a/bpf/tests/bpftest/bpf_test.go +++ b/bpf/tests/bpftest/bpf_test.go @@ -300,8 +300,7 @@ func loadAndRunSpec(t *testing.T, entry fs.DirEntry, instrLog io.Writer) []*cove } func loadAndPrepSpec(t *testing.T, elfPath string) *ebpf.CollectionSpec { - logger := hivetest.Logger(t) - spec, err := bpf.LoadCollectionSpec(logger, elfPath) + spec, err := ebpf.LoadCollectionSpec(elfPath) if err != nil { t.Fatalf("load spec %s: %v", elfPath, err) } diff --git a/pkg/bpf/collection.go b/pkg/bpf/collection.go index f0d865151ab74..f251711807b5c 100644 --- a/pkg/bpf/collection.go +++ b/pkg/bpf/collection.go @@ -24,27 +24,6 @@ const ( callsMap = "cilium_calls" ) -// LoadCollectionSpec loads the eBPF ELF at the given path and parses it into a -// CollectionSpec. This spec is only a blueprint of the contents of the ELF and -// does not represent any live resources that have been loaded into the kernel. -// -// This is a wrapper around ebpf.LoadCollectionSpec that populates the object's -// calls map with programs marked with the __declare_tail() annotation. It -// performs static reachability analysis of tail call programs. Any unreachable -// tail call program is removed from the spec. -func LoadCollectionSpec(logger *slog.Logger, path string) (*ebpf.CollectionSpec, error) { - spec, err := ebpf.LoadCollectionSpec(path) - if err != nil { - return nil, err - } - - if err := checkUnspecifiedPrograms(spec); err != nil { - return nil, fmt.Errorf("checking for unspecified programs: %w", err) - } - - return spec, nil -} - // checkUnspecifiedPrograms returns an error if any of the programs in the spec // are of the UnspecifiedProgram type. func checkUnspecifiedPrograms(spec *ebpf.CollectionSpec) error { @@ -206,6 +185,10 @@ func LoadCollection(logger *slog.Logger, spec *ebpf.CollectionSpec, opts *Collec opts = &CollectionOptions{} } + if err := checkUnspecifiedPrograms(spec); err != nil { + return nil, nil, fmt.Errorf("checking for unspecified programs: %w", err) + } + opts.populateMapReplacements() logger.Debug("Loading Collection into kernel", diff --git a/pkg/bpf/collection_test.go b/pkg/bpf/collection_test.go index 51a530018ebc4..42f11245f875e 100644 --- a/pkg/bpf/collection_test.go +++ b/pkg/bpf/collection_test.go @@ -31,7 +31,7 @@ func TestPrivilegedUpgradeMap(t *testing.T) { }, ebpf.MapOptions{PinPath: temp}) require.NoError(t, err) - spec, err := LoadCollectionSpec(logger, "testdata/upgrade-map.o") + spec, err := ebpf.LoadCollectionSpec("testdata/upgrade-map.o") require.NoError(t, err) // Use LoadAndAssign to make sure commit works through map upgrades. This is a diff --git a/pkg/datapath/loader/base.go b/pkg/datapath/loader/base.go index 2263623325004..0c50e2d00a145 100644 --- a/pkg/datapath/loader/base.go +++ b/pkg/datapath/loader/base.go @@ -217,7 +217,7 @@ func (l *loader) reinitializeIPSec(lnc *datapath.LocalNodeConfiguration) error { return nil } - spec, err := bpf.LoadCollectionSpec(l.logger, networkObj) + spec, err := ebpf.LoadCollectionSpec(networkObj) if err != nil { return fmt.Errorf("loading eBPF ELF %s: %w", networkObj, err) } diff --git a/pkg/datapath/loader/cache.go b/pkg/datapath/loader/cache.go index 6c1fc3e40fcef..78c10f75987d0 100644 --- a/pkg/datapath/loader/cache.go +++ b/pkg/datapath/loader/cache.go @@ -14,7 +14,6 @@ import ( "github.com/cilium/ebpf" - "github.com/cilium/cilium/pkg/bpf" "github.com/cilium/cilium/pkg/bpf/analyze" "github.com/cilium/cilium/pkg/common" "github.com/cilium/cilium/pkg/datapath/loader/metrics" @@ -226,7 +225,7 @@ func (o *objectCache) fetchOrCompile(ctx context.Context, nodeCfg *datapath.Loca obj.path = path - obj.spec, err = bpf.LoadCollectionSpec(o.logger, path) + obj.spec, err = ebpf.LoadCollectionSpec(path) if err != nil { return nil, "", fmt.Errorf("load eBPF ELF %s: %w", path, err) } diff --git a/pkg/datapath/loader/loader.go b/pkg/datapath/loader/loader.go index 72bfae43796aa..83be3e22ce4ff 100644 --- a/pkg/datapath/loader/loader.go +++ b/pkg/datapath/loader/loader.go @@ -700,7 +700,7 @@ func replaceOverlayDatapath(ctx context.Context, logger *slog.Logger, lnc *datap return fmt.Errorf("compiling overlay program: %w", err) } - spec, err := bpf.LoadCollectionSpec(logger, overlayObj) + spec, err := ebpf.LoadCollectionSpec(overlayObj) if err != nil { return fmt.Errorf("loading eBPF ELF %s: %w", overlayObj, err) } @@ -747,7 +747,7 @@ func replaceWireguardDatapath(ctx context.Context, logger *slog.Logger, lnc *dat return fmt.Errorf("compiling wireguard program: %w", err) } - spec, err := bpf.LoadCollectionSpec(logger, wireguardObj) + spec, err := ebpf.LoadCollectionSpec(wireguardObj) if err != nil { return fmt.Errorf("loading eBPF ELF %s: %w", wireguardObj, err) } diff --git a/pkg/datapath/loader/loader_test.go b/pkg/datapath/loader/loader_test.go index 00a6073f96338..15b05c3b51a45 100644 --- a/pkg/datapath/loader/loader_test.go +++ b/pkg/datapath/loader/loader_test.go @@ -139,10 +139,10 @@ func TestPrivilegedReload(t *testing.T) { objPath := fmt.Sprintf("%s/%s", dirInfo.Output, endpointObj) tmp := testutils.TempBPFFS(t) - for range 2 { - spec, err := bpf.LoadCollectionSpec(logger, objPath) - require.NoError(t, err) + spec, err := ebpf.LoadCollectionSpec(objPath) + require.NoError(t, err) + for range 2 { coll, commit, err := bpf.LoadCollection(logger, spec, &bpf.CollectionOptions{ CollectionOptions: ebpf.CollectionOptions{Maps: ebpf.MapOptions{PinPath: tmp}}, }) @@ -287,12 +287,12 @@ func BenchmarkPrivilegedReplaceDatapath(b *testing.B) { objPath := fmt.Sprintf("%s/%s", dirInfo.Output, endpointObj) - for b.Loop() { - spec, err := bpf.LoadCollectionSpec(logger, objPath) - if err != nil { - b.Fatal(err) - } + spec, err := ebpf.LoadCollectionSpec(objPath) + if err != nil { + b.Fatal(err) + } + for b.Loop() { coll, commit, err := bpf.LoadCollection(logger, spec, &bpf.CollectionOptions{ CollectionOptions: ebpf.CollectionOptions{Maps: ebpf.MapOptions{PinPath: tmp}}, }) diff --git a/pkg/datapath/loader/verifier_test.go b/pkg/datapath/loader/verifier_test.go index 243a1ac3b2e5d..56a37e5dfe4da 100644 --- a/pkg/datapath/loader/verifier_test.go +++ b/pkg/datapath/loader/verifier_test.go @@ -172,7 +172,7 @@ func compileAndLoad[T any](perm buildPermutation[T], collection, source, output t.Logf("Compiled %s program: %s", collection, objFileName) - spec, err := bpf.LoadCollectionSpec(log, objFileName) + spec, err := ebpf.LoadCollectionSpec(objFileName) if err != nil { t.Fatalf("Failed to load BPF collection spec: %v", err) } diff --git a/pkg/datapath/loader/xdp.go b/pkg/datapath/loader/xdp.go index fc9cd6fe5c383..c874b97e42d08 100644 --- a/pkg/datapath/loader/xdp.go +++ b/pkg/datapath/loader/xdp.go @@ -143,7 +143,7 @@ func compileAndLoadXDPProg(ctx context.Context, logger *slog.Logger, lnc *datapa return fmt.Errorf("retrieving device %s: %w", xdpDev, err) } - spec, err := bpf.LoadCollectionSpec(logger, objPath) + spec, err := ebpf.LoadCollectionSpec(objPath) if err != nil { return fmt.Errorf("loading eBPF ELF %s: %w", objPath, err) } diff --git a/pkg/socketlb/socketlb.go b/pkg/socketlb/socketlb.go index 379aea7cc69fd..877a9bf88e77f 100644 --- a/pkg/socketlb/socketlb.go +++ b/pkg/socketlb/socketlb.go @@ -61,7 +61,7 @@ func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig) err return fmt.Errorf("create bpffs link directory: %w", err) } - spec, err := bpf.LoadCollectionSpec(logger, filepath.Join(option.Config.StateDir, "bpf_sock.o")) + spec, err := ebpf.LoadCollectionSpec(filepath.Join(option.Config.StateDir, "bpf_sock.o")) if err != nil { return fmt.Errorf("failed to load collection spec for bpf_sock.o: %w", err) } From 2e34122b1c1a488e49c813501111a8702830da74 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 14 Sep 2025 00:45:03 +0000 Subject: [PATCH 018/176] chore(deps): update dependency protocolbuffers/protobuf to v32.1 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- images/builder/install-protoc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/builder/install-protoc.sh b/images/builder/install-protoc.sh index 202f539bcac91..f7db2d8f4fb05 100755 --- a/images/builder/install-protoc.sh +++ b/images/builder/install-protoc.sh @@ -9,7 +9,7 @@ set -o pipefail set -o nounset # renovate: datasource=github-release-attachments depName=protocolbuffers/protobuf -protoc_version="v32.0" +protoc_version="v32.1" protoc_ersion="${protoc_version//v/}" arch=$(arch) if [[ "${arch}" == "aarch64" ]]; then From b7e0fe3c36da23abca09cf9ea6f05f532ee5e0b5 Mon Sep 17 00:00:00 2001 From: Cilium Imagebot Date: Sun, 14 Sep 2025 01:14:01 +0000 Subject: [PATCH 019/176] images: update cilium-{runtime,builder} Signed-off-by: Cilium Imagebot --- .devcontainer/devcontainer.json | 2 +- api/v1/flow/flow.pb.go | 2 +- api/v1/observer/observer.pb.go | 2 +- api/v1/observer/observer_grpc.pb.go | 2 +- api/v1/peer/peer.pb.go | 2 +- api/v1/peer/peer_grpc.pb.go | 2 +- api/v1/relay/relay.pb.go | 2 +- api/v1/standalone-dns-proxy/standalone-dns-proxy.pb.go | 2 +- api/v1/standalone-dns-proxy/standalone-dns-proxy_grpc.pb.go | 2 +- images/cilium/Dockerfile | 2 +- images/hubble-relay/Dockerfile | 2 +- images/operator/Dockerfile | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d9329f68ad2e1..a2f66cb112246 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "Cilium", - "image": "quay.io/cilium/cilium-builder:dce64df3892bec24c003f97edcb8aae51640d97d@sha256:dbcda5ef242a9f5f138b733dbf22437c4134106dad6127041653f947b81e5367", + "image": "quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6", "workspaceFolder": "/go/src/github.com/cilium/cilium", "workspaceMount": "source=${localWorkspaceFolder},target=/go/src/github.com/cilium/cilium,type=bind", "features": { diff --git a/api/v1/flow/flow.pb.go b/api/v1/flow/flow.pb.go index 3480c8c279529..0ea02d1ff4cd9 100644 --- a/api/v1/flow/flow.pb.go +++ b/api/v1/flow/flow.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.8 -// protoc v6.32.0 +// protoc v6.32.1 // source: flow/flow.proto package flow diff --git a/api/v1/observer/observer.pb.go b/api/v1/observer/observer.pb.go index 2036bf0996b1c..689cc5c5afa38 100644 --- a/api/v1/observer/observer.pb.go +++ b/api/v1/observer/observer.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.8 -// protoc v6.32.0 +// protoc v6.32.1 // source: observer/observer.proto package observer diff --git a/api/v1/observer/observer_grpc.pb.go b/api/v1/observer/observer_grpc.pb.go index 8ad4b2e199a5e..890029b844ad0 100644 --- a/api/v1/observer/observer_grpc.pb.go +++ b/api/v1/observer/observer_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v6.32.0 +// - protoc v6.32.1 // source: observer/observer.proto package observer diff --git a/api/v1/peer/peer.pb.go b/api/v1/peer/peer.pb.go index 94db6ba3a6487..bfa6f610e539a 100644 --- a/api/v1/peer/peer.pb.go +++ b/api/v1/peer/peer.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.8 -// protoc v6.32.0 +// protoc v6.32.1 // source: peer/peer.proto package peer diff --git a/api/v1/peer/peer_grpc.pb.go b/api/v1/peer/peer_grpc.pb.go index 3f64d837e617f..f68ab95280e43 100644 --- a/api/v1/peer/peer_grpc.pb.go +++ b/api/v1/peer/peer_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v6.32.0 +// - protoc v6.32.1 // source: peer/peer.proto package peer diff --git a/api/v1/relay/relay.pb.go b/api/v1/relay/relay.pb.go index 6182650c44890..0ddec414ecd78 100644 --- a/api/v1/relay/relay.pb.go +++ b/api/v1/relay/relay.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.8 -// protoc v6.32.0 +// protoc v6.32.1 // source: relay/relay.proto package relay diff --git a/api/v1/standalone-dns-proxy/standalone-dns-proxy.pb.go b/api/v1/standalone-dns-proxy/standalone-dns-proxy.pb.go index 14a841425a605..f2a634bb31d81 100644 --- a/api/v1/standalone-dns-proxy/standalone-dns-proxy.pb.go +++ b/api/v1/standalone-dns-proxy/standalone-dns-proxy.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.8 -// protoc v6.32.0 +// protoc v6.32.1 // source: standalone-dns-proxy/standalone-dns-proxy.proto package standalonednsproxy diff --git a/api/v1/standalone-dns-proxy/standalone-dns-proxy_grpc.pb.go b/api/v1/standalone-dns-proxy/standalone-dns-proxy_grpc.pb.go index 232f07cbf8f50..3d03bd97d8eba 100644 --- a/api/v1/standalone-dns-proxy/standalone-dns-proxy_grpc.pb.go +++ b/api/v1/standalone-dns-proxy/standalone-dns-proxy_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v6.32.0 +// - protoc v6.32.1 // source: standalone-dns-proxy/standalone-dns-proxy.proto package standalonednsproxy diff --git a/images/cilium/Dockerfile b/images/cilium/Dockerfile index 79542cf16a135..59faab9f125c5 100644 --- a/images/cilium/Dockerfile +++ b/images/cilium/Dockerfile @@ -3,7 +3,7 @@ # Copyright Authors of Cilium # SPDX-License-Identifier: Apache-2.0 -ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:dce64df3892bec24c003f97edcb8aae51640d97d@sha256:dbcda5ef242a9f5f138b733dbf22437c4134106dad6127041653f947b81e5367 +ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 ARG CILIUM_RUNTIME_IMAGE=quay.io/cilium/cilium-runtime:22e31ca0018cad492dcb99bc08368dc11fac28de@sha256:ae2f5413d4cbea8bfa2c6d05f499b5a6a3512bddf1844bb059e1a8b57b1137de # # cilium-envoy from github.com/cilium/proxy diff --git a/images/hubble-relay/Dockerfile b/images/hubble-relay/Dockerfile index c411f6a818a32..1b1d8057eb759 100644 --- a/images/hubble-relay/Dockerfile +++ b/images/hubble-relay/Dockerfile @@ -7,7 +7,7 @@ # $ cosign verify $IMAGE_NAME --certificate-oidc-issuer https://accounts.google.com --certificate-identity keyless@distroless.iam.gserviceaccount.com ARG BASE_IMAGE=gcr.io/distroless/static:nonroot@sha256:a9f88e0d99c1ceedbce565fad7d3f96744d15e6919c19c7dafe84a6dd9a80c61 ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e -ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:dce64df3892bec24c003f97edcb8aae51640d97d@sha256:dbcda5ef242a9f5f138b733dbf22437c4134106dad6127041653f947b81e5367 +ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. # Represents the plataform where the build is happening, do not mix with diff --git a/images/operator/Dockerfile b/images/operator/Dockerfile index cae64a9c891dd..8a220a18a5d83 100644 --- a/images/operator/Dockerfile +++ b/images/operator/Dockerfile @@ -6,7 +6,7 @@ ARG BASE_IMAGE=scratch ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e ARG ALPINE_IMAGE=docker.io/library/alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 -ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:dce64df3892bec24c003f97edcb8aae51640d97d@sha256:dbcda5ef242a9f5f138b733dbf22437c4134106dad6127041653f947b81e5367 +ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. # Represents the plataform where the build is happening, do not mix with From 53ec71aff6faec9ea69d79d9218c318436e0d24d Mon Sep 17 00:00:00 2001 From: Charlie Kenney Date: Sat, 13 Sep 2025 18:12:45 -0400 Subject: [PATCH 020/176] node/manager: TestNodesStartupPruning poll state Fixes CI flake #41550 With multiple NodeUpdate/NodeDelete events firing at once, the order that the state will be committed to the file is non-determisitc. Instead of deleting the checkpoint file and waiting for the correct state to be written back, we poll the file, reading until the correct state is found or timeout. Signed-off-by: Charlie Kenney --- pkg/node/manager/manager_test.go | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/pkg/node/manager/manager_test.go b/pkg/node/manager/manager_test.go index 1af66dbe977de..4147ddd1302fa 100644 --- a/pkg/node/manager/manager_test.go +++ b/pkg/node/manager/manager_test.go @@ -4,6 +4,7 @@ package manager import ( + "bytes" "context" "encoding/json" "fmt" @@ -1427,20 +1428,22 @@ func TestNodesStartupPruning(t *testing.T) { checkNodeFileMatches := func(t *testing.T, stateDir string, nodes ...nodeTypes.Node) { path := filepath.Join(stateDir, nodesFilename) - // Wait until the file exists. The node deletion triggers the write, hence - // this shouldn't take long. + var prevBytes []byte + require.EventuallyWithT(t, func(c *assert.CollectT) { - assert.FileExists(c, path) - }, time.Second, 10*time.Millisecond) - nwf, err := os.Open(path) - require.NoError(t, err) - t.Cleanup(func() { - nwf.Close() - }) - var nl []nodeTypes.Node - assert.NoError(t, json.NewDecoder(nwf).Decode(&nl)) - assert.ElementsMatch(t, nodes, nl) - require.NoError(t, os.Remove(path)) + checkpointBytes, err := os.ReadFile(path) + assert.NoError(c, err) + + if bytes.Equal(checkpointBytes, prevBytes) { + c.FailNow() + } + + prevBytes = checkpointBytes + + var nl []nodeTypes.Node + assert.NoError(c, json.Unmarshal(checkpointBytes, &nl)) + assert.ElementsMatch(c, nodes, nl) + }, time.Second*2, 100*time.Millisecond) } t.Run("cluster nodes synced first", func(t *testing.T) { From 11416dbe314ca44b8d6e6d228b6c8a4a4005fd47 Mon Sep 17 00:00:00 2001 From: fwardzic Date: Mon, 11 Aug 2025 19:21:52 +0200 Subject: [PATCH 021/176] Docs: update for Rancher managed RKE2 installation Update procedure of Cilium Open Source installation on Rancher managed cluster using HelmCharts and Helm Operator during bootstrapping of the cluster. Signed-off-by: Filip Wardzichowski --- .../images/rancher_add_cilium_repository.png | Bin 104015 -> 0 bytes .../images/rancher_add_cluster.png | Bin 48599 -> 150155 bytes .../installation/images/rancher_add_nodes.png | Bin 133996 -> 0 bytes .../images/rancher_add_repository_cluster.png | Bin 85559 -> 0 bytes .../images/rancher_additional_manifests.png | Bin 0 -> 389270 bytes .../images/rancher_app_catalog_cilium.png | Bin 129477 -> 0 bytes .../images/rancher_app_target_project.png | Bin 257707 -> 0 bytes .../images/rancher_apps_click_launch.png | Bin 128352 -> 0 bytes .../images/rancher_cilium_repo.png | Bin 0 -> 258251 bytes .../images/rancher_cluster_cilium_app.png | Bin 220527 -> 415855 bytes .../rancher_cluster_cilium_app_upgrade.png | Bin 151201 -> 427641 bytes ...her_cluster_cilium_app_upgrade_version.png | Bin 102583 -> 0 bytes ...er_cluster_cilium_app_upgrade_versions.png | Bin 0 -> 322625 bytes .../images/rancher_cluster_created.png | Bin 0 -> 291462 bytes .../rancher_cluster_state_provisioning.png | Bin 67467 -> 221849 bytes .../images/rancher_config_yaml.png | Bin 0 -> 595180 bytes .../images/rancher_delete_network_plugin.png | Bin 151093 -> 0 bytes .../images/rancher_edit_as_yaml.png | Bin 146868 -> 0 bytes .../images/rancher_my_cluster_active.png | Bin 63369 -> 0 bytes .../images/rancher_network_plugin_none.png | Bin 233277 -> 0 bytes .../images/rancher_node_not_ready.png | Bin 85505 -> 0 bytes .../images/rancher_registration_command.png | Bin 0 -> 373643 bytes .../rancher_repositories_list_success.png | Bin 100270 -> 0 bytes .../images/rancher_select_cni.png | Bin 0 -> 492311 bytes .../images/rancher_working_cluster.png | Bin 195407 -> 0 bytes .../k8s-install-rancher-existing-nodes.rst | 211 ++++++++---------- 26 files changed, 89 insertions(+), 122 deletions(-) delete mode 100644 Documentation/installation/images/rancher_add_cilium_repository.png delete mode 100644 Documentation/installation/images/rancher_add_nodes.png delete mode 100644 Documentation/installation/images/rancher_add_repository_cluster.png create mode 100644 Documentation/installation/images/rancher_additional_manifests.png delete mode 100644 Documentation/installation/images/rancher_app_catalog_cilium.png delete mode 100644 Documentation/installation/images/rancher_app_target_project.png delete mode 100644 Documentation/installation/images/rancher_apps_click_launch.png create mode 100644 Documentation/installation/images/rancher_cilium_repo.png delete mode 100644 Documentation/installation/images/rancher_cluster_cilium_app_upgrade_version.png create mode 100644 Documentation/installation/images/rancher_cluster_cilium_app_upgrade_versions.png create mode 100644 Documentation/installation/images/rancher_cluster_created.png create mode 100644 Documentation/installation/images/rancher_config_yaml.png delete mode 100644 Documentation/installation/images/rancher_delete_network_plugin.png delete mode 100644 Documentation/installation/images/rancher_edit_as_yaml.png delete mode 100644 Documentation/installation/images/rancher_my_cluster_active.png delete mode 100644 Documentation/installation/images/rancher_network_plugin_none.png delete mode 100644 Documentation/installation/images/rancher_node_not_ready.png create mode 100644 Documentation/installation/images/rancher_registration_command.png delete mode 100644 Documentation/installation/images/rancher_repositories_list_success.png create mode 100644 Documentation/installation/images/rancher_select_cni.png delete mode 100644 Documentation/installation/images/rancher_working_cluster.png diff --git a/Documentation/installation/images/rancher_add_cilium_repository.png b/Documentation/installation/images/rancher_add_cilium_repository.png deleted file mode 100644 index c08aff3c06da3663eaad6b47e305b7016246f75a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104015 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 Cl5PF~ diff --git a/Documentation/installation/images/rancher_add_cluster.png b/Documentation/installation/images/rancher_add_cluster.png index 2214ac42b4257bab4e4de188b879ba7ec00a072c..7dcc6df42c3c1d040eeffec41559050be1433f20 100644 GIT binary patch literal 150155 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%0D`wCGkqP1Ra1x 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 diff --git a/Documentation/installation/images/rancher_add_repository_cluster.png b/Documentation/installation/images/rancher_add_repository_cluster.png deleted file mode 100644 index e1b20ce6b609896214be4e111523f8f52a580288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85559 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 z�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 C`wpl8 diff --git a/Documentation/installation/images/rancher_additional_manifests.png b/Documentation/installation/images/rancher_additional_manifests.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4b4de6a53598a3d836fb7735349f1ee711153a GIT binary patch literal 389270 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�~^{{f(Rsb+rD01|lNSQdFd8acx9Ek%os{>k5c5B8sX=cz(TK9^}!N^vsb z1Xt$M8FB$sB3ry;t$ca~ZwjCY0RwbLC}22ZQ`XG2xFVgH z)_`}q$@x7sJ`r|Le<^bXgGV~Ri$yffrso$IqtcTK23Y{|Ba0ZCf6v|~uo`6;yT4%iq=wK+c#uNN%K4!`TrNbVKh`7z=Ao2a6jO0lg3k1KEnB0>-I{1n%)L0I$=xm)cF@vu9YO5#>c^}wDRYz zIM@Hq2LF6lw|N7pHW`d@np~;xh^4EdN&Z>_v;)4xW=$F%UX@Q55c5Yl%wOvXQv^5U z*=EN^C{n}!!f9u8#WZ12zksB*zpkij7H^16Onssbi408QM4wExMjV%|jD=Eh<;#5> zAXkT27Ljq~g6{3vd2nKc65lsYj86Mm@ash!HT(IMH(gKx#>vJkDc zB+wOcUj8o7cNh0-%->-md98n^zIN)Z6+mQ4dS{L}JC{^Pb~Bvf$QrCrBrxz>{o5R}3GHNyP4merBA*z|7>4lIxH`9eD+b+gc|tgK7fDCr zFhKeDev0&l{5ymDC?MR30uJc_)CLgFaV;elvca^_HRU4mxK8}HrAq}RDTUgMSUinJeHBtJsrGgv?v@wfOXi;$ETAY~&XoYoZ`8lOA1%*=MB7}XPRZ)=Es z70`BK+%@MoI`MQUgpQev(-=|YlEnEo{6@2Ma<3Vdg7afz)2D&1QWKO*>(!^@d;^IC z?sv$Tl44@$-^L%06+b+ZR|O0L6qfzMZKnNxF3rhyNGF95JTgB23{;B*5L_JE5xyL? zav(I}mzD=_{~tXeAN$*((%^eoBYYO;@|7eFjW@8gb`xjm?h;D$S#YjbHpDx#1(b%o zW5bbsh-^$n~lEavkpw_?$|EIWa!>B!AM6yOkeOX_8@hx{?OR>JXS+j zR|w44N&_20)WZYP?)XK#%^QiCV|0Jk-nYz1%0w6ulcB9&;(-U{%^Rg(3O!QCfKAz9 zEr`g0;}p+O)(5@emT{;bxfmO-GgFReR}(K%&-bAGT0giiw}RwFE>cwy$izX~;L9DT ztA~D{nV5F}+q|IN>dm39nB86KYwN-l$pw5KQI(e!MWYHYMboR=Vvxy?!=E3qZ~j#h z@&0cFqd)Y^|LEnDL;hqSnO$N}Rk+IIF?{!jlhgc+@8&*>3auM2j+722)shN)8?O;d z+sn|Y3KH3hp?F@{IOiC(DP$4>=n+u;G&$Tn9 z1O5XqfWj#5CBcGJ2yfA0<##f-qorl7xaR7qeep@41h$QM9_Zt>&0DjnI;Mf1(6SnW zOoEJzJpQg&wO$hRFo_-SIh-#NDMR42f`fzen5;kAbhYjKczMOuClFP~D7Q9Weo^UF z8;z!W@S|1d`N*h0@Sg1gbf>Yz-KW|?Z*z+o6$|S}jDqwl;CzI#P>xIS{+4pS4vnP~#TAp}kXSA%D()@0i+2(k|v2mm5IkM(q zflCt4r7fwhp0S<8+BXc0Xwj?kv^PHip)ByIzzNb#CH|E==8APMT~4HbsA9BUh?hi_ zb11E;d974j@@Dmt!xNT;hwL}~*RVHxsH=G}Yft6WWpT;ww}|jB6u>{DzW+BxNA3x1 z!`0?yO22#-!^w7bu46#7=-lKa@`>Yb!Ox5F>KPoGMNimD0Js4R|!M%W&ZCM2j2N-fa2n0+OK;qSzP92}RW1 zOG{(*=V}KME)jfm7L!X)9#nU7K-Xez#c88GMua|HUo&W8!>IMtDyq>RRP$=PKKGLK z#ylMoH*(vbS={!*REw@jFkZHIY$}rY=FJc4u#guXF&vxRkA{*gzD^x`*}GC0>*;4$ zM$v}sA8?;imqpD|^_410d{jCz(LO2OOo!0Cr4#YH^ak(K^!Qf)!tH(&bR|@y+$I_nU;D#{K)6g8rs?dXk@{Y3FCvj#VnVMTzY-IPP+X`LwQjf z>)~@3VZ>cIOv#5+)7yyUVzMp@g-Xov^s6*86(SFZ{1*jZa06dB(oq9DC6^|#)2*E) zVbdMkw}{79#|ABgqP?HcInjHZ(J@SQs6TNKI0@(OZEQ&<(|S2O94>CrXWlpV+0@yb zetTX0TB~rg-q4L!vEpoWz>CSg&F5@Z^Vr%2V7dO+Za0%!w1$xutdg(9D1!XHmN#xV z%US58%0YMgPq*BS7c)X8`!P7FF(f|CH}}8YH;X*BGo4YTQ#14eIVM%QJ0O z$5q%si41ub&61?dX;MU$AMOImzFW|cN^_Cb*FcKY)`(NIc_v*3uI5geTP9)uDZhmg z#?8J$_f(x}#ZObqv!fx%M^#nzHyoX3c)mCO5tX3;%;R`o<01ldlSIVCTR?6kt(P^h zVWmaPHr;BzYtGc;2=M6efX}O)5|JgipFa6!2VkBoxc@R_i{^%rR*bj*I9Qec z;Z&F8hWPGvjk_-RK2>BU)AHpkf8i`(&{U`9taqjuBG_kuQxk37!KY-XzD ziOqCTjXvlZ8;iA7uzX#p)3yE}FL!mm%ZdVB=$26eyoarh7^Xu9c{tQuiznfu*1o*& zSDzFtE%&nFu0L&}NE4z}*@I7hz0o#v`F*5wtft-a2~M@;F7 z=;-XE)TZ-)Peo21yWqH~%3%d|)ad2O1sB0x?DOxl0q2qn$j=uFVroFgh=&2BW0(jl(jE|&}bvKhO`@oXap(B+nChcka;p>5uB?IhUbpeXm8vNBg$0Ro zs*!v)4fpZ`lPO2-hdP$p&pIwOXVR2h2sY*u2|%<`Bzmx@_x{f5^QrUq-JZ_m+5xY` zEEe0@UJ+6P#rNy$%M#UIlho5n*Oi1+h^y4bwT{DU9_B;-jRC+fK_CwUK*G25Ixc2` zjxQMH7QVdUwbm-dNwEgyX)C9qzP3=<%YV`!)b($vE!W@LMDLZ;_74fk29W=V*XgGG z_QC?s*>SdYt|m{ybQw^l=VB6~v66Zj+@bct-YhQd@-=gBEK{4Wk?#oX`1 zswp&=&Ueo`6U-@0A)`v1H9&u`GnI=rJv%)LP)vi??|x%H3>i<(ha2=&9&R{x7Bb-F z3zdS(zB}w4g$Xb{^g2d{hNf2d@lC%ArCNv>SVZS9e>#qS=yIa)9Q56X%jju*0c(R) z@3WQ@M(vDZM76VSS>=c?%qW9(q1NTR77H)8Hc0S8m~=a)Yp z-%!xdm=hmk&?tu&7jN805+r=^^d73KG|nVSxW5)dsL4V>{3%{ZuiZ5oK`bl^UGh0M z!$Lvf11uAU#iAQzEOJMgzG@VPfT)&uccQJiex2M9pmIIqCuSE6y~bm(lTjITAq=E6yO-_aRlF+qRA z6Ab?@O1%)9)4Y*zVrAfTpLhVZwjbOa9tpegL4k#;lmRZG({D(+|QW8e7q%)y7B0wG-QvFoMKs=fAl&;!ms9s>_6=EO$ z#Gcm{6^ZKp_-?EN-*9EJag)TU3kKd0^<{sx1tH_UDfQWRgK zal`REbS8tLNBh(ftyBsHKjIh{BYKJehn>qrBx5thT|s`bH$R$k0QKTYJHACy(rNR; zG#Zw>KJ`oOV!k>e)QfxFJbKOr>0hDtg!3$4zRLpDj=!(3Tv^RM@Mh}Bda4~+aSOZX z3T;%o02W-&&oxAgVctdJz{=+jFIGULiF*zLZ%>YxcJc)}F zP7OZZb&{`?AcG)e5PN+&EVat+99RXW3Pkgbu- zzaVG10U%&l94kDRP_gyn!Bvp*t=s$YLE+WI3F%1i_&(ChYr#)MuJxRe6&EpCQq^!G zrX`qk7$HdJ@~YQcEEWt*VO2>%6B4wQHI+w4wyTnLKwczK?s#gVx@yIZQ-@k?c<<*BEj$VtxX3KIDE$wg{rwv;O;W!iXnlAs)DHX2_l&3!x`4*d z{}u^BZOGRu4RaeucqyY->y`&z*`rmH?Lu6P#a zrl0xU17E)E!D4F3Y*~Ey#z8A(UjRw^*3Rr~a1G1iGO6np`oJ{FCy z_sHQNJfDsPhe#?_I@bg+UIdv)CHWYr7{+a+SAafRdYN zp6z_F{r2E&IQVimf{qXOeX4uYZ0h4DZy$N|khV0pBOfjah(UK--}u8U?yt9@W0Frz zdXb*x2&g^G;|VL8U-psoJz%)6eQ|u}%}{oBXu@bJLEev#UU2{Or-icEX6;^$=92Nx zfloWsuu=jVe9`hbUBeN>c%iaSoz3vR57d-$52T97=_9*T zGn(gFSKiM z$$BgInPyOLex8b?AQ;{nzSc~vUU2epaW!67MD@$>YI?YbZ*N94##tQRubk|=F}%^L z(?YQ5SQQFzV{~RX-+_~vEUG)?F2@Tn>{#nQ#D;5F9lm*bIw04v9QWvUbe9dmA8+Xpjzqdq6B$u2ZyM|hMQ2~NyhE3;ekv2z-24} zK?kGMoLk#-;di=vx}j1*N<>R$xAvLz&>+@1rok%=n8K}HOE_f6>?}uUSur)LTKy|b zNfobr&`CY9IR0gw0;kyRE+8r@5m`*%Jkf-2>#Od}guwR*7UkC57pkcv_xiZ^$Lu>!=B)7#clPZMrjj_FC+FuRMHq}O?Vl9S z#hf3h*mv4@~sz5SBSyv)(R#RSKE+xEczSv}U;!`;tDNo~ctex4GKV6}cH48BQUNkS7 zQAwt4sQ!y4L;HD%SXwq_;*U+I8(AFbD`91%Ku^tQ=`vFd`;e_IT~&=%gHSGvBZ;v7 z%082MW_g#wsNAgW^y=$T%^)2ix`n`Ev>B2j)|CzNA|WfxN!w#v4V6afp;2jCy5I!s zUXLTGQUsNtKskXjTsfeIvG?e71xAWng{;<#lPm@5*-x8ZJT8EHBR4udF=0akQ3sC2NmhKJR zsOBy30eAhg8k~3KMV9rX8QLOTmmDW?E63o2lW;VRxngxZwe!Jp;tdR)$gRga4*DcX zUsK`^AJ``Az}$_u2fnKs3CeJ-V@|;R#&G4ssn$7_?J^4&R;1U~K$O!C#C>AF$N z3LW*x=~aeG^_PMYis(cTOKhk!&SdIvl2JhY0v3V0Z;lpAZ+nu3(gbtUC&lR)bEJ>N zyQi%w&|Z?|>7zq!`ict&YM?n166n~?Fr_i7m&s5XIAI>8U9`L)P4fNpWAb{O@!F!Z zxF>nYLCK9xxJk0d4tF4*DmXhIp(;vl)m2K}Sp>=X*zFRxdBH|8u{gh>S4J9&hlTZ) z%F(i>S8nw^4{uF8vm4()rD*}U-Pp!$2}@6?6|2M1;q z2g4r;==0JUwL8Uo`ub4PG9l;R2&>IVh7Ow_G%ZQK=<4HM08K#*gBXF!5kB|%SOh7R zg_oBq1}o0{rnk+uy9zrO-e`NRH$yB%787Ni>`ELUrM6%`Yy#69`Vn{ z2%M|d+o6v4pB>s=T&`y5>f#sm>0I8tUwouF@*}1LZ{)(jCw!E^l}Yh7tf_9;iaMtT z)M}-cFMjb?pl_Kf^I-x;)|+lL=4YCh@Ec+= zt!vH)G3suG!L080QgY>4F)ps-Ub+_Fs4OjQ^K_l>Q-L1)bHCBTSe2WzRYfr+?7;@n zf$pZ@T++NB0i2=Ae9t0P>f405s3sN#me-%l)k+V==7<7i7-hCDGc!(@?W~Ik)vew3 zhySP8_xFgXtEjP6g4!MuZlHpsS5*^6P+e2=krs2U&tym3(=GBA5zITn} zdv+4VTj*Q!6=V3ypaM=89i`XPzDw~j5Q)ZzgQmk4&3#g|13B)`}ySGw4OP9sR;`?Rkg$g2&x)uU)CQ z2m9S;t)ni(Agc*7A&JgoIx$FOE4~DdmBYOFtV;WP8pLgC4J(2=>2EGpuEqj!9l24| z>nr#7kgm_;qTA)0ObUa{Mf>lDMTOsz=eQ*wK5MEp-mK+m&e$0)kLlj8Hkl1u%)%%n zU~zeJ+$Pt1I45rEshdeQ^t1U*A=)Iq-krU*om+@8!B^u_@kXMYBVAFr-kye*M0Rzw zMVbU0pT>)WdBYQax_v*c%cZxD*(UpCJuLlc>8uM5%G~=R5y|LL?-rytB_xi#I@Mj7 zd&elLdq48kV$r9VG1&AD82sfx3axIbfBbDNNu7;J2ZZ{8aQD~ms~6_1Sjm**>C@?J z*|6ZV`b@RW90!FDD%M(-E}kV)GZ(ud3e8qxGV#(_L^S6#D^& z@}oGF{n3@IoSN~by6X3`vj-G*5xFiWvth%GQ|%c0dk!g;!uiTPB=+f98GcdH%pdyL z=kmdtH&-|$Z!YUd53sbp90x)Bi;*5+^4RiRjvbJ>hC=S|opTEkZEr42)pW+#`Z_cV zzOfWd)ftU1zJ9Ia@{<+*lKq8l&ERx-Gto<*3ZwCG7ncSKO3E2>6y0vixmxRwazDEp zIYUMsJdt@Y2+I}Enjg4D0ogkSz4_8!x~QpF-r~jV*09uPU`vLCnSaXVt+{%nT&`D` z<9Mpqp7w10Hrf4NXr@FnXgJB4=k5$m+O?p5`8~r6=+&nBuNFker`1qA2%17C}@s|gGfPA2K7xvciU{c+k^*M{>RG#hb%l1P=7c}IT#Gq{^ zqJYlA_355tvC-K)3>MhO*fL{#uc8=RSRh{Ew;f90vaPzt-7GM0vFvlfr&pvDvuSjO zpb~p`A72Igb$55$9BUx}`!kme*CXhDgcMH^o{V{XGgP9IECrVsud#t^d}w>4UpYs$ zzUl;6H3ZdaY%?DdtUg7?r>sA@p@IKuK3DSrc;dZN)6csDo|d{iM;%@BbIl|jbN*R0 zU92P5#QELR!*SnsnMj;DeXLNg8FWK*YhiIOLHw>{>h3Px9D z0=l$}!sQC$*$_Cgp8(i{^f0dw_t5#UG0A*NY+HG1v!H-_rd&Uzre*g<5|68}%330E z{?jM$@UokL=M%t>)U{FXVLnr#NQ=*8@Cfe7Wv}5rugj+8`Zq|E@A>`BjS-}Gdu&Y3 z@#7J2k{|AlAoHWsSq)ISfezC28&`b5N7Nfg%v8Hn$d3-Gc@NFxa@uV4rxR9db|YqI zmya69srhjP#GpczdCcv_s3C)xW5=aNv;7IjC$KZJ*^2s z+(0x(#^azqC~y;>n{QQ9dp%cQT@?OZ(|zAXSlAok=|N1Uuv9Xakjg~4VmYbJAU9rz zwX7+Gy&seC{&ID2g`uc8HW~Kl?zpfBs6GAwh3X@B}xM_&)?{y(6wlsa< zCfC&;c0c7jZo-z6+J&*V%WpnMK%VD}zKExte4r4c=j$(>r6lT9g}|B_uO#$XdGg2p zih#J5zuOn_**H&#-O2$=cVwX|HFwPjHt&fM?vzt@vnBbbdWo2~tk;hEz&tbfo~I@x zS7Qv4KsOq=98@6?S|5Sudih!4+Qby$Sk>bNj!!Pztu9s|<6hTt1uMa?8waFniY*s( z$&@%lY{iZn#aywNfeO2QQE8!bMP@Dyy-5tZgYkT_{zP`w+vG33Yb@h=wf>@P#l!W7 zk}OJt&8JujjWQgTU)DBLHhc3pdKhE}Z=Jo$%Oi#<@e@4tt}30*VF5_DI9QGYp-5oa zw~lbVgkqbnUg`GUr~430AnRI2m7MQFM#~2!Wz6x@=7Zbb&G7lzB{6V29KAhO)X9^M z6;}+|^rvY_QLK3txjgyI{lLLE$TFLU$t`JmG#CwdgY_rJ}`hp zOKIEdx3jjfc~>;TVt>Gu!L#=Z*>p7&c+5euNmtAiS5UAV?|5)if5w{kiI3@z;pqv@AYIBx0las z^<9QHRzn`7lIZ-N6=AesdRYzql3NY!1IcC~=F+koKuR;Dc;YBopS?I^#l9337yo?o zf`Dg?{HP->4LDLtcw?5Hq>g60(+Y@L!DHN)TW^|GZgvs4zdbxFq9tEyzdGF<*9M$r zoWd{1A;Us7F7!WGxZ3R<+&AL_`O%SIYd5Z?g3LISV>PjN~(@^U?F zIOX|mPikJf`~p6{Gbq7et>&`X_^4*5W7fPm4RU>Xv9EJ}dl`IbXt)h#H(ZYo-CysT z{|0Kd$_KNCV(By1&Dc{R)kVib+ki_l$yoqabpXQvt<^Lz4Uwn2WO?Co3^#^|LH+s$ zB%032iVY6WB;rou5VHCsJlHc{>S3tVS_yqW?tJ4&K7ZxxPt`16Y}RxVFoHSwm+dT| z@fneBXLu-SW8XK`Gp+i$D}suuk&L;!5h<*C$NbE-e1?eY?RJ8D+d2Wm2~Ntx(6LqX zqm_M0A<}j1%Q95gX6FV98s0Yoy)Ok7nVQPn7vBV*ow(l1jSna(>YT(u>C^O8ueDrb zyU%C5T=p8j%~uADZ9iQJVO``M4s4pokgOl<%I~F#TPoYf{faX^(G`9mw6nUdMMf2D ziO^rdd~VC4BDZ$c8H6(&O@kx!S=$TYsf)qucO^FPxAhaCyV5=M!EH7W2U>Bf+Ewx@ zrgk6DIr(_+&bTenWnP{nH|zy}-K;eeVD{gua*UYVSJg zCL@S{QHXu9xrj7dVW?g6WuV${RB7&qM#L?i(Lw`(_yv7sC>5J!j@hqJc!|Q!GEpK8 zQ&Spq3{9*{rxm~OJMnl-y2Vdgqgl2q*4?kAOAoUf>UIiO4|9=u98&O|3`!PGS_drF z^MD=nuR(0@WpY_8^N&&tkdaaPEyiW67p*vmT@Fi&HTt1zK1BLfRCwr#F3|UlaM0 z@nvdMHcL$#N>ATFYDSum!Sq1~nELX_2zAO|1y{9WaB>B4EQT!N#HoPY-in-pIV@P6 zgObYGaw=cGv8uh89-PttL#yOZ3Bn25rHcSoBdu9OzXxs6C9~Qb)2!U8n2p<_d(cZY z%G*lytj-RG-|ZH3iIy{(aH<)_6&K3LmRjr0vD4*LRCNs{nINhU=X=v1@sjC8cjsy& zrm`y$zT$=1+ii-fK^JDl)aEAA1e`0)rOCiBmmIN}10yzn=zOKIzVvjrg!iDhSIfza zzLQhkg6bltZ5>(h0h|)Fiy*)dw59^94CiXn>h^#*FY9+goKNpGM-nXD2)5K-bwXu6~F@#pF;S-oLlM2`wl=*?lS1)&F zIQyYn!>Ui(XI?oMC|7@ow^;XEThqB-3BVSfJ%#0=&9wYgA{4NZ?lk#q{Is8SF)XT; z?N%S))pMI*=R09Sk9Q%l7r%%@`~t$Oa}!REt%Zs+K8Ez%mCwe~uWlVJ-^pcoC(I1a zJ%Qw}-uFx*t3R5~mNMTiwOnmxaJcBDYxYNECiuA2i%S$O@Ca6y|7$O_X@>0Uikbe9 zo;0el`!AY0jFjlZQg;7TSt?%04x#8H)?!n|q5OF5Ww*&KmBFAlemioEf(Dc;PI=uL z7(SUw{;Q5<<#djPPbZSffY% ztw0bv;sQ*FVsF0(2dhPfM}MPlHS?qcI&TGG;q5n*jn0+3zBd^UsTAHvG)lDB+x5jJdqJiBp(HB8U1X%_+zij{c~7T{ zbs&eWkud~Y!kWz#dSH6CU%lv899K!2|C|!%*tqpD>6Y>5__(~H$uJ`Un)_3leLZ7S zu{I8F@u~?so68k9rMgXfe-Ym-GYMxIBz=3uXNCT^QXHACKc<@5JveQAF1;C9%@rb2xCP&X|YB2J2@gQZ@!}D*$1=L(z zN2haUne2_(NPb|cheR%3enAG^-PE#Ya;OjV55bw3&2lWbiN%s{nW#kv#t_MGg@Wsb z{aHFRqrh6~{%}cqBUE_QA&kVMwC%9&AZGR-e(Jp={;`Ha0sRbK--)B2qbITykg z>X(3xhdZ4@7d+qK==p~4=C}*4{li-`6+F$Q78om~8)S%*(R`h!N;{@K@D_vY7!_^( zm`h8dyT87_sda+EZF&@xuSO9>Cyw|$FT3vzcM5j`j`%9Ni}aT-Q*aqPaEdL(FwGb< zEQTZHE9vVVCt6d!zEmUObb1?z#0e~>B=sjvS454%K{lEtK%Z>+bGePdqxn;}vz_zJA=%LoCddr-sYsd?Bt#63DtVS)$$yvxB!(`wD{~Wdx`n z{qj{TGO5h~!9b3VW1~g2T(7pPZwRF;6)DvC11-vf z#Zcg5{W&cyqJA}lsX}GC%2tTV9P_mL)#mA7b7<5kzMI4M9K8z+N9W1Ne20hIYhZeu zkm!EeKiPiV@WX^O-z)aIZX*?_zwUH+@vR3E6`jz>FTb4z1_r{)zmT=}e+F(|A7W%? z$|i|NRGh0%`l}Hk1nQ)s#esLMAC>FE5MF_!aM{;ru>YUE=xCn~A?d&RxDKyIS<9lJrn6*lB*%@q+)H$AJ zHK0C%94_Y-cp2jQHd~R%;BF!TJ_u&>U_kLlWP8PV@vHg#_p4e7{$wpF55Fr`d#&D> z2MV*kVIgxx!@;9|>dVtFDs#4$+CEIj(|H`V_4U1nKUZEluG<#fa@$_)v0pXDg@+UI z^g8q&POj7$it+QOU#j4cHru12MXa$u1%>lq#w~jVc@R?V3@gNXl}{B!&$SzE%|-Vs zMoSZu#2nlt(#1AMTsJ8w07N+J{n39++n8|gbCpM#%?D>cI()k`T!A@$ih4MFAxSi) zS}~bPUQAKNOc$CIAwjX-{rZh9hXt~u937XB7NBC^QI`Qn=JzaJTr)VS(;5e2K{|XB$ zRT2~04mb+qB@kfPql5lvpXU;`%znX9R>5iIxwy)<@zn`B!)3-kB-XI#OX~MV2j@0` zW3Sey6Y#hQDs-(}-Oh9b5E{i~NhIWqb}-W$Pi&UG`p%FH?3o#Iy;mH5Le%?55S@=1 z4meF`~;J z+e6Bx8U#Q0^k!b>jbJ5b6z2qX{O%L4=haZED*6S?vHNz0lufYVPSuw>=i*_wv#g3H z-;!^4YI<_m?)>^Fvfta)rTqPu{{yn>Ui&h=+v|_3M?WcHI<|BhQCpq>}xtR>2m1kyk;71pk&*kcL)QKkxJy_4xa(_@A1T|EC8L zi32lA;b&!i$u`tO-eOM)ft6ON%mcWi==bG0cGa&wR9tb!KY#w*p)@^zXRAp_N~_*f zU^ZTnYv%I%w{PEea+NKa%Rs+z#pr3rFuuc*TRA4jiJODFXuiA{CYww&HV@Tu=Ft&? zEg&n=^dAW9>%6xFk=0ftg{Kz1Z48c-wBk;pfJLd@qyGBbbF8>4F%h>8M;?ulk&%Lf z!yD8gV=anG@w)bWOZ8)u`IzLMHYy@!L#c!e;;bf9D8Q@*g;E)-vFFPl@}tkwaNzVd zoG4&-df~F_LnwehrtFQ4z{f|{;*kbF^D;g9d}gTW)OqXEFPP^+b)N_)2O^RR@viD7 zN!*M1P70+HxbmH)EAz&4ysfw8r^oOdI}-exT_aw}ydpnPpjK_f7KzcO8y?3&jSPz; zydTgK8c)oV-A%n1E7c^+Ti;MVeqLTa(A7+JswlP^>3mZd*r=22`;Vvs?@e;kS2p=h0E^ zeSocc?tOlAG?c)~+~)Dl3>6hJHomX`XFv3GlX{xYC#^?IOiC&n{NHFi^R5B(fV(|v z@cAq*F0Mg$_@V)r)L^sJ@`3$@`@AIRi@2QaJEu6@``+H3Aa9^wV3pwgvDEE}XaRPu zfo|{wj2j|(z(L570|^({-3xtvEGWS7G8@0&X*l-?Eq!EC+TRy3qnAGIH3nX5Wi~nV zVFkOe{fQtFbI+Z-88fr9va`|BY^>6giu5eE{_g%c3K)RGG*RTS3O)1pjPnc{$PI8j2gmf7hX z7O6B$XW?^;pyUS7ME8noOjNMSzRA`QYWsLiWan~aOUt7b6kK%|rJ+vEBKiFLEMRdn zbh1w6+l*nh*hJ$qU80Ew;N(cVgE{`_?`zNN%+G$K?|)mre2%YbtT$iwCl{*E2ZTKM zk>OKGWqW9Q@#P{~q~;h~*k9E|y`qCvk0Ix}U=Zq1&)D^|j3lT0ocV(+=Gs!B{c(=b zpo1stklem?kb3Z6D)N!%m~2Vx1^?oQC`lsK9VekccIE+8&b1b*i4kKrPs70}Pl z3p0c9(9kj@l{tQnFR_>}5Y=0cSCC44qnWP|KMU~p&$>CNS4YxrJnqZ~RL8d?-uO7I z3&wJ$E#aP<(0jn%A}2_3yMAUmQxT`;cE!w&0YOo2bfV$DT3d~N;l=aEwUtu>3kayh zZK4B@pPprN*xIB_Q|@)Iw!i(%4~xrWggqq8BWi$&h4C*gNN^J)onfe6s#!dGj0C$b z)B*~^?+sZwKJ^+u`2lk@g2UX5h@Cy|{!;r{N7o|5q>#B|oA>$n6^M?%4?q=NaYNkq zGV$5jJ`5uDcKZt1m1rAHP^0k?xFi6|r_BqRgAu;p=I^cnOz{e0FEc|`+#m_aNj(MA zo4;9F0Cwpw8Z;LIW`|?6yA!6LvriLpsd7@Z zNv3RAvh-iwt^c*cbL3zZ;Bu>Eb9F4rbd@wNkJ84#20O?4807Q~sQ*<(B_!ly49RNB ze!FrR0)hju|Nhv2F>1!B^Gjf7Z*N*1Oj*+0X<)Ei7k%e?K3?5JeQZe~q0DX!6x+X5 zW(DDczeyOo#m$A);&FzPlJ;hRs+A5DM^yP^o4tLGZs$LnN|plIQ-v^;q0)?_yHZ@FC&YFz52tZYyhGeLGnj|&mF2ZT_%ue z*eY6zPtDBawFwFf=Z!{7e)m?BsRs*PB}swwB>|7tgv_?~4m$@&r_Rvi!h+iV0qB89 zYQz3<5k|>t%v4aUJS8?>*ZxaGb=gtzXHA*YQUl@NBFP_u%0K?mqn=p9+TPBykuTK& zuArd6092f3p!p^ZRGPRh_qQp&`D~S@vr69I*{ItI)4*jK0z)Xr9v@v4iLkS??=;jt zE20IM;o%4XV2J81H1_VGi(wxa7ajm?DD-QOyApO3wB$a)z}%P7J)q&v#X1BUPp0dn zSgs~#>ZjmIO#qJ6QVStApG>go{8sZbDJdzZ>uvfop!4b>fiCif^4uP|uIxwxG*6e@ z-&4cOklV?Im}i2nDVBzHa~0?P(uX_SL>5&SN7W@BDfF+%c%fQl?`y#)s8QLfg^C!ndXc4U>Z-cOtl#_+{ecUi%RDE z)C3B|Z`JPl4ExwgDtffzI3z_~^;n4@Qa~b!BZ%#?O1GEAKPV_Ojxl?)9?`U;hTXa; zOR=1X?BmCeikZLhb4WAGDc+}1k7l#ZKy0%8tKE9p?BMpF73KPaBLQ?kxU#nX-?!s! zZ8*W79{UFrzCSI3gRDoe>h`iYHIX1Fj|^Gtwl2nQ{6?)91k*jeYuLPQ{xS>V5V*J zR{@n5N$0(YIj64P$d64yHUlclC^DX6K$lciBuP=OG!g-O1?6X&q7%S09Cr&Rg|>33 zBw~*eU;H>`X&^8aqS$9^C?;@=6$3n^nGU%4jTR-BTM0l?h~OeHt@*@>0>7?QF(hAJ z_i*0?$oG6Qux7Y&vaLo9c<{q)KRPtu%bM2Y)M31O#jlbX1mKF4ULQ?${7nz|YiwHD z5iXyJXxclm;A3#b(Rd>}Z+6D>vl)y}YNb*ZPHr#HAyu2JYmR2PO8K(cRcfijYkcuu zzzZYBnoKeg3_%t)n%E*`f8AC5_|Lij|I^Oh-%o7x<7|PDAD*d6hwmexoZ`kI6uekzjEUVO-MLu`24D#y zV%`e^{*0J{n#=^nAgrdO@?`hZn`sfnvGdYm!)yjrG>Qm*Q-OCDm_T5{k zn>Y`1Nwzb%@6v(+R4debWiL7`$aC0clQ@45Oph-sF9$m3MOd#cvw2aJS+$Io7QP;; zcRD)`j?H0VVJnF$zxoU7a%nrt_CVZujfwdY1_ovg3^%3Lj>mZiB3Y4&-#e;&%C+rn z5!{9HAIJ1r+4`Zy<}_k;343kDnpRe2FKXqB)%tZ(R#al+<3)iCO~=@nDy07XVXeyo zJ$)${w?++X$zxTJj-TQ15TgzOnVDR*S<)-_{s5fTXJ6}th}Go78nPkL_=xpXXXQ>wmw@jy;R!2zi}#*Rv5J*D5I zcYX?Br$g#-#Q)_g;(y+?pL<{xG8^3Yz(x9JSL0uL!aZ832b~$!T=ZT_R|-$23tV{-S`OZ6B=SsBNZ zB-ZP{cGZ#@!jk^c{Ab$Pn^2G9GFM+Vj(_u&5%`wO5ZO4U=J!>#-2Zl|5MXX!bjEm~ zqphv2@%<@F`r9-9wXgA&a%n|IKB@D`-|mpT)FWQc!(>~<`G^-TU@%i=0X{+SztI2s z2X9Lb2Ltb{Y$ddn|9Y)d>@Qa!rw{hFJjVSgrv2&~N|#Sr*=HuvQe8wAihx|ogx_-w zJ*n;l#OjhnyD1DKlanc$9Lmt^Mej_swIwcA62@}#9@nyQDi|Rqa{cWy|AY7b2Wz-x z9`oodhqQQKLPVnZhO-O*zp}?D@zlHw?&HCQa08lKmF+JML^M2DLdeypgg7{g0(tN3 z>N|!g@qD|)|64J-Fj_Q~4x zzZKt~nP3J6!7A=fDNW3$=*C!+kK)0e35~}05C2&lJ_o7Ax@rDR9nwlDo5=HRnM@kV zImtwFc65>>gJ5=*>B(jVlhISi&tWe|b7dJ7N!nBksHbU4TP>c$_NW;F9`0v0tiN7x zK5UGZ!Bd9Ym8GG7H$ohxe3du+-WYC{ofp+; zLhM9Dm*fA>bNj!}R&p^|1yG;b1N>Ey!x0zpKkyO3p0q!SDypO^Yc%lQph^q6dI+%6RI{l=&-|0K!lvNhVV8d6r?PW)&N|sgWnScVKjO|v zPY?O}^)bl(`)1dBZlf^Wx)U$T$1<575_7l8h3|vKkImikL3IObb8);`J+%z1KojKi zz?wt`>fso4T6$`Mfc%2o9%%R7%flh@ncDp`+$wj0NHk8)TU`p{b6RGDn5M5dE|B4N zmt_+VO`EqQGMtz)zRiJJiHe<_|2StIzMI<+Q($AI`RRQ8%-Wc<)CJD=KH(HHkod0Y z)KHQM*T-R!R=X>C-71N^8HWN&DX5ahe{E?~ zdQjN5)O?`nc@&n5&9Zl+BSdt+SZL=O?@dk-wRSg#LRQU>o7ys5>xX&%y^M7FD4^b! zzO^Ogq6+BD!H}x&y@xZP?o0pl>F0!m+(%o6q4#;e2?yPDb+4PlvJ|j?tQ*owQNc!V z)ZW^jO42rKM1aRN|He9T^BYmwb4`izqOjNE58F*nVPg%ZVE#gzEwsk*M2ogAiF>_Vh=OtEY8UpTdrU`i0vjnQ!mcwu+bizk@vXqe z9q$tL#j+z8a%{76i@c#9KZ*H&Yj>||%r2wbNbC01ko~lXo zFD;!a_w~Fri+-Yl$QE{ZRET^_1HtmjPY!87bTU^dd;g>Ke z)(cNx&rz2q?P$Ai?#?DPkl~Jrrl`09r_|b?@bt=Bh(L$#D- zMrf$!?@Uywed|)Pt|M)h`=V+YT~#8IPldRSJ8PELaQ$D0ZCmMuQ<95sOz zYyp3;OmESfHVcuUu#zp& zat0ju{8(jX#Abi`dD(F0iN8Be-8wus=xIJ&0d|ZN`6$=Zur17ZWk%x@W+4se`#`?h zkHG9%aY=`}O<6&aY3 zlW_#g;zqZkHg21-D9DS5FCro@Ixr${T2>m>Pvm#;?d!MCQ?oabHU%+s&J!=8X?rY8 z%&+t+M!9;dv{||BIrmPEkG8`B9thU;5mSEvpb|<;N-}^30u>CV7VU9_)C7ZnJb_++ z?X_ROX@U-zMw?Qh{ymSx)L1hz%tSTX*&30houpOw!$oPu={mwN4&~ZfpOQA42r_C7 z(au(F#C+j>bN%-v74}9uSm%@S!+Xfw!?lFteTF8g?-=PZdbFx>&~81}r=1)TRd53# zv&-#YWqt7_@?3Yet1Q=2$*($ZOmaLwCi$@3VkDIp%w2srJ2UGz9vI-@^*BkWD&$un z74r12J+mv!FKt5JzI#^+3g^m^%KD+!F#JiYKywn*3oJOuF3&Rnx@Ki(Ym0G(gXXU; z038ZfyO@g?AoNVTi@j-;3?NGP)~jVm-A^9(pW0>9Y6B|_^FHDQF zQRV4ur8DG9mP)Af-S`-hS}VM}YpX9l#AzJ}80UO17k#SfyoM^(5=bFIj-JqXTgF zm!;lgj#D%;$~>yoc@%AX|4W_mt~n_VpZy}gxVX5Ax_Z=^r{y41%n?vx)?Gjx!QW5m z^575>IVZZioB3~^@`6SbV{t_VJIwUWn>(QYa)-Qx`sbiJ5zG7`GW4-u&-z$Z?o8Ad zz2TN-i9>;|&B#SfCnqa$J_vN8SsOtA+qx3_fj7njuE;9?djXYe5{@a z;(Y*5Ie$u3hq3#ZyE0U|y3sHAb1iJ@`S~eOsqoXy`YNf=+Gx?6mNVJSw1AY~U6iAH z(xY3OwOiZ~-Dv2AH@d$$<#%LE_RNXz?G_yvBc{3Foz68sV=oo?;A-bKf_eFua)^{W zH)HDVWG5uLS7ufbk-J7z9(8HQ*X?3i^0_sRuee9=mdDOMN|zQmmpgzHL+ds_#nTUz zs()v>%gOWP-oKM#ZyAOsZ+<+#OH3?5dS^D^d)d>Vu0CI1zIqX#~G;PU>C+4w9d@<`4J~>=Blll&NVa3 zI3IV)k4LfUN(T$_ir%Q3N7)WO;0ME7w0UDTHo~UvNQM#KXYg z>v=R|e7nBqQiqqHU-`xkXwJ(5QMr39rqGEOwMOpwmlxG?)-Eq!R*p{r`D?l7zBuWC z9A^prCzxTD2eo&~iXp4k4vqYm&+!F^lU)yLG_2zv@*RMA3Pyv&>!>HnQ?>BY_!YVC zm*g^Svx_*RdCkaPQ0O*95QPj6$LAZhZC&KYrey_Y!=+3CZFi&yDW3hs z#i{Z!{O$IeYA>@1Nl-I?p z=L!P*LS=Pq7x+R<5u4Tg8ztR>%#9-Ly!PGSzvC`1XC+eE=AJ~A+b+pqN^aYclUuK^xMv+Br_YY-6y0lBw%V=>lrJ0(6G84 zq`~7iAA{Kw&FAOkVFQ1o>04L2db}!vdCh5caKwN+8dVpl7HhQ3P?YwS3ONH29eHvu zejT)%j#GSRj^Djmtw>*k;V@qzY@XL}BizsJCUQ%mlD-QMlGG3W81DUv>_5WUyT&?C zC#Y+~%spAj>pQ= zi6h$~W8K*5MAue70D6h=fv<^`* z+f7QrPzbUlcFWd?57wjaEP#&dTkG>z>iY8+HJ4_HFN{a@`mwGT3(-OYMbXK+md6(b zdvmw$YkcRhI7(?Yl64*G>SC}!Xd z&|v&LGUmUuFkq!#TUb=rIe*paQMtX^NjUY_N|%Zc&=_9$KyTV2oh$=nJ5#L7KlUGO zcp6xLt-iA(+G%N7@kow5_{BiAo4ckuo(G&Kp)i22#awItr^7l^<{!`#Sd{e$gXSQQ z_lsTUN>&~#1FwL}an?;9$FjGjDJiaOpXw>0AS%d?)ZnJ7CsdJ7;(v^as*MgbKSgL- z7O=Z@J@#G7+S`tIDR&+@l0C-+4(EvkE*%y1M3gs6ZHyofkGQHH4^1OJKeylGqgjs( z+l4!LuJo2iTTDty=9IP>tb$y4W}Fr;bqgn}9R2zN!2}LEpo!E-M0(gs<;%s_@489$0ey-(UR?QgDqoFx-EK2-wS87Va_F{}fe+P&|t zd$fM1d?scy`{M!6J?Q*8>^;sYV_@F(0nTpwxQ>Gy zN)GzEqy?+ntyV8f?e^uQa;D`g8=Lur7FSDCaWaTZ;~jDiUQj1!zYV>7HoNmt*-D+L8O{OYCz-MYhQi-oV9;#WNIfJ zr@r=hQPysBbW}o+@iHclKQo_o*%&X|HUmm68`V)XBuOs!*i(15SqL?vIqA6{o~jY{ z-gvdM^URb+*}|b29-h7abG+`s+{jZ%gOKq(X3hMdsd7u%lc`II+_9Z*mcrsnw?j|h z>GjFI&Vt-0pG^J~dfXiBC3F6uacsN$ z41j&%DV(g5f2iO5_bPy}IAPH&cIgpH%FZMXqx<&p8tlG8_ob7+ktNpGDSYj(LUj-0Q8+Vs6B54P9RR2;U#JRMml6%5?XY}fGg{~hCc%dplHc^@wK%Q{Zy zD$dMk3>=@)fZ3d5Wb%!n&5hr<0B&Ivn+^2%xN@sOa_dJN3%(jrp55=5-bmW)8~U@ zUriGD#IyaYJc znmUeNW`3q1(I{d=V41%*V^ZmO3*8mtwwM{d$2P1Erj*y!Cwil9RP>^UcS){_a+=Y; zcu7@c7{DUc9(kiIunwQ+M^hl9rD@$}gl9C1jyjEac2)o}!>rF)1%{>Yvqz7f-OseB zPko$WJ1m)Flg*T;(XFfgbl%02T#Z3w+l`_w%l>}URQwHGSK*QLfh3sO{Ywi)Vhnhx z9xL8ETLk;Xh)Peh_t^Ijb^zcc!(}2G&LJ%nM=T(u&{Sn~f=)xP1rO5uDf21vb4;YNKSe~$I1{i3*=ceM+_UMw( z^pgy~rlF#Gq0?8G$nq|eC8$NoS- zD`C~cN;*nq?W(JH)3NVEzO>;|B?i4vuEw)i&X6~!r@eb--vnDSaCM!L z4iDb0OHg)pWO`K5@PPIHxF%7OGT$dmJe^p7H^L@iK2Oj7Su5)K*XAdWEkcZ~e4de^ zCfDtRbHI}rSLwZ(F9ZQ?V4#vD9)Nt3;HgB7j4pZ>?9^0LY!8L*K$=&}o+Zu5D9BLw ze=sB?+Zb=k<}}aDyP4@BH2-AFzFUC#d4^gZFR`WbGa^zxr!Y`yeXJDvRBR&()%1)V zP+2QN`-n8?$BXprz43o`Lxb8ZOA*9#vkpRyqN1XR3&1U)o`p+$vfp3Oe__G4rV-&% z$Y8o*{6xc1WpuQR#L!UIkn9)6fInR}%l-oRF8h3)1>$r z=h_W<&T+m(`8`)qRJ?vM;W%E|yEo&P+{VDJZE7@GgTB`%OMt!aX6fX_1x7Dr)kkMT zP&K}Qz9vJD9uM~t%8jnBE{QQ--jzY~mcbj5R~5isCtvJRkFe;@ixrxQaeA<>&KM5r~DVNWYe65(P`pf{wF6L9mLPIU&h z&Ci#4*g$oTg`RT=G486;VNGSMm{y4?;mOSPv|{D{A@;%33*s*G)3p2ZoQ2e@%525U zX70Q?pAc}o2P07)T%`tQ?E}WA2Ldb0px8NJ@FWWq0RdG2jPQsBf)nX2Us#z{3dj)X z!b?3)S-$#vj~m;$trZG!0f#u)FuHym6@^P_~<^yP286HzXsP}2z!UC ztJp^LGwQHMaUuR}z)j_{o_#-mHA$|~g zsqsKmH3CLQUUyL?_Hys*B)ppN=+M1fjo1%{qh&D9Ia+;4k;rW;Q!r^bEEyXd2rqmQ z79U^O5Lwmp<0IEvQy#M|{Z9&E)%PrPO)ch@k(Y9mW@;74!gO4lSH+3ui1&U+?%EHt z3;kGZ=$y}{gtVW^g3*_lZm*WC{Ekf+-Hqcw%Su5m`os&Kdy;;QR!Z-)0YTb`BwM52 z6KjfkFQVZxS)!|vV-&!?i1Pu`TmowSU%gQsH><6z5N%U+EMQ=Ul96NEZBO8^l-Atb z{5T27zMAsf)UY?}p^$pG1tdsqa;T>c7jxg`e28lJQFm#jb~u_ThrKdY7tGsDaCUeT zl9Z5;f5SXJvRNG80#kt~&?*eoF6lBQ$ePl$y$4)sgAG2YghD+ z)d9#i0g=fwuVmG7#vtR`qoll8n|R)R4^YLX>nS3oSsL9ZyIs#Ke0oT(%o>K=YHp7- zUl_(0JOX{y7Yak@F{BS2TN)!xqnKXF11gRolJ2IaSHrN@t!O(I84Sy}Oq`r*uM&{# z!5JK2oPX~-hBZTp;SNllGf|20(rj<>-1{DRR=`)z390r13C_(nBhc%#+%AuD!r603 zf6z#>FqVjF96JIdkLqJ9X>04+(Wmzpsl~`#E;=z_Vjgu=D-lCODaZ?%^RgQ4iG$E~ z&NJHV%s+r1iWerd2A_>~C02`9mIgzL9Qx9?_m;ER7fx?u)E%W-k`B9Uz>N18F18P= z`aqpt7+;8AHI`YU`}XZBXg6pJ#0eZYt!w6ZLzhf+sKrW1?&_gmYAZoHN=qG-V9d{K z%(&AJ;K_{|8NEm5bMQk5EgtE{NJ;Y1YM57&EjE5|x@o^r?|hrJGU%FR*uEX6{k@m- zdsFLwjgdEU0rFu2ArRHm#fu;y>TrU}@^wvh+T#Z~sk;=iw#vAXFq%!zB_L@$;#?Ko zY-ecy06G@l#@<`%jbzcjnW~c2)&3o5h8eeab-}sEZLGDw8H|>WtTfF5!nNCx#-pK7 zXz=L%LiAK^9$}psVu!LYrYVs11bItKgajiUoP5;e+DZV#)e@W>)@T6+^>5(U>aub{Ty1F`> zaC2m>)p(^eDF@>u1N;Ub)2xL6tImFY-gcDFXoQYyK+$ku`U@U6dX`wt0T%czR1JJt z+18MjJMl5n8}d;Yg8pw(Ud|uZY;8c9z#wQZbJ&QGY!9v(fq@vRL@wy>$mz1Wz z)9rZ@iCS2sR>g*DH_$eARm}>5@>-j{Io$AIqi7aM14_rsYT2_PLCUE)mSa&4r%wJy zf?br>*49dhJTlPK{9z(xZO!WV0K>k+e6C$brh_qJekt2+YFd~;=m-v_BCf+{L{J?I zAjWM?r%vH;xv5ebcJ{;bT&f_I2jNqjA3l(@O9IFHkjL&l80*P78|ftEIouR_;c>F3 zST*aWE3p!>y zTdk*uj+5_DvCdrWKo{aBAZ?P6k8bkfzTb2`om7dGQ5`L_usJIf8eh1g0clx7&PZiF zw(quY3LRF)b$8(&>zG5%O%M<(1bQTV!4r^8FtEaXa;_%+w1>RyY`luVcBMVok0YG| zn!Dl-As}O^njVc@MaQ0B;ItCgY|*2zbZqSXDtTLDqa$x*c(@Pn#TZ62YdI~U*8(K^ zH|@#%S5E}Ce|&Yp{aQG8Zae*X${cvU&!|=-7p3~NoNVCYQTxNF{*5_ZSnbxPfV;=nSXw8`tQt*uIyL*%W#&(?P7=;%;c*XSbv z6DvOuJxBK!J7Z~`i3kbR`l_3b{u1nxjsRunUZ3G{(6ON?CdSnu`L7s5MI&@TNVfz- zCbb>DKhCDpLBzbfHrI0j#MX9jzC@x4w*;*Z%n3Ry(fNGTW`mIwjyHK1eZkRjj09y> zB_2r)If?4jf&!K=hPiRrehifi!FqG&YXA_V(@8i`x$XIu#7aDGrD2d$ ze6KE({!E`LFa%nMupRJuGdtU)SjO;xwQjRE2{3dJH>Yx{1Xk!jvz$vA2AvOPh6W~; zyit>(=pTCmxDMaTmseSpB%*91VHUTeG#wvB;Ym_u`#q`5h{g%ne$TEEzEp2G!CMv{ zQ_1vRrjGnmTIq{(TOO0l((I28hQ*5A>!^-upDX;$G^I^PT<6jQ>|G7pUd`@4`7H~z z8t*C)Y(`oztd%V!EX#CH7FK~t{XuywW6QbSV+S3&?WzV2^KH(;QpRWf5p8z+H6GO) zZnb)iDej<{Y6sXS6}v<0@FO>sJd+jQS7`kG+^;Y)bf9yW6?gs022=)n;yzgm8V@cQbAMtM{o(uteq`y@9QfN z&}9+_LZV<8?K`r_q?f!sf4KPw8Cq3*pN7|Y5UvjRP$<^BMGfELg1Kqytj>ylSK1t2gLSmWw*fGv4bHD19d<#8f2n&GMIJD>w@M&l1|=uaJb&=!AO3!^&;m%2IfSUP^q|BiG-K`FgxR7kpjEG9LB>?={H zHm+tiqYLEWlHf)nO#hyK=Z?z-bX5?UfaFK=Z}J^xUz*pR??s#5bk9f+jwqvecMav{ z)t4LvVMbBMC7Zfk*}dH~9d~b(V+(FTcTU*%Rg$Q;XgHSLSdL-_jDH0ljFUK0Jonw} z14Wfy#qe_J@J!kB6UX#7O~q*<1#>M5pVSR({c?aaW=-T3c>Vs?SBXH*Lr9jq94!T+ zN42r{)-V_}GG~}ya&HPC3Oq>O&r+SF3S@{XSK&EIh*I1 z0hk&8j2Q#~Br-rJ%Y0}kOW_&4Mqw$tGv;ognyKjX?vAY))>il-7ZL6X`i&d@>a5@r zoW)+3*WEJA5Vhi(y%Hf>dOkMrpk&|JDV!1;YHJz~Lc${R^nFI9~ZoMX}90-5FID|iM z-hn}7-8t9CWBDW0iLCa{+Uc&;r!OW-4J?nnqVght9FXzR25>!$!tpjWXv=)ummx2b zqcm^!sUzvGT$brE>CQ~mhea~ShaN(e#l98~Pz+8}ZyoC)>+Ck(JKyZI&pjf3+htqe z88lsLH!YT(lg>3)?a}uYB0|fAq~!}v3Xjb@>>xu(WEBcEU+p-d7Cw-f>*VP;Jd3d*z*h)6N{xsE*@tJZ>RW^Gkk8)=3S`;>Z90Xhqf`L9Z1HovOR^_9EsDOU z&v3(RdM{EVbJ%zYn9fgogurImBxkY5vo2I--Ufsy_lI*!9eC;~gpZOw%i^9?X$(hkN z3jAevf-l1DMA=GTb93&N0q*kTfCA03VkVuchBM{Upoe@5ZM1%)x5ATd-I@;j@_?O2 zQ;qIWZZJ<{3=@y^&bgtpYusH;>6LB-Q;iE`PgCdk|wR*=W+_Px!66 zRP;-=%fZB{)ekq#=sNz1n#wQE4Pu%TjC-?&vFGQACviy5U1RL9aWb_mvg{uC?jW;TJhLZM~?f5 z5)sPSodsPQ)r^@^d@t@LM@=Q9DdAo)HdFtw2TYOIhbEul2 zEsE3Vp8a8hTdsW~r8CiCmAdj+4}&)GT}0;fVJyP-A1C)X6IL#|%xzSji=8}V)vgS| zbze@{I2NECOj!@3PL9)eP2%#nakxJAJX6jMFcWpf_6%T?-D3E^VFV_8TS1*Qw{4;bw!G zh^{m@r)Bmk$>6Ru?|hO8ju*~AAoutf$=qx}_(xw?5%AX~^Dkmr19vcM7flZGrzag2RbeTjY1=0%_X z`~RV!#;nw~g?`zsM?I7dedL4l;erir+@DK%5^!{~VRh2oz$@SQrd!~dm}aSo5uUi< zkbof9CW}TKT_gV?Oq&HdcS8QU$0l+z{^E_tyg3GXhJ6FbPEScJav{rYF1w4Nye)C$WZx->h!p)B}WP}Aqb0eA+wUVVf0oAZe z0ntXRiE1GOhVe=$5-Lp^oQY^CB@Vtp!!a;3Vzss{6z-J_Z^97 zf90l}+ziV6R_1Dz;~cH?_iU*;4+w(n$cIu8CGsyVrgg-r&6}?gys;ziKYYjGsa$4a z6g!ZbFksstp7e8pTWF#tCOyDG0QZT&Wa%el&&z$s3#9@X*(jXJP!?GT6s;%_>ylNpkUB)TQJ8;78 zSV%MXVd3hQ#Y!e2VsE@z-iO^Xw0oa)Gf$UFGQ=S}QK%iMJ`6KDbk#upQrjhmbqd5? zB;81evHZ`@zF~McFlZFMu8Y_FDU&AzB-}|=aAoR{V9lbUb;+0kPO&See*e7-&Hn1p z^KrzHgG|Ber4f$Kuid;JgG=lbcKuJxz+mHxC!Oa^(#eAG%H&htTBr5A?wnSnDir@);IA>$Z%6b0`lGNv;g-Fp68od4dG70@_6v2q zx-}+~@$XLty>YnT=PoSz1O0QZ!%Qz-NeO>1c0pgZQ?5bjpWT_PuEJ5 zC(pgUd-bJ%Gpg!{X5~YYg#(`~Rpp@6s2>W=Av7;-h)K#C+97QJbZpdLaJ~EAys@NL_oe4@A%M607gCoXUTcX|Cr8>&RIm zTvELrV9B?&>4It7)%}2!;#GeOsk?)ng5A;pI?tSHB|{8zV!Cso3!J%gd(4Arpp)n> zz2dzw7_^0=%3RxNW3|2wduJ0C5TuYY-$A%J@u5=Q7|-PX z4B1uHy>_ZzpU;mH?pOj5Zm#af9#%9G{lcwG{;<${d+u{mn<#fBX#?23fP z2_*0W$O-8n(m*?@(N)(q=|UikRX6FSP~BV=8C;07`t5d@OAy8l3Eb2sNBQQ*zeUjh z%^E_+(X@Nd*-Y%TZXU*0p$!(ELqLL0x}LUA6eSzUK#h(yUq@N@F>{EF≠K$As_} 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%0Djig7PqIyzVPuR59W3TJkiKfO&ljkdmv0 z5cAlv0yIehj+2lm&qLzospGXs#|mK4XR6(wu+H5m%>lHo^mZ5>=e7yw;|FYsQiB(w z`-YC@_`D2;k2XukjE3WUgO}Wo4=16DFbC7QM4GPnK-vjqN(ie_cl?^_R zO6YlZzczMS^5$&+TXqB84{@&B0c1?tQMwjFDvOK;1LR<(C-o597f15K0#eH}mn-c0 zvRKx@j1PN+#Gh=>L23G&=b{5Wg?LVrF;Wk)E9Vz4;Y>_e+h#VLY2|9ibeRA&r+L=1 zr2yzvqT8FGtrz!_TUE+aNKABVs2mO z?Rw>go9nqO`Vnl9JOCc5a{B=K+A@7U59iDe)GT8)W898HC5^<_qo|^CPVqtYix>pw z<68*RB@5F9FQ`6*iD^$ccJgs=(A>*lSI9}_M}2ct1KQ9Z>f#a!1LS_q-%ML33%f*- zdAXDdsT)%p2n?^_;1Inn$3+3dQAG^h1|l9YX4hvQq+f^)FmD-8oU~Yt6I*&kw?!-~ zbu`R8n7-mQeLqB>ZvyZt;;uayK&GQdqdNNHA2!J8Pp96O2L=M6f?afMBvib2JBcsb zofkFl0wOYi6bo8bzLnG_cbebZ1)b)ReaBZr{?nUHP0l#0EwHI&wL@Guvq0>X1dG1= zGXo9@;-@V1KjAu7kI3})_P#Bzx5rR()**B`&9QTbQ6nmu)EM#WQ1@83=v)TQ2#D4P z!E*D4{M$WzIs)L;0Wl8)7U6Fc{e})%d{cPtEA&hmft_|j877fWty^MR4qwj7aBTyZ z6*`1|VHl2{a#iwoBywLA>eyO>V^d3j-FJ}NJwcbP0Fp3Z<9a2DTBXv6LbEjiRD|!# zB@{4R&7;JpQ_)A!m`O1&9lcvZBY8*IcT|)M^HomDi|7cE>*W=kQtFv>AT}s(8d3D1 z%bTxDX_-eFi%G3*odg5*fo5=|90=){AkId4>zfpymM>he9XKoJn^$;rKc71kOaTTg z>~$MY!`tgxy}-`Xw%1l+FDG?Su&v`!==FYHb#4-fW7g}+qZR=u3in3ce97}PLH>7ISGQ(m_&)8@~py?r^T?0cN6tPzQS?Wyk@)PQ!qk~1O z7I0j4`;W|J`}xpw$a-DZ_8*o+^H1Wk&Xl`ss3!(iGDtFboh%};t zR1gI&<~asl3~$qX@@%Rz`SdB*qmKclruhyUuohk^6w1ATbL@h!U=u3>cWC&KY9sQG z-o^Xcg+NE5n&JCrZr zqd)%lsv1bj&(d+y!F9-Z!@yX~Q)PO2OfcE`BFa zFnvWUG^CZGMq1Bht_`x9afi)(XP-< zb$DW*${_V}6Yb55zw>Y=@``cF8cD$?#|%!NEKWWV519a=H7;q?O9pJ+_R5H?bGRG? z>4N1Hy(q!^2FCBZGc)Qz@5Uf`Y)12}Xf=>U%2@S8ZBwhc_aB5P@@28i@vnl2O$_mc z`Jsu476aJ_qNm;1?s>^TA@^k5s`<6Gz)^y<6CstiQ9l91e`}-ug91!HykX?EI>xiav4z9Q$eu%^9st-LQ`AB7 zigFiv9~ljbYntKQdb&7S=NFO(J}&!814Vn&p`0Sw)g~LRWsnSY1#+IbW0gfpjBoVV82jO`&fLacooyz3t z1iSfri^QpunPqoMEdFa|XPK`;J>^d~m}mu&!;=K0ay>XxpbP-7IYT<9STUP{Varc_ zeym`ai8TiSG>^n+ar*&3s`R<5>z9_`#)%VLgx$Yxa79?lIp=H^+my71LpQXq$n!f; zeDa(a7#NN6(tTUhyF>{VDT5E13d0j;Td^g4@G0AIrKSo8TU*)cxU3ZbyW@UDHeW$B8*gJoMxOJ`psWYO07s-@Ke{?A5T7EW?=CAB+6d0eU1Ap9>lAcFs#%fJBUuK)m%b1YIXGjt{2exLF#QRH{9CF%SD-|xnyM2 za&mH5n1J+gzkG|)*;WC}VEu1GR5qmN+&|REbN^L0M^_?i7@9IJT7-~v2Fti?p--<5 zfn3{UcyY`~T?yIbiciP`2Md9EU4^{16OwwW!KHH}ud4)v@$2ROMF%fO2up?JyEJzf zNpYinGhW)R`lCpS@0 z$T#-Np+Xkpzc|s0YMoB<6BYh;Y?>+fN2bU0xvTF%i`)%jZyP5pU{$(g#wW@r%pa$F4(phnJ_C~b=Ja=OY$H5LyNwsbF{X^R44SN z&&q}sPW5$4X}Eignm}4lguK!R(;h7?EtK^ALLQ?PcE@MQmAxozC>XBZqNa8;oZI1= zor}?nTomLDCE+b^UXsWG?5hCu2saoV7iX5V(lyG?186S*XH*C3PVl(1PF3m&{74_+C*ZRiB+>~{#*%s`2*8lLt{Q2wvQ2mp-k1`(z zhlX};>b_3@f>`=EhcEoOkD$Ja87Fu-+t||=mg|rX38om{xUg^-3p5diLstM zc-%_T7E~fAjHf)rzJEllBDJ+?Z+Gmm0|X`Oasa~xnWOK{JT*~x{Gr{~Eg3VX1MC1o zl3>zV^@PFgfUl#ohhDHh7KW0J1b~>EGn1}3$Fem*!XA;YQ>kTnl3ORaIYykfkwGC< zyGY~Zitn;IZE<2q;U&H2_0A`Gs{h62LSd2hl&+GRnl)My^P4LOf@C+V7aLf_^i$3H z^G`Fp}&{WOUpb@VhHv_)V&L9dCDbJuFB~w$%BFLLF~tsavh>sGv~Ks;Q5xq7C45Ojh~_tUY|jzK{2bq-k2c~vM@sG5_VOO$)5@?KrpTDrT_W0Dr3l~g-(_w!QW~N!L4~tclHPLTi z?vr2ppEiQiEZ0n}S60lF^)#R7zeM!=QRB#0OBlfura~WbGR})7STJtE8Lhc3?uj;0 z_gNZjnFqtEsRSA&YX9J2ZPAM1Q;IBT6)1jLyq#FD0FeNM0bS)MuiiU=`NFK0j6e$2 zr>&>5!)n8u8Do`>_Bba5RwtrWR`gg$nj{~wto;t0^-aj*I{8N|q z&kgHOjnZGgTPicjt^>AT2?*~IUzaNQUH1H65Ax^Hr{7#*`Z{!R?PkTr-vOWg`Ll~& zJqL^~ljZ{d+UWd0oP8U2B6lnfm;UkN_ub{!h(Bj_{}0DHxft)|Om=R6rJB0bBe0P|T7f5(JZyHvAgZ=TCw+bBloR(7`32Rqh`ze$+> zJkX!7>eg-mD(h}<`mhK7bxicgLI4+4ZHt<;PR`SY7AmQ?_!KgYmBZ16XpvW2=c z@^#Qm)g!#cMw%caaD8^?aczt_b+3``yEu-#-yU^Ve1tXx1DrXn&S6YUU_1nNV$+a_(++W$fcomDl0F zU*v4u()b9GR#ouxl+%C*^-;9!NvV5@>Lt`h`ls^oVGtmpf5`H%6#%jZ_*>~l@%#oe zyd&F7@*L0&V0RR3OYj8zs?zMcc*DhuL+t#wV`~i>$cwD)(LK@&i67NrTDK&kt;1gD zx@RNvA^=gWzj8ptEe*fylGl>+373gr#HxSmE$=CZqfn>R0?w~NUh(y)9KZ(e z`0gjQthwJh8h?wGI4~Vur3@@o-}t(_Ua=8IzU?gZ9?)FAJr->dc{nCGaBw?2JC{G% zQqdvHVKIXHu!;QY(~wff9HrB)XA@0K94(i1=(DAq35w>G!j!WH2iLI zELddXr6mU!Jf&)lfN0!X{myLkBdrCJ0?W?H3HLfUM830BHYY!!kF@h5n}DeF=J61d zw%+t9C0AE;qRYGuwWQ(u7uTp=767*TfwazDJxJ~|HtkXiVO=Gq76F@XCTc0yT)=zi z<62kf5J}lf1H$se`rw##Gn*qHFxLaYU~vx>niO}ICmu;82_0Ebi`s;aQIIo8GIdFB zMD|cp(DOJ?9g>tCWw5W*9?OhWnSJhYA2EU|)*hXWCktDt)#E+hU#Tpz$B+TF-fR;d zvOJ+-2n?15UVLF$jE|fZMiv)8JUa5~#H34@!;_AK7J*MtIZIA1lZLPYzO20=e%RK^ zaytSzOU))ERITJP7GY6bP(@(Rn#jNTnA&~xO2sxB$9lJWBW3TTdELSdDw~>S1>F== z)^-2x0;_Zi1`MdRtg6;1sf8`dB@g=}ihz+O$DL-8LAQmEe(9i?{B6+h$P`TFd{nW) z=Pw)Xnaiz_xn>tn><1_9JXXP{I@gu{yLqoWaG7L&bSw#7$=XuycN0&zVd7goVQOY! zGq@Fb9utsLpCy(lR4TT=Nh=>5790_zG4@JIxlD}Cvr)9>Uu(Y&%b8pCOE^pup(mSR zY^B7sQemv6w_rM(JpEJFc=<$MW^ky`MzmYCBcmQ;oWq#I#o&uO3wpbF3qUNnW?Ck) zFlC$c?~(B&_g)H+j6`F^Bxe*E2NA(fjqel>Q7b%rw)BowojgW zl)k<+mcqEcXHHTbQdcl7r}H4c1}gxo^-K~nZVv66Tk<*{5|@dNB4#LuQnnv|EB{t` zd|1bGAv-@`^=Q>^swFo>`Yz%6HSso_brp~JLL0a1l_(K3hWw0MsV5P zA#VX}aII9=M6uq*3XC4lzkFquBxoVNPdHD7H63j>edR4PL+#hU0lZG$w7b_l}0-SQXPKfHiy*Re}{v$}E!yrs+%)M;oyNG(!Ts zY5TN+2%YK_h~E2Oc0jV)7h>ymeLmjj+|YOvNfo7JmMj>GsL9tA&f?Yv}zic-j1SHoeDf+*u!qA&5ft%8Is}dD$r+bj7=RV zOYa%x7n;y3e)g@tcAY$IEtg`slXSbcUPk;Z*u|y7eXRi_e?>E+RlsSf1lscHQ6MYR z-R>pxs3;1%mIf+-5)2V&+oUE9VXONuF952n>0+z!sHpTJ5YOG$pB=oPsHg;Al3i!e zH13odo!MR*JE2IfPR8=ju-p+<1b$}M2ERiLAfPTffWnAF$7Nt(eH^7mdnn#EGO;s` zal}LQ_)3AliRN`Hh)GUGdByp-6Wm)XG}66lj~a<}@Ey&eU_^~bQRbp-X9nvtA`Kmf zwR8xIj3EKQsb-!NYb}<I)uG(dmQJz@c zzvT7&Lkncd2QUv}y8-6Gj)+I`A*B3Q^1Zqirf%m0rbUV6dpJm$XXX7;Ze8m{48B?5 zwV(K2xtC%XnPPzY{ilbGoDB*x9hADK`x)q|YF?QouW=VQ z99hPN53{!z5F;?$C9kVDX}%E}l0)Ts>y-HXOAZTH@X16noi zr~dqd?$sd;NZ_s-a+rQL+G^Rm(axqjxUdZc7HZ0*y|(t`G+(5y%hqMUUJc-wsm9qQ zAMEiRvwM1Wa=$M-#FJGlk0OHg8IlgoC#x##)>!ksS*o)|CSP@2+Qv>)hDZVsR(K-b zHKT0GGjn{qFClpPlXcCJat-9PhDnm66Jn|h;G}55CtvmPtOx1=Ov{9*BnjuNQ}Blq9=HVY5TY2oQ8-=I8 z?v9V{?!N0X8`hL-e0T_?k)&sA+u%^=U9xkv_NpoFW}R(Fb|tt_^S?|JS_gvb1qF&0 zQy&~Y*K=Pas#vMf(>mO4O<~wa1!+=O^Hy(OI$=%>Y_+5K-cR<8TxYv^-vDi}G%9q? z9roaVAAk6iQmpo*NIx!sj(xHh`unbA+K}Qx;ALlk15I`^^snJWMe>Tj`c%~%XWM3K zdLRG{{N?XHH4QQuq+#w}_`)wA%_H@k_`FM7>F531;OWr$*dMfr&qau$fRR6< z8e)_x(1xvO3p!lfD33fxEnu1Eb~gqX^*dy6>j3;lR(pH&(=xAYUgx|xNv4L$xm<)J zAWhRauPXi()dgxBPI-K?E;s|C<4p;-0wKHoa23b|AlPeai>w5qef!jGYyBEe0}+ei zu8kb?HZ7y*rkn%{`e&tHZW%6|%)Im~SMli*%n}N1E;6;x2p{MTg9oB|t8UNDXgLG@ zL^(jg=XYiN%151vkRKs*oJWl=hlpzoO6`oB0sr(^$+~K9MHo0EvgF6#ul{TPr&@c| zA%`}P1gd&{E=|+;IGxLOTxM=*W{S%s&oIb&q1{kTat#V^ha+n&2DDM(Vc!XpH-T1h zDBW#K{E=1d3@_3H$hD6uG)S6~5Wir)*vrZ=vw4V371H_i*&vAYWuyO6VCOyKXu)c{ z+_9$)@e`rTiGrBo#60!WwI~y8!@ez=$#_xJ?_FBNfM=eeiq>K=BY0GR-Bb;73sd$uYKd zIpm3w{W&6e!z*ib$@q+kA2XO%fnv)=%8(;wv-emU=503t%yt10e6bGo4$XXgsP{OW ziv;{gsiLCTv3)YmXuz@bt~GUC?rAJ_!hH|pu_OBYAVu*jT@0osA9|WPtI+|SN9iCi z%m`KQj`r$Jv)7#e)Rs5&%|F7?J|U*4NT6b7J4LJhVP=x>a5J8QV(t=~VTeQ&LtgCE!meOYedIp$&k#HKR+#5&M3O zrOnYD2_JS#Ow`aN@A4lumA@9G0$R*GWI8(#^;{w3u$@buhlarl^lM;3XG-bFOs2C3 zvN)3@*tIeNwn_ok65P@zamTnjj!Zd0(j{OB7&Hy2%fjdGqee!$0E z{A?UAVP8E3_i2b9q-5p~oBNH8dw1g*vO`8Y$6uR$pYk!_xk8Df_Wp#V2GS)?#w~M* zHl6#B?ZbWuxQ#OEyV-H+W9HS&e01r^6ntQye>79eQNf!l_3Ka<^}{p?`lC`OFQ_b} zC&g8=@|Q#a}5PLbXPE z(32eMkG+O-e9v5`cW~w~Eu*M$fv#85HRp#MLRe_Cax%lBY*QF~HRW`I zxl)_(e4Vxv+U{!5CqW}#8a2jCkX28bpkS%llV>;#U6xB{vs`y zZ$fsE1ib1hPzF{V3I^qf$Z6|U=2v&7+=g;n+o|*QIS^05?~=vZ%S)}?7Rtz5e>CVd z!)6-Wm`bMl`x$=VaD<(=9=h;>o#l>#=-#;26XYq0F(k|c#X#h76D>71_9@o01|*%UU|4_s zge`9z3be(UkckLrb;R2G?C!oI58u?dp9Ix)39edi4Qwn{lhH}-L<(aQz?1?To?W5_ zS!rpm$C#zg&0^yq68QqtSa~Hi%}X`zvG(5DGu^+t{*r< z6yNXH^0lutrKU2KrEiJSvp}_RQZ|E@cYj9~+4Qh(tEZvK(1r4sgn;R$i-1@l28@b+ z7Py;5`pn-Wob_MsIp0Vr$5ux;v-9kXi_MpUwuQj?xdsGR-%K*pwtbc|5DcSG)_K!u zd4j41O*94C-hRxr+D7-xE>#iINl+zQ?g+c3p%B}l8&cz$pDKhrOG69ioH*MRUA6yK zy8voxQO>f7zg-{p@dsw5-95T?#XAi-VwOA2a{&o4dL|f{!Xpk(3hmtEdL`TG$2dVm0J6zm!3aKeaEF)Nk!b?<#-B07dK*Z z#ELTZU;*GFJ%Fz$TV9HKFo8#^}0M zfUUK9_T!~YlB*5}6V|``t!Vq`&6mGT>7+U&Y*~AYweA;dQNLbSf_A^FCffd zwKhh584wBbkdUIm-g?7qlg-l3kc?}<+RV%=)fTH2slf!yzl&DAB&M97=&9d|8<>oCNQc61-K3-hq#L#|Ypt!L?6e|Qp{$^qh!8+#3rl`=09dl& zFZQN`pr~x{2c?#lLGh0-UML(q&TaYMJLA*m#3Q`}w$|P4AN!%t3J3l#@ngou zXsLBF%%vF@IUgfDX5EEN7km}RY66XhMXkP3JfRKBDp~mmb!xLpO81%%!iGN-5Bn~( z2FBNhFvFZT=2eOu7M%y-f#Na@CnB0)@)7Kim-o2y6ki_C0XAmG#qhm=gzxLu?KwB7 zs9=t6tn5t`StiyykSQRjtjzec<;o-}f={}hVs$`@b-=upFm&^> zt#vP50L1})M@b$9SG2aHbyOR&ywyB;e~oT$dCdA-dt$op27Y_6&X`j?6+|2(wcc#7 zzDK18QV-{1f*+zCJKDtw^Hvkj<5uj7#)bsN2$e6{{?}sUUHAQ5kSX6`_P2j4bN^dC z8vQH_qlJ^m1ZGjya=8gP%gMjWsHxap~Hk0b$*ny zr*uzD0+m);G&<_>w0 zWPj&{0JO3zh9v8)!v$?Kx_~!|5w5IBdKzArCYTFf(Jj#-iyFwehg2MF*I~Q7mE7~} z1mnd9aKiI4qN=Kib2FwDS58~adlN>*M`|okF6MMwLL%H+mL-nT=?L&p)cbQ#{jeGc zpeNF?@wo-Ht{q={>8zYp~P&*VSQSSHS6FfFyoUY+pn zSccTI{I%e?qMGBQ?vaxAl90`EixKsf4om6JBgPa5hS6_cL8AqL#k2qPODY}r?4C5= zGgFlPNqoHTPuvkxOK z7<1&2TH}YtYVB<sx}lK~?`_rt~qpH)ou;*V#E&5ur%G~EPl zkf+IS?QGOa4Xq{(47qVR$@j~A^0_sw0!wB9U;fVZ-RoWvm0q5eg>5D&F3RsN)85KV zS#}k!;k;|HKFd*L8rC-xonReG>~*N^9}*Z-9p^TO^m6%f;hK2(nENVpr>)+X*l070 zUtRYp?}`4bJ^3)KmJP$^UAl1CD zPfM9EFp6m9G}?Dg2#WDY?Ig|c?Ir{NP`@_UZ+q4VC(>yFB2X`$DvpkhwOZ@-`l8?C z<1T(mWu;*p3L09tGsC8u$P%ODnO?P1>m1B8Wxtao;5>Q8|NZ-7tM6!>H6V0x&>u*0 z9yi`vY*o{oR_jY;EjwL$J&FIZNmwuS$D^)6D~Q*A_t)^);ReZ)58~4c)?RMvz~ISG zlPz1IXQUDEXQH4#WpcjWW$f!FHI*XhOrC>HzxV00MiD%M!;u^qSM6T-n8dLsXcJMf z-pm}L^y<|^`w7T?UfCp@y-c#@Fc!1X#eQrBd;lHi31*q<4(gkxPUp^@Z;d#1muDzH zW&lWZB4?Hu2ur@kA_{*8|Ni6!{Ogs^^(S=-QP)>X%UOT%W}ofb`dz%pvyoL4Zf<>3 z&^=LiqaS&FEJdK=vg~V=w7ft=d&|?u6H*(pByI)YN9QBYrnJ9AIv16U;an|j9%d!F z4L#~L!JlI0iV>?_rUXd!wCwC_cn5%@KKl|@|++O0} zQxM)Ipp#3i1#9g+rhSM35?(`jINA2znBFnoX`tR$Eyg7IFh)B;`r^flVcMFh-SlNs zW?Mql(1{mQUuV<~9-YkL;Z?96_#*td%iMr*MAKSTHl}U7g5)I7nZd)@wojT4%2`!O(9YjbH7G@fE+)!sN=`o2jmsaBe0^qlA-$q@lq1Na{ z$RYq~@2C#Aj+*(-rN`(+1oGAtkMM7Q0LFxSKLU}Dh{w0^i*fZ`nQ`PMxUsSn_to!o zQ51N{%zk}M25hJcLQHXVu&fuW(%93}9zQR`INxI#E^cPUr_yBm8`Q0C!kMIgb_}-n z$MKy>g0_Cc2c{DyVPQvdwmUNqio166qH-&DfY+gGlQ*LZs7GA3aQ+jIj<-HLl` zX3rSyHH6p7=(Un4vxsv*UWQ-SeDa#h2G zMAiN25f+C{xA97zMMy2WnrddfX?O#AHvUmXtN0Z$jV26s%goHINQ7C=bra7~?V5DE zgJ_O!xfD=O1My)hcGGpIdtmwD5tZ~kE3W~rV~|JM$_Nh-4EX76w7By!xA=4pk1{aK z!;eJp5|cAThKIlGiEF!d{dzilh-J%}7#gYr+O})s5os<;2L*lXk~t0sU@CV|2DO2M zx2~~q#_Sw@WKJum(v$O}_1e+Jlzgs{XSb&E0AR&%C|^hY*%Kx}rEo1JR6llC`1-hG zWXwyNGZzjn{4pGEpYQTzV7d3-_P;;>Sf|9&Jvlkm7g+;%+a2yW96FKA1maAqjvtf= z*O1G3T|lC;*RrStGH&W6dUU>PL@$>GJ0@dcIrn(6l7;y%HUV~#$gqr2g)J%Zx$$%D zBJZ!S&NY7dH|d;S86Zih)?#QovR{pryqFm_yIuf zR0Ig3f+mlJmY)#^^BiF%qONxAuw0vlT$N4DBLZ+VxNZJVs^P!(UO)r3q?1}*U7MK= zbtBmo_hj@M*L?Rsu&}gXsQ?*;!3%#CK7c?TU98uQKK~p1T%YYb)21N_FV+5mdIx+e zx;$B1+c3!;d|$X;DBlSmj^{cMjt-Qlw~oKZBip_MxZJzBbK)=lS0VoIw94r$BIN+k zY?AY&Qv%YrTG#E+(mx=;3644UPk-@K3GvxxJ2}4FZTv5@Onu}o0OXMXz`~OMHWSP0 z73ReU)3X#8E|7+L9ujCziPymw;=UU8rnQ8}kIu|K`ri5XEz93Ngm{qmXN^qN-tKND zg5s}-9X{KDa;oC%!&<=3sk=(n!XmM1=O}lcxZC${SNiYgURHu~)vU?Q0RH!X`i;N- z^DT8storBN!zOTPuJhx6I?4R`hX0FK#Tutm2n1I%Q&ZE-F$3-Y-%r-UJl#D~-Ms3! zE@`uT<3DFO)$v^PGG}OFIE_JJVfAfR;cvB$lvc)3RJ9XaQ!BgzuGTbtVEL{0=EjCN zk*WPj2uFS{1>+(MpWayQ7T>f{!)DbbSQ+x+_B@oPdcxq0k)e6ox3{JF_K+7*xx+IK zmu+^N`;Q8Bo#grouXJzodB$)El{nhX#rX>qz=sRVN#Vbx9Q@CD>jt0&ZzNe6TsY`I zzw@rMrHm~RhOR3ooz}a0zXmW_Yv-SM3RwTOw&SWET6&BbFXZJ8zyi*o4>Q61W0mQKl)pF$jr}n%)yG7GuyR3DLf8M92NT}F7uR&Xii8y zFB$&eRULoDqr;>VQK4r|5{vk77fvWyw@Se-5D{FHS=$~OK71vI z%bnn)m6Q)O%*r*}sjgM=l!E)wA%^QmaQ1UUjFvG9GD`4m-qsv!ZjE?Jm;s}zsm_OA zS)c!TPXGF9^~7D*n_{kdXH90zjc?NkcFwFf@KV+d3O8>49@9@fv8FkbkvnV^*&-tT z{28Wb8X-1*$is$rw-v2>U%YtX%rWMMtm^XW>`W9h>4HVGHLPsZ_z7;b3wE`;8+Tr- z*q87Egv)tEUpDcC%|&~y6c+ZsEY>EqviaG?B^ytw9Y21&=`z zPO=`DBno#(QGJzkcC=;DY>lDNWwX4!_tC+B;X%8Cuz3_S0Q#LrG$Rz2vsY z>iP0z#`W#qEhXRUhNImNVbx{w;_Y5vXQPCg3pSrkIJ8@~bSj%n74Kf)K*CFM-d7h^ zKal3<{W{`Q%5!6&IC&GqnJ2Z*pMNunjVdLA+cM*a!%NLwB^mZ#`9S}C)BLxuQWtmo z%7bCt;|g%%&(?J&WwK8l1MPj71tg=Y6Uk6E`|CPdiXl}Ci;SHf2-g~uFa&!B;{}>J_~79M-B+l? zDOn?kSvRreKB~C|zz%%`e2W;Nl~!1yLtvGM*>?(Ku2E4_n#Op0oDFB5`}&|OqiS6~ z<&xegEj=$uv&JRCN9Y!sxnK2eU z3sE+HnfBZ{IrG{uL?a0=XV2$EDWd$!l#x1~fhQ(dIU=b10!DQEiy)jF)>QuTF`88Q zLpU}=7^eM%D}lUUDK1-JP=-UfllG=bj^37g9(u~$p3gbK%_S=b_KEom%h-5Zn8!?R zfa&%c-nn{*SY;Te5002HNIFhL7ropng+PhkCgSviM%{`+Qu?skgBydHfgo1#BFm4b|v)pRP^FKykW9vRE!$ z?wX)=t)?B+BIwcw>$s6unMk2Dgg1 zvVnStS&(@d8dUS@wIZLi0lno?k>lF=Y|$rdm*>YF7^;)s$6ios!*YEF=t*m4{!)|4 z>?!UKE|HKV^7|5-w3x`a`Jp<`{O@q~zaOVeWu~A@dYJ*qGk-qp?$3!Pr!+W@pFL%v z_Y<0*vt$*@D{|5ceoPyGXQ!QRc4E3rbE=nPN+*;{d~#y_@hUEuXKuYj3?`7_wKLtB zTy)-Lcj=6oInH5)ZC_>8cqE^bx`z)^W7neZ&tH2mHMTuOL2Nj;Y@YJnRhKcop#2MZ z+pLDherw{@Z0RxIyddEhpNG(|pOLiJ*vqFWE-3BV1;}fRz}3ur?P;Jvs;KBpa!}-s zGX&N~((dAp>#g%aPO$A3yIKbe@v;kPB~Lvwrxw2+|MvAd8_ay3aL|5QKuV&eS}B?a zSNh>=(bT!w{F@P+As#l}mu`&s-s?~ET#2)tN=UIhV>nTpIwN&mbRWZcY?1}ujJXqFZ zb=}o%Nb|w|V7gpl_kh60bD6?}P`51bqb29S>K6f~8a=okwUFXQAk4GQiB#}~;Bl%! z=AOG`AvTq}Ys;hN-i@-pbNEeIoG8ovfQpEMf{1`L=^cUvM7q*@?_FA?gCbaH(mNs&1QL3O5D=yJ5(p*q9ujKk z$+yof@1FCH@80|UM}9jY$=WM(jXCC+V;(it=EyfWgE(7-N#s~Szd`S~r(G05j&x53 z>)&UL^QdWE_C#8|uJ>N5DqlF`8yXttURcrarY%eQ2xdt@a`ewgI+-0mq;Wk6D)xRD zsE~;%80TX5|F{?@&7WM_fwj=Poxf6sSp!2ul8PtQTJ5~^7@roGEoa$0wh4W0hd&&G zM_4Zfqig!6vBO|EGj+w<(V7#Up*Z1dQ%h@w8@%qBn9K1%s^#~v_he1CsQ=iu{=bp? zpW>)`UdWNq0Vsdx@D|g*B5i0)VzU`Y;*Lhz^T^xyq2GG$&@n1U;&s0dJ@4F+(b&3w zxo>ylLuP3*HkpyZwJ`0~Q=gO}Gg?Hvn@*Gmu3=Ey;25=Wl2NMX;hdt{qZ}(}k_hv{ zJka{N)>5-G-LPMKT1|0U+iLnmZ8X30$yJ+&$_Z83S=~mH+inO9?;pC2{ajWL|yIEco2_cTiOKu-)) zRkK+SJU{0&xXESn=tQ|730ENNDbW@Ey;<60)BFvH9_<~!**X(-KrPKRt&JS=cj_Os zeEo*D;kz*xWJm8?0mjO$X2qkQg&r;2XdAN|OeFC52YfeOPfxtQX;sOJ&~4fsawVE% z?pp~Gru|QVmCHI=J@*o6$BxqG9EQ-(>SA}Pb0jZVp9?jmw6EGnH~C50#Iz>KRg6>k zuOUeDY-~DWDO#|=A@w?<7irMZ$SNC1b<#y)Iu)+y+Hcl5}2pscT6<0I2Tdt!g zbg|CINE_6bP`(D8w9kXm(mXc!ce7*WG2RF>L5|*nt5wt5FOL_7&UW$)T8c934mLM; zu6mmKGz3)E9P6i1@a~I-R#?&{X|{@kwL835Y{s9wY1#nI)CGLgx>*FNQ)}9tcO86~ z5Z-j%nJYe>6Hi@>IA7qJiPo^CJ;-YJWKyvnTo!U_)V+1mGeYQV%Hw!f^{PQ!9=ufR zRc8?ZsesoPs0CRTYUzkp8nhFJhe&sb5BjUQ^Uk)BFOan-gsN7`k+rUDHzq!g+)-HG zPlacZzE3yOCTt1|B)|Z^QeP53*mpQ|_=)DOGq*2~#4>OOi|&rrRCenT;lpXdf*h*M zO>0xGyDSA(oml1UfzjmN3M>JN;T0QQS1osaug_T%e)*KDeT8 z6h_e@`)a}ceav3Cpr@KnIUiu-vO*3@I;rJlyR7;d22(?u?f8`Tg3fYsay&XQ-2unZ zK6!aLsKVL269);$K3P4b$Kh^EE%+qePLn#5dCkT-SXOkruyCkJ&%K4Q`qE{Nit@5oxcz4g_ijs#MuD@ww$k7+Kt)LrQR963J2Z@c# z;9`Sr<5?nl&FnW!O$58|S2G0T;H$#a; z_bvZ-Q@bI)1>=7a2z}O}H#vUnukx`i9b_}E(U}iA)uYM4BGzBj-iWoN>E1fV=b?Z= z(7vzsEJ%Ka_eD?nMbHo(IYV*jpCTADMWOwsX6H;L_UX|G+V8z9V{(|hhH!7#ldyc%w?k0(-B;SJMh<(Z_C!XB<7*!5 zYuj%3UT9n0$@~`?);qFD{+S6*!=p9*v~YOPj$f8D?^f7Vk%tfqjt1C-7GDf(k2(;> z15FIHiPF_6U%lvdqZ7?Je)7Gz%b-5cQulGqx~{NioP11)T9MwSP-sDxp^st0tEVT? z_3qzl%GKWTlrAynMRclvd>v$Zg~qT}Xx`FZ(R>apUAcQ>%=; z!UInKh+I+Zicg7ilAZXqbZ*PjgYwPJllOEtUSd<&)FHs|LD{_wwrJ_0kX15Ve<~89 zTOhLv>wEPzkkq9=ON94%&82j)p|z3+cwNnrzAw`kGF_C;wAc&GX8XNoEJ&g2W>We* z@eT_7V4hCtMX0S>$ESCz&+MjySw*H!4ho23{(;yjl_f~JtB)xlwyzN1{x9khe^1Pt zx#%wryU8O57^wdRd;n{^s1O3ELH8xMSj$at?boW!RU+80k-|b}#Gizl@rTkoN;>eJ zm4lB|(XT!+dabLaOUfvio|TR;)^~?>HEm-atYzO~7w%JvL#^CP-!i}fz*;O>`B7ay zrLOg>cLBr?x7M<+aq*`U^u+v@&9aR6EI2~OS((T{{7oFS;=UI;3euIT z+gLt1Y6Ty)$ADl{BChU@&a0H!d;;gn+C+JhLIbRz*V9cjA?XUkX?=uUTL+TV8_7zk=DsFh)mBZzqhHmoBMOBrtY!~q_1U?N zReZJ*y80$U(yIZ)>6@2DX?v6yg{;RPK*)uVj$i|a!M@$YLz#r6r*6-6q@6w#Ww?w+a4-I3k=ukGR6aM+ zT+^a}<_zt6svX>v;4aEH@vqv9md34*N}T_%G0N5pDt$9BG>0E3OZ@9p2oND*j4{a4 zW5?l&;~vwwN`4AWm7v=y{C1!{!3}fzbS1THXkeb&9W`3yS3eY%f+nvjW=UopjdIy} zRD8g2M5`m(9gMuz?dkN<2H$b5&PJKYcHY_)tTTPwg=tZ@U#Z^}lCRM8`Gz^m)Y09C z^{a03r{n#D*33$3YFq~K9=kRS=s|>lPA5s#)8w%STDOZ(VHsauYuiv&5&ra0-K*84Dd`v=lk+8-K4Zc$Pc1FWQ#1 zO-Hb2n&svO>@@ieJqMC)%1wWC((wc z)>KVv-CUnbSA1r?`2M6nM7p2l&R9nBgOc>;1NDKTmU4k!AdXb@$}P*PVxN_dQ3^kQV69YfWFA z+ehp5sETNPNgk0#aBzfIWtEct*A-k&w64ZwgP2so%92YrQf*k8+7A-WHJuZY)oXaG z7(V&2@eh#w-_w@vNQy9TAD<6Fo+5t^o5dl7v}2;bLygwUA~Vge#&WD$ZGa`>KrvB` z@J4UfI#^*?F#DNHh4>E<3HGiuPGP|zvK|?PbGF$auhsEMcwzLBxrsF7=hKc&$a+!} zB~SWNr%r^mnL%!qcN9fvU<+B(>(Ofv~EN6fljovLi&lP63)uEsp%X_GQkubcmUxFKIJ=#sEX)^FE3%7=ZP ztQ%L;YAVGc#%{XaD8~;VC$3Koe zhXDc7 z<0yT%!oT@Zdr$&jOV~VS3w@QYtKRyRa&v3RgwevDoi{l#BifX=5k9?fD(fj%F>L8q zHunCe(0vrsA-8x-!%n#F;Paf|VRx$+RpJ6EE+8$=BDGrycXD0dCHiNhEN*`p(#gSD z-;Vc{V#3 zrO=!pQCH7k#mhmUd-|$ST%N?i=h0F9g`<-WIJ~BN@O>G_mW~T`iHv^GRA`CIWVNzd zlpQEjgiBEAX%zGDo&DV1Z{$(uFeM~y5( zEm@=fa7020)2=e((o%08Xn_PKQti{>N;eK56!-5arE43u1RK}r#{#jbvK?QZm zKK?<0??2wx2lUTxXtCW__fJ5Sj3l{a>J~7JWoE$0Rmr6Os z_k&piOYbF^J@0(hX~OuF13_~4f**^F&$k~O{&JrCII?B2gHl?2SD|_QP;_ zt>b*jNoD-4IJ~W!H^}Y@|MjaTk19>N#SScEvLa3~!NI&{wI}K;`@zJ6;ViH@&wqW} zSU&xR$irWG69`ulbYY^yB6RXw+}xXAkB9-DFbq>b4J(i{tOHx+T>ri~dRilnwQH{6fh8e#! zt#7pL)0$+%UGMqvL4wtE^9$zOck#M-SJu$^qKPD$4>Yub?Q4~72+LxlU4^m8-cls#Sy_j6Q8{Aa?gMV^ z@P^mMp>30adW>dONMHk^3yy}&-)SMY& zN~f_g4q3uBq6%R4~a&`{g7zd5p1gH zL#%jza$inM6Rt6VXSet4hI3)??Lvnn@fy9Z9Bz#e&6xeXkAB7D*H>?Z9`EolF143n z>CZ0p3bzlJS_fFCB%}!}<7RlgvU1Bv;d3bucLySx2QStZ1!P99n?{Z9Yu491D{rHX z2Nger1V+2`@(pQk937PemMO`~&Cs88e=Yp>IPS!k^joiYlxC?ziEQ4bbg3Z&=A@+X>qqW` zj5p4ZHQ2;u9>6gqXHb?_$HYZCQ#H~%YdcUF-ewVNZW-wsx+bQpI!h3 z4vCyeEaeRuVCuqvwYW!D>E@VJkAKvva(%N;f?ZgLmN8K}Dwq+}h{NVc$tL=o)ArSR zT~a69)`;tbwm#?aj+@lj*vh4C9JU%1tesZSJbItyx?dl_%@@#5m#D2Yw1u@6i_R4X zr#?qbavXl$w4qC&5@af2j7Ph;Zt7cp_woTUw4bIj^C#oyw$*D@-zd6azQu0zQ8DvM z&xdi^Hbre#l{;_fsoiF_RdKX-dZ;gr9NN;4B;x&Z#gP-OIJphy_l!0=|McJ{&Z;uXsJy;?tba zkFf63$&n4au9M*4;dLapS&7_fV`Pfp)3}p-<#$}N`dXTNOXNRwKdbaB_K(VK(Z}E5 zl+;q}$QqS~`QnSG*_Yn3#|is}rE;nnGNuD)G_?v2tLv4bB{3s_U;i6xt3Qc-LxmsR zf#&8udHf_W_~xFf#LK>aN&|tXg=%qKzV0~0uZR*!*qhmn=yGFNQ7NMkb*LZ}F{Ieo zWuS>o*%IKn2$}4`A*6djS>bTz#+S9HzNm93gAwz$fIWgOHmLKHM>a*LHHW;^35v>a zWQibYP>v2OB-Aa(YNv;!1v=lRb1k+T36bFGh(mweQjMl4k=^UOqWkvSG=x&uNbj&4 zlyyD`n=1L-PdFL7JF0TNd*U^tuiq$Z{&51{spCEuhjF=P?$UB+AiFS{4s%plaFyOR ztdW#Z6slPHsaI|+0zGRZ!_#Ae+nekTdNx)TfirY zN}iLR*2}D#pX|96Gt*96u*Br;rWW zK$>7e8;A?GFSAmwbN~eW%68iGPHeIz&8U?o)K(a+vnXWM%Y8x7 zd26=_o0M7xuGY4Zr=!{+o+1~|Vw3iQ%{|YnOJaajpOi?Bm@hKe5|Q`80h3 ztYzEfXK=OUmG`=qM`ckZFzgcg(!XZA{@dUN zcuMzNUL8iEd{ZdR?Am&z675oJN;;$h)Wv43gSl~}?Z3}90G{=V41?&8pczE;H+1bC zs;$!e<}2p=h8h37sGTOnK0m)TNEioctuWHd9<@62s1coFF2Nz6Z_rlQ6S561QAt;C zh4%$=RMjW>pv*>jKXFu!@C%k3DHNkkRbIM$TpAzid0Dv`TYw!IL9!Nb+)20=7=ZPY zHQeXv4J#H>o#k!D9UmO;O{m_tFjI&xD5mEojn9pCDmG==yTm*`h;l$Vjl$S;`aH}a z=#%-h>vTUTKb?D&A>A9HnH}$_m8g!}90b{os<~)77JBBTUbg5GJYRwFMDEJ!PxGG9 z-zJzx3D9KfQFi|o_nbR!D;sQd7k_4x7evE2xx?OqTyp5L!2|^Bu3aWLzL69iziIk z2pdFP0xInW+qi?TIpzK~&u%k0zV1(zJgYAZ&O5?kp)3N4ok)IThqwJ1eZ_A<9A47) zs@0L%athz?zR~;b6th{=alDTnKz&t;U+T;!tjXQp_$QmtEJ%S#6>ppj%AXIW^^vBK z`cpvpBcb=V5OUAG{wyd)?unX9?mqcy;9kvj7;$Fb6rid*&6a61XV$sEK>ps%=-VazUbZY{-@{v(~b$!SguRG;05 zZ1Bzy_#GoYz60RjaUmI6X&_mfdj{5`8_#j_c#hxBr$auFib+%M4L5{;~k{?WhbDnO}n$b)|AM& zx!r=EOf!NC80ox7l$Te0_Soq6&C>1;2w(fc}CCu*-g^Idg4r?7jUUMOmC|f&b_SbRR4fnh?5%EUGyn zV`N~a=eqgi#Hi%qyJa?Vsm=^&T;K&6tMbQ+-o$hN%DiFaNQV3$9+2 z)VZ)+`51-lD<=+AY9FAm>EB@EzoB!*5 zVlTt63UB$d$bPYA|39~Qc7!VI3SMeoJXHAqJa8n+NYcdu@4Gc_*Nd)UP@dLZ2@ah2 z-{2{m&7o&IJ;EABZ2j3mp*{7h^QM@em;du83XN%am_p*^;{*8TceGEx-uUHm%tEgp z&a$|vs8|6OP;C5+oM(!cJdo2=YE{(b^D{U}6Jgg(wohe)eNt2xGq5Cebq$Ma`2^QY zTU*;1t*eLJ54b)0SntZbZXR1B47dmV$6Ma)aMzr?>D!KX+7z|=FUF5cbdw{SYE|)W zy*0%iLsbmVkhK{Vryn%1OSi|9_?=AkZEt@icC-kcK|cD)m>UGWzlD{-M56ZE(msds zQ-_aU)04CUq8&wmBqQ&gkY?0f_k(G0M;CoJtlOX_C|+LSinFW{mTxTd-*5BgRNl)T zhg%k`TizTqkNf`VV*Q6rC*esZWn#ew-dgRcdp*3NDlILYNhdWmXW}CjQ#znMeE+9E z4YS3ybRe1n+5G3KpGNxwXW$W(|4-wa|A`vNpdeulgZG6^{*e5a?&}W}xVs0L7@`Wh zsM-Vlj|={f@7aFu@;u@CtW{cQ<{!SqA9mwxB>gx3lEe?+hlKH`k}v=B{`&m~FzZZr zG57lz%15P+`LC~--Mcbg=Uj0O2UwauS97SUXte5#h(o-rsVJs8cGIZ<`KRtttSt=B zpoh3GR5NrDVE%d4Ukwe@jh5V3EGQ_b5>vkFEA>1}`c%;u9~OBp`-}wU9OMbpX6CIC zQ$wuXb&7_46z^!+Bp*Toy>h>koWv_{toJhBU!`Z*6pqU3ZW|kW=4cmYt|?)&ZA+wZWt}gFp6j^5-29wiJxv?R zc1CX3N6h;3-FHn3rp&nc)L=s>w8eD8w?liSXL|9TUx{^ZNY!gjvp+_Gi@w^}JS#$h ziAe!Y#M(--)SdS?uQFfZD9SQ(oOTn8dD0aklKOJv7Dd!WT8V6Qa<5xSGQbKCJvVUc zrN4gDwU6zE2P7)tQEmj;RR6Sr1Af|a`5RwR5A0r z5z!r!UimzBCH*QV*D@$NQ~JgCyKE$wX?T$rjui!Wj2KBAljzsCf0gp%UfZ+2kx$68 zZ6Z{%;?{N4-xZXl__6-*AoQLLw7=~qUC#yN&D&mcX9qL!c`7sD>WJ{LjvB4#+q6e-miufvzK@DZRI(**FK~2hW}juqD;yCTDMi}1@uNs&hj71)OC9~SYtL+K z-g+||7(B7=8Q)!;|M=h&)q@OHi?-qEp#9nYye9On@CxBV6Bh-=du%VL+s~y0UO%v& zF6C1H`y>a@q&Iu;49ItV4bhF{OV9g!$BdDY@g6(7PI-B`JZ?;Z!R)S8@6ln6oXoNR z;E8z+U=ug~aVI|e^!eQeEMi(xgj3NKaYo}`HR%uZ>NIYhdX~GK=z2ad;*C*?=jdJ? zv|2*;Pdxxe1guuapxcwp{07$%%M%*<{ip_96C2>pkfdQ8oEvaFT+`LfkGS7|wlY)h zFdP9m-OAS;G?jE6t(XnCJovY`_-{XX%sR?Wv56)%w&zDtz6$ctV!EwPTI8#?*<5N-L6ed$ zQ2U}76RC~RZz*}L=C4-DVccc{8bv`^GY**jO$-?gGeFdmI=7($C5arEc)mPe1!Of6 zlJq&WWQu;$dU8HW_t}rs4&F);5tTKxrSAcMN$0o%SKls z#7d5EkCj@3;}Kc)<&3^S-@WoXiZj$X8Ns<+O1iA$+0>sNgSV5x(k11mcMY~n*uR{| zBGE&(y=K1Vsrvz{qL0c!IjmULz8#1-@)qRd%j_Hg@ zjSZqu4sYA`>Ppj16;mk|`Fi<3DUF%ldDGA2=(gi)w#TIL+mHNV=&JX~H64Qz(#aj0 zWtZf%-wd|=^JtvROkGVXh{pA>z5r8DKwuRGYUyVG5#h<#GKguC?3sE^e}<`+i36Zm z=cj(wSAVAY{zJ@KHKM_)d%1T9gCMS9uTr0cg=d|b$MruVg*G03_uP>q?wZ(jvksqw(a{ky<5Y6V6YKuejbkhN+29R@%U)J6%n72krjOYSk*m& zhY?i2pQPb4snV)DS>sk=N)!yOW-tvPyTSOTr91|LIV6_W>l3{5q>VKLRSa|5O(J=h+NUBC)B% zW>V5pnOsh4DfzjhbY1VGW0Jm+&6K_)FzGaZ*jt_{!9eJ1Dy4K(H8TpbMl8ugMK0$O z+o}kOiB~PTFF0%!io3KH@c`OUU8xUZE5j(X19^!Th`7vx|Iq&|q4w*m0x50QUJjY+ z;BFAnq#ouL1}u@%}bN$*@)?j;QOae+q+G*T~a#C^N@8mMB+* zFROYBxER)PwPeHue-zdYO_QQd2Wfi9jXSy^yX*{2U}L>xIT%}=&qD3*Rg?rmOVoK} zY$H~8#Fv#C>Q=PeQfz2(_~OLgFKVM))L9P0cJd3FhH$kNWTESX$Sp{});pfcJc|+= z4Y-xdnA{!+a!ED5W8A(-GdcWRmBT{^E1<)G+@~Zq*Aoy1e=7SF2l`s#jR`N5DiA%# zNxiTSL5-PbMieMtXJmHF8uZ|agdBKhQds^>FSP1}%Q1gj%1nbaAU&g#->UCH!!hzV20UW6QUtU{A$`-M8%-L z>qK8D>A4IH>WK{4Y7y$}p0wHzK5F7We@S_*4M#YrfjvwX9XJ)-`10{@ju1wAJUD*e zeoBEg8E^nr%op$+VSfN>VfOouo}8Fifk~;q54joS)|n7F zT%9RK5YBV{*gN&?KTjQym~>6r0#J4Md@8uH?8+GD83C_69*w+NaZifFkcL@A=d#+q zFtri6lb(rpR6+by(X#N%&qdPm5y7ImWQ+<4tr@QrZ zOwm*ZtsT5>!p=zjiv2(%@r7-6t@g~FH|O|jg z{xXeWZEeRyH8*G#iJnh>cpaw8w7!2Yoj)n4^}S?a#YQxl=Su-s$sN%nteU`K=9 z{c|eKP}~+Tu1vQ%v`_Jyy1Z6<0W_cZb(%CyGvyLbe%dB8+erzwF(gR=Nrc;fqsb1gR>&rIt{{GeoZO9;CoFCfyXvLO41mb5bmcjezr!*6Vx1#J5&sVNQW zWQ#crT^o!|(H)zp_x^}MRTza+?-Hh}E+Cp#z5QRf*00&VkBsy}dOv#e!lz+(7ua*OkCdR3yDDTHQ(+x9vF1(c9qadCeXib`uU7; z4b*^W2EMwRm6XUe>{j2A&p+Pvqo`LF19VN^2+W#d6`~$i z=#tW{m#d6A(RTqz?#j$Z%{}4L5tad5o4$VKHrH`#{h?>_tNaY*ub=L&C}hxpHoowfgfDY3Z`rR3>sSHfLK% z`?TXZHP)`xk;`As+U8fYtzSLYB&OCw78Ox8Pg=J+6Ph%ZUTCL zYPS9RHVwE%CSp&2WdTM)cVCsR;}Or}JlZv8)r%t41(3lt(3p1HI#N~Nsk!b=y?28& zAU4bxE!*Xg?j}&RLZZCtyHpj5;!#i2DNXQ*E7x(L8v^gVpzRtxd%8ys-`1GjhkQl9 z+0=BT*!vGsggQi=Prx7@xlK?o`{bH0hJ7QR3Z%}VX(vHC3_4y+^TijFYJ&7?HWi0+ zSgS(WD(W|{W+&Yrd@raT{4+F{*7YlmDi}W|@Hx1s1o|nu+Na0}w>IwEln6g~(pNsHb{%+7X$Id-gN%%L9^%5t!aj+!PYlpvOQgA=F#H_R+g z32Gm5C&Qd>*Y%s<*g5=oXgKb@;^F1s@I9fUi-($2mEZU!l>K9t2x2Bdx;-363~X=L zS{Gma+ra2>Ln>eKR=CM?j(9vwaVM9i>Z+S&R z$-37*Dt(};HQEUgK_NutW~=+6)j1<`NzrFcxYv}UKNHWbNWaLOd+|xg9&?#%s6DYkTStNFi=qFt0{vtS`?<-b~Rk>fCF)o2bA%=WI@WJuPka63`)ZPkavEv~ua%G=#q1Z_+Z( zGO(z+&PVl`##L#F@#h8`6Z0m{0;6r!5775@BD#7#(et}KuN0LYuB^{<+dWhD$e%N83cgw{ZFqmL4ALZWV7^%b_K5-S_% z75N8XFE5E4k<5dg?&Uql<0+HS)~}yFz33yn7(@>^X(!ak2@UNU6vOrjJ)S<6=YFvv z{>07qDW3!K?Tp0ac7h^;s*!A2bX3^E+Xhe0|&wpE-YAs-4i6L^Yu8Rr9pnn*80 zS)O34to@FEheoPT8|Z7Qg-i;k4D|3Mc`+ zD`Ci~VJip2r43al#98kX50p)E_iW2_QCTL`Nl8V8R?6GaF|7jjZ8f%{5i!7Y=pp4_ z<}SqjXdfr{5Q`wD?`)XK*=L5HA0X`ID`r-7cHZRBGk%#Euv|TL)cJeyk%4&5z3`6S#(*OnVd_+)iqi9eih%74}Q$eNM>@6@{|4A%wJ6RZBBjg+(ese!_*LK9DY9Z zIO@hdiZzO>^lpV*`)gJ%lcz{2&VXyY#*3;$RhOB*Y9LK z%S!Osg96YZ1uHqF;XeNKb+j;j8%FH(``}Re$r?=}>cnxhy1VI=;&&dEOCXeoI-t(T zGcbNJs8ok$^M0%f4zB)Vx1%mXqC0dMELMMg;`Fr#FhBQz!e0TX#u7ih={?hk?YN=g z%`$EB#6p*9tF$VW(#eO4O70kUyl%fAejpT%Pdvxw&k(LGcyOj_Z#Y=wh6qxBzKUQz ztUp~ywflLyRx)+$%BW5r*MQ)ZoSvbH91kO-46FRK-9+WuPMtKCveLh%DI?=nK5iEr z_^4QHEO^;x|8{;(X>IK*e}-%@^-I~E6S=fffVQ0SB;tWS z)aEKDJ)@EXv=J}jsF$s8<_akOR=cv5Rc-~?*%^Aeo--r0A&a=e zmv(8_C7601Ya~VkAT2Y8v2dO1`O>A+iwu3~;wZ|1HP))Gk=e2*ZL{C&276h)B%?<6Vs|mDfiv-}={!5-y&*>^XB_*XY=b0w8po2-X z?%=>(X?P}NQUZLKKlv09{ow;8f*I!s*xgnP)s!5lG@YkmT-4N*~z*lxR9x0KZ1(aq6pQ?pTmXfeHXSgb>It=;C>&@nNwneHAf(lwxO1zOWw zwx!*=0X%8JUDr!1(O%|5b3>pRr9x9@5~btHEjXLVw*kD`5I9kU|)~ECk@gP4E|nFY{ku!E(c%NM#*9 zYPG93nWi@dMA@?(b*IHrqB~OV4?h27vR0T^hFYf*!RsIUZQOKrr9Sy;caT^f_!B8v z|Hg-K0vJKK*Ly%RnFKI-r0YCz*6Vf=bhVdV9&7oC7PoQJg?E7j;}to7bODXmP`!qN zw0-Qt$FEI17j-fk5be!+Dzu>`ZH#W_JS}8}7)WB3A)^fa?B0w6DbV5Rtfo{2S7|=@ zq3ZUn^pR|Ixx@W3Kq+38d}18q!I(XFfd-TO{X0p1NlXEwXyEY?%Mn7+3`A5`dbX7! zx3@9VVdr|5;H@4^JXsKOIVL~%M0#)#-T%tPCCZZ;`!+7_>VacS_sIdn`Ds&Q<3;CT zZlEbaX57dI_O*5#3*tlPe)(cERlAMc@B{~#W{D)x%I>LbOo8;PE89IAm(w&PLQCw3 zXBvPjv1Y#Icr5Fao(wv_sTsH+7ngy^2&9C6+CTdgfeYv^yaln+Eiv`h4lU{Hqd6Ek zmuzLVkU?o9^*JZUv@+&TD$!s5+%ukqV$I$L+_kfN@C%~n9GNl66~QZgX}T}g)iy9& z1d<@tFK#;b{D~$!)e|2%H)Vyyx>EgUQ-J&uImmqyQEcv&_c zCv0S-sa@QBHR+qI?gP1x^6W6co7sz>V{dSf;C^28pfI6r9X-A9@ZEam4PL57 zV?0KzzJIy^k^mEOYw8r5mff2RIyz zqsn{ZI;za7p<>g^@FE4p73x5g+M6I*QCOUfURzi9B%2)Zs6S&ayYXna{no{i%M&Kx znT4Junjy)|AgcGkxMU3-oy3Z%;qR-1Xzt*W#`4ekInMuCmJ_YiOc{__xNh3+)rJZC zMLpfUjq*obA>-|-D~%ITCnUKhtR>%j{ioBROW|FHs5;Ezg{G%Hw>ED1<0gy?xC`Bp z-WD4TO!7~}WUB-{IVIB%VBPf83gk}v^rGbeRLZ}r|M}%hE(&$9+RH>q!Zx{ARn@7{(4z&)wA7%9p*Q$pFy&|(@TPVT-O_~xwEj_XWJY34KFVvI{ z9xAp(_{+oJR1L|v9r8(`jrO_54*}k9t=eI-f$3-QcOboI1)2>r1Yc|m_Ia-gYnx1+ z)k)OmKIFzHOP-J!UW~e!OklepoenatvhEKWc1QO5QT_*1$ER!f zKqeoRxg>11(m_W4#tuW%7JI6I#TRcsYHI48XUD1Np_*{0p?aaRVC9nC~>_d+lW3dg9brP z9R@F-wLzfiD(aoa)CcuStL^$-?X+xd&Fmz{zekCqG0uLw)NZqzA9#vAj!F5T#&vhi zANDgh^pY)Ll2Si8@ShK40j6hGxGa5G>hsW`0;jLEyCQrK^@g;X)mp!Ab-F^&i=E@-mgySJMNFkg~DGw`OVu#bO+CJ{TbrQ8+lUxiN}wRI|h{4 zDsvD<{zDp?us)Bj8|wiU?lh+l$3PN?w0etc|{lQ z^sP8KElwFo9L+`)Cu_U&pV>c~Ez}Tv|MDs$GY4bo&~JTTW}57mnYaZzx79=JKU4gM zYEqPWB>b?*08adoE=#j14Mku~=L$r$U+8muB<>W}ajrb;Y8K)7QQa$1C3f5F5ZX?+ zI`M7H8=yh&f$Q??$2jQRrAoa^ydS&|)PnwInn ziAjNdt}CV@eFoJG^O_5J#f?Zqlbu5*A$!34D2m1Qt-Q#pel4m20oV9^(5aWrU$V?x zn)M=3cZSgVxHHwK*!t2Y=ZmsI-4x6~@nfz&+57L84Q^RI_QZ0kgBoKEbC`>LN~m5+xtO(58F996g@f znVBA~)Z$92UcXmKG<{cd%%mD-c7OV3_7_k4o@{2v|7}_(Jwk~3Z8>PNB=4=-pwkL71mj7qAll_(OH zlvHSo61FmSng5~Wu`fE-`CZSnx{nAX$Q@&d?GV*0nV&*j{QSQk_XdrJx64|cYo>N? z?%tdyUSF`Z{)5o{*U7Tq<%?7l6l)g3>HjO^`ujtPmn4jpYtjKB^kRbsqO+QMSc;8t z#lhLw^C}oIpFVl6sRT}!UKd?+#V7ZVJ!(3}@AKRnG@e<+f^xb8Rc~y5={L1~Yk>(F z&B;6ojLw-$eltlGaD1xQhd8n{I9@aw(w{bW8M>q4)+$5rbP&Kc0;Tu1F3-eb_&7F*#CRl8r0->!_KKA-+@h<3Fv$luX#nz3p4j@|Q`^eFl$4~TGO4I`^nv;*gD%RQw zGNY<%{Y`)L-)8H+-pH-&A_Pb?1S=YXiaTqgE%MoUI(r_{3Fa}o%Z4c&$W zWK9#BsOV_<-WfZx9whgtmcU;E?^$_@u)Q^_pmQy!EZ9HUSo}{e7I2M(A;7U(mALpb zE;jWZWAwHgL6+4bM`(pgPf3$_jhKVRV0U;FWH6S)r1Qh92IwU~oy(!Xr z384m%PUsKr05!- zoJL{FrdntpI=t;^!miF=nOm*gb8Y+%<5-f_La}DBE@bpuZ~%O!l-}vSLX5~^>Sr8! z-z_EWSbQfz&Ig_>UTAno+{M?FRerH%DE4Rs=#* zWc7G!JQ}sJ;sJHX7Tlv(nx1)9acN4}4a74GE^oq#&^UmZmf&}6KDf8<>NqlE;F#ow zG2f~$S{@6oH%zVDJ-uC^lL{D5NQ<;efy-)*ZVhj++I@(r0oR&(Y827W%{UZ4Y(l1pZtaQhBV|ON)hzz{Y}Mk zGG|A8#8Y70pa*`TH!T(sv~en@Pw$gvNHP2@nvv63|1)QrzY-M{)ype8t4&W1= zhqXU~S)X8t3;-R4PB$62#ab}MdAuOrJ)kiWT6}_&d?+M%<=^DWz!9Q@nPquR;R~Od zL(Vp5&d<^qkN$u8&eO@98TR_iJrjJ*dD5fu6kPHE9` zaq6~;uW5e6pb$-$=^vp29j56&X@GRmFsJq!ft)mac4h zKRLx&iBkRlm~OK+{}zBi0RhO7o+^RS7(=;Lhn=p-LHUbL_P)r4V=OpJy-QBFo%TFE zc`)86<9^ttttl!im1g#_PEbK?j>#!#)1Idw+6U{r?8Pa4O7t9upYP!X&1Nz|5zd z9TLALBNN{MsvRA&s`Uz(=uzZdzPoPUEb-1-=QXl9fA>U@^Ep>Yb{nB)&S@#nCR4N~7B~8a0BSW=`j~c2f+JeVSv4Fc5 z&{U;f(qLc)nCQyFqA!0ZRa?l(Te7#d?rzqF0gY74J!x<~&Z)_>i1P0u$W<{eKmelL z+G_Pngh2sdU1dK&bod_y068(Y&639cmfcSV_~972)Y(*UR#w(n`&_6jK3^j(s8O5g zZ|Ppoo7*k!6lkZ({A835`uxRH=8wBWOnXzrISae>6qqG2G&JBu(&Xu>;Q0!eP20Im z-qz8qYx0%Ts@vq=RXXZ>bGmb*6#$f&8iVRkWPZj%{4=oU=jQ`+xb9JNYQ>V<_k0BU zyJ>Ip6Mn(5|F5UN7@Rn7+sklTi}%7W?%eDXvaHJ*w9upS7Q65*ycV|lpW>A; zAVf-&OYN?t0m!}KFYn|ZLHp;C`W=O{tXf*_Ur&8+zbiL}xj8rXw>`vvzbQ~<{!8mo z0G8MId$8iKm-4@^RxE~y*>pM#@LJuy@yzLez5HKy>~H?t%nCSWgem{4n-y}_kA^lY zyQKs$1+x|UZ;^oBuP~gyFzjUWGJth6f`PMyI#;4s%f-b7w#U(jZK!eBe3w#ft9Nw2Zv~dFCkWa1^#uCZzA6p=#ja~UV$m`C$eCRy z^SSmLk%OyCsY}4F1x`%|@OP2cNqKn|q_0-#imje1M+9kpdz0-u)qdyKVc?JD35Y3< zxUGh(&`2aZ8jW5?5c&Li7yI4W?vyoBgXqJ(a&2feVzUNQTQ~s8`tGValbHu!ErDu> zlA^qF_0BV1vUT4zSNA7Jb&Pz{dux~r?AxG{;I!zi>5ZLa9uSDQQL2mo?~O{5XNZ($ z!??i9xTNQGzY@8K5r|SY7Kn_uy^CuV=LeI zLy{=|{@(pY)Ij1iJw5$s7A{IY`O7$&EEBR>R5a`(m@6cV66qXlQHXd3r4VwrlLWs%ZyjN;~`SKiD&v>?RM#wz9TAdo6MF|ME@${QUt4UG*hj>H~Kn z>tCYnA$v+zxX{VIq<}@Ge%FvUQ7q(ECz_&WP>Fx?*2&I9Xbbz5D$+FPtLBuyyd%q* za`K8P21{`%kyU-tY4$`s!pJs;fFs|qs3w5##&*{{Qg;_}jnQT*GDss84G4 z-QE7|<^Au^++4%=%y(~DFYpd{4K$Efm=CJ0t7{c)Hv0C1<;nVqDwU{Iet*(b!(+Gs z4d~{vJ)hYfv6(x!y4Z9_YuHfDyT7gvvc(2EO@4=|Y#KN^G0qNn1&FMkZr!vBqkrKoYZJkaq|QfVvKje5X=ocF(Nd8pE0=S=na2B-7d*bC{JwjE{x zYxl2M+INUFO_7F5tu-}>LcK!9o7N7+Dlm&oP$MHsG6sb-FIH>dJjlZ-S@?xxC)SR4 z$oD_5M2o2=N$F83b0!TJF2AqWn}_C+>TyuSjg|Y3*ZGIK-xJ-`Y~p04%Cw#O*4ZX8 z8qy$X=@F>{9uN?1JJAes^#I4^=Cu=k1AHPl#RUORH&Tixfn>xZ3nV7C# zyJx*hM8ON)UTD-~DZKbL&!(l8UabFW2Ks+J zOm02{a+C8~T`&Gv{>v|$bH|Z-$Ps4Mxl=)&#WAKl&jVwxFM4ZclI&ysX1up=&)0_q z$r3Yy!FSBu9m5lFJSv|O9OejOT{5=nmWA~tnFf!DoZQb&p1ixXd3=7GU>W`H_xI;y z8!)!uyKQOCQ=4G`Xw=zajuv-2Wo4t>!Z^C){XY9^3sibF=cSjTS482@hnI{{uvt)M zw|Rphy2y$3yRcuUMjUjphJAN643bsW&|+JkSz!Sq;~ueTxDLOH)SwX?diWmgd~{Yn z7|<~`+K!4fxE=WoS|hmC*KN?u*=6fu<^eajG1lV9D>?FpqG5Fp=kjpwE8}^vL{{Zu zul5Ismy8l3Q+hwsn8b@0pkTez3in8Tj2+JT@bNqbcZ(UG_=787+?4&=r6QD*=E1DHfoqHqO9!r#6vngI*J>f7=t}}PtrF3=B$3$Sqo~Lg2k`i zNuvl~MRhpgWx6~fx@xEN5`s49RZ|{JO)c&Qa&7S~zurF%z?j{hLNobCpmSSd(;Avg zUav>o?a%HDy+r^d+$LuyTr_XXg9{U=_ob2WXLAp+1I*n=J{CFOpbwW^BKrfpw_*Vu z&sW=-movv9WPw+L^74H5l;ZXzT%(<4e$+ecCqZ1?$O9WZ5XYE8PRt$SZhNHO!8k>y zMT6eb84AJXWc+?I@x1VWxdjhX&@yIdbQYhuvTXu!F5JnJDh6-3e%t|9Bj+8wtelq1 zv{epBx9ZkWkdXy?0Y(xGs-ynw@U;R3)0|-FmA_AkLWY6#fQe|3(iNKo`U`wCAR8j; z6RT?bl5oBQtUH%ZF2sWOn#FKE8<{|}2UUhp1`6kqv4(SL+@M+KZe*1Cf<}-_b#qqu ztOYlX@s(yz?=Y{;TX^TDd$)#F&XXhMx8GYlxB}r_kG+m-i(J&Vn0`GK;}EcsYErJZO#$6EFJY!(FJp#h8V)URLOTCo-& zi(ql9Itdg@o?Pu-{m{EcfjFi4TPcw!s4K|YVPU-_3fpOE6IYZfauybcOC7~k)*6-3 z(exR#7Jtm+xBc>sl}pO5F||fA@@CpLrwoJ)N zQ&c?v1`*uVn+Sv~YD}bfzQ$#o-V)Uc?u8WHkBf3PQ!u&$DS|~)HXT1VCoJs!U_zgP zRR&NsQsJ(F``5VFvk~kLZBFy16G=%~Ma4izZcBhGauw0kI8h5e%>}YY=Z%Pto6Nci z2}6cpzHF}Q9PT%(+hc1?!Qkm`j~}$R9DB3>!Gxw~{v^Qc1^jv9zaXb#;vx2AysrYTkaJLUG+0_$XZMp8+76>L_3sBdIN6-CnJAt zY*Sl?4Zkw#Z5;Rt_N~JB1oT^*6Uni=Ee3-L*JRM^N*1zwlwonEg-kDvR;3fP>mx29 zsWuE7d6*Cr*<@o-IrKG^0Fm*y6uzo6oDqQF*S0q>^*{bZ8}7`|;fA)?+#R?#mSjWn zWuKs3xAaIgY5k%g24lPzNz+Epur{8vz6?_Xr%sIdQ7;bU9)CdPupl%*p0LkWG!tvu zeSM^>tjz9F;~ z2c?-GGOpr*; zej}VsY=|*_aH|s(*#vn#dk|RNYg4^xfCevNpZW;Z=d~;K(s5GrrMPU0q5; z7%Q>rW>KMTv^As&K8})=;bp#51omLy;fW#)hEmZl*JOZq4hjv&)DdoTIL27(GT!nc z)tPS2$djS?OnE2CG^m~(6!Q=w%kYl^?QEee+o0En8N8oAUufB%daTbjFL}bY@`D?s z%w8AbPo42Ep+=f8iI)@sgHq(gM@JpiZ0(_^h~(?@ek_^4X80U4VOQK}|cx+;cgb*P2gyW@(Fa7?HxAX%|^WfqIw{`^L^@@}d#c zAzyt=eM^NdjhAki;cE$$X{$6sR8qakBU7W=H?e&-isHFu)5NtecYApSC~prer))V_ zj@}MleGpe1hfYVxhmLz%sZ|ZNv}T-FPE7>tsi!@1Dj=x$&W2~cDJA4N9l%pLPtCaK zEA?LWem*P6s*llkNcQFZZfVC&cfZke7GUB8PtYsYj%;{tLQMUSH*2CrckGKFK~OuH{ADAc`f*w-?Xd;Y}I zFZ{ATs8_0DBlsv&Sc-7!TKlSDp90F~5p-y?bASaVyC5uhB#4#%0k$C~M1%%N^+Map zH2*y~x=eWfFEF;vC%S^QiF&0}`RKDV@`dgPf_UA@zt40jX2qEhL0ASoLY!rK&rnMj>$TN|PJ3G5A$XQ|_#%Gz5ec@GT(Et%sYr3uK) z_l~Ba9BaSLfS!DuKfids{z3Qed!1hXOHp~(#BI@Uy7`^Aq&g#tI*>D?I*WO;o>tS0 zgOT$UIWk0Q5}p;f%oIHfbLPVELc``9od5Jo9cbB79;;3UDtMl@A171Tz5)B@&YCsv zkn8%qDN92m?qpiLZLk(eE%`Az226uS`b1UxCokj5jvL_Yn$lc8?aBP;qy(oSzlYJSB zba)fbU6wIe(dcn}@z_O&q6(wCkOCN{VRB3+1{b$?%&PL58w&|wDI8rTfb`ABw{S+` z_*;=09}awBugUpt5X9n=C^Q&+_dxk4foTsw1}bJR=bJeDa7d&JrHw@76$M#-F4Mr5 zFR~gsPtix)bu%BcOlZ}9l+#g(T1U0N2lp)(@^KZ5V1*m~=RuM$FHH*EE^+7B{HbhU9)Z#VhZ>*J?8~Iex7dn5okX}YfdT=GR&MZ0i-cGxDpNTOq z`Wx&<$$0%jPW}$nrh#fpvN3vq1L49K!@C*_;b>EJGoawg8EBn!#_mtyklsO698#+lKyNBGE9 z;Tv1^_uTPy$jN&r+1$1Xy_4Ro$-%HKK8AY1q@o<3jNT&%Rv`ijYJB53 zxrbO@Xugd|-kD4~+SuxTqa0*yp}eycp21YR3bS}8WY=|=fIE zGQ}La;w~|CJo(SA|4+#NZ&WTs|3ruY z!o5AE-#at=#C_J_R8EYSkcpp~nUpa{-;FHn`D{m%=k7wn^mJ-tYJJyP^il+q6>6EI6%K3o7-jW>c&->>krM z;0w0Y|MKE-5yI@9`%K{r8%xVk+nXtzn>SHgza?QlIsFWr%QcYqi`j+?E=RSA(a2q;UFL_0Vc_^g=@ylcJS{|x}Qvck(X5Rz#sR>JX;H{ zgp--tkzc+NEwIO#kklR+p%x*%bozYYjw*f1eRfiEBu;3$)D^4M8J{}7EHIs7;bM&# z+xLA(e}feOHXdInFRfyVPJA42u~YwfQ9t#*Py286MR)^Cw59uzXi;1P+(#vqY=5;m z&I6(wQd6LPptiH@=RS@?=#z?Vd2Qf=W~w*6oGPkn4PV}R`!iy;ECu{%!obUV-89`= zsGp3DJ!mIk%B0P<#HEk9%UCW_9guy9h$(*^#&%c4@XJ zqj=l?PPGlJ<_jjxN@I|ZuT2>Lv&OAD$XB}bWeu6XocZp3yk_7CvM!u~#&gToxqrVj zeXIq7uARwrl|{U}TuBEinJ~DyHZZ8<0J3Ibkia(#PYf~#4NXn_p!zs8$Ksl+&3p`_ zwUyAk8wwXN{3TV;JKeYC#dN*bxU%5k zYo1k+97)#Cz#VO?xo&Si^n*@mR$Utf>e1t@4Q=YpCOcR(jcM>?FKPwXDZM~qrs`-m zyH}+je3?AIQ=3SeHKYBrbdpNM+{)fpd3Qbkxsi$YyLju0H(mbXhpRGlg^ylBg&8O? z@QNxiBGAKYUwMZw{2(lzoIaI$hsy}Mg5h2VXV$(z%QZHcyByGuAD$rN3b=dg50nxD zQPMxJwaDE7B-DNZBhJDjza(>_Pjj#qomfvVUW*aBH&txu=pJF5JGDEO>E1g7=5GuY zCT)3hMW_yFy0GQb_ErJ?qW`dv{?DW26rwhSAF`>!DERHCzfjFNIlpl0PfNPS1M|NJ zjPD>aOf08$xw>;&agc{8H2#ha1Y>CPmErkC*rfu#koNt@^K+R62V7)F=|+BB76mkxyD zWYX=STV=`$9St4^ppsO_4inq(U9&|*Qqh4|R=ujy_X~8B-AF>bHNuT+1xsjMZL2=b z%+AzrJo<4Ca+c=8!2Pi6cmL*OS0Zb-YkL0GW7QjpQNy$m&%7xN=57gXBMk~4nb7qG zM9!dMB28~^%-In<9%x(hHK;k~Ln^xG5rL0|zERVMASyYO$MD|`ccjchp^t^AvZR*t zu0503?quwzMm|-Ioj;DfR@UZwIbikWZT}ZRP+rgXl3G}=4a|Os_17pFudJOF9T3t` zw#@vN{|g=EGO`G|Lq}<)S$O{FwTqYaL%4uq;Fwzqy>t3>WNVMw$(l>Y_W`^^tn0{B z`x#x_>g(4e0IkkG9H6IkuaDEFVr3&Yot$IZhBDi{0`he-bAgJ}1pF9R>Qcu-nHT5(+;(oxY+nCxF+qsy+eB5McFj8X>I|v#j8QtXg|u3g z?#|brHFgfSxwNkX3~yC{rZR!fewV#3D8wh1h-}s8b zG{iBHbpX42ItZ>N(3%_Rl2B&^9q0{C**0wwCBKW2nTO8YOLLpSFT#* zl&XZ6l6Ffmez_nkVSLXOF6=cNQpUvB`!VZcu+8z4(`tXUZSM;#*x1>l7EiYpRcZoi!RC^$knGL-9R^xq%OPK~pa|roa%O~s^ z>_be2+svi3#s;Krf~wKz8r&9ITZOQ2nU`sd@JdGcB&|G{HUFwgI@VRX@lYc7UhYVW z=lEreuTYl#6)`UfgWvj`Bs0+|K^iqNB9 zn`;GevtWSgIdWaHF_b*qjkqxxe5UUgtSCm(C@~Ts;u@E^`#Be~A$?H6J8opS-^PX!Y`Yif3$Icqvml=E8@nyO|OFn ze)DVpIlsB)-m|UbC+|QH*~ZYg42wiyAa%HvIMX&(rCuuFSFZ;Rn zBDD;V{L`K!C4Q_7%lsDtPUBN=any3fyVTw?R1IIooJEnDl3+74jQUGU1#*>6EAqdO zjaXM~S;lhEtubn4hezN7PYiNr4c!Xo<+~)Z>?+Ie)}_=GrVR&3g$vm0EUWJSB;_#k zev}f?JbB4*4t<5M=!V5$hrVPf_RID4ZfrRwx~&Z?g@oN5(J|q}OF=7uxqm-V9VnW-fPQ&$Q!ShFZs@aR7!)w7{5zCRNs#^i41p z^yN1eEqN_My^U{iL3%Z-mP=V9tSqeZj%RQUlw;Vhv1s|9$=m8^wgPDHXMb}<4ALjp z&=hzQ$nH>(nK*3UUA6BAjybYjgEkJ=UYJ(B^_eBa`e5tzet`SlZA`eMEAMB2k^R$T zhETR(?aJKg<&*eet7UckW{v zf^m#?e;UR5moW6Ff?@Un*_ec+WNUl->DTUIUrVjme<*gEKVBagOk)CnVwMf$QJ;{k z3vYKt_Y1%b#UDT1tg`%ZeHJfELnUbmd0Jw0UJ@;}Oqi#ZH^}Dan@?18G#&AX(-ps; zo1tntxxvJklFJock^dV?J*HQQAL66ipuu>9Yi+MS%FGV&WN{1Q{2EruO^+=6@h#E< zq;51Vp=XD9`^gNsVE9^{w9+mcXCeLd$kOwSDeVTFQd3fi$vB#8o{ApSLmzM!NB2 z60yzl%uhosZuJ>P(t9{IrLj_HX0af8;?Dq144rimKPX&-w9Ye3E8^NRnS;L*0QYCD z$c1=%d8&Cp%kBrSd(ERC5C34l!=?hv@cB9Mfz05lvQg5Ib)6e|?uz^|(o+~-(O)FC zH1+BepmP`|v?X_)xF4;&^SRP}*Q=qn6xA5%{kBL>WX$=Fr4cmz7_}L-G{JG{-KEdv zoviGF0z<_G9egoA&L6>|5?MdQ!48-ZG0U-C6HUQ)GI{Cw8c#*AXqgO4%JyTMo)?`i z>X%23A#F(7t~!&~YtZrR7cmT_yL?+60Ox_t#W#bPnDmx)>yMX5?hoK94LDZY7i97h zRSBX!`Y4xRf>#Uz#}uFmE!5K4YI(Y2crMQri#7Y?V?c&mq+7lz!mFvrN#SGpxMLr% zC;ZfP{s4Eh7Rng?p;evTug{$I3#i&5liq*1_j4^OI)S!};_Nr;#V}v-Xc2c$oM!N0@MHbtQ@+R%D;OI(eJg(bVOS_S6e!RCV` zn@@a1Ma{m~1?g$=`v>0BV!cEnuCB+f_oRE57d`(J|1X=Ivv`L|qRs6LM)U}8mee@t_x7#>gcesFh)k(7}mr`48lPQ|su34L?E6zNr%YG?W=k|u99ew^i{lO1Z_!=M;JzdEizp!}LI zlJr1e1*mHD>yPI~+x2oE6!fCeCU(RNvG8UiZ@ztOcLsL?z|lSD zD_A8tCsdiXe{%OfA>$>`>ZH9hV3J!QsCEhkTbQ5wPc{MI9Occ#GzF%DgO()RPxPGkj#Y%f4B*%)eL&A%T*f_Eh-( z+)!_7pBD*wbwZ6)bzU{R56?XgR}GW2tGGibyI{M%|hIg+9L7l(zafQF; z$Jg7oha{P;?fpAAnBQ9?rlx{>F1}Ib`4M48F_i^-38Yvl%ns1ZOsM~^d#}UK1q{Ko za9W5opd2&$=J8>fy!C#cvb1*1$2<83v~Ns7YZTa&%rGl!I=sD)-RmRp!h%VASn)`l zRR_k56XhqvsB5EH`*qz2Qx#LZ9;3Am5`>gfmM+B~HE3Jw|LM zvc~n!4ES9_XWOxS=q}#zt8TiWcVj@dfHc@>rfwf%6qY({w6{~CI&{+u0dq%}Bu0id z2W;VnN+Os#plI~LR!xI{YGhSqQMA{N>)D;JJDU-fYtjONoiT!#$rxvVkNt!n8hrfQR++t@H;x`QNMd}K_4W5 zqED99A#5Z#*FRYLpl4)Wm9{7L9=NuD(OBfq70!PHnE%d2v=GmYfPYoFluXI!?pY`M zy5>*GRP$8IPuNm7;<~W^?qA9=5iQLuw}6B%Tmzvy?E&n{QL;f8KzgU8_Xo zUHFhnC{7hPmf4HDJVpt!@sAh|lva-%cY+4L9c*DwD@kXn57ObfJrTYqyVrUNYT4dD zBgx`N)7utgQ3HoB%MhHt96A58>Yq1)JFl&FpVVl z1i7WB=I0U#@cu0!nC>d%u#=``(f&-vsi$H75jJF0<2bZ*X2ysa;ap~Pgx{f|+a2qY z8Vo5!qf*Sq*_wPsC&gqqMzn)`q!@9)zp4`TBH3l%W57O z_Q5*mqYj4?1IIrZ<<`05rq~i>1=WI%f+`pCV5YUNNhcNtlLTAaTSDi9ap{7*CAWhy zQ4bP+804>`y2}<-5};R>AwoAcj%<3byEIWXMH=6 zUq4x{OZuS6aFSHW<+O@ZRXo+T)z3yx>QZHLGK zBg}iU?2>weL~d@-vjMY51~+*C>L0O^QfhofEoXz4rdGrQ)ToM%=Lh2UR#juYQvB8% z$n5&}8+IZ@7vqUSY3t68r~S zi?nCv7%pUdke+IP>>{1HECy+o=^yh_8yc70 z{Sv_#ZAcTl_CU`iwg1yC8o+xWJ!uy7ErhQhUK_a<%=$s=Vl08nd~|e>ozJBrw02*X ziucy$;lSp}r)!3@7;K8I59BWK z42}nF9d;W~rCB8v!+CkwG3BFOC{3cIg=Q$)b4eFTmT9Wg`*5AB`ir0xGFi1^0~my4d`W_kP9{*=N2T=NiE*Jlc-_}M6lHj8?@ zvY7`(?1Qcdq5v8=+G7uHx`6Fh%T@#_y1B@#oo}_{E^rX2V@z8PcRx7@F8cv;H~0cW zFCJ>1GM|dPqpTvW+Q-H_Kg^jo2B05@a8*x(P~Sjkdfww3E*qWNWQ8T=@p6N_=aKtf zXHQn2W!A=8>W7Y>Hsm^eiIv@y0BJIeCgXf!!io;E!I>aZZd-k=aC%I;eB;}=iHKM?z6=O)JHVq4A!F1}YS*-a(8yn2v} zJQC#L(Xg|7rS4RWxQ?vsN-S{f~2G7ddqYHvyPu1RC*@=m&6&a7R zV3loff2BZ-Pt;!|s@T-$3RyCDb3)(6y{G(%VoplZf4#@RmGt2Lh-v%!lxT3g)M3}d zL6V+`Xpv5NSG&%kO9D|aSTGH$vg17gq-X9-nZ7zZiMo*$A4)Oi@u<3Ks)=9m^u(>P zWXWu;R=Mp$XEm|%P3LBi)QFe1WLFW*pR5NLN|FsuW=uI}Nop}{)up0qta!XA(B7SvJ*tuJQw1>lm|-jTb# z8m5OQ`@8x(#+&E7u(La!0r}|-Pr0~IOnBIs<$ix9LF9#(k*+WWU0Tn_Dwaymcwj}e z+xh>3n*Zrj{r9K-A25D7?Rl>{^k#_};f6oqFFKr%(@SH4S|`WLu6$}Sz$4Ju^G?_B zAWS7%%2ze<+C_hB^^%di=O2p_ZAHLdS`4@9HeM)zzIF>gh`B{`r<+&hBdU_YOPqsU zLT58MD^;Wk3|$J zLLx*6;NcoI$u%T$t+7)!xOG&|eEf~+XlH0H>gtkfkE7#OH0+JHxB;4NYm?V#PBP%o zX(QcnaPGnXD7r2)oIAS{yaSq%T)lDqnv|!@2g!ec6$7xD5X)>fVDx$IP=fVjxlc86 zA^Ik*Bn#`#RL#?(>;Dex=EOa~kg;4$Q-6w{f>v2_i{gRxvDC7gO_qH#8YNV>!3{f? zX)jw~-_xia-0#q{F5Uq=B@p(j0!bSqL=W3k-wZId3KtF)ypSJcZlt>A8<^Br#CuOC zgj4rZX|zf($P3eR9Shhz8w|6k&Yh!LSZ3t7&BZskG-c`+=p5oEiOZLpEZBb*S!Fmg z!8{YR`n*ItbS21p@nYoOO@-e=KGR;5X_Z^;OdH?(RJUYTy>YWfu-o~=9}gvf-SW)W zEoU-(hw$b0r9W?(|6W|r7%wF|r){ljg3VA_r6BxpTpLq_{k%^rTzB4N!-(Nnr@zdy zL+txuOJl#xz%c4KWobebs|&;4cbqBiOBZzpA7f1CpOBKn{k`{IJ+Et~#`U=~Jt6+j zwO9?1M6s+RGw=Z{4BKjv6l+`i50hwDFs!ULp+R0@fvo2C_64r1E5jZ(-r*Il=6Y|D zx&MGN`ahfEU;Abs=-&JI(8XN$-?I8IfNpk-NJzis$NVqKx(!`d91r_zsQ&BU`tLgkyt-WRytm@+n4k04-oK9M z;$-`HgW;}`_PftOH6|1>nW)c=pUXeWFGjVfhpHPt?;Un&`v+P5Ur&*5=CHJUEcM%e zt#>i&5DaH~XS6l*F1}At++gA^u;E5;$*j$oF^9;MKJ$z=mliOr$2K)R{nt(Ny((6J z91ihZ1?Y**Eck12Zo%J%BZU|Biv2g3cc_# zI{UAe^GkBYo4n_mBWIoH>1kmF*T~67e<@ckfbXz!s5CZ-O^fN;8^sxjc&WT?iX=Y5 zUq0;=|6Q`!{PAkXq?dwYq~UFxpyPotFhlGRG+pkHS$}p~H-tvJn0FRdp?N=ZXv!2C zW%m=%0b3nQy-5XoGAG;GA7*2P2b6OQ3Jg;HcioQmhqc*6MNx?{3F4-_jfZ+iKc;ai zPoKsM%NR32DP8MNVNR2cAQ9IIHo%%m5HjkN;PzFc2EPVj7ZL>64-4c;5=yN5HUECIMpw*;AB^o!ve zhmI~Tu~le)`BQwHEZw<#%j8D~RZRg?&8V&z?uELUqntf!Ls@RjmzDOt{xb`}0)R=- z?FSoVM$X67%xsZ#=Bx-X9PP4oV6YmFqy-i^Mc)V0`>uzszy8)Y12utdf$Q zEUmN@=y&#Y8X6iNpDDMv?`>^r*1G8@dq=@HAsB4a-iB*Ol52y<)NkXR<|;luRi zOqzmHybe!D$k{nK3`Ya&CoYz*I)bZa4oLhKk)rH8JkyEFKr!{}tNY6$0~$=--Q=Xd zK2_``5&5Qx|Aqd({50Pa1g|yX5;cdKpI=RMETgouSg&R{m*)X#+@3|yk)BD(;qBvVI($M!k~e3nCVFtmK}(v{C7u!*>Fv_IyGgR_Hx=sy8tfer|} zmC#y%?qZneuY||Va^!h40_B@EG(*U7cC-vya4VwqM|SG5V}Q|C^n3FF#cVfnPW7p6 zwyJ!FLg&(eMeqFk_v6}N7gpC+t|v7iUbX&70N6n4jTqwsDbloUuiKJ;pIl-Mkey&w zJl@M{$ezB5yRsdVHF!_(G|GYMD%DuPrOuhpJfx_tPdT+5t4+vu+oe6>ymBRDbW{P6$MB*b9!aZaHMS!!0|@;}?H5Jv>Dx_Y0HUkni|;66tZjyE z_osGvF%qr|n^N}yB0in`JYOoyLu+PtD}u|te(so@M5TEwS;XZ}_l$a?#`cMq<)sf$ zMFiu~LNmz5-p)ZRlk`6I&dyFr+l5+v0|Pc~nH?jW@i|tdJeV$ye(!oD0hg&~W@ghf zh`Moe#n*zb=1Gav{&sLjxx;W|O`Fx`J{BvqIX61#5*Hmk@>v2fgG})9Z+@ zfR<-{_d`A3PfAK!L>hrBM@<9A7Y)Ha?jG(7ot#WnZJsd*;Wa`gJmH@W0&M2B0)Ss# zlE&KYKef63*lt!5$Ey-%t`?E@E)CC1MhWLhEDo# zjaasm2MQY^;r!E~v4u5nD)a6Y2{OJu_IPrd5(Y?9XQrH`jh5nW+4+CjS1F+%PqZaL z?Z;EBB8^6VHnF-sV3rS#YFBG&H^v*xEQ3}_j+Oe;D1)|0xwaQCf@;?3pNFrk-1Xb2 zFe->~sdq~-Q{?ur*V3w#BJ5MQ*#S`kAnH@1ea=w5`S$DMvUlWy4l_fwS5N5Z==6-A zQc{f~CBK3D!VC?@S|a@Kvtt)t*!E$toA&lhC2ukShscEv-BE8KCZ3!upE)=urAXKL zTsssL_#MOjyXYr($=Aor3)UP*c=_P%FXKM{M^xrURaO%G?bW-{`rTc3xb{DLswg;FTB5r`nrU5s zIovaZ_NI(YIlXaJyRos++?vx?@gvU+YX3Li0SZ)AU|j(TS$W(r9px&C>QTU|D+#(3ZJYu3w+KsI%Ha zhFdaL)~s9u)|!qQ5GX1p<1sKx>_gp4NT?H!}DT@l$?*mciS<&VU8SbSK)&@Z$l6 zzFw?8iyPg$wuABgb{ZpdcGt$8L^su~23*Abh97E?aX5h7VLY!Md%prNU+4jh%jv>< zL2R*WAf@89O+GZQ&(x73F!Bu)(?qt|$$4rA`mJtl4Ptw+PEMNqrF2O5;e8gCZ>CMP zFufoGChhj5ey-MM1RCdcG(iB1RC04&3^dX4{JZu3GZ5(ziC`g?(?P@Bg8w_M0n+)) zujJ%ZzO1b2V;3vh`o93pGWbV>obDkBVnfjE#drG@x~sqG0}61r53bJ<_whq|RRhLd zho1Qz(p=(`lyrLs(0X;d=?625Qc&lgDjlk%)Y;O>f5~((f;plSi4z4S(U(>YXV&r_ zSvY)V0QDB^oLdiU^p2}AZTp}LFpe5*7J3Bq-0y(9Jk-Pe>SU%kXoHW)F!5*x3k#=B z=Qv~F6tK~qVdmoZ^@2A3&JI`;y2C_qk5~moMF3K!E;K1Kb##QWv#<;;-oS0m*uPHZ z&`xE!cQ2p!ICSVuuiaTCWPUC%^6S^HfPW=aezP9qvOISVBT3r$ z?Hhdz{&YKZMjdd6c1s0DxrpkOnh!evj~4(K?3z+mzMuC`%PmwqB4 zU$1t=Z(j6WT<>s~R6I?k$Iw!(K8vS#Ctelx@@RDFB8}bdPKC*2Uy8sUhiQ^9dyL_k zF@pt9fzKEqjB9{G3#LhBr(LnyX3C(e5ND?fEm8kXV))h+9rTk;eR^r1U!0jN&>mMF z&Re+o|0w(FfF}F({TCEbP_O`Ll#)?0q*GBqLK-9o!st-CkrGh^q(-OI=onp!l1#hYyG19=uNH&~+|5IQrUM z`M#(qB|Gs}e| zb@}-UIy#$oJ7=&;PPJLBD$`s{55K*z-CI^fkLY4RR-Rm>aZwh2^s zXn0(92Qh^K$H{A!i2?S)h{kgq<-*W*!(N4+5ANd#)X~YQgW9gn)CN*>1kRJVEpmM9 zW)F;Id#}yI&g)RF=YqR-lZ=vCMuV*2M+#E1UA>YVt(YJlZI;mw4{~#wRr3pShQtJgHEO1+0WHGt`+RvE{Qi9f z=2}ZnM&r4U=Gex%RbiwS#6uqN9;B-VLgW$>(x7yP>%oGZ)*mj6l$DZnsws(!&t2_* z-a0%yjNa!}k~1>${m1@=qZ4pmlVfu^RIu>y2Xmue{C*k(|Gv+HY;%Eux4_i9dt?Ne;Dh($T-Zx5GcpRA zby_EvFPmulKd0rk<6he;UqIx6Ab4J6D#C3(4|Du&1g2g^p6-T)QM#P>%j7MN=-LUK z&~y0o-mE@>TNRusZ?3`(^0bOdZBaoIp0b{vdW|H0{!)wI>Ce?0iZ|VjlM6#IbN&*_ zccn+&M((lp2fud?SRW}o9wVBXb{m}ryPT>evHu#X}P8p zRTc6ChRZHZlTu-w*mvp$x+Vqlfk9nzVYlV`SKL(fO^TQ@T^6lHn3}W0Vs?(&Z|R@K z?n$Z7by;TxSEJDR_69vh4_6lSmal#Kh=g$<@F738>W!oI&CMvFl+aw$Oh8PbjY}J2 zyI-u;KXAzZ@|!F$P7CdtU@TqhofHj!Zw~lU)2$?Tr8Rlo7d{$YwyR>f=q4IB)sekNE!#4zu#UO8!2>5#_soSEp#C=N8b&aC0keW4I z2k7>4E`jt#UEiXt^-G_wDwXwg#gaI#$t)-Cs%mL6=B2np0C$j&AB5a^7uxpwsSmOW4N=@ed8#M~C4^%K) z(~PywUMx=o10x{e+snF6vhWomB4JwCJs%&8h1*{DsD6*rq>W2^cjeSFn7@x2 z!N)feadvj5+31q(!dJAuZW-oVbVFqLVep^kumj@BM zS5p(~Fj;I=kBEzpxBS&xNaC4Gs_&ZHNAZ80q_^+zdE}EFbxua3>_N1b_HOG9MBbaf z2TXFFh)qGfPWh}vy=1>RUV4L^;%;svn8~HhXd!~iNzmp^LRits>tv#~H93pvbu)Lj z6k5#cYggpTNF2`pLjIYd(+pr)eLOjPwpn^wfvROJ%hDbmwUb_}UP(!`ZC5>8+F08OD7qpFbOos8yCKEO`_0ve@`uQigN^(&B$w{X zU%g%LDhqcqy@SByKaF-*;gUd~{L#^Phy&pA+?l3Gn7_C7;046yv_-8zPUTwkfxXGb zmxe4k5Ba=J{dy@&c@$oWIBW7^Xui^6uBCB-7oEPgvMq{OHM-+c#x?4VoVVpZ-CO`) z?INW3!+dBzpl3fcWX;S>vS%rs(9n2y9+|IU;J!wnz54~*>ip_eF`S>jZ9+g@WNoc5 zb354$!xmO~vLb=&r&3Z=EpkDDI6dwK^ten@ZqZQ6g26g-!Z0rh}hO{P3#dFtrIJ7t>vrm_$4fh=q5u;&Bmid0D+u9gI_~Oc7_Ct`3t<0`pc}OwK6h=py2Szk@C!7w$?iX8=<-nwJ`-}U1K9@MYP-2j>)$B^>uY7Cwvs|VJAK4cucMv}3;(#+beN_RrnO=;80^*rFDfr)*tv^|t#BKbUbn&CR@J$5gNpYTS7 z+LOm|uR8X{VNT*cDUt4|Rh)c+G~}Vm@-(8V*Xjz;=qSJ4C>PO|eW=sXu(pJ{?CU0S zki;r7DR`K)66-~u5H=2&nnB7C#@9uNDY)#l#l*!Q0VR!1F#mOGaj)1lgqXJLA+IAK z0^M@W-$3Ce)3U zM*~(rCX`oh^o{O7B+jGZCr)9L;+K9U`<9gaws9s=v_-D5#GaQ!73NKJ1Sc&%Jxi_z z^KimbWO5YrE8C^cr|wUZU~ma3*!nTb*rRXtWg%su?Xsd5%vPfQ8Nwf2$Ct5}3xU4< zLB0+Pu+qh!CAT2P2@~5seoDskfYA5bKvb^X5yKjZ8DqSrmwChpDHERW9dL-5mL1^m zEJv-3iT@Ghf+Sz{jUODg6;@M*e%M(1_(O2j+SEbp_?N5-@V|JRA;tWVMGwDOG)V9H znL=`yHQXXRe!$WKZWGm0;d~{ODDr{RS#j0nUc#&M=JH;V>f|xgMvSV!4?-yf2mY(wD5|r zq+fviaH=uPA*L}%Tyy^5DX}X3^}of2L>YXu$rTUx!O;;uNc_5V?@3@ZUs=3>4`P7pSw5u=D*A^(=PStY{PoI-RNT|g%aScgCL=-{HReb(9 zm)DCk@qgM*11rwg;ZakvtbOR4Bw{VG%cHB=-naJ2cn251cDb^_Eh8!gmShbq3MS*Y zlH)3;gtU)lU89)y4){W1gG+wL1(F$6?%E;oD-kV7P%% zR7LUf;7>8?UnTAT`3T^b;1`??ERQBUO*#lH>{t90f=RACxM~`5y&B`^I3A?|;?5Ug z!rHTQB;;jf>v~NC( z&M!FA{O3{rw+vX4c#Pfi;5mB|A%6}2=#ua%pM=`WW_+=kU26@LyaZ-h3rW0D#?+V( z94}9`9VRt$HY$s@UlDs~-%>Y2`evY)muafKHQ(}ysuet&L(ZrE8VdO-4EwQM#PBgq zuzipcUx1sZdY{$qzWQ-Ge3guXZm38kDV&O}vDz!mIKMN|Jvk}Q6$ke-_#iF+GGHZD z%S@|s^;HZE7BBKT_9(|VQ8yK$BwlFtpf5UyFo(Ym40C(Q%>z99Z>xX)RmN$RV z`I`_pHP5kIOQUA1+9c%jlOWf+_2mi@HwTB%y0f(#l%MW!kW3I??pg=b_5VOFZ_k2Hv|O9i}3hOa-0R@*mjimET~ieCN6D6yX}nVs|T zTGA#s9P7K#SXZ|huE=m#^6Ozu|lb8fwem_5>USNYjLGnf_Dm3ycbSkS{lJ0{_ zZ2c)>)7>kxgW_928Oljwn>pafd;2HjaDS|qYd4B5 zkL#%hiWCpl$jCU(1*~%RS8vbR&sIN$qQ~F59-BI(Uqy|pB-gzT*o@O zSB84cUy&Uhd?&?1w~l7O#!p;!%Y`oio#g#0Tk-s|$*23Q#zdh%`&x<&I}3!!%o@0k z=LMX}5!5)rP&&)J03V>r(O(F+*Csaxvx^ks9aZXer>h-;JYCa$P@#ia-Qibm^%hM} zrS1V9@tvK~$b$w;QcLdJKWF3reOIM2U(8q4FTgdznMW)?@hvBg4zdBoVCOW?D$JYw z*~oj5h^zW`Ga}C(pVsSbWtZ2f+EtR?aR9FH6Zw(T@R0%7!KA#|9mGB+!hR@csp*S6 zw)mUO^3TO@UMK19`ChzzdQh%OYvFie=-p<%wcBps`MO84xbgC{3k?xrw2^j=`ip2f zEC%J$i3jnRcTT{r-ku4515Ay1_)7~~(&6%p1mgi-zU;;#m>y3}P&1mFGdMC+H>};7 z^ZI7}tUkxtOrf1NfxB19TDT`1`kUHPd~k{T1DF>%x0Wx2zDS6{CqY2xk~8s0Tea@g z;>4cuQe1E4+RCZ#&oILqcHd4k(ee6j*uK1h_Y4?y#;)&_fnvg+&d7ky)NOPb03B+j zMmXWUM512{s(m9D^L4zrUpthQBfM&-w#ke=-i2YNXg`_; zWq74(***$(Lq*&9#3+^L8-iS|PIk;oYHH&~Lz;?+FFAga5uacpj%n#|s7y99ND-~d ztE;q6`ApCKa5CrLg7!b2D#Ik5G&J;KJvGjGL8wCy@tGOc`tvg!;XC&`&=xdQ@#fCb z_wPmuY{|*Vrb)kgNmKZm0s^`WY7X2ZiF;UgkIqCMG1?ecvn2z{LGG{6Vl91N1I#Ux z6*A-=Wczk>%SH|HNqbb<^b_a~_&pIm7Plm|IFSwOzyw^Sq*A-3o^_IQ)u@+q%GPn| z|FF@%cKzM^bx`dBMj+K}&pA%qI4g&c;MbzGxdooQlM~{dd-*Qd$~xr8ZCo6u1wB0B z;nKDhYz%8o%9Sh%^A=?o6)jURI2V7uS>`U}ST54h&K7a*S*>5_;~dB_{#qTrS@#%M z4@I|cp(|qgkqrvNe$9_Bc%c$pYHOKfqzrB422~X19JxnDb4SIFS9F zIduojpueUknM#0u_V?})3gGT_c!bG%nHgd zYBnz7HjH7st@JZIUA6ACZvQnS7d5->7CCHzT@J})(R)Lv1{=PZxg@LoEKXfZ<3r0j zSHmOkn|J8)i;6I>OG`2JP*rV%y9Nz2;N^8UMC8@A)(@BJuu_(hD_)HVP0x}$=EZ1~}fPg@%9 zWWzRUHTF(WMU0?!wSBcU;K+eNO|p9&p4|%!3>;`Y|BceI$1sj}1+)f?=Rn#-Mcqbz z;1(|uqu?jaSa^fyZ_+tr(P~jfx3ECk34?ep+kceLR*3YyKv-RuMHLwt)-h>Up9Y~9 za}UvT?QePRB`+_(G~0VB?^7?+wjb`cSICRq94k>I_dX8v_8#v7(w9!P=Z#=0-~@LWKEc+oG|0wm+YY>ub320l*Ko;U56SZ+`2eNQm^%*eSxDnVEU z&)8CF{nIJ(1||Q3-kSKg-R3|`(oR{~;RJOCEtTiK`K~BxG1souY`-x%qW92Vc+$-Y zM22HXXn5(osu)ApsJoK=e3fi?;w%HbxSPL=bsz*LY1UUNntD5}puxD};O1)gypeiY66zRodqDJh~k8rbudc7d>v4vN{@)A zxNiNV2xg-qNg%@MwaXrqdOt-Ha%J_!9yZ~$OONvvT)7ePzVyAYU5RR~=|zv@Am{63 z*P|2M_2du=M(`XVl5N5J{mt$oy=ep*lr599GN*nxM3=!CD}D+1b9%X6Z$tUP#x)&j zE|)do)kW=6_0$p4Z4RDoZ5WG;_X(S;hn??CH~|;0-ioL{buT%MPIQe$24Ld7huumpY@U>J4;MUt&s%Ts^Su zi}Km;Kb>%JODF+TM9pS1pROl~IK^~CX2)7FGtorgu!nIgoZ8jLF_R|a1I!Uoj_MFi z0*~Y4;|@Th#Xjq~hxnX1e37Q`*a!iTs2@42`9}U#H~X`U;zzDbe!aM+TDu%-ZRc#^ z%a`C7Y>|=9+&(&(xc5rBA%8lFqZbg{S*t~#7l_;sM9i2h^rd}bC5#9~*3{>M3+=iS zZ14GbF8STnPb&57rlI5n5JzA8_}WiqPLy-|7C;IF{L|Gj1uA8%vM}#y8e1?cpDzEY zUGzH#d#)gF%hM{iNTxcO&oc)48k|-$`srqu)vjR$zExj6QpGd)@+ocL{PgZTJ=NTU z?0DnB6|4QLkoCt?aMU&8qk&ek74qPq%Ak;1%)KjXH%)tVW0P1VEDllMmoh8ej@^(1 zm6pDWta4DdK+l6CnUgpwJD={=!HFeDg{ zVxC>76|~0LaMq4C#Xg`M>&67PyR|H#TWVZ`ycJ)kmwJwSJt)_c;L*g;^hBVpP%iHS z$Q}$=V*M#xdsT5|F^d)!g?qMalj5;-{QQf-`b*`N>v8tm)@uT1G-XA3a$%pmx(vCU z^a9IjBhgE4UX>+7S8+d@11Mh$rER$5>NPDB`0irObnJJ^dF3JG58n_@Cm zE1OasEDg>z^E7}-IZ$WOmBcUZ)1#wWmq=(nkCv5!yEoMTkA?iNU?>%L`9(`Q^au{O zE^|@WRDo_yw{IOBeKhXk*EoKK@@C`WbTPMjANg%aPn*_7flKg);|Sjnqz6TD*REiU zRmyI|oJ&P>#@VYoA@wI?niA6`*T0xJeC{kI>u2p0b%6t>30riU*{0aH4J+5mC5AUZ z@8k)rG^|p3GQeg@awRXOTLwqvfunx^dy8A(JoTc_K(2e(8mlI^?xmAR67#PlNg^&W z>_v$i4~(CzTn^e>79Ow1nmMfR^`-28ugS>L808X!ySM)6C!gBm>|58R7nv&cLecbIS=uME4?zysVLXB4#HQrYYkAH> zr5oYaILmr{kteUD6V$k^OjD5P-@#{coGDY`DNul3b*>?6<>eyPR--xTX18)AvLtaD8X4an;(~83#t?{F&#d{g;jk zA#P^5xooCM@2z~()9;N^m_PmVkN$f};9uUbyz(MbXXyxDINW6+MUcN`B4d?9hWq0R zd@)R~9%LvxGgAmpN63-P+aP4s!z-TzxqoOJjq7+hU(QqeR;ePhBPM_*m}KwM@j}LD zKGOmlVvlmh%=bSM>Q^^?-|R3v6N$|~RE?_uZnSWOEtkkV`Zbq-J)Ax7^8gohoKPy6 z79bmi9@^?YNSIh}^7RKO^Wt%r>3ZGr>eeq8u-zwdg)hXcC48czV#?c{Jw2@{dxjk5 z;h!@zt1YvBv10e?X7PJWsJZ~>>IZvE{4H|)hUbc*Dt}}}l9S|PvEl6OK0?RTBaD7^ zixd4f1{%wJ@~Xa9Md2TNYrSoN<@?!d--*3j7UU>gP@n6g_<02u9E35te7Auvn-4}c zMdKlgQsnvF(4xuW%0-#CaSMYBYM%v*ls)lJyDDOG)HO8Ykw=$m3_NB}rcF~~a;hc? zSfXJuDFYF&U%$3*Lsbff=JRoS& zyFw@?YUtkNWs-{N!~P5zy~1jn4JEG0pB83*^6Og?zfgb6eZw!tviafu)Vi&Oxz@>F zJ0vj>pG_zey&v&Jg)&b^s^k8BhcRh`XMxSfxrrQ8aa^R{B@j9+|C#z*k&hOkV#1t{ ze{WEb{6O^NV1o;&k}St>i0kA+2kdF*ZZ|?xXgwD$%jW^s1)MAlpB z^3TcJe4Q?1q1JHHK$tLP38V7(1g_EwE4(G8H?rLY2EwvsW@au|do2agYj!9}*p%2= zR=C5s^t-AlxK1B~d9D1WyIW0j0s;c!%WQ}7Yb^=AmKJGX0<)gen^Hf?aei_quIDH< z>FDb-+mauioV+Ta!y~3_SnvOS^N(82E9cAK9QUIkkUovZ@dz~N*|J_ht}av0DIz3)vywjiG(<0$RzR|b z0Co{n8ZqB{CHpgzU+o4lD%BAv1i&Ni^@iEihtD1(*ux)Nw z;e`xl2GJKBBk{ANfzpA&UT@1|W*}Z0)z#GNX@xqKfDW z-vrCYQ!ZY-*tt*1`xGS;U9Hs}^8?)#_r<4poQgR980R-h`e}2MBX|^J3n8HqG)$%w zb?vhNGV1-PzFQ8!a4TdBg;ER@8MA6^+lVrCoBI;PRA*d8qbLkI2YSxDt~osZY4PHZ zt@~HqPEzbgAquQMyx=e(zeRrf{QZ+ZdzMm@h>u)fFtxX3EOU815hir)nB$^dL^}v~ z;!;qs`BFLDL}e{+uWJ*mGN@Km02pP%EF_@}PpExGLFtMV>*xH)j?R3|t z!=Lm_Wp*-I?6v*5SEI#_xSE>U;&MV^QCVYWj0X0kE3Ryj{@k;)hiCn(*x?lW#wad_ zP#f4do$}n`c9`v<+%mPM(ReEK6!Y3oaX zPuwGe!zr=Zx-8J>?5oJS!>vgYo5WwjP`}|9UgVgleenc)^ipfo-0IDnVch;K!{i(2 z>R({7?-GIf+(0y=aGZ#QbKST6l#cf&SNNx9%bxkw4|y%#)_8b~dU!yW;OVdMd(rQe z96qj>{vO4QkiMt?={gPlh?ri@wRM#hC$ex2t&&Dlh!#$xHJ^Apmg~`{yIesomx;qa zY}Y7=)+t?loyT)v;w-RIWG2By0Uutar(#gsPT&-i#@ujGvMR{CXUlqAeAmTgg_N;0 zxt(PBp*AmHSJkGyc8ztkLaeKI5_?yIOHv2`uGVU5Gg%_z1_RxxICS_6BBOJ13em%( zvz=3UE6;k9>uG8{T*s1)7yJ--4pd$rjZvh2RA7@>(etm!R_Na9$_i`cEDvO>VS}!$ z+tSIi5VhSg^X=u~=|tmD2+rNjEy3ZJA=(`Oc}w*0goupEdC3B5xlr>IXTN8Fp+kPE zg&5c*3pi!!X8-24F&f!r(Kr!t{~Tu-@}q}Hjtp*NZ5hRw@H z>zn_~5E2RIZ>jFL(&;!~s~ujaE>XM z9Qaymdoail-(iRSMxUoA&ZO5HlEor8PN$Jl`d)54HkKVb@PUaZ<3;`ib$Ui~9rVfQ zZ*FY@y4=PhAN_v!EVS@(VDioC3PY=AS03FFJB zi0By?RC@X}kcn0d6m)a`AcgcEBO|l0u(YRV`NJHuXKZY2F-J$PLhg(2_E*Q%+z-|Z z2uOtqmy?)jrdWP}uMr}eI>C{(nPa!U;DDbs+5C|u3Vyh#Gl})E99&r@TN6S|J@N3* zI6J>3gG!|eA+^+?zo|FqIRC;y`#_MV$2w;%J7wZPqipR~;%YVt>-z$I4~c>q=lSkR z=^%{b)e$g-o-nv(+?GwWZ?_xNPb>0p!@b*?Q6c2dNZrSQ|4gVN-vE@;p`r3chTcZ* z_2nx0UiLx1Mj~h~xvNu0(}OsXx-t~u`K?ILYF_<@emaaqkC_FYjtoMw;3J{K=Gh~L zoB0F~F|pb(ar@(B4mQrB4z#Yw+(wZ9IQs15c5ZpXLn&gCNto*WSu0=Y!b|_fto~1> zXUd^<2(Iz(&hL?+rABs=1RKzAn=Mu+Yb%7{_a=jBdiCNBX5pUnFy={;l{l|3t1p(+ z2qD6h%R_LxFw4F#A&-xHOPf_a=fy*Uhw6)_UGz?#9CZ|Nud+1g#PDHD4ZR|)`~12# z<#lZ1HU%SCKRBDT4`&D?1HB%jxYd4dX)tHOi+;_{1kX4#&thIr9N}h?9P%I7#|JrR z05JZ{{A7HxHDqQ+9BkMmiRV_kX@|Ul`Pcbz4!R>sc4IS=Gwqkzqnx6^wuo-jLsz3%Qp*`Zylgi(so*kp>^bNI(Q#5)dH8r(42~~+R%hTmZl|3vi(nW;}vV~eo z>$OR~7>JdxFg`(Ej*8F%wUy^Xq9<-us1rY7oI^5Y{B`*Jd)EKwO8l2M%p@g=kHC9x zl6;pE%sQsh!B_SVtdlzu3^frFe{o@wSaQL1g6s7)m>jyQ%q?|-$ND0muivu<%Ox2Z z$K+d{;l4-QS<54^p=7R4RiMM2q$YoqhoWm3_+R*WitZy*?Bw}sI`}de7v~!)NNLB4 zpqD)6u@`afgq(R}K82g?ApQ*#U>976UJTY3&dJc@%a0WLTvsX=a~i=c_SJJgU;Dzn zQ|On23!hWVA8+AYi)Og{Dor^ZlxfKr$E+kNe5z$9T>{AGvi!Q=K5@!14k*wj=&x_! z@35|V>B<@>UYy}ph&euNx#AvE)~vHL3B+VD+#}W7%R(<}d^;?XwxH}oC-iv6I&O${ z?3a=BU+7x!7Cs+kLx_u0axm?~=J*ubcd$vW&C#p80^L!TK7aAnK-uBdgL+vyZAazC zG=SFX;LeQ#b0VWu)Qd-_BWr>iwYtM*rLh|uVU!vwzVaBL90!=>WKRjQs2b=-ekOcb zAQ8o`Mi{VW3`TbzWW;+!kY6^1yc9VOCfe`hF6^Usrz*VU+1ISXDcgO&xmNfR#H~t~ z20t&vJKMd^#4uJ*tgcK*Z`w+#)8#d#YCdJ&fNrf4){uKR3*$EXbb7Ht3A1L(j$q(o zoMX?R&k_0ZaWyCSyEDh~ib>)F>oj%R%-?%fzMOnr_ zR)6D?f{j1Q3)!S&C`vMy9Rh1ow!FNNJ2ansT0h;QpELyej+e~pS8u7Gvr=BhFAZ%` zT?*8YSrnjfhOH{6xJxHaFh^gpF4Qm9GBzDgP&IdMR41l#(7>-3W0EDF6E=9kWl^1J zN&$_|Bk+959lHi6Ys=YaAjBRBwJsI1=fOXhPsI>y_8cBoZJN!- zMwk&BtdlP@?pi#J$b;@qq!`>U`CbvCA=I)I5o>U(iYy0uQkv6Vb}5SZB%qyz^Fu7i za;DMi7B@)HN?jpUZ$d)B55WM>y5EdosCbKNcSGE+{jG3Ci^h3NIWJQZSz#KrTXGlO z9qNd4Od%J<)Sjav+YRl6id@1K)@eDCHC-~;WqyhB`POdjh1r8leNfM*7oXpKPGA72lB&yUq`ki3e8GXDa@`B3%pI-&+%)urJ`WlwvqkR z36JM!0x^!1R&n6^1-?SO`FP}nU6W*Qdk#=0G)Nica=yvCYl_!U!BEJ4DMvS~t0yE<%yz#}Hk9 zx4*H;4ZC_ZGP9P~iG+-Uj|uKSW4k@rKO4h|>_zG)H`b)!mLf-jT!_P|5p(%2Bg`8T zy>^1(jMPkRMu`(`0S0$TY*);edVT!|2~@OF8(IOC&qPlLE#j!MynX6JEZ~2Rq#oR$Ylk2hUORdRFpZ zm}B<0pBT8>O@i`6i;>gbhEKwOlo5WMGKn=!!_6Y{*^;{ag)5pgpVIAhO+kERPm!xj zOGf<^D%yFLXbV2iZUA*^S8?jo&uyc)K*$$WF?b5J+7DN+sr`pb6Rt;} z9-K{+AP~D|pff!+>4?d7`9Aytb(S(-m6||T_dIyXn*j$ zBTZ`eq%B|?n=t#nva*+Q{1~9;7n@0E9I7$p7Q7~3zwPN8h$K+WdK}uY-RHROBjNL- zQU1C6h7xY$bw^iz#}n(>aZ5y}#M$v@FE#&--vwO3E4fN34Pc9br`PBv=|l?ks`UUR zLf-5IV$^^e56>61%U{jDGER{a`&hm9h>g&?dt5QaSB^z#Fs@3 z)NOnA!nWt3vW{;8Ty~-)IVF+3gZjcwI}w*Tk+DG@isU?H4r0-raF9(BkxjlsaU@Iw zoBHlnW}g15xY`)rvHJwfd~u!DoUPGWBF`zWgOKy!gQk2hw!l)9dGgf_s=4x}Pn$Q# z?U}T)u3f!lmsjhp57h?L>o*UkhPX6qvC5Q9|Ae3AF22*X&cQ_FD$sB5R4#h1-7Gi{ zgLldu4@!}~BPvx{0+I_d2t>DH;O*2SIk{3%%ot?9P(P!l)8EJao6#5=Di58mLAXz% zDraA};{T~CD;8MzY&YwD(bM7%z+ZyK$F=8IRz_3b6p^vV$g8S$H!59~UvP!vLB_Sm z(euRT!`XmpXjz+n2cdvH(cV9JJZ;>WIe7U9Y+y+9zwmZyKmLexnBl*G$cM6q>W7l! zH4$Gt zk6yBScSLOB>%M~B*yk&h3D1{Mj(nY0RVT-vm@_)_B7i*cAn%GkGia<9!<@ax8p9;# z>Hf)a1iz(FL_qb#89gdNGauyN2JLQGaQAWHlzNr&yh4Bs>sqyO#b3jeBf5JNfslc| zBY$&%D!jTz{hf7B`iWqHgYY%q89MMmVkjEbbJZ)JLX+;3(ewoq;COT#0%y@8IirWM zVaU5EarIy&?idM!n+3<39k`UuNL9``t5=mIV3!wWDDnEwFNpE6JK488+PMd@E(2TB zTo`$~1=4>mb;0T;fZ_bKl8mjK**y@L`Q*?`>wtcQaDUiBgUGUW$(G31=A7j?k!$3R z{thqsVqiIk-L7Y}@_td!yNi_&O{Ldep#MW{SHR4~(*E{fqssyGk)q0Tge)Q{8cK4y z(|p)1{0jmM-w|fRVYG*ZU7z()_E}{is*L(?8&apT>2z1c9x~zG0f0w=lc9lT^rnVa zSC?*M+>jz2#8bAkJe7;=A;Qrm>nz7h3-p_{@)N?c@#bkoK${_E98K<@Nx|3P{H%j5 zx{>QW%&eU6!XeD7=?^b}@=b^nS@bl!_C}tZrEQ#O0fA37NFd~6-$+46EL3m%#uodo z1s|Sf0?E>Q_ne5&(D9njker83t@+yiA|2oJZ;mHL6&01CUM1(qpwjhN_DKd3G+K*@ zICGvyC&{1>g1lcI2Cbh@5@(=va{j5Nl$0U>fvmhoRB(B45Vdeu8bqz@`vW5pQ8#_$ zs!5ctU43&7|B>sdYen5&kFL8WTV*tuaA0VG??}ACcRHzT0se`Ch24&k7u3I+1*Ltl~1k z|E}IjUbvWV+gd9{-51C8x1h(M%s7`upi9{TCx8rVOmUJQH_E?Uj9a>5UswG2M*{!x zpv~m$sPH8GI)wDcA%E=X5g+rEU6)9nc9sFPvczTVPS8On^|b~2jrx+t&VWRtd|%t) zkYB-8V^yuUqI@wkK_;1d1$>%~pwv|>i|)E+?o&UUBa;?O%i9rzq6*gYY`p>fDF(GJ z!>RisH-@jP;iA=enJwk$(@Rf|CIvPQYFVA5SsRqX_v_+0wBafQpSx)$ay$I%ho(Rm zM!f)-T_A&AZ0_!eP*YDMMCMw-a}ZdUU6>mq;+{`3Di1o&#rfNQ2wdi8?>32M z4`41fKuYIB?1Vw^yv@)_pVq^E9sZqF2;HrN)c>BF{CGE;-LPO}=2ZJ|QccOlz4dQY zcAq%GGRX$VdVly$%0=eht~Fh|QFg@K{R8E=3Ux`?iQ(HFlH~b~wOB=YMKo&bszc$d zzWS}rOe%GTsLuIJI#AOyC;`^Q0X}nBMSdF^1zR}~fRo64s8~iYG9JjdL8F;W$TzgV z)m-ve!!sgDLOlmk<;7s_k_a_DuC-(6%`5`#TuFW`*vn8xCG2fX4aQu;+qLpH6;cg# z=hAt!+?9jF>j-+Sr`4xt>E<}q2J$=EiOuDb6+6FipD8X9h5RwB)LaAKuFe*@<%Ff( zqpq(6+7W>!WrF1@tHSD$e6^qO+W&b>{~ksB>)X-8HOXYof6=!9*kNX4KFmMCo|X3Dvln{jRS#l3VAa9 zVZ+dh($=m=kRMUWx0RS?+)0+iW;~m8lh-!<$v5eavum$!Hm*^yvEAJ~lb2aPG@6~&s4p#5P4=9pcW}DIf^BZ?htV$g_4wtLp zFQ%rKz6a5heZZ83s>HtxEiDDRJ?70H;K;}@Hkm<;A_=z}*{KC=!<{xp-gk;W1e)-x z9Xr*9w(G964mi=>x^;7L`fw&@y4E|UIp|hqak28_$B#1sYe2C3{+&42GXk)ApO90i z7DfDm+jON}(OF&2aR#90_QMEUSZi195aYaus`3zqMa9K$2^R7Yjpt_~llYp)&f;c)ZYCWBemO3joK&y;&RQXP7JG`}JNYG$8QIL9SI zt;$tYL_XPLOX8$mo&^Fz!nh-skTLIrf`arMcbVT_>J2Nwc@Mt2V@PXnJLqiE~#x@WTxl!R?9?m5ufUpT#q*7KUx zFY(Mhc6#YaDlUUu&i3OK6SD$S)Y2&Y&Tsw;F8a5qQ!Wn(AX@Z2GCu72B-+4Skcxj1 z&kTJe7vDN>FaS8|K*Y`DJ6_z7gu1ljweahlx*BQZzd7H}lWmwyV#}?Dx~Fj6ongIp z&x(*^3jcRbmHK-7h+lbWB={g{`LpRW^h~q8>&o4rq`ap5uI9DUV#P0X(pS{JsZVuMR#+7 zUU2||#tLS;s7+%^uyyN;y?C#uD7$9XJZ3TR79gh*gb(;NqW5LcGmQ2#P879QUzE|S z8yK+AdmlA;MFw09DtB$tvh8_YeGo&mr+-78Z|o zt=;x}Nkv5I*W-5+InK6pReZ(5#4t)%E?<85mal_HK%m#tYs5PV{-y~~43zd1nfq^fc~0j4E3Nm%uo)Hr za=8?jR{g&((dPuF$+x&_!^qmx_V2M3<;O7Bf)9f7CQ)Nw)ac@FF09|Q`3HhYRPkN( zl3^A&sA?b-5D?f!?~RmNYXfQ!StN}bs$76<6M@m!We7`XQGA^Kwfwbs1nd(dflhHW zs0~9CgVJGXtHG~OPXTnbxU_ZJ@_YmDM`!NETF)LSN;=JBTz9YRM0(#M%;O?~E@Vpp z^1|bbN0xD4{K~IFTOwdF8D`hj_KLh6O1h2~rY=EG>|e}XO*}pBC0)ydcPTQ;e2lrt znJPsfO9_bCMVaZ(w;dMLB}nMSAFHSOsW@+q*@O7@r^p*#kLt)}TP}u3 zK~rw3koNmOPp^5>5lSnv-$XZz*;iANePN!HlNvPvJwNjTYVuM+B!j$u$44jaCB|(g z+uR=e43!fLI`gNi{fy}D^rHPt^@G<&>zfskvB};@D7JXur zk#F?IExoXhhzT^06Mx)&_=&vuC}DPH`=Ng)KA#z8X*nL=9D?K;9YL{lbad!ks%mlX zi;S1A4+T6U__BrKOCJ>^6{1EjKhdjq&lJZ2Y;A`(r+?h1G~3;IJ0+@OM>rNvtDFNC z{7A{GiPZ@nxX|akImQCo={nnhV{}$hB%Z0WJjlpN?TX<7F^>L_BV)RsLxi~{db?VO z2RtmU^;!X6(FDE7wp?I0UaC!cosasts@vJI8LeM^YX~hX(5w~N)uo_a{W9*%DZQa` z+O-)`dW2mvIS~$Kh5e5d(_HC?lHtIjt;a6iLP?;b{%>KlFZtqBd4ij(9O-yeEIVXd z0p`dVskIa=pa;k9zZ#wSZF~E!)>RY}W37NqMF3{8{U851Q5%nOEDsx=47NVG0|*Y? z`@I#N3r+++iva znA&UUV({i zRK+G?okwJq?m>wTyO;OetqOmT>!-69NP}x@Ya6;JZEMxClv46XHHyE8bKVCYHY{^0 zBnj&eHQ(oMJoT$P`s#BqsB2d%)fy_+Tcy5I!nT|vR^92iKjBwtvNLygnHgKp*;lHk zn8e@ACN)x;Dc^NgIptnEqhyZ>e07IC99%9WLE=-ca;8YM+Bz_&A}ejH#(p_u_%FV!=kY9UDlRUL4vDepybnmPmk)_D3YbF+zPo80=KA#jw~JK#NajZ^ zW1)P;*wplG-Ek{^S?}x_hP3)6CVIKLwEkd(`k;uJ%X-JnbNtpcV^nE};{j2zmjYBfkYLak4v<3!sTEk@j~$b&mcu8i zHLnPd=>AA;0)JU&cADvmKk44ySWQsL<=@gg#_i#XhmtPgW}dnsk{Xi^WFl+grC{15 zy&yHz_Ot$?tR$Y=&C=_V?(fU&Uyq#m^d=!b%~=<3qfyFRRft$Qp+LMz%we@w{E756 z!Bopsbg5Zy^~<76h4<*1cY2%AHXU+^LvOm7=j65a1Jr<|PcbdfCF;;%XKR~=A2%&w z$gzywfy{o?88hSJwh1Pd(+1KY?=|f3*INE)RH0ZBv zoE>l4Fi&*>$4)7>K`&6yxr#X0+h>6E_V*o3s+P*R(T{a?4Wib&l!>R$D%ugX?bgS0 z>%gfh3)+c{&mtrH_s^VhGa^PtJ{urVoMz~6xn%9KRuq8R5rcsYeU_ zbDI8-S*$CN^R#u$jxed;(|VWfA%ZchRUKQfExgls@;>%GjD@fGiBSs$R;s{)yZ5f= zijJ|Nb50b9Omv+dcGRC zBg;Q%mpeXgh-llDxn@{E$V^DssKb0(z8t@&Q5Oox&ICRx|JfV&K|V@3S0?1k^mMnA zni;t|zLomMVjnObc6>hd)btY*HEz@TlhBY%8P~ZEK>TQ|IX2@qpiF8tNVz>LC57X`g9b}Q z1Dn6$=&=CB@9}eGAyVlxB>%cqhV;)JMY_>~G#Zu@j=m>?yjp->oV_S|qw-CSr=HQlKI*OHbk2E!%4a~b4Ccu$^d$w^8_K;&ovCA| zhqJY)vB3JSgX|KtaW5xG?i4ykDAxC}C-Ntg#=ugAWy{C;F+jKpU^=VP+m!Uw!Gu0O zh$&A>O3%lG{pH-(@osAex7-uvByu=y;ws;Q+fPa-0TYEA2$bh0xD#x2sRi?O^{1eG zx+d1vd0r)2-RMhPx~BynmDE;}SkM*becldzL(q}tm~NYW^Txhdf@Z<>3`i!GFz7ER z18&I9GOjQ_WR^JuC%+4XLOVO%PIm$2<;GW?Q933`zgJEF3R!;M8!9?i4xfVP&D0UK z{<6k@%NaV}J&j^Ev4krl>SB=5K#}WF`MHzUb7grAlVZ|j=V zDjL7!$)EA;9Jp`4A@kKU>q^#wntKZ740A_KL@qyWEweS(mWa zyryVtx%$>%b2|E_&i4cNry~V*-=zU@!<&Aqulqpv%!j&dC*^9Y;n zgf-LmRaG6W)U=ad%cl)=uc9`@4c6kavKD@_6s}WES^#NpT2ouQTgjcmpIE5co(eSA zOH0bCnLev;sZ@I_+n-7M|p821Dli5kPCsC#BLju4{P%;pxKzls25(MM_=CPaBAktxW7@A)bNQ*M@22LXt6Z^8{W@~SshRJ4?$OQdY zMtBHHQm$R$4fJoRc^^V8HYt8vIDf*=_pziu949;8goE=IjOR4^SCMk{gu|-ng!|Qj zK@#e^Y1s}9`{yO>S#Z1C*ICobn7P3@;ru2;hEYRuKF}$uH@Z(URfLD5?8teC{R8s z$FF^JxPgCYw{C1SXE3c}&8jb4SKFDaRH#yPZ`+MGT!Vx-nF=%)CpH@l)_QoCUO0Cy zIyX1>Bck}yrq-wDYj`+a^d*V=Dn>@>PXi^wG=cBIhfyf%JDCzw~q zU7))(ncJ+g+1E+EDy3zjF#a@%D}1A28Y{F6Xh8|AS8^2}wpJR~YbPW)-+!Q<_7wW1 zi{MqS*5-x{+o}vW9-rR4%FoY_Yi;Hh5RmR?mmwYrN?#mw6^m7Q`jpeB?vkU+YC=v9 z-}d$e2FCRCbn>Y#pb4cvl&O`NVo?p z8fix-CBx5;nitm_+_r+8Dm$;~dx-%8iW5=dHLIBb_8tL?;(Y!3wSD3-B4YCKf9*?{ zDhyY&`*HmtbZRN_FYMTFejMh3WkDFao;4k3m;E3`v6|B!;`m)o71a^MuZYhIgXWm-)+pi}54MUYy z)?STi%b4boW}oK)K|oT@ZTyywQ?&SOz_NPrDORd`fNZ6=4>yhZ(|99Mu3IAIsk^== z)c5j{VqKV7JKe%Wv$^=miRZ~AWaa`65d63#z;$zT#f$}Ep%wlH>4o+d0+0{#nFXl1 zPx7|?6J7_V&iwrCyLlhW9V(-H?Hhpp-^td1{IWg@H?tOBfx&;YcnJ36#?6}-V32;^ zpV(gGvrK`TfhJ^TvVz+VYC?2s$MYf6HPs;>NS5mrR>vk&fOD<#z}YEBa%B3tlS8nV z_i;6S1JgelfWyhBx43Q@t#Y`K3`?HGvysLe#6~gAk6=y<=-Po4K12{q=@lV zNa+goF!^oLyXvxc1%IJeLVk5?bB?>Mn~-|E?pzauF>N(U@MB6?`OwB*X4TwDaBI{#KsV2#b*12nBoJER*X4>3M0^ zFQP*zD?>ztK#j|)KEVBtBMi5vMDrqtKezagoc$VVRI8&am!WlDlh#dl`ncLc*5uwy z0=9iL4^_IyeGq9oDdGD>mB;Awufhg#99djMh3$j?< zF73?czYr^`>go9kC>;k5X(2aibgwWC-nRWou&<6+K*sqE3D{}QpX@teC;C>n68Tyu z%0)pxp)_yv0Tq>)aPW^;kNCH@yO}a9bcGP7PX!Mc8(~ zb@N_OZ+z8zQg}vR_k68%(D%jsE3#LUmsWv;RFbvwVHN&CTxVwh)^90O(PH%&Z7ytL zKiI7O`C;d-50Qewc5Q4G5A!PGdkfH1YEa+O6^mO_9F^Jr$ul4X*e+?Dk(TyuNl8hK zKbC)|w~v3#q;&yiA?}7>&h=Mua(XQfx%5#-k>s%(AZal|U%zpKjmFtR2RO2)CU{?4&~Vr)UOzA)?Hx01`YHuPRlWL{ zF$6+r0f&Ta&3*X3x>^!PE8v~I$iF-sdilI96SUGJ!WjsN5hscw3HdLr#&F!d?p@*N{3K}Bhe`j2m{3SY3- z;LGqDI)-ghwi7~#Pn@h^G0pLis)wa@uI6w(IMC!GQoLRI0Z{B99f=%qQ{I^&C?SYN$beMsY(g@lbReMGeXMk{ zlNyD$WW#5D>|RX?s_Ur2uZP~CS}8d5)jV)Jz^7LuTcU9)oWH(D_IT9_Xo5{9Uq`G4 zg{~GZD@r>9lHNm8>IeJM{(}hY^pax5Hqc7r-&BA$s`Yy&Z-Sx3OHGC$Lk}^xwXWn# zZGX|BIBfy=y&CH`L*QD{-Sv9{K4_l(ZrNNRNC~(TNb;QZ%6x$t6&Fw3zP^&iN$J>hXL&V2s>Br zk}%zWVFcyghg>oo%QP7)X4Ls5WI1Y_#s}TWH=Mb($D-g)ElMkjeJH+H`uh7k#!79$ zcXtPukan%D(8iau*yYi)H9>R+*%vsY#B-8wg?q5;DCV$yNN2T;uS5FLdf!)z_2p8- z@=ZXw_8jd<_=dT=HSQkTyPk8wScef=q3$|`dn&)6u z%I)|S+Fo|B+ArX{axY-LVo!nOWQ;G7Q!{=~_DAkmJ=kf~ekI+{IZhA;&kEaLM=e!% zpBQgM{JXVL(1}Kd?<8EO`Ixa$tBeouJ1o=sNXywLm8xy6FeL z(DzzRv!1is(IW1Vmw#hh${P_-)_qV0k8zzLhkDC5=;VjWO`nq^h~mCzfr26^84Nwq zN1ID)0vWuedtW*`2_c`h>s=1bZSYkXcqr;EfEu768XK!a(3^&qw;zl-Y7pi@I$;cO zyu=17Ed1k!V`cR5adS&(soR>%CJG3j8J`!P;lRYS#W;I>+dF-@UAnm@yt^w%^xAKE zvPUFHVqH#aA^V*+_AId&_q_*x#kkg%gA>Hil^!3E2fAzh<5&*F-?cn=dkGQf_rO4Y z%;ltQPjea>75q1^8ho|Q8tqIUrIyl}V>Zb$~ zvt@R-yNT>vnT9q$y=GJ2c?Cf-U5whp*z~fJLw$Yy-eFcHwr$VIq|{VZz$;vxX|C;? zYb`Q|)WiIN`WV1vR&iE|e*W@>Gq}2PDqqzF>7IyHJwAM5cUki3*83FRYL%Cl8MuH- zKXs^vNk&y&fdU0PeFCczh3dzY)p7^0`E~kWf^D>`>Y$$dUf|Yu!{W*#sTGBPbkF{q zNIFaLOa_%-~?$lKM-YA`!*e`q(AUM}QS3a9#9IpTTL@ZnSg5M=-yjZd|euOZ@svVZq`?O0a zSI*X!Mk}t1n(F2_*n-$aA&EKR>gWV0*vVYJ?E4kNKB4VDBn2l_?fTcoD}wTu9V<_7 z8W&XoLQKcQrY?2$0eZ}FjQxUj6_{2hLfOgL#|jDsCyp7k(_6#HTcJ!+0>7D`ZQ>z5lu7mL3;MP zQGh0(8gj75^d1!i^eMtr&brh6hkxSvn>yMGw{h$A3CjR#w!}G)8eLD6>+s@sO zU{kH(jg4`^JFBT~Co)Zc>)}`BI?OxrG`?-xX+C85o8S1oIQCDm|Id43f@e|yj;N%v zQbw?>mg^VM=&#=3-`)$qYpFHa_HD~9@X7!8e5HjmZh^Y=9jyM8E%{@F|1VcM9i`3y z%v)C*_CNYHYa*1~0mF)_nm?*cu`{>rpCS8#lqV+Z>ZlJ&{g>VK$GWZKK7EW7c3(q^ z{JO0pe+sPV8yL9cR;qOv90sT~Q~qL5BGA+y zdBE?$jKs$lU44TlMaVEaAO2PElY%CN$)kPaV`JNPckj()N;5)!_0qZ0-o7PVnZqjC zfs(?vBpT|vneXMlT(AE!+n9$P5339yPZ^s@fAup2*`Ao`fnMrUm(-X*T6X#|3vW)> zb-k#+GI3u8NIPl$J3YdG9%&)N4r^l3yYq1pWD@%Nle1}F)H8gI|3=L4pTGRay!`d5 zLN5HW1z*ndk!Y@f5R4X$f#ctjwE7R*EJL$n4UHZTu5J93&Ry4UPCPhyx0tHi@CjLK z_pihA9#6Jm!NjTL=hPn7^Nngaq5SatzVg$-i?sIxlA4-L*4iS3dNY%+JT~|*x8X#B!37E%n-OR7|!w8#aHQv@j zi9a+E9^gH5&{~_JzJIb;WA$m`>Cwv(?;bvW_#^SrrFUB@pL4HXzuxiu-4MNv&8_Jg zUXvPLqm&AB4KoQd;HWnuF0(Bi*)~0jT-{t8UB$7LW&f1YvY)Nxl0ie-;W)MstA^Ua ztruqpH{wNn=#OcaQsPi74tqK8Mn0>K=ucad$G(b78jHMa)ZkVjjNLkp0uvWGWm5pX z^kPX#NhO)>*P7z%qt!#B;~a7M83; z`ihLHR`sz91o*JqAOq9G29K@XXI>#!{t425{V}44?A+?JiwBo3HXU^eCCZM~3joa; zJn@u;6$y!pEg~9ewZBlLtz?Plqbafy*KkzceZ^Rjh~j&>7(#Ck zA}+0J)GG)cfOXxx8lsn5_71-1ah2RScD&N}Z4L}LXsH4xS#jc8@xgUb#6ayisw4G$ zq51JAj{^Af@t30HYOD1(7$o@Xzrww{u`(-y1L(RmUW3!+KLzBQs$A2!xtAGSQpOhOk`ibL6?WjZ!j>Q3ZHM_GGc0n_H%y)#;QlxgY0`_CtSFPn}$N!`b{j|%A`Y7dQqW$#u_FNn8#dMVO~EiCH1Xk(JlDo#GRn_ zePJiDuyOGszFj}x$7b_h>w3;GFI;Y@-a{Mf;I68_*IATEQ^ggmwbV!6jPq@4^(wX6 zDeeE0bN4%T&lz-31ies#l&|Tz#a3*pSlIh2=|Eby6H}Moq5>?xKxwXIZIcF(yf~kE zyio2%zJ%AeyGzc)5bOt5=u%XE=(m#uyLO$C%Zrv2mK9iDbZKuee%HaJdKH@7 z6gcB9qZBgMOc$KY+_Gzkt4P?;T$LrM*NfMT@}0J<8Ki!b>R6@c;u-}dRU(e1xx(p| z8MB&hsT3CPWOP2cB0KX9>PEc$Cb*@#fcKn)`wf!|(WH@f zOYm`o3slJ1i;~MpAMUkR=?mXnY8zk_oC=zJecNHQ7lKeenX;N^@~H&0g&wQAB?`jK zAM<{@8ZtRB%_q*UCvuc)vY}2HiYPUmvQ~TNj#Kj3E2+~D`CzKiif+Cj!N=>>Xn3Lc;DYxte(r?XSGeM^qOyu*iYh&_H-cUrzwTmN8m3u=7$_reDdDSk?3hBQ}(OBw6Wa;@FyJt39RqN)0 zs~X6`u7ySvx+FgZ<{jR)C2tfS&{F7v1#UsrWu=i~iED@f%dmZkMi7-B3*-7QvoX?7CmnhmE%c4*yrG2+A6%g$)cL$hDNybW9&*?QeqB5r`Umo@n@5 zJvQ+m!PwY?lM!DqN>9<78>-!w}?)tse z1N{h>+TUt}9V}5BbM-#bJp-9}+VE=z;h$cuV~Hg4e19YOylF8CI_1GAvp-vTo%W`$ z?DOk%^vuY%v#ehv0?)JcyON~|T2nIoY9mr!y%^`U&rqQUsk?OieqTHm8Ylr_XOkME zn;u>)xx5q|y9;Ued)ciZHa&GqnneJU6)m3C!`WO#h)}Ot2pa5>Yd>6mVtjgi!-TUU zRf8e<1}m8;e`2{^K%&&h7r!g9o71x^JR#8}JP?Nb^cW@F4$y1*A^C^5$?8y$>dPhHbQmLEG>l0}~sH>hr3tR>v=!Yv`I`gtpG!OV@{>H1BKA_Im zsgg8*Yjxbab*{Yl&h9h_e=7-GJU#{IZ=bSQGTm95xoMPhjaT#Aw~kbbz!T5DiAVLQ zIcx1o*kC@# z&cY`kP|&aghj*NsB>He$^9QO z)&^{45(Xlh9jX47?xirdx&SV9yZexVHm?t;s#JFm7svXj*!@{!)a~tbW!A3xz=3P@ z)Kb%`vhyCXG-W7 zBOURY>;{9(vVSqz1(?{emDW70hEIV#kSj7dyJ@j@zpNo@H}7X;V67UPuyvf@H- zQR-$*itf!Hf+ckV_e(0EUdt2{ycWAx%HZELmksq6b2$*s+R`&l{b(7UW)_;+Zv zISHDJE7rk7&Om6Gc zYdv%F64J< zJ@{7jv$JQlcgEdICWx>t_3}S;X8!vn*uh2;dFD*{ZHvS#^wi{WB&jPy>%>OZR=0@l zW5=N{m(692S<7njZ0%B(Bj_9+{t~PBxVO5(+IV6-%vqEJoJO=q*9etT$spR z2FxHG4#cWEskS_@l$y`hWyCGqp&I^UV2^16_i@N^9@TrU!6flRo{3fk^tpqRRtGM$ zC&j(GtEtpjU8-r^r~$i+Q>6lDw=!V+g>SP6YJDG}jKXqos)?yvC>}`5}Rfx`T>QH&+Fx`%;E4iA&U)gkrlP$IRj>+yp zaZMq0L0@wlXT{xhRp+I8CMo{rGPH7Qvwg)z;ht`10Hqt4=m_Cy1|_qh3m&V2^6A6y z?=PnXmGj;aGVIz(TiGsh3I6_>UHb%P?s9-2ekb(H(4owd}H4myL@b-fZ< zvpX>|TUM_J287$ekp=bTx@)kklstom%y6sJ{R|D>RMqe$*?>T#D)(mVr%MK)dXO;#01D~v5zX_RY+T}xs9jAZ z@+>3)D~^3_fPy^m3&x7CJGjs_aETWsC+;q}r>lC~B0Ehm@N3w5MR*=~c;e5l zdDm@PQf&+4&h2BAfm+Cr!PEzU>j}_24u8^0(vM zV6ESMTwJlqg*+T0zi9z5wHkSUJ*@pjyQF8^MaQjf_r_2(A88z;k()}VjA+PONJ6t% zH{%+Pk?tCw|M4gJ1n9lKVwCx?+>=iSiZz%@}*$jKB2 z!=7eR&Y9Tt&*oT{+Bnsh4jX^u*40NfK1i8uu&-m0ISz0^_qpXl418z9t&#_P=a!%= zJ%_XB-grZ0F5rwOx4!Y}3k!hx90b^;6xVvJ=YyJsmY7UJ)A+f zVr4m88X0+~Q_t$XWHQFQ&587_CG9?eCrN!$EY!fG|E=*CaZTLgN zq_EsFguC3k!ojXj9Mj78v-uy7qj_OP;t?n9{iSnnA&Zq^#~;4X^!s;FSX_MlCZW~M zzjtO2DI83>{wv@6U+&#gju1b4_UyCNpcR`0+~7xK`$50BxXz?~_9#X*aj~)C$9X6W z;rlIDcIo8&VisHKQRf9}Lz}k41=eSUA1V;dl_-d`K|_D$)8u;&kuJ9L548$GMLxKZ z%6LJv(Eqx76awvH{yyfS%seM zY8IJ5a1JcljkuP+Am814%`MQ=pUicwr(_{3!U~v^4*Xru(CKeOJVeG;8Cfz@;s202 zY9g_p!bx{xRee;WWJ)a=WvfHCTTKS@(`G*`YYRPF+N29aye>B@x0sopVUX`@LAsO& z>FwQjbJX68_PK0^Kkl9WaJqII<7gB^N$`GgzBdYCX5{Gz~^D zefOgBtD7i!p4#CQm*3MUl}Zsbms|>qJ)T6KUH*nty{^dp?Jb-@BdTho(hYnf6x)He)b%M#qK_m5=FaHRf38o6xP#YR2Nc zZlOi^8nD}a?ELVxJiR{0M9PaXv5C9FqH6BfYxn4Ngn30c5rOJ~_c{I^(cwjEDjETH zpg@Q*H}YvDJ*GTp86lXM)Gq2OX8NXG(8lBQk#;*vk~pxh1mTbF*rxL&IWmTBdTgUQ z7OA&bd*W@vPIutC*9+>Pqb*b6r&zX@Kq$$e^E`tx>Q-hi{GbhHCw306>p=KJddw5A zn0iLW>vwY7@2aL0#g*R~8Am$282!!~sXjM2^KGxHL|@${j!NoHt`$6XR-T&T7gWQ4 zaIHIpdADX|vY#fesL-`6+8ULCgeqD+5hGue8N^{ykN2x%X<_unnDxgcho7DlCzAZx zX-tbh<4`uegf-`(yGGcNnS|wp?uSY8_24+2+aMK7vPUSvo#J*G&L|ZmF;>93LvQ0L z+A;QMb<|-GGtE3kuG#uYdmTxV68IsSDoz>w$1=_}+Bk4Eq*1EIu=ufsfg zOIH%&X45!gv{?&Kx-^nTlN^KeCCL&x!m87sZ=_0(1!7k)ja~b`&?s(p^37;3?EGC% z$3Kt5-&j0p))DXT=6H0eBSzr-L4(5L%b>xX8x8?AWbGk74M*Gjn#%sza9v?gpAUK( z&txnN!f6tYCjN3XZ7_+3f&VLg>d&VxVW{3!Bc}4f*wv#jshf#-aeUW%5kRJ#*{MXPkn( zhkq`h=@25#s&x0aH&48U0iZ=B?M3FL?`;OzOWrueD}p7$pxuFj(RtHLp~ZaPA7@$jS61*{plT`+f_K%wk$z-vA(@xUu?4gKm;>K^%*aDD#w_9#3ZF{ zF{kI!v0zP-n1`)S$nb>BuxVKfL(b&^DdYXScRb&+DZco|OZMGP@lldRPc8=hPDF>w zKP0qVxadQ^L1=Tk3c&hTZ2Rb#?yQopUcY&DZo|TGl7o|bdLRJw*vur3P2u_D2Q{jj zCOLPk%;7az3@@pj`zIP>G60By)LR&y`TBqoQ||T4B5_w+(B)f8Njm&Ef??H8pyC<9_Lv>_ZZ0Y4~FL15i@3 z=4i3}M|>M?6L&7C8pl3p+@vfq*az18=d+unaYf|)#UpsOl%Hn)w2?rZ2P!Con5 zNHep0uZPK#4*LB$a;F_8$(V{}|BMT+Os46#x6!9n>3*NzQ)d>ao*q7|HNE$s$Ui2- z4oa$djK|Rw)Q?g=E)}%6_kP+!(uhCITd9&%qB*!o#(b8GNC+&^L5|NFI&o<;aJvZ; z(TzbfSlOq()l_2vIJJDzRC1LP(kq2&o)Z=_KIRANO+D`Q=%!p_k24lU`GsYg(Arvs zXtkj}h;SV~qskbvA!WvIA+ns3x)S6rq5sT04$DUgE>Ya$=J7~GXuwt5_iJ7bXS}Rn z6x9RmnR#A#z2Oz;&Z*Y%xIKKndLUi@32atm>QHKd&^y$n!_nmTu})Dx^BvL<6GIG| zy3`dA7qq01z0&6%=l(d+WSP^jY;?8d5Kw>rQE}<8YCOn6v;C;gWs}G;{C4Y|+Ys>-kA2 z6g;wAi|;744Oq6W1zkMm;TQb?9{&84jxgmW6E+nY`7%VV0uWpH191Pw)!f02i)j^B z{B7C%LDIni>)#b{Zil0|tMlsU>8;Ty#y4Y8c42mmrUidup*`8p(7ig?(Q(MGGI+!N zt+dE?5I!o(jG8gGjWpZr)tCb7HJ^MvSM8fAa_o=YDZkUBa?$^@m<0GZ`XYJKDR8t| zi)IWd;Rs2Hk+I^(Tp_2ZD%FPrImxi2MOq+rbNYS-W6CuqjtF_D8h4$N)oJq&tVoOL z^<}!nD38F;<}5{A`fp2C3YKXcp>iLZJ1Jd#u=9uOxw1hpAQAJSZfzoVUm(HhZG}3K z{Nz|vrSKz6^c7k%Cde&f5<$^k(%nwi=#jQAV+2QgG>xWSrTuPNj4Z*e)K7ygeRw;k zeVe*6qn+36A=BM;gYu}({*cV=nFYmg8$zOIJncbg&}d1*4k7{OSHJt!{c z6si-gD(Lus+m6h0)Kxi~w{G6Nx!ti`PoZmyy1QI9Rna#T#ey}?5OYf{7zD}G@To(O zz2iY|MAcqIM(Gzn&I`Dc^zyeI4LG(6Bz0482};L<-LA{ru7!s#X{(w1R7Ue06&?8g zYKi@K`=Z4Sm>2aLFL=lof}Kn%;ox@Pbjt}W@q1nEv4uLEGqvPIsI?x{eAYJJD#9E0 z`P^g@lS`yw8;95;V;Qjll>R7--OR-R!Je_kcish@Z=Nn%>uc`>&?~F~} zdqK87Ah6T_ELst5H7tYMUC=4&MJ&7b=6q(oNA)|Jci?YVIfa%72g(->E}_|h)51l`4Z9ANFj$ZX{(Y81|0hvG}JflaM$E74i!?D5l!8q%D=tZp|t@!+EsbT2%$*5 z3)3!{`;9(LIUgN(aHzPv>n>pR$$M~zE#Sbi9v%X17$psMlQrT*$|rXVsS&yxmjkiR zBylHG&zocpQ7>3aV^%vX7(53{`ogRuU1tFpF^Q*Tck!`V>?pJ^yRH{oqL3ohMZ-S> zW&UJp6Mkgt@q$ufq#$QnhM^1g7h|9FAbb zH5~hL7CK!<7m+aoBd(u=qf}?CM3DL`dU)5qBeC4$T~+=~^9*LdiZm7t4<V} zFB?|eyEArm4w}bdluP5n1PcuNbdDNB*y1V;nxt-J4e!_`s~ZzhR;@4o{C@A+tv(mU z%7qSt;ZL>Neme*(76}qRSzP0jH&`k6xh4Oj(M2xX+;P+XaEUTurUOW$6x!A zaff-~S81z%Vs|RJBf=lxVh?M1x8Oit-6Pk<(|u98FEM**)pSVZv|rG)6kF-?gFoUW zIm^5=w_d)m**I?GeIrWr^9O@6m}8MbPiz~res~5A2MnrjtwH)_wV0-}R-d^7_7-$MFyVLOQO+C9@q!Ge-nM5#m}!*={9z>`6{;>?=_ z260>aij-1xnxmI&QHS4d@BirX?Rmu{4t`kx-C3_iqjnjWxBJ&U`hA-YB;U5nV28$y zb=r9Db?8j?1s&a{^c)?xdFVk94hpOEKE631%%T8ECzktW%=Vg4vx}_{GE@Nhgb)3? zBxPf&XlRBR@O$ZBB$vK%OR-1S)%9kCFz^Sj_qgEi zi+TL5z@+J6#QRBVg7$@DKOzu;M=kQ_$}I3``px5Y@Oj{BW57$G=W(a5I8yv$R??7X zX01|JTeZp8pPwUnrLR6RJ~Zs2*J_+j#ZIGMXyi6XUzU6&P)}`y9#%P;!!K``v_|~o zN1lLmSl}Hs5QxN0haDHNQqp3_Id!Ix5>vFZ!^{0a$ zKF-?w7;oknMi^EUd{9MmG~1eKypi(x#xOo*ZYZ0lf~f6QXV3c3z&5~evlf9hNx8$H z3!Ku{rUjp2HFn~W78#p5dSh^EBS-6DI6(^7Bd5;j@V>h*D!*&j=yRyivu!{zQHDSU zc^EXd9xx56I>anvw>##TUu(RLf4B9-slp`%hNi$RHyhOWzvOlbA8k_5Vf6mPRjnqoV~5netM_^vTP?~`Az15$H)42XQSZ$NFs&E2*zYyBmc1mA zXU}G>0W1bG;X2iQw1BbNS1yQR)cMI6%0T}Y=OiM)&OS3w4XRx4TioB;n5SE1x|xLG z*ecYk)K9x==r9=G>hw@;AUkASK;K>|v%_%i`CHLoPdAe|SN`(EPIlfAYc#{U_*w(s zUNtBu$RE>M+(FRF4{PQvl~(+2Ug%?wP40K?!JAoB9TGMVRStIC_lsJ_v9n35Na6XVR84pf zC02ibqxeJiJ<5lp;}SP`aEw>4T3%N;-YjKCh8%b-Y+rzlw4SlD2TjFL5g?v5Fi zO{Jf2--xy#(9;nPY9Tv{$d{rOLJk+8Z&Ml`rGMT(*@#jGnoRx#_umv^s$g(FzVi(?y?*q=+vb7xl0%A=Lzb9^q3bW8~~ zaDy1IcbC!zC#U6~snWG{K{5s1_g-)S|CRx#!&=Z*Y;j(Vy}2&!iBSseT~Vqx<{!A> zZ+hNbNxbi4I`GtuzdRM8KG)}dr9!QNCP3*_#3YYpD6xGX#os5_UUJW))W$u)H?v;= zn_o{Uc|{e;?%(uudw`owToy@Ndb+SCkzG6RdtRNcsIsO(+~o|}#4~Eij|^O&e_`wH z$*bsNmk=MHbSS0CD7&?^qKY*hE#m!_60lAaE2a>p3Entf;=?(h-h=qKu`OO-ZbI@4 zip$ZwLbmb~0fzltYSzS-O&fV7lltOzEp0s1na;OD4?+M%$_tR>bhA1MI)7n3t z?QcJAI?M-TC0PT?mQ@YMzP%5auVhWh)sX5w3Tbp)ztrAcCHbuL5qNA8$k{4c$S|t| z^!l*t!(}uys_7vcm%t;mo8fIIoYIwSrpc4Hli*KTjo*r{pg73w-;!aoQVvGwR#!LT zJKiz>EOG)}af{ztxp?TCwHKlZWeE(1;C-K-3{)M4`8}SiS}Qu(Hw?j^5Bl-S|2T_b z+Uv=hx?(NirAVI;ka^5Yw6@)hjbU?9-h35OCog*|%3{L7P1Pcemt>t<9(G;ScpGhN0y z%TGnsLp<8$lsRS!+NDg$OkE!B{)_h0pXjK+Qknfy5zHY!6f91MLgPcw*?bOv@{l|F zuQsuW8dI2h%eI;T_UJG=!!{&`c%grwc6w)_u{VoS^DTuya%>jdiyxp}R;13+yK~u1 z>NrlUIVzV44D!pQt%fgIUx5tlQrCuqjXZWMyTC)-W zOztAMh4vaqJ)~Rs+#c%Hhwi_X^o>uv$!8IO`ocsJHle$J0CV{|z6yO>H%=<;{FH~o zHPEfw<%<}=)!U!OEk6yi$)vI$VNK3yWt;5VIcC)D)L14^OR%sRyuqSq!N*&QlpS8g zkY(wJmswM5#^nZIORgJ*paOf0jOL_mdsC)wnG{wwb!BLtbv-#_(Iy?D9n@oHUJcJe zI7WbL(Z*yJlCH<5u)}l0KXiPmRs2roNR0ft>A0B}+mPm)j_!#JsKeOZJpxc+2sz0D zqq3ec9**7WE`;QFXLU;C3bbgufA;Yk4NrIptt`;X=1&dLY;}Ke(7J~>W$YgmyOiA6 zBBzhEd8i*sp%u`eCXtDZsHjQ&>b(-+@7SB83NC~e=$oHx3VI)Upg4iDBm&2J8&G;q z)w{DwZ|qd*Oh1eqUNj+r2gzXyRVEK(5K3tT(4LCCQFZ`^`uI&n5D|Utlj5=K%1yTj z4o?GPL$-lrXg6YA>ZJDprJ-w*@D_vEc>mSkDjx6Xzj3h&ichUV^tVc8{VA+^L)FB>`KYG#vykkJ8OI=_ zkL;<V2AO(^?qzE^vZ?xa1EWw^;974x@Fc5iZ8CwmXBI~ z;6V-#b}*=x0u>mWOY3-$48sr&s!;}Z_mE+E71hX)%jA~(WI=5K&>n1(OO5muJFEx- zK7|oCKz`_!Dj?DfX8T9Vb#gWfpeXYWH`l+8xNv>B>~R*&vXZLCjQLoS=hs|x7>ap8 zwv#Wtv}5O^*-NLS-&!j2siu3Nt#0}f7>9t$furX8G9GPuU`1#501OZ1b2B?Wx$kpd zR{Y`j+mYp?tD6k(h*Jjhdt=5e2jzom$@{HS>d&4YXEX>_G*#+Ap~rbgJC@0*3+`P+P z!T5^dhfDi4-m~X6B`c9RYjQx72aK!lv|3ut@0B$a(9V9A$FQhU5Goh^gOK&iEXE~J zJWy6dEykE(FgDKLX&garo*l>WxUoL(%q_ZB5a7#GxBfBB?feVI1p+6D1}JjM9XG!t zk#DgS>@cJbwfE5<|7+mY0pDSAjswMvV;f#O4uit){kR|4$1Hx zjZ1wuzlQBCYSFn}!cbh-p|^*YN@TZ$kMwfB>}p3G06&bu41Rz*%bAYT_xt%^_B&oD z0T!xhq7J@)1@-@jXZ&)A)lUIGOmtD;)_Rf4uqx5MQjlFC68abna+G(Mv~ddg?ccur;5FgPcDlR4&sM63CL%uxv6igt%UZ?KNz`>uy z@mwCZJjIy7i(`7+D_v}2mHyuGX#;^R?*R=28t*b-84eCXzc_?6QEz$$i~NbwZFbHKvQ{oTnXMa!re# zY5IVuJdS+7HL3i}fgtu;nHXpVcp2NII2ZrSK|UOcyB-@v!7u5S9>m#%tyA!E%CXZI zPVXXP)oYwKTbA#75^Gvxy@zMle-&f!aGTfMPH5evF-dZRw=6QeZ4dG1zCIrN5op(H zr5VG&i=`GG_Oj03ytB755(?;yEiBO4HMbb)Btl_D>iWf-7W;_w{!b@h#xIk0MD+?v zC72fC#cl6hai(vZnTWX8OFe?R_D6ynq(WpBzjSj|5GZX*e=dq~yPAnjh+?$6p5>&I${RGQy;p4Ad^O&dc8I@sa+jK2a~!kpYgx~+ zHL-@s>bo8joh4@WywcyZ-fPR&zPmx-ECY06H!5Y9$Vcz(awMHOUu1tqPhP;-9C=K=|(UHV9=gHlsP#OS-;d#S^XQ3L0jtw(*=u z)^8_$Oe~NQYl4@fkbu+nqh2BzyTe~;N{JDWu7 zJ!sxLU+K&wD8i|g8e`RxO*K34vEcLTuA8nNsPZ%i%6n(vS*s(sJ{&>EIL7-XVz<0Ta`Xcl9mH4@NLZD~)fNe{Lje$vB96q!5@u+zAV;&s zd&P8lY2!?J{8PitcnoK?%;(1sR()c8K4)r;cRvmqXX<`DIOLUI++FuGHoiMRHUK$R zYM$kl4F%L3Y8cb{{!HL02k;yF`?LzG*epE*EoZu=*9#=JR18K{cIW|1v05DDaYm56 zES%Yp5|HdX6kRcAv@f?Rk;qE&7b}_dGB~q@JXbsusE{-LonfKi+3MZ9*cv3cl39V{}7J1K%eyss2J0g1S(%F&3LE)h%LYPl&K~0c_}OISHQIMKo#V}sSS(Iwe(rQ3 zl?;z>!NJy4JKfazGlKoP_A@<#fK=IG59DvI^*E?l&|yLA3<_^thPwOH+e?p}W9?i% z?@OS03BoO2PJV|l{@Y=F4H6-wq;z*kSK)SUlUTBh)<59U2KUA^sPj6UCDb`Jpn+ze zF`&o&rxlLeo(%Mmp*BVf%R*rCTO z@k|$ylc}1vY1hLl{c*1l81a{!!vAGNH1rEfvns4W;>mU^kHPK@$1j>>%Fkuj?*2qF zp>2;kfHKGeu@1G+ioOA@QmxeBx3O3?AsLRhxr)iYC8kl;^N<40yg^w?VZii$d0`#_ zUR^(D@6Ek-l~=Kp#lsezVrDgroL2PS=;1)()XqEEZ#nh)cybhUWx3~fm0AFsAzh{K zNB~^dY`+QyxF5>kWhy43GUpCsyw!;(^ZD2IC*!q6CkJ4e4P)_CEZEbQ&k%VjnNIsh z%ZIXMe$4R613dJmaoF%0^l5-(@g^MG>;#a3{o+>@GbeGKsd6`Knci zEULM-8N^2c@r&9L4?ub{nHHO^nEYuRgPpKY8IS6yJ{C}mG~#j8llQZAmQX;;9#O@(suTjJ88ZVGt` zTh8W+Jk~c_K+!O={;tdY=-Yd1@4kSJ*LldQCM@^9k0%r**@@3z3fT#|mdKwo+X&>- zLNll+uTxiN%h`}-1jc>t?`{#jb~$keLUtRM_?g=GzGK6doB6>ZCdw>j=q6IUWNu$> zzH?6`bY!p@(q_|-1l6qYZf1*`Ny4_sL}K%hP$LCdNLgnyv;_o+>SQT6QxI&0>;kmVVQ<~MR@SUxPxX{MV+VKMX zc`P`@lS_@0+tFN#mS<&j<5 zKi-UANHML+b}jf@qPGHKJ-s80J~R?`xeRtaml`0%Jy9G|aOrWW3olLCwNA_aJT;|q zz50UqM=}G$wC>ZX0>{8ICuiq@ZbaDJxV|;QWdqAA^&0Xz%_pm~3F|=^z5ZX6Z zI!Lg9g-s2`W~w-;v>sLy3(9D;!DyJ zmx_@SuUHjUtgRl0mM^1lIeJ60Uz2%`yJ_x}XY3h`hgxaWTD3BllP46K_E}^d2I_+x zoctOs*ALfQK4&r!MPCxk1*v{8KB|sPL|lUp>AsaO;Ms{7vY3_z{y1aXU*eUUZV2Nz zd@-(``XmjSLS@l%W}wj0&#Gdik`R2Xj#b;NBLe&w()Y~zHUbZC%emIJ)_YQq;{9^S z#qap|n5D#Pb7LbUu*Fn%P@6|Rvel~%!I?vyLq=ac3ih-6gKd-Bakyg<9x{H}x$|XT zKUb9WW-=???DR^`G)0hdUZ=}Mu>o6|MLgZn>HKvkc8_zYylTdW_`|PnIguKWl2FU* zz`ixQ=vA@gHa-ctuZ^$Du1t^!ZYbD0PA}_Sib~XAQ>Cn|j#Y5O6haA|!2$c2RL9c> z9a@Q2N+B#hTvkuUkiE{GoNfu(l1DfJ(!;g|EBuT%c+j%1`Y2v<`T>l-Q=$#Rsmakp zr~2k*uj`W5hj}Mr(}8U!dipp;uRAhz_9MH;i=%;~`v+p3@s|C+z!<+&yKQplFY%aB zvPTkL1fSt{kJ=8$RPejc-}Kycu%3SF;f?k;enipKiNHtmfJ3>`i#Yv`^Cwh0N%r-T za{A-63VS-8Rd}OJ=~(ow`SRQHwO-%b>?Yd43nqn26?;5E+fwJUwmfhmF4v6IVDJMGMq<@LwZ&B1nF+M!N79a-8BguvToM*E zI(UZ^RyOJ%*qTCzUuIG!QnAMDTefi}&U3Y|hdXtWux_5S(biMBeTHOF^yAK(KRV|u zg;uX~A?22{??L~_9yqP0Po*b7?kET3B%zZ|u+b*7-zB5-MM67`d)uvp zst5Vcf&4$tnCW2sO=V{XTkz+$NIIM3HvP6y)WZb1esprlZXOZqwbl162>&A|^3R71 z(fT>hjaS`klsU^ola0zF$;EQo+ug}~vLsuwsA9A!O(xsB9yIi>>QgU~5WZY8$Rw#g z*BP2Z+@Ju;O;_>EU|XcIXQo$x+>{PA(%$e;?qeI$j!dUm8hVDM7$4110yKNQ?@-E# zG_!0jub=M{72nmqVGzmgG*yk>EebO0fyn$Z8Mi$nAcHK7E1=U=8phScapKZc~l!s-T&Maav!V*yb0Aprs7q zvW(M#reQ9uh#c{*h*wr-41*X4LM`hb+2f{fRiKPu%DVOu`%oyd^tMf{UngzdF%BBb z4i0hdnOhK7(S-ILWkqB?GX!rk|V`q%`J8B;M<>PtRXTe1SAsk1f^xMLMn=Gia zaB(eB#DzklSA6iL09m!axYQi-R?OQ+v_gHQjA?>n@R{kbkCgp;^L9P3s}=FRv$-aU zwH?@`X}6Q$#=FzfA|oR1{pqoi>(S0ipxsgLUqf3D_jO8$Y!H1%e#Z=&EzP2-X8|12ce!i@rSZHaIc5_uhG zK@O@K^?oPi>IKWMUkRD?wy7|m_V2AT9uP{g%K~4NxYCt@YrR#Wdz1blo^95zrC6~V zi{&^NZPvC{sxd5%xUg*1O~nQPlsb;(KwXd9b2`LDhOu0G(#~g_TW~)dR;tKPyJ2sz z;MifI6q;#xG%Gi&Fz)jK@F*#$2HWrQ7?%J-66IfnH7x~Qi8T``m9oelC#&*GMvGBj zqv25_Dw7%8##rrtVukU8$o*qZw3cM;4hT*UxM|>am7VJrfs@e2m87;w7z>UyCQr|N z_|Ml?=M))FcIRJkT_br~>=dn(?8UXZ2VPp_F*lt@tjl_`;~3XxloNT5Z-Z*Hrp=Z- zDWWNC*dP-rr`7J5Oj01di9 zx+`>}aUK`0S!hNt_6+4WYqtg@tTLRRsQZUZ|}GKlH1zmu2FXixmz}I6hB@AIROCUF*ZQY7te~fL9?0|eMG{01Wt`6lsNn3E8 zUna+Uj$igU^^3ZldTedu#;iEB+$DK*%mpC6cXk-^q9q$ttjD3sF4a^tf`umJLEVpq zu}h#XDjpGkj-HsXdSqH7lSOvGF5NJKBS+k{%=9$^op4@!bzr@T zYiabo;!!2AWF$WIUO(X{Lq#E-9PMcQz+AloZxgvOg^YFaE#?W9j-Ct*i?0haQSXALUf?~AriHOHvXk~?#f;p%^2S%KEx2dJ6V?OG_*Qg z*;(SS89bH8syu}%Ggrxa=kOH7_-v*o3)QMMKc=Pp%i2cZ__fY-;!H@(@?hP~GSW}3 z3C&CKXYPli!P|~8jpULu0?p?je(}iPYr>f%M`h;bHWzrsCV$Gt@GlSGPqWm91JmA4 zVicYvkZPp-U93}cSzh#gqLtS8PTlA-UFGfrotSuXvG#(`why4YAMly>&3i9>TTH8B zYS7Uoaa_PY`M8Xc;P5Cmxk=K8c?W>KmD}Vu&6FbKy2GsDk^J$Ib}S4U*M|qus`rD+ z$&SgV;c~$-;#^FLZEsdiL!~35-2h9w4!4$@RjGp4f`Br*B_3j5M0*Q(hf8eYs&e0& zYZ0=Vi8)r^ra>s&*gs)oC2@akXsA%d;hS5ew^iZp3qNh%dwEDqhf`#9bkm8_SH(A@ zr8>~O4TcWgrnlgH>n>S+{|(C0#wpJUQO=-cbiGSPkyPUMY6}J7kJX2ueWw(-BS+kW z>NNpDRuZklhnyga$3QqTp;X>XFbn9iI`NtOdwVxTykca|=1k|`am7%RG+`W}eIn06 z#GFZ*1-)}an0|=jhjt%jI zG&3X)W}EzQn8*)9BVr%hnpAf%cP6| zJd0$2^G(C;QD<_k^|N7dIM`QJ9&uW62k&HcOOjIE!Pn1o7?O%X8{`Ki`>z?B@)zjcaQY zhVFLy1^Tzk4eR*V2C-lLcxEfuf3$YBVP{onIx04z{zA~-OTaJM_oiq6=KO{;pniSJ z)S+i2$^!HMJB+qZ>5e&;UKsfN;;a2e3(P-n@vDUMcj{|v`v?mQ8!nK7_P6U!CkFG-VP*@@bMw-6*3S&x8QRt2>%NH!m|mPzgqIF zy40qhp``rEao^Q}mx*p{Wr3>Tk|43zadV_Wp14J|BU@(#*a~+q;9-rg9;AjigpLUE8fMV?;}X- zKt>2(9dgHw{NEIXjwj698zDw0`gLJTU>5#2((~aQ4o~jeYQ&?*90K<%Az+|O3N4;7 zczq%7{XMCsPw)JiXukFRcRw}K7f0(m3_G|z-HKXdC-OUNL}%LTR_Tw{?h`hBBTqHU^Nxb2ja}Qu-nnA zyJg}dXQz7C>sLt7a674n8_Lsle9b2MNx#V#*lAW;4*MB4L=6TXvI#P3PWIGFY4qlM zSm%QFuO${G6oRw23*?V}96m0SAZ zeUKtnYP{X#r&n5#MfSx3tAqv4K{HV!x|`k=haz6ZMH$-{^oVnS)HmNRslPE z%?j+m074iv=Tw}!F|l?U(^TA+%v$?KbomiGiWic@@G}>k^da_kw7~y7OcEbT?0GWT zEjZl+b=SpN6F0ORUFuy21|M%q&zvu{45m83$o){tV3wlwh`Q4vuBd^Jm6Q2(N4KCC z-B|b*WngHuEPyw}5szGZGynP1w(&z?(PdKcXrS}N-QSMN|B}lqw67hB#F)UpwURiD z@7(LAb|*qPLwIOLfQ;s!D@+z%8%SKLA7|i1W^ZY!g0c-XAJUT)vc)d<&3J zE4izZUd_xZIDkp%5M3YerUgl1RyHa+E|wOGrH-sI9ts`MD}p=XeK_+WUP;*h&8V6N z36F_A^zP2t_v>^&njHzWK^jIJmoj%imok_z?~g#ih8W^X-7)lY2{w&{3sgK8(ge5s z{Q`nqm%QK+d1v(P9|E@a#)C2{^kLc5GKOfLR8n7Hg+IaypDlZC-apn>nwoO4!(a|x z3XS%Zw#+oMc^Z9VS@C-F1m^FL)fC|$MP9{?wvOHC+et`FHUJSu3jua!b0-7>=U5g5 z2@Dbz1Bvmzv2W2X@r4aqGUB}z$|#5pHEdDA9A3}7X&A};Ce(}p8ae^GV2RgCJE%&Z zg6Vq@(Bi_er$1wbEMp?p=7iL&!!hP7DofMc`d%#y@U7ig7MNA zLoe7uiA0$0YTX4tm>OM7Sc7xw|V8W{D54rG;MDz~@)&2ca`Hv-pLj08Jy0@g6pTDQ| zdVQ_)lfd(*s89axaMO6H11+HrRZKzVlyxa%?b7RbLrofxLWhSH>9_2Ys3E5FwR5sp zmg=C6G>zx#6g1TjL)VK+B5LP}62G~e+jHVE|D$(wmgC16YilP4NldUq*RT~WiDUY0 zCw#F%dm_h1lgJ#3`!uHdc;Ki_ULWRUWAD7$1nHT1Q5F2#`MnfPW_5*4_dJ(jF)@lr zq3wqcX)fPHV_qr)wVPhmR}J`UD|8?Ud^`rWi}26Mzy>_uqcvL4T98AcsFhewc^QV7 z`E6BpFnfy*9ajQQs1RBs?}@D=#TgQElJ;IHz8$D*ZHmH^f$SWQ zUXFJV4$?TD>sX!F~j(0TA#0q-hY}>o6Oczg)^zyMO>JJ?^jn}u(2vvpGfA4 zoQ;>3;O=t=>&zAEk-iC&4y(6P*H<=5Lvg`M+dbG{p#1>@`SlPZWMP;I|)RQI^o+c|e@xX6iJH0|ur;T%3a#IwVJ^D~R`)@wE4FxpP?C)dc zq=C=sNQ0_ERX*Ov$g(c1Q5Q1B zc6n?AowS>W=eV-VOGhkK@IbhsJ(?qC0$P~MKt=)J2^RmHdhGOwA?an(-^)v`o!F~`0N*3GWlbp;lXqDQiI+ZV`_>UN{~=} zXT_M7P1NO!8-!``N+)zJx%iPDE5WxSEHr<1f=u;8&g6js*hjCCWn2><@KQ!*M2BlY zjG)#SjMsDz-FdXe!8TT+@hBtvO31Ull*?lt{phh%djM`YOT(o0YFJfwx0`gcjl$VM z2i)8+H?p)(nVF-mK~7E5+uE4j-VZ7Z)g3w`Xz^>QIb9g#B}~kyW2EJFNWK$ITbgm; zWF&Rp<-VO^*$kz;ZcI%a+s{h|B4|^Nbt(9$8K{W34CFQ}4uA}56!nvhatrvzZP2{j zwZ(KD7|qogc=WdffN_iW} zzBz0~kg<>PttzWv3h*U#kqklis;q1pKskGbv)PYmif=*Iu0>jMH9$=)U+QkaMtHsH zv(5)KHwbn*VtM{S%D8+aOFXKqhH29~rP?$@H@U$#J@{hoV%Nl$B zjVmUT%2eIs2U*R|G7k!bILCs}Zliw0$^Dew@S7GF1pT?!M8lJ!@8&~!pemuLPbXfq z7ED(d4JL`c9EY1fsnw+|^R3~U74wWiQDi6Fb^=*H>+m=4X2UNPms0fm=m0QMrzQMO ziT#>5t9soQ-)_2il*EF1+otD)XZ<4C@>z-bK#&lzQwe?4Y10ISE^6FXo5YpJ}C7^>Q7!w^sg0JpI#wmCMsoYUKK9`0Z~5pUz1|7r3ddg1H>#iyjCXR%I&Ba$u{Q8C!bp%u?+ ztcC*DDL&mztZ-%og12Xc%@XGM4yrkGnp6o)F%NPc%(5?(T-enawcDqx7@{747U|#?tgJ7PRj{Y2AtI&vPCKE zfygo?BTP68IOk$Zoy$L`PSz&sy=F<~j-^pAyOhwa^=dYsi{(^rTFW9al0l18aCJLr zEE`?O@_YM0Z^InW^wXBlz1y0CVV3s%afAAs{`H#=t!T%1xVR)JC?;plt!0D|xW99* zf9hL53zB#J3d+ePj@0}l0|##EC|h`jO!n?juUT;}L_c9)XSm$pMSQR*tQ__-&)cTf zTT-4-A~k-H9(=Eu9NGBvqI5SE;*{*kcjNeK0}=`*x!C zFW04iP|Inb5)2U|-~<>rKS6)GV%!lQHZOLAa)B(DI~TCvq_qfao?{r$4aSjk8)zgM z2hWN6v_F+N9h?0iqnq~AZ7-G+^Wy;1P0J$iYw}|VQANKNY8fb_9>#eEp9mYOxC!Xz z0SqadDt-c0UB#zv?EW=Oi1?>OM2Q|0M4UddTnr9v@nWs?^2^eX2Q4 zpW4NN@K4!LHl4#Co3NA&SC%A>E_LLnPobXhG~Haw_k4Jk;C!V$Vwdw2{kP{V3gg&+ z7D6N>qCxZvVQdRWMU4)KYDGD(aW46x*zEDe<$m`x@I$-3GQ-E{lg|r@3n8FfIoKCg z8NLA*4@>wm!7Q^}QqEk(G=hB6#Sy4VQzMTL^t#Kwk$a&fQi!cipGJCIcprl>rc^W) zWnIh0yVq^SKSTq$ML{FY_FbquH7cBQ=Y+;2@yKZQ8`fI6)kd~tv)+u0m$=@B>$6yYzWUW3n~OH}tx47v!DkvMC8;v5H<@q{3jMDKpH~%Ajy;aWeCp z58d>uAtNP?$Pnon39ZVGOfPiSc@ymu8@DIkTMuf+QN!dypjd&cRif@D^C%!*Uje%3 zQO$j;pv5+k85k8e5q5xSCD)3cXqv@$5dA!3`Z~l`b`%?59`HI3e>Yj?Dk$aXz{RD& zs>DJKAYM(D#*Mi*W=P-fdAbd83ex{V+;5iK6#;~53AZr2>;R?wsi^%2k0%dT$7j7n2x`AysJY;3KoX2Bj#~7 z*9^n^HJC-bLc-s)cSH}bfpQyci#}vM4Gb;?Wpzs*Qykp;-&qV75G&~}K(vcmas!JI z2a9UwDYL(XRv~gxd%JUntWOw|S>3~k9#gE`pSw8W!_>0SNBoTjIz-g@toQ+f?(-sO>bt41n}^vx`crfyuxIvwMYqA&4*co^SwbpSLJ zsT6w~dj?);E>1u1aX>LjPgFHFKQJQ{a+ap-w<`4gh&QlTR9EOv7gn^l{34tza_u2XTsaJ0sx>)1@bb-oA|3{ zy};IjsN8*9$qy>QESr6+-_Xb4`FeM3576zNJV-I&u%P!N4|4HId?k4F_JQzF5m=W7VJr6jc4&%Sex8OZUckW zonggOwsRRL7ak7vZdR#|c1kOk?#(h?AXU^6B8DB|bup;XyTDO?OLa=auEW=-{3sE% zM@BX}?zQ0#m+6(SqnVdZYN_@IzC8Vv5&F05eogYiOWv&UR7cAPpA7|nDUwO>FyEQu zxkoWEb(dWefGIYHWCHra=3mfX?|4Dk`4#4Ey07yKmN1nAdL(A2qY}|rL+IasZ7w^j3j>(0=Rq~GFlR+-sNS9NcETuzyZXSaaf}l;s zGOinK-J@`kpa8{>QA(r=j(`y2`{Ng9=Z_~?>*rwK`$svGB*oGwZijTQb5x7=)U-*u z%v#r;l%4NlLn^+VUZbX^Rjzd@ecYrMctki=o=9gA3=gliE`z5l>E6(PnNT;LljoY^ zdf$LABff=Wg>R~qy^crj>uKC&E7u#I^GRkw#=Fzbjp?B5g))ZdVF7IZVGWQBPhjUc##RSU$Ucep7sps?_sih3FfG z92!1_W;cub?dTjh3Z0ri!K}eiTFKbq%sirzMlfEHw9f&1I6gumKA4ukXf#SM=hTk4 zpar@wyeT+PK2D*NKy29B^VGi1*Bkb-eq&&UDmeZO??lpIx2f?BD2=vkmSWysW}{mrIvym?=Q zrFOaw$Gulf-I1@!INinlfx9lx)!*k`&sK!kyY!-I#%ms`wF{cp^Y(=cKO2#@ zrGnTU2aM$Fa?ZVWO$@AD!$8az8@>dbfpMdZl3a{AC&=i64=tD(I2PgWdcW5%+_g-x zObH1mF0&Cf#cWq6f#-GtdHwvC6U-(r96$%rpO+wh{O(PW zzhm+uE$k>G7i-j-Ie%oXCYZ6+S8eka=&^h6>lM3YqbXxxzebcor3t4nsXCH_!_ z2ovngCwu1BISG4|#m!nWq#w~M7n+Al_VKu0i? z-%~Aavi}GU?OIb5u{?KwUt1E3PM0YYqw=+65k>`34aOx>r6_n!A5@XbXLElAsynRK zP8)E3+pjs9#lT7CM@b5t^geP*ZR8CqCvGYpVKVq|m3Rc$+H2ex?XB_`qANWTrO7Pn z(`)?#bpXYXn6|I|G7mN#slzlNGF+pWIGMx~Z>&J4JmtI!ol$%OT=@p@I558f@j_wX z)u)uJ99A>*=O|ipq`$<4R}CoMbd)rvVk@=xx+6e`idCjhT8W89NUzB@_i}5uI8z<9aiRe_TXJ{%|C~*32H-FKrvL3v@sq>yZ}gxBgNR~s zB9>tP&4mB+rC(6e$Do4iHZs?hpiOHXv8*3!&+{Bxg>1J+s@F~zEc(k;$q%ItN!{D6 z=kL?E=dcD>Ok!t;U{6lYT{Njaw>)jB+3&Bdc@J?&v@w1-7IQhnTYsvs?6X`G*UcT} zWl=E5lFLjf;FobV;z$m$=Sql^q?C+pP-;Z9TB+=!J-mT9pgj+XP2v!P<PC#}JADgMfM?$n%$F6S@=)L=NZ?VAT3YfT?^N?yPYp{b8|J)!zm22;%hJJ9B zQ_zD+uJuCqGMS-f>+>*Xhk{YZ7z=cJCv7)P4e5xWXH2&v3A6Buh@&a^3cJlY@NFNIab7N+7P$g%R;7c#pJRTT%g- zRZ_dl3voHj@2+`&>ws=wX4JP`l4f@}VsGUMz7<%;wZLCf7)65ce)&~~?cd^>Cr>3| zswE^OY!%Nk3nSB`ecfKh#Z4Ed4@-sly1C$aBK(gfLBV-?f6Je4H%10La5%cse1dF1 z_bs6$W*kOa3%FPp(FaFs0^!s$Es1@BRG5&Ht}-*BrzM@7n0T9-IsN47>Hj>2@g?l@ zMeSChlbHgZGS*Y!N&qgxp%IK1lxTb6?EzBR)bwIjmu?olDSQYrKH!z<(mE96w#4Yo zxUhx#L%D6is0bkld0t=Q@<>^Jw!&2!3U6rfSDAxXrGQDTwy=q&Q@WGP9e?VN%~ zie>=(+9`H`z8MN!0G!f0G3L+Ey_R-iHeKvdguCDC3)Qklsks$Qf@%A9QISprS2wS7Ailo46wr`Q(watTmm>IDX zL)KBY88jTX@ow;6)bwp zK}o6N|If#^3CIgS3I?r0G6dx`2>#*ewPC_9TIs)hd(6@OEX4LtOyl??>c>^cQ=Tug zNWb*c|7VH$S&)6GSXx-+S_ulTP&^LK9WVugKkbz|IMr1syw$=@og zUtIh^y2=7IT0rmHIshEPFU{8Pq&ffNont0e|~-7SZ4NGudB@ z{LYyD{ykn*u>4THuyb*+khxFG%=b(G|MwsHmpk2qo3II5K2ZMU(*O4dv{5OxAsSXF zKD>Dk_veCr0)z70uYC>8<47yEl1;msjJj)duuqX=e3nDl_raxdF9Us7(f3-cM8`c(dA#4=^=vOC%9pk)3kG*Jqv2ju6|`wQUg7-A{uD zMK{)V-}_t z`R+4`0d9umHV-H3?1M%LgLTw@?`Hm;=5FAF<$rSlEwi7tpBqW8{-7QOc#ooLac z6VVynsG~>kWiS}M_imW+%|83=^UMCuxz4wL-+yzhS=YMWwcd6=_jBLRt962Rku`mN z(9`~Aw(>(LPuajhXj!@s>adOeFz~FAC+nSJLXLl#h3WGzTIWR8|Mfg9E3T0l-uK(GG+%hk- z%}0gka~k>ZzxIvDwX$p`u0B(*IaJ<>1X&APZ_)K%H` zYw-%S>tJBE+sV5Ci#0TXVPX9Foh$GQ>pdevFyy61B`x(J-^b zhnj1JLHd^rq>_xMQLFr8BGLQ92;{entI5hmuB@&ArIlp<((6$4IrV|fxoy7aXSRl@ zDQmHOvA#yOWd_0h*ZlbNo&F65|7!v@Nws0&8o1%{enR`@W_M0Z^7_T^UHVmS$A;j9 zwsL_=e>FWwnX5ajmH|HhY4nr-{ z<~>xR;y1`;9MUz6#~;+zlTlbSFx18U<5v`4^y-t=%}VamtbNuM>@V0k-7#g{b5V&; zxIVQn%N9$UIC9rc)y`o`_w1DH{+=HxY8Eq9O*T=wUMJ9BcTKByh=mGX@9Es3!mv#{ zWc>S(5cMXMCQyZz3)G_YXAtrqx9Y!KbmgVWL8Pl6-gT*x*tsZ4e61GJdL$IGUe#-9|81YLFvHR4KGW+t zq%^{_;tjFU{(zO*?2HoC_c1SJA$Z7E7M`ZkbF7xqv2mUcd^=6sN9Uj5R6?Irb<{rB zrbZLh7JIPh-e{i@Nw*3r+dNwQVR%0R#9nQ`Z)|&s=$Yt+PAn?B2bGQZdQ_zjC)CVF zvD~DMpjDuN#ny4~*x7BB){0k}dgRn5=^^Y!lXRPfEYAFVPpOHEUUh0t%CDt0!4qSM zY%$G)N>WRbM4{g(TO#q)D!LW^^1H-Bv-J zQ3DO>3VQCrmd^Q@oPbDEwrJ~0eaG+~+)9K{6hk~ z0BBp(8+#kvQ(muU`m;Y>TA(Z(8e1=j;_c$<&BN*hE32p`N}N6bR6IQXc?XZruI>>R@(q!4>k-SNCaxTH`&lC;za~?74)- z!&!Zh#7@tI;x_WLdq2vg3#C;-M%?yR60*h})|G*$4uwt1Hj$9wH_lIACF>^JZk5hG zhRSn@zCZDGA}Mb^u_`WP;wx5FQQ2NkZna)BV^;3U!st+;<)od-o3W~L%JSJQ^i=Hi zE%$c4PjR)qD2+q2xf$%HP$c3jhTPFokT~L5q&q=kEnT({7uQYkpk^5*_vGIV!P>A1 zj^fDJ*VdN}{RlU(hr@IJvimIg)BFKM>d0z@uNkJIp4XANlQ2AtZv}-CJU_1tJkk}FD6!xgU}arbTcR zYFAUu;K_(Liv>K9XE@}%1+5|^+<&B54qjbyxYJQZE} z2v2pQgt2@MYqPQJ>iAMy(Y)3E4Ai;Fk*8uYd7zez7CMfeC*bN*q2*wp~SG}S4zIy-dO3A>LxMJT- z%!W_BZqAnVXqhn?_>tuEM+3zv*DyQkShDw~yX|@^FAyJW=OzCV$9`r(^P16?=~+qm z=z>#py1Nln8K@S~f6z3yrgB7opt=&0w>rCCS>q*EGpwR7C5o8xqIW$|Ydk5E91B@u zX-!>VoT2F)lb6+NmYMC7c?S&TGnvtQCoxad25F-m)=8w4G0=;DdvCGMYQ+`oaXSJ7 z=b#(t`*b=N*CbBoHMxHODoPK~Aym|@vL62QY9uXr$KsBO#DT5)F*tg`noB}|{L+dn z-rOeDW5QAQkQ#Ae%|;(|O=?sgC^-}|!!iSlKsvfTltljqG+X(2F~TYre+79#bcQ#w zSy*#>b-qn1zDGp4C3&|Sj{W$Q?*{A%48bLti;f+`#QX=0@(+#sUAm2(%zUrnkKmv) zI(V%%Ucp#f_`JqV0F(D|bn5p6E!S;FBF!0(KIV(Z(YSeGK_AYAN=otq=XRk9*?~Nq z3ivxqS1#9qr#0{fdE>?x0ywX9?5{KrRWU~LUQn|tg@1c^gOR`_iEg;^hG8W~-w!@t zZ)@~Q0Tn*hLT1soPcm}(bv=&UoLcsb@-yPjyo+RCZNa(HRMlsLjX(kAC{6b^7)f() zPi1`%Nc8l12T(V^9uUMrYo97NnXER^2czI^?1kT-#b==tjC|+`FRU)o4+sD7XSw7R z0P-o4kRrPM*#h*(P12`R8KyLYO|)9L={vKAR}^eijHWP*uARS&)&BS5t}A%Ay+<$ zO_z~#uLbysZFNPqTdaZB*~Q*a7dyH4Z-j=si&q7={q>yd&lW9K`K4W~^LIx$Nc5He zKFPs(AD!|;XnBcu^=`~X(rDN^@Ebqa@GMJIC?=X1G^!|N_i*ZsYVQ3lyR4D?qysT{ zmK{m#lo*X*m()4o7^J=96Z`?}tze3~ulgGwPmg(%#_V4erfoj&-lA)0YFqzUEehrm zEUHtiu$RRG_mg^k=+dO|y-=W{wH>ddqwiAKqhEK}^FCjosNOEWm~Arops$vVM=u4B z=eOv~JM`aWtFZzPwaf0%FOGl&9(~XW(uZq5bTl}M5zP?4-`TmgX-eoRO%|>MzITpE z9N*$o30Sw|y=Wxz_VLqf%*ai0cK0+)pt&L_;B+92_~f6`wY#}9sp0GGDVd%zBik<# zd0sa3GLCzt46DxNL;GdjNFAY<^z6!ykLOQ9u|RW0wO(PQ?%-#czrKn5hdh4sL+#GBd;&Me6lQQ3iwbd`Dk^QbzH~O$dXO{7 zxhww(b;Q@&H_Y(XE{hKlEfUt%C~dqe8Yl;RPw=Eav^XlP zjD1f)au+4@X&yD=z;{Art)}&`4kx0jAGi)HR>5?R=y44@1I1mVEj@wbSdxO$uYe_C z19Eg8+x4zY$qREQF0S)sb3JYfr27(ub=&I{thCi6$?6-h?-7FmL^AJnrO#ZQRr^wQ z-)qlR$>~&CMJ*r==G=4yK+?H-t`=YJs!0Ytb2n$gq235>&*3#1T4AdM04vG{^dB|x zhH{s@!WSmdR>MCf={P9NV1oI2V|1c!rv#}j+^U)jr%)tdBC#%~G_=f`bvjy>s@tEX3^rSHwT|E zT4Qs>h$CI9ZuHpBFTVkUwRbn;{lX9pJc%Bo7{5da|2;ncxPv~^)sNf=D#CNIJ9}yd z^b-P@GG4?b4k=>iBXjUQ_vLD#!C=q2In>a`NfW{-to93AAh12fDc=~Xx5aQMbl-eO zF;$m#$Ld!2{#RkZk_ZDe8Ve%wo1K008F7y5e@egUyY6KfH?hp>f>nPjD&g-`%AB6CY!|#79F=sB=8(sTm#)}av7|C$zM1{cmqmvmDrBO^ z21cfy&)DQ}8K@NT)*sqe=Y%Q{%_3WnKCh^H#kJ5Y1WcT&6o9SzfBTkp6)l^)Mcw6 zSWe*&h$0aV>{J^-D@&8-9ZRT54yBUgH45-40x!6}Zd#PmPKz%5Naacv&vH{^aiQSwV zhn7}e8N`M?L)F0{5pnDw+wSv%^6F%?cY&qd@8>$9@gW%2FlC|)=IjT$Nu(}>(m_2^ z<)YU2X-p^scKRmLaZG7CFPaj(ryLk|=MKS|kB zD>H!E@WqgWs_iJ$O-}@>;R32><`DZxIX7911%CBHonD8mCX3@|Wd#8GO>J417ejy! zcI#DxVnrX?v%gOuKTH06x`4Ur+Tcc3bAde$-Q1l-GoDdix?Xo!<6-W#+#$`rEJs~3O}df)H621n2L!uz6L;OsP+x&6CpduR9bhS0wUR zQDUy`wQtZm!P6XNAnC>Bi~)u=G>Be;Y5D7;N@r(K%0WKmUi}UgL1D>Wo$|}d_W-QB zNHo6iK1xl#PPvAw0fXzggd2t0T+sTP1gOu>(yk3T9Ncw@{YcJ9?;oI1s=)7NsZ2f?pqK0 zhy}FnqP?;5gVe2)QQW_eB_2L zi%h!1at2||O%n%-?b9~yp4d&amkWAF@OzreyXq~9i%`%IAR}&c@r&aX?Ao_Nnd{Uv zy2#WYtgCqoW(ktbsi%aEjGPKmUXLp*1b34gV?{-V;Qqzda=5)J|DSvb!vrZw3-W z!@uopr0fh)~@ipkWVAj zwsLu$xS6Q5vy$R9(x6M${};~hzoJ`f^k&MZm6~GmBpG1Crh9ZOB4HW@!Owf@>%pPJ zk<$-uyvE`qj3NaccHj%!mM`v#h$^4%n2}~B@?MOG@7AS#lwe|D*B2s|oWStFnOqQ+ z^Fwa9JSMj>fPHG>k~moQFqC`~i~%2Q7}u~g-V9Am0>Hm!5K?ZYIsCcp{)4SXt)gOJ zfg8)j?d%Hbm)~xC?6(L)XXa0EYbQ)miIp)v2^w#l=lCBN!@L*+=$^9(GkliOUg8<# zbMYI5fZ2#IE6<$xSmDDrMkhXgDJ`FTGqi-Z%nxBLIbGa=K7nc|LG4O)yfa}f(edE_ zW#f5)@0NboiD_9}T9DT?y|v;1qE*884{1heID;&Kn#Ce)iM&#t!fn)8Mb1|kH>$(= zl7d1Tya5Y6KO;VKLVzm9=L1?P#*e_LS`&tkz!E5f2<^)+zYkEF;rD_+31qiZOz;>wdZq}zs7HVS$A~x2qZ*%n5(eCM1%Gg-(UJ^MtyPJNv9~?XCP%i&xs({ zD-#j^m5r2l=P5LsOY>61B@B{#XoZ~|OrL??&SGX$bue0u1T=lBpS$wf-)teSrE)9t zPh~z8boN_;)T&ohub+5FJ-~MPO9toPjF12GFJ~uuLX~vp1~cD_`EnZDN2r`iUJ{4b z@rfW*bn+Z|d(+1}4zl*P^kBW#w*9%_m6w?+Xv5dg6#^e8#FFRwc9slwY?b=(nMAmD zM&okkmWlo<&U3ruMixNJNb`-L6QKr=*p1sVz@1mw<{N>G{}jM~YU04FMD#Be-0y9% zH^Ap_!$V(^RU)E2gAY$nIza9gU?j@2$@>hWmq4EJ&8vI&2v*)rjVRQ-0*L983`IDB zk3nW=2ZoBL;+VeP6?#$ET;=8QlBR;0Yl1!eN*@=m5D5M41Y*-KmE=$bO_AtwkW0;F z#eHcjD*7k@->zei4S&SSnj+CM3LPx+u)<{?z3y?awj0u2Xa`ojJ*>_hEVH3o5H(*k z+0_bt^N&1wTcGSeElqtKsd&h18~R29|7lc)brh8c64=0b!}OT4D@qm0F_MpR?dfwb+f2hB zpv+|8o8A2_UUbVGt_}B05dg}zZPl?F4Y6m2aWM?bo08NJ(tR%h=Hu=dGjc7f4zF-f zY?nAXJHD?&sYB^{488|Kp2Th~ZVx%!qan`h@D%hA9Olsw>0JTxawd5_GtktQ44L*l z_?gx3;KDbJP-E|4VY@oPtnh*DS|T*KjQnD@iOq-zzI;^`a%mtH@0XyKxg}WCIWoOn zZa-g<;0J`6%hA&DTB`(bY!hb18$AMh3VHr`^!GE0N0|6WS3w&Y(-yEzvQH(cUQ?*5 z1Buk}3pmc?#%_Ueo>0})7qewcmDd|Xz~9rwwze&{D4I9x1Hfp6hty04T3A>oyPm0w zUts$)aj+?QNF-N&pO^3I{X#x_T9~!ZCw{gMb;7iuCcAF{voVriHQGx^2K&O%r?NJ^ zuk5~2T9wxgM{yU&kU-Nd@~B@-H@o`m>t!5gqb+EmE8IEvGOUf80_(5{XH5rtRMo=? zHAoD+WPV6uR0Nh)lfB<9y#Fn%NH4qvMI@^t3Qj}yEX}%8fK;NZp}f7FWaO(xk{A>X zhEB7IjZ@qC;co0jT!otqcSZsZX6 z17}l`h=i?@UkqAzN~ffGd2`LvX}#%SR`jZ>y2ri@<9>~E=u#;Vkr%Aypf6FSPR^iI zg<418a8-KwwCn3wVzGHOTG2bw3_+I;cOrYFZID6OHZOF_NQg>*2nw^gvDMiLcpAhztmh*TvhG_2ZB^*(i zT@@AP9&aZey9NO7_;tlw?$`MlahNDie^EQlIu^f`Sk_d8!hZ(AM=u)c3gFW5(k1=wQW}0_++PH%NtI_6t&=I)P54z*?CQqM*-Bi`{WO6u?gkg%D)|!bn}l-i z|Hj+MZT)K!<$w?kwHJPf$TR6{B9E;hCWu!DPQ{p^F-D>*GJR4N?daNpYf z{1Z~wW_X0?(^K)sR}XE#qBlA&B1qE3ez`TS-cM-K?56$W@+r6^Wsl8~LIOF4G7;}R$tDI_p&c-f%4dfKr!t>91 zf3sW*WoY&*3zs3Ywng*x_Gx8civ-s&WU?<>YCrD25{iC^vZyI-&{1^Xipyz&Py~;8 z-)c#|g()G`&k3lkL) zD^jAj_tw|-c^ldF8zX&hcKk@MQ)C7Kani|F!$r%xsLbPX-MWG*&N-fvL8!+*dH=AE zAn~ckSJV+B!;SNl$ZnBN2OE^W|7jwDY^FCwsqv{M72o`(bBYUeYFyfECPgXKk$o+) z{+R+V3ZRhcd*3o{6k9pJ{dJxCuK@GyM;%Oe96Y@Ef`aSGB?}4!JNAVT{ajT8Nm$!% zj9=QJ>$HytPR(7h$9-#h*kG~vf#3CAwAvOcj~kAPap?ZW$U`vZnUm;iJEqYnN&|A^ zu$CWtDfE@jz?zKytA|snl5A=^u+D%g!<_>v4ZZ@IG{ej-2xH0iP19?-h+pMG^&^j( zjq%m!tL=Ley^>1wPYes98!*Mx+GyFsFM-_5?V9htao7yv7OYD0LdqY4A0qa*NtX9C7ba+~?L&Xqn5HWi_puV@p<>xcb8#BnpfuFJsZbt(42zX7_ z^rN^EtB!uNgLllK*T%fkw7R5jdDV!!>wY{)Z#Ib|H{;`F#f(_9e}L8ezA*WLlU*iA z_^f?SYJ8l7VFt>CBp5mO+hFrMWrxj`#vF??pdMB(DsK zo?j&k~PC*^`4&9K}J`Lm%Ub18HG9r^g5rqS|-*8F@+blS* z4!RiY;Rg;m55gJ~P}a+-%4DadS5yX?-`Vh?D1UpBqgEH;6Jirqt9w}f!!0gy>jUgh z;~xcgtmsD|8dIS~S8Dgze2k(N9Jn4f1qOvZF%_kI9KBYwy0>i%APZkAwpNp4vKdbj z!s__pE%>5$#a&%riz|0?%o(WrGj8=8=&o6iqsu`7U3mr9JgOwrQN1Oh?`Dv>FyXSk z>9T>+I0+-7={<$DqzUtPMXRe&^tjd{;aZKNn%t|2%2sa6BFi7Be2I)VF}bP8*`S~n z5f-3!OTB-U73ekX`VV6K?@8n5DNruI6TI~s{{A#LLo>Yp)2VbxbjHc7pGPJlwVz>zz+v)K)|jEz$l^|uN8ekV zNyvid;z<17dz7Lm5ZufV8`p8WwLkB^Ez z#Aw=sG3Jsf{*JtLzWe9kBg-Ai@0Z$b`4n9y`md0lt}nbSB*_t1N)L#Rw5pQ&eroN` zzhMk;G(y{Eyls2nQ6G?Lu<_{R^oLZ{i!A})Zvi|Tr@n{@tl6{H7)@nm8_@Db9yH8& zmJln~!bt;NJDH4RMb_^|j~LO}?pSQOt-hBRQx3uy3di|jXDef*Sq*4ZnJwCBK0IxW z;l}%?W|Beitpwq}T#t)e`&&7Gx*i`6{ONj>ygEmUf~8OESo13C?RQK=vrtuHid!un zgTx!=6YEz{b-dyziH^llI#Unc(=^l0*ZT6+OG?1lfdTHIID4qRi|ULfm+JPx}l`a zhf*mEPyVCPQJ&~Lp^`Rj_PsKyPAtLD2gFBMHUXOU0|V*3Cz@S7O)Wt64AGT2It80! z*2mbN+Ew|=m7}A``Fy-d4)vrnDFHu8^Iue&_dF)vS1aV{6@V|J5|JJ;>@*G;mO#tz zx8ljzV&C}#Ov`mSDJG%?-lHsxxqu5qo8l!CJE|&2@qFM2;%t4^`<^v-lNkYR^wUrQ z4?CH#cnx?z>-qs-7v6Q;Wiv1yj$(>Gz~`;TX6MC-H2Wu6INyZP667-R3noaGA}1H- z#A^3|1tYTBH>}9}Z!aGFFCcdx{!yIYV!u3XRST7|w&kP5)1fK?5dh_xfNwzSJRLPx zui~9w)B=8&x~$RVxRy?utq6@ec}wwo$&Xn83dIqQ*LEWA`+7M04O->!?jZP4{GAP- zL5(wxlG))`W|&h$Ciwcp7ny;W_GRc}&&{vGb^S=(Qo*$&O*@%-n^qOvDMJNA~CFJFfuT$~)s5 z>jl&K{eqdwi*3mXDd{rB)l>@_2nViH+;!30|pi z!9|!D_>-c^7<4PIxrBYKC!kJrHm-Qb6C<=Jj;i7b9iM-7Zt|nedC9OW5=_ws(sJwV z+>gYG;S=9*@#7nW*c);FS=$j0;~qX>XrVdmvB2tX5aNB)J`e& z<*q|HN|q(hP>P6}3AGdbqmzQ^@lq~ePP(9cB{es1`brf+QM9Ba!Aio^Y=Rx%9LkH? zJ66;WY-jwYjksliU%@Wo)A0yUj^(KV2kDicd~Op)Ju6=9u!Xs9S`O%a+Icox6usNK zGq?ey_+QXvpQ1naAXqO5SVyYDSYFLY;gf#!Pwp~4{XS`R`Tdz^!i3;(Qq8zE*n#&o z!`l{cJ-e9Z7{FE4e79CuKFPIa}YHgx>-H7>m@W1CDH=~Daki&ubf}x z2^MdrsnbtaviKjI=ABD(zhOqvp>vvibY#ZVf1N=ZX!k@i6YwcMGG0_oE4t}Om`X4E z)_gAaC^IVG&NM4MHd!b+x(GtA31#5FWjR} z=74>2!qeRoZR364+hR7}%A$RGJzAZa<2019DmPh@{9tAjRkbAP03iOm1JpP%Hbz=8 zn-P4P?#Su*7YC>i{(czehxD#e8rq8EccQlz&92j)nm!V@bUkjU$|KV0-Fm_NmA_Yr zeBvtQi0yz0y)H9*>9vZsKC_`!ekvB*E~B-zZ7Ld?n2}g?z&B=d5fWT;906U(G)75r zYWCBbURogcxI$}y?TvL@LJdWF|H17kP}LX#EIk3h;0CU$-WqYx%k=tA;R~3^x+84w zvP*Kf>QrNcU8j+?>ckmhK;B|BzWVcaKCZpn<*3q5`1L`{(~ZL78i!>v?CI9VNVAWGJ_g znu>IVEC77@34f}hGr23mY9;a8pn9uUL+OuF4K|J!Y)AlrVftSs2sj`9?i}^0yA=Tm z#0c`5#XkzIAkrF8?=$yjW7D^VzF$L2ta2e^tDfo$e5f`sroe1v!BO^Oa9{v2G-CPN z?Vr$_1RafS*oVFN&{KI4&Rrnz8tNiUIx>eyI zN#t4XHP={J22S*xYqCJe%h6uEW1?eDcxNOR>bWpIrJ>h=syJL&QX8+I*QjN^(taAM zWN*S0eig?0jzAN!-|y}xm^N3Km!AR`^kSlB4GW+Rc*)AU0<3>KTeeQwhkbFb%5rL6 zWFXimz6Uj|J!}b}#o$XWzic#ZhrnWtt;vS_$ct0BJw2Ypk^L z+P;}!<6;!g8*`^#FW|BUMYuWV8=4caS4^*&q?wb@dEKRwfg8tlHH#jnpKWke*w_Sy zUxcvvCdSJDKUz3^5L`d^H0|3h*9!hYi6`+MypDW%T#DTHsSl^Pb_Avi%h zNGx`W7Cdoot-9}HW!OI&3#sY^b=%E#cGzrew70vt1Pj@W2Whl#dU~UI>tVbl6CLJ; zj*s-q_OgLs8n}-wg^yv>Pz%e-*sNBKi1 z>!6^{%)2JypM?cT*@fKM*t7O2hGO%b9D}UF@2#GnqMuI84OVbHFi3Imm)WDYfel%4 zb^$Q=bdDxhv|hgdi>&e&ggifjesxoq-TUM`b;mZWPzIoigHIXUEma6n>*0hSBg3}D z0guS;;lB^ZN^Q<3K+^ap^m1H0%aFOW*k0{1%Is<=ns`P0uoC}?*aqsLpiA0nA;f$G z$t9-Mubz)TN8X>-kYDT|zxiXtewIH!`)zMlbEaV+BCDABcscQ*Tg$!y|i`ysy z_qU#ZzpMvHp(WcHJj<(kVg2$rO_kU1+tXfq1D&kGoiA2RTPD&hIJmHU&@iOv)iplR zo_NvNy`A+zi8nzMrH~_rCtOHvQVZzw_H)84WLTNj69~ zh9g|LiT-;jEQ2dpmlplzRxr(8mUORW@~u9iGxt##Knq{de-E93hTSmvI?vem-IKBp zc@%v`GN|rto7>l%G9I%)% zURvEn-c3~4Z}9B3@M~dp;UXEAku$nlXFYXkQ-}1SN($&PE^l3BRMZgeC&EW`=%`11 z-NJKrji8v1)614jSyD;`cv$AwmR>nk+^Vz0e2M9#)r z*%@^|y4xlUNCEa#Vqk}XkE=qxm#@p!&~B~1IrGEK4r9B+!&kg5jjW}!i`q1-2e*Ug zgdImT$wV&6UUg!h|L3Fr{TF!qxosBzgX)LMe#rW`ZK^gAWtJAnqBOHL52Zk+Z?_lJ zZOid<1(3%z0ja=g-w#C#?%I*dXOqp zTazSJSHa|lO0Sl2_i{Q#L!a^>^>rg?;V0%lI{kmszJI>eSImUE+S=e}SB>fK3{a=- zs$5;R&OF8C2IceVB&l7&mjZTb?(*m+dFW<+&D>NQDOkK0gvyO!JgUr{cNdi`oz-N! zot3L&^g($OA));=_s1JxjaHt8(gDT@3x}ZrMg>Tg5MT2D-#7ftANe=|U~5?Zh|}=u z>yd$*P5Tc+L$PNX*2!Fd4*vi3cW5^ApI=v--4(Xd z`v2^1)C-a*WpigXm6frrIW}OqKUa|d_eU+wKi&g?gspu&d_3bUB0dH8ofc$435m5^ za`Hu*ue(aNGs86%F<&PEv`vy|&`1=r^N#J^kr;}^EuV{zb35YjU|P;uV*k(gT-w9@ z;m@HC9;Pfz{P#)7uHcV=T6KcUyv8F+o+&$sp&3NEU{qW6;`HiQv_bOKcRTV)VC?Yh zhuF+GiMdii_^ZVolfkb$zZ$MfZa&|8>VA8NFy$ZfY<5~Qv3tAyS&7S0tFV+3pJ618 zG9;#KhilV_jNf%li@yexvt>#lI;Z12PyPSw6nobPGEgWqunjURSxfrwxBEwEXFC{( z^UsgY@6z*5Q(`wQ`tmg+Cdmxp<18H=UO*iBhB&}xE6k1iKxl?VY!xYPI1-|7*okG; z`R(~?$9T-VvvTOxLrrYl+=A%7gMxD{D}F5}YUp&s*#lSL0_tB1&8q0*&^kNC^1Ix-vv?)JAA4~vBqR#|-m$-2@qg#9Vp#qT*XKX<(xIsTz5B8g zY0<6Z#rs#`*wnUm9v(jCc2-yshpi%HkZpZx4O^DJ^>NIF65lD?S;EX~yO>}v@bTCa z_VL^Kr7uwnz5js_th(c&1RnWbj+v6OUog1z`r_b|&v^ZhB7J1=v!CP-%3A z$o$f-|L{RY9>}a39Be2c?+1yP%}M`i(`R2KsAt7cxiFRN>? z@GPG_{rP)^V({L})!wJYYeQO1A2^$1BEMpSH6zgu^Q4AiGKdL*~o`gSU4Y>O6f%67l;>DT4KTWD}d#ak#(ju%D{T!dz=ctj==`lv?4sHlv zmKMd1+X0qTT1?1z`~A)^2leG0UE-h}i&d-w;{8KUGp`x=4&0uph;nM&nXW7AJQ0Tj zFE>s`FXFI?JpuQ*+FAX?^GJvRkAoV2MG1Qb!PrTS^W_0n3a zf!Er1J7XvubwpB&W&V99)hN`zw-iGFl?s56%rptbypjPO+73X~^~bpS{O zGxCD3T=^@SL~1BR@%uv(gNx5vDp|G5OOHmY=VBmDW)r{)pP?kB)?8k4VMkVBKj&w0 zdg7+%VVsE6S;G!>RfXN=%JF$!MIf$A-zJ?%^>otoSqmlX1!~q~Ioaxe18aKf?p=); z8xF0OXTAZyY)QJ(E-9s?`~+}w`S!+5Cq~?@<s z_IaO~m$uf;q?Mtr3gTdEIX8TBiSuxn-a@OY$A}SQ_^iR!%SLtPV(zDNVgrcd@p__o zXXEB{kk8=(&T-3A@l+yp@y_pSuMLE4^kOD@%qkCNd1kL-*G`k{YIQGz3hoYKZ$Di$ z9xYnMk60g%sHUF{zE%u2%kp7J6QxeZx`V@Rn>atVeYW1ya|R$5?+By!pjm7SdQE)0 z|&JJG9ErB?8&S7$BkN~1S1Da1we&cgk&h_N#k z9)0Lz`a&vLdcY3TN#r7&(_G8c(|say!Ei{_S9Cwdz|rQLFEk@~ARj>}6%(TFhuB|( zYM*SjuN4_C7KlQO6@0TT6y>$<2C{GbA#l0BwiY>6I_6&(P|wp8E`_?8WEN`a7j8|MF*z?k7#Hm|TN#c0Dn5`J3(s{)`;~boN|U zv+CFS`T%2hvnlbB&;{wGl8WxE)9&9s+|IQanrR^$ggOde8b2;LD>2|QGAF*Wv^8h; zw8k!(I^28ok$bO57R~7}#0@qxZfe`yV-DKM+3Z;GJBww%F?zP%O(mT10CXZ`{M&)K zla1&6nboJ@?n~H{chbIgRazoDWipDGJ}Da@IajM4pYrwLu!N2!6)zyI*XNde*Ff8>qT{k=^5Q#sq0+!)4X@I|8INg_t zzyL>6;0S5DqRZgfLdUI^tOf{Uf~Q~zjvR!EJCEN7h91(0BPT$>+@`8`X&s*<@w}d3AtA+eKX&0f3 z0-{Kxw;QtA6G`mjn#|wEZ9p_rV!a$ zWft9dzR5V7Y(|M0&r}4G)Iz@4?C!{0)K*i-aURbkIO<6;<3~ zxtXdOwQbG%xxc|uj7s4G$|^BG^fpQ?dPe%i2Jr>d5vBSil(~*BG2N(_sqRZ`XUC{= z=LB*ax%tt?jNiO18&$iw%;Pq(!eU)$7OW+2X`&L#qVw}N6>OqzE3J4naTdi6cS2x# z`q2JjUucUFeTi~>3E@C)4o%S+QB2HXQ~~lL_9)g5k-|<>aA1{w?7EU^cYIq3SHs?{ z1=Z%M51bGU*R|9MkShXBXM6016%S7u-A;i=9il|dq6DE|lsm^C8}{IW=x7Q8i=^Ka zYK5_fv>3U+f{kB7evEBzE{}pkMiYX57)6ZS)wbs?r{d8sR|Do|vP?^tz1SO_?ItBKVjF{9RMXg zyOm|`=_W2YRFB@i1{~OBbG2SH_+~gy3@v}qms&4#2e#NXr#{I0$*PsEvBlgRfi(#?oh2 zVY}%XG8|7YD&XJQ+e4k-Bn0*~Ag25><(heWP%f^jZ|oVs)9OP%f6XB}xo#q~IF}mS zVzjiDiU%8|Pj_uz*K&v7#N;^{Eo~?M*cp|V&MQaO! zcNW(PW)ZfFyPLflhYB-ewjj5P_o|HQx1-DN0Hh}URD}2Sc%<{HW{h0Q1VF5ND(x%} z-EEQM3(I4NZxS@NzYtZ_HCKrYYI&M^4(=F~eJGLcjuJBs?7+zavr%x|j;K?8%X$Dd znksrW-$$h8**_Asy8#^pFqf}iy7>vudDB_TqZwcGI=(ZzVi0v*Q*xTQU1_}i6sA5z zyx`_T(g~piq=dj$eoVFM;s3nbE)cvllX7)sMgbp?-#K#67Z-&nGvR5lAD7PpWyuUY z8TA}i=ZEhPtJw8cRB@Z|Zq^0ocepUw?wv+jp9I`m&!manwQb{Enj7 zlh1njz)2eIUjq4%v#mJy2L_t<4oBYa@0Lvbw&ntZS94zf#4`z{w6nmp^1JO+0tgF| z36W(ag@jaGgyNaV>YpDghI(Wn-jUMDVZ_^Sq>0}4R2;NZ<)xK?PxtNb{1DK!*I5J6 z|2?u;Iw9)q_IvvMKfwyo$IWLGX4Ms%w*s?KSxt!M;Fj-~-|+xY`i}(nKMsicnO!g$ z5tWPAQY5yW1eOcms({Hh7Cq#XD>Ubo1x=Jlt-}oqXNH4g}9nSW! za=P_MqfQ9+vZQoNg=Qy83ZTFuI#mjrU7uxF>=3!GJ?Z%gSvD>ie{4}nCI0>p41Vd_ zRP)StKr`yJ_V`x-LCEeRKpsu$ z`mxc}#LtlKVE+bwf#WdaN>pZnYo_`&ChPf>QQJ$Z$6roYT80~JlwEs6XftPrFGm~T zNs`M+<@37Sdql|@b?zD`;KTYD_mQzuFX&e_-3X!~qliy#h_O(wpq3SIpHo3F9%8m2 zj@d)MlRr(P42w-(Y9--GXAlSxf#-_p)qVVbTKn#}Cf03H1wjQAEC>h)7JACx7Mi|^ z{UjcyR|WNbxm78H2t|*5p9mCay4qHCN^SAlAjYtm8k_gD=hU`1^C!nVQp9;}tMu{) zt4G9k@BM*xMex(hhg`@-+hdAP)CIuw1{J>pnF*}%+ygI*Zrewt+f0jvLYGZ2Yi{`m zVr{Obt-NNJ7aq;+DiMgnj)f|zMMg0eKKTk1CW>kOSR2SO{TZaj;9B75D0cm>@<3Nt z94bha^~5AT5^LSz*jvxhGSJV3XD6(XH1q`R^(pSxb;r}LMa{o$^@1S{Ivpe+YQ-U$y2PbQA9UZr%UF z82uWPcKY_S^!Sp}ME^#0+*CF2wIWMz zFQ4&eCNt|8Z}LN+fJJ_JWN)@`XN_?X?yHGxW{FX)L)FyIIe8Ct8U;0sK1-mp zhnWPCxMtvkpFUC3~{au)fxELqcreh!r zI-}((UY64Y>U?ojU7Chev% zs-80kG6^QF-i0C#$IRxWpUiB6=+#+A(AY!j_P)79SxoIc2{_z1Qoh9n83H-uh=j-B z@}&PIsE=q+0LlvSw)AYuS~XEEVYn0TRF~A&Zb5!*a-_<%riCcOuPU1B)7jT?h%X!m z1qsk8#TWpd7bzLtu8K4-9?` z<2)2*)DW&{(i#U=IzwTmaS}g|=!+6yZ+fjfJRTLe!frqq*jwhgSxhK7_}Am@8};ui z!MZmExq_VXSs?Kf#U5X`$JsFL+dt|a!Gknh$DNGw&m&JxqV*+n=1_d!ErxmAl`G20 z_YCr%3aLaY@XvU8Z}g6gJo(sbhLTo5bUl<^smiHE4{tbt)|TFALO63-xbiZOn^yF~ zu#Q2nXqV=KWh;D~$j6ERC&xRVy!~q$pTN!s%`8Z(6T)MoT{k|vs7)aR9<7Y2;rkn7 z6FJdq&V8{Vg=1%Vm9mu8bEgSFA}M6jb}U394hPs1E!*xRjMt-(_*8gFC0>m$+eNgh zD~lP-df#ObA7_GKzE?$*K*e=}IKpQy5U-c>K8Mj-w+P8~vk)xz!FiW!j3MX{^q7+M zbb-H<82q?`pAUI3W58AWlKrL&+H(Bf{b)0kb-WuRGs4ubwUO0zasW88C1_1o9&?iJ z_O*0D?;)_@3FM>P3JV({NM3T+YR$cG+)9Xo721^J_46Tr^L<;WxGPu}lv1)Nb6;kZ z2A|n3hdopwLuH@a+{Ox`x%)WT1AuR9?;~$6iRf2fGQsMb+AiPgXe+pe8x-noe|-PR z#a!*!v;YZS(_?v6z88_jxNgiPopaWYPR14BgUJQC2o=I4%LAu z$0USFod*{jrw^aFqk=poFW|ruYvY$M7zZI{vwvm>GG(3f!+|!sARl5;3HI(}-^L4B zn;A}XYuAL8P98b}b@m6Q3M*wb}$Z|LuUn6h3*DWTD#K zPRSiL&M3zwGuXYmN?LhzHhIWz9gcu&A3kNV_9ZCRh1@A7U|Hi1fi(4K{r|OIkm3|4~It0>^s~rzx#ns-KtQ=LBYu=HG%w13Xe@g zbK9NUQhJG_VVBaA4(-|{V5oihqVYnv@5F69=HujpYGPX%_&9r5Jd%37j9+C5pM+Ce z?1vM#)(ef8Db}LWri)K-LZPvD%I6Ngiz(dfzf*h;CS-!6_J^`b>1KxyzP4yOGL!1n zPY$W#FNJ=ekn6n}%Y-{;wbJX8Cl&FfmpZ5t02htYwJMzLv8h)Jt=y5Hr+lWY{02%Iu@K;EB_W8;D6+j*v zeO9<&4Q*I#NpYbczzU+}U^lM<)LP-FW{gqXaDoeAhpO~Xau8%m7{q?G-JxbSa+u>K zymLa<7UcT~n&6~frdmDL_vIXvFdNZ}fQm3*Tb>79OwZi_1-PKxBnRe-1tio-T?Yl` z*a*hq$CLDUFXWwF^qO0o32QB4l78D(aGxe#GrSPr0}2x56&J8dB2|0F+|kDcY?V90 zWg??qTkyAtt4y8HOR(C|?iK{a+psFwOIQEZ-&bJm(o^JTWGd&p`dtn>5kYo5 z3`CY9oO#MQdw=9C(#6d2?E8f(+dA~L*vmb8gM@kYNP6fKrl3xz>FE|Ld;`B+Nvxa5 zErW?_G^WeB=hgh1S9>O&0H*2TdtfxFh2?%Esd^3Ol;oO$O6eOIO>5~7aRB@TaJK)^ z?z*#%D&7nGBurJ419L4ZPti~bpZs9sFW1U261$QjJSMtDr6gLt>k6mFi1|}}Z3PYr z6kC{KLwhtYXc49(lhaL-9TOP$|{4tQz7PL<;n3WedlqPsLAk#5ZFdyqoz?Triw69orLDfr(HKt z0f=vSS9XE*F-z^;<&hknLweP9K*x@SU92y;bS``DWgwUwswaa<{8Byk-q(EVy7JS7 zYH1aeTo$O*tv|_G1+l!lv?mDv>fF+#TB#bZw~$bqpL8Km`jF)23bYo@%0Kqt83iF} zS|Cwm4`8o`M4juGlvw|4`#?Jb=u+~ziqdOVRzl69n!W3&cq&ou?MQJEbh6JmcV$qi zA4hVw*osbzvBZ?hlTWCA!HKO=SHh6TF!a)(XMut9Igo=|Q5bTHb)g68oI>W?76002 zp;XNKq|QJ)lhehd*W{yH7c5qQ&mig->QB~d_bxVu1;zfSQ34JocM<&rYI)Jy9U^+T z5~~I6>m(F@MT_(vv@}%-)TBzvz4XdnunW9C#OLBVbExY{aQeJcnXQL@M)A~F6Ey~T zqAKkwV&O;QribT9ak_gtW9G*C$nX~{@BIElWkRt)C*eJA=!DK*b{0)7lh7+XE({NO`9_N}+AAaaB+WW!xywap+1h(~7C zWchMJ&=dpqGs%<{vj)j(MgAQk>%U_K=|>ul((%VARe~bkH+Q&`>w$)=hV%fCztkBG z)AXA623l=SvO;Hq%2lgtVr<*mzs9D{*zTHng$AV`u71B=##cXyBeTo*sSX zrp|3YtSDk^!2f1XW=maa;DJ}RaMwhsk{%ZNWJ zaZ`=9*;I=nV)U@~ zh#pc~bt=L`k7|+ZKTniHkHXQA$XP45GrOx3-CVTu?R=ImC?n;w3d%Ds%neqY^&RpzS{dy$fv)#t8(H4M zt|dRk_vN#S{-xB{h|^#jZXlXRZFJ&d$bI34R_7#Hd-baPbVN}Lrnax1T4(wV-7grY zz&f1FX%F_+rk?RR2YjNkHf1^TNjT6o3zb{pN+LN)@yH5>S1r#PmeUhG=QHT@SeB<) zYFKK(=a&=55uxXTw$SZBQ+__LhbbIVawgooK=FH?uT+W1$A%^hB@DV2cHwxVls?^p zM@5=1uRj@8dV0=h;Z?y_VkCKKz#vfJ#kxwObwcCzL5{z#SRfeEfpM=Hh<%gUj@1ei z!O+Kf7_W;yw5;*05lp({RV%0)g@@o2WYvG>8#6bw?2t#v5MHnGVCz?KU$InOYF5@l}cV6nds?W!1 zJyMvjpq}M-j4_t1yovF)IU0 zrNgX+%b-F9`^Jaxt>ggJaJ_6X5<=!~!1syS5*B0fIhO8-(KqA{796BvVJ45K&TM7j zRtF(4JV{x2fSel@lByk>Q(Lx{1wv<^R^-Idf@O}e-)+#j+KPq45DskYE(Y1jq|UM8 z&*iD_LWNG|LMdO~=7%tcY+66Z58c&M;LCC0&vt1pvzbiy-wKNgkx-YF$r}4c^LX5S zwC*vZj(`3_DbTH|%M|PE?W5?|U_e57AVq2Q44PA(r^Zd5`6G@Eg&#SAgkxc84$vkS z$A-)kN1g|BzptKbB?E&{T6Wd`{=@azeoLE$bK?U07@0Y--P1>Nj7&_u1B2=t#xZX$ zcxzSAjmpzFSBs7y2=)H2F`kIbq%L#*yv5>M>yqwFov|#*UJ4n_Hvajz(#2ZH;RClQ)zF#q z7*6X72@H${96(&_v`)_pkU$tv0voKFq(MjXHm8!;dN}i;)I{<_A?=3z00|z$jZLtr z3FiWJ1R~TnLKi`}FhG}ISrD%GqkEZUf%e5%*FIa|`Q{HZjQCG$z z-n=JQw3tV^P0QJjbZ{yTxl7IgE`e{rNZ_jeasI0YJl!yjjC_@d*z8%v_t2_Dnx@HN z1zt5f=jAA>isrsR{x=J{bb;)hYZ??zqob>)% zoco2mAOvS;0hbFgR$HlkjM}&J{|eVbmi6?PCbv;;fg?j1KhZWcz68rFnkxDEWaZ$roT*B@1fqu;jLUko_!PWm@|t3SorhwH z6O3EV#gAKw@Z`kF=5J~@bTu^LfFr2ny$qex`n>cvh+RiVEq7AEEd2sq6DZD9nxyjM0@WTS6O3$VH1EPCn2?xpHCK(i(8{FVA=$ z!%Ew#@Zw09tgs&5oR6TWS*4YZ{5*du_MC0~BU#(}w;VZPj=$U=HCQHhBC+3_yyIQd z9EyDdhk;Q;=SI1uS+NXDHF1?|VcU%IHg+tYU@~6!i@JAkhsih%U^_Sf!(LX%X-d0$ zg^+yLiO;TSX=!JEM7GZ0-+&Is?9mxlw{UQCV_z~ky;JS`15GP`GQRS z>R@iHlXYPTp7P%qkyaF75D!RXx5NKb|!@ThaEmpG*3Ky`f)?8bf(> z^Y^_Ij;a*RFVBCPoq7EAU@K6M4b&_BX~=zhW$|BEDjqR)e2Aa5;#xZ5zN4rT&IbRO zI0&O>;1Y^SID9QD(el_>JaCfZA0Yl4Yl}XH%CfSu_Msu9<8VmMPNMjaFn&1a4|aml zPdm}Z>s4$?Y2bfD-^p$7B#M7yITFKljS&*RVOjAX(EbHr3ucB&A9lc;$A8SNVA>&( z+EIzOVGJ@#ZK4CiYG&|TJoq;iKiwSMsv+17^tkt6q#uaP9NWS7{DP9d|Eic^ za<8?D-#F{}Ye)9?6Wi$#W=IE^ax%WvQn-9vVH+k~86VzP=T#`md^XvktGo>yhamjM z{ukMcUN_X(xqdNX0q0>ce!*VDMr@J#1=s}E-~?c>>2|5`AIqI86YT`-b%4Z8^^QZo zC*z&i1vh2Vu?hJxX`Y?cu#HQ<3m1NsA-%BHY@=n;9aeJh!FD)RERq3Gr|#Y0--M{B z7o0F_l_6%g!x;H*@~o{;<5rjMG=Wb7oV0_g{vMQ!lhMo=eVZh)-^6<-#ffBc2gGzS zB;Nz&?EA+XG$B+&+A%}!%h5lEz@ga9;MkXgMsHdqH&Oow1hMR%MCRvIG` zGNZp7c-;2T&l`*jq%lHZP~VmD$KLgS0R=&`n>P>l_4msx+9|6265U_QD|2yD?I%h9 zOy)12`M?F!O7|LZv>qGv<4Rl;A!lO7ZxL}aKAsd9nGcX<$Hr=-1hu22n(O! zgo5snpnZ8i1wjAA{eRG*8-m?kU03h__tfg=HKZAKb7G|Lhm9QG(W3mrvj2|?a4_w` z)Uf~YjnvTmoBMvA z_j$knd+y`YIgXjx>^=L6b**)-bFFJ_f)(W@urY`+5D*Zsr6fg_5fCtt5fG3v(NKXi z=X?+0e%rObx34hQ*Y?VP_cYlcR-M*_PP3f7+n-|~3 z9iD=}JF0SP_-lNzuST`g=zT`#KxvEWC%baIR)?@zEh1Q`8Hu^KDfoU$?|G~w;?T=? z+?wEZOiKAcH`O=GuL$%JzT(Fwyl%uaayc{Sbi6YY@|+UP$lwd*aL*4WWl`$FIIp-J z9J#i8&ZLNQVejWp8!tgua1_MR7$w9k9stFIOINJ?RI3U+4-@^8&xb&-Run2f-1TW4 zghDuh%SP!!c+_qT<_zLi*2W_&Tr=O0q;kh=pMN(H`}kLMRegxq#}Chn`@@c)!M{Yf zB?i_koJr0dstn@18rX#bK2`aOF#W`y_SK@2m-kP^KoDn+&*^wwg!wg!N{B(6+J8Fs zL)}{ub_dh!=RSNNrm3K+i5-IRNz@UtV?DhX1R@tkYewj-@*#yG-@AvCFAW<|yqvFT z@wh(bq{dS6QT_Nnm8JVW`w&fTUo%KDIlG^*fsqkIW^DVc8{<*s5x15q-shjQ5bIoe z`H}6P#vx1VV^f{Rref&b$=tt+_-|{G<@nuRd_d8~!_kDGOK>Kl9{J^bs>vt39Vrq8 z2}b(sfB4qYrVc9PLgUt`gU<5LF@)Dn@0 zKKS|dkO(7)ZlL2PDEsD_f}7~(vpG6l8mEW0@^P^}EgwwzH{YF6R}q=}roY%nu(@1% z!@MFphgG}0FogR67nbe~PACl1iR0T@T;)k^Gv}D>QJQ0*H$|q2{dw{^wXh4{|(~BXPxdX>AuWV(CXqRmQS##<|5fNVmnbPvI zz=>j0P+%iX!Af_K3ox0^$xBr=Ui5W~;zi4^6-~nPY_Q_H(J4$@(6YjQ9ei$nnauygAiu4Oil;h7(Heghnv1W*x zi1g&0gCe@RUzH)!6sQ`ex8zwy@e0q~c4HkwEz>FB7{#tHadZRB0kjfbO<>H3=s|ntlXxBbhJT+T%*BFw`Ps zgb%hS{3JQlbE94eH|RK6_CA*Yr5VcG(;(xyy$^n``wdH&C+lOGzkQ_rqx4+cZ;Vt? zUC($Q-7G<6>DC{b<0m}gdI*1{6P)(_!FQiW!6woUG$>I&rM#3M=BHMsR|YwSIt7o( zd5BC<>O={2N3CL&$LdO#P#w@x&=^n&(c&teFr39ANb`$HCW&duPs>BIbTge)P`{w6 zN?77?BqdAeNfzgFDk>=3sTgc-Zcc5U@5l~CZ88nzPfX`IYHy?u=pY@lje#9cyvxaLeE2=mWYh5J z8~RsFFXznMz8xYW8Bej-Vj&toH0E1*_G$Km#j3^kmpv~FUR^GHY5y`fH8eHLJ?@tK zHtg5K6&BhKC&Qyel)kmTn?9>PS8674d+`tAOhm(MKSw@H(o)L_%Zbtw(0a<1Bsab^ zO%hLBPbqn2!`@^Zm{ON0$CmP@dU`iU>p=2T6pR{$no)e8;-Zkpa^EQ3LU7hA<-+~g z2U8}59y95OM+p9trg+(2#a{kij(7=X&!VU5ZR(E-In+Cge9Va|xQjsQ9EEA)<~Fuu zHpP_-mh*1}3|A~-j8rTuCfCE6$K!2Mj2k+t`>O{BdTbl#NgF&G4E7k#tUbTp@Ls8$ zm6DN?jgU6GSU9--wD{TO$n>_zwQ*0>72|F4zUq$CkEG2$mjTy>Rj*+b=U;ChHjLHk z+KcIV>(P{?=<-QC6u*dw4lf{co)25^c+2Qg=-R-Q%){&Aw6&Q#JlHW6*8Q}?p)dah z#k}_%=3Gs~;t|`)(+#EV;h(<}@{xp63#P@ST$=@Ogh?W*hRt34oC#CGJXjf zTvc9p9iAS?U2&eDoljqwUf7&83~(CJl_iubT;X50UvFGdocWS0ktjYc6IvRC)U;l= z&chTsc*6<8<^|7QN6O&|Sy(A*urYEop3g3o;O*e~NZNGWD9$Rr*$f}*BsG^OH^<%3 zO7u+R-!+`FvPE!Zso@~SjKC;GJNUpBDj7V5_m*pfmYu6yu$;Ar&eBEI>J=p~t%vD} zb2^GbYvIai*f9y0tF9*&GcALeNZ*ZSf~LE5ubb0#?XSYl#qf%Vm=2B~{%-o$+vj}f z;pn6IKFN^ONVY7qZ=XaXzVigq*t<)#{5QG7QldTEn^~$gBq&aq>N-vG9-nAyyw3`y|ue8s@giZuK2k=$bJn zoz^}pUu~E^w{F|5=9zGOGEm2r@X~dM-$ehcvHGI=xOd%^^@Dbq6{Yi=+iwQa^D-K7 z&APGGUq1I`Tfd(6FU@W)V4Y-6NHDnLJ=|dq`Sm0E2boM`e38M?S7FV!)gw*i1xGi^ zZ6g(nZeA)k{Y&MkrewX|33mFgbt(1U+L(6r=oMnA#}#>$d0cOIa1?P6Sm~Ff)t|}6 zxsJy>k2&`^>y3XM@88**DAm04@po$xd~~Jg($H( z#~DX(N`3NZ3LkD5-`K>XDTl+nVWB;KYwz0i55J<;B=RMC!*R$Nc_tR0TkQ#?dtSeu z9jn%%qfM_J5zJ~@G3o0b6_U91`uTWc?Ca?3JlqU)ZpTfgE9+67MaQrW?*WSI9~%k& zWX)t@gx4&u3{G06MtG`^H$O+pbg~8+++JWD^wbr;)!-}rtlRKb;MijldpV4b3)5Ec zuIhXerh{pVZ>upk+@j(;@WBpbCi(J zz@x=_M`5$&s^D|~juANJhX^X%q%ijD7jOak>piqe0*W%*o@vk$(<)zF}){Vka z&{I+ic^m}aJ!C(e1Dw#1!&^3~(c^sd;gftzcy9A%Jn6JKPd>ihgLDa|n$9Vvdidno?$RatP0X zV>AS0L}COK;0O_T3nG&I&#^cnJp$5S=RpVvK~MxBX8G$k^1%1~D-w9$-}Co3Qgk4~ z1K_Vmz}qbo^zUC|AZH@|`xq$`xQ6grMMO#p_*OA?Fg3Mxw6JpuCrMeH0*!5l2FSlFlpF~DFjzk`Vxud=B4zitQq z5}>khac1QLcRQk{ zj>Zm9dnc%!E%?6OH%4~OP6AX^_Z|Ju>+f-zxwrUgup_5KR$3l=uk|7jbz zmH+-MuOigV)LK&%Y6Hj&=tGd5gYy;tUpM?;m;Te`-?yqcnmUNs*#LJs3I0dw|GN2q zU;O{y_*b7=|LK#5o%?@x`M<9G>rQ^w`>FpgQT#3Ezs>@J7R2CZ{hvh>#MqG0rvTQG z6e_Bq3VZ`vcK<>g0zT;f{sxW_pRcN#vEd;gKoF!vU#q$y?#@4Od#pCw@rw@j%t=_K zpc3y9UKtgJkr{NdY_$H@6G~09aFPb$k_My$Xay{N$&#!(D6ZNU_XT4 z|9DIW>v-|?5fKs1o43C@^Jr;kdkWNgL*x&(7=FKzzk1Y!B_`%RA~FTRv?qZuKVVt#-10@jKah;?@9obCH(dS>$cepSDI{bkm*L=9^d z4a6FF976X8dI5~}upCm40Shko7s?d>V`;q~zX3Wa?j~<~R z=ZY9T{8K5AVk3)7X*Oable5EG3G@%RZbW`tyZ`Ph0U|B^@q0&yj7cmiXeB~HPF6NH zjxj+>Q!}xUsN&BA3tn;tELe`_BP4T@75@*10=9yEftj@QQh@D$Wy%?~SL0wATcYkIpk)RiH$nVCTI(=SvC<=70Mw@!a%`4!e%gD5yaB6;1%={-9wkIrN49*Cke9j(Xb|u>`#RQ zxfhO6N=E}Q9?3{GRkV}V&sms%rfctM@kVp&*{k-YZgFhP&7%$cj6=a-j0UlCC3k?wxXW!~f4_#tHHv06BLpeMf$2a#*l7ZQU{Y zhx1wDKr{$|0EUzZS+WGd^c%!a9{dqJ!I)4|F4dM(8420 zDXFNbDYxLzkI`%Z*iZb(;`+0Byr(h@!kWN<$%F0J{#x57J%Sb?e>jc+rXg-xbt-DW zi`Jg6sKh+NHytln3z(z9iTJ~ovM{DFV1Pi-(SuCZKAJuvCnw+bvG~(g0-pVcm-G!& z`sd?mN^1DG{~4o*#6$$J=^;@Pr-^+w5xX0Q2bOWzycg8 zxu5@;ve!Mduzrp#4h?8M2jq(X2wyg!m7s2#V)oCb;s-&*%*oA_j+x>P4h@wCXjV5C z5zrK<8G{t(&y!M=Qv z%-1=7x;2)SraQXDAIz=>ZxsA|FKybl63>x2t)h}6BO&0S9gVPCf&v6stMD4@uLpE^ znm_Fj5q`@_W#S??6*P$!Q7d9Zhvd|2(Tp-4|uJ9y}rBBA<1Lm-oH7JA!V0i7Zn2p zTqdbsZ8Qo6!G5eOJ5c==d?_NMR7x-DtfU`04Mw1X`Xk$dgVD<^*BlgF69*_26G6xz zOqC2{e6&^a-{kNZ3gG9@m7nybD!P%O{p{kzdrAZi#F~H@3WG#YAHc+8q8WjauIhWT zrt-ibthy+dzej0lvWGP;N;ef=am0+&_s8Ug<-lLYukE51n{QPsX1t&N#;YVNqMh{6RF!0b;#eY|<8m&99 zRwofuy2QU=xV8pM0$z>)NYEhd=OP!d=6A%7fxorpOE!qC4?rp^DxaldxP!|?P`U0c z%f1U4q~WF$yFjV<;eOR0W{6Y~snIUU^I%{H~1 zt2lzy7P6qvPFqD0YYRIUdi&0-@n75lC3EgF1h^d#g1=}3(h-*K!S#?-CQud{9vYTd zNVPjN1k6?{Hcjz6R@H`%hj!vhg|~UI{F&zeAdK~bCqIk`68U`gYDm=|>7B0HqU~@~9 zfM(tj`a?2Xf;8fl|Lp~`pM_HTH#uk>?df+aQ4ja869sRT$D{l$olSRFt8R| zN?h%EPqsZvx;!SH_NMO^Ts&Px^%>mQ0KrXOjwJBoZF1j|B*EdF?rX^tBYUx^?q!|V^8u(&SJJPikZ*gs%Wu=X9*mw6 zHeQEe?b|nc%MU^qwu{*}!X3SAjvNCahCbWn2fKiBo6&tg{vF&|jR4TfR|6OqxxTg~ zDL!LV6p&@oz5bOi6%1f5kl#3sXkLZ29;CQPrMz(5O|MK|cyFb%(WZawN@z@26zNmp zQ}N(!(9VS8x7Jcku0DyMto(&Fl4Y+YQ8NXL_Z52EXM2URu%sveJHi`-nhoeKWER2xNQKx*L2_IX%Le7E;xf zN==I`E`Bv*9@%bORMKJJ_8V06?>9Llp-r<_R-{eZe^N&p%X;U0zH}BA9<|7|SGiN^ zVCbWO3_8|HyfLQ%%#e{R{dY1t;JbTq&HhVVeWol%miyp2?T?wYHBFnk4QRs<#&=SORR^}u`g~J%QdCt<>Ly}WV*+au2x|W8*6o9z)=b^I-Kn>l(g_2Xn)~6pQ^hr& zUq$;_FHNG&2e~*n)GWEI&43V0N^?FjKEGQkxZHiuAbrpN3)!f&!&`*`7Ns{3j*-K8 z0C$)sR}7e<=$dsOJ=bflEY+p`cE(t5En0nL$7@twwCLPADbI){Ut3*eS65~Ru)cWy zPBj4U=6)-a@;JOTJHi0%vNb41B}Y{h>JE=-8ZmD5Rjx6EN=Xm+9KXXtPTubhWbQuN z{$S~F`h#GtY|AizWO>^4NHRo)wT^GI`bTjVKpZXg3ST$IhJT1H^8kQMSy}ii2C}7T zt5&YCzEmoXpmVXno)s-~k6ae&83%FJMle^UQZBo0NDObaU(Gt zFm;J{62IZbkulVl(seShF8vsCg$*u_-jp9EAiGosz3X)0MT`Un` zaPZD^aJZCGD);p*c%M=LYm+xN*rBi{7WSc(G^O~}K3pzZvnN6N@x8ss; z+v0&MW`w(=1>t0!zW8N>13acvP{a~|vHDGsKKBQrF05xozXPn95M*^bANrh?oJ0h} zy7D*5b;8S z8Ohk8rxImZ4i3R?qrLW60n?qUfkcDmSr*ZN#CmVH~9GYEv2P$)HC(?f^R@d}h;SNQal`CdpZ*-W=o*UoT+k&&!;F!Go+1RO{f;|*?AMz9eh3McU7+_PL9$ibRs%R!%h8q~in#zFZjUQtibf^A*2ZxWV0du?q!c<^7 zGBQ=$ol;v}?2ptZ0cxQ89toyj9H{Y>P>1o5XOtu6N!RY@lvFVV{`DN;C4e7vrSc6h zoZJFA^elsSkLCebqPaYBJo=3l4WI`)q{z6RWJ0{WB7;P zNE`YAap*}4F5uTa-JtpENcd<>+ajp&n@tV(Uk!2k4$NcCjSg~FTQ1T_ErJ$o_P=t| ze0JD%zUXo)&x9t$Opn&-AK);pdzhm%`e);zH7?IE=IE!*ltX)4*iA1z-Dy=zbhYXV zC0rQ*=hBzRqcc&YmtlT|V%Xv17S$+uCX-Mc zo3g(dvwV?Svgy!IFp{T%+u)vYE3(!=@np?OgJ-7XjsME(9+!UktbEEZSg6m|IO$#< zy`Ab)SnH?)l)*glZv2bBSb;`9Q&dz`xpyba^z{KJKJPq>(CuYjk@j%}#m-x2%O1u- ztn!_OyK^gd({0(74K4aQ5M9-Wn3WY`9Y5CQ8zoM=d3}c${66c%v^=Hr`6FL^^q@|< zWcm8c+R@R`rW^ZB<<3_)7rzpO)>009j?T4)1WM6ThxpaCzjr2H<%g4M)Wl!N<5POV z_Y%k&&U!wMTbVB4wsa?-k~EFzUBdhnGLL_3Nd7ol^XhFIVA82lzde|wY2zF`cJU(Y zbyRlwCmqzhUm<|sLVR&cnLg*_NT!MR1Bq`*^g@!+=Nvo?uRo4NwrQW1^d}CQ&JQ5z zzc^JD+SXv8J1vaGtydsMWkQny!L$sbtx6kJZ7&x&XuXs;dIK34@^hsZ;722cF{U>{ z6277UK-1_%`IK7+STN{(m4>CZuaON#@04tU)jlzryEg(Gq!$CK2&v~2Ow+aQg*Lqr zLt4>sn{)=`Jc`6)g{IhM{YiAJ@?LqOo^GeBE6J}SUpLuB5s#Pqv}j!on$>+;v@cB$ z#HwovO0^LFV$gplcIeYF znS$ijo1Ia?*ujlk#Z>vyu8a^=tqf8xh46uu7}l1U4FgX`iP`lZ;(!=2#m->=V9F+s z@3B|-Z?GZ?#9BCqKSIaFg)39M+yhXSn{lKKR z`fhb73z_5*Z-*+Dldn3dU@BFD)1FPuubGIUjY@$Zsxw8jGo3^f-pj7~Opj9`$GKr9 zW1l1ndJ`f0y=V)Np1j-#N7LY`5J-2b;yfslAEl zto`FPq1$d2-`W^{@&!(%@uaQFn=>JN&QcRbWOA#86vh-!nY=vxMAe@K^7<2Bo93KH zInJ&%O6S2%sQjiIrwVNFy3!XfFQ_sJY$!O}ex9hfAEz}r+iA_vw4z?he z(^$L)w_m=~UamSYLUCRo{ipPBmmTb;8_8ctv;ay>8=Xw$F!k6A1M?;3YuU?;OxIoM zsA+sl$=+JYX=)0G*I!G*t3bCxC+$4WN+MUU=WAMCBWyQR(rU7 zrykiqQSnx|y`H5wn&6}8saZ5FdNRsX5U9w#5InC zzrP>%GSwbirQ7AF4n)i$TO;%736e z;2_YQ^#R35JZ&DGQWPz>2B&TxeF^R3#G7@1D!$T!9P5>7{KqSU`AYK!70ND@ar9j|_UL z|CWsEykyq4Qo-U!%iB`9sP55){wcQkt&y7-QClQ;@Bn5)+A+5)KemClq&3*A zF&4AsjW3eBoz#6h01F(V%aZfSR)RKfkshoS=v-Y)5RS>RQGPL;;l3$$mUW)Ceon$p z(AfH8qbknRQ`ZjnIv3ql9vyF=>0ICa;Da{0VxC?uRi!7!nxLy)r`Ih&Mf!Y=!~cnQ zxv3e>eNcMsx_7v&ny;H5+jqI`7n)io5uUFtEsGssod*PD+nH~4TuI}7YSf}-1{vuZ z;G~??0Vq-0{0>iCaooVO#|$Od_xa}+Tch`J1H>@){dfp8E;%+9oHBX4c476xr43_? zYp2HVhQHzsHVJAd3khYL>O-treD(E0AgBp#H0bw`c}`BmZugC3RP-)kG#H@7YabU} z+{rM!;Ny8Y!WRxtgbN*@&Lyd`$RNjT^~RbluU|Y4o;8enQsEib&8cJT131(LckEd~ zL=G-1>%~7vGSSlJ^G4Ha)_OQ;Uu=nwhVB*FMo4!0O4YmGQ`;)UJ*N$84b!#P+lwH?4C@qg=!G}G)EYZh< zwsg*xld;c-hoembmFLeEakP#mF_L(8UJm=@WYp_A2Aph-x0mdX`hK~tKUb)`{)zdl z1RDCi<5e_om1XirWx)Tm%&yL&V48OHO*^!zCQ1vbLu0B|bM(llxqUu`Z)hzB|)2IoIA`vOE~F7UC|{)8>!vFix`}otE4wxf7Etb6PN* zt%fUfXO=a8uyFH$ooxH$lCjU5Y!qTSSwz{HZ2TwA2oxnDxl#r=>Qs_p|sjl;`B+|jO=Y!)x8bAu=ZO3Je`c9#$E#ac#;)y$r z66(bl5`s6|d>1y|A0Z77n_5a=A$I1<5leC$-+orZg(vScdkzX}Ra+MC`Kt>u6^!O= z1oeF7D45ybxq`?C*^e)0IiLTkU-ua2t**x=+TL-x$@N{^xd<@j>dOPPLr`+eD=R(*f@9Z&TO)64CKHnG1hvzaa*n_@8CO+%$);0m$MxQ zBcJ?wF)}pwph`~cwYTro^?}R90#=;hag3eUEK2e)e891_}hiS_)>kwjKP~WJFXuWO_?h^c`_O4TvNw4TksZ>!x(7BvJb**CJU6N zdoGE+J;7OeN4#z@qE@-c<+3|REySu%Te05P%U0xkIiGI3pYJ%EX0#Yo05BZ1<2zgU zfe`(j?II=M355mEok~iD4Qz!9D_iDE>qM26Rr(?)GcNZu7HfzT;ot0JLW?TGF+3<`AtWGG^rpxfU(QAco z^)-j^nCqu5dZs$A{!_7F7cPv)E*#yXh8V5LtNug{gW#m73Dh)n-clX&;@158%+Y*nBw$#OusYzQlO}XjpfFW1aUNQ%dy!I;_@SXJn z3#RWyp`r*(9|xJ7jC~5Ixk?15Ot4f5%>+KvM+?ilu2lDEKK4E9it7>W0(J;`P5XDw zPv1i_DT2(O08y;L$2G*7q^`mUV9kN@idDq306iSKAI9ZpqM-;L zwc2FE(9^`jQj(!xo`=|;r}ykiY`PRH90s($LWtL*e;t&NcHuF@Hs#oIrGR2O0T@r7ZEsF+&Bj7;o=HLxW3cjeQKa z8wv_WLJP^R_fOith2QQ357eAgz5by%Kw07Q`19#oT5c{6P3`huhY1|jb` zd|EtRsk7aA*2%Noj4cKpxLGzjON84k_Li##7lTf1)Cm|psQk6*3H98E;#wNzFN-u)#h`(-^S1TIh9_$YQMu!ZNnn$TV1 zSyQ%XuVl;YmOc>5S$OKTa^fb#Lyrfn$qsqUP0RBK7xQPmU0&2=sO=9ziYp7-?G|U& z9FBd{M@dh>3Q3c3fgp}+_)G=v>;RW=rrK`mL zX87_AliRT7J6S62)hMg9UB#&1&qsxBbg zD>@SZwv?3KzZwPhJj-o6eUe(tbR=g{W)p$@&Dg3&hor8xF$tLOrm^=XqpwZb3$1 zBoC$MpHw>q6h}J?hnTqtX}^%kgJiW<+sMZ$wFh+_#TBk@EZ#=iFYP+z>k6zC4C30}p&?s7wV!$aLb+7lrf%gH#(r?sDpWFygL*y+B)RGqRh6z! zdh14JRh5{evswuQ;W0o2BAcPI8eP(al&W`F$bR*Zw}ujv%tM*cXRC5h_3-jEV(q9V zzd6pLU|{@9J@jCQ*#FCA%d8 zvkRlJEqJL`sbIwcDK@NGGjNPZEQ_}F{fHh9HLYv76x!O&?h@F(XtEU69XMR}0Lf?+ zMY)>$5~xbHyR#1O;Uq({E^X(^`?!HbA*!(Pyjej8-Raj1A0+3r5T0-o$By)bd)!nSt!m|EtYU^* zMv5bG?01u)j$J7if^MPja%bf}kJMM4@+*{&+c_`FvrUnqVV&OedGBVwDvjGJ*>_4W z?Im8g^4b@6-}uDp9e3=dkekA@GN#VHdQ0A18lN=!PclPT=Rq~;==S8`BM3-R&}aM%-7e$ z@Y$gK=HX`Y+~%ubi`EyhQb-jMXH9z5$p;?9-&k3)S`9%kVz6(eodSdFv(}P>7ne<@ zh5222#UJZ@p9G+p zHpa}WNN#Vn8FwBiOYk}fwi_8j1;cmwz{J|)JLJ1LcMmPPZfd4`%2)Cl0fIJR2$%UM zv;mg_35v^*z(;6f%sM}~Vrx5~EeD$pWm&CeFLK!pb&=-3%U?DO!iDZ=NUE(})d|i& z0o!gLvqVrOMB|4chK%@VuLwYskHauvZMsq*SR4IC4G&9wDig(!6pPyh36NfV<&ys^ zcn_(lf4*SQ4A}FeEy`=Fl_}Xz-x`n?%nCT!^Ok7cpp$pkS@#kc6imyQR$qyu$|RJi7RJK z1TWSv#=(eKVzV!5Y3ij~bb7XDrI$Hz7)aQ3MSGoLBVWKH45x2?F2={^6Xpgz-bjHwAt*4>2^Y%MJBLl>UCoE4k<*qw)DL26N{Sn~55LHNnolBbQPqQ6IibIamQtla`x z;!x(|)a1gMz(${iq?B(_iR#xz?B}O!YVn-OkYsrPAXuynZDy`Ax=CO1e+d*!WysrD zvNjkauc{x`SqYp)(7fz%_bArqqLjs!f&OTIKu$(>crphgx5xEtS{MUQ0qd{>E}kyJrOv|ZX?dAdwU$=gnFnggGXq^Dn)t_YPIm>vJ)b%kKXW_C z%=1=&H&vvhE(#X^Ol>aZzfJXxlpxt|5;|`t_koeQg3F#Y5n2SaSh4ag5{9Z$6nEt< z=R$M0Kj9RTS|szkd?6#&FC9KEl^O6DU2-BGL&bzzbcD%wK`L#Q`SHdxO z(^t!Y7*sInsm%D0_sz(hk9wUD(&^HrucXk;w&%rCMO`yq{a)+^K0V$hKVhG@;M)^w z7fIWBaYijmF&TKyfrN^ISD!lF*a64nA`e@;XI_K%rMqjUP6j5;rhR%u^@Z?{^B8 z6>Ul>;SY`J%xYb1`dqWG4mK@Y5-j-OSNT_hP7gq7aB@eTBzyWc=bhVLo!#cJU}su=k{RkREOwO%JJkF!ug&N~37 z|MlWD$5eObi&T9R;Wxh-T%bm5{ELgf8I%CDlLRr0Mn|^Qze+f3&;)WUA}yiRtOBq1 zp@cGEHvIZ)G~|JsRkC5fIUy3x>5pznq}l_Pv*PJKRQ8HHNiSG?LzAFtQ6Lo1Aot#5 zqMNZ#E|V#ocZ?cNbsQD#lAXtc@tvsfs=-pdme(bF=}&}#$-?*N=`>PK`CRugYALW$ znlHbN<~nE)TwUwIaicSQ&~49Ii{rnj;X5bW2s^i@%VMIhxq=lV;F0LMXN_B^X;m?| zZa$tFi0q5V^cBhb^;IeS_HdhK+V0$+%T2ffR2jZ;Pex7zln`F>V51Cp-9WFXOVrcr zsucF$g(lsgrOihE@bk2*R{I$HcIZRG>c)>YZ+%ljG$&l8RKfF@+vu&b7~;sG?wj@o zKD;k#!yYL^{wm%>O%bW-{+<+K(Ay(SIY{4oXQz=K<*jzTPvlL5s%uuMl!jY^62Lea zk50+2L$9DM?$|&O0#VS}lL>mW>*YA(nZ)S;taKL74W|pU1%X6yc1{ew`k3GM?=K>z zoVD|JZza;Jj(=PX0trRK!UnaXNcHMjo=LI>m)`GN73^5d`^cKRc=_Jsy?Cfj)f&AC z5;$dVk}h)JWvUN4KrF&i5s-m7!%4jM4h@E0kBU%?6DE zKJT&9x6j(e!dBuac!;pVEO{$yU!(}y2G}|yJbI5Ea(yx#i2OW*{J`LM49_W(D6!Z?G|gy z+iK|~#LidN_i01wEF|-)f^I0XPp`CDvtHjhN+7<0%Di;|S=0TJf!TD(yXHL5dxBPF z;X-u5OK3+LMn}4+`pRwnJ)$$8E4^Go$Wg2wcu0@v<&CHA<#F>tHH*V?o%z&whWAZV zXgb?GR?4g_x#y;QgM51t*Qw8|8?$CpxYZAVXO)0$&GH=x(Bjhji=4Bp@fp&-B=+$t zS|rPkdzi+MsF)duNU=ZK4#yRA(zyv89=ZvXgWhd^o2H2Phy0%(;e8>NK|m@p$QidS z5Y$ABI_7wvV!kqGL>32Xgl)iV!^ogX6vDEhuqMHWXjnHG-V4Xp(8cqoAXw7Sngsap z28!Qz_^!(2p!vo@KW~Sf$6;n$kk%=;{c79kD41Ey-<20w#m2k+bcdU9s7SG8tGvI9 zmfQea$4svAMhWNn1`e{N*f$_G-EB#j?Y-yVJcHL2liNhi+RWZPd3&Z)-=noRBiV0k zmH39Cx3^6ssE;j#&om7k>~qoYZ-uc@7N7&44+I39RrmG5U;HN?N*F`Q9)j+%IBjFP5dG3H6-7-!r2n|IJp zS3N9vUl6}~R-h$rU%kV(eH$1v?iafd!^`tVsUfnP!nLgPZ+pRsKt-yG&hgx|@RkpH zzkl3Czi8F1mtSF38nidGGaxu3v@PiT#WJlUk!?JWR&}jeejmPlGK;D`uxB23_42TW zhB4=E#TbdKqomgctmt~QU#Kum+3dWzts{pwsYl~_H1#I8$B4j_scF(5TWkh9{2Ki+ zM(XuIXEjDiL)uG&xpqH~bl?$|d67H=->X)v4DawbK})yOd30)3o@PmT)72u-#975m02|0Z}ALg}PVH5OB?0#KSH3STXwz!+WnUiA`ZA=8ZtOk~Tct$m%6DjV1R z8EWle+CqjBDWt0t)R)&;I3z_ee0bbI=0-~$tGAnH%K!0Kq3u^5Q%KGFErK`Hi;XYw zq2G+P+obd6bB{Ki1xED`297T`agcelnBd1-8=fu=$|a5GqzyCZ54PR`B|$96>$`(` z)BWhr(x%r%x2!;+18k8q>PY^*>cvqgLbvH#iuD76A(tysIh8-O{{6oIn18NTmuQ^7 zgI$V^5b@6Hy;d50Ib=2LeLJutIqBT|xs(;{iR=_>B4_>L94aVnD0{!R4$f=f6h60b zBdtec=gTcY+sx5BV1CxA2OA?p8#|*}YXV1x)$7_ZDyG}{E6$kRM&xR*ZdO`G`Fku< zU3!c%GEmxzrd)s|8&zjerv^Q5Ic&O!%9-vC|cKN<)+$5e|DnS`by`(SC-Rupk6t>K{^)) zsYs;S+?is1!&9Lw3xbV=!x@L@JY{U2&7Mi!M*ZLGSlqPki`2)v<-m&YSjxv1KAveU z7Qw2;y05i6Jna$<;nP69+?Rl7+pjEH9!8l0&!W-(^;j~yN!it9T&??kg~Sm+odm}= zSn9TqDj|I-c7w4mR`h%8@g>r+Y4EtsRu%8JfL&zrej2Dhc&qWa5#C05)Shi1jDyS> zVnt=wc%3THH+O;gd9hvL!Z?!$LEzeaz%4^fLa| zcJ2qw>m$dXKM|3a+wK{sshugcOC9$ee)>cwdmIpQ61)q7@xCg;c}TLIGj3a-BJIc< z0ECWbS?T_^Dr33Lt}Zdhvo$#RvkEP*#G2XFDCSkZz*=`$4uDP33>Se@!HFxaJVhi} z1iVE?9vXM%Ggfhc-%OcV^>Z0JjZfMN-^e~l|K#c2-kgmA-?7iR7-7iXYPI`Tn5$@z zp^F9-^Ys7Y?5pFV+}3b6BO)MWAOZq|2uPAb{=Fa**K z4|;`!2zIv7;fF7Er6o&xjSl*$T<(_`G`0I8Pfu^VSR-4nq-H}!50Z)DaI6ZyZ*B8p zQ1%K1vF@d0vb-MZWvhidLvC0?9C4vhW1Jn7OJ0MMA;Y@N&j}(E8$q5*g3G9NCp>oa zI5>zsF2>v*Q5T*oY{7UMdmh_`(QF!1vK{J6qvRv;MmkVV{oLx<3#iptT7>lJgt5( zJ&?oergpX)F=I5aE1$I-u3$mkEs%#GL=PwFqge$eDMfvz`r{o7BVs5x9*jiCT$?Fh zOQ|$yAK7(7)cH`kKNLE(wp6LiYdF80SI<|C{6@dkXT#R)qNw}P+0HETt%gssX6Hn~ zvt12T70S=K>ZIrPc7y$*NG8$34n6$#hP=qjofSctuhoFkA#oxgU@m`KVguHspkC5s zo~N$_yWgKqx!9q;8T&FGm+SmuYEj;?L(J((>K9J)K1^edQP>n|YDoY!5}CJZXVM%? zazT{=ITeq2;P!aLjG+$}*ITaFS#PSVM0p4E4t(r6!xdsvpAZ>tWxs-msJAZeN5ztq zH$wK@7K$7$Ks<3C;;q?aE>x%VUeVVHJ)pal5qJgLR@J^p&S1;wFA*8&7uqX*FVD5S=-XKFQ@wSc*k=3NW=OZUBOt=g?BBMvhN$tKE*8zNIy|Dd zY28v8yO0q_=YY)}mZ!^Zu~T<&345h$0?!6+JiCE}m!A z-Yms)=~BYtUO(uVp-dT2SJk2f7OlpT@uZ)J_%tApP%70DY3MT2k=I#?43jJ`CG@`_ zO*=wh9BowEOPy-Bu$Yw+PdH&I>{ImNiXP#fP+KlC1{M#a=y0CeAepsSY%XnYW&vGW zhA^u0TtD}sRA{$9!t@3P z1%)99=LgwIsl>as8YNGIZP&w({e0pvAy!r2$QJvzA6A|Y$HEyJVs2Q>pF2)hpw*bT zTVK63+bRK?V~Uo$hIwoVNwY+;m*qdH%dBO*>a1qJpHhp8cSQ|XDwIf*qT30zoJ2L$ z*t>+TwK?hDq@lSe2%3kbsBooaWlNrjrA~@fbH>?F9`0A+7%upY@nx&mK3;QOkl?3k zqr%5NuC`1xpUh|KeX=BLNy;XNSJt|=wn|vbE^1+PLqsLke4^;%d*>oQi%?~cuRQm* z#6{u9&UU33-1r9CJ;kN#reF%nNVu)?9RJ$4YjA$-r*x?Z7&51j?}9^R0=v6YW8q9k zWKN0p@%K?GF(zBXJ2FmB!urxwzIb1VrZ$P*TZ2ti7S;xU2B|tH#;HX9rg_R|-8h&_ z4+(|u$X+`x;hx&7P&jvaI%df#me8n493MtdHgD8Dh>%@xJ54K9^K~D45=P~I zph)TDTqW4vtnbsz(VzM1=;RxZwa;-%=aDpB`~J{zQ8Z!72c9<2;K?tLz3xD!*ZRy_ zb*<$cvM|e6St-^=wV=0?;`pe1zpBLA%5Qm~&J|+=GdEAJ%?l$`I+qmbj5YWT* zSouY4^;i%t7nXbT(=}|R$ECe^wMUUw3p;W(hq5ss#gS^7Lv_vzvRf&?sF3W6V(oYW z6O=$6?@l!8w!TW|g3sr0t>K0aE2s5Q+fdy>2u0gEuAsc%Uv@|yT@ey37MWR2^m)Xq z_>rA~L7jCqX789G2-QV7cGSGQPK^*jEUpuO^6(Y77yVb+aYBVd z=vxd+twJ-pzop14#)X_L-;{i3KH{tvLvfvDoKMyN)IRKVPM2?4za06z{?zw`bzLVm z@L(q%#^!^udn7=G&a=|ol!oT%yeA-aeZ&J=$~9yX?nx_wu#)jIcH0PZEd+s2e#2M< z(K(VAwWl{OOg{6iF^1<`U4OX!BOlTMYDYU~qqbH~{W)`f;rRyB%i84u%-SUimK8Ls z;`i|n;9G0AxNhk(ke4lj?hn_~X}J>kq43(0hi7kK;;h+s0?ehZnqx{A9UjYxC6|ftZkNMFap!kfVs?ic+g65S-%Si6-BZZ!P4<`d!ew6 zltN)-BLC1%@49>Q6uqvsu*E!R$;02KAxcBRXT$IB!DZ*&kM+y(uAjW@Fbd<=;@X&q zT$Rr`G|;JvHN5xQM|Ab*@q4&&jzve>7BruNna}7Cam;bUSn+g>I;*u zi!bdEatw zD6TRSQHO57>O&%1Sk9dUR@{++vM(e0S8DDMmBEeQx(ZLLnGQ2c5>Vi=5~-z_moe)^ zK#jFfxk|a0L5G$|n|zhe?Cz!hq~&1Z*}9W12*QGY@=B37JASl$+#m?5SwS1bv$c5H z2BXWDl=r}t+z-GBJp0HhhYPTbOvIAXF3gtI*quw3Sl|By{Ob3Cr`mQOm2%YTg>v1;Fd}?VJN|(h+`(2g zr^9$Y`|hC1dUF;tv;%a#;7=_0BQ>bIaDo?v#zf`ZgdE}p?z%q6L1O$fkf|MA z8F#4Dn$Df|?3^1xJ@WLR4|mCvn)j_?k0W3kb6B`eKJ)w~KbcYV@fTP1DuZM;+YETu zH_mAG4)NH|!g>Nh*~bw(H*}qx{msW~M2og2t*>AWJk!^peJonByF3u!YaGkk{%HC2nWemZ`TI*76s;VREO4XpV?-%==(^WxJ3zPX4O6RNh#fPHf= z&It|L^O-)9n`9gB?IAXs0m*K=+?K)v5MBikVJX3o^ICDZh>@?yewX&b-Lbhqd&SnS z!@CuiS2eN4{JWUtyY8XyCK~t_j}NBu5>GRfgx^_Kl?1|Ng^@zsvC4}RKYrWlOfewcJ)}(6%Qzn)tyZGQV3QT?qL8#aJKOGF=^Fq?DM+h8f!%j- zp7*#g_RfiOk~1g%Kz!CkMxJA})@i<3cKZoEP(e$J1Ds%*OB}#p{cC;`3=e;!yDeGS zwhsGy@JaHP8@#;}7DxF=^hE;}GMKDC^MK-Rrk8LiYoNHe0R8gmuu0_k459_|TxFE= zWIv54uR1uF5pF-KfaSGvCcnV&y@%@%Ixw~eRR0rV8 z8%c-0rSADPsDub5Niz}l3WZJrlSv8Y+;0yh#Zukab| z>wG2pwJeL2K+#9A|C^j0ZipoA~4#+6vQ8e$*={w zUzK@=bK5$f`WwTa&>52>?d%6kle>;D5RSMs3rc6ZVZpb@ZJD!@@D7pM^-0k&bWX$BE9~chI&o>ZM}^hyUD|`#UqV)!t*wxfTVoCV zwBO_l7=Q>5$ueDh_`s``SG%Ms;mezp=i+4yGl9ELb{)#9>DnBgwLUs9a+Z;he1!9C zVe<2>E4P>xH4X(zv}0nc#Gk3KS-43xgV|@}Wo0??7d_QENo^!vu&F;`vlP}^r8|3Z zFnzW2L=M{zS$gex;R&jvbX#qP^mDe`B9pAO=Mc^>XQf|%AL)pePOi2|esb)L(Wx#f z=?+>6a;rFGz&sMZtsd#1r>AcveCHP2_|W%b zH2<;BoDFCqvDVvtraaq0IWF@kB}F$(-l3>nDKz5Vu7wlQ(~s+hXeRdFV!tR^#FKzt zxr*_?&Kl@=g%%5ak;xnhc9vpgO4VJvmx2RDq*P4{p*k|PP6%e?9p$U1?9^?YwGpb& z#@02cA=5*tVO-?`vuj)18r5?J7dtqK&&loLe+YM@C(BSnb<#Oaud2Hd*A?}QfJkVF zD(~EROxb=(>ATv2)c(oHVihjuqw+yl(Tkl&JLIIoye!X?8t8Q#)GwIYSYPBCfG_Th zbIb+@8lL#ozV&YIksH)Ay%&C~sDhGYm3YA9qNV*y)Q02nrgo_F2p7ZN8NzMR` zyCVb`I`OU}dE(d~1AA!AygXw{}Di`;=+79VjRvC&*Ny@~z%e-~Rwl!^L zx8*avYj{>0T!(8(95SBpQ}k%8FSjvb@*UUok5y`@7b|?(>R_Bq#7eH^P(By^WDpJ% zf06a}X-*aU)N$@9Y?ee(eS0``vW-Zjb47@`4M~ZAes9sq(~0Wz^Q*PeijDyFUo|@} zV6VtgUbi(aKAhN#_L14G#^tQiEiyk{&wCI;a1&tpTvSQF!Kyl5tbL;P@%C)HeBJO2 zh8VJ95|3r18`UP?ko+>^=>jx}O>iun z<%ORZHIW+MO-Uxq5=j|Zfm@M-EKEEkXh4;o&EWDcbFR4GA4I{Xay%uh>-TeK{n{(H zSMt#9&08nYw<=b;CH0(2wjm>r?_)y7QxmAmDvHgT^XaBkQ|Iz|W=f5Yg=?O9td+!f zm=)I??k+`8za(#}HFD%Qp0sjj{&?;Jfp-xTK6{DDHF|t$#}~N=o9aH-PmVj2hu3IW zOY-}Kb7IgFtK>YEA<3<(M%dIwm4TNhptYYo7S(sf4YN~J5}k?D)e|F_b-{2ahp6Kc zdrWyachZX}Qu{IlsrQb9;(<(N?Rox1zfHcK=jMsi(uPqMMrysHgStw(hkioB@nbW7PNF>x-J>e!zd+0`Vfq8!gUOn!7SVtnI z=DIcopQewHHt6OzAKueVxi4>AnXr?FO!fZA?dYTxt#9b*RBbg{(_4cTMa|&JOSRh{ z@4af)@7l34T&a69TCQ2(yvmE}U(Os|Dl%MlFR-1RB-NR&FM6>Ts_Wy`2W_D1v*GiTJ)u78{K92X;I~4e#bpQ1yTl5ES^)me z5(h+iqpdlAn9d4whm2COI^$S2-)*|q{+>OOXmFT9Y`vkPxZS1wMe(WwWwpa8cSA6h zKp4-MmHp@i=Lt98e!hVk)|bbu#3sU7zruNu3;>7%L=Xf3CoQ4ynN4A0YU(|g88$g0 z4P|e_MJOjWB==g38fSc8vH44Tvx(t>I4}UpJl5+Wek; zR3dYv`#f9{B>!F#V9uG&53A>2zMaOdmoGAH@HPns=5pla=n7$aX{dNX0423kaX?nS z^K#EV@S8qeOBIzHj-k!SO`;+XmoWY8G8ePh#+SH~Snxl{ejdmF7^?L^_bB1~H30AF z$Ut$4;mIzjr6mD;fvP<=fYzc4XLyZ^V0oq-vcUPVe973&DyzO`w~_$UF03Wx?PP(i z@{y26!Q*RITU0_kY0(s>eLb)KU^CO950ViW4S~fOv&psOG z*~R3*8&`iGEC8nm@$?pe5jcJNFN7X8q9*_PcKiWF(6p*m({b1UUc%jpAPIct_AX5RbR0T!rf>CuGC@7wka3QPgM5jixb zLlxtb$3aVLhae*$Q6h=AWpmP>qewB8cAfQ$R zgQ{ZJ*zng-HIrYNf8LYugNhgKM81FT{CZ-RNS*{?;KjAOSefOrFN^#6eF=la(g2&$2P7# ziIl4}yU(bYG6yaFF&cE6HrQ{Y^@SeOZL{Z@}^jxQKAq-2*c zPIbOJwdVPD2_Zn-C9l^`*8gC=^wsAF>IFyZ0^`E`zfuKg@7Wzap8qGfQbAI!`hevS zbGC?Hb(jjk>%yTUQgd}HYRmm2N(Tl(h+FA{e^|mqp~7f@t5jAL8syHJ6+P&#^d{#P zdKfRK+GTbMq&(N(v;3-8@K25q07#Zyrv*SHksB=m?$EquoOB7C3*h2s`l*Q=uf9d2 zD$Nl!$$|47q_@`m@2CA42Q+D+IST(jpay7fege3w4EK4m)tAWk+L$QXO@-5l7T7{{ z(JvjXE&{Cu)uFjiW|Y|f8#@LDMI(8h2>lC-Did8kVy1aw2k<1DfrC)Pql7IWDF)q0 zJ8y$MlL`h-(THw8FG~IAoU8#WktCE|K+6Et(a^K{c5BO^ma$;9w&61ArI3RTKLIqH zpE9FQYcbM1R9KZx@}S^bKt#l@(G#Om6k$r!rp!&luR}`(HV$utSfh{gF9#|lKP*=0 zai5V5->P>@*GUcv`)++7Ac1+NFm8AQtdmGsT&Bp>T(LW`BmLI0$AR)CIg}K1V?mjQ z$g%GwFXq;txG*QeE=Y_?rQMSkM-s#2!(GifxQB{Yzr4}Bgke}@$Dy?2=aTUH3h~to zxVLY%m`L3hyF|+9OHlU)Dy7a+1RIVF5!n)+|2jrz(VIfcLK?d)Wj$X$UuE@5vc`$P z;tUuq&?%j`TZlSb;s*uxvHqy1&zhP121%Bi11~GY@B7E7DIdxu3&K%%1!FoJrXH%uKsr7%lrkDLX=v91~hdeSSN>Dv1$YltfcZ1byrTrtmV zIUuI$xsuCEm=KUbVDd3A<7upAW}28PQC1w|WlCP7K)Xom&rgidd?gsdz#$ETg@H2P%Ye@pqN5ZND%v z5ke3-9p=>XDnKW-N`}~OTEEiAbaV)cgaE;Bc{qVDYeXwk}KuBpMvUR1fh(WbG(+{!r8GogKC)2u&X;#ETND5~lKN5)&(B*Y{?kaTotGrTww(+>(eM$K zsh)?-!~5j6l@1csmw|haOxmXb;9Ph4w2j#fpEJw? zFTwzQl*5Aw(H3+ylu}JGAE@%|4XSS}G;}%S(_NfoKziaLa$XtEf{W=7XTfZdM88mT z59?W8NDPeh+wKBES^CDLsgkKIqG_vysAGJJW7R(#5*bM|+BYRWQtvLs?VQ&z%9EQo-))>W_(-wOf~pxEo~Uqw{UozO|zM zxY0U!@uE$YTjXc{3W-kNcpa-j5^{5=j^vslmcy&JfFO9z+~<=1wd3)3(kS){=rBBd zgpFC@yx*cS5mfJsi)gel&>SJlS7WZ}X;fTmWSYzlc|4gbG;1G4u4dagYi-*4u%q(G z=ye3@`+EE>k3q z?MW}mDf)<~on5iw;M1|Ol<+eE@NO8RSyB#E>@$6G&4-yV?ekQz@l+9YTEy66F(m`4 zhvLFS8@%8{LdZuiGep7JmtJtGo#DEu&<&x7>_4unCj?-{1w?QTVPjH)XM;h;njMdY zcR#Qqv*$0FS5p&RHEfFE=;+)6u&ah3S&Ih;_6+(DFn7Y8QScA4mOgvqwJR^f>NJEA+ z>l{LwbcLzY$8A3j9D&O9_WeFu2;%-u9_iU|@As4HthQ4R4Qg*h_b6hWs#50_u0F8z zH6N{d$b9YH^u1hc=oC6m!13(21~;j;HZyiMRA!>*mo^SydItRIYQtfiLzLJ_B5|$T z`sXl6z_qd7Fb^sOzKu23y!{zC4SWP9gb_=KW~^YwbeNta6JWOz1MpvJYU%^;dO8TU z33zN3p)A^C>P_#gK8q0puInXT0!)o;6&#C+`;5xzd%9408GzCcn<&99L-Xx~H;o}1 z03l!bP=4+#@`w$U5Ar~x8P`UFvk@~XqivTguw9KfnAdi>d9UrDRm%y>a}5k^%or6n zOW(gZ=s)eif74{&)(dv*XbWYxYSClF+zJtkdjwurZ0mX6do)@d2YdTj93kK@e!<=s z_o`#85YaOpeKS2=APCpy5dF>$sRtN#?2fV3Z11CBaclx-g<7v?o&xygk?nNt5e`5^ z4O*u3+#)&c<-nnw8NWCg0u7PJtYmt|-BcS|bzo}G`Koiv)Z1XjceGl{*lmU_dY!S% z##qVVUgKO>gt$zA&~M*fz&_J;V5WOaVgldn-lNHQyvhfF_)?$0H0z*o#tr2o{#Q)% z4_zV&l~0y5lnCE`jFWSFQZZX4^VOe@$)$If09WfB2w|+vIe=#$uYEkP%S2wP`*aQ`3>kFFj9mFB&{lE>#E#km_B|5Luu< zat{t6#3zN8?v|hI*u{nMkDBwC0)t*HqUQ*lsIh5YMxwHku-1F;VH?0h#hWl*zeqz* zv~W=laklL{Fm~L9B@e|(xK4&r&Pri}13qSn&}c}c4N!VQsIrAHHuM;mS1M5z9H8M< zb;f)=6KB>fUg>&Lm)|MO94|u_QzPs6+&HtJF`k7_GFj4>!PCaZV07-z(|k37vM5C& zY$3q>^~g53DcEWOUo`C^`NwVjZJGbC?_nDtKma7A7WlAddg)!Vl^+wlf-`R0#)NEG zmQf{#F@*h&;RX%_(ZQ2-rZfL7x>I){GBl%^usB7px>ZxNidg6&?d~Rzgha9zV`h+R=u(_ zvGHH0!=RSeYnf`3$)vq?>lPHN5&G-P_{RbMJ_`0Vj1)YA5c>9eXVl(*z5+z0&ZtnL zaE@X{5li=l4B=>ZgO8#5k{<@Y9@cLzfrH|zWveXO4=XEVJLBiu0pjljB>VfsKYNRReGlPrt!yJ;O(9#uEtvn0gRo9$jevW z-fwB|-02Sq38Cxm?gr8TvB-M=D@eJY9}VF_+=Zwk{hyOZ0RQ~+;@87|qDh1}|=H?O>%@TQPcKKND>EBv!hOLGH4ARENbD;ee7Z)Ew z+4aQR>VA_#@)+9GUD%kc>II)moVJbLfXyUb@tn+marjxT3j-6P2vf!GL)7KvvFG2S zr6pCwYW(^YYtDp}_)MneZ<)kk)B|3ckdRJ7Lc-?+Cd`!NWDdjU9zy2cUVm$hzXaxg zNEgu%1XyVklQcE38vrQRb69vp@4j3fN;I+Us}k0$;zzX2itWj`Ya? zExo^ATeq{=ODiCt^_KuVl9qmd>i722-@I_9n<9Du;fa*FeEIS%W@hjvo(tt%O22bG zh(E4|ap-#k^}uQP{0|{b?^nOYXAdBoo0~mFriy<`;AL`h@&^sZX=gh6-|V(u>(T#= zm;#$S1y2^VpBow(NuHh@AG;g8Kb!FVCGZI76`-Gt+9TeeTVGR{Fu#8Oj7f^oaF)dC zzyDHQ?Rj&a$j@KCNH{u{sVOKbT9}%e0{;vZ-sAFHl!aaer@6?s$l7n#ceS-AS;~U^ zu4T~B&=539ujw}_lnW>nY#FLe+n+f|BxP+~z(PYKdWc+SyY}vjySP~AZ`nK|Y!Sr% zK3GEc{ua^oSDi7`zs0$j{vM?06+9eFm{?u=*KvPSgsJ`g{h^mGU3&Tg6N1`ZZValw zzqvsATYJS|P@Dy@iSO~_J(wQQ0H47v_v~N4_PVr#_b3D%8X7%5-boP)xjL#UA|e8@i27~Y`a_${wMTLpK8Fb#V)^`*9CiUM z&<-NyETS-A;PdnIF$7J1?-3xofCK!Oa6y+6pr!w%T+#FxxkpO)d-T9y^A8KV-5zmA zzh%n9y$A1%G5?=V2UPF;PEdWJQF{Q|mV$eBZqWk<`e{DqN*w9+-#f^Ui^0Lc0c#0a zLz0qiX&M=&;9X~jc71Jj{7Y$^P3L1fBEq?hC6$zd)B*wnEi_Ba<3;r9gsriDg*yFH zEly+t0U18P{Cf zzjUN6)c^e1uJ~`C_ecs#O?@9YU?3#08YyZ9?{n+c=h}z&t$tI>KE(iGC?C;KfuU4> zQcB7Q@Z!Oh6GgJy{@yzsDd^3$go5GQ8< zfH69v(_8sBFP!146SlZiJOV;O6145HXboYxeC5jYY2s7NGyLv9K7#qtqunS_z0e5k zW4^A4b)nnlH+=<++kkD!5Ox31PgCrqmw!_&u>4Cu70RJ=pg>z91fM?qErsg=^FV9M zZUj2|aDlROaVY|8Or_UgaPJ?l``@zrx77Um2beV;1eo6F;0(AdfYU&fw;|q+{hOQy z#QVQL=&#Yb1SMp-|;hPU1@ZZ*R zJ^DRmV%E`%@I+SK$YA7q@~ z&bLE(CLRgoH#%Tbnc~yB-Yc7oLBXwP62NHAMappc#VF(r)M90>W5gJ}lx@ z=i%ChhxKj7|q01YqwOTxI< zm#9pJGF~U%5Q*D?*kvjQoJ7;icnZx2*L<|D+G@%-Z*FcUKE@zJJMu(XkZbS6GL$lI z-N{hib$TfiJ_@h#v;E;oLfOx2yyDqiM4cD;ToepEKKg>;QHyM{sW~y7lm)IR{a9 zX{bOymE-!KH7CGak$0_FuK}lth2;ZKM)QJAkN)HD{_}EAuB7olzk1CQT@6G$DOEjh zu7BuKENFGNWWMgc)m;e}Kr@fYi+#C@qp6LcUYANm7>&MKh(a9|z;o0A^;5L6k(7M< znEH902S!5g3G=VXjESyiBIUpyB^UC4EfHllMdv?nvw_t6ENwgd$3c(8>U1FpkUjvu zY#{KdNl8h8Ui@Fr4fyfgz%xA;?e!BA8^&@v_NK@HVWy_0KKU*!{4?Y6C)sX;ZH{p+ zHz9~Mi+kS%!9gbqlV}0u`XR$8sL^Zw9!0|IAP;XWL&lYE^#U z8-K;2#p1x`9LNP8EOtBmoVlNa3a0I&tFE*}YF)1cC(wNWa77KE+A&)I&W)b>#a}x}xFZLvtd?3FoX>OiXt4@9lpB-n|>Q9Khxatx;a%c7{Q>6rIpq-Yp=*=r0 z(_8fYuFWoc6#i`#{It8J#9OGh#RYbnA+5XpnaaVj!lzw^y6RQ}`(tXuH8!Cy$hG62 z_k>~QR8^1H!NRvAxF4^RAh=Z9iJFi#O8V3{qSfde_j^j}W@(bBN%J$+wk z-_rtEEWd*Z3n9T8Tl7dN>+`HUiqS&*)-r}STcS%=Pm4!pY%w8hm9sj$&dj3=I>~Q| z4V%aOE-pVSU!@^Zv+Ntg{-;&@Hv_iFqjk5|KXo^=gj6lFCY_l|c0h}AMw3U_^>q38 zmrhQyvc8|?VlB;M9Zn9cRZ?Z=IDkaOJ;$KHay{^xH*8<(x1Nu?-;?PO`$>-Ziw*_W z4UQwz;qYKuKf!|}Eyu^D3Ps?8eIKGMS- zGuHL%g5&GcqE>-5f;ra1>xGcIdijU;$j%o!qzLDAk!Z&E89mOJi?s6f6jb>+>0}B@B4Xs6yTVRI~qOM1PCFh4p z{fXQ37TsepL9ccWL1=5nQr(FcsIqG&Is2Bnz;N>M!A9tZtTJS0w!O0aULf4l$Vo#Z*C=zf z+L|GuW%(&V(e=PR3cjl@tn^WCh@hlf;lfriV8aw{`Ci4coV!m;*@cRPIjK%RZpL$S zwf)+jSgq~VF7uPCn|ngqq+JYn3uW@|YsY1WRyE6BBz*S4C??RGL_hESLo$R|(I%I4 zsTKBZ>D^r;Xr6AZn;VzmhGyV*+Hb95te{DshAKp=GG@A?V%k{L?&UxlvZB(_u#XtO09!mUl3{Y)0bQ zS+mZ7rC`Pi3O^b1fEQC?S))$!At~#Rm&M0pmRHXSPq=t#O%yyv7&Wq~vo+Kl71p`A zk96Njs9~lsioI{T>CIgJtVd3$8;+(bUhU~#=6mNw+U@Tpt0T?JR#m2!B&F6B5Cpw! zl)sqY zBl<;jAy&Qva&j3vipL`2ftc9vUqQHHhf;EFw2h-|X+kQt+t$gb)TACmZlCZUYr_t( z0{c~Ecj#L1l_j4^upFo*d{sjdjJitoWo(BrDreo6nsd`iSdNwx0;YOps9d~2Db_b* z(Jxau`{t_V-B7IEt(JQJSlyut%S4w+RGX-U#)C&=D7MJan4E=YzRrwutNae+bl=*^ zq2GgeimY zG1cmek9cctIovsly)1bI7djs4P$$kEF%LJ&l?ir^UT6Wk?QckKC)Ltt@r3V*N8st^ zDcDnX?9Buy#BNW0v6vZ;aq>FvI~Nl)S+W*PSDewJn#nbre!wI-Uc#oeU@iyk+NLi6 zaYLsZYa>@I)n-au!JL3Hh5)4U!nNf9f>f(QGv!tCc?41N+4m>vO_tslABvH zt5vR`njaa%u9%^G@u>5A6$S3jE_3Myqyn9X!e4e%WapBdNdrl%sS7Ch)d`kX9 zH-nj!L!9lFA9)@c@5_8lRy=^;(nk>t7dpgtKbZGjl}l#GLDvK!57DYyWml{LRKxx& zow7>z*M}ZBDujVX4 zE^zKr`wRkcJUb@4iYsXGIqXe9K0Nh>`L1w|;w4-2(ND7xxYWcm)A=-7d%Qeun)wfF z!cG&Jb$9(P$=j}Uo@RJ@$IFnnWZ%_cICjyAKFw?0OUHz`Yu9L`xC`lm&kr1V`%6tf zOVk-3vED8YZT5)FHlhJ7!9uQmpqhy(b35Bkq`* zL~-(-NOiB%RCC`;%&FqtqSlYr{kH-A=U31TOj%WE9^6FqU}`O6HDKj~5j+JS ztv9aLT*n^EWc0zW*(T73IrEJdwMTxi6TFiilh7A93rs$}Ow{d*bME@~>ouq3bc0$B z(dDa_wEX;92 zYOvdU^9Jd82)3gtniHHq|8PeOs~9{{d#h$auDh&0NX<(3eG_7CO?@8MFJkj8VV4La zMh(joL|q&Nx1PSSdU3)_F*{4|eGR+DuKZia<>KAZqjayB$=#IumYxn?I&t<(jPS%* z3L_-~=9Q=(Fho%HSeQy1KkruSYUu=&kYH(jlNPAYAY*Yke<}rcx2#s(K%I%P=?#TJR( z4=2cLCpUA`pCNdc)xI3;6o z5!d;}n>Up37}W_x9kKf{Et^27>d@1^<-}ysMqgUz+dhO;*94WHsWXFsSLDwA2s7)| zdnQfe*1hd_E4{j()Xm3`S}J9>xd*UGUs)MT)x*VHQwiSSR2CCJJ$)fiB*9Ev)x*-2(e%P=Rr1tULFuC)w1S+H?pGWkC_aB05kek`hdy8=cv%4 zw8+HOJBp%Tsl#GIy2GM7tL{M2?MRU_x+Jd7&1&uTGEDE;h-JB>NIfiW`?}DgL(Q0- zj*b4H_qb2;ZdldQ(~fy3eL=IC_MS8&<;3)nPB^QNHEyiaS8^mDg#`%3qAPOGL!wg+ zEXK<6UD*%x)i>G&!guN~eElPq?Bu;|^+Lka3!317A3KF;+;fXAI9t_j%P!iOO+H1b zMO^W{!F!WW$xd2^Ln~EQ8|_Vsw?{pL$_s}^^EAm#Az5OYPGS4%h;@Yhr`!tCAHm@@cHkJ8ZF7 z43oIiR0m%SZD`awWlD$bg)c0+Mw1BM*-T}89qP^?0hO0icI^zzowE{QT|N{}6gDm~ zi*H*3`T;a++G1Y@* z_%X4yX6$m(V^8O=mK4}yRfdtD;ra4l#p-7Z`H#2=04fT7PJV1L$R>?+bU@Ifzy4sjR4A|h#;47u@C9jO*p0E4nu=&A3Bb6bjJ^E_TWwJi% z&ag8hz32G4$YQW#ELU~sLIRDqa5ke0MR4|#hWIyJLHt7f^0huH(062Xkh zH!3ey)u0A6142sFBT7xE35AYcKPiEa@(fow1)7hPb?-ZDj3Xa`;LBMuTWCx+#smfi4i>rWF^Qhjqa*a_%m`ka zl>g}Os3Z^UTp6UOjcbGz3im6QPoOgiW2}C}6hWD@bD9_j>%u3!!&{44PIHzNJDO4V zx@lnx_Z){=kS*Q%hmjXKa9r>Z=mBd(5I_C@nhj#=k)q4}ETg4g73spN6dz?;t@%K9_+jc`I57g$| zA`L8;gSYugLrZlXm5x1Bh7D`Cy$MW(j*isS^S|!8=k4%fLZXv@X#RitFTfBG!GIIf z!UX1-WC)LXw>^_Y)o8A~7(UGAeE$8$aLu}ZdFQxfbwt0xC;!NqijM4dMNTAT&_!|S z%M^^v@4f)%##xIWpx1vrRbDegeRVx>Q2nM;QK37ZVwVh`9#N2STEAy2&9f?avpG`R zlW#4ng^MVy!HFWWkK=1G>XEPcxVw@+2 zg_d_-EMn&&m9GW^S)c4CsRT=It*?m|@GX02&VL#a3Wk?(9Lvpaan=qDg2Rkx3m)g_ z7_~_Ukuh#0h29nS3+cOxGG+`+aaAxktODZdb~;|l={9yRF_sVNFc??=wW8E*(Orsa zm$z^8X=G)wuKSznWBY9Z!9vx^2`4YUwsW#ff-bw9pI*sUzV8oaQn|f7s7ze@$z9l5 zsMhKf(= zurZyP*myno+(mwern*W4zYLY@*RIi7RUP|Q?X|QfG_F+%@LMNE4bHmSgwpq4tDZ%U zCx~%=gCpY~iKp(k$krlTY#4wyFcagV1T9QmnXH`@lGzx@K3_3!){DvSz+MJHEWc+r zPnHZ$5{*>pz@ya}Tz@C(<9FT5BO~1-KE`cGo8!j(*Im0|##d3%(KPhRbO{>DcPw7) zRwX>>n2%YisOjVgmg+)w#|96k=~Tn0#?M3Sbf)X-MH583i=PeLemjfp23^vIh9keh#(45IuNd_M+(GMLHSa?ww>m}1*M!EAbSV%O+HvQ`U1e4sO z!P98^w1_lFZAN+XjrLz#ES=#C2{Vl;P_Cg%FyOo%Yf9mO5eNgPeKhNp<*=Fv` z|6%Pt!>Am-$ z^xg>&NY0MW`@Q9R@jG&^^T!K9ymM#Yd-lw%nOSRjFemtjypX8{a%tkp8nv>EEnXAe zEG2<|tdNdStZ{C|L2tU+>{q#X>WPikEaL29vjJ&V)$pnMTep%EVweUqQzr&gP!8-? zJ@r+K1A0mWWMdgjzHU9RiydlxEXxdv5cVYk3&C5uJM+SE1r_uZn;D;QkZ;+DDv$&5??EM1Sd0d+d=?Z#HD?>lrTPK z_!2>X_#TL)Om&meXsr5Dv-`93rKAuRBx^zIeCxG^EoH-PJuEav|m{N}_?{r2*HGs1k{Q^rf^4S)GB6sm~1s>$PX-71GnV zbDSl0Ob2hT%P<{QS1>}dY(MFC!50u?F%K>DwbKG;NpMpwI~0(-&-FdRnN&mO%q;l# zo3Vu)(5eP%YrE^4pf(6IDZ3~|AOBdMD`Crd z7R{%2N3IQZIoSpSp)rzewsB5gYx;W+HDK2s3pvEX2*HJjbYDo_BA;D0^*ScT%gS&u=hY7(4L zakl=;DDw)4d+U`65%bj4?xy|s$geH0*nJ@;TIx=`+qV^ALbtJ+Z!O&`FH8xE=Ut?a z+=y!XtM!$*Jfpy2vD&A>u_8<6Bm}kAl-zgk;W)Ny2P>RgNNLo=b@_{4k`=l}7{S&9 z>gpPMlZZza4ON>r5GK#CmWiI*t?(>#S8I9&>kZzdbsiU~@IS8M@wztXK0Quqyh+S%h+NJ zjp$~1t_C5dnf#jZ?%g|H-tn5HdH5dUQ|2xG9M^#FmtP!>zbIasiWl^t__9}QI#4BY z&t@#({x08v?zHAH?cmUod0eiFdx}nM#B&YrJ?gfKi?NU8+jR29Br=pLBM9l&?5R0) zmj|+$e=v=wQyin}Dt2SHb`=qAx3~wM90%$;Xwi&~FslfF!Blm2o}mXqes;Fia>!iq zvBBqx$B){7nO4DTkm;JVM;R!4m4Nw|5l~b#28{wj810>hg%rEg7JG#yOyZR;gShsU zRjPK%8e6kjXcfl8XCqaPu|}(-Sv6crI`uK!9O!{?qArWE-hFZF5m=V8aRpC%PI;Eu z{3nsA*5YMj!p10G*)#ORa0+s2!3!^9Yy7ku?5d^HwD1HrnLz zjg8x+`;e_%j-%qLWofN^MWp+NVeXX?*z$`T%EHam>|K=TTAki`pp9-RuU4bIAL@S{ z`Oy`~k%qn@Ke4=r^E~lB4)mCfU*=BcBE&RxR=ai_-|%ADWZbjyE$<^@P7@$?fsCa}a@DvEtg2Yo zsE6MyeI~>8gnR$!DhC+Er|~21mQ}B)i(2Cr7-F)d8Vs2q@hjZL11xK#02{h-rn6Da7Nxdv&Q>%L=smvrb7iHE-ec;gA^pflV(7~Ol8EUNhoOyHZSi?Yfrf6$e zoTMdHmgd zu6G-_KZscx$dvMHwu!{N2O94z0xDcG$Fw~_KsZ~g3>QUwgU?L)s>OI-P3G+=ILA?@$@2Rpf``uO=%ub|N8UVNv$TlJ!;G_TcU8CsikEq==N^um zRRm^!(Uag>h8gnZ)O+qRd8?ZC-D(}i9>f9;yalF7?pD6UYuDFf*DoBM*xMmeOXwm%dTk;* z)c?k~I3(SiByo`u8kvn?s;-#v=BPQ?zVXq_<-NlN>*Uneh0=jNoJNaqEkSNtx7~v+ zxAuX#17j{r8;x@~rE9`WoM@sBK71w7a;_{LS=nkWti6}QE`(9{|7uQqX^nBC;V3p)X0FJ>2l=^Jm(izFs&t_GibPl?(MYv?*g zdbS|mZ|}XoxIFvu3GD-?#SCAVTjMUL^t_0^0XcE}nB7;b6${fO_d}(t7rOA*t1+I7 zp0g^f2FxHT_@M%q_shDnz-Az_N@)RLjkyVTWXs;ycu5Jt>Q!|x)BYuMmFp6Xo4sy9 zq5TZ()1k@PSVEG)pa{iFojx6oG>3gkM@!o~4&N?)?r1mso_&-xDjX4?{nPX6Vt;OZ&aZ1;_ka$yyAG&u~C*+ios#pzq)MtF`oI#lKHN?=j`?4!sw3u z^{sX%OJB1PLy!rA4nEM^qkx(G%8dKo$Hz}Xo-!^W!3wmih+;;g&S}4~wil*kt{~La zV8a$163*Umj2-;-5qH=Q^wTfWoZr6R`@8z)F@TSl1zUF>CzF z3&)Ns@K5rHSJZveuaJ#Lx6%;DFhWuER_%bKV-2J!K&ETO9 zdt0rUcB&FwDJk@ikr{`iMRM^Ktn(D)FYJYETW11imUC-3oECjOuacx*h~Gz}B*{e} z@(}B$g4E?QXbG&N@NCx{zGa~B% z8A)p;UQsk>`a1O45}KJ4u)LE+KO70~g$bn+jjX6}&eF8CM1(GNSqn;74`iy$`12R5 zIM!85dW%95a!Av2hy3j6@{E;}6+60lgVrf%h6_i&vi6;s7f9)r#ac3PS%{K^=seMm zLrar=AeG^I|4p{M1rOq7u=hn0v3+d{TFZn`NjjUB5QdVDSRR>Y{>M}jHE6mumjyhP zLGE=em+GAAX9z^>>(%Al6)_fguko&v&Q#V5x@UNYsGU|5>9*@ zo>@aIw02~>Ch`GU>O9LgGf^G=*b6=O9g=*G6FwRSo z*0<#+LTj=iWfPcDfkuF~*tRMshL(HvxT)P9BR$3%3FrMjzBkyq2)dF9okG1P?ln++ zy-)hZJ#C(EtNZ(&G$&8G4FZRJi`l9LQVqLQG-i8GE2hSRWQSKzDMn<<-VYt2b~V@5 zs?qp(F5vUlY&-=OYI5H-{?S1PVdS*8<$WrraBWfp68B=2Gh*|3Kk6c_AEa@ipLmn% zX;f+M^w%Za?}XNVrz)7qloBR))tLK`AXzL4c|ILkV;5ah)=VVh5+tI(sgF|GFq)z% zjlH|n9a{PQU^{KHbo`d{xXOOJEQsqIh-=7Iy*nq=eaB#-q4dZJ`_h%M${}8ra~Owf zUv;Yw?KZkaTSoK6xxeb^O>vehfr6jUrth*Idb+~vBh1TSErG{5$K$96)cEUsZUi&u z6rJ%`VqFR$=@+6Ud6^{0OZs#Hl<^_Hq4*ho zU**-ErhJ*}JQj4a{r%-`BVjcXvJ@VVy?=-$YZ#)0w!e8WyOU6d88!t_&M$2w8n%ol zFt{rli^U$MO}z*vWD4`>HG>_1a(jO`!R}82TvdV$I+GG-y=d$2OT~=`#pZ)yb7uU8 z@)W>9fyRXi-MMs;DEOPtV??~zzM%d5Ux-H6O@2}=-WriR-%)66WYpa4zP?Me$3}s^ zozw_Z$0vTt-`mXTeSPL4u^LKIkMdWnAr-Qew;mc!OT-+w;Vu`&>Gq>+7NWI}!-r3}V zJLIqgm8l(2l4ncEQ-9v)MDeOEe|nL5w9S0TnSGn^Ut#)j;mFEit_1fOqBW=)w{1# zx{sEa-v#={(wWK`KONqGs6iqTUUxZDWjW6p0)RPg1MR*AAoNDTouYOI4TlAD&|cLp z<9YbwoGYLt^taUMkXPH?HnJri0HwG1F{&>@L)H0BvI!6GmhM%IxNv*RYOSn_B=Q`` zol6rQM{frT-(H-D%^(q;oUme{C+A)jqsr$;vRe7|oGS+7#i8hH`28S~*q#)uR2EIN zG-EOlj_^(UVt+vsDX_464lzwG8h(q3N%}s~ zRn{WQkphXeasg{;RXtDNLlU^(Kv-@k;6u6Rv-$5)mqNd zPqKIIs?ynjGVLPgj8vfx&63tNo=!`Vo=1w=3xw|l*IXXk$q#!0U1U0&o&Aih5gy?v zS(5ABN^6zVSM4irGk4w;giQ37EA^8o@4-oX#&oR8l;GE7WXbD~Z1)~Fz5J+GxqJOq zQ{epdp-Tk!AKaigxnEBW3(@rxly7_sW@d;QpO zKgy`JREH9(R&mPTo0SH+gX0I;b4ziNdHe&$$4Wd;2S9T+a&R$Y>i|L7nRacNnYLV& zpUW|RtFTr|VkPg8?_t%~VA1(<0Dhe`PIKFX0eQgO&BMD?QC z)iOCX6%V#uJ=ZTm((gcLf{kmDVPNK{13v`~bpI(+w896wg+HUO8@ zay1!10oSs~c6LCmE$`g6uW6aNOV`@O7jZAQMVGngtyc3KJf12V0uZ$HnDW4nP+k1d z9Igci2xt!LwMgDJ0`v0n}C4HuWMtZhfG3k%KpCF(qzVZ72T?)1fP@Z?(PB4-Ik*p&pWtbUPd2w$__8vSEh$s z3OKcNyrt!l-voPjZhYNn0qUr2R^@5|v~96+^al0!Ov%aT>;mpm zxmB17t`->rg3X{Q@{>BNp|w};wTUENtz6!+pIH^iaXvup;XMo7)*Cz5FIEuz!HW?YCedxOWH>{PWe!Bk34P+4krzchjT&QOu* zEtciV_h;2sdFf25i@Q?*=PfHWt##a*$dsMR?n(+p0?(oQW=dqMq5KT_TN|DayBIXH zywF~{t-4x1)$ZW}PTE!SAOVMkpaoN-T{{Wn+SU~PUJ2pD=Wl2PN~|LdkQcd#+;+-$ zRm+b%D<4^j`lNa8qum#sS{R-eX9}uMYcpEA)j#VA9~@^fZ1Rr?n=zW+0Nr_x-CK)y zS76H*|L#zoU5og>)}_bS6Z-lG%*Z0}5b z{dTn*()OWc6*d-;6^;z382KBeZVhkjDV?Ob+o4rtV}GYo2FoU{Vj(lfJyME!onNSv z6_KfFYRnbCAvaQN5(p$$cl4fi?`D1}MeA+{s#~fiwa!Mb62kU|%6;{LV>(=8R?Fo~ zr62q}vX`xOb>e1P5-6Xut797>(PY>mo_{0y0RvO~fTP+kC%}1GP(H)1oV&1XKxGLX zYr6gvuzR;dQgk#9n-IMm9Lm?Z(oG&d*w0rpnjPJJX|FVSozbLtdxfOEfDl(sweOM_ zX#F2a6F^PgYrx;*EcMgc1T;;UVF&i@La8K%Dvjx%R_k^ie+T1L@b;ztnqrSfPVd_I zNQ5yF$>@^$akbvRlBesBy1+o0_Z(qySix+5X zrqJW4e>{gL$Ly7>eUlyr85~zqPwyQA9J7auej(qs(FxI)Xtx;Ca(l#D_$kv-?^1NnTBcq7M(XqD_ZZCVmw=5 z(06B@O&`g?&GCn|2fX-=;``igerQw-^kT*$z)RLjS9gdp?RjP@Z9-t z)(EeW^}Eu7C_xx(1Rfr{?p|NWNKe8iLVJiDlzF?1cl~SM>v)rqNkEAL8JsPBnvv9M z&kP`*Te*)Qxz6t9%!Tu8Aw)Tqed`Y)K0X*%FE|8#RPmIxY7$fRq{Ee7Gj85l(eIPI zUrn&qnpdwi8&pJ?nESt4XR!S<1Om_i0$iq;l7o1)aGKv(KEEyDp`(yg(TuoO*2j}h*MYL>o zdCl?_O~3?hk(SAn=BP5ipiv&E&>Y$ROkyOiGwl>;Yfd3#KM0%YeLI0ibO)n;XI|En z7Q_G&7l)Q@&J*dB*d|*I?GPx-vYWB8a7rI+cxW zyF8Qkyo8#MQDWlaZ|`%6)_*b8`&g2(tAm4wqvx`x;cC59IcRDq8yvQxUFxo6XqaWA zZ!F=h?f89mQj6Ap+}3Vy_&z0jEu8K>y87pl-h9gt=ga1xo0T6`T`bC9h1X&@RaPFc zBye4E*))!9@kEh?>Q=jHq*-&XiXhyPI?Tg!RQUaGSwMOD8T-PP3~Pzzvt`@kn(|5I zaOw&lfy87Kx7GMPCBm)Q;|wLoK2284Sh(Hz`MWOM)v#3{1xZyJiI|6ZniYQ$^7wYi zZYv{A)6&`S#fvJ#q4{yUKH;jXT~!-zRto$u0$T~~t=vS9rRi+8=lC_$=h!8DE@!_G zJ-@l>sXAIxYS+S%#g#|V+2o*U-`rzZ7i_L5)2?@Cz+3+I|2inm`@Tu5qoKvyp z{z1)vep9?t+|lkhC&Pm}jNWjz+|I~ngZw8j=7+|R31QaJPn-B^r|jHFpe z)m}S9>%z)nHW31?PU~7yJJ0x{-nX)?kc1oaFkpUae|as4Z(Bw%cB@qh*{ZLU!aiJJ zx2wsw88`P=V#x>uIqM^vi8#JNQkR1=U9+|ukwv=7lq|b?fy$!yCcLHU9AegiEaGTB zeE!_=$J<@yL~Ts71zzLK%RCicnW9MK+K7%2<5BMX6?m6Y6M{}AGIwXK&u)Qi9bI|k zipjs+ZzWNHT_ElQ&$md+9Z$Kz4v$XleqL&qA#^&nv8ZAg?b1nDOvc$^|{D#c}S*X{U%*? zhIMl{DhQ!=U3Ni%`ATOzXVZF6P3bG8uM%3k?h*7)K7{~@Qr9fWk_)&?u9{LC7^|A^ z0(xD=W{Kpxnxn6x9w5i<1=9{7Yac`sg%Smigit$Vu0J=Mz*+wi(k?Kp|3)SOnSIxy z1+k8AQKUil958;XpvQUdaGQ8C4G-+lWf8b z{5&a&ZFg_9=VzoT$3RkSObkv5{@`DeKewc-{dNhe@9;B?Rz%|SkNcr()`V&Vfi|O$ zz!i0?#-*CHj;qGrSBuq^l?+24^2L62T{wD_9e5tMV)p4Y;EA1;bKD1(wh~#N%~7Mr$WfgFSza52pidEDt7T4Br1i_rh@aLk zTOv6<*}ZHK3(h16FxWl7!M7X|dlY~%#R$$KhIH;rRqkw$viaNgCB(S@}o^eVflo7=wYi$^1y$nz@U{tQQL+dOL}6115xJbz216 zW1h>3hhC^y7u2Y+Ep+y6S{G6fs(O{YOR-c@=wbQk6?qiy=<9jU@U9(`)`tn#w0q0q0q^=9}t9pL@b(_gBwc9=K z;!BKOcYgSMoeI~rM?#Qolc+KQy~VvyO#D5V=L(wEoHD47&~E-^U|-)%dQZ~q(sEAe z;Mg_=q>%y!c{zF@S1jgSw?<>GX-vy?_=<17YCAbLBVov{=k?eXvKS9kHjfrkyOvTt3?KmxnmM1G0(<+b_pGPL++?9 zU;kG5t%!0^+Ntj9MLaVt!)&*qtpm4Ds>J>5Gtnl24=g>cgY`VoBNYQ$N(dqsnTtRg z`4F}npruN_qn(EWOs(j8KclYdy{#3q-Ngf1mj4-gdFP2EzeQ=mYIOdWZrsD2l{NV--yzg828r=80=^5OZD@`q8v0?|>1S@sWa z54Rm1dsbxFr2BQ6%&ud`SK-Kn>`vrLH`9Bn_I2d-#D3LQEG>ozFVQ<7(t|h};S&@T zEMmrWs|ikUIpA_V7^wB4+lxyAa~r)981FTQ5;R4;WA{;S;S(N4kDpd#dCRLK49Hi^ zKLS%-O9h!*&K|bBMnjAy-pgJ#@x0Y+Q2&;zxC7HrZ=W#FsZOWx)_l}+$hqfg^C-IP z3Gy+BtF0(6$N{6Q zoE6#;0AyYJF*cOuZ`@|@zi#EJ`NH=5#y1s<64_N_GHC9&a(%BEI3eFN}&_!I|$^Vo!1GTEsrVf zby44I;0&Gl*>g_1>s^i~n}`-3%mHJhqlPu|J@dy4 zLH21Lt308xlBsDQRgddxGZ;#(orR5ezCSsvEaQlm%O;A3m*!z8XJPumJJovh*z0DQr8^ z`SBWh*0|ZKQc6tB{(Ei&vJbA*o3Ey#8kOm=*7_RY1{~!0?oyhXF$4JJvs`s0#oil_ z`tFpEx(q-2?2kTn&e!~L*x8^|EHC~>i*S6AvxuPS&B3;Dd4@xo!8AVel{CwD#oqa< zoGTY(-1iqzniWPL??2GfJoDhDkm%v=y2<3k+GWI-@8%{^_PqW#fyYa5P6Q-m`_WV4vny9_`*Gy`@98l|r`T zG?f%9t+iPD#?7tK{w@ix3Xw>CP+Zu{JqHU3Ogq4I5l^gFR&DnN1&Wwlz}58}7q!#d z%NGrXvt@^D%GWT4XAPbcOcNwt`5-doDOGJWSlpzgay%KM!)PLBHc{N@yy9cBM~0ex zqBU>L!4gt=ynGSSFj!G?(Q~KYz^-vJBQ-psq?7aJwe84x#ZkX56ODozRa({YeK2Y>_l|)Fi*xySN%>-(sPkEnO+e7RKH7TC`>B-;QUNE>+6Z zub*iYnf_|-;5%wW@vu~McYHqN?YXvDp9{f180+3X(u*eis0QCoI;!f2lfKS9o+rwh zjWS7dwW8W6-1kkAICiA8nHTUJpggOa7cZbg^3rlXoW`CKS{q2zPS9P^Iz77-wNtVx#_e^BOX+yFSYD_ACU`9w(@W zMvkI5rhQUiBq&5Ox2!b_y(50U<=+1`*YrLrm>;jpy3aMP4SNMNyc*Te87D>(Xj z&mf$>tD>DsS70mX$JPcs*V473IQw(MlLVF^waMd$Q??T$9Hi+e=^B*OTFk~9M)4{+ zp0})m?ec8e&Qc|D9xIpZ2H*eOfE0R!g{wck;lqbKlI@I$0psVTUcm-YR%l%*I5b1DYR_F zhx`gxM-dCTRykW7uEE`=Dc8%to>*IWE#h+Cp;2Ti{4Vu9EIU6buwOHo%yukZ(lyb*M=suR zkIBE&C@IsG^I$M9!ul)OMHWxBOJ%z$>%)~zj+ZX(FH&>iQX&{MGuw;pGlw)RKR~)x zSC(;c1W;5jJmRJFw=lX9JbGRe*L$N)U@Y?q!Zn;11M?pT{ROQha2t8{3tdi>#rX_4 zUp~&v&Pw@aq*^jFGTQP{6Ss7BTJ_kKC6h%5LY-0w`e`Tk|eJrhf?TmLE}Vf`x(*fObWLIpeb%IYyN{!VjS^*6FVD;)&EhW&x+3@RaRe^-oGXq6OX`#~BYE?_ zf}$epL?to^U(i)=-4QZ#o37}KoD(&aU@&~HHjmDyG?=i*hIE}`8p zkNrASNJ0W@12M12;okDyYIkJBCo1mdkW7ZHiBiN-<;N1| zJn`Fp^y}_BS+PLD>a#4sH)EVPVdbo%q9UcLs%lbd>_Kp30QE`e+%|9VXwd5lwoRi& z`K-5H{I68tS9*|WPY7;a-z4}J>9EG+W0ycsiFASMy&U2`BTr{zZh~CvdxCbFRk53b zVXBIi_yTH)$>~VT#9hnzumx-pf?wy71{Y~mT-^PVpFdw@8QTE*asoR}BivEeJfjgp zzUiM--xnQR*_EjUo3=W)~-}wN!}u0 zUNH;^&+SjjVUcYy16dNt?~UJEYN2Nt7`Rm4Ul@^lQlc5_HXDy-|gpwJW7P^EceMAB3D^9b*7VB zi_Ya}mS{(?=*?2#?r84}ZFh$FHO4QE%=|`@s9qUt)C~$5I`*=QPe$dzFDMPWyI?63 zlK`!fQ`p0{F&RBvreyqmc6RBG{w^=TDUMsZ;xGv#Pn@$?mOL#D<@MsLfL_8 z;t)3zyvgMb%tCp#iwQDZFFi_!eS#Q;iZSN@d{ z3q-9ELXC}$LtT_mV=UNHgByG5bw2(hd*P3li{>!)tu(fglKR;8!{$$xIcRI> zoRN}_VQlB8qEG@{$x*8H{ewNrT->Ucrz@S7 zq(})?`g48iurC`h{sPEF)9UNR^06SFh$ZD$avZMJt`i&Cu_Sx1Mal@SkdwEBa$fa? zY!WizmAHV4wbtvr5i1-`N_KP1j@%9WooDLeP{)fGl?iuVZ+!d<=MrP02DB_H3jC=* zQXCL`!6l*}f{W!T{i=;cM&1PkyDvB~oZo=sWteXKG?roWi24M)?F2tJ9P;`uX<3Rr z@88NwwE?8p;zEk(t;Vd7?Ok1wKwTz(WYtN{)s>GNXY5l1)$gd${$s(xRe)QjS1$j> zvLT{{%MaS9wXi5CpnAwRZPWK@Fu=nZ<9N_{@=5aBTZeYiCz9i2|6;e)!Dj1madDlT z{F1+4?_Z1lU;k*4cN0Q^6@w!}OHna+fP){_EYpe+`h#ru8x6;o*fu zM>BF~ld7w#O14dPZhKxkf4VDKUIjPw3omA6En&h9pyH9U;MR(@uKoD?4?pov^S1Hs z$j00TT-GnJ`FU%rbdLz#DRnpq-bIM$>LwT&8I@__M@B?wvb+Tp*<$8b{r^DV^56Ct zl;EljfBY9{ZQa{*e%Z;%-)3!izl!MN#X;X!PvmUC=>Y4SmVr{N}q`I5C@gy0fRhIOHR{aiZsOAIDZBFIygUUU zVguZ-=z4s{$sCZs*@W*tW1kGrAM57ey?|g*I+Zrp2RbO$FG@?>m0ob-rN%k~(LR&R zQ>`MwyPDU1i&rkb*QSy@@(K4&*RhPVE;WPkG0;}6(fR%x7fmz39OMO_pBNpqV?%%A+ve;VWu zdUn&^+b!+w4r&ArV6TOSk_i?GSJN(_1Ziy!*CW-*1HE=f|TLuq@lG7yO-&X$j zEAUSfdiN1zEUfqMUjaEk(B+P()4bXJve3KbO7zJj7{9&x54J>TZB^AHY`~87#@I8Z z@e|chhDnXt#G#y^(CJi@NE2`%?t2UUWNrTuzqqF5l0F3?lb7%V-cwjModq5UUb>aA zr0%j7qa4FOY}BE(okxHd)M>7?;WV-g&<*m1cBqKT5Fr$_ksj_W=6v^~kOBBankN;2 z?RJ+9{tjz@yHNk}2a#byhdGf%u=0R)%q(-**Vp%JL>+*Q3{V_Vrxa!Sac|0jKLzXv zFeCmw_16aFhqO)EcwB1#4Y}oSb~;p;3B+e$mwy9ikA(^WHIG#s$n1sP^m0yj1pWmj zzTz@BV!|Myg+B)3Ph;bhSErW^5|f!4nNJ8U+Hr7ho9gX-4&We=s=exX({swxqYg(d zO=)Xu%V=Y&?!`YqQfAU?b$6c8{L7{N!B5bjE5Pf4R^)#?u91KmEqrpKOI9 zw~1!v=VdBNE~JX--}a(n{|)c;$;J;=pon_pT9BNQ^0C9Jw6e9WjRCmc{`qhFr#p*2 z+&dH5#_)FqK)P+}gWLAAQ$>e#E4W}m0p95yQD=aB8BKbcKuYBC`72khJbnH=1URXN zA3@{e;~#MJ3;x4E{$JPhUByX}3`E!e#veS%f4v3z;lCr9pQKUjr};i0#k_xFB-3gg zb~+Ku$I1UIl6m}s-Siaa9dI*ZD!++j6ynLIPi%+!ZRkgL>)#`p;B}bP=^~kr{~5{L zu{XSax@Y{@|9?j^?aL-#PIZkRxBe@VVYN4;J=HY`9=|&|l6m|rLF$xek=#j<3~xtp z`N^ln@63R74;#s#)Y@@RW%u3PaqiWl+ptN|JLhkqQ>8Kl>o za-+`w5&ZH$kNjQbYgK}{eFUa8#F+V8D$83MVjpsX3&@Y0!lzs0dfBONdPx~Eu`k1^ z@~}0{Dwlk0`a4D)eM%Wh1D0R#js6Rsd~$Mf5D?qj+c&uNJ|q5*&2h5h`qx{aHe>)- zup16;disKgjG+G)vWhz~ajIJZ{D?)k#FP&-<%DN%|NjxK5DRR*qV&?u8J3oo z)+Y98AjFl-JFj%QD2(nl9x)d=P8a{S@;{zeVPT=T-K`6!lx2Q;m3QYu564zBeLCs2 z76fklsiG#j9Xw)6+c1aaNgWHP$_W)+T~=(pK$!XEKXZ|PTHya>Wg@ue%d}bfR+^I- zgl+~$)Lq({jAlBGmj-bGlmqfdU(d z)n|{0*n(3An8%^DnVC#2t*wN|(GSj^&Zuua`*m`LhGKC75UaPhw0va8N%i}m)8o(9 z^c4|U(-x3vVWF|`u&}b$*4B4G$Q!OK8F-p2k-Fk|{t~h;yUL<@8>BJ8ckBF5<(Wtc z46r^0M5LhBf!!w>8jOII{6*o2n2Y8G!OM8G%-NB_kjmz~1jS%p$ejNvZm;=Yg~0tIP8_3Tb|K%U(Z|*vHkPdrgo3$6&<^vppM1&@87}n$e5Qv&f`Qw zyg}{{7Y-e&zgjv7BV+3FISgPqGy(((e`E81cE1il2&n3jbDKV>n6C`y7hPDxWqW_K zNOo$~_>)~@Dc58u=d@+P{_xu5?}dv_*htW)m!ck;h8VqkS;36U4_ZXPZV4;r>|!S^ zgLuY|8`OAE3}py<@MxUogsIoXMw+1Q0Z6g>VjUe56Vq)00fCjfowyB8rW}-LHfWR> zx}6WU@*YzTu#GxXV2LIEY#l(UWf;52e0(E73b&x(IY9U5fk3r^uewJ+u9;f+j&YRL!RHFkPqb2SxV3uaT zB!hQ<_zOSfAg3nnMB1`b;3uL}>|{{5w<*_FZJP=UyW$K;vkN#{IyzR<=eOes$p5j{ z4vPa4Gd+-LV-L-CCsTiz1~Vq>)kdY$T(i}k_R>`q)}fd&ZJtV1-Mw38y=$}@U+5l6v1MppZ`~+oFYgGMHeKFJO^OKf)u{|;krEFIgs91N#ZQR8@ z8qzGoG?wEN#?)bB?riYbJm{Z3Ch$Io*CK!SzLYcLn$ZC$IPENL8~rT}5iNX@LyNaJ zpsIvNTN{?SE6BqTNy=^UY?N;5%x#L?PB#3!O>DWZth*KQrAXDge>&M_3t z+MTMlmNvuHYoIQSdEu;3RyK$0I*k;yG5~&r#Pm?Qha*GX?s><&f1|h z)Nh#qULdN(-<)_g- z>9=TSgVV^cF7QH+jyzhLn}0<<;gOL_H}j@f=+RPXv6&w0QA-{ykz9B8@|gabL}|rW z=}jEEv~8CfSDJ@454<&;g;jo+TE7-ME(DibW7lJeWFwIYQ#^j7MsDFMG7%^=K}5u?Y5dyG~+a=byUP{E|zf{|=?Bf|!GjrZ_P5@o7TZm}iboL75P&|KE`Sxc{3vaYzXy*Q0>@4`16 zfQN#4TbR&9vCHNQa9%EcYcPKG;|{xdypm+NMVO-|fr7w6jL_g(_#mfXm3&bgKf5HD zNtSpY%RUtm(Q$`_*IXymqo7K0QfH7(IBFhOd&gFBu5Qp?qEp^4IMS!-+@tXLQ!J8* z$q7}@(!zj9Tknk8XJmr{{WYRXaWMotdWYXfXF~kdvpUvm%Lbc{yNGL2$j@4H4g7_; z*!^YLp4>nr5cmJkRs7$(n$!$?pd@&0N=V7eQ^cwg+-GJ^GPX&t{?2}FeGxI(EO6$H z8%1hU^E=4T6!*xz*cpE=S-V}f*jZGutS8SWF1&NX{I?YYmMB(BVW&8%ML^e6f;-w( zN>1*omaT2R%1xW`GTRr0mR<}c3emjNE7UlKHCe$!k!J9zxs=HBf64LFiONw92T0Y< zjcJ*)MesC-3lB+K`pMPrUHZsTUv%f?Y3kKtviha)3t_xU(2kd-V>;pC;a{L4S8@5p zrgDWXBTT4wJp=iRoQtY9=W(T$DyGFVgkw~{H+2o)W?t5reBi*TQETdRw-s7Vfaj+8 zo0gmZ@J# z!ov4^tPuf|>e|yG;=bIib}$8fjC$?4pJU)K>9t&{@%F9RORD&+V zf0lcVp20NM?w@&*EwguQ_ts)#@k*6E@?Ny8h#0NyhGr!%T~;h@ujYU zyUt-gUZA4V=o^@un7GS)T^2QU9bWEXnn@nOp+a<;gbk`dTDI5OW<2^cLz!R)qH)9P zDF0}GIppGG3vi(^|=M5eLc)!qz7uX zbkLHBkT4mDo2?!btRX9FGuw|7(8*eNPWX;x{yAf7V!C(I4J=J~OuH~`kbT&)<8C!c})@?mcZpgayo^3o?Y30Oo z%i%-qJkd~#R~lRBnr#mUqxlB}C!3df{{1lpw)qR|Y$mH?P3zaFf^RCQtKS3N62U_p zF7@xuZ-Ki|w?3#nOA>}!tL#EGzQx1gdgL-{n)b18v8Xd1z}*+FvDdomBxfV z2$l-zVYc#lrrq$GtRs?j8za=dPT4?<(lG0Akz5~DO5isPLOkHUB@V!fI}8lvTKNAD zW!D`~h5r8QAUn!R_H8H!N621rOGSu`?8wSE$KK;4R92EzG7_@M-UlJs$;diJ$UOEs z9KX-G<$mw|es8Yde_q8opYc5J=l#4t&-3|+1ODCG8vHoM5;_uP;Pv(8Y+fTPRCw4W z$$7X2wD=NAtbI{SuBy@pJ@VhydJUp%hRR%X0>4BIO!YRgOg8@{)H$M=sg3=1!|$Ho zI(fl-${mh&1RTEN)lWL%TI@JclxS;LzSZA<(%fn)wfJWxaS=~_^y2eWN`BB`w|_GLHKTjvah+wzNgH7E~cBWC(X>-+DpoV%a?-xG~XX#Ob zx=*NC-;g2!5?~RKmZCK9$u(*D4V&3VMYJS?J?>X)w?>&sJeuy1FvGcswt4$smTUyf zdOExIk`lUIJS^DPUK^>& z;&RvpntIpmpc;NVL}->$W=hS){79?kb^K-UwLxo9B*>rN(A}MKgCJkR@>`=X)g@nf z4^D)hsdiK~!Yh{iD>jDR-#biy)-c9=P7Y-D+8pKg+HuLCeKYl_)PCxd*m7_^{<RZbmE0tMI$6@&}}yB z%~3_3_RSGrDmUe=(Ezq@Ve+hbMex!IdT^Ls7}6diAphXOgNmuO`2o%B%5`l~@T*y# zu&T{B9_wGt-rG&w#E6#hJA79uoi7@|L$w!nz}{G%7&37B{lE#NjH9-PBG4Dik82!{ zFS>1-<$Ua{)vOkQe#-%+tbfCEq!K4$Gd$nK0aLP zWyyQw&c66la-r9|8?125vxwuu86+w}kon*A=$|oER!K(A%y^kWYh22yIBpr;b*!+N zIlU+5cmyV*3D*4J!}M~sNqcsu-DtdXST(BzY7d3c8DJvGyi7;l__7q-Zh=aPq`JJp zYWNVjx253E9J_$NrN)NchGl$fYtJ~_K)CKz;%4AF9@V|9)ual&FzpVbTxBV=q;j46 z(vonrQd}zIg|KN(WLZNGQK_n1!zW)((~t40ugd*#Qr5HM7F|!brgJi`PK}kD2O+B8 z62_Phhqj%0&d~Y_+)#M^BN3!G#{f1J=brtgr$-wDga+N&M*I;$>W+)IxFw#Z z_E_zdHyOX?jIpD1(|72+>eXA&do4jGp{ReJZalt^C&TvU-K;%~p#f{;g{1Av#e}T; z>2|?DK*N@`yO51#UbQ5YZ~@-1*M(6(@`rw<<@_G2-Nm(esf%BW!P;cdE|U-<2@g2n zee=Ki1(1|+E8Qnuape;|ze`mhsMLbn^zO`rwq!c2nTpykL*Vaj(Fi@s>s0Oi_Trct zPkVlBsWMwB=8;2t%7(o=xYuYxC4*(=r1eAhCA~K-sUK6^QU$jO3E712RgF7iCcy2f zE^%qbt*kxDWTvI%(GRXvKZ-U_yF4m|HcSw!bgt>pNR+Xz%;brdR8TBv)n%Iy_HU+Q zWbX~Rz8q`hIkSmd9?Kci(wQ1!gJ*a7j5TbZhri>$By3MZ8XzJSf6)J~H0_xz^IAD23g*`WG!v=It^i^v6WBS2$7V1YO zYotAKI>hHbP6L@GL0Q;EF8K8I3S+MoIKP{I^QCDi`oofe4%(9C*Y(TO@YzhEk`j9jXoL#fjla+nFPk$;OeSEg`;~j!k?*3~V&xPrm9!9*%(nF@7bgOlBtKF%_hFbI) zOY2;z>nvY?k=l0ZTWQu>T4LFNRMv|;>{`U`t;>?=iJ?-)vJ4GlNy*wOObx2} z;xPhiVw4bl+wU?fmr?G+q3W-G&)C~7tJNFHGP$5Ku(PnXsN7?GnQ(LKocoRVN0aLx zwJ$H-P}{}4kaTb6;7O+)-bBhd1eGygdKX}Bej77-m+Y3z(l9I|bG_~~+0LBNp1XTn z;G=d>5&owH`?|^m0XnGESyT+3X*A%glB7Jht-7#eeljB?HNF#1IOB3B`|RwfBo=)< za9dM73&d<5D*lu!djSLXxF*hc?zOeG&-rG`uJeVx66FJH0?Y)+)9db~75dE8nt~G2 zJlC>Wm^tgJ?KE}o$WW5TEm;T0pZoPqLjMD2$Y=B&PBr~PT6JauIbShU?Gx|JranDi zTYD3+K3r}{#rRnmQC|~Vi~dGTliM}nm+uUs$ihNo**sI*K%`89etGg$=!ON6v>w@e z=WqhGmjmnDQfi@ScaO5zLilV&B>ia#ad=frno|Iz@N>MzPS@4CkTdZy##!;sGTx<* z4o?fK3Jth!sVqiMO+M{WlCU+0#UO5)q7)`$awizWCv~RutYjmFLllp@=$Bx?d0$LS zj8T_N0;v1|S&x$R6obCY6@AwUI?Gs4QDav_#9*}&EyqFavb)x+W9>t5YoVUO-~}k0 z(+U9mi&?-lC{w3cX>4rlK8O-Xo3(%qKTCFmwQsY|x!fqyGx71mx|bIP)p!sUU(Zu- z22^{N9J0)}!-A;I+cC^Tuj-1?Ez1Fe?14S1U^QQB`B#Roc(sWziQ)VYhvC-NNz4!W zu@6u-E_QDeo4&TXXTwF{;BFoRUTs)@hUMGZ0`z?RDdWN`Qi4gZ96|#lrEl%jyM@4? zDLZdU38<`H!Hl##4RMW^_kOQU!s!?qW)U?%FPVug6f?qX^7h2?yEnRq66v@uVJDVR z1?M!>Wj%@Y3MB45oA}8WO)y87mM2T)d}HaV%3mv`Mr0`br(5Rnu{klU-GFuRT^=9D zSa8W{H8TQrbU@;p3KgMJoW$K#g(wh_*F3Ye3)AZW6yAmjB$jfghS>Liy0-N|Jv`ej zs;GdX=Yc0OazJMe-X2+V279f!xsK+3hZz$@vOoPe5VmMQ&+ts{uNzVRmY0%HA$6p) zpY?j*HMwQFK#6r97`JJk8@|K?-@B)cp85QK#vlP3EHrw>I%%N2pqr=Ehz)bGYP7i+H{i8*QHtPZd-2~gW8LO4e0W|J>_3rws%bC3f z-g<7U-}74K&Qh1O-oFAPxxvFdz&R+a~}r~7Wit^`59 zDtqpPfMoBcm%f>-2U|3Ce9tm=4O8bq)kGr@*(8AGjw-vBipCusGWu3ieg7lJ^w7?_ zd%qBN-m31JPQzFKfk%TEx3;$U%{vl09x(2-d*i@Us!Q_ZSb%pgIOP1T1SF6s>+|Gp zS9BhFx!LNpk<+3qEkD}G6GG7XJ$>msxfeP&q(;~cq%I&vGfK;waW_bHDq2ZlZQ=D9vv19M&9~M+ zc~(x@D1$zhg$J{GdfNWG4)Ojgg1MW6#mM%rp9R*oBbxzKH4jb{p0w`AwpB_YGE68b z9<0@~MOi)X_n$IBp{yrU!+{{cxJ9~Ta-4;&8Xm&P_MdanSjO?l;k`LZT)H*+D$6$3 zYkS(Ro=(%sR#9vcC^8vki5jA-+-l%8?x;3%b9wPuh@tO#?w{1mD36Esy*dmHx0w@pUGg_egib2mI>^pgfQzIedRdf8Ybm~*I zpP3gaS&xws7OnLI-1H264Tt!{s6vZvX3Nnl%v`^`9qE6yxmr0x$6HB39;P95ZC#9% zGc=r-V00Z>Hqom@r^#-Ox_Fo_=hc+-1T)daC4>9Mp5c!3LD2Ou)|737gb8|@5O?GC z2eTbnNowCJ2wv*YVf|OMi|Q%qNhC1ce#^JEu007ZYJ&9=W%q3i=U9I8-(c<$D5fP* z3<`b@(-ln6&Gt1vVNQ@CWT3f`u;c@$1xR>s|*V-Oi!=KT2?td{EO>edP ztWd2z3luxfJ!gmX!ZsL^2p^q+4u3o=vPLXIpj|=@T$^X!dNbp@#pOyKp4r}<;#%i8 z`+jf<=SH`!`A3+LP|r>6hQ@MV<2bXK)DXEkpV^+Qd?y+bMQ}j$(%X182#I=sI*MYu z<@NG9B|CVsXt&MukYyz#2FS7Zly*zAftfR|V$H)T%R}|V^F~B#g7>HHe(L%1Bo3>! zq-PqPw z9%_F5eL16CbFz_MrAUk9wfjzR*9*TD6`Cw&er`jR_J9?}^`^5wR?A|WMyBPq6^^kW* z!WFxz*Uq1OjuK>AXR(_HO(aL@zt<+x5pRWonssk>6?Au|qte}hk!5li*aQ!T70|GF z7SP%#hN zU)Fusy;xAc@SJi@V?bB(QoeJn;^hbuPlA9lZ$O^JChOv2tqW;-+|Pda{f26&*4^sT z8yYqb7DKLvPQOo<8Cm@Hdray5aK|{axmh9MPs_or8=ZV3jSTbCS<9)MIa$^(eB-07 z^~_4%hQ@68EaatVztOsaax~>GV~*_9(?6Y`QMj;mwa#B&Qb04kRluQhwmUO^>**yX z%a%&b9zlE#SZDyHxHbkl-T?o<0Zt?F?F)~L5!*NF5$yus-@Usq z-IMi-t}G+Np7WYyV?iOJ+G{tnmE{D|ay-|l;j{Ytl35o&kR=O2} z%-kQ`d^_>DfUBiZro(NMtm~Ql%BYIJ}J6%Z*;v>@OwJOUa-JGBeHQGn zT|aE4p@Y)VEV~Vqroy*fSIbN?ALO;PD=0~)CsCxS_q7wNWTwC!SFdjA7%G#rZ7^5j zRA`>MIVW%n%wqcLs`3ypw&{TBAbV~3T1tD z$OvZy3M=8G%FxQutCay}P2cG_x4z2l)cUw7%6V>hmi|7>-%V9$ZI@tj9i6?rEn2Qn zLCSqh+hIYuMT>s1G;U?@#mfs@<4!A9*9NET+ofR^KieZg1^Tlz>hG>Hsx^eLK+Rq|Mw%O{FwpqCD92O{Xjjj@Z_YIC@!zU1{u~c~tP(l}UaK9%?!U+G$p&P1$zTbO!=#$7t{Lc2t> zE%0sk!P!O6r1ajFGNYth!PGPK6eu&gTJ6xeMa3l4f+;bRgG$ZVpFDZ;+k7#4eQwg8 zm`qo_O3N!fi*)-@<7a*o7g?i@@x#hf)Zcd?&qtX*US#j`D#>z+m~_iheHX92i!dxc zHCyVfG;69ZJ=niew^pJ-;?YA0DKvZy$j%>KH7c=)TepHe_I5XbTC19|tZ!uWraN1c zvv@WeckZmXkyrn3T5?ZMvsyiP@O-o`Kxdr9rFl%}oS#bb+q%R1jXxz>b|Qgzq8 zTLyw0-C2)e`d=to+?yM6w|c$iO1wDLcY}G#2=bQN3L}^7P5b`1sr#%4er6NvfC| z&&%AfuNF~i`-)|44}p>18vC#`u@cT5zp;kJ@y3VmY;>1-ivaTwbhUHpvdQN^Qvit6Z;n+S`kNQ#F3NGoGS8 ziYfB<*3SitGaqc5OXRwEYQe>`AfoY;DlV?@;r+7a?W)S zw`SP+=y*At&Gy!RjpEPY{PhRJ9x@Wbw*DN`+J?_$NQ>hBva+&|XL%eHczktqbT}ox zJwzo_i^O~p@wA&#@fgoayx#m8x4AyCG@H>3t5=;8oHD*~YO(1)EQ9{4$HsU>r>b}! z#muNIhnI2h-nIV9owS!_o85Hk#w${VX6#-bi!vU+SrF`Gy=7V4Tnd)-U4jvBMA?uM zghVaH{C&~>I?6w10#*tPHyED&?0zg5Z*XvM*bOM*`r2CS*T@=s-$7n^A|c#V=O$K? zQyw<{>8yA0ZV27dQo2I#o`+T54Ys%eNoE5NN25TrnT_^oZ$#aPbiYuFb@{1Lxuuv0 z^(D@3$K<<8XVd!2pC=e@V`pznRJU`|9g%OutZg*RHim@gH~41cJR#1(ee5fw`pXvo z<7odF_T)n!nGxO1$ZPA-8YG!nS;2~+w>eFAB<0qtn_0?JZ71d&c*%C!6J7>C>q1()W>t>$9hD zUBT6~5hf-}IRVE%&|oM&Jb$aVC_TK``MI*wxuKYhwQ^$%s!`wDYtAS!Gb;Qy%lzkI zqvjY~mRdcRTA-NU@19I;^4c=a_pT#%3D7CBVzgk4Z8Z%fARq`k2BCxqa4e3MbB@RD ziRfK{>E&}-e8mpJV1ebmXW4j{HtU2#8->wQmrNq&ow-BXbtMZumzvHBxol*||K2aP z8TR(HVLxOu^m#f`??yLDJR|$DbXB&~C*7~#;LztIBjnii$aL})s-1*;dV^Yd4xjRE z{&~RvV>yOm5S?P1V1IvqPy`IFZA^}=F}dN>#LhE@hz9(RJ+ox7|Q`puB5c{(*_=qOAMGw8rTAwp_s?uM5uaiB;?^V zH###bRQcRSo6u+K(T0WBwr96?Wj+gSCcgE|z4E8M9{2+?@SMu^_cy@XD+;;;s7u?7DIyY~6!{3H|g?WDK-^3}S1Jx%cmXd%`Y|f2kCyv_= zjh#!L@k!F@@7vX=aJJK8N6>zN{}r!(y~w=js3PluHz_IS`B_+4z^b;kwlX*#4L`BT zhup0@5#P!Z(tDi#dE?V2<R{EixeOBX^fp%YBp0a0RB;JD;9L7`J2p8+U&(4`d+6vty9i*;#dxic`^(BHl=y z;!yvi;m%!|1{{=AuO(MErZYZ`XInDVr)KNY#_OuHLK$x9<%?U8#vY>(--ruhn`aE! z$rChpnGEY;W#;Aa*p4xSX9W>Uz2zE3dn|fc4P(3VNWD99d2JMHy_1qW(Zib=8)%lw zpv!>_jpa9d_*iD2PsQDe6aG(-_{CsimP{pN6M1n?}HrMkCvBb#|#q>NQ%_e=!2 z#qIf)UXRk`rI~3?M{J*?Thbk;95;Y@D#;<+&)3wPxnZ!-X=^|6-leR_OO|Q0vwG`L z(ZuHna+-uTTq$jSe*U(OPKL>%1AC=A4&o^v*tz*R@gi(E{?6n;?49rK-tSJeS4h&L zXT?v*E8TLPdkB9!AHY_c_nTMhy&D!G`SZqg-4jd8EY0m@ZA^_J4Txnn^R+kiw~O!J z&u*e(Q>yhT4`G82>EG6uN_;x<%}kHxf1>U`E~sG{#KI4y%FY+nOt-S-At)@Y?5u>L z*(`-nRk&H*G^v6<|KyQ#E4{^;FYV;!&~Tzlk++D`xhx-;!(eHd1Z%p%$=1sj;UiDR zts=+_sytn-t`7?waufL&2to9JQo)&y~y#LC+GH95AZQIs1|lKwMl9}o} z9i%Z7TpoJ1s?uwEQ)g;*OR;*B(J+RBl8e+-H%F4IRS^s?`2*LnfrEa)7 zc=nKc$IWnomaKDlm=)YHCiIHuI0eP;YHDit`KQn}j*;=*>yv4Kb4ctOu>>A!aL5(< zzV{{yUwV7xudy#y%vbP{6SAU3X_e1PkIOGDq%TDsdRwoM1Q9_%d4D4pA@AdG@oyE> zeHHE^tR8E9eRpS|0-YPB5yrhz|LB_kyKIJuBvv3azBO4iXI}*JTNl4eq6claNG;PYZ@;%hv9EAu#LA0`b@ZcI3A=u~-;M#bGzW z5=EV3sdNy5m=+@CnXCVg6*MLKEHg6Yg)QoHw^P0^CMNdO*Vi}CqAMk4$glg55dgS1 z(t><&)$ekiL-(7H_w&CRd3#rrA-m3BK6*&|C83VKi!6{GX(_uMI83cd9eNz>e7+DGER%K!6I3pI*beT_n@fKhMuznC^wd74tl5n{{ND1DyyfwQYMkfs z1&E_S2NAaJr;SmZpHe`gh^)rGAAT%KWN+ypP`q8p z%gd*kAOHl#N<6-Gcz^ffUc@Tz+Eff;-;g26x7d*Rhy7dBAVXi7qb0X?%o9Zrl-4&k z@ZdTq9YJ$=upl}M&?c#}Qu2YNWg&&W47xn&XfulT;{!~eYmJ_LZIcy?yy8UzWzq4UcZ!S;}8k;CsE zj{GeW1!&ku2PdaU;8X<#EqiL>9EY}{X!(C2I0#nHx)9l4x#55B4Y}+;&=m5q#p5>) z`w4`Tfij6Ij{&4yAcEw7wX!udWCwHlExf5EN#5(DAvdCqJCDOjpV>;} zi)%Q&|C)EP$mdk&jLm5JMU`W9Rua?dX*i7Gi!%w0dLPXDgk==?(#e-~4M z8(*kKB?>;>muLzhdZ$zH%;;4>r*FWQnR$EhRL3vdW!TxMvg!r2=Gt_uJ*IRj4qMK~ zmA;x|e-orfl|w^AiB(lnoBzE52Utt@xsJg>=AO*EG&e6&yMXfl0M)cRddl~T4)~kD z|CeDT`P^Ws04R;gmZt9O?xs7<#AGJ=q>=M*#1q7g?sEvBoOgWwd=hwyY#QLO8{kBh zoRX5VdyUpq;m}4xLW@L!Y{*{c7`(sWVoQtwG3B8xgI(n+q+Mb~QLEaklE*jW`|B94 zL;tOaazb(O#tt2xq{^wOb-BJ4yhi`{nbgm9LVi7~!WCiKHSVTyFgH+iN9LQg`!<^itZ(gc0(rlU3qje4?5OGUwB;9@Vdb#&ZAnMF?u!G|TPZkwUHjY*G& zOuS^2nK8adP=FICXy z+aa@*rO`jviLaID8qGS>Ewlx$FGc=9(?VLDqZY8F5kpn;uFf&cKyl7SN1|L} zUY_ksW!JG(VciaRiT#!$*L;*glG4w=dv^_alfbiXjcGym^2=y}gLf=No87bzWQ5&p zcrk#dh{EQBKwD#mdK85ug%I`%%<-9`c*Wkm?B&7o$#INnnvPc*x3bXRg3DxZ0FdY%MQdQ zF3Rte3&JI@CndiuIY>oBtSjtB9K25K2qpGxYAsDo20XgelOe$!>c<6^*o>f*6A`n* zn|;^k?JMefkA(_&z|HmtO#|cW*~2h-3|*fWS*h{#cYApgOX*lSe(+aCXF;Vj%ge<-$c!lN1kqMOou#CO?noAY!hUO9aXaU^jGNhaYaq4WpoYJb+FDASnHF7M znby(|agf4f?C;yJNX8W5%U7@J${c66iz&Q75pE!l?^H{SeRdQn-QDVhkaouy#=^vht`i}t#%V#2JX~9vv)M8K)crv#zDGSLii$6mM38MH z^H+P88ZYgrG_F{7|J(O@Aoa?f`~VEAJosUM=H?>RjTGh+qgAUS_~GACHmLv)$2MKu z|D-zd4>E?^Zw(E&#+NGevn9XexeNvz1Z%(p{OKPfQH7ShZP|2?l>~#gO#^9CB@(y= zcfYaaWCi~o2mgJ44rIjf1_AaU1K5<6GF!VHBa@rc`zJPpVDTxVXSal zn^6JOaaPh}6Jc&;#a!l07k8tkN^mW)f7+##pH+MdM_f-0LEcc^r!yi3>_iZTw(0_s zo#YPmb(7QQ)|k>?hd}oy{Hv{!MMm2XRJuFA%gA^Y15!$a0q*-&-W|4V#VJCF{Z+?( zhxLQFvh&3SAFZZcW=d1sB@TU=&E%o`>R*06nR!Qp&@0Z1q<8SqAlQ_+O1qk0ns}O17s&gQXaN#%X{F~M z(h&9O6Ta@g(jdS$xRt`et9{N0`r7ABi!G zBL!uY@veVZs7KyK!syEXrgxA!?u zD}~)KJ=IBBS=pAC=%||O*4VlF4&YE)e{(3bBu?ooz!9+7xdyCcExt(G0@`COa=VrrMF^0zu=2f$ z0WsSGuA8v76kYdse1;NIA|$5c8)x~l2%&P4@EsI-d}`k5pcx{-l>e^QJVgFB)U zWsysJqATi<05ZacRF<8+RNsLvwGWy5HuBF-hFBsrqF*rc#wCpg3&_i*fh=v~W7wH{ zE0e7Z@MAO%sdh(Ef(~K~%{xqT-f1jy-g$8VquEalO!tjZ@j(4SLGhn!f!e}TlASDJ zVjzmu`Q)+Gd87rc*(IVx>{z#(XMNjWOOx{)Ozv9rk(Sbh{JKu{75nUNF-V7l&kr{S zRa%n(ZshG6BkQvS>H>K07FBFUfEuCUJuL~*ACSXWAwx!3wKBuvJ>CM_0dv;WuUhsOAu4cLO!s*}ZS`v=GHc zBT-#;KEI=Yu|)CiC63VpC9*(lpCrYCA>c-WG4a4m?xF4+XCMhmO6D_Ug|y73wU>(j zn{qEhTe4nMMF%lvN1&@bD?xED8K`|y=M1m)vKVs}@97eb3tginX=&C9MHl=A+!CB{ zPyd-4P7oaP|x#5u_Olo-H~EcaWomMnX1*ekj0}jG9M) z`HyDDL{5$Qev7YQnVn|BesH7MqU7y*>T~f(^e0;Cim?DG-N9P2|DJo*?k~~~EB|&Dy#oH$Pr*36h zCQ}OH&yh(a%7uGxvIb>--wzdoQ&{r&XZzll0U~7v`CV{hRXn}}0|SBJ00BO%yK`pl z{t$w{Avj}q;y-iTPPQunr)Zb?@B(x0pW7;ntU;nAC@xUDBu1S%@Vls^&5@Sg*)Zyo z0vL54Sj_=&0&K*d+b?x#Fv@$`DKiy57ajn@CjJ8nqczBaCIX}?-jw)(3p6eMhGZVI z?r2GP^9b!RMbM#2&@jGa?1!>Xd2sO8p9)45#%nY3mcIc*fTOF1H4Quq`}jq6jpxjd zz5G<=dW5g-3_O+3Q0zRlNCf;-<&Oji8Nq^!~UtehVQ^37I-0@B07imlqNw? zqZ%W|$PX2kwf4^;VV~5?h$4Zkv2)H7`O`Ro_-418vX&=t^Q36?oMux0EzZ*cYy;=j0idS{FpEV4(99|kSye<4 zm$et;V)Fx=6I4M+J0<7sTYYIWO7>wItFI>n89_GtFS6Vy(HI#Lkfr~GZVK;uL5Wv6 zB&SlNidWQ+uDB&b3Bes&bqqE)_vb@PO%fZKQ~&lrgowV17v>THB6&BDoFV}Q!|7#> z?F2ry%dX;7M<*Qt>vV5DulNJq6zz{9Q5Lv|ia+`9KU)@(k%wBq_7ZgokP&b)BVlLc zWx=Urx1k)ZJQ0ap^f9CAX9AxoiqKi0(XB{>P9(h9?Uw;v<_1(3G5AWz{dKPi*J znFs*UhK7c8_wRTsjW5Pq8v{vZS+7;?&)EwyfZ0#NKCT`-`%cIuwqlUt;Gt1W%nhj7 zbyie_>#M7ePSFRM;Pi^dK8-czdQ3lO+)Y|U{2U)LkBowWBv!yoDO%jw=3}!KEaGN; zo>n9_rSyaS;Vk_Epv{&&nWP|@bW7Wa(9|adI)S>`i9f=i7Hos%fgk8I(^cJPvnr+F zS-c4iw|_}0-Vhm`x7k=2N(2|H07=-%**O3l{1`b#KB@Y8KO~Cy$hhaSQz>9R0G(ps zANqbSmKEMqg5g5~`$_9RE*jr!LZ^j6#-40Frkf!26p#7P zo{JAW5DAB~X>sKCvkC#HY?Fk84!-{3l&zn$>*ivo*2;pnRUD`uMPGz~3J4%6r^<|g zs(+j2k*dlU?rv^vSY91llclyOm>$2{aOKp#kt)6e)jW^vP6z$MzJ4<1BzmA3W$P64 zz5rnbPm_g&LfoFERk7nodJc>fk&X_*(y;SsAgu?A{N|Od*}5k{UOt*%z54aGUJ_oc zK7SMBiEqvZ%N}?_bx3mXY7zdd0aS`(EORR9PoF-0P5LvfK^WMsJIh5fBed1b z#hfyRijW*OPsu^sMwZbJPiT^=yxQX=6HV1y-{sij%N`n_AjIfj={;}{Wehzamwt%* zvWCvi&V2w0sUcMacGU_n<44~#zWN{X?$k1@)7MRO( zR3wj1ZA}yv{SfZ!-n!GKS^Q?r^(fjYXN(>#u63n3a64T+qt@O%F5|n{Yy9kQ15>9t zXTkgfz<#yMLHg{xk2mJ>+t=ZYgFj+9-LE$H4g^-QDC_dAQ~s$XeG3MwuwAo|>v9EN zZ*1lER%mBlXXPo*dB{~0UmH;0J98bBz$}5DgAmP*wF6O;`c(XngsUO4W=o^SVs-@Z zc5Z7%i7K|28Kl&w?v89OjgLm^z)3lkVlRm8El*+sl)YBJePl3|JkA`;=C$-BqCO0~ z_2kDQ?)2!T`sKS+>iFf41Iz#I>*;?vqB=tgmLEu1EcjE-|D<9!lf$xKYfP=s9UcF$ zTto*+?att51Pb?wz9MU#KHQh}H;vsHN&)D~y|sI8RGu>{)!5Mv+&t0M048|FC5hGg z0RM$K3cRDK07rvdqCB`@26>z8L#8gcKwYcS&GABEQPDc9sNGqs;R@Fmb&8%FAcUBO z7ZX8Jal6sLkX0wWqJM7H2Gn4n~t>9$b1tXH+ZIo-FJ(Rl3o4ssQ!h?u9 z867`h|KaC=UMm0?-GV$8cQ$6);PqXy7I{%b$vVs2Rf3laC^*6T$A;J+><7`h$moaxaOogWKtLki z$6u0`W?_dBBTWLZC*mgT(;nb9d9`uWrPb zY!5ApZ+JMrRS1yW+d}Um%=gwGzG)8@9zMmoJtlV#Gh8`}Y?tJlbDRM0!lOMC@7c?h zs)c}pvJnZeMk^wM{}@^S1TVyGqP93mCP4OpKt+{YB5P=7mdfMn?k4+adK$Wdc~7TF z4>Q~Pe2!u5Tqz?cKQs8leM6MdCqh^y#b%m#wF@pt6i=0omA!(OipENOt*#w`!Es)j z-{j?s`wh#skiIK*FsZ!v=DfNkd=k5>UH6vW)Q`uFkJSfu@!*w}3m}YWMb=+A7}|6N zLDm3jp7kyi78f%>32lZeL|@!Y4irK@DY;$sn;|m{A1Qx(6nw=8g@A0$csW|q2gH{f z&m)Ec?O`}CXO}JbFz?KM+nYiFer{rSCS)2z?D8-80rdWyy-C^JPKxcN1dEvWz^5S&0mQV-0QP}AbC6f?E zfjU0MXaQ);eJu31vH#Dsc(Y~jxK?bVw-;HHQ?>md&tx%H)Sh>NyTP>>%qig000cSy z!4YUUb!3BksNFOT77d8?HOuMEBZfqZnER8~;!zku@M@`d%$KkkhdP$qerRM(m5}8QEmXKM(GH zqjp(J;k)Gg3FIXo06`JC)NqYMW(3Fvqm>4`^Gvl=o+Z)}&i63np|N7FVjfEj>j4|X z^9EU%JeV{+=%07d_rY*xdkOEfNunzk$N1&FJg43-wpMHD#+ELW&DMr1OSoP^Eiy@O znQC%zf*>JPuj*+Kv!?2CfAtF-Cln)SWjB8BXyAegL9@7omA!e z5K<~a1GgKtHQFQ>_;kTG#CCS1J`n305D}8db`+8?2kgqJ!c2KzI@ssOf3q#rD&3FM zW>Dpwn#%d%91RfUx}3j0g$5RvfOKdYE7Tfv1Q~dK5tJl9l4tdNTY_G$Qa>uaF)PhV z&s}j}abs@`wsX~G1&g8U9d?}3y9aJ1xHnK_eGjWP&?u;X`b_-zL)XgDX{KR{z(%2Z z#D)PcRZi^pc%{?cisAMrK*6>)80fWXeX0XJ>{g zFRxyK`R%-$hPp^t_DL7eVsM+X6fs)6xMSbW(EH7PM^lrHYR_R}F@xf`b5ga3yMD>u zfCBMkiE(3yN`AU&i9+ld8AEz}GiYtpLfC<}9xVj91TA*oSWwZ_G;1F5FhLcl8iI42 zNbnMkP_+&X2j2w5U^gqrKQc1Xh_!d;V?ZrTYBOm(uB*3dRdaM=5A)h6cApQ`4p+L% ztz=K$4j#%a<**toS*oBrmNPRjztI%$Vti-(#q3T8nwu0m{N2C^G2STb-^l8osVm$F z>Y(d^U*>O4xI6q6B>!d%c#faqho_O?DZjszXkE(dRQwI3Mfy>AGJX1nCn@#2-`NdH zF{#pdT!ZV=8C<1SeNyOtZ1L#y-mGD#*~F)adMvR}Y*GCYu8T1IKSZ@?JH-nOhN*K0ShD#3wq&23f=h zYH0~K3CDiZynOjG$PgQ448dV-gyQa?;K~t0iI)K9+eOnrhI0vm-M~<747w{{>YE^+ z^bhdHa@IZc+l5XAPaIEGiaSoVJ7)06S$T~%N_x|exbBwl5G^b2bKNMoC5yTHnZ-nv zM@Zmg9A&7%hLe`#UCg_NPvUISEVYu}u2)6Yaf2(9(Hpk`E%K2`Kp&hb5vC}yF9b3D zai!=26(OFWf<_YMp`ZqrDLjsU1UPQ|yCaDC0LOP@%IlB>#80Kzb{pA_$KzViOhtPL z&b=XFeNyk`)}*UZv)Sdm5?dd_IjB}CovlmlL%nyG5OtKokFabd(gj6D^m@2d6ShYN zmFq603v?{lYrPZq8ZF76R#}A5>Aj-?Fo92DH7aeW4y;8)3DN?X_@nX#4u^rtD=Vv5 z|1M^)n?MI$ZvjKD8xU3SLG=;pOK-cCfZl#$UYwu7*7d%{Bu$C}XqLyGJI3E&w|O zWqB=_CJFpO>)p9j1x_RW;%#t_44A>l_JA(}iAEO8atd-`+~ z!W|Qd)%vvSm7>+=siMbY?*L{mbDo_#`rf;Pg`bh%$iZRNf0rk8U5#tlghv4wly4r$ z(_a9mOiM1@YDW-=m;eY7q;W4UNX9UQlv&zKV$h?xl>oYEy*1VQDAan6ib``ib8oF3 zO)>ypWO$lQ&cI92E)A}*sUGigev~ASEvBwo`Qko0xuLAdue;fEZlyK{R#x%7+`RLR zQ3R^5&#o~N|E9{==FqJ2BjxTYgD=pnaTq#|VPS9m^Bc>Tc)kfOy~73}G))AVB)7-( z!PSmPi!;u<6(Nc42TIf`lur|) zb_Oy0!0SJr9Tg-JqsFNm0Q1Jd>X^{8R8tW;otQdL?;FxZRcSAD4+%!S`y2&ftQMQw&+ITXbk%4X0|wn3^YjdgkbTi^aNm^&1oXn zekBL|fvLzq&RlSbOfINbR5?i^QLLUTGg6N|T1JD6VMlD3EgUC4&U}G&Vjn@Td1Nx| z4UI02Vc2-Lvvf<}Yq2b@CFKN&FO-~#1%XTiXNifWknXW}`jEGLJZIgS(Zc}UQ!|}E z&Lm#zPst=J)flh0r0-%__wh;{+(D1ksiG+16j$q|;0z#V%ZP%c#EuJ}pBymgkug#V zLI^n8A=V(Na4C+D7N3AZ8cwV@Wkz8eIt(OOoAJd8+8hX@;n3S8Ee^_&k5LZ#Wr zrJPcyCK=CnH=U=N78lau##YA-yd^;5OgV}pUZ4W|Sf3ZaJ>sw#5ssmB+{$e%*7LI1 zq>5^VZR>jPu8lrvj3+^FwK>ZUJ{9rA;XYHTI(}S^pjoMX5+_;@SQ&@7IOr@xN*x7P zIPTYW{=(rEv+zV2kmMgF-vj(5u(QztM~yx4lt#GFWBTKj_%zSt1tlNU9TJJ1StM$p0iY3G>Yc+XF)@i7qq#2nJL~%3eGMDK9IN1%*`gr7MKP=Rj~h{;Ie+ z>v*&VIHnqjII1R2MFeF25pn@qB;y6@V(bv;I23WU`H4gik(g9KMmhC)V&q_T# z>?ti+A-qiHWf5yPv9baqRpu$l6e$GElDhbKNIb|AUGLZj_0E0GPmMOt!~z>N6ahvt z>Hvt$0XE?SviT2#ItmI3pmLA=4?&|>-<=246eup}ao$_ShphHLFo#WwH56Y!!%GC= z95rElegsKQxV|vN#JV|1P`~8o>22da>!RgwC8v|E#D2PVu~Kwb2lq2~UfbQ3+D>&M zIto#{2x5N3_QJva(?}IUh^3_^R+D576idAlvL>^~@ye+3$l#CVMB!271fbZ0ix`xs z=&o~xW>=ZgU( zDLl>6>fntG;$CbKXn(Xe+Y3sr{P$F;`63|5GkZR(Apeg=?NSZ0f$YzA0Yy?+A4ng7 zr(oZ^D>6hq<}D4NGf=lS|C~yDJKYRI+}Ie=|FQSx@ldbt|G36rDxno+E2mUsL`BI` zPPCySDl$`&R%_Xr=2WyOb;?qT#N0ulsf1*L~g3>v=t|>;CdSJL9zrhw|G?7}_Q511NLhz)t3y<^wwjo&eoy z5$MJkb9du9tS2Tiinm151f_s+pP)hYJ7e?g=tDBYa<=)P?hzb&-SBMp49bfLZG3z* z>;Sv(WTbcdzCm-6KaE3>j!hU8eM{A8-AzL{#e1S&?jIVrrTNR7dPh2MmRy9jkjUGV zzj=?^$DB~$teqgW^RA0dYvm4w4-tb1?$GC(!ApdO2sywjJbd`@$SLdf-dPAK?OLZO z%D;OHB>aU?Pk;~?v+&-9DcVX*Z=|hBt5c3HpE1AmuWi>6hE^Ws&Vh9Hr;gO)-s9B0 zl+9f?48+Fzw$HaYoT(HtniW?sJ^J$E7wD!v%l@Xb$H+~){+15~`~_~WH+EG%lP!yl zetR<-PF(6%*b1}tC8i zs~crCsYKhbnfVr7xZ3`_CANaXo;?r0-cRqe1DoB;suYOKZ8jvSem&sob2bpSn3-$U zcU=d%4j*>uy()Ko1PZQS4o0Q|^V6p#;q|Q`T(K>8?8ERU))MC6ko>klkDIxN8z3Q@ zY=#7QWP+g~*Zo^I>lI(`6f&8e5mBL4D``@kOw^4So;rndijxZ?+o6~hpY4JTg?6%_~K}Wq7CKUOgxh7t>lu8b8kL2^en6(V5Uck z?S2Yl1R5lTKg=7AS|9wfciZWGX-f-@q_ZWN-x?$N-)S)i@&TpRD7`m#>$v7dx?g{dq(mJg?ZGb(FTrMR z_F(+!x~;-v8`-1$g}f+kq0Ir$UCVP9dJ1_t z$G6TuN@cSN(W)KHa^aV)^bwt64l#SVA>Yqujq{nA`OumxlX-`(g)t4&&>9NK+urzg z&n%X6z0-@HWOiWd1DC7&c--u%F~oUVAFyj(`0UV!=Kg#1m*Lq-8X;Y-r6g+0)y2{Om)@~=Jl6W}QJO?9J*fNy@R z$bq?W21x$Lu5XR1@TI|c#;a_*+8bjreRCY&@4i- z_qNE2_9uL!utD^K!)a%#<_VEJ5})GwbXZE}$zP@SE5CB}%&Z@A8j5+uic(7jV2V&F z*EWV#>_EVpC%8^8ey*P(5_E`o+O{1OQv4`-XLW^p%ln6jm>@-Eac(Wdk=dJVXQOY< zC|i!k_^y1<@#7AEJ23o{z-N`Fv5YA2z52^!+riHr?J53Dcf++G*xX;|2_MYJD`7 zqo4J@vkg&`VD@(>^ZFn?;fm}h!Z2v{jv5pE!M;whfn}7=qwFhc{LVzroE=b1gHS9v z8G5Q}XuNiMso}{^!t1ZWWgcs*3sQ&7>l!pC23KfG>TS#Tl7|yxv|VT=GVQ8c?S{w$ z3yN<@*NaI(+xBy(b~hr9_+dmuM7q=P%gk=0)9v}|47@%NGvZ$oK4=G|JKhsQZK(IfUkxcsn!Wuz zPmK~Owyd|U-PYuKX^c6W9lpMwDJ0cFE_svOMzb$oUvX)CQ)YcRUl>2TB7RiPUuf+y za#tEjlG)ZmSp5#7!>X#85Isd)SctN2JWYSk)s$gJPOX|kfRP56u}O9HIvk`E@GR!o zmoRtQsuganjZ14rDG^6{dN*2z4KX6!a+8J0(wZ)5ge&=^(F0e^SWWVCO*Xk4%D{$O zW)DUtkW>`X`>*Zv$#_uTszST0<>l(G<~TU^wdNwuMXBaoslI5xBcS!FH3*4XPmbi8 zF2c9*#gCO0*i|hAVUj0faDX(@76VkOW0S8&rSd{Qu;_-dKEMLT*>mZ?DfRJn5va`f zpFbbk-11pEc)r*1_6SR_7TYmK>6ZlhV1kfK?fHt!a^Wt@fdzt^~ zhG#XEtU0Lnu&5 zUDQY478=g!uj;uW3Fq$|-m?n<8zT9+-yTk*Un;|ZAiWve3h+Gc-2OA-HSgamtydAx zKMbx;Vg=&rct1seua-~blUWk)GqGbXyNtt&u+4L@<8_K)h9h- zl9y+@MrXCSHQZ43_8|@JSsvJ`bAh6OC{-?FYh}5r9F*eF%*ID_Z!OLK?1dlf_;As5cDSEoijBY$3$RVl?|ViRB~t+Fy>mr%nF3W_MSs^EDE^)){xA z(%duV&CQ_)o4~M-z-F1Rds2pL6oT=EGR;P|7T}C{NP-}!Gk1gV5*iRbVtQsEC*1e^ zcZvIeUh^eC+l+IsthKto-m{|ykHzp>I1a4;(i#~qG_HezJB4^F;u-mL?``t&;wMb^ zxw5`3`9f7?q%FBQCe0dYfScBAFvAk311**?y*lOeB)X{1^vf6P2~jP9O=@4aAw!Sh z13)v-PVeUKK6#OB=UhxjOG`^)`N_&4UC-qs^@Y+dscU-X z2Zbk@pRjGcPY^L-U3{|k#&9i}d3*?Z$0nx_j zg4dpn%hX$;{Ut}!iqi{#ONfF0jCmDmZ@J;vKwJ43ks_;i^Ac#$PO7}vDfcHh@AZ%e zOWe0@3?m}uN12@9>QMr=Q6Y6!{K5T3=I#iI_<5mL@72VwpAC&S8)V$HJ(0cJ)_jpezm!2^%-4aVy{_A-%hj4h(zTJD z00qnBtw?_nTj*pdg6WuP-}(xQefmg+Cgulu6mgl~P}>ENM6eX`Ma=9^b?-$qpLa#( zsT@;dyPVfz!#giEEG~NuZxh=BK_6NMvWncOJf*9k(@j5Ke1DG{l(E4DNsa#Rp}WS_ zw2+X8h!jK;1k{r`y{3mCLVWA$th-$M0gifE)B@wTd1U*C^kXlQ?8-|d^lbPWxqD~mqoDo;3Lnau(9~r|r4YXkU6UUE{eXR^oMMa7TOv(*^p0Ie zLYRDJym^N5W^msA=1+uSM0p7Ku-VGXb(*yC=HE--mJ=zCW_)n?wW~HBg@3>DyHd^E zvsg|_uuoJ`8hp>jz86v5p|+ay-i3LkwJ_OQwb*a_fTodAvH`QOpTC&PWG6QknjsTJ&lQY{Zt1B zxp3TeC1KvY5kz|O8BR`dawgKNK@QQ!w|~04PY{i?g8-e-mxLg1Ys5tRLBCo) zqqN{clti{N{!}w!p(lsF>R+V@F65}kzP2hJOjH=nG4y)&mz?K$8cW>3ljZ-HEvS%( zIHyyDSh?Tj!uY3>CJh&jY`xR6n9%Qf zQurOby~e1&%utyF=k1a?8w5+Ys;J2RRs*esiw5J`fzv-rQHDa%5~| zAXV_@7xDu1?g(w_5CN|Xq;bdht+;oNU2%EErO0qEH{*&HP>vI?0t+6pa!127o30;a zPt5K!!N8rgf}nB-U&?*en{(my&kV3ErT;P>RYG75ej@}BUJ`}YBt)S=lXf~ z319Xg8sgfRw)6KCxGt5-9;BOtk&$H~$oxtuxHLU5JS3J-jD{KC*65_d-8F{DiHN>o z*T>IBr7CX&YBr<_o;lg3_o$PpAd_UeF0*3N$L;_5>o{<+7^2did(W&Lac&*K?{djzF8~ ze!*C=6PGDHqt7`8SF`~JS~Zxb!EW{PFPVqZ9Wsg`bXx{$-1s@HQtP_6JDU(ziP7BY z0C>_8`a}P20-43}k!d#qIQ2Jc<*Ih!A-)xXRFq=wbFLKdCKAX3KnW+8iXHl1Bn6(+ZAwmskMyB=7ifnog5< zmWntR-vE6&j;whXRDw`Ynkv}Ux+-;k7e^jQ!-G8VPLHB5=Zl}Z!Q@60E=zGeeu%3@ z5fU5Gp(DloTd6>w>O>hwN9QAf#{3e%xv|lvCzIH-x)6AMlb%8qPD$0&Q*r##v{Ji? zDclnWt5iPHRK%$(p3(w{_m+)!Zi+LjAdlbQaR_?+SicL2b|V3FlN*=swe7#p-jaI| zVaxu}UZ8xrtP?R>RLyA5#wZb<=u%fL7O4)&v6z$Z@D-R7~<@Ilsy?s>Oj~P;!&5n6js_x6mjL!=rMKRxiNct}xCyW02F8!Z% zPUaJJPOz->P5SKmgs1z!ZdQBRKjCgSzH|RBr-{w0o(~7?;fn$t-P|rh0@l zfE@|-F}6^$@-zXI(fgvJrL@2`Uj?5(`G__tFQFWpK)A$JivV_f6{QYxanfi^ksC2o z-Ps!&>v;dEP0fh=gAZjrMiAv;Tk2Z4DdFafV&M3>nQD+Wk*JM#cV|G6|9my(Hu2Sv zxvx|DTXuCJ3R}?bIDcXT;k}VN7;cHSuI2jVr-!)UajYxs{r!w2eNNA*U(QpDm}1O9 zG`#Y)HXd4hAw7PEqfdU4g;5)H(EC`FBdrUiv z!NWe9e76D!Sa2YdYdS_7{|Db!lxs7j^q@}-v~OH7wBe4HxyP;1J870VHLBjsubiMk z$#g#_EE2@R2($elQ^VEfc5{;EP)7fqn3{9PwPc65I)YmMj$RAel~+z|HYFW|_G-C4 zaDeM8jBk7|9ZD69zh57FmHn}$;BM{ilf+8dXm;vx;!QCBmST=Z{Q&m+d62+qA+#5P z%is5ZZ?=^S2t$b0z#U(sR~X4OeeoJ>)>>Sr=D6;s{(AT5A$OlOOjOu6lAzu^=sPYR z1>e)4x^9|IfO)cZoslNqh4De69Bnb2I)){bYeW-_M2TTx%EatZ&ddi#bJn(|kE<;} z`Q+D^u3B!@(Mp6JI3NYYYsTA>MV9_1e{UC@Y8~N-(nrki;L^l-2NB+2+|v9Jq-7H! z$JI@uSLjebSC5!r;I20$St7OR+)5~1G|2N@alQyphwWWJ9diD4RQ7rkXTWhZV-}Jd z;9_Ft=b&U}2}G})dYRV043A~20wH4`izE{*4u3B;Tn$qYTeJhq{eio^wQJVXWrI(> z{KKjbQR#GaK$W$j;j>UXL)<;WI6E(Zu=BpoM|QIxrCp9pz?ghL57)68XH1!s+qYlC z1OW^#2w>Qsv-1u+8y^kT6^YkyVNu)xgDg6JEQ6#?{Yd(L{J;Tyih+dvbeMtzXKhP8 z*vHK&gzWmHYF)>5oJ9-RO*ppUCYn(EDB6f_8}8*nhKl&B{}gIRTTns6^+h(V{8FK2 znJ9;4qvev^&LHV9zV5PM}C0qAnt!VtpwZ8HQ#(e9y~ z+HhlNmXG%*sg-iQIRT%C879;Q6%#B)M4doRF{p6N5i8NeZkG{fND6b&3dZVw*`RJ3Z@y!|Eyn?E#iPWJOMO&FTXM&bxzdp*5iU@TtqK2Q2K#Ii zfYhDKg&_;Bp(hVfp9r+U?%iiPMba}f?;C_`h63-t`mzx}k0sSA3n!)|FvGEG3A(6r zH9xA4C4!6MTX%pB*iBJ-!qT71Jq6AiG08fb-E~?9&d{e|ef~j7v8kKP9 zDc4EUmO&rAn0?v_V{Tz#a6|Wz!=|;jdyU5D>LIzsPg#J+9qtC$x1UWBsUiG(43rnS zlyAK;u^av^owihDI1TcYXC%dIPNi(>bW$&GA1G+OJA)$TQPm~NU$li{KFB}A5u$bn z!YuxY{wdy2(bnD83wM*H?BTAi)?Rc)5|y8yFDbrRL65)r@_r7ov`M2hNRQaj{iR)K z(veUF&~TqtS$QDsaKK(aJWlaZ9i!N>We(3^YM&=}=?ca-TKmkcw8X?)E9B&i);M8& zWiML#P@>0#W4}*P7LP9BuB#rUF6o*&IzWii4wP7pOuu?c&NQcT#jM|@Y@D1n0N)bv z`RmuC*3cYR-_Q`}ZpwFv^A35D1J}MAgUw->pHFi%rYYJOvKK2Vvhrsp*akGx-#lYvown=memHhub_qvAWNZQWxp&tIu7kxGo69(1LPA1z zr-1yfONdxnS{h{%v;Wkg#+w(`b|;}PKtngXI<&u` z?g~^q?^Ratj=ncFgC@q!U& zs+V?O5Y2CAfAno64}C9U!(Oho!@ox+$zk^F*(V(wKHh%O`0j#hBqduNf7b~kK_TOH z*u(=rQl6{0x*U~_N~F9N|q6s(El9ODa-__F1tIQNbKI&oqGI&F4ez#paBy(-=cS3|r_Kii2Hw%8x?PK#Ur|w!Ff6sviQxRfPfBy$g6p>P z*lvrM1N*q<^xhKgCmf}V&p`$*uWg7Ld?V|34$uoQH(o#EGq-2^ySN!%jTdr1Q)++Ydf_Gay`-Ir~L1G!3+}v zJH3ujB+x}xwjxSEkjM{M;}h90m;tPVR5!|n<4dP@AhKA*8=d?5>Zf+*ScxgM>D{cYKm6^H zkMMq{XLC5zabh?OmJ!un#r2UQ>Cdz~L|l5my*0kBjnAq@jx<$f`GwlOT^KPP`RXwz zfg*L@rlkJ|a4zh=onzu+Yy#4b0@EXq&11p6s^-n?5Ort8&`swHZoinzECdud3w?8x zEX_$L1dE7Z;Kubd4xXFZGVp$UlVPi+A1;~Ycm3+!@SkmB7CPWZC--(RSd04nX_}vO zL~4Jlht@BN=a1RNl(#*v?lexQp!bC`dOP3{#jdO#dwF3aCaADZ25&PP-Bsw|%At%O z!}sfCCO+ZXYDwD)4OpzF$6k+LT{&Hukj&5SizZrj0Cyc@mzPJLUf7v9z81Cj-Oznj+xccJHt$lhWUhMxxnV zmu{<)9nSU6*3s+1-4qmDlSEZiq&W*d*P+IZo*ZW1Vy1Kort(qh*CwuV8;Z=#S9z{j zm!XW-c%5J(%tU&vjWaLt;<`7rz7gOeyRgV^^VL*Gcjz3NVq`Duod-Nf_lQ*MWGyn?tOsW=PviBb*b21zqP@He)Y|zCue{g}~g?SZ~Asi}Y zNSDYsecFf8*l4B4pOE0}H{YUOp^$dllI~nVZTX_Zc(y3)yWAlgU|M4!_j(ACr|H@f z;vN+_!Fv4IHEYg0V?x5h3{noo?JHgFjD~~ZtonZr{lsPw1;}SqL|j}{L@FUbkBNy{ z1(=k91cmM}0kNM?E#};1v>(7hbbN?CcW|J95+-$QZ0&-k)D!EJc`nNRST_WG5lyD! zaXF%)-F1?EXlY*tPFFtL#hYuNRqaN;4I4Im)DiZJ%nHvCXQQIpIcSr!$6@XBEMV

l&_$FL)g}7AhVVYf~Z8qraiLpS<;r(!lFxcf8`wcO3GmLvdLvDxVCnt@XY$%#OBD6rTPX2o0QXQ z#Fc0Zf}90>KME0fheXe8pO`g@HfRln${fT5zq^a6{vf+jL>=wKOPmNBjB+dzBy6&^C0UWm6YEy1W`L8wh(t>NIqKai zV~}@4n+o@un8?^cBp<5bp6YN%p7+Aqp(IFzWHheBPXPJ{f5E&hJgk<>JrQsM4Nd6Q zuDyKk{1m$6cTi^(KXkPzzdVSVe8 zF#U0VgoPRIPO8NU23@?6(J=?r1R-PuQ&5l{m8u~%vb+{N2^`ltWj+u8jqhE!Ryb6j z-#&#Rn)=OJgpn8~V0qX-HU#x}_o@fOGp91jAJa3q2d@r|x1T@H(Vw^eYx%__d@#X@5 z`6vj@Z$5xXpIV5Rg=OytX)7U~!2sBB3?n7>2BGr6_7xVXhxVIO&&R|nB(9o>^#9>+ZpLxy($lJY{8Y$>dUi5Q*R2|aKiQxFOnlJ>@Yu11K(sq8sX6nDhji| z-y6{;Y#06Xoa z?FbpaNFAMb`^7UIJh<%z+Pfc*-tBx!XXGhffW@zyo0#@o2OkAp6((jjodiI5z|)*P z+J6}&#cOKrl-8_HZ>-`>@c-Y)Qz8&SV_M4LbquEP^H#}T7px9C3n*!)CeHJb@6BW(U<5yjL zqd-4nd~<^jZVV{BFjFvs;>Ri?=sRi+TyLGN*<4yG|AhSQ{zeO|$k1mR<95FpZRBGA zdaPEcMej*$c9Sy_u!|v8LR-w{HgIURDcu16F8XU(P36+=vM3|O#1yeub!8XN9QTm! zk>dxw{3No-j5K@jjeAFytTjcU2eql#aF=DCO@W@}O$4(|wUJ|GX7xc~?i~lK4eOxm zO;3fFiszU!>6v?YEpJ+eF$@GbJ7!o&=x{%renVoqw{PE$Q%YSTY8o1$r&10@tiVCY z&x@^w_^fQ-Vg=&E1y}k9b^%f~+}!hQ-3F6gRpTH>6G`tnzGaX4Uq`%F++_sn3D;2_iXy2XR+= zrd$IKa)gKtL5|RO4Bn6X0m3DIqKPTnXPLw0NPo(#(7&KuMRkk&$J>~1J=b*gti2d!*2 zfoFe|{OLGX2TZ}wDk?6H7$*|V%{!#T%@ZmF93NMR?+4zj8p$)9r3k!NwNPZeH-kx*xx0bMdvHK$X6 zyc>5n_dxu#Lr}a&N4Wxp_@YGQl&pspIIF}sH;IhwrJKj$c!%j zGeQ-N&BlakDm6CH-^pqgej*n(R5^z*^3sRt=2qHHwq%e>Y&{OUjb4;)<8M@CmJw>Y z{0a<+6qgcfk5*GB+E{Q2!D8gLDzmV&-m^q_^u);3aChspu_hKn{bRk?3tTu;-Iy>BASR6F>$56-5UT55c5ocju2@z|x@!!ckd8LliJ_o>6 zn--)>q7qU*!me%NYa+CXmM&rDR%dESkXZ*?JGFYfjbqAf+P1(1zZgNHUT49Pj|y;b2oQLO{@Jt?YI-;Sfu(I8wsFt&aj z_g-w#YalHeo|m5w$M{Wc{G$&~YkUz$N<#8&HXG*zQ7AKu;G}4+4NN$fKM+o$Wqs_^ zYAw_Edp3(m!I8RkkW;19+2%&Va9}GP8+VSE$m+DN`%DkhV)T)>hYuu~IwjmP};!`BC&2fue0{GLum>KXz(AS4^zv9ydXXj1ssmpT7n~ETG&apCs z#>96P&p;XKQyoh@&X08KX?~uQt1(ilw|3ymWWJmXU_=W5;FJHfiA z2%L{zA{2}hY@#e6*mMT;@XBaR%>kL4FK#s0(b5}k_O}?a-rOL(Zx$j_G*@NBLRnvzs8 zLBP1Ur*D_q_TVKdf#Gbc&!Ux(9;sg>)BhBWs2IC$THAkSaFd7{V-UB!p7Erw*50E} zYq-9&3hUZ>)6$JmLRJ}Tr?EbCohMQx@0rVJX_?Z;_ime6WdCplUTg1v&o}N(yRwZXhWa-k-c2q>E$o%IV9WK{m}Xh?sK~~ z)pqnNBPv^`0BEOQpk=O|W+m9ayg@~&3D;LRGKq~0|O``+E-00`UGl*N}4$*CMZq;RW zt5oL>`;zxt-moK;K(7rfEg|>aUPr&fvQifm6Gfx4HZ!4fy(X}B zUGrn}xo%W#d?11j0U0)HQ}3x*ONeKS&r`^~uvg2WgQ?gGtdrA@_6^VrQlDC$zpbw!u!=URY5eZsbB^i3jS!pwnsH&Zy4b8Hxr zmX;~!N=m~5n4?%`5~DuRHF2 zrrSuJv}Pdet9o+7cIM}+SHFigHKgY6Cq&GU;Aza#~tr@7tNf>&e&iY?)nIrD>!=fsYN+qwnv;d%g^Heq!qRy0yPs)XQK5 zN9vb$PN4InSXHN)XHPNH;u7&_F-yTQO)M*~;<1{SnkE^r?k8G+4W?(@&!&hH3Upcp zEEsD%X{9@$o*YRQ(>~va=E*{N<7ggmT{=h?VhdEtE>)f)wA;54=8VfyuchLwLGF7e{R zE85gouU>r;B0_qhwZFCWX`}-&`MdTV!>^t(B3;_l=`jC);oYS? zsvJMo(rd@9oTHw5{_NT9ub3~r?%yiMYPV^*4ZVM_K)T9tA%pv1y|L>xrcwN<%83Lw z=TN^iKgkk0%a3Y!Lv_l6#8O?2r4X|V@h|#SsXEjb34U|g4}Juf`l&5$KNB$7Z2l1{ z3&v9}3fp#xh(U7|QLK|9juZl{55MzsbzekPwFXd`oxr+U_A`hYhycZMj~`c7;{rt= z1Bn}VAIj_3ue)x)xS`vyLTas88e}WQ_9F1gcfIng2_wWK#qK_Y8^yP{BJURqD=RCv z|1(<|dEp=@S!vn}Sn6WdU%H$g(Q4X&nRs8(PjNMO%$ZrQZohD@&2l}~{qf^IXCF#y zYb&625a<3x!A!WfJxAb~v#?_BQk2o|7A;&T2m5s($YuofYKO;Gn`BSv>*h){nx5< z*-K2ZfYYce;)yj^B?J@rmFb*q$ULShk;D1mNl<*f-zArg_U)lVCh z#JF0e?j8_#cJQOj;!GlIZ6YDzyU`oj;~ucbC)m-6i1ZpFay<7%kZZn%_;79zXxkea z8URP>$s~R_VQk~@-%A`XYlrwQfqqy~QE}Q-XbOnPz8Y5`Df4b{7XM8u^>-P&qeqvO z!(AMidi*6tMgQaQCPchWU@7(!-9nzXCnxY0{4r_v^30Xf|ZQCx8#4A1dpc zax;Gi4Te?jf)Z{ z6$?Oa=D!kAX%RF-)$Es*gT!BIp@N87FUx|5J({pTAbd8`?qkuL<(BRlcu_|gfJy{534UEEE%1r^ysZ@1oOPsjIJ{rM063xh&KYd0yY z2_V|wvLNj<& z-EnlNdojT%m;gekWN#9{NMN?qpI)`yuv>T)?Jbtx{Q z-YFthp~>v=i$nwpHxZ(Ru|ZgvbIckad?1Lfb8QX;%D;b{2 zdgk(4Ii0=txeMmey8FRTOGrz@r;xSrLbE`S*hZFWVrxfge6?+5ltA>y6VwiwWEYjB zu4z(}HxO+ih-$~TJG0M>}^T5!bJG?;^oULje6~0Y>5c_nPi8aAJ(C zmT6wlDRO0VO-IKWD3{-v0tfUvaNzgD!bp;|x>Dy?zZV#SSu*o9tVEQMC9>6cd107Q zWG&rJdU^Xr#E-k;qd~Xf)$K{E)m))Q6AUVBM`ru0k(6WzBp_LdAFJQdS8;_2GD-y~ zTdzX1k7b}zMk=mAF{G2DgIDMWUcUYE3|T~zT)?^?q(0$36PFMn)wB^_6-c@}t-4m5nvyohOMb;ZFOZk?sdml9C`5dhBf3Ke zhIHqEu;2g9^-Y|+k<0#BePY!H<3xQ zM;J!pcc^WN7sxK9I8dfZ8KoQl0GayaK zJ_x7!12Jdbm25N6pS6`m8DAd{H+`6IsCC+So90>`M~qV72e_@>l;9A?sklqlhOHnz zt0)WAL~^jEq%Z0ms$6Op#M)WJwd@N~B}k&=pkV6k$&*o8I@JFD{y~;lRyek<&|2?l z0+RV}wyl{zfME;-d@%LqanuO(@zac9%+liz{P?|oDh4Rfp@;ePgklg054NZ6dZ10+ zufCq^EMht?Q-=GH%(u;k;L!5&a%h$q?YXSRlx-nb-7dkkHD!gib*mCVD91}|bpLKJ z=rDy_yhK+yN}VzyPUBO!NbFgsj@GO)Mp`0rakNgdO6uytaO+$K6fs5Y3Iynr&r&ms zFucToUHI+=IX$esVm3N2MS{O*;Dq!hhvy!bzk4H!5K5X!X)ydeSIGxesDy_Zzci!a zjt+5nVFn@6smpYlnA(_c8Ep}fA|T}=Q+{Y1V}km1Kkr0<655XJGvx(hL~;xE;sq?GFsEb8^+^1Q&^csEXMYjWQOt_j28Hh$M-A`9iOO(X8}E zCGVj8CArW!&*M?3mQ@b@5J`_CCH)uwzE||0^*HYytM0Byko3%{m#C5F^~?y%C0ZT) zRLJ<6VZWxJ_g)Tdc4bRpcv2VxxndJ}E)>!2;qP?NDCiC5bk*=-FzN z$c?ybjg7d`K5!1Ff58(^XF{Y3cdc>!CCD?LIPj05&ROBWj{yQ7bjZP_V+D8|#p!nk zYHnHwl1pf9YZ_`l1Zr7n(ES^4#0S#hj)@7#H8QhirJAWl$p9R8h1xiCSm~TEWREq0 zjkb@Z$R$?s`9p>Drs3alv`8F|rZLS$5n{`UZ-Un-C_Dx&!xzABi=GLVZqp$2rC_=n zNfJ%hoouOCTze<&Y`$%uisQX-X)7<=gM**4REI%NGQMoo4KwdP%rwUq!Y&u0`CFAW zR4*B6KO0DY-RF=+uUgw#BWlIGJJ3GRczXKk%MOvsIfz)%0IDb;0R3~(#&dxJxKu|a zY<#1eqN58|faSE>o%h06*LCZr=Ei2dgCy08tWXWs8~Wh6)11vSxcdPvT~R8G@u(xN znS|-xrXeumwAvX;1L)1o->jRJ{g!_oHu}^z;GxgmtY@H15ot~7(9qB)a7&mo>lT|P zm^}T2-5tm%P;LXm?g9g?kMhOiYXS>BaLlt_PW}0EX^)CJZ5k8e8#Di8yJ$NRlvSl- z#iOEnF(V=4%fepM=20?y|R|9mfYu@dKc?{f2*_}Q`Vb`0!{8cGVu`1fI26fHt}rFKtIyse7zN~%_^sUrMq6FgEIrKB z3_Qn)vTb%!b!TLHrMxqmJkN~JmNa0fy_Ka zs3w9s>BpaeiUEG(-o1M}Gy7-1_xFU8EC?U3chGx=qq+dGSo+>7Run_X$wXQv-krl8V)wndix5UzmYb#daOx% z)KOt-VLCmIXP&XKu>q01Nlf`csCLek!1!*vxr5GVvcs7d63IyCv0s!923SZM4H>PjQ7p8(;`GZlee45V)%y43o_~Lf zXskQ~d|jQ}bK3=&BKkK*!3Dh6ahRP^o;3_*yRO2s%Q;)jY4%-W7HqLPH`^fFNNT;o zSWkAH^{WuLZPV20jb}zEZA~@jB>lJ3>sF?CIv~_IZ9IfDvGMUwlC4W@Sbop;>$Hg` z$}|27tInuPD0)Fs?l&ELZR=J&7B=5=_)dF4gL4d1`-=N>v3I z@uq_o)vX5`vwBAh?adRgxbMH5`Uu6B{Se*eieP+Scg(5s?*t#87RDIi8*^hgsIyiS zv=q{?3`ZROYm?U3Lom@bk(?Ua8Uv#8xr&6kCDiNB8gJoT*U$$7>nI>S zZFV}?#7ycC9c`~LWv*xns?G>&mi)!fUxSc+Al-@rFagz{z#Ol(EnSk`UhxiE5`1#R zDa!JQh1a5IxQF|%btKs6RV5^3$8%&`m9|8$Em=v}wv5_@FouKpQp%7yR#2>>Z!Blv zM7~`7&nV+(qTmOzO6@&6g;2Qe3GRJ-N8vz{uN&E^i@aC-L=G9t*jeU*tBT~jUu`?l zi0eQZKx|13p^iWEP3j+}GW3-nSojY?2G zmu93s(wE{jP-7bKWl!oOuu1>g>%nlkG&S58v)qJcW6?z^7%v!JN3BK(wiUopAZk-S&E{=1u*8p-hxnW)1K3O9{RQwSFKbfsx+zoMBBB%ONg( z^FbNqv)Hj{(TIF4W|*-V2oPiA;vyjFAytH6@4;Ru`a>Cdj zPJlBp6G$>z`&gw#cei8dVIRmJ+aI&bs_o)OCDbWzPVpk^P2YRZP+xGkRx|J0+ z_gj2#t0nQ6Vzbpnz1C=uW?bSZpU_N7%Kk9WYcUOq5=md(O@+KOT34nU?p_To48%qP zbcr$bd74@+V?k!PF>K1})|k;8ofztL4r&_QNsaQRxe=TnIr*m1!$O-9s~JusIbK|& zMvU)Y+TT8;I%CYom7_H$)_H$Anl>Xlvc>>9&~}3a)KveOTJi8Yb&}7JAlXXK#KEQTBCG@P)d8u8g`AmlB92ERoxn$APKw z7OL)+oc6=yx|GfI+L}AG?>$w1T9_Y(p-mvFDG$ZFtNICAKrQ{a@HwZwp=LxY$t|a1 zcK2c0p^c@rb*4;R&T+M88?n}#9`9T~5WoM!t03+spoEz!0jJlK9IRb$(xhX8*)`qv7H!cK26I zpfaUnD8uDtbYm}-V`rXB!+?2;0{bBO|@_z)A**#4r7ymg0HJ`Eh7w`7ZC*oJ~{k`1J+u<+nTFjqDZ^RLyqdTtR3?oA zt*a{ocTGW~Ca4OAxUMwPFcJg?w`VAE?8BsbBYC!V8ajhz z5>UrEal+)O{^_NhFW)bEMfRfTqD3FSeLEKYS_nZLpumbLkJeOe;5f(WUoVSvm#M0% zTDN|^|0!rd6$+hU*J)^IDD!ZylKyE(-rK0fwywMGZ-SaysGGF5vV!sCCMEs48Ne{q z(WH|qNCELPu;_8@q^Aovx=jBG?6tgw6h}h`9}nc1Y%B~!Qm(gl7q8>Y*R-CEaspA> z|1Gbv?zk;?DbwWfL2)b;;_v$@Zy^AAi+rvAFH6556(hekn5TbIKxE4AmJYqUkkwr? zsiDDHyZ|)nP26RP|HX%iog!`#Mu%w;yr6FkyB2va2D!5Cr#0jY3NTtH$CF~1;O{-0rytJK$CR2H^ZST`{=3TO&-rVo zX<0UDfgt@i7qi*^>m^B)-mo8~=2wmD!3YXUnBj5(b{CMHAhC^N#uiOKWX>-3y`>#l zy5oEIE7|8=PdKC@=O>fK`Sa4~{Jn>O^vjd?=S}vZT-FX${5C|yM{8=5U|*q8&|c22 zq_TtSKbbrv%B`7*oBvTj@#!Pnkm+;g{xlG9^7y=Q6FxpF_4)HM4P_T#Y=*4QdjFyU zgE;;QdQ+&u{l9gs5{XNU`qxSO+p{U#G2gVQa4DTp=WRWy*3E;JmQda7`|6wibO`*% zLgJY#o;Z^<{I?I--ucxdpSW~kr4U+i&6=|` z5w*vT>(~7HJD>ke(Z2b4;n|~qo1~vM?2qq;Ydc~Aty16Kfwqz;B6P-t&N71S=Ec)! zM<+cUs%l~C?*F6Lspm?$)B7gZDNBXPobyvQxlcb5Dth*ax$I)R2%qG`u}Vhg%c^-L0M z*j#+|SI2=7jH4igq@tpepPnCzo|r-hgz~xzxv!^R(#T*A&=i0KS}<2 zO(t_rz~PRq*yE8-XXm}p@7@{2vO!-yzp~CIt7oggyX%VjD=LL9ec`WlaM&kybCJT% z+o>DRuC6^7OZcR9@J`>bXY;L&kPYQ2_ilysxqrDu8+%75HG6vD6s5yBjaGj)_Tt~{ zN>o2yqMSdu760tO?iF%!vb!+9j@WpJ5zFBLs(Or(bxZ9$JT`9xp=64con|=h&|Wom zbFQD?IHggYI6~YRG0%)#KDToTjAmcd-MfX2r?%o}2V*!)(DYAH*g=flN-an^xs}?| zasoy{Ah7-veD!duRhV*zYs=3b{T5j7$167&BT`wwLLdEA7*CAADy>_$;OuFK+wzO9 zzXeBaiO1tx^_HW4)r@4`Z$<6+^VOR-+ZW8@TXWH@C1cOy&wfBX*mlUwFoY3_fokpGWZDCuOx=7zqi9GhJ7<>HX~axOnONyC3X} z`aM9T67JsEh1m=lk&c>-+sEDw0W%gb9Vor3xG zm772Fw;l7`>0NRAky&{A>ecVtF=zf#Rao$=^M7I{vFZ{9?n!+kx!FZ&Bit}4C?u5n zd-or|3JqqUikIz)GCq3j*l*D@iLZ~Yy%!SV3)dj&Dh8eo5PJ=!Z_DPnbPWmgP$kdW z(=tbwZSsG_{j_B-zzHFuD9&ST>Y1u}8)p)Wd$w-df`2w^wEK2(Ih52Plg!nZhs4G0c_s-%*i|2qxNN9X$w}5lp73;KA z?5BoJzeEKQm#+frH$E-CIap+<($epwc=m6&i2rZS!V!CzexLI>zBoT_mUY7URWWla zD$d@y!%AGL;1)lj1-i|`MbDctHUC(= z<9zU9V*>-Ih&g=taG-{WQn-%TWZ*$PuD}w4Y1;>kif_k>68Gxa(Jy1sJ95bUs?In&p%LudzosNc7Hs!+nCo}mBp-J22pVy zvEjfx+v-Kzw}+p8!0LUg!C^9|PmI^2PUq>1o^PwMDJ`%5WnO+-@SnX9)AyyK?DMV7 zM8B_#7CWDlyZ`CtNDpGN?gB}cNh&M1@yuHd>hcRVH#eUZm<`-~7O~*KyT!pDOMaa^ z_G?>5y4`*)x%a^Hzjxc!y(s$g@5(y$&;cz0o&t0ow(Ju z*O!>&$FXIW!_uJ6>2XynuNmzK(NcX{Wclm&@949Rdw^GmDSvqLk^j<>-P*kO|K#0X ztIB#!UHn{L#cI!*+i~^weDl|z$qW8ly}H^oCyA(mwuDY@9)5n{mC)_e4toEwwX$pM zk5$N)yz~23Yg_GRuSWKF`+uIQtN-!5G<#+3nC|;;h8lC8|70fO#yHmMOi*Rv*w`vzTB(5e}kEP z`|rGcml7W9r4biw&JVVqx0jE-dly!dhH~Weeb?e*lAnFx+ZL_+|F&4&-}-p(`gLo= z82((fU-rm9KmPyUt>^Eb*<&mJ@ky-qqviACB&DZ4Px^jwWrfw>7;C;e+pT_?-QBV3 z!PfJ$i7G5I!ayyFd|*rD+_`g6rymsUjPd2jxz=#hwc)^7?v$%P-_`zgnxYR}IC1(Y zbNQ3xH?ztPeSZ7zXz9-vaZ~%xW=^|*%w*^Lw=2Eo%=Ain6r|c0v*OJ5ly~>qw&;G; zx4SH7|Nr;Y*Q=Q0qL&urP2?u3iqh3Gu(62&rYJkRd2@i@BAQO)|&5AAGOX{l_J^Ln|!$|rY8S%SJv$NXSLV=-}mvQ^!ZI) zjrQKF8TZ-vcR#urI*Bn|^$$^9xep6Lg~uAFg#7&cC!2s*0}2aAvDLqL+y$x^-sZ=3 z{r#-+s&;#IrOocr&^4K>t1B9(v)`ZHss6u8^jBp=jK+XWMmKh!a>Ki)j{-<&L$sn$uGRW zuzk^#TKd5WuGg=W?rZ#Z@gW^QI|Yr9T81H-)jv5&^Fn|Y7mFi{QJkEup1f_MT6*0r zUX6o~M|5!^vxNBBk&PL#u{IHGJQZ0bZ3c!A)4%nFiXvm z9rCwbck)?Pyx!QbrP?{r)s& zPV&uw!L6`|M>_7j7S?8&Ieksp$3^4W#9f-FWO>wK@cR{~jhwd4?%5NbOSun7CM1Xj z3c9BIG4MY5erl)SpuGzZxy7w|ZujLYZ}tdzj*N9*!HQ5Ro(FHu&tnw|rY1Fue0G9l z)6&JrZfa%*DtCTQo*}2C?W4MV&53rs#+c=vudtf#d0ND@+3Z7B*Yh>#*KJ{!);<)K z1<3ioyPnk=v~KRVCL=80HvPhpe#fo|9PUvrAoVu6$V-NM^6a3O4y&@VcjPIu2Rsp< z>+fft&I@Ig;(Wm7Js9?`)K*5o&NS&3RP5a#tGPyGy<|ibTZmFmQ}ZbrnO&o4qmz8f z0f>Ow#?I(H!*WUwM?Cv^A^*>@Vb{c1>uLu+>Ay)@J@I&1+xKB~QY&pa7uPApo`vnk zQx^-@g>^K}r%Vn@TYb5y+_f-i956o9GtgjcDtEFmT6ir}{Gf#5vA7HWJ4*fY=d`6y z%HNATw*KmKa&bECL06_Mx#W9qeHL;X-M04+qTS?9B|J)`z#j=canon(TMvR&^~^4_ zPib^2{r4w1ml1;NU)kQBzJKQCD^$1z&wOsN#_D;y>x5O_S9zDKKk4E)LXL{$=?2?< z=T(F}{6KgA495d%Hovx#D@=jMC-YXXobu&ptKauc+P|*iB0G0|ghT&^!v!1V@USM- zJ5%ww*V}AGSIoTP`IpJ8_r{;OoG(1bGo>_gretEYgX%aHEZ&m^jtJ5V7h4?rArkx5 zOt8P{$q467Q;Hj5lbb1DvIDZ)b7?f?q;f*o`<5m$?0i90o9+9VZNCXOcyRjh)Soj< z&7B&!vUIzTLVJKe^NLsqkEPQYXu`u8+6)h3>-kiB@MkNW;hQ}h0UVd$-dQ$6Ek>Sw+awN=P+&!21F05u;c;`y& zQQEJXFHbKg*sNaKgn^h+PNTO2Y}xNPzCCyydgA)!N3va^+}CMCSrtsq z<)28G)w)LiKI=L8>WieWuP@OSkAO`Z+F3Da!8D&0 zX&>z)C(Ji%)Aj{a*7*q^HJh+`NhLqUSwfZ&++G8pq+c~~VH*tw*RM=??#PqJ87jZL zL2=&Yjo%ynZ)biJ`Q)GL{qp_Gi}7DekKZbHz-3VA9<)?YH9O)pfUG4#io{4jlmY}OTa<{MyE zDRwH=P0sBwG6iwDhf#7m%7e=0pY#(Q)Q_bd(~!3~FBlaqZ}2ed%RN;UHHbQRZfVzF!#|3Y%uBWBli1A1C9;O6P5I=2Ao%asvI&8p4f z&4Ll~JnorvT3@v;A_TP>GNEQy3WPJswFD7yy=K-njMiC&qZa6A5{6SRJ{qZ86!gyo z^Ylho#~7E_BU_Q}ZA~^6XohmPaxjK-+sZv}Ulgalox{k$*u_xg^uo?%^2OwLdv4oI z=L(Fh^C{ctWsOCLx~RDpr#9!&A0C~Qj%&6T%6m%mU&S=;an~hEh6gVFhBRDv%P*GsFAL~t|gtH8SOc8dZf5~Z2k5o-RzTv&dD`+ zYCvjrLH&k5Et;##vIr7Gw) zmoV4P@Obw5#q-dI*5CJ4hgF}=1$Q(sm?<-vQO)W^x<`sH84g(5kU8@f3o@JzIhAu_ z<=ySThkgU+ZH2nn1%&b?^ZA-MESxkf?_LvScQf5|jHgtoMoeu5ZO{uj>${)fVds1< z)3UD(*LJmPc5%R$tRWi4f(t@E)(h5oyFA4&?1-HVKG{tTjh2pmfBVz(Z^^PDwIY70 zALt&be{|xgR5+*jG~R=&j#DnGDrLd$xK^P zeG>}4mDzCRrkpUWzjuJ8|5(ezI9tOnUzO%tHVX8g^F(cxT+jbeKDcA`bqOibXMee^ zR0w{@c~RWt>2?Kj7rD_qSS*BmU~Qf0n3gs4U_`3|)4AP) zNv$&W0u|R-$xjDUiKU2@JKb2e$k{+3hOMjIT_tpLGFJvamd;LMC&q+?N(8OY%_DlH zR7>j1xP9MD=4?#J;F!}Z&%_CN9J3IU2}9-!*{f!P+k$>EWzpR+VpKt5J$)Ak>{e4d zr7+@Fo+UHy)%N~#m2gtnevTVw)h#k+A2jRP#*D9ghblwwIjIpcS$h?;G0RvxV&q=da*?9y$lZ5vLECkFD(B67&-7+xr!BlE&gygIjXE-+yA;P#{Ljr5b9 zo9Px52h@F=Z!Oj-6OSloEQ%J>yz+c0%&l5{UD{Do&t@ zq-kJ6J9Y=O4YKdPj@Si;06s^AsrIAij~|oW0Kv_n8UA$duQ``X%u>Wa2KOz@@dR!!s5aYbzUjQ5Ol;!*7TJ*Tma= ztSpCLaj=wN)qbqXA_K8AWfA1P%X^zu@)QdTi@2T1b5S+f2fsH5{wKlu!olICC?B7* zvoo*r9bSl?86UrhhzQ?p0X_i%9^e~1_O3P#&s=zH?Ad-kE z^|L#1;=@EW?M>}uAlBBVHV%^ix8mZ5J^ks!{~PDehN|W+rdHar=0Hn(U`~<(f`WH{ zZ}z_*{bf^~|7*%GBq;pfP5^#8s5!7w7x`-230}tC`wEtQ?77 z*R(NrkQDg6$^YE`y_Gm0Q851{sGnMJco$Fu$y4Hd|4}K)Q)!X)GGt`ZWRGO;Yq%U) zLZ6NeH;ofs9b@pp)s>TvKEBDrlZab>jmg%#Xl*`xDtwT#%cA@RmOcd;qjR!10`s~z z`o=+4;cq?JzgcEoR<(%!&Gpe0*}Bs;aZ$SoV`A|&XU^QdlNKAbD+ztxhO3%&P1ta+ zS`jfj)((NHp!pk^`t!}F>a~$eDo;Ql+N(#%DNdYck$y$?uNSIffHfme;wTkv7i5)|{%` z=;1OKzVjqcPdc%W!av1*(SqmJ+AnnUR+>{+mzB^>;vxcrgAGyNH1!7?>`Ddw!cs`U zjOIs&PAkfiDlX|)(x z*aTPrnwxS42ABsN0whbPqk+=jA9}%JZ)D~A9Azef-4rdj1dM_N(G80wDh}7 zvoC&)Wc8Cidn&9c1>eMl)kPK`%L#fBM$GAv2ICFcgp{MQ=k2JH6A zDF&FJqRU0eSxKB1Op;Hvi2|ixQk>nkUg>!-NJjGPER++&E|~I2(d=6+51n{NvS!M1 za_y$i%|?+pLckDMs3+=n=G?2HrukQ^@W(^vhRIXIa7#-+3sPDSkUykM~9 z#=4(Bsrv6$F3rjDVt#ZK8r2#?a-$3YNcy|flWB!WUjMmi@{}~h;h^$%>ByNy?Cbeer3P$z&LL0^=hdmkq*NYx|9k}K(y1Zq0=$zLch`( zC#=sOI<4u>gVs~;m%B}>E=nh!CsK+eIXNkn6Qr&Pi>fzyiXA6vy{R$+ll9e-?K;UV z&lB5y7e~#^JZB(zjIX4FP8RZ_hc7<4MH3@> zz0*ULzrxq;$y099Zdf)#ez8%X5!A7>i*+z(COh~Qsq;!~KOH9Um5+8g3sK+!N$|Qy z_OAy1_r-=q1AJIkr&&b~Fr@cLHl#<$pEM~zZ|%9VlZfL)=6xwmYZKABDl11a5bq(S z_lN2mjG7~OJoQL78i0PBx}=EhdtvpBbWHSonpl-i80}=BPfh_?>%zjG_z5zS^;lJr zJVoL52mGyzHl&)iSJIdhVg6U4(-zRy*485G@Q0*|8(7TW5{r_+u8pH=>AE9SXGum$ z7F9ODk9?6Hs`}38lX2Fd!8ZkY^3X=bYh%zy5rzen*E{l0n%-aAgiiH zqpADiLQ+XqXyUKvN8zb3>0g*t5tr)YO#~Nc>zDlYi)rk8I%UO3-oO_m?-S`$h3tDp zg>U?!@#jew@iv7n^*;Boo;&CP=?;G)x2i!|acSw56Th$-jmdjc+!a$S+Q30?Z!(Y! zHXY8CCfF^sC1i%wNp&2hP;k6rVz5?u{0)~Z=^YhQDDa4kMNGPnMVAgAc4auEqisG;(^zrfcoq?DDF z=@-K(NuAUALrNCG;lEp?anIuR!)qkd9az;Z)eNPIv?b7>ts?0rqUVitx^`i)errx? zX(>DTMGDeKnyZ;uHIRu2Aeu7BVkPo$cUOPpzHQbP8|l6_!W-nake*sUXcmV~v3Fqq zcL8l)hN&qQZbp$CM!b9X>>s^&~la-#f%QH&E zg-|J|&eSPL%FD~s3vnBDopoFk=OAHO-O8jrpS0)5X`h>c&ste~W{@NOf>Gm#8+k7$zD3?OSCcnjBxSt1Fts0Dm5v#E zTSHt{M!=>40=StoAalrWYJ*eM54fi$eIuxWX^R@`oG@J*;etv9Fnjq<ImcCG=7^Z28bGe&3R$kRM|`Tp32yabvTZ7Gg6<#{om|8F+)pb? zNE>qu<-(%>U=ehsm0D1Uh|Df~lx-5&kp=In$z4mMkw|X@&HznUw36u3EG0oVhHrdY zmmVc8{OsGC>~qOdKlfSgaSAPoLebI9Q56vL?v8OoEhV#;v*XyYpCA8~x>vVRF6hBA znw^kYrDY=Q!Lm=8)K#V^!Y`+uWxTW&0b1(sy@p&Q@KMXxO`oPWM%Sxx>*QabX-{BQ z|DrUQo$xy~lXiy%#oVjQ^4e3xJJvOoRKw^)qfEtp{tK zF}Q3=-;b0iY{txYr#7T@CTHyT*}T)k-DrM4IEin@APVfds z5j&G7=8(PNFY>&3F_;)BG?8FC4x)Lfc4|+8OBXs{jNJY_5F_qtm*=qZ?d|DunyHRw zGR8wa=IFC^u0-vVPW(a%-A2Sr7JzrP#7FB)_G2~F)z$H1AM^rpyycnb5(q!sjaou| zorK5q4mM|92qFcOp$&bt@4tFaeq3?a!%vM>=GIijN$jk(8(fmY^#;iqO|CTr`iUeE zw8Ioq+TydB|5kevL8mmNc%HQ8fS!Us0zQ^>F=bz-j{4)S#RZmv=k5ODUJE_x{0=WH zZ^V!BF*Ed!6lNe~G;w?e+uHb*tgJ^+k(t0Ncl;Z^H!LW}h&kKXLY>d0dc3IicnGwj%hR_QJ|cGA#<75?$ACeDS)-$#;Kh|w;YW1_`QRg2IV&KMo|NIh zXT!+P75LRKYJ$yh%|Cc@o(hSA-9YL_V{=ixA8i7-e7Wi{nzLL(nj6j6QF-m7?y0js z;$(dK8g`j+o}DXzQRTa}_c%)6#tc|ODuUPGYS1FCPRJ`?V00r|#z{nL_}o~%44l8M+~aAH9{a8YWaWPEKBG0m-516c^Uhf(y-#1}z8SH?DCV>jTqdS` zXh_`NNNaVwce_h523hu7)2>YT2KoyT7Q=++P5Jzkwuh07wsUEd9e&hcjS-vC{2Nv7 z(~fId1R+$-+EBdLWG!udc)vba!eNA8-dU`X?|2j*%NNuRc6d}STVtN%>gwo0f4Haq z%4z|Gh?qk$FaXD)T#30a>Eq-D&#ev4VRvR%`qQtY7-rtH`P7{zEWcWKHyhWl+X$)O zywYntrgxY1sum<|dBuWg*=_4`d^F2j@jqIO#1Olt)74fDK?5T|^CdA0Rf4eV=H3Xm zt~2}~D|Y2)lD6k{b-C2q+jAe++dR50r`!piP^H}l6y|ngPVxY*zrSHV$K4da?jJB2 zC=@^P1ip}0Fm~YMf}>Xso(j1_9rYet7qx;I?T-t(=6$>_w%tqoV1}|i2(Bb7$&2s7 z9YTZI&Dp>A+uXvX9Wk{tGcz~CbvF*&de1yQ%*T~o&vjXw)GmDSWGhx(SuCjx9Tnu| z+Wo|KV};4@>|$~4hZ~AU6W`wQn|FPV1OUv0veGIc4y*048&{rP1@}bR^&Xv8cvWM6 zr#^_DmYQAZU0|Mo787B7AZU6eOLNc83xp|@(VHyOW9Qyofw(+g>wV^H!_e~i z>)>oGI_OT^-)GI|Dv6%hjoq!$0ITPKD$Myy4_iP#s)%rJOBucdDf97-4NI{Tnm?_1 zL&h{?;WQfpohwTPZM+{2`mzn^QD8~oZ0(-&@*zz5-FcwwQM&$vY{5o8v9{P}VC}J=-KPM%GPScdWxTVR71HbX%;BfI?yhgRl^oLG zxtj=k&FSfK4_g{xd3ql4qm#8^*e zb&6EU^YVdFA966G`!wo zc(;X(DS&FU3?x_&Qg$^BRT@BsSQ9&7QEes%J+=2NU#(|y)K+qDZ60QHzvX3DdAwTnYkTbld_ECPeg(HwIW=b%^lsYAt%45wO^3EV^*J;{`x`dj74B%hlt~fU zyztz#S|PCgrq?;bdMH|Dy_qb&7@O!a4~?1Xr^52p$4OW^>A(C+Y2g3Z>~NuTQz@VY zI}zW1w{^J{PKXf7Q+4OZ3_^Is^N7Nnqn0pW#q54-x_NROhx?EJn5?*p5p*a}i zAkmkEozCJax>Bq4<83j)&E5*>h%XVRmV($3AmZ#CPkkG_iB*bQkY2$oDL;iEn( z<#qs?3US7pmT$23$<}1}PWp@;T&sdMVyDh>pjb!6JS}!18+hBN$FjkgDryzxi4 zgGW+)P8~ijldDd9*t8j6pWAPs)#pdo_>UP1iwOhd~hjEDO97miUPu2M%P-b%N^akzG7E+>Km!;MmW{K)K1m~ zl*j&n&+_RP<_ZfL#|qmT0j~bdt1${|V6Q9Z6C{!LG`4oJ*2CdktXeipAcpMP5^HAM zA^%9!q6FNyGJ_Y!3AQffo?_jblz!NHk$ zkhwKnr;P&T9Dh(2xwk-VJpSrPIBy*WAUw>oUR!#YjDt8r0)d*=YmFMSH~6>V;Jpax z-Kn>IUy{IMWvkBtmj)J0@w_coN5Z2!hbd5uu=BzZ#YImgQ6ia*LVj{nNKqS&1?*Zw z@JQFC_Q49%RPbPGR~xRyweGpr77>l}JZlz?tl{K^G|C+2kIb%hR^XP@I%2poxe0owY?Q{jYi9ZWy z+&)zM1jP)!bx)H;IWehBw-Mbie}bsggAj2;U#jjLFlr}t-LA=6Pm8Q#Q>q<3?>b0m z=~gy(*Ui*JeMaB>SECl!X zaKrPT;osc2>eY#wfFBi2jAMjtun~Hw?M9a=in%bIT-dli@cY_KYYeSUD4(9zoVz1| zCw#)$6*mccytcG{5jA*~o_-3jW|xhT1{T;Zci-CRRz3JGx;GK5jok9y%{&*$|Fd8z zk>lhK)D+U-@^+PvriA$^iFXvrs#a}9^Qm7LA=iz0!l8pVmU<(tzboU+q>PVH5}2t~K9Wi1ekRAHwXOW#~W+ z&x(fr#nK=8-*cYiTj88E;rqA54pW&xZrP-+!ntZO?rqIh|GnCMY&JTj(bE}%xwG-{ zPQXFI^VVCp)~4G6?pX&<9dq_f|C-!1TVYXCzq3XiZvDJ9o`%*Fla#bRZVnO6a*0jI zzIq99&*m1=c^lIn<8k8!?4?1{qX+r7Py))yuEdz1j-tbRWEBOfW_>tx+ny5!ZTV@AVoB8XCm z(RvESCfcy?PSe#iAu!5%VC735Nv4`8fD2#J+%LOoe2(A#xn+Owi3B{k${9=EniGZ{#WfH4ylvTYkT8S*vAu@{UY>EdVR~b<|yL?W)Sv9zV z$IPIJTN-CrN^VUI@1oqGN-?5Y!~9Oud0Rh2X+`X} z=j*17zmMM!JqZnWT66ZIbJhQci1nNSc}m&b=tcj^fUj0WWgTz4OeY2PD7rd6v_4*J z!wLT}-0IZ4SH{|yBcQ~KMjX;ESQYnb1~nlYy$JzBojq0-mT$}#(|`XNGx|#wBmMYf z7*N`&7mxuJbkwAf0ZiJ}i#y}Kl5{~qL2_OMMweY6LxYyJxlY~Y78d@GW9~Hoq;;5aY%tjC*osnv=if<7 zI_qQ)ya3O-ps|H0I?cuez$_3BAbN70Npc3~rU6Dyqqs1WUj}MNm1%!-)5@ZC~4ChCqOD~ZFWJKEfB#=~L z2VkN%D{-bRj@}iDENBx&h}MT3+YUK?&#}_q%2>U2Z_7rG}Ryr44W`*9fkjR0^%h}Rw>&e8TCf}dZAg$C+y8Ddpc8Y4`^ zepUm%#OUgPqQm-k@p|jIVIs6kD^i44es`j7u`5NM2jGYM*3oR9@X5&o?@8l4Texu% z=B3VNh`7)&ky$o{an@~DxNanU`Xo4SSX+H`GSXZ5X7I|=Fgk?W?|2`+^c_E9&-4!@ znkNTK5t7%Mger3k-j-)BIZt?b2?-oo#z2Hc*sEOhQ&Xc(LJMZ~FME|@50n!&9Gu0M zBa?^goa^ujb?F2TBL>mE#5kXIDUd!RVYih~+%36${V(Y7Ppj4wE$uo#Y6sM(XBp5E zEA$OR0FGYX%!jJDD#N}TbalAQ%4W;(IDO4FB7m#S+~7Apcz0`xdqXgz9-zbANAO-p z_ZoOYApU@f$j%=F_x0C>$XjL2IB)Bi(T2qGBeQ1UkD$1-Vwv7)L(Esj4P`^;;PQ9s zIdfvwuCpOmOn=64H@RVeZ(c9dq_`EoJJDW06=XR~>D7?1;)hKTE7xAw27Ctpsdz^R z27$e5Vf=U~zsqW(%a6_mVx}Qr7>;H{9iUrnn-e1BwJ0*TwyWm5jqZ#1*=|Je$fZRM zxGY352RO$b47p5ka)cA2^!ja1i4^C6*Y`_2chQ*O;lHKNCpIZyeX^*Cwi|kzZ%+Ch zT309V_=tUb);YV)(_#RZf4qSed2*KTB_bQ_!u_>Rt zjcqo{lG?MYS{W+@8zBG-m76r=-_FcxKE-?&eYib-;Cugad7h386(`W*}*U)W7+`P=|62zUSMLa)$Tr;XIxBgufjy9b>KOf zyaKh46|=Mv3{={~t=GXDK&Y+C0r%S6fv%oQGR=*FRN>TDgsg}3F>v}CpL2foMR7RK z&uBlVLx%B}Tiabau}60*(KE$c;=HdfQJ-K}FC1n&4ay4NJ+Dqw3lvKiw0DXo>2nFiaIXz&;eXDvShbI$Y@i%Y3tbP^g**3W5hpiIy38NlyD&ES; z3Be|;`RvrwO6e#E(pQw%NX*Zo7HUxe{S}jMF!k2AICf0KzcnyH0%@qk3k^Pu9l>E3 z;hvZ~PuwQKwZmt}|8l~I2%cC^@iUc{Q=c6`EJn<2plFkTSPG)d5>#(xY&zbEgvl&S z)}?L+fIW*HuT*A63IWkkI!O-~0MpnGy{4BaI^jgFntEbdgn#|Bj&;Vasbf`USATdP z3aZLrKYr5IzQ(c6T*o!{qA{qx6aLfoWK<)-lAP;YTsVV0Z%d;_9xs3WA!Gr7Yq$n_ zu)A6;-XAXK>4{>Dzvt4?*Hk`eo?}N-89Y>dWM52lWFikbEp_6%Y^B1m=C{d)v5g29 z%nx{-ujEGf3+*k{>B4i6JGN_QQ!7|UUH4E{#f1=GjxZ`4dR)h~IF-Z^AhCz>VU)Cb zLB!58%=bP&)Ed!Y#{Ny1gT(~Wv<+kWe~gT&;O)ksc&ckV@0n{Mz1 z3>KKteq^eGpj^BRuW2XpN#DI`y{eJPod5~4->gj1iW+Q&c|055f_O>8Cb z?P=QOg-s`{Sy5%4aYH?lpGj(A+V;C-yLo>xml&1MD810AyWCb7S58I#yF9n*zjcNG z59Wb#wuJ@;#}}F4Vl7SYt0i>55qV+!rIMF@Z+ow!Lglf;S=Ujq4QYA%letsTQ=@v( z{f4mjS53@CWgX-)|Pt}r`~xsG`v6J?)?1SIh@sK z{xuu-@x294ktz}n*Q5!;J}5wooF3H@39JO$pwG$?}#=4qu505UK@z{Ib0J`9$@hYKMJl56Iqj4SAtDrhblp=A3h>2Gq9@A3kVsoK72xJr7?@qk3r1F0>wn3Q*8-SQV~30Ee5_`sz5gOO0I?DXVSNaJL?(yW2s~MB`yMy9e!f{ z5x?<+ayp1j3GdT;UltXYky*zgHOT>1Q=WXDf#d)7(O>xfhd{9O1g0kG#yj@A4|6F} z)X^dkh^bU-dwSJo^+O&HEe3Yv6NWEx!HW;{8=Ktkd})72On#)Wf`j=NN>d$fHS*z@ z#3!~~)eBwW?OgRuCMbo#MIkAsX083Qt`zlRD)B1u{Hun@z$bzz<-B>>zZ(kCVzZsQV+l?9^;Ih1R!%;}rW}gxa46IfDyvwlu zCo}o4O?GH7|2#$u&BU-?yv8P?x0#I>7}3%d*rSi^bpR>$KR#9{nS@cR5DS}0z?g`QKR_Ve8}-?-$$bC3I>e!k&tJYNC@3hGuJPdq)}h&5oG7=F>VZ6C zV}K%}{RP^aWh*i(iXG;=i~^zi$LnAXRY`hN(~odW68v_7R*Dhae!Cm9hnA#AU4e|@Z79}SY33&efh_wn{jPMIIdDDb#h1C?h?W1d4*ZV*h)W`l1_DtQ z&ve|XTwEwLKN%p$_Kqwi&f$S+sf z7MpdJSm>C103$OQgaM#MGj)@Zuz0$(H?0Tr>+&m$py9Q^v|&s)-}jQ)&yOkSIpQ4i zOuNgPY>I6_2NM|!t~!m7&9u&5&%ZB6_>Z!{Mu9?2fYs_({a((ff~*eXR5t>wKwWN3 ze^zjBGp!@;8k4S*rFN6=N2bRME*b)ER3S2)oU7rVlG1;yu^U2~lNt}4t?)Rd4?%E`1PCNBY;3Vwy zua(zh0Nv@Nc9ap1MKtuiNuK^OeS&3IiY@X3-X`F`<~ zEO40a12|p7AE=rd3Q+!q(<33LHQ>vwCcpGn3LY41IUjuGmyYpLr}3io+&}q|et`Y_ zO;bVO)Vufv5Z6F`jV z(#>0Yfc1`xG?H107ycUt*hP(jI`mYMH=&fzBJoXiBHB%im(8z{L0 z#(1p@UR9WLL7a1AzX?=z5y+*iEtyG)9qc9$b{}2oW+}S1nku!=nO(8o#2VSHA|>%4 zgvo#&=J%QmmTF+Qwa~i;CTxN0rs5sC9<5c(O01ZNd@7)tt3(v2sXRudb`#1Lvjd2( zYvO(HN%RWT`NypX|8s_RE{J?AoxJ+e~Tj57)B4N;Ae81`^4yc zbL^uRgHy--<8@Eu8EJ4!1?}f>yx=PF<&vpj#?b`Af%wk2_ta_)RmcUl2TQqNGoyvM zA47|1tO zT+^SoB5wq$8mDHZ2(CYv??}#yv~$KA$DPoDE1%-lLuT$>71zT471LU3<4NPb|+bKJYKfV`NVyxGIzDkhZGzP^K#PWbK+$fgS>$26bzyu#5k_F5Lcw?MUDpw#V zp8RbNsaokG^-*bKpP%~67~ud*E2ScO2hB{_X|V0p1l395Youxy!GyiG*d(ey8{ae? znA$;6#s7qIMA=pcj6;A(>gK1NRtU5^YFTWlz`XlQ$&U|;lYk2rq%R6$%gvI`7GKQ^ z@ytx?D#mz<4Y!{PQ_*amT}Td*)b%j+(4D2MT7AnW%U)*sp{*ALM(g((UBTjmzrgZ ztaP4a-03}L$+~*=1S@>M%~ZI6@n!W9!SkKnw7;>xYl{}-y4Copv}fKO&CLu=S-40c3ge)A^K#)x zg~(D0_k(NI0Z%uRnm$e5^D_JH?N~Lokvs9I~(;c|D``jmAf2x5y^D8>-Zd$(gXS9cd;mrp#An5x&U_;## zxWXp&xqX3K$9%d&h6-(yY27f8?R~WJ>G*M}o%{GHsRLsM&&|$CXm+LR>)CjB8=!M)OUk{-$*v^E{=X|r~W%OEXJlR zeGVJ9;=v&x@)C%YFviasuAKk=qa80Hz~wUIZfd4`z!cS7Z+3A@@#*>px_egIX3E{Z ze+I9fOli)K`1mGMYYV3t@;?(IF-4A(+G`2Zf?5xBN`Ct+8q+$2ZEb3wiL%~zzS zHI@km-QTO@0`E3WVjGanaVr)+zKl-VPu6Ug2J*@m7NCFjCR8`bQ}D<0|BNpZU>54w zm381P|q4G?w3hX^jgN2$1Eli(rVb-x7zy_Na*Sp|(W*2059S7nf?Az?&JbIU- z3N`ZP+qB~(W&xXt&~o)y%4?Wx1|Qg&sbDlvnMzUFL{N5o)T_P z8oz0O6T$bqVi%_yjcHqnQt|OJ%Px@opG_!4e3!(GRL`GZlQic_9#v~M@s_rp7;OX& zg`z3!O7qR6aD%o(=BafX@z@F{tfO=4r%#{U7JyJ@#xQ#DML9RbnYyEFqa;qm45%dK z2coOrGu}p>=s+^seZLl}NH=SjFJ=LlnSNuSc6bfoB#{0avl13PX*a z!x#)(o3YAhX*anDd`j!GGkvAB=P`39;mV3jgP0L&e;YBf^?CH5!3!_{0OU7dHoGZ;JXeFmYfb#_qVt|984H&haw+ZeScGJ&MCr@@W+AC9DMTz=^&H{KE@90sTgWhynhn>K;KC4jLY@cqf;__$ zz?9gllq+Rh$E1bj{jkRpiNzTv@e;c|r(zMf$LNgx7tF>zv6=j!(leWz^WCShDjt*6 zw*3aqa=hs=iZDr(?bFSc*|}I47v@!sZhG*vD*xO zD*pd?`|^0G*Y^K%v`i@-j!KF;C!ELlO zRRy@@&l}F~ecL}4N>it%}?9e{fm=x1*cL+!yoh*_hnAQ6P$q^pTUKSh|ZZn09uxK@t)Ul!#;y z2Ru2+t{RsD!}pR8B5i$iZ3D;rTfNp9+UvqWPBSSGRIMyE<`|xQ)ZR%L>>$N%4_>yJP08JP;%u;ZQ z(D*PtFe8mCZtfTSk*H2dH5r;J!`3{8q1U*JedMY4Xize{oVEvcyG7WglBXHI=!>$c z$2&a>;PDW&hB|8=YmI@A1=t$d2c^T`9`@}zHE;_0?}+$cIY-2p$SeF-dibten=D6f zIX{mTzFu`@+AU>gU%>XHS8)=joj<;t>WD9R@FSGt=cJ(>hXM%3-g;p}NfLk1jBtXc zvU2ehw`{wBVW$DX8s(g|C2bqYnq%>?O1j76`Nx4cdp`@xkrM`ugxwxp;nmA0{ei^2 z+eoD@KD$8VC^snzHwE<5e_(Iekc*Xd2BE`f@{Z-CnKJ0lHrbH$a4wV3_Tu8Bk6c=K z_)|@bni48>1$VPF6-G4w)IN20t@C9T9tgIfb(*fkBmqRnj--9@)Ogg|%~Mqd@-uok z_XOQrqO=(6us_y;upsYt3?+0VEDoi+x4@#rGw{#Abqwa7=4o|A#zyLK3=o=(l$1R+ zE0h7<0{Z%96yGTb>&i^tynZd4%uqyW0Ki1v;gLmE6a;XG77zI+3~mmg$sv~{&nrU9 zo)P~H(1a}LDx{>}um+f5AXYayZZvhnNy$P=w-TCk=UNgzYLD2+xY_Z8IhQfc^cqx2 zM2z+LdI5wh6UM3|iNIxaZ$LTb=~Wu}sYuW}>^hhB=r^K4Xa}p^U?r~}LyTeGgu1+F z9}l4&VW)Pqbsi@gq<2i^bk64~$0ksweX^4p%d-#KY^8zD}hSc zkr}5UZKB5M$OjKK+>#;@C67D+26NE+_%)x=4KFvSAZtDy64aBIg@7|C7cdqULRd5v zNn^0XP;l8I`ltaX6xCjG_?P&8)MLck1VqQnF(|w4iqsI|~owC*q&3b+T4N6}kvkQqMh!O0QMo=K}hbqC&&*{1wpnx&RjCD%hFGdbd^+ zPf&);Ly22=90rD7Iq?OPE0I{?sWL(W8%;$K)i05m{($p0r}dzc*!Hip5HtxkFAlq# zOiK=5XN6<4id#9H#Z?z2Hzy;zJef4JBt|6(y~`1Usp6&`Mg5ZS$@k}kDPCxpSqvn2 zHv8iHr5LH?*m%&`FkKlLBg78$EB!etX(qg5i7OB~Y+ zZ5Ny@ryFHEZA*=@ep^|N&JrwI*A8KAl_r>xo^TcxtkGo8N&8dVZ!|vdtrHfbUzkye z6zW7piXT0`l`lwl=ak`2mFHLa_U^mT*eG^1Ovn4zoNWf)0_d%i;{_)Ho{MYXIx8ew z+4hO^ql!AZWpEEgS%ZxBMTJm$^cZ8LBxurbPWCfPPgjsdHs3W5;oGYlz81r3pjGZq zO5b9DM&&ErlN%Vl2BiV%Bs5l+&)w=W=8Cad`D$yBOpMm&CP7cxWv3&cp8hyU^Ygss z=X08QyoAYka$l_J?ylt~#GUhZA67bX1cTajI)O03UZ}WpRrsjBS!yJ|&@KI69ZEmm z*rPuX2f-8?i8OJ5)EDX{2SG@C_yKOYf^zxpkG@9=Msf`sj1wC8F97pUx})Z5K|DDKI(8I-PC&qQNpq{dwnA~baVH&z`40%0 z>h{VqoX0>p$9q*4LOae1TkB?*uZHWWOO!$K-k(9mLAu_rA6nJ>ya>4Q#_b}Uva}KB z5WLjU-*v*&T}(d6imVCMc5&$UB-R|n3~(y5RKTZPqMQf#S?vm3V@nEPCm=RYPM)tT zq?n*qO~u>{Dr@B4T}R~`ftsh_NFH|PqJmqj4WCk;xN3?%^@bWSOM^2;;*JFz*(gzn zUFh&X%X!Z2Qb(|y@}nhRzK5!lNWGvt(}_-YpwBPMoMLo(`b-0G(7bVCrSWd{9l{7B zlrOxUsV+wtx3%c=S?p(=NvIXNW5~%3U(FTOfhDCom_o;PL70`T)ud7UgC;0N`IsEV z>H-W<3^5O4Mu5qoc#cZKB)!JMrno?5 z3Q5Wpa_$LW@H)G<0*!KiIaL8-C^{%A&$xg6unv4M@nQ2mv` zZHIjg>_YEx@IYkArGWSYY{GI4RN6xKl6|F6KY~tAv${;xx~`IHipk~bj6LP})%|lM zYTq{Y!8`s+X-Mc= z`+-m8m61n;eXJJ{4==_Bb=^?4gkpZfBbz}W$>l`ERXdD<#NnSS#jY3+X35X%{(DrO~>*yPE!{j#-uLBJ8z zOi)HH#hC43OI}TOyFJ!ROb=Nc7LS+Kn$;z@Duj89P3hk`7SSHOcM2ZAKi(9lufJ0{ z{hk~qPax4;_Od@EuSI^4Ak?W>eVlR$Dth;|`Jmo}+=qJ=%MDR$KAJ*>LrzG$x$D%L zgUHCR`BPo5bzc>T2`nn~YF@c>N-nb&iCNB8-o8ANv^@;4Mt6_9g5)K;o-%G6qYfLk z)_o4J;gcG!vc9NHX>yoQZaIPXAD5a)VwqQ!nFea;GtX=-3~ZRUlY|!zOuI2l`CWu6 zLi)4BRc=fuFb3ya!Z=imaUiSm@LKQ{cOjLstB$L5qCo? z7NGzck22grv3g8N;i#YTAlBqKRj)MRTMoB{zMT%$#ZfHOW{~p+RnH*fb)dOHcOyg| z%0_hYtcba9xAkLlLVP3rLd#VS4I7Tt2aR^0eiH)53kfZnTjA8>@Z>Yc52ooAvO^6s zPEl}<(MJZ0HO@DV2tA{1uNThgK6@jj*M_Amg**9{a&;`A!MI)FSiOK<>K4+3sxqY5 zpE-hBa+?|)-C%xn zl%U-271q|t%!p#pYeu*Y1;rY)M;at{542aA;qu4AD(8HfG)o;u-*LEdPn6XB{NiR# zK;s4eSci6i54CsbG4Ahd%XVmPi^5(h2)u__cJjs2^M5x!!-a=`eiq>0bn<7&+kGi~G zwT0cIXK5zs^ykkSb)ceep=g9c*nCkB@`ibVhkwB#{}z$TW@|g=C5%myRNu9Zf+%Um z#SpbbwQ3K{f^jys;`88^-_xbr5gAt2%?Ius!v-|3O0c!>W7#R#B!8PRwi?U(?q&b# zc1x-1t1Z{ci zm_uLlFCf-BHk$4<(BJoqPEU^H$x{dE?$U+pPj|(EUi2>+@Le4{w!4lo?R_@_Wa6oJ zPJ!aWmz(!962Ue4)!EW3Kg}^+n?8PM|NG95AjHcHX4WxK8TO6R7(7Oh-%Ne3$kG53{2!wP)jrB^ zY4)^oNR7Ba)Y{x~8+he4*Zuq+zX4Zui8=Pu-c^V8k{%?-R>uV7Z4zxnE6(Cnr$>Vd z%{2uJ@G6f@DD96czA(cM4i-(Z9fMtt=Bm8)AS z|Dm}FIta~O_2D-BY-Zv93T=dk=Z6ide!je$$qd$B&@_Bik3O_ojNd^!@KL+ESdOa+ z42zsMH!3b6gU!O{IVZ3?{C;>f#@76*yM6bMiS5WOY{ASm9r%*|-TQ?@8(ok8#kxyR z^Qm+_s}vMd4e%-u#i$HS(rMVUC#e&f>}O|m2KKmvOznI+B%##`2|d@2$cbzdey%H0 zYUs)&rLhBV$rxv^GxcX2=ab~#B>Erm@Bdv)4&gBA0cm!L5cr)P6Ig#E%Sm`ePvlLF zb#s^mcjhv&(SXksB$|EJ0LoSi$X}84NSv_cgMfZNZW#}zBp$DLo_|eU{*+-WMj*jb zRv~-UC~8NSqR*%N0DrN2EavW&NJXVovaMW#Glty_Lzk1mI;lC5pMSTpFUYK19hrcy ziZF)rKMTm0tK)^MbrZ@G$*Bg7rRFlpu5fjE_5H4SdqvxZt?zo~nI=M~QYFljT+!tD zipdy_;v>$gcwh0Gw?->WFXMvyu8Atkov$&?oj2#rn#bfboT?i~e0cu%F!;H&{|2#HHpIm>0Rpdgt7=SJRBA=C0aW_uw7PtcVZh z!>5AN&k;YhNsx-w%#H}}GRCnjZHn2xb{2E>`axKA%Ea`Fbi#Q?dV7dQf}!$)A4~by z59Np6cB@V^f=X-P!y9oCHT%$*fylyKJ!oBOD#5pqSeyCL17xg3jX)byH>Mhx+aiRkd>qWQsy4}?rpTf+j5>MTX&y}3DI^w4GIT+=r$E~@v7n9 zF0@l$|9;fBG<+Qsw+BT z=D3>FEtgV1s+bf+lp5f{J#E=yXLYkH4fA{~I8P^+n*_s3;mLDIz)OF)*jJ_i3VADg z9-Ar#Qjqd`u4q(*L7ubNvpm3%#z_w;qY%3wDigmK+}SHnC^~uO40MRW|5C^+j}mq_ zTU4qxeZ2)?)kUC#^NK?D!g_*I;E*{6dc}VU>}ecEk0;th?doP$h)P!~SvyM85LMICDr>nnK=e}}$yBH!h-=R{BX4})0ZQa#+O_8L2PGrB(@}t1! zn;;(4a~`wqva5Npbl#SDC9!%tfgV;6K{M^a?JGH@e_LB;aGLepwBDdvgJQ<=ZSZu- z14mDX)C-vxp?;_d@VgfV!V?%;DA}=j_f^zHc>aUIpgC~%SqE#rJ3+>+zsjMyl`HSB z;w#4G*ul-Ed59DQ31532ySCR{+r`)ZaG$Bs;Fq=%ApBq3X)vXYoQIxJb@)o`PNi2&G>PjC!ko`#6NRmvfy1GQQoMYL;6&Z`ai(>Q*8)cnH0C zpMTffst{kEWA35n`j)Z@VQvF2hmLDj6YN7OBci%2#0;GE@8fMBxoD7tFW|4%RXVM2l;l-I)A3oObT*=Q@_Lmc@6qcg_rrL{ zdy}pPgth74QO3p+99#nvDWM30d*}6K;@Qm_a?TKL~A<$J55 zm!?%o4vj#yW>z&r)nrM@?1qq1NAELG7$m-bvfz>BSlHG0imA?N-tCLU>NSqzx&WR%&ntZo;cGS+x@6U4(&$ROdxk3Ek!NLbYlUSY{z2=E ziI#*9hRpaCUuB9@dA&D2b<3ye?OdUUMF~?rw!+r7w+a#z%F`DsCBdLciZ6Iz(Wk-a zsA49Tf3L}FH3HofTuke;q5Hl%t4Vb=mMsbA&J*1Oc$U8mFolMS6ZQ$ez)Sq-N7Uv` zYOkPj^q^7h5^IY`jn>!j>$Y^!szj*Ndh6)h=|Wi!O8a()#EqA5fN|kz=gWgPu;E4M z+h3989rE}`G9bKPt}jW<=~teg-_)cLaUXOuvBfl2H)K+bG_>122tdUdwbm^2uCf_kN=@|kdB)N9n+i?#oy9_Y!EOQ?|TuM zD#C6Bj+l)Ai!8zWAThE_NqxI0SiVJ$;BaX*j_Se{z2@m_qc()>)Mki^E9!Ljm}YwU za!wI_KuD)E&HN@ppK*%0E!O!b1`%v!(>a7&?Cm$dte(g6Px^$;g-B;U7!jw(MOO@n z2~Qi$yfP2hJ9GS4$w+ORo>9Ki=)d%G$Hc>uZ?6h82J_XP#^5}y3KHJAo zXy@5lo%?uJyACrko(~nVVar)XzI$j>l^d~mjm@(`I7EKg_j=}$t{O8Plsah< zsDk&@bOt|3_I<1F++LH)I3*(OD=(!uc;r%0Oe?X&O7;BYNEnS3RstTK!PtoUW<5wd zK#vwsIgN6lmQFZ?vGR0a(o+egxAM#1DrI)?_qtzQM64aouS=Lro(RsTk=GvC?0Mmm z4v;-Q`495o+#68`1$MKY-bTi)PZ{%GhEg<0N#$jv>#Hn{pxv6cJ5AExkB|?o0+qD7 zFamS%Iq1rj~%)Eh6XKRb*Eh+D>*~zqQ-yn5Sud|=k zmR_VLl+eg3N)AevqPx7psPRZ86zO*-aQQ)6-cgO|AhPc zeWu`EjfGO4KKtje%p%U^XH0!=(qNKyh2|OLuwsO3SVnY8lWViTaNsB{SidB)d}e{FN(h?@<`zx~;7v zb1orp@B$e7!^>4S88Ue!F<`NVf@ZN_5219pBCwD5NbEF{E3!Rs>#TdxIV6MY9UC%w z$-O{_E_H>(T@Xt>HJ^fK2IQ^n;FRa#)tDnsCtSEcJdR8gPF(BH1rLxscyT(LI2c>` z^iTBSwEG!?BQ^}k2YJaj|1Sxi4*mQ>S6}JGP2)!Re?pt;le1RIu)u19TqRfTb=n5d zm~CDrif)Kp1Asv!Q`+f|!PSf2tliwV>b?y>Yp1?x0 zwEf)R&>{F96@qJJ@b!H4fP%h(*&5@|(uDVCyFvm-u4yjrg=vyH3q^l!K=Vh>uRqzS zoY}s2tK7{^eFe9F%vs!*RddO|_5inrqS6GrLIhA^wTnffK8%GOO=7N9hGvyR;M(o0tK3(AMAXHi6eHZ&l zY0e|~Ca4y`n4HBf&l-o<9`V#tmFQSi##d1gWcnBi)wK7dHhf z4!d`~yxv7x>n1H%CEmG!36|PAnT_jxefIIW34Yd zwfB4!qd*Q4NwK_n1?w4?VT9)%z+$XYQv^(iQdFp4YF@n-f^t;xt*;#b z3#VJz!(#MO>rz|Urw8Vf{XVAF3XUN_j>^cX_D!DiY*FAbdBuA)G z)I)UdSwiB-`>NYFlRR<$ie`$wM??=BRcaJM$01`fuSDsm39oD)DUE(c09TM_`SSc* z!dk{tW-X$6#Z^zbt8JGv(Wd0s7s>G%({Gn?hETa3Mm zLp{_%(hU1QwXCx+G|U7OwQqn$U; z)R^Yznw5kOrz((q^|vTM6mu`=UN}BBr#z;RwnHOLVVNQp+JT&7^I>ePJiXvmgOt2R zgrd#eGkNcy*=Q1gVJyFANTqMEan*JvYb|FALhtQlU(kf?YdfKnI$bRg=9tP1xOe?j z!8%x*TG6L>cPmil&wgezP3>84zYH!r9JiXHFa;p_ zx!%JZKbq|5Tqh?|B=m>=jGWxSywJ-lV$)BTZbbPmtdyh$JqUlP0K%FTIHusd^+>|! zaIX!o$i()Qg?fS>zbV+Rro=y0ikM7c=}sGG$eaBXIP8Q}HDEXH0GHPDm?b2K*8=5- zS&^vsJ}09aU_w0or84xQVg<8uG&k8LzXkvpXl|V3Qe8eXb*xhT^%&?_bQg*MVdh&T zEP9cG;ID0Z5+biCRrpz7a37{Po^NX%4+w+@X-}ngdu4#?dH~F#`gt!@t+(F}B8~-! zv5SKD({6;fABz^~Q7WOR%Ll;%qKWCQO{VwfqH5+t^D+`y*3C+J&yfz-Jk?8toV%G| zjuw%3(@xz*NU>1lxJidx6E!%kojulIKak-;yOv#ar(GlU}By2-euYvUn7sjf8$L3F*gkPn9t&L!|(^50$rLY5VjAlULT!!Z*j zd=G9t!>ES{X%?AXuEQD&*jxA*2rqKyvAp^Fo@i`njE)Rw`b@w3l^!fVxz3Tz<4fBC zs>YJ#U?X)~Zl&xUJH}1(XB-^cjU0Wy1Rk{>gb21+4Ovpe9{id#Fr%Y_2DXHzlndAQ@HsNA-@^(@PZP`ZX&xP^vCeVtvjAy*8KP*bX%2U zf`O7TlzlD4*M@4srQh}?l&j;MB!o&kkRMLz^Eny`-4S@jrEqvEKUGOnqp-h_*#enNw(gTd8Ibm&%;?{&q; zap&IIhfvL2h!bG5k!xeO6b*)$S6W~5iykO=XvjLOcl$b6?n64ii?e&)e*cZ)LJKMY zU$CI>AsmyxwPx8dC&L)g{klL$%q6LM8hoq{sO$eIbH2e*PNzaD)yC$osdA-(er3lm zv6^Mt`e@X-3xN_szpgDsYu7i`SRR-;OCUJc(UQAQ1L5eRdXlfS2+D1Kku<@~#8Bqz z%f|wdRB$nFs@{00#O8xsUo8d7=a6?D$qL#-*h_5NnDSGkhjj7C*xS&L5DUy9mu0mD4|uE9Q= zG(7I0Kl7S{!TaZn(Q*F2=rjas2iCszwG!|w(O5SiL@k$xjQTd{V{19e)#IN2Ed~Vx zCw5S9jMlRfWySYHjc&4wFQ?-Ngql-}B&(4}EspTcG6G6uhwZ_%YaJCK)FfzH%2_!= z+y)D+$XmeL8xX&u9bO!=ijgY$tz;2a*(V5mR3AfsxW~$NZL9VU=p;H zcq7KO#gkcS8^{f`h zOFn9TcYpaduxDCGy;E?SBg|Nf*^l03dsm2kO`}D=N94j48l4<2!$|`g0-)PcTlQ)c z9!XbhDeK8~`nB5>g`=~Z)geb|RirS<%+kdJ%<>}HV^JqjjGsBr6bgOqr*O0UlC?Vb zdeG^n>koAn%W0sKQ~HaG$i;FwZMQz9LKlN;tun{3kvSiMVHKeAu1W|kH>Z_Xg!)6js=AP#_`ydERmXF`1O< zQBpIVykcA3rnUHPyV-#djq)M|ilfY>oM0zUP@>cAfqD!2@W7tqfUJgd$o1==V#7zn zik;w~N@oaVm$>xNL@*hSd{{l}zKURZ75}1qzhgV6tQViz#FQg5Ld~b^ub|4q+4Z<0 zdwn$*V#+*LotR8hVr!j6i84o08-02nIJTX}21+m3-h08$ie3xL+0VVkBQFz#k7i2Nq!7xjD~JG?QD}bg*f(yyMCf{6NZ0A$XRzwq51uM zMm3hX`}h>H6k;9aDRDTgZZVUQsaGw1?kHbgeX?7WEBl8S$Ci6l!rcEtZ-2H4KRVfq zgQStQW$v%-w;G(=tlb;5{Y&N(0F?!Xh23j;iUR11&~^po+-iSAn=URyx_Yu?Y7 z4=(+QPc-so5P&5zXH1};c^)NNZBP`^V6 z8=Y~?;?XJz_GFckpzcd0feTe7R!$$xeGvxEDOXK3{dJx}GzjZ9|G?d)cvgGnpw>eS$RC_p5a1x$>K6)==t zqpSm%T4XD}oUtR}K>frvr{OZE^2H2>qq(>+$YX$y2*bjM14(dwzHneTglj=-j@!aU zH^~aKD40S$yve;kPHnVQHfUXDQ&5m}po=8dmg4spEv$_>J8gr=31lF=!FC2>7->F0 z^Hu`TL4+xqr~-`MbHHTg9?4hJsT2o@yeVbYjQ{DKS8>ha{d*R`rkMKN#D0;3?z}$V zRbZ5x98Zb4Uu&=Gzb>WtQn&uo8~@dZs9noIli~;{igsjf^5P~I#U_Dodf9zPy&mma z7FrS$6LW`E-7@z0s!Q(+ocpWC0fT?9WT=6`_EOT)`b7&>?+$O?*RLM))vrBIMWA0m zN(izw-*Fdr<1NtgwQl3Dj^kz-{--tU&kvVOGLF;+p03NW_@{4emhL&2n_Iqtv2pxA zN$soGxpXxH8Alo#8rm6Ph}`_&ZEhU;N}f8bvpc@|>y0~iSLm>uKY!1~+XuBG>}yY- zI&~^otM8X@)`@c&%fPU(&Z(*6yT1K54*VOWxScEd-ywjAOBsX;B`vKz|1f)Z^N#M^ zckq0~_(-KY?(^sBQqoTG!*-jR)&5cKw7z3>K;z7=4I$_?Jn>Xxe*5SEj}$)c!?3=- zK4Q+DhOd|;|Dc1vob27s1x^w%KkS!LW4muxapKE!3JGgUekGe3%m45w{+*B0&nXAp8qU5OS)I0HgLH%=kkC4 z^nZRh2Wzb)AQA|6m%n4&#fC0fmWVb4dK4bS1oFqm$Zw8s{(iX|$O18lO)n$L*PXV) zzJ`kb@Q){b(>Xe*5@F8=%y%=9S$#6{^xeNkn}20e{?aV;?p#hDG-sH+!?VBT>;L-B zCF6{u88s~}t?#t~K=-x#ki9hD-%H`ES3dZA#Q2*xzrCd$dAB&b|C@g{gx(em2&3rE zhmb0&aMSqz4p{!Jf18EUcPcH0kFRi z2HaWr%aF=<7*c+LvH5?vXXoqf0<7EKv6K(rGxG+JbMWl@H*em|Fb!fiZ~MQu;%mpS z;jbg!1Cfkue0=<`-|?Ftf4X%q?3W>h?-9VE2>ZUy<>k`?n-2Crh75p%40b0J%S}#B zHi!Lk+sp64KfTE&eOli4wMhR#VY6g=H-x}ctsU!E{^sSCLU%38t{NH}!&3NGlD~On zk4w*qEvKZWdK9ca@zVDHbDG&ViQXfgufdd#>;0aa?iGXi08lQt!9FQD`B207?2ns- z^iLuhdb>@kY+bZg&GCPoLd)vL4ocxki8UUX{K6e3FFbjJJi|pGvFm9%2Qb&&|8`H& zx)G`Xf$S@-uJ+$~{I`|Zb+{FA7#lj&ME;{8VCZEGmKK6cfTh)yEmVfq(Tm#-qjhnf zdz4G;HO$Z`%UbP#kV)MG2nFuvPVm6o^gEWtxb4FX2!tihmk@-O7EC=Al5Lb#e0X`YE1TB$R73+=G)FRSeDW?La(`q}Q!yl)%UJz-`{8-})s7%SrC@Ol{jDhF)TW1haaKIK0j*os7hWMI3zoyb2(ujA_qSht z&2Tj_6v3{arRKA{YR!7e^@XKEX5NJ)IBCEv?ESkU^vhzg^>aDAV3ZG`VKr9kp!`xL zr066P5^zJEa(6x&U&8Rw3ht2A-qJQyzw`J73EnCD2PRFG6h$Crsa6lTX=u1r;|8IJYf-V(Gv z`8M$xLodYtZ8GIxBa(QfaU-!Qnvq_pDoWqJlJejEim)kf^fSq)(Xc_fYz8U0L2pbt z%!}nRLGgvzkN4$--oIEY=o|77vfd5WB@4Qfa|z zff(NstFgs(yA?b86{1sJw_W#RoSpCF2>p?)rwl<=XSW1~vO-38Lqp+AuIK^lNRW2z zt+7(PAlL($`Ib^-X%`kS`-JStQ9uz+p**g|98jfnvY!zA3vxTDuyUOco5*5My3GFh zR6~(26NQ>gThif_I*C#fU9&5HXM0A4_=JJUOK~K*CRoasVzx|d1RH){pySLF6u5XZ zvI;iHVOAw!DymW;)!Wc2r0=H2>>a6U|4)(yQQd>#a+yUIVV~;hljX%@uXZ`WLJQa4 z{#ch#1)l58jHoEED3Xg^pP22Ic%DFK8Ee+>xdLCfZ1G$I5~?FMVM8<((VP_oz-M#u z(D~8%&Us_al0sL+5f6>iP0ebW3lsDVsW^1+%93E(@1C_`hCxfehdghZ3u}YVEc-B+ z?zpT)?-Y7u-GY_8QB~s zk_0_w-Bp6pCXEVd^EoGMyMSiFX=QX+uI;$CyuY8C>UqAUS8d_nHmP;gP!)LaV zAGz3@VElXh$&YcclZ4{>n$QKS%ZPh~9ZC@1eP3K`@-ZL5aabF@=Q0Vs#>?%Ikxfx_ zTD2sOa~3SYjILjZopE^fa!Kb!WbudtHpH;9UE4MP7`WD3%wrwSW0D6Tnt?N~ahL^S zD!?FIfU51(?IAO1;kR?k+G2#ch7Dy_>nB`_PS%~~EKA^PZmcsG@3m^WC}158gXVP) zB&ZnfEGNE2GCSubf^Ml7tFLb!mhfM5T`IXP81&gNa6K?w-*fC=cYXg`=^f7Vm1qap ziD3D=V%9%&iEzff>5|j{w0pBjATd1Gsw&7=_)W+g?KG>f&kPZ69O<@+nL<^Cz`&>p!z899uLnXw9PJX1vJOA-PEZGg_p1jYjs$ovMN45m~ z!GfD%c{fs6<1sRF?!Bj5{u`%N0^WYu&ZAts#1owsW;Y(m-A+sv8$|bE`WJ}4G1}#$ z6(6Tn7ZALDxbX}vQYwQ*fz&$OYsJ?D`)f~GNZ-_8s6${rI*Fod-r{rn=X?0`amX4yc$3 zp?dihO8~ASz^*Sco0LtyGeP6dE8y0HN%+qDhDVh-!(+6Q>s8&}dfD|&h=+kH8CJ1l zx62hkY$pw*YG#wP8nK~F_+u*09V%^`M78sy)=r}H%VRvX_cK!AH-wiSx$I$+hg`7l zrC{kYu+Lb^bJ)q|njtE76TkDnTX)VuKH@>8J7L#qclOP*UwZjVrW4}bUN7=)BNa#6 zcpUnMM=1Z@IDAOpU2QEWBwLHZ;~;h?Zy_2$&4hbHmZR~%7L?c=h^!+#twUnnWfJ9V zB>eO;=8RK1Ljb~g1?!KTUE>GRLrkr}ElagDONl>-p6uV)Mb36CO)rY`nQ z)Dob`O%+E1Am-qu$d;53?twGL_@%Ov)wLS(G_X0fz|1lpKHjtH*97jW*g<-Rwbq1D z$aC##8b-23BsXn5@`L?QOrJ-f>?y@S3*UI+nmzqE#9>%Ws znobY{DgG@#t#f7x&#O+iX;NXBu-|RcO5kO@wtJp+?qVN9Rpg5OR^ksMA8r8cwhXd&)N^=%u!lab9^~FVDE`hvIr9}k zBIIh&O<^Ss9~vZjkQWU1a1Ik*k{7 zz<(I{ABpuQ!sw85!sdlk4T>E^0`VYc)uB0*s1^ZCiK!o-bC*Vymr2m;s7)G31x-$j zSmc@#iLuyV%x zW)ny(sHgrOoe;V9{%uO+Sjsx#7(%vxL;E;rf15jaPcZK@G%PV*FFNlepzBtf<1 zlHgv$RDT!C55yy7p6z7Wl!tdK%}S_mU0C@Hd;oTc;&CAw7DWFM+Fq^^>g6GvZ>Ybm zCE~@sa{qUKH>9%EA!5A0zxG3@0IAMFU-pZWd8bkC=eQ-?s9M7ioSK?Ia~eS)EydBQ zPduoKSivgieqLP7m{_UvP^&oWV7IdF-h3-bnyO*wk4+lk8TwaiuNV2Z>=x`Pe*uzm zP8_aKQ_HMPvcBMmch4`#F1nS!Q{G>r9yHNV0b1STK9(^xi!3>$iYqK>;AkK#`;>1k zh9u_)DOd6f&;t9#sZ*xzhgENSN=enTXI(}e@7?)eFmGViiVYrW5;I(k5~X3m&(+TK zd1@F|C=|KH43{GEgY(vqN1dZ2dC@dmYa>nHiyiZA;;-H7uH>)Usord#a-1hVC+z2> z!pBeTKyXwd+8n7L0zdor`sO$$M9WeB*4bQ*c)-8*Hd)&OZ}>%631p-;xsA%n$DCtf z7tGaETIlJ)9r-?0QVvLjn~N(5(Xe*DrNx~p&>d^~E6(e+D@)7IP6WNuA)vk3*X2t$ zF7ZTmlyys~x*4ZP+TPYvJ_&WRo^k~7O(s~Z{A$yux%R$6KKW$O?W{+4p!Pw6Lf5A%Sf?DjBk~-103#4Lw-yh zgCZto*sgaUx1d!RLRrdAKJYUhUWr6UtwP6c z0}X6m*O@|JL>!l^JC1$)lbhga`p|1dRV>N`Z0u`u% zb4;xN)%8yXf-Cmgn(jFeMV->Zx`l0q%*K(G@t`q943izYC`k0>@H{S`9@t6|v#J}j z$J!TT@7i?S8-HUd{PraIq1g0ZY?}XoA-7@VFp1Z!|9Ju`y?%CzHJ(e#9QB7wcGPz8 zf3oMID9Ca=7K5pH#j;sVwd?P(5&hDuevwxW@kcx`W%PaV7hop*pu$pq^x>Ojm*gr?Bd#O-#Tt%nU`PER3b(%Epq!7jc#Wu)mmeFFkZCT3>_Ze zupVZ_@tKCVNb!Sq5SaPV5~G-kGSQrsPZHdq*}WFTG!~F-liw&?_(5vTz+rD;qd6yS zw7Wj38P(<2=ZFplz{Sh4+S-`UQS|EYvsn`Tp~EooA(X0{;K~rxikK~%>@ZW6?B!Zj z1XMEqOicux)jcm$8S{GgQJ$KrxzJhP085GTlJL*NlE+UPH{HGty((@+)Y=@Gw1BXYCUNyJLBp}+&lpKh#U5J_8mzTIa?oLGfdqqJqkj%0<-9+2%cPIhz? z-XF4Zx#uKNC4m=UkFgte;@DfgGYzWq9vCUh$@4<4v}=sReN~l}a5rC#uZQx|I0eJZX5`6A@&oZi-=!!&iqG-j`Bq<`iuY91_LMATuO1= zMs0M~V60e&DNl5*qi3`P03E!d5baR>kxnd_65|v-M!3%rTF`H87ngc$Ze$BCK*OlQWbkwoW+UoL4S%k4+-wU{MUzs)NRg-!7m!+xuc%BNdWR~l+_Y*zC5#2WJ+?$hLg$qbm^FVv zQ~47yxyN@y8Wl=k1}+q`*kAw%8ZkD*;s6YWOYZd8i1%#0TSlHaUJ-PQa)U2H1Lg7# zSN}v!&ha4`%iEiUjYl?^t88r<3p}i_(xmC(B|+!7+)liv$8!Nb)A9gqso;7-td3vSiji*(m(j1y|fpP}<2G{5*C zUHLyhoQygLD-@M*@$vCFHRyC?)6x7#FskwA-4*At7wvNgz5~m6biCKyIw?Kf{^fwx zpVzE@@f!c|w9-Vr1|V-leEQ_=h;22k+_>ZA8-IC)ui>I~?7+8u`_ColAN^OM9nC*q zrT5JbI_I$Ue<0%BmQOBz87ut5djbCxk-ZOqDFA2#YKF}oy5s*hp~zoZ)f9zZeMzjq z|6FhSSKs*GQUWko{q_>Vd;$O}y_-)H|K`1mfZAqg`@x#SHd6`zQLc*Ce9&5jmhTxp z-Z%pS*ttg1_bqH=A5ax+Q+}n-Rtcs7;0%5aEcn_d{ zXbXVT)Nn8B+t~ma$U6WV$1f?_!1PZsLfUT--qIF{^CH~4{+F+!41z+ zzK4c^IHxeM_IDZhUu@!rGG>NcE_V<94zs-xL~a0;pzknH08j~H1Jm}OI1s)Aq}-?I zSK|ABx{?2EIDi~#_`#yS>rRPx!ZX?W!otE?1ZAynhx_^UU>+WY0NVfJ%R0utOTmA$ zVt~@MXZ48#_Im_yi$B;<7U2FUev`ueDT#<5f0`+>t3yAIjor<8GST!-@|*XmSLZKu z!pu2|Lzjbp%56d1kPao15EmaPGHT2?wzQGlF9&rGG^|{aZOA&ZR8kzOGOH zN2&kn1Atm{fn!_Z{vAZCof|~Qi`w7Ay)oQiRMtu@s3q^XQu3`k3|OuiLx2VYkih`5 z8yX4Vzb4@B05ijr;F5 zv&^q(@I)OhZueW|mSvvW#f#>b!hcgz_lsSnq)dhx(0Il($*QVIR z!&MWBOGznlL%~8Tx_CKtVfO(tS8DbDGx<{7vu*Cmy;bSnv}+lo-Mt@Nz~ikDj8k3B zzF85z%J9UVQ`08b5t-$Nom^hdh6>|i43SbnW|2e@HKf8XJ~QKx{e?)5W^8IZVK>|mQAY=(LP`2JSk!+Hvwp4W`*MF>WoD(!NO4%zA+&A^W4x+m(h(~d)g5;IGM(3? z*&opOb5)$xE6Vyf1|(U6IWzp@!``?CL`G{uLdSwTJ@D&vf*hf$ENCIl68?3O! zbBH=(o>2)xP>FIaovWZb`&>HAV_`eB#{@1Plxdlhx^B9mk>jQ&F##BQ;f$ioh z%WEiW;6o)%iEq%QIM}*a|M+16IlDROv4nALFE@rCl6+VjHwj2Cvincb=5Vc>;IeL=ii?|@`bGi zk-_@STOj&G{!%?@mA(>J3_`uloPdlFxcR8(-7}C~8se0)Zd47jsWhCKhD)uf;1<3V zF3k+!mGjDwF9uh`vw~+|tR_4gbTc^)vy;?K@ZByw(y%1A)Ui?C}nF@g!PyB-^NYVPk{m=zqw|prfV% zx^uk$ei{6CcWD>jT1Dg7*!WF7Trhr_V!E><(FJSvsP9K=PdZ^`fU2i!553$LT=Q(d7m>OvD(Emlq#qaGx6h(4)=4RvHzaM|he`+1&p1(7h} zKjLE3+UcVh#iss&M7 zSZ~k9?P>r;E2x=*`8?A`vFe%Wf?a0Z(ev0BC@C>IO_@E{*%!psFJ4fOW*3vsp4od;TR z-`tEh+G-2L=eVSyWH^@>V@DhR;o~PKUMDxY4`%e?g##M;C(B)QcVI(<2w(X8{ZTOf+=R(|5%@Yg z0}@Dsz*o9Qj#L^}VT!Nl^0m%53N<;8_h#fx8tV83;<2 z+;6;e$q557KZoF;l}it_m}ycDVd3v{Jn;~cNZaXJ#Bb6yRV{s>urPG6ZiJ$RFbrVx%T<&dYuhdryrOXKFe$ZN(*H#N=s|ik&hEuuv8|jGcIpcuV07tCQ zHe+Tcnt=~`$^?%cYzUB^2qDePOqpW!LKgR%dO7SYnO5XnoL8%A4`wd;CCP><(mF8X z&O7wiv2UGvJf6Ue6KUTKtpb1~ot>%PT)faY`=ghHbSihMh#cN z7&P!+Ysd8{+{mtOE%29+alXRumy)1awHK(WC(SXqY*d}+ko%}$Ka|q(?c1Hx*aX*> z-9=ihB?mlk&+w0$DA=xQn`UNzv7~vbN`7^%C4)6(%7I5{jaVMoEba4&rs#R-9h{L)Y+sijcw_0w7jsVKcY zF0)+j)!zleVT6dsZeOAWTR^-S=s*uqyRgA=fn(So&M#d%#1fI>Loou=u-8eR~M(vPL#ZL!bCC(V%r^UEi)weGP zy7crl^zN+N%xocmK@L=1lR`|XN-~#W@d5{taz{fdxl#kGRkD$+0i{Nd*^{DH2Vgf< zpVG4FxMI5iSJgrteY`p%0E&oIGVJ`7!}+d>R8#$EzdQo%{@fz13ovs2>Iop zU$qBi*Xy-C@k41+nw^-}kFFcOtHkH*#5uejHXc<{$j3Zo5UV_JZ}+sUZ>h}0q^PA? z*4V)VC$}J>Hk@`ZEGsKB{dP#3KEy(x-EFSS1DEO;ofOegs)x&Ra}x!J>)D_l!R1Lv ziIPA;KT+b#xzY8;{|kn1A1W4q10AinGmp!6g~(iPZ7x?0UH%ZSP{=yKCc} z2v6CH&7X}klq3z09>UHL#~zTwm8L$*rolI^W8)|ttTi^S0!h(@t*{wnU8+v-09Ve+ zh?pCIovPG?<|omrX{$T3nDuxOzkO^>1Tlck6y5rcy% z3F8xL@S1Kx{@*{eOw?1dBA9x>s0z|I*mM5oH-&S9?sER0#j>y z6KjYtmSR{P0z7z}yF0!|WYOsLb4yg;J0To#Gw|cpH8;qw6-c)x=u+WOgYK;V4acS_V9^0AH@xR3+GI2p_ z=I1lFhsl`m>&$_q3J(X<5-K1&-$lw74`Quhf61#q>YN{jn%jZ)GQyTnMy)eU-GXWfZ6!F<3X({x>_`N0mWj~#%T;rMT&jI@pW z*{wHaw+hcK0i`N3r=@on5$?UE_v1B92ilX!b80Mr-&*oU9((1|t z4j{peMN&7))|5W8EizBX;#5z6WvBr5AEk$J=~P*+XQ`e-c5yR-GJBjQ(NLxB=C|rx zQTy7;7oi6QcOJ4|eb%ILOZa-FO%@R%jAz>aq&t8WF%JQac|Im3ejT&N-N<`Gf2Gnm z@{5Q+}qie@`KnTre8(X87R=rNllzE?LeK?F)9AarUg}!s;^AY3AaThNZ z5&u3>P$XuoLMQH#d(JDoM{^*|AQbOQA~mxTT^_mARgrtBFcPcmvfu1mMtF~UdqmE5 z4o7Ow-osyIqwGa*AijT%E93A33%#bAvSDlOTtR%iAjAOzEh*|xk@Kp`}v;rhgiu~eWDIEK5jppVLHy(_Ro||aHf50{H%d0+neK}xp=smZu>L|CV z{Xv$>Gr1o1Gmrn^IdEz>Ki8u7dPYK12y;7E!0eu=IH(nL%t`4x{-L1`!I_UgF_03{ z+{`Uao-l*-&9UVm$D8n$AF0p53gwZ_MKe$<3JDQF3q!X3FafG~S*IOSg$EhBPh8{i z8%|`ZQFut-;p`x-M!AQ*ETEW9eQCUvMQ_D)TsPJT@P;+Si^0dc3X65P^y4> z;FIvO+`V$WeY+gse;VRp_BDB3-P}Bf5zw*o&;IkTyR%W%HF?RT%yGu0!`J@cE|*>Z zoMP?$866!Bvx1Nis+dE+apfO-Y9yf<)>Fq4zCQ=}Xbx3h)7razfH}OH@?&}TmV5=^ zaS{A>nSJqa2{g*u(-SEoENoq}1jHZxxw-qh{9_p{r(ZJ?VLzyP$6sNUh7s$SeccI(FYRe{%$1_eH&vWtIjg z{nl%9w^Oz0siId7^2ci0+S-;fB`)9i=la32ko&wxq@j0z{pJzz$+A1?1#IHL@43c@#g8lIi%b8aclGdpD*LS&JyCb9EHAH> z>s4o_r>}S%?2+81P5;9|$_p=xu=)7;OXt&~MPo0V-pzskUxxbef++%AD|j!Z_UG@} zX-xWu+?I%lh%@Q?Z=2Zq*BM-g{%sqV{(nD#e;o!et6Ew&CcgdUZ%xnP=NEpYB_~gD ze*CKk{2w+z)Y6gXbF;Iy*RMyFR!b>_*N}fIXJ-7h`H*TKw)jn&-P2+E?tXT&e`)%k z0N)C~N4<5TIg!LzPbDUagKBAMxl4^2{%hCI%+ulf1n4*2qk97uz*&{8WOjBb*}-72 z(q!}DFC)-#>*7R-@~13!VoOMAz==+7m-}O*2#eyaL5VBDl?h^+s&Xdmrwo$mcXDOB zkQy7{EdNfI#BHpe7C87N;e<`BN%nR`UmZv@hgEx5{^tKM^#5AGr<(WvsuGHZ%zfx)( zDUyaRvg(wI*vuycbVv-NSs&Pd_4Ecpbg-zRy=#SW=A-2ECPw4?rFOe27wfOJR95y0 zZ#oVs?EyfVSLSq0v);-kD}Zai?vFm!SlO59g>mC!xoK@Jx2qB&Fk=8^#Dc6N5abgb zu?R0*xXRF7H+ujZW*33*b#b6N*Zwmrn0$2OFhIqUw?TQN9OMoGwR|P;ujw#95q+X= zCkT*n_+g|k0RVJ>8Z_Qb5{RhvBI#W3JMXJ>?wHk7<_n#pPg1rbeYlH!ccHY?)~N@rUt^_0p==ZBpNmGWO2`nDc4IvL9%D1ci=VJvQIm(CP9 zc0^tvs+v5E00IPoUUgzYJ?cgD5pFmU*cK=K=yM4BhkM1-nhIu?&7WcmVDlsV2{wqpKOoCi}vV}R##Wy zP4S`FY@Udw{fWm_I&%>>a&_8q9~{mjlaGJSVQoQJ-?R&G^_{PG*CZ z&BY7nqyEcp|KFYba^rzdLruWQmoXRm8vR@}IZybHNOM}*3~6H8#;vGIXC&W`i6q@R zQ(bm#8Gx~+NyvpLu)a++(zzuLM>bamjDyjdm_+oW?hIL7rAu~X+d0@Yy(WT1_m3?_ zIRotjQdHaqK1oHAN6P85;$D`niW)-MNz`anIeSN}J(J)Q^B8o=DS2=ebV{H~B8O>Rz=R3IzX2j=2J$dq^ z)1#+pckAfdQ_<&!rz9Cl0+I#!JXvAH5Y=y}y@X1~r$R#t_6>bo>kAeyoaTD6>Azgf zSk0ppzO53#GDa_EGz9sC*!QR4?QyF~1OoKRBMlF;xFchxV2<5NsrY+Dvmb>U)@n0* zHP7{4k7#I?=eU{uS)g-yBxk4SaYoyVQoZZ%y}&-vl(Cu)LEjWMhFin?1M(hqE><$Q z^}G%v3p&wIWqBWASMM3fh1oXYUNe+=HiKBhAx6{--PXrJN6OLzX#MSpnme0(6zL{t z02cU_Cf-A4s1c@v*rR8Y{vKx)Ns=k`#Olb2fHWbG1&v#=@E(bvwu3raC!Rd*r)|Kp z`9s-rBu*X9Axr`K0}=0Tj0o&>~whK)J<)T%bV!X;To9=ZaN<_>wPZ6|k z;2#ibnu1jPd*>yGwTt@3I~2>{$9f^dtZsMY3fYy}jb&v=>V5=Zw6@+kZHKX?37DMl zp9eEFoL_iFmCyZsNL!R8Bmv>p7>^(6B~&}-e@G;jQDMy=I8<&mhVd!$U(#ox?+PE#_ zQ$}wBgobZe=Pb|*y-820Vxc45A>6l*qqK<=&~DS*v^p++`dbb%n== z*SrMz_Eymzg#m44$hvFT>PiRO#x!hW_}+D_8aR^RiJnRQkZ1b#cGP#-`l-!2IN!YxigtN9a& zoAC~Bo02T|nC18Sf2^o91=Tl$4l9HDXp*Au!Z-6{+u&{vfPfXH$gO0d)dWqJ2et-1Kp9v3RH=G5c}{l1&Yw zY~^l$ijfG;b10YX{j|+oJL-4ORh96HjRnal4VpEW_cFnN)A}8Pnf01PknRLCDe~PDME{CK5C;Au&21i>zPVHr_>$jT@Z=SlL5RG;E)Q#O z9-aBvy*yl}WPGYDFu!Ep>|6zDhr~H|OyIb3>zAy+j13B|_e67NDBr+^<+W8qC1${R z(~O7Rpk+#Yn*C4RxuzGd9lTR^uH*zSRo%2!mLFWz6VfzNipyWlmuMik!-;D$NRB|mye6^sxvIsaOUWi+=Jzw}EcU z%0z4zcS0SvJEJ)_zM6_m`6sPkXk-ZI+0FCBDCuxo6#TAt4*B#(ax%GO+W-oY?K7Ls z-L0`rs^egs0V8*OkEpZjot@>ULgV-9!N;}j0iOjWG%PQ86fL_ShaU+ZUnsWg1*457 zukiw08sJYubA&fpW2TWA2Uvia^aCB=)8 zqnUEv$8W&kBMe=Ktv3=sa?Alc7SDm#$4V<&9@Mz>suB$U71jB7yFaR$_a_9JK2EG! zGTyAy;ghKqy#?W|A#HErCgn&(fP#5}p2AI$`xeV&JD>yQPj9}htZ7+RK;Wb*!3iP) z&p({X^AI8`k*d!SAC-JWp3PyivYI=-wRFr49<1qeT))#hy8I4xRw1^EvDFV1v zW7`Q|O#kv%!7b+UJy#CgnQ#6=U*Y3124+pdZsEo&$T`;1<=)X!r!TG|xJkKb8Nz-1Q}=?(P1QGs zmiw^~!Evz2xim$aH|wBvy#vf_KWd|D522(J6RZ5>1ym-#Qbap%Y+La6Xg0*xe$uuzrmB_qBRz0lEO;?adfU_T8*R}mLeA-r zyMRtuc)LJR=hG9WsUCB>4V;NNS$uRpB)ar8b~zgyyHuac{sai?iutP?Bg&JMfg|l~ z0d=*rD|$3ftj71)ksM$%DI;H^saGtS#vgl>f1Vr0KLlB|%57+(mIU+|_qiW=g^Pj# z3TBb%F+GlL`l6J8ucjRsQvWhv}fX5AMHEKF6tl|$A2l2KlXEZ^w9Os*j&TeS9*e1>F zGK|s_eXipFM-SHe{%iN^;&7|!w7{6|n9n<0d9qRbUo*b2~SZ@D86FsOMBe3KN=)k$`S=*y&xO0ORxKIN_|`vgxsgrwVz zm<5xE-ax`uv!=#tV)9>voq&UbQTz}^yE^%Bz%0VH1u`EB{8UqxEg*IA%wH{X?&ufc z#eubO6Ckl+y}IiNqNK?oKoB(zKs*%Sr43P=T6_u-En;6j&E@cWC4&KC%Vj=OZ&C|k z^VD(4*s3!Fp3K9*(n~MJ?e#krb>=F)z`IMuqhih+2J#}8ab_kNYw`+}uKn*nwM9MM zFHKakuROH^&d2tJs#Ga=i$_;kUbr{h2G=-moaGus^obRErq8IV{QK4Bda`K-d@(w( zUV}(XWUkFg2j<_$$1AnG+RR$$?zxR>3LuZ9w?%5u4j;FiX?8_@GGg_wJ{8g#eNS{Q zx3eIX2hHW>lb(Ump-cw+t0;Vx5=fK#dE`md`1LE#LZaON)a-~p6@cbGzT9c%C|qCg z#YEW752`L){Djy~9Vd1gY%C1-D;dL!ZI@^^C>1GGa_Ylq_J9Edua)-)f z)55|e@pc&Y`W&7ekJG_-+;_SyX!k1{xhfRp9*ToL{<8Je({N=OMr#_jL;`8 zjnx#NL8REaVBFhTI9-l`{1v-!@yW+^AQ(#ckF$KiH!;(YX*-dMN z^yX+EC7A}Ke1U6RnRDHgJ(1T{YYM0jW211FB0vRQB3n%>#k$5Pr@r0TL3~v4Y06mA^6tV?3qX6*Tb3G6lV!=J|}zi7$YQ99$&G?&P3%n#e{X zAK~sY@+zx+dTi>krn^wi%i6=prHeh!E&ptpQi{9-Nyuta;{A+am3y6&Eh~gMSmcU~ zHg}`?(A(|~HKvAHTu1mB2#N?O)l2-90eU34GeQXrtiwzrQnvUEiHn8&omjr?bex;l zev$HO?jA`!`pCk&@ywo<%3e5Tv3|{twEZX@aL&P(Qb^ljV2{RLW$`=QZoy@~&^mfY z{6o0wcx`Ed%t7*n?JYym)S;G33Eb2;y=0&?py$N|g8KpZk}vA;2>OkiYY)7$G+#Yd zwJm+bMSXWDTVEe>(5<7vSoj@8E-AP`BK+&= zz?E}p*4)T8*$UVIp_kcUevapTd`fw1VQRbumTGDqX^l6O4JL$iNYGJU;q4Vipe04Ki(qzPc&n()!x>iM1fc!K$6`Ww+wrii1y$eauiVVTYC8S)_^Iw#IeT$( z1#Cu6XLGS4so4d)kxd)j(;jmU&R!UMO>-YCI!DhN`BrY2cs-kmb@a_?nM!J|ipDZhXQcwkY4$5{1eq`zaKQ=(>1uR+J? z!V@=f`{R^Y}#e|szT~>Moo_D`U_~0+Fjh#D7_?o`3-DdXHM8Qwwep!$CYqp9P zaYE4#z!ttC?;g&H)va~MvOso?52A(ai5vCY3K%C;JUzOz%B3=D%6H2 znyF9!kxBO0{xcr>WtHMwZtFz)Z0`y$%g-|w0-Bpn>HwCTXGZKO<5Jss-(NY5=E_$7 z)9J$;)2ZUo2+IrdCsr*gZ%?-R7jRi69m}G}X)!#yd`!0`dAD{%2yvZ7!av^g=e94~ zAV1&rYDql4R|;e}L3|DOic2A6X5E&9@bLH>h zbHuU@{B!!JO74w2*z=;2K`HgY6QaHA4rF^Se&eV4U`U45PN~Q1D3$>v3d+_7nYB<{ zkEMz^U`u#)s4-P^b+E;@*443|vtX+8xY%7d28n*+$#?74)4)<_9ttD76utOzOWpt! z$>z0)HVJU3a~r&c_&bItPGg5DYJWdeDh3%_C)6>bB1V-}zNHu7oc@e`)1d&TZQ%+a z2YHtxIX~MH_e%!f|9OHu9@FS50o9#s<4>L~m~ph6PVZ})=`MBP>;%r~?o85(=bJK2 z2WqBn6yh3XvmLP8tIE+IaGlor(DyVY?CM=9`-C1nMl3a1S(Lz<0xhf6N|@;w~X4R1^{D7U8SiJLyO zSK~RvUDz)KlJCBAhMuc?i^sw}hkm2$pYy5VB25T{9?p#Mcqg!#FYtwDU4SBGyqJ19e?$wKKdvQedY z%Z|CYUTv44hF7Iu(v;9cUtUUNj+Wb=!D_lBE@;#Ttt~9rjx1sXKaPBQ;YPGvPrqH` zR;nL*ixkEHak4zeTE<8PO%Ab##NG@kHV(xMw_IbOWtHKVifo~xP4|nRWWn!WNOL`0 znIY6o-5n7b1^LUm*(aG~O7aB3og)E+J3VhNSiIndxt^j8vNmH{i?)5Hsf`Ivfh+kG z3O}p9%6jZGy*fRo@$}cCx~Fx07l!fmNHe)yU`*xW zqo=!z{r>sTR~tN-_fo^#kR1(y`LQ+=vC-;Tp-+G9&YJ%Lb1kM^)B1-tLM8Z)IPGXX zB5BFBgH9;km(+&b9RTs4H$q&S5U^l@Z*A~RfAU>=>lhNa@DW;Wb2c0SOhcbG3*-57 z-=WIMv$r-6u2Tuk^z&`6cYFU6FaNF!<_4^NPCF?Mp!z_*YgvwWY9oMt@VF zVsa`cGt-@ym$#@BR=Zq2uAP75xd8?DMNzjFjq>{u~X}9d|f4q+I zfz1)LO4Za>ORwHOR5e0~b|0EKH!?R^mf|NTE9(pW5N||zReH%rE-lYiu*qle5$Q-v z1il3_CZ&1(lx!>Qre(nnT1iG`T{UMvc6U0c$B&q~KIrJlR@6#!Qpj*&OyuUQzfo{#9M4d5hlu9tD#i<^-__p>4xUlT z#Jb-3siyDPZHNtq>8o;U8_CKqPw-oKe5)22sl9Ww`Qi4M2r*HF9MhW3X(XBYb2FsT zSJ&C(FCWs+?Pk_g9B483&{4 z|1}TtS6IXsO;xYSpPw)%)F9LF%g2DTcjY~PctP6GQOUkrHZrd$Se(u6FT2u5$^cKL zW*V}_d{Y*e`S^U1wrEwKeHF&J>A?;_qRdH@_sTuHg&wD^@9L;al*YAVM6WN&WeWLCNRQ2Zr8UQ{4vR21@;`{~ew3-_dx8<*A|hp4%vmZ@z-WLO+A}4nKuiSyTGL7&;5(K1)t3MlZ)02;uNEhT$lLPGNR6foQG}dUU^3Z_Vka zTeyLjvXRz+=d4xzF_0Lw#m7l5@&T&hb5()RWj0{WY~yx9A_Z?X=Sd#Ma3>hN$LCT2 zI8Tvlu8@Z&|5s|_pMX@}b-so(Zt6PQ!>4*NIk~mA-#kfG?YT35osG2vXIkyBml!%_ z1LgW@bHm-WE7lh0}qxKZg1{L(lY?|?UAWaS7Eq)+F) zb1R;Z{(LDk$EpG}hj)!^a`QWneAyL59iO2Qw8LbBx`Ac3YmG#jnCYq2&#C2jBL&Dt zrZtg$RCSPD;!=N}#`G>Tst8S0p_Sw7Tx@6jKu8yh-ur-#@eT2C{#CeVZ{Tjyv7vKO z4NqV%w=OJiy$srpQ-O|u0@%2_v-n_E}uf z`Ge7uC1i9u`>^Y`?gSe|1ik8M48`ToExO5g$9A;g61N~-<*kIDf!}yt@cb6wnsZ%N z)~;lDig+Vm1k|>^cIuWC6&&9ldq?xm+9a}BYP~~uX0xCy4EM9H#!;mkIuLIGZ7W8Xf6h)*maegiYF+D=hUIT}?sQFZ;SYaA<67?5TaqDIdHa^{vAVtL?6;p50qT#=pJi8P zh5o!aGK^Xs?hDA+9zf{WmogmZPoM%B?dAqAYw6Inwg;SyP~8h3t^^Tp;OCJjd93%y z@j;caR;E|r&VH#YL&ATDF`gz7+PLhvw3cr`s$e>W(2J*Q43=N`YG!wsW!r2?I@)dRSlIH4OGG9mzE`))pH?UyM4%wE<;+4x zMw81xcf#BWKvR?Ok0a%zcke7l>wKoZP#FQw1@Mui%CA`2uk`O9(jrbNkKZ7W){q2- zdBI)M+9a6hwfu*;diXmulP*8VuKmpRtoOo=aHxMve8>{wV;K8mli>3wBB;}2@EM)J zCRTRtW}Br2xBCQ55;-t82}^3C@||NW5r<7Q=wE9M`mxgSsqzefR`1n~XP-2j*E>e2vf4t&ti#AcJK`-x#hb9~o^v+gm^0L?+G;7i3DL&oa0LP>8#UUd>{8 ze_mwh(qm8QOXvs{<($cLZ|VfJ4IFUPif#kv(2IoP(W-2yDDil9HDIOVFviTxY>$)x zub*%qeul>uzErr3kGBBV^N6O3pFCK4;r4raD_@${^5|uqSA`T2kA8F!+=}mhIjH`l zr0?k_zuv2bHyp8tz2o=oLpcD7Li;47pXmsL-KKfYYH-3uzxS^)bh0vq*X^o&jn7OM z_dPf&I$%C;N`~Ldd2-(+LAzfgz}1U+ZtlI4+kDH7tE%7cbOkl^rT5r<{4kWiW>33u zMgFQnG!U*?8uUaoP9oAIzXJKX-v!_p9aTCtlK zhEn0|kKqfHov$bG!lx_D7CnQK++;i!Y3lWfvUWtyR|}m3wr0KpB9Die5KW25)vm#% zp`(c=OPEWHJLcw&_YRvda;YK$HnFe2fk-Y>5${7ToI2K{Uj*4e&M7w#7+;g=x>LO? zBeuHsmm@edmed-~x(k&JGgwDc#iE(Q)DuJ43XI9iZ%SAQ|1kyQaH~^R9mCoc%9N>I zEiYEB>+4O-C9f;eY`6Jw7rw3N!^23tCFNr;~YrDFtWFKndn5#(IwX=zu`enf~^iybs4&gk(b%m36UpMWOZPh_Cy2{ zA3?>W*&WxI%d$?y#%!@0=RQiy&%T^FQZ5X40d}>i$5IL^Y#qolT9Oiz^%pl7wjE*9 zrEziYd8B*n9Y~IC5V7rZ9I11Dr;XK-le2`lyI4~<%ub%#G3{;HQ80UKSCPWjKE#^a z4Rs&oaqKxc@)hvajgM~+-|w6~c)9+?!SDVlbHd8~D%$>^qT&)lH|7`RJQZx}E>+17 zibrn?%UcwpqS&mzt?U+3buTZRlNt&696jUPVRDz43rPrxl_zmRULpiybb#I@^B{<_-fd z7*1yGM1(P!(X^p6>*?Q=8bd_3I{iemgHp3~JcpBsj*fk$-+h&Cu+ z{k+DKW=Z5dlrDf3%B?$(93LxIZ3mQe26ad*^qdZmnU?OjC@qnEVDCaB;IY9zxNot# zT&*>z;8KTt?`^*!`*yEx^H`~Si?EE%pTbgYVXKXz_MeVydG)s|nP4wG?e39sZF%|R{kp@K7cva-wVZ5__OjftLZ<0b7;EmnL z3J4s&XsR{)_2#gywvdpfAFm?m-9@~FJ@)t5e6uJxq?@x(&N}El;<;$~%_dlTF@0%Gi8Tjw z#I7J$^LY^c`FBfBD1bJG1SxA}v4}t%DH3nM zQeTE7-;dHQmjkwo_0-mUy(65+SfiZu?P?C%NKF*5YC(2Qz@S4%4|cq~>w$1SeV~k_ zHDtQ}TtY{xA9U-CQMU-|t}24*4%RB}Z~@ zz)m>XpOR6TE}r2#m7_9y6K(wRBNC0Yjgi$7m4IACG`f{2ED;5x4~akqu6oa7?wrZ+_9yZ%tfu)A)L$RtK1_0 z*>^_=h^9yF`|h09;oTbAr^eObtsbgJ!xi8no{&rjXaPKVE=g12uhqe7*LNk6xnOQR ziDficL~C%R{fEwlRI>&^uQ}wEB^1)GVm6HRFEFTARP+zI!FBWjtM<)QIucMFBO89J z9eNUQ%a#x7em#YhubAD(^=bN=s$Eh5EnL@PDQ@P_3`HyKjy1Fb6+v z=%&VEw*q|yHo`5%?f{0a+&cMgLeL6O!1XnM+!SfFB*+iW4WfU$dkbJ1g} zE+xo9K9^DeybWV{db!+&wzcRYXK4=SJ6kJawQ(hST~@;~YH5ZWiK37JMYdSkSEC>9 zIEf0nPqk@$K7EE4^YES9j);1yY@eHq*=66&%9oiXN5=I`g@IQs*D(#oZ z2d9egkxkBg@{8eDNCvq%58FYvjVD10hH91)mU;}U+B1&+AkP~8LPQb^7g zMZG=xZ-mB;S9X3{{Qzv&6=4i|?qkPMg_z6b_4Qpqq@t>M;g^WB6k-7juo<%cS8M}m zPOTsw-3-@*%mw&BtVU=&2{+T)wXt z!^x$cw@QZ-Zk*HMg?IARY>=~0UNzjXur|G}i%I~@XaE-Z^g1L*D}pxP(E%ST6zu97 z^M2ITlG5tEllc8y{g=!FH|3h7x-H6WMHF8MM&B69@SFTu829<}$2Ze~8F5N-%a6kD zj8;b@Osq!C&dG%=h*@qbtIVgl+41H-@YF=Pj&LF*3uHSE;Y#)Hh}0XcEsdcOLR;TX zZ(!b<>VpO-4tSRnKBD%965MR<3?yx9eElaW`PplJdy2P+(r||6%T8is`58(uVTOM8 zgptMb%CdZVcRmVgLk7$Roi#XAv!G~=I6StVUIS{TsB`6PY8oT zoS@wBPyeFGXfCL7^INd`q|t#EJADlVwzeUu`RuU<4Q8CoCse~2T_>K}AGo42UmUpN zDC27L`XV<9xEVe2qO4bAH;LZE=Ep)?rP<&sA6`+CAHmXjh2QYyA3$?P0cx`DE%aGD zM&N-B`Qeu0iTn5}Cxd%^N`tEXGYKFO?S!E|kbm}z7NB$4i^Mo3qdO-}%e{u%fD~nb z#Bwr|KO&&q3{du-^}RM{TjiczPLZ9%#Vh3!wtp4d6(f}_>e8?~B^8u9KY;c&DXqIz)gt z2%!JMdUn*TIG(a4T3vu!5xpp)w&%LzNC!ZDSVmsn^8zw}3toVC9QDSlwpHX>Zfz>K zS;hroRhXRp!pDwrByZ)ey~r^tnJwOsn_d{Qa9{@o)y1;g@7@UpP<|Joe({UU9Vut13CdU8x4|_!z1bD(|Hr0cZzm)fcI_l+ZVT zf=40kf&C_qsVK7QLyeoIGj{eOdI>G6<fSv;FV^lh|U8zYQo# z*0a$Y-U~=EJ!>mcRR&!g2%6L=_Z#NxI$@YraW|YWf_hfo{W0Q!&i7+C8Xze6{j!*G zM4ivD=Kf~qL3^{SwIxJ6S*6lJ%7P358~~itk~lk9;yQ|0r{_i=KpZ&_kRw(}OOS&Q z^p9I;5Y;vb(MkH1t5?{EV>rk{_avl?1NNg!ZlLdiTezU1>QZ6arYy_dnMRXoU3sy{>LtIL*8985>~MP>V+1%16qjt=fK0lFdI z7sR^jBdYx76kRrK41Ww!q_OMigO7d3C5k=mM0H|YM^;4;on_S~q9pM=I)*-Uhaa(d-4S_M1Nc~Z@ZH*uL7k5Aarwcm z{+SS{4!89WjP`UM7{~BRwY+E~|8@D+il=M5kdrGBuhM5`A^}geIX6D`%?3 zxKUcM&MA17y5`mJ;>E52@e}W_8A+F)db|_se~WO;tmG!(!xg%?R^IpI1tO|O#m#;~ zHlWU3JKb}MSkpoE;i|%P+BNu`CRocBao(UvT+d~KH5bFvzRaAt=Xjl0TQYom?50R_ zzTOMD=t8`KP1n#}OTFP`N!ZV^+R49o|H$>Dga$25EZ_v7@}f$1R9yp34eR{(n*Xc? zz{S)ug%1++u@+$t3C@cD4}0$!)#SSEeJ@dT85CFw77!!Lf`AmI3er_9gcd?C0@Azm zk{~LeAYh}HpkN>gy@XB#6%^?qbO=ZwT*K_GW> z<+|sb*PQeJn+3)_KHoI7Bv#C`TJtMUi!vs~CKX+#j>t}BUT@_0 zT8vt<%7#QJvI0KFO8|)T6J)W&)VMRM?NtX%wkZ1oyOR0c@3Y{LWp^pkWyRBoD(hg6 zTCd8C+8<^V#H%gVT~-mal^gLo%c4>wo*VYGf$};}hke_~?^(<%27PK$B&+ia36!ALeX)C;nfPyQAp0Z}4Y{#KU?A#W-&N{XysHZrSv<=xYo%60?tVNUDbJ(y z0RKqu4soh407|6t$sgv=XpRDLU~bKZgTqG6t6Ud`FUqeKo~!h%cB)AD%q_|ND3aXl zHg!ABePKP3Mh6mfg^zrvYIaRA-g)o4JFez%S9V^EcvE6^%ZA_BNKPVho^KxdykJIE zV#fx7h)~WW@7BwjL~8dvs=%ign{!i!-g*V@EU7}}G&`V^uT&hK84u$;?14O0WgOD8 zj6KRusdTMO;Q5wBOo9$f0@+`9z5x?K+cpUkpE^;L>GPiJH;>`6i#^xMee<{j7^1Bv zn|(`tA!D_EWyj;s&RC=`j@Qh+7b!?|^T6n5h+V+gnMSyQG4Gi);ArB?+QEb%0jS|( z<Gwal;fN~jp7U@ag{~n^-OjniRROl9F=vF^9wdK z!r-C3Lfwga&fP%KoyN$Gk;UdP5O|zDPw4OKa6ry>u)LxpQ%&w`sgE2fy8E`Jv28BEU3stbDJFL2#bGD0$eVlbfSL-FwpsgZi6}FNol!Trwaw~Ok zTcd2bh=83KW43!rlOYcrD-2yC+?DI|J?wFwKR^GQqTd&3@M?E0!D{uQ|4Y>!-X#;m zLcRCAWSf0p&KpK(Pf`SHxw!-ZwRFR7M@~P^{FD$~fs&z(1@2gtSSIbX14f-QCzj~BJkPUA#}a=zZfoVq=i%e-tU zB4JW(M1RXeuV!j#h{K%ET;F*-?|7Q>G&gbd5O6GxHDo~t#3{bs=tcN7U^u8mg$I#J ztn61oV5qxE$qtH6W2qF|AH>Zx@Cn%zE&- zs;!gC9-&P`d1lcxj}F$<^ivy5RNfqn={PoosdT_LT01t!9T6-gmOfR9G#OaysvTWbd)y~9k=-1Or(k9pfY=n# z@I$iZ+!dPb5l%~^hP$>2&d()Fd#xJ{oVCe;L{L?=fSKD;PholSbaJg*B&?!{<7G#> zoD9qkN-bM&84c!w-_c{5Tx`x7t4pf7+e-&+NtjlD;WQ8!nTUWBIwf45hA=c}pt%aK zWG5DLGhkoQw7MP+KL#|fuX&`7`XycvKd#x1W8N%uqwa`JrwyPg!>x^k z%TduBb(rP6#f1F~>UUHAQn3wvV)fS|I7NxBBX+r zPVRf(z|34Q>~~bXP!%>KhA-ssP_n*%vUzE!AvWA*wuQL$F-w_qYPia6DSU)~lb}Cy zv*Z50ZwArvm;G;Y9#59AnZeGY4YN29==Yxt1ry8Fo0<~lBvxT|{G(U8r2PXywC_ff zP!$W%53zIRL{KT3IVbbi-s(3FjR%EHQobA`=`GLiO9OpwofR&Gm=hA_52soaNK5R= zM${!V>)0mt?$|UukBf1!`1Ljvm2ERCv32lQH8dM{fbVDMCK?dXVeXw8<{9V@Q*gv2ApAQX0 z30{*=dgR}Uw09*o{u^a#|53?x)tmTLda93%h5wkr1s7U{{yc#jsgxL>A5JQM#WV zS}0&uLq6yMzOQ)eFJK?@D2}ei_=0mEa#gmH!;hM_4_A0P2#r*g1Bv3kl>^t6_VSJV zZgl5d77|Grp&2`S7`yUvXhk2vtOv`x4fjRyjNscw%7uTuj5-xm;YsY}n{eEVA9}1l z#{c~5ln>C0^S_`v6#$@zt{7UwP@vD>rL0`#+yTZ$?SRkx&l~3ddiIqSN9pLOB>)&I z(I1kkL$$j9tqvw$=Ru$i3g86&0*>ufjPW0T2f#x9p8~>uQQ3@*jEtNv^m~pPInB1+ z+)GEnzdqBT#edSlLhHb|y?BRz>l26&;Qa-M>Hp-34Nr#G`J;C;%e42>b@8t?Ewem_ z>Th7!?`aqQ>(&FvNMB?>2HnVl%h=!kzrOwdnJe+2G$Z2-urnTW{CgwFzuwY+`>0I+ z(;-%wx3$jUzxj_D>g`8?W+slmO{>yBmxM%m0VVcltg_Xg(ii{U+S>8{?NtSR0dBV| zI}Q}t)YE&iHvi`eN1^Bb0Rzjo1$p=Xy>H}UDUeqK+E}(Q2(ue{sJ)!e{%t2b<$I2P zgEar&5Do1>|EUCOZydUM{_icWK(+b@|KeuEp3(&WwxzyF?nAEp@9gLYe=iy&ZcqJf z|8@tc>kxPH=Ue0c?N|R=z5n)+dH`rE29YLUi(jr+|9jNJY+J4`AQ0%viC8mTUER+~ z6U%?kB7M^YS`>>*N?yev%z}JUj{UuT2sm@85pjluY2zF0-(u=L{xm1qU1gEn#Y*Yf z&xk?Xx^=6^VNdb$zgxsBe>|U?n;Ssm8idx(oem2T{$*+R@F>5F!%e}nErt;L|2x|~ zESLKKYiIilzy>(mXM2Sz{qy#E_+DK{7@v`maV0|l`uCWFzwI-pKjQg6W_C}O_0?C7 zM*rgf739?}&G5$AuEx~AYYur!Om%hR0VA%ymtxjG*X7s8GP^wS6k(<)h5EZ_Qr&a2 zQ2@Iy;_qLO7nluR1%!vq{~H5y_4j|X=6l+tp`1Sf`s#_@vcRj$fTshFXKC;CnRRMtNoW`Gf{f(E8Q2LXXXXA>P*m?whHFbb-vBd5xDE)@dhXsG~ za3u}^QvLYxqug_>)(l{cd3<`j4@cT%4xr!m2k&gvF1Z62zq^qo6N&@Sc}dweZ$Mx% z@zr0LD=ZW>xJbl$0Ei%*+ng@D{TGl-O-dxg?+s6qaR9zxk9tzzoZ$cfR*SQ9i$(Eh;Bv8IR2FZ08{0XI8<{?sYKaS2lBgO4R+GFg zUR(j3v5bR8YO8;q=TUj6cVoAj=QFC)CIYVqNMej`t=q77@`R+_Q>Iu@5PTE_&bnQB;WZHC0P?BDDcIK#q$$7M_T^CHebir!pl)ELBv!!n^6o7y1yx z@%G)vdK>B9J-0q;BFx8&tdtwJdH`g^YSO^52mqQ;SFDqlP*r{IA)q)S4CnXSpYj;S z9rXgpc$gE`D`Fdw6FIuNlhr;>NRRW}s)`GiM4CB2I}6Tm0SdFx3&GH@pA(BDXq?9{ zT`06T4lb(w31aqjnD8@J0=wK%JuPD!@839W3OJf0_sAUijbljsmGf9SI?aTpo0;lx zta=DYQ%3FZJyV_=^(7P)b^lV$CAmSjA)!TH^s(` zN3NtQQR+9A71;D}`3-UvYe;45(|*-6ip!t&m;ZDRU(EpzO}{u^=$kAl59qGT?R0ha zdhp411?W_HC*Hke2(Pv*6{qhuR|DiikFDo_OxmXwcUUQtyu#^qs1qoEmz&~zx9197 z6Salletv&Yu;*R@x)neX{D>b{Aeg?h0cMvZikmRLWA2TE**kN&uCG!%H6zqjY%njk znm4+bLYB*jvIRWC3&C(&YJ>GvnPUDN_()i+-L?~7wg1OS5 z;NuLN$2xzLDt#TAv*RKnBW7EL= zti@J|62}e!aD2~D{9p zvRQc;RR$jX6=pIt0Z7KBib94nhRWfl(jj16fbD1T#%+jTR30`sr(*;!sLsrX1A$9{Oi5p(XcX=!Vb zXp-}rft0M2l$0-DHc#1yd}tXA)%t_Wu<)Fi*quLKjfawGS#wwBLIMLEfuEC(f#GxT z_UEyX4Nw!3$9JM5D5` zG))Zjl3oCq#j;^vOIPrc4{w;_E^j}m{#oOy)k*3aQ*BG58UA%7yxxI;(ml!;&e2YI z`J{BQ%cK}TJ{m@VtnhY0QXX_(r;ko}mrfzN|Iki3+@Z0Q%`OzWDxcl?#?O;pEB*zuRZR>$&<5aEWc-CTxp2=f(uCrL}bJ z1aGth3=HVT%uhG^vD3B(AVHDdmv-bv2k<_I8KNQw0rghVKiRCiXj%H>c` z9(;grd2C|TVfDCv-600q3sJ6f?t5{buVG~QfMcg0LD+^)EItUWZ&~rmR8jav$gLT8 z7#_CSqaE>-!?ICyewv=sogtRS>W&(+)6xS4iOR|W&`YaISv-6hi%WOaN?l|N$?FdS z6ymCTx1uIhUG{U{VfjP5rL76n`t4RV$>Z;i6z8eBg*CGJEoM#d+mKY=bQ`^%k&wLom&msu_Oyd&9*fOU6O`5r%@!J7MS%~KB7=Y{Yu%R2hu zx7t!BeTr9q7UH)eQ#U%5eFF1*nGaShH})$>()5-a{H6`GYp8s?FNJ&=pF$TJT6C)6 zc34A37eDXI0ltIv15xY8ElMGH@zIZ;`p)At zvziUkbZJRQ_UI0k5*|1LdpKBbB2{IL3D18rBDK8BZwOs-5|_)e!~UQyj0`}+3u2zV zbyvTyp~|_-XT6hp)aMe{JZp`P4`lY55(c~d7e+tEVpr(MaP~;#g5QnETWt7%)oC?+ zGjtzV!S0!|BPu-K5Xm!AR7U^6!-%8@wvww3;ayoWT}nS-B1Vr5g}<5M1U@upDJi5f zN^FW6W={^grn+{ivix{;s6Q$!r{ptHiy4^gxsjCPdVb7#+t$YBiZn4Zq}ve}9Z}QZ zy26rt*YveC+?p`nbF3~sC*gX_5kdKOSsZNNFZK4x%YCLsoS(yoOScLsVIqTZ9MP)N zdCb-OCRQ_IPciExhW}DKK=W*W=|X5{;uv|FMSHahMTe_n5SWRN4-WIQTxl~VcRH)M z$s^3F#1I(o=0Rl%bg@|8f<|#Ap-=4LY&zBwP>C&2QNp_4+3vAh0l z=sX6otpUT4hAQ#^0OPA>>GB@!w(`~f3$x9tiDrWpEPHxqr82l81s#eiQ5v9iOqL~0>`OEfNY7YaypKBZ|Taay-!xxh%Q3(w4+V>>HsG z%F{gpZ?kcS2itGD$N^kF*HwiR$M;+?PX^|o*sCk z!z)~QkfnvQGyQYkabdAEaH! zMPNGONfRb>4L3XjQ6QaBm`-kM;=f$?=XCYNR04G9N}>PRkco)wH>A^3t;t;5k%98R zqK2P$MQUyVmD&%MA5f1!qGsY0`u(f{DU8gZ-}g5co0xtiK0dx`$U0_X*fnDd2WJMb zaidGc;mnb1!uUacL=XYe^seDi2v7sGH$iVwFz*&d==?uH-TALE-rwX7i+b6i!wjD}~)9fl^Gwomy{!hkNY|hrjFj<;{2k)J@y*ylK zQ8HGm|FQXj?L|_(EB41WFu?PeoaOf}DIUD5Qjc$!ib8$9IcaWWK^N~glgNM8zA$r^ znpH=UuNoF}#wZ0%(Hos)$>jZXl9zFzr3+&i^5mkzAo|1G$b`CROjjW{#4OW0`mpNifEDbr_=x;4`U4yq*%(BAem=pE zxbPEx!kRYYR(uqZ>5;cl*oG1fh8;D4G%3S^3-aNtbkY&yV4vRH3HVmrl`a)Z{pyED z6ggIz7bawWM4vgjN_LVTH7Cw3(>wOmg9(g!f^vQUvV#X$u8YLjg}|W2?nH6pQ?Nm- z`$&aP&Pb%D$>f6UTe1luzo?|u#KQ9_Vhu%v;2Kn+-dCLOiiL45x>D+!Hji`#2te>5ai8kNGgkj>CQEnfMQ)u|z=V?L)Z6w>xUXX^UHJ3K#~x zQN2)5I=4S;(%+7R75l)bXo~s?THgH5_?~NM2Sh$kt&#^9EM+_-%qygocpxG`FAGOz zD$d&*LR|V;Y1C?dsII|sI)~Q|rfarDfl!OtpCZ<3%{P7YMTc8!L7HdC%TZk4v8WE*#OgZ4;AbWK;k8G(u6xK&Bcbz9or zx)-9P2C1>&@6a0&vKbFQ%y~j=|5iQ^6Jd%w}OV*ehkn zd41o}=YJI0Wgu?{Y|M5L`wRVXY1v*vN`9+e;$cS*87iFl{f%+8fm~rX+IQ|j7ci&b z$ao&}wnh_=+K%*KK~CmuZCRnOGkDU)Q@oA@fP*;eekWm@niakHe)ctdz@3-96_f#! zG0%NG0{~+JbEFH4r}H1@h%wQcGaqpr^J?TdrpM~*JyxyyZbjr5V{+RpRUa6f6n6c5 z9V^z4-(BM|aqwtr1*aEUR2eIMF)p@NF(J1fnlkhOnf!1Yu5b}cKeOq-6D+Fp&IMNU zbbO(EA2MB9c#EtYP&@udD;T`9LUKMb8c1ny1kz~;gT%(DJZoK%=eUme`y_7amg2^8 zc}Kce{bcRN&PG@IhE(;ZK#9Tu6A?XmOgsj4FHMy%xnI}L*w|m06y{A}Tc-|`1aDav zIwMsdnvjeI3gS_qD7CFg9;;jUWb(U78OL_%AIp9OhNs~x!^xQi0xI<%Vd1#(tK7Zd z7l5>{|J`#x_amMGpb-a?YG;7L+4N#`y&TC&k%3QXX@G_SWu(N%u`5<(7fhux?|C)d zJ~Rm_pY3>>)1IlU5QJRrD0BGn2EME+j?*QM^^e53gDzwI0Sct&H$5b^oKT3MGf4v@ zt}eiea?|P@sf!cvTV7#_+A6-l8AjZ^!CVb2{ot_+fUQ?<>6fr*2ata$v^77QQUAHj zrT}E!YV!nqS&(zU(4{Vbd`&rE*&B;Vv$p1sT56_Gi^QJH>lG^RH}={j$hy@|ExKb? z0y~4}Qq@KS(u0B9pnaeSKQ8Os{Yl7hYBvyw;r-8M!O!ol1ZO77Yw-N0u%yk9lz3<= zXC~vpnDs{QPa)X)M%h@`%9Ee2*RfJzYq1&*EqWf(fHSH0D;9;VRHx^2o=)K(VxvFy{_rI{AeP{sTeXsWWcthxM#940o2}fT2KANiRuSq2`_KeMEt?S@?v2-3$ z0B}!~Qq3(kv4;D5@3aCFOxr`4sfSxBY+VXhq|5v5Z$YS3hw#dO!m0HNlE7``}o7-CUilFgxW6;JD@^8rJ~oD z6wYw*2Pd)ix{M;cuoCfOFRGCROI9cRo!j1I&PE0*nA}Zxv~;VzCz&oCw+Q>b(zcu% zdsNTLms~mf3)*j?Izu$+u(POK%2Q+4p!1I6o zaYx32rh@iaf1^};h7DgpEj1Z`L@Zngh_?;&MFdB-=a633CD2Mt2S5^r1c!~8;L}R5 z_-$gbP8qKau&LVf%2N1zOBpgFy694!?p7`{nXsnhKjQ%s7 zCdf_R=27q(e&|_2U|e!7)a2jpAByo%3E8|;;o3Zdsi$?}*<s8pqH5<28;b|3Z5eJCo&IEqc@qe>A# zR6-sXVQ6V|d4*32&g#iO#on^pjj`g=}yf_EJT_P>C_hA*XlIh#!2NC8t|1{1Lze zUL5p}EIb$3k!X?zW=$NrE&L~>5R37?PnP|_up-v-{a&|?N^gU7VPkwI)svn;!nZe& zW3=7hFbC1y-HCwjKsHy}evZ0i=H2NPns03}yuoOxYUDp-ZQEi)3c;o_cbP@aAKB`7 z(rP%{#5S>t(3(I`uU;KE^nT$ntjU8>;WE1vpf+sdkp9FShHtMxPzlh*TCbd0&v171kR@ zJgCpF10_^6pVy9iL@A$4U^5v5R>&|L>##{qU-Z$M@n3;Kd|^o5!W##)H)(^mQ^Xz~ zXpajpe+XWO-dSl?AZ18T&(pC3K+ZkQ&4XXVD#!aGEK;6=quW)3=C;Z^uYI-?I}iZS zZU?Ot6&F07^1Q9D*^Lr>iDDQ-)v02@zG07tYTPmT!GDJ}MG5yp2!f=n1HSU379!B` zmAbIX5s&UwU^szX_$~oC>MOeZ!MjmU*|97_)EAn_t+e$Ea?_9Q_k5hI}HUT2c9+i6aO3 z5Ry3Af(%A2^f!c-4A01q=42DvPs@y6gQ*e{fN3SeuCFE^rx@#hqx1vi7Td374_c$Q zIu7S(*NHh+u_k$nL_p$;+6O_$MYCtge#mc=<7}3cXEA>eR8eR0ZX_PzsAaQ`cG3z~ zJ%T#QUu5V|1`{`F8PmgX;lromB%M)IezE#aV6Xl4q{AJCxwR3)%c+dS|_PR=-g==3@u*=y;7jr)2~{TE>~1-!Ewjq(`5HF?UyycDPNvQwLV zhqbG^H_H(FBhkGs2&G}?hIQXF(agF14y8;_?`%7><@Hs{wc0gpwQC&~VJ8~>WZBGro*q!@QasddI#)A+yUN+2*VQpkh`UelS^S zvwct6s=TO<$9DxXRr_l`#V9a@O@LGN^MEPq@S!CozxfBAW%gt&PV-^CG5-LBpC2}P zb(Cl9Dd;An@v>ql`sj7nVOxQ{Ra^820IH!L(z>kI_+(w5@kZM$?jg+OVuQRynozH2 z(V+2z#`V=}P|Hm-Vug{itev{d#@pi~A8SJri>pGYt~qXn3;z6B1~WxKy*9l_{+)>d zuk>gtb!i}ddt@exzF@MPC_vnYM`sdbEls%S|EGi9%1is}(fcoa*wLd;p7NSx2C5s7^ z=B=Dd;tC(+d*@tnGlWj~qzWCc_44cD8`Ad!jvbi^ofnCrmu`3#;Sx`F{SMhE2))aH z+GIE;28cfc1|am;JT;d#41d=pklSho4{|C8EKaXzaEcK;Kmv%Zrb8>+*)j0~%AjiQ zGm71?Y@NXH)S}{vngY2j7}c=rWSmRf-I`n_l#Gh%$R6EgDTg4=-8VKQV3C*Eqru8V zhZ3e&dJD3yJKedz(N_R*@i^`A%FR=;$lrX#h}woZfI_y(!>C*)H0<(jnFI5zO2{eJ z1y@kXcK?WR-~B$m-vn3iqP5ikDC8Re8fHq-H z>IU@Jm_v@ee2<}=9T;a&w~!0=$l{#7e55OE+fZ$fX}#Yfx({L;LN zQa^fTqrt!fs#?rV7EJLycy?Gc8oJ^xWMKeJY6QrXcTWTmjXtPt_awaRhbhnWK_OX% zPqg=F`u@?(!5yV;M1V4WBQz;K@VMUcyeO_CJ8OIP=|$zYS#M_K6tcQI2Tz)x04{?FC?&4Y=Lkl{4?6pS+Ogtd{!;>#iaDq@@^QMOt9(SxSZNqR77SZUPFGZVox z6$4mamZr%d{!V8w=KeW>7dLh8-o5Kj#v4`BH!2c?SE)yRx@3xd`obJcvDL^@ zY2^a~a;^^%>{hk31wvjr&s?Y6uNH;6KuSQSTVHi4FhwtJVYH_FI<3S7<0$t$uf&xre*A5GG=gkn#pVG?}otl{|-y|cl8bVI9x_R@t_r(>aBi7$84$3k2IxsT-JV$P~Snzw_^Verv zdOUuRKWfk2o_(hZX_Ii;w>Rth&y(W9?>CLUcCmBIg_jVQq^q^GWa@1Q4>T?eM6q=* zgLk=%CyxHT7Ze2@;AhGDOG)@fcn!LQ?3$Wkgcs-i7S+kLOZ%>Vej>UYjz?g3KNWaHon-$U{; z=j-I;sX6|H^8EZk;n~@Pk$;LOw4D{>>sGO}EMN|%+&RDmHJR=M-r6_22p#T}he5FnOg+z#H zUd(~4aF-afO2zLJRTov(AS9_yihd|98~^Hy&(YLD7#3n}y+SsqZHksM`ygF2EL zStyf)BFEABDd>0+s-QZ6b#S8>D>Fv&4MQ@i3ob2Z)JEBDf1Qui$8uVVL7?)7pq z;NEE$$C<@Sl*UuWY;1A{a`Rcm_?P6oTK}Tj9ZhKQ_*K)H+;pij$`%^v)@3BGo@Z>38@L17@%{zai&HkRZY~q*gSPo)X;#QURHN zihQ9(s${0pncSR5DVSs3G7~JGxjImxR{V{6Ou!EWZ@vr%*GVZkK$lJC%kaqBNs@M_p-Tzb_kotBmfWC+n*I&iYYl-5S2@RgAqx0B_Ygv26OuOG7= zhSAT>HuS?4oQJLDR0vVrXZZ+qi`$iAEt+}U&b03?w8b{twygoV@(+FxK;B`(XV*k1A&p$R!| zw-G(t`hrG&coSv|*HrJ->ad2&1HF3v4Y$4LipGk<0gmV0!B!*Maj(py>GFC0o+16; zeggZ;lKLr#sS}t=s|o%guMi;H*y}QEELkS0#Cr+t%w%zLu9yN4K8!PQVx#S)6#3ys zQsK&(r$T3Q6+-D`U-?=oY9q$t(k_!m3GDi)!}ys{;B%1~W0LapCv*e=;!pj>ta*2jaF%1mB~^SiQx3rU<2Q05Q96xMdy&?`~J zR*VHuxm=UKUS&e*5^Pr4aOxs~k}-%dnx*Ts+;)gRIgYzVe-xy)P(PrEU8H3D#Uq`q z;x3MP)q3^1gg6#hHptH~&6%CXPyIU6{r{pvK0lVD2N*Vg{KZXIqsVu)LGQU~*YVfL za)Op-4o~%NHNE%s^@Y6MX_*yNQ49Vj3*h-@M*2Q@DCdvk4ciYF9?3Y&reBgO&Z=3> zAas;V>Bs|ho>wm*scD}N(PUbW3b~J`v9h*Tr*1iLTr>!+pGr_^*`yF;dW72~2Gri* zw-#TXYd3zd-z;#Po^Mg?k3BIvDx)h|9;bQvExBf8yj)>Exw)9SG?xn8a4CeAc=?)| z*VjfyS)c3!*cWGaWc1{`IuTVm>N>z|!I5D=5UzL<)8iLC>HSW1U^_$F&a_02VpMG1 z7q<3hqhorZxK4k3m&Mtnl=h@Lxct&=u0iY20IF&Ip%>qcFn@;NZH<`0Bqw^{%gkNx zS5%YqUB(rKhHU&eh!R}&`4G_6cvhymT~alr>Qg&{zCY(vx>s#hoPeAxpmx7@p6nm% zQI>UWDz196u_d7HZR<}jFdr4}@r!06$ zzTC^k3_P@1KH&VNM7W6&l2bA(SU#Hqq~X(^JSh{F7FtSa(tan1O+0PmgjDUnT(Pw> z8ti#wn|XVx)CJLaI&9h&rPsBh0cJBNrW{rV>Q=(r;j^u<5<8F=pJFgThx{>m5+Ngm zccK@~etF&MxYO_&%}y^Lmm3LK{(XnlFpPrT_icM|-l|fHq}R~s+B)*aL44V$Pa+Ow zOKhkNq&V4rb(S6QRA}>C83g*%dihSOb4RNP%DF#iK|cE6GW4_DMF9+73@#swn)PEl zpP9Gr_HC)UeN-?lwhK&A4W&hzj0VvMbeAeh;n$fJr4Ed=1w~q`&L(CT668}hRPAzq zHEd&Pc4j73So?^q_F2_WQjdy3NJy9qhU>tI=qE2~rPAa)>~s|oDWURF3hS4msT6wv zf9GnQ%BUS`2(1z=o4NxTxJ!TD5|>3Um3X^B@3I{e2~lliPlgGO58DN-jCvGPZC8fm zC%>9>m@`Lvg18l^+N47vjY|Spm9^yyIjeaL(leC3gpx#w`B2# z-?*~#FqP%G^-a|#An91IMM8Pp{ ze%5Bf#4fn1924j_o6R*3W>bP!57QGmL2%JNLW#!yll=rm1G(IVVm!H7g5O`)_AJ>x z;b@Pj?6kP3oU=ZOHC3*8!B>qjc!RNdb0h1h%RIP-|6cE$Yh-|hkhno&K~SrSvs}Q9 zr9f6bc#;-%^r-0boW<(`Y*3kO#d{vImhCy%x8V5~PCs_e*W!|2ci!J85XsAT#86rv z3UXBgCCz7Cf@H05nAZe^U+YsFUE0{@QoG7^Lh5ks&rCi=LO^VCm@D5pG+dysn1X}8 za{k=XG3z6Edo8|+`&hjJr#N_>PyiVE%H>keg+ug?|+jtAnC-@Oy4u~`N$<^_&a zV%`1U=OM#~Jg{(Qyiy<)3Q640Ur(rsPVY3(5QD`VLY$y0km7wRH*z&MwY07;$c)p=?>GL+%=k)556h^U_e(mlW zLyb9B;{Xiv+3Ka$-WFgZj)>}@*HG$jG&8^>rPJw2(ORy%4E|>vIf$_s>q>CAO|_eQ zYh0Zd&zbPoM^kTHpZppVaGbuOvjckp*~PpR2_JK-&6|E73ZqXxrKLqZ%~RU)R6gie zTvSEx{71CKqV@;7EMGnqMmn!ocP_8fg8sbunrA4pJ!s{t=t=|IzN+Eua2`jB?>M`g zmiI}e$`Aa`v%K}j`m}GrOO++f_vV+B<4((swMyy1I~wTW53j|uaNn(wDbnAC^yuXU z4^bNgCQJUe`aWafBMR5Yy(Fd!=E|SEs?FQ9Oe*B~q^CxI!@N1J7QacYhI>kyR(#~vaDGmgdW}E z=AM0>So*p%P)m%ZOSjggWfon{aJ@gLd^xl9+{ioc+mxqw@<3u@#S-o3LwZ?)$HQBOOw8^`MXWWIcxb2Lixqi8li(83#@l2_8W&E9*WEU zbH%Q~Q+lVNsOGGe+?Au8e}co7&3v~b=c*r=SE~V;J+&;qW*-gyn~_Cl%lBP9*<6aO zDxEmTcKGJ_p$*F*V}4EIX1k#Os6O2~ z{KjrOm*d+^rNG3ae?(ilEeE3EmoWEisu#9DqVBz)j7b4)LsDdi#!d>z2n>h}FXlGFW_KKl z`rC}H+zF_}1zY5KV5*ki4n_}8q0T7WW}S`!=KQKX)`vRF;f8Zx z!oC}I6$~cDYb@h-;{WP=H6;9iE8?9o_xJdf?pO@3{sSHU#5b(1bN9A_7}^e;xqY$? zc0k(S0TiC$k(W#K3w8y!GY1<`>(QE8pnB(e^a8k0t}-L-iCnUcpDyn@;Tj}-DbGl! z@<}G{ex+#lpCYiy+HVJM*zFew8E1y{UanH+Bt1MnBAc1l{G#z*ma2(jZo0UJ@)tjoC_cs}Gh5`QpFDjLG|Mpr`@9r`kZ31~( zp#S>GvB~~YxP=qSVY0O7@iUG`u1fS4YPr$BUVQt2FKMqmK5i9+e$RgyR! z9;uy)FZ>x83DMM?NXKjc&%oN)x@=A)`xesSo%=k5M2M6WCa5Lu7lOlCSsWRQn99!zI%FPBnrq%UWQ1_k!c7 z5p9Q>K~T9m9AyXprq>EH)tj5wGBih_7GmJ}_h4*8kHqcx40{R`C~F1<0tb1{sr#+T z6ixs$r1=U>6CqH0g#=U2iUibQs*~;Msf!dMRcJZ^>3oFIb-V#UWG7pB8%v+9%o0ml zr06sjno@@XE7&Uo8#du4zeoF2HlkWpUHX2S zwt0tO>QFvzT;h{Al^wYCH>gOiDu+WTAEWHMlc_f$wn;9<4G!2_WSxq8sWYJX%d&hU zY10Y;v70rT-lY;wP!j1}MU*6E_~ULywP3$E%&>%)OPAEAd7sJUV*&M|#C31Svw zciAQ25%VfW!J-LaKk@MAC0SM8D`Kj=@?7C4Iwp%xP-%1N@~RxOfyeS|1JSL2`|DjB zn2Rp-qHCM#Ow8g4=;3ypV4bf){$2iIBVoxz*N_n1EtlW)K(MJ8^5aeoV)LeZj}MGf zkH`i4et(}Z?5NRmOmyMzrbDP0OQ=)h0*ViI@qXsp=5)|gYAI~Dug{CqZyF;O?20kX zmws>y!lXkb#kK?lPu;74!(JAj9aE~i7r7SyzNAo03^P0tAh=i-TRGt+}{!M|1;B_Lnmd0e?mcU6NYc^pX^N;YMUMRHi_m0^H)O1@f z%QIAt8Bh)4kYh8dE4^qq?``hz{Hq^8s5G2BE>a5^V9Aj71&nO~eho3Oao<{it*63% zbK35ygZ5E@SKZyw^+av(Z2VYpi#j051I8mKVh5_v`2-1#*#l!0z}9^ACN?cEfmU&5 zgDd2I9+D(Kye8Dx+ zYq$QysCjCGLblfqMTj#=JMNS#P*2*{GXCLKYo8;gB+LeOs0{hOKl~6{?R(3ETP&fg z%g!g4W3BWi5%6#;c^ALz-%I^d1}n_L@rQkP<-4~i?Y9iqv`)l>il=MR3FZP z^S)D|!=JOL%onO^%7NK@b9rk5=p312>qcdZ$C^RxG!5eOcc_fEXZ zj+3jISpKsx?Q-97uQ9)5{$(le^!BQKjkoUqIC%Cmb6xmVqFa9w7b9|DgOXEYz?S!X z+@I8aL^T1Pvq2ughA#iShOcrX40Ez@(Wn;^<;@W`d@D8V9w+yb5AGK=Aqp5!WLJZ! zQUli5WKb#*rJn5t;{Mnx%UQ<31xm{AO~M>n+>#nv@bhQ!8=dkq#XlmP$}97N0G-$R z_RM1M_Z-e3MTW6}zPmHXeM`TvF!QHOA})aCG*@u%E*gh9Wz$fbe31XR5VT2;lVzs` zebKMyw9OR|vod%u0W>NmUE@PgZYr`PKjk@AkA4|0Wg#qOM%b(YG04i^ULqC);Ys#S z!@gVGLMD@xhJ1gRXddxO{I1CDg_I=q+?qS{eTuowT$dT2w>&&Kth6XdE5YUpag z1O{nmicB12->(GnN4>vapW`G1qa_2P%fSal@iew}VvmB3@z4 zxO5$8z$_L(v>O!NOGcrMzLrNKugEb8zu#O?Y)nIr=P9W+5wpOXui=aMuPO{@^M_eT2q5*LTiPhexZ zgtfE2ec1(yN5^78`ZM5^aRuwV{sM{2-K#yDjR--`vOc~?09^m=jvb-KK9rtw514#F z&*$1b05)E|O?({2Y`!>m8X}YGNqF~!VL7W#)ccd%5 zC7}lh1OdT9mo8O$M_T9!iu5ME1QL1=p@$m2IOm-+vySdjOo5p<$J4mNJm&ZBQzkFX=;$PZ9;w5V zC4nKfLuEBbIs^2p3R*X$4tKuX)9E`tq-xM@F(n$Z&?)qe5ek&B*X*>Q%W;9ee+xe5 zV5?Oj-0@?LN*3!aEYtEOVC)j|gNgQ%zNJTnZ<6hdsA!QDK-(Uv?Lk*E^1{`o=1>0d z!uixoT<>;8)Eg>9drUvbGX@O{)LbGiSWXz4&?O)8IUYB}#$R3J3t4`?Wy-ZppJxqA zae=;_lT{dZXzC>?AmoVh)1{`Zmp|0Uo!|m`^2*RMI@9lZBq_(ki(V(#KmrdbD&IRq zED>&?_)lv1|EgNX5~pB`kP1ugV&Hfp z?BP?(#Lq%BDK0_F!&y>7Am+-wX8TRz``r$03V_Nhq8ON#hwdO{&l`pZ zi-da))caOGE$Z;YCHHM){Ov7rXe&Q_W$BEqn-whc+2LVhn?cup)!k6K1@g{PIIrm4 z#^>%5XmQ{6=7EAzYf`=>t6iZF9J){GPbt(mJbMJ~yGya6X`E$O)hCxNH~>Og=&0E2#tI@|$c&31TaU zPR$H0;df5%8$MT1(W5I_hC|)^=R6p7j>;^|Gj^ulAZRt0lOVBHV+}@qVD+-nhz=3G zR#C~hQ^GA^>kuXszW`iP^xC;_oTrDr+=Xd3&%Z?~cxA$r?)y~tg@RN?Ezj4V5v5o5 zDjZ4q;G#|3C$4f2BRW(k6C7K0cKq^%@;ElA`LvzDL8;h(?e zKDUj51CUAu^MO?ZM=~Uw<~)RqqUUPkV0`K75^i+!L*Bz2_@1uOVgp3!k(}fP1;}?Z zc1TRU1~U*-(BV_>aGvDzMn|(nWoaa z*v&(FQVKkg-`*M=@n<1yy1+U^1=U5j3CDr^M<3WyF8jZ2z(i-lD{XbWPFHZaB2U(C zl6S629@8ysDaqQ!YIzK7cTOd<@VB(`4|Ab`iT;*qQm18x#b?Hx9=&=g)pLkT2$|JZ zwIft_dX##@Mq%b7#n1ZSXFtFRg*I0$Q?BDhPN9}DRoZqbcjXIW<)9SrbveVz;)-+| zkApee5)z^<#|KrSJqV?ouumV*NxLQ+D1?R}g5@F{?Jd_v@XZc~0!9e+uAz2zb2q9Oh2&idFSMi;G?|CE+? zRPQm^|3pk>%|(;e(rk*X7YA_R#wOb@v1y<`>0@*2l-!Ub^>$I*!>ZJE5o-R+Ri zS3++Ix%yQ}2%W1WU|`ck*X{+!(e=Yw#j5fA#~2ZpNzO~I1a$l^N-CPfrbC>Q)O&eH zX*9|T|G62KKIFBHCSep-!3@Ua$7bZa9V)n<52k#$I$3V0PQ*3FUocZHE|#_NR>!`J zfY`l|o!MPU6+t<;{rtiCgl~1=3J{WYd0K#_lsLfds?xi3|wo8%^um6$=nzW17=*pF9CA!gFBV^(g)a6iM1XzXf03_ zTA!U4tkbJG1Gkf(2rJSH_tX~Hz^5}b4z!(9KzuJ zS%7dyno21*ZD5Kks-`A2FpFR;hI%{i*R9pCM~`(es14l&k3!U1w{MfF_S-(9DeLog6f*mhVNtPVu+Ll}NLW$X*!Q zAJ`%!?dpt#1uQGq8!kqfxb^n49vtjRj$6Z!_H(Dj9~RdRtbK$89o>=;*{OP?hP|-kwEWGs#zy3gDqaU1G;RE)>5p_ z_KM=odzD>B3+AaQm4C5s&qJJ zqw>!-y=jub9?JLuuW4#* z{AO%m)stPHp9Sb`^O5Y;f;P{js%k$|ydTz*AwbUzkg$c^uv2BY-yisN=jyCz6(NCG z=NR2H_G*>V`R&N(piN1&+O@{YOC@(odQH8HFORf8_0i3GfW8{&+!7)_yn~s%Q?KvX z(1dzV?Xom=M|s^(G5HeifJ3A*C0~i-ID@))!EL!=%3)k6cMnsCBo?7jo~}j|#mSTN}6+z9BIkXSubKQ#cG0**hKlj0-i4SYV8N zybQfZ-%3TVI+CZd8rvh?do5IF(&g6GTeM~3yO|o6?iscfe3GF0EAnx=vO^x*xD_wj z;oVt2abs5x5&}l4;2n$)2VZDhaV zuI8gwSuqgdi=WvhPIdHniqsoC9{s6=29#uVPe}6sNXjVO2a!;^Ul*r@vtg{fS*Z*U z;JkG?&-Dv>aW6f)%xlc;x|S zht~YouC*obo6EOv&3ATN#u>-bODKK~W)afP7|ssTu~&2y6*Mcw6L}V0xm{Q~aCg0o zDuvQf{e|lDTROM%FRBpb$tg*?4Yg@M$tP5Iiw{*C&{T^0mIbC9KV{@?P>O3kmOXvO zz{gHr=VJ-go3Bg&^|()mImXDIZ>Q{vtR!Zh{%DZjs^wwPp3`X@A-nitTf;K%?fY!h zU@0MFG1|{8DWaq4l_84Pu^+BI6Dm2fuU^fr(JZ5)z-6tXVPtbwI6rN4Ea*B_VQ0ni zI8V9O?utRdRwk#~!3#CHqrn>^uuC4Xxwc~nY_~Inb%K4>wv9LPE6> zw4YVqpcvmmM53^1+AR;$T?*IdYeCuxPh$^{LJ_??;7ccy4?iFYVTMKm(85gJisab; zZ#;c^%F$=r{B{yoo#by@AMPx(aOo8b#F=>6>Y85ghwA%yE*Y_$yMF$Jvs6i_=o9g# zKU8qvb;*nV+H0Dfg0nf@9Ly1w#P7Wf30?X-@R@X%a#*VCPrrqPfAz`lJu?A2qW`-FuuPU~L*sq9kSF$! zbmf0n7AI8bBBG+q_tqz^V@r(aag7*cC4Wwe0Oz_j_uuth`n~76HY7z&O+_^{aX)R5 zbkNa{fEpf8fabX=7VdsUilWw(iug{@6@J382zi++w}=I0re4kljoX+K+6~$jh*XjIb@{l^8OW~bNM>br;)0s zk`j|@l?<f1uZyFz3(z zZcPo8nv(e2J^TK9>Ad`2a~{~PnEY+e=pTR?Em8?Bq=?5qo4pMVp0wX{D|HALav0Nf zCqn#PR_=Svq8|LM%aCd>w_D0r^6OI5QLTGH%-svn}efT3FjD$%z62sz63Gfu0 zhy2Vx0N+R$*(OP(*H@C6`SX#NeE5$Im2Q;1bop`uEY9yA?8)yQk&eA2o8Fh(x6|-X z&tm*a<~B*c$4*YAt5gFxD|GV*g&*S!S;~#h_I4*J$G>En-%ap)QTTt*zZ^ z_(7=GU#QE$!6EZc0s4Mjd6_y>dW0zfZJF9Vl=lZY|BM#y-i06Iyf!l;VYiZO><XO8i|b)UUGqFVmj} z{B|BhQBiRv`;2wyznAb2nEZt__2ud`Q-V+yti&~+WZM6jG8laF|88Mrf3>jXCEy*> z?-%r|MEnPa_7mm3raW2jk&)nb{f9^X`X6OVjaf$mK72nsPK_zPR`{s)hn4#`6RN#q z&h%r-lAwBu(^G5ZNBP9~uKk$$$wmHZK9vcIWb*$7ww++fs;lFFfo)&_cwsxW_zdDR3qba*B;BH?FXCQUW)UlDEPFs ziyPam_V!#uxjiX|ic=6Fl-gs$PDVYUoSxH_J#J9j<>K?P$h* z3Gts&oNh);21Z5>r1|EVkGh()3D)HKs!V;a%lWp<@iDAk|Yb+$;zjDSIt*1Ds4&UFHvmt!|s1^vuPD(?E; zK=V8uvpVi#wimOV7TW%TTvc|`cyoZQ7_w?#@L3qvsynwjG%QR%E+}9>ye^cp^M>(D zL6_(0Vv!rK_&4m4785D<_2QPXGgEUli6O(wT^?cfUmku(zkf$_5B3Qu6%!S-(qDwP znpFD(A%ei6`j%bgFdq3Tkb>XA?9R}_UU_X!?d4%5rf1d|H?3j2@$rH%Tk~SCV~TRC zZs2`PfQpq_73;!JV#y!?Fxo0r6%3^9P9BFaTFak8{B&dz3YTSW%-CXjD8yK;_R%f(f8qi@u9sikM*lR2!J$(GJbzkSIeSFWzSdh?g*K^y))oqEyTLm zNvliJEJwUy|F!NDHSh6vn1vEhq2MZ@`pJ<-XX#N}XNfgjBtO8m@9u$bL@pCjB}zBG zN^0`?9+sOlEG99|-pk#_0`F-O{!HHzH6a0MI6$wiDr+QtHJqj1?WVT|gJW=j() z8awmcFF8zP!c|4oQ0@E`^F#tla(wkfmtI@{9>>JW*eW=$NY3-uwVIf|+@nIvW^aga`o5|J^hg4IT z&sCh^0A|k)-KOd^F;oH4AMue)vxn2)mk4mP=0!dS zdbR8g?OAVCo(-6v7QUp3A6Ct&H=35O;}e{`>Z!8T710wqxw-9(@sD?pl&ErZpYZ*Z zq6ZcW0{VDnVSN2cABoyX0DST8s#h~2*ov%3xeej{l*r)GEOQ6}(!qMR*lH)mm>bP_szquef@}`HLHt|qHSpUWH5DS_c_Pn?bWs)kegzHZSEKt*? zZ}FHlsqe1sAOazmyWyB4Br@%J_m2b~|4_q4O|JR58y{*U+iqv-O%X#PVdmOuDi5*jD+43P+*w z>4H=TK8m{&dQTlxPkWD<9CP5DnYs>fG~;l)adhff#AM3mWXK)`5IfqKO#Bkg!A?_2 zbU$$95+JaiYHxcKHgz z0I=J-xHf8IQzBQ*F_`Ovma_LDz-o>br82s?-!fH-#R@D=)-~2|&F|lC+Q5?y9r-^L zD;@?sKH4ZU5D*Tfjk%ha-H^dO{%rnz<-+EoiK~PtZpSGb91heUtm~>PbK0gZhxD2Z z5Skcm`wGW{sttd|0nVHA0E zI_B7n{P^2_uZ^eWU`9uGUCWvM-iZY5>%`PXA zD+_B2>R^?4OR6u#>}kyOM7G5J5I(<%2nNzTE&QTq6vV~)-u;9ptnF8}B~p7WQAe@c zDYzq((Qxb3ZSixY*O;VVNb^y}M+PKV^*&V>KN-^*8;}Nl&N5E<8Fc zW}-|u?vR0!hwROQ9irTO#zs1dlAd4^=pGMgh~ewmIAx%(*6(rq*v>2|-qnd#KRJ$x z>X%UKT3*@$Vx)X}RR-#lUu9pM6>^9%#`GmMV*(JqWu&8r8(F>C_IS%zz}>ohwpaS+ z-bjcQxE)OO&UJZ3>hKY_NJ76*FMlx((gl_>rJgR+wSj$k3+RY^Xy>Kj0aXSJ72B1o zCfq%t_9Y^axVM&TNy%sTc&mM_vP!n#Rmt0r$v18gK~o=?ZSTO6W6^v)Z*cpG5ad7b&=Z!5RtXk?xBvBqZ};kv!CgQ?3b&vGAI%KBar814DWb^kVr>yao;p^x8X-Ue|VqYC!j z?wglRcMAt<1zxl{JSFp*fFhliNAHlW_Pg0{XBL2}MH+UtDqIQhXPG?m;YNv7?tH}m z+Wa#_|M#KM?sD|4?MoAfhhCqc1u8Z50W3>HkrIfjq(TW7K)oZS&^h13{d zAT)1M=5%T}uNhDJ^vI{jU6+22hJ<-)*{~Hfv|d@deLyGsl!-sCKrqA{#)O>NQI4=@_9Jh-UfLU!t&GC=^*9N1zS3 zn(mSPai68*&d2sNf)8BT+~uam6M;(M;&^SR71}+N1bqe8B-zB>i5I)MQa{q4cI86$ z)fA{=&f;Enz-9PJ^59O_{pLG32(C^GQALkVWI&f+|838u(^$^~dv127)5o68ABUNP z>0@~tX6IeOJ+i|li8b65lZjiN8O}nmJ%e*s<+I^!cEd2^*z!ubVChm{DerCAD=xI} zQ4gTsNy?{M)1cBhEs<8^I?hnIK6*VxoUa>F#6L7YRd%~Z7E^qOB-1tFmP!lMhq`cW-^g`cKeab zg_cm^<EQ{Kc& zx_^DE-$d3!f^4*e^lh->-75TcN(H96G#SOzA)=O8x`RN{ zf&?;Il>`*hY#%-1RY8qL%ZH6t3@kcD{9C?%mCRt`D{gLXdB=IpM8#P1+S&D^0bXP{ zAL|1#uh`=YqN0PVd%}_%(gx1k-FfIYY%u6v?82Z2PQrGRN-xtd_0&kwbG};sS3&

cq$eU$tH~2bgS?zhl{9VGwD9+0i#@AXdjHvI!9<(W4e)m zL0}qMrI+{0J=%Jw#hX*iOT7MB9WwgKlLZ;(eDlga*kgo3uyvlK^e`12 zWYpd)Bu8?dXss=_GQoBD&=h4>LX~Y4eW{cF$7z$q5(6uk_?60s)OBGk6MguljM`&I z$YR6ut|?bbvK@$suUEc=q>ra5x$>xfutN;_5)F%29rD7SJv;Hq7T1VZjda&oalvpE zD7B*fYv{mELiyXDJP3CIJ}E89a98SCpg9HK9*08Khx=?-U41>EYlQ;?{(+YV8i@+1 zbL&+Z8@qq6HwonQGvQO$2QpCbuR3on?H;mz-u*0P9EtKB7c(gdAI<2kTslTmW_iU; zIGU^Wee}NP(ud`HeafflR3hh#S6TsUCQ3Il&OCeSL%O?CJat}AoJ=gLf?qV-xqB+8joc?$;L;xohY=n7dM_QOK&0mfh9Q?Trq;tN`agu9$A&VB+aEIP~ z3TphI4xHM*GZWlN6ni3d^)0;)G88w-_7zm~j_3FKvyjS9U*!H+*Yf4JkSj=6>084x zA5Ef5lT!i+oYcTBM~&#~>}XsUFngxqEUY*wpEf~)qwSlnW;AtAg|XE?*H0LWv9t}I zb5q)Skgjvm+YXy_JM^*YaijrkYtUBQT7`Q4w3z_?YPAfg5#JcM*>-`!Q&D$os&!J= z80L*T0lnhz)%C>4Th7mrp^TGR^>s*JbYv$-D_h5a{8zN6$P!4S$Ie5oXJ#K!rNUEo zB$ty#*Ek$~mY4Bq?30g3;T6BjGs!L3(()I5hAEKB>Vb|jDR=7!NI-4<#D*~+JeJk< z-4HhN7%N@T7M5GY?s#O3%X*dS!5MeZt$#Icu546fpOg5DyhH61QHxWb{)FWukR$+bI=wkhn=|V}jnNwaE49aoKXvLaS#>Fnpj_?W zOIWX$&AQo2pW zLd~NF#`W*`zL~7rRs1W$1ExG3%|gO_SIE{!szBp5Z9&VqZ%AnLw>u_{oDT$Rl=ru` z#;-0;)hwDkJ;dUHVt~{ctw}S#&H0fNi3Wk)`HE+sJ`ct(dMJq)TBD6Fns@RDsZm@V z2UYry!^Z47nS)I&wjsyM)?z>HK%6=TlUP8uX`91_VR;N@ zT%h7rliW7)+RVz6n~&a4mQCb$ao;qI7jm(BPRF`?fV(zEQguV{9{oEd#;fftkj|oG zI2iTZd)y_CzO#@dI8K_+k;L44rge-8z4AwA)GXHn?Bns<=_~ zMreBrtcYd)rd`ps(GB6noMt_f80wSFt9h0v`y%a?)=;Grl$)a6s1Hu}$mjOIow{$z zNsw>j#4t8?xu{d-=eQ&x$suqAC!hZstM@6MnHEL3WlQsLz0{m50QoEfE;n2wHMiz! zjS;J#luWl+uK_3$$B8`c*#Nm2Ac8bS z0lg~0z0(MfOm<)IZVDGJKd9lti*9R^__*~hq8BCgPTLjJWnG>HF1(`uAS;fWQ&NrF0O4po|~bQzD4AYsM{}dok(QO2DFA2 zNwTOA_=3{U`KrXBtk-Q4NKC-OOy<)sbSzfBsYjBIh=%?vRTC!XY+}T0IxOs^!|bv3IKQ2p?WleTdTf`Iq6*~+Cfl-~G~JSvm?W@{L=n<$xYY}uC$wk{@EwS@zkw~KF{eOaOItxdDl z@LFrn8Mxo8qKJizJhA;oz@47F?#(KH}3~SP1>Qp^=m5v_IpW+2=aXzKPdSe7$p}6yB8eAJXPu>qeY%H z%0?m~FKt;9~wk6BiPjJQ&@w7O^T(8A!=6Bnbn&yMG+o`N@IY8&`TcRgs|Fhi%b9 zp8)fvm2u~>$O9h-i3(p)r??OE1Dw81BI7gJ^DJ+rAWOMBpU~nO=NM8P@w3Y#*iqKd z@sFVS_oE&xB=mT_b=)?Ed}W8^=t}0$@z!X0NoKFfruX4+Vr#|W6%`-1Ctj_5j78_< z;r2KcgGt+ouh3>(b`lG}KRYt4VW=JBEnQJT-Dfy%G-myQo|75vPFr=^2*8Nac`I*)-FCz~aDI>amP-B>SgGBSDzyK(`+@Wo|1(wo={-=3Dym_2Q1>+@TP$ZEZ4 z#xPu&Z4bkND_MMq+yuGzjhm-XC%oKp7dSO~QD3iX^rlQ?pM2Pj6kmk-+k=t30jo@V zV0{+pjnFiW7}MG<`J_jGaLFpz)Hx=(+Dar+hR`$=4jSXLk?C~p{;os2!c_)x<74#M z3sZIM!F{mi{K2Qj-g+rJ!50gzChhg;>fbas%V+0%$993S8y9*8?i}3SpWu1kL77*M zBOEc`-b>0}2-L8VhZWmlM13@oUTIE;usZO}5L_&SU+$IQ z+m)K#iE*2L@M|*U7r%KYP1>S2xG~ozRor7v5rQAQeP^J~<)g7n54YQ9Ksl$3#c5gZ z#*Q=Dm)fnA<>eToTj0+)hQ}HPZUx5)`0;lFEF@KOF9sV!53>$js4F3+)obEt~gounR%8)oRB{%}ZChiy5@{P~b*?HjYplmd~yaKtO!o zI=p;zD3}>%y|@+cX{rW8x?G#T-RV!!R0s$zt520O3w9lJr>&IG_C7thINPrw<&*1y zQd@Y2fYZ*si)lK{i3~W(tOGmg(dBRmRQgB>x#TsucW*2K!l`M?wV13 zYx&hthtTtfyX|AUK!}CAD7Q5&otWLTO?+zCyfe)_TCajGCkj6cnC*upa`RQu9%D_s0h~Q?_|-;QaOSdGjIP zJ8jrISO~b_Oz|BuiM#aBHlpQI=SHItDgP5*#Cl7*vg2+g2GB}81p^GI1W~g%R&^w7 zGJoVIo@X|k`jT`JblL#sQ{^K$1V}oU>-Oreud3;p=v~|r+s&N4RJT=1>L0AOLv{1) zomsTyh*7GlC$e;2t9Dm7KjtUeS^;T(;z{PF=WZ{MJRI;ZoT{KC{qykzUd>A!z9uIdx0#aYH6!$(%z_eE=zM=%P)VOC+{a#ye8*;{@{( zpCmc=E&W^OCVS}!qp=UR6T;N`amZ?(s>eCW-rk4pB~ZP!w>8Kn=bN^nzebI}itATn zKjuJF&wJT*G-3#QVg*L1O;2N$tC@(do2sX$K^!lgxJ`f=m4oun$=(x*0}8$3f@(r3 z@53avK2ma7WHg^!NZp<@f$(&seR(+|PfMmsf~^7{Za~m6tPJ(Okv06NgBahsJkl-N z+P(-gXO2Ut64~17K+fw^WwnKvLH<4+;CxIqzswCT!z#3uk?8WMa8`J-n}OGnVVELv zQKz_6Dy-FRdTY+^;E?yEdqhahwD!`29>)D;wJf*-Zz?4Kim%~yoBjDa&tXZ#@3hWk z`7|u_Oc}ki`as8ctjM#%(}*m6R8Oaj&k#@9Y;r_E7V~}6b18C-=o68rD_I;O(rl-o zj#=lsQ{eE)vcq?}$i(@n%HW=f+kl9({mk)P{_80T0(=rXJ6v)Rrf3B%w8W|rn^m#^bMXC5zuhDfMf`tx&jF@|WJdWHO32Iux;0*;vx6vg^qWHen z%=VHjk}{VEvcYJ4O%5o|y~8q0&n6jcoRm_)hTt`{XbGmiiOvr=&Sw-_hzXN0dsxb) z*etKEkA%%HWQ<>d(!N_nq|4`va>DjU7d2aGo+ls)JL@gtZE4cNenk<<+&lnun~p5#b*qr0>?FUBwK4Zc1qB9a##TF8z3f8xNeK6@OJDtz_vhpO=rhxMgy zL7&`@K1O{vTQBXY&tMP|gD)1dZzU^vQ}|-@jb@qNqO!Y^Gt=akBwN6?nwlMZHH0uu3G9cTC2eWy@K--WYH+ zloMG~u?`fmxjQiqtHKBfG_#?a&x&NsXo;wUo{))#JnKFSqtmv?w}+^BqXls^v%Mv} zle;tZu3$2EBohfpUcPbC<;{FG$SwGKr-J*IYC&%U{t*}W%_7e!FJoJ;*Xni&wYj7? z+S<}D4%_RO-HLf2AScwM=iJi7;|yyFaDKAl9NYy}0E}#6`Fg}8tj~n>&N#R=4Y&+! zAK*5F_yaD-IZI(qFdbruoeIo&oofSH&*Yk@!%|DLx30of0Rijq;KthcIIsQ99L;Ep zBH&pP7^A}kU+*0`ds}_DP34eVC-t;0wg44&=5uaWpGGi0;GU~Z=?ifCyOuCj`^wX| zh!Y7tq(?2`STV^~T-!rE;AI!L(DjPkQF6cT7_U4LRvm|~1X%x?22LEs>Z zP8@{?Rb;HLvHd=m@XgnXCPZ%i+>+z(scyjAKbo1{)8%WO8@H^XleOqwRSbT|Or9hx z7Dw`C4U!>5o1*uE>@gB30b?(vW#Jx=?S2g<*}X?sh zY>|#n=85w{^?qR-Ml!?z?3>W+q)?R%3LgaeVorPTnbe-bl|1y|M@aaz6jG+PeWh{91&KJDq#*%Q$^I8dL-%X;y__j!Lp&S^`G#`c4$QD*~)~)X_o>CvXjHE&glI1)AkI3Ko8)Tj5oQUL zR~&txlowH)u`P;}nr=LKD~))th&`<)c&9M)0VO^)F5Wk5FNe0@*t>)%s6P1S4C0sf z>ae{xnNpQY>P1WLhMsR*H1T*M>Vaq&fI=|CV;MS%>{WW4wU|H`m(zKnG+)G4_McO9 zmCRqSQQXjom5x9gY^s8!*1MM{F7tA*CgEL&+?LnwqX*VQGm_dF@y?b#gH-}wd5Mn> zajSY3>xM}I+ssSAmclWNNgb>E-kjouAit!~?~8H&^4$iDrMbmJx!s$DP!E#bw>AZZ zzuFF17rQEJ#h!;Xi`!`WU$?|?_#1)dOoGJEC%*}hARf76;NQi!!IPL#IR0FUtzk61x1QVdTr!42ePJ2Ed=DIce#rG750w_QzGKk)W!{! zAgX{ANf+IG6LkYFwd+Io7`%7hkiFVoqEO4JIY_dJ{8U^%tgZueAACKHNx79U-7z16 zl(>!cwnS~MISnoTME6l3aq3$Z;UcU+5}pmi^?q{gGh;Z|t6S%S(K@$$-s|8hDd3mC z(A?y__leX$ggQ9aT*l2BkU9y@ql51g;&B)f*k$^WNshY3hJ3$TXweE8)(rkmRWV7Y zfiDR}mmjn*Rqa8~5DJ6B5(%B)FLP7nQ6@$oT!A5(UV$5t6l4a^9cQahoN5<%pXi|- zw=cC0e+jE>xDHkk50Lz0-Dy{EsEfrB0OD3Zrj@Dh}-6{9Mf!v6&E+$N&z)(WbRUOLLTl?>>ckm6-JoH)LYlzY z7N7>oVHXSt*&Lxc;Q$DE54euX92MO~hMN$)7 z+QS{&r_a;#z1Lkt9yTS<6Y7zE7N}rLl&;U}4qvqI=Odrq>S+~T>nMUTsV!;$ZxU8OnM-&|W-0@4|VS24JGj5`PS zHRo+A_vwk-pF4;Nzy@8J%za>@XNRGleLdA`L%v4y$(r1O+QoUEno3$#bWeqYm@ zOU8$P;bYQ$TnwSLWDnQv=PNPBN>?qO_&oY9L&c{?vO3ctes_!UJ$cAl{iEj$@Xh1< z*4^!vAL0y}YxrSN;bOHIOM0jjW^Q(1*t|6}DCm&c#WY$q3~edW#z)K%4xRnLb?(5; zt$w$Y+C68uq^@c6!Jo{o4cFI*#4ZPb&Tv1DeRE?}t2a~M^K&jB(Qyj8{Kg1XRZ}A} zxfAZ2Ew)~Rh@Ucw*9&j4n{ewJZc&_Y+ca8#@@qoj-*5hSNX#gH5*_1SHk~HJL7dM# z1?ZpSkn9h@?bF8-Hy(10_;D+*})O`25-0OS@X#!5--ITUqw>!@YP0?@;#YrH+ zXK?T3!-kxx46nxyCW&C%1?K0M<(@s`z7!VNG{n=gGkqVW(?umeAI`z2rbM1OiZDe8 zSTucVjz^kk`JCiCD4a1<=tY|N7Tjy;Q7*ueZ|7{jIn%Ld>YYdW+5rgUNNNeYnf$F% zy1U%G*8x=ki5bDXaQwp3=eIlM066_|Ir%x4UyZtmM*g?-Ey)l z0O~EuH!P3$E9&y;8P?y4+c-HW;bSL0%*VC9G%36e-#Scm&I@I)D&5hNWb0UhixA~`c(KIR3Qcz@ZE5GWZqXP092%2uoqCY6v*Qv);0V6OExO=s#lh#cNGC(xj<|{{|2#tX{*FnO1*>>EoH3`nj|-;YEjAeM_x956OR2s z1H&jTCwq*3=&N5J{}bo_n}vV*u&S6wdGmz1QH{`h;B|go>2DtYZMQ|KZC*P-Z~f&o zy%HN=s{~~Q2Git3-U-6N6ma#w4g8gus|nH?wO|R_^65W&e}w&eR(T%f)9+L;`HJk< z5x;v!;T1nk!g-swTMd6bgTEMZjY%CsoJG1-K=^5hyh;9-GyltR5sJIJyEp#wU*8k+ z|0d{ni;7(lCx2k_r+nmJKK{!@awYsUf6Dvt;lrN1mF({p`i+zS%T`Kr4h;=uWoNTe z{=k?kmni+9f)98fG5^^}C@V|9E;ks(y;{h}hUz6vtHFKb5@~(pN4MXs4p0 zBBzVE#gOxX{P)xTZ{O`_!lC|F8LCmMcjuoI-A*lyQU;o($stI%QW3Qj^7_Ah!*>+h zarO)Hz_U-%e)5 z%4ZD}@d9q+Ucw7*B2$_c+fjWWV>mI6^&eA`{xU(y%{ZPrl5>|TvOZU6vwl;dVW+UM z{!@Uac_QztIiG;SMo`8K*LOs`_7q2~D^PL-es=CJ2w*3dHaIvKt(f(W31Q%Qr$y$! z$?11X%0H(V*<4anqkn+nq)hyaSO2x3r0Je>zK6&fJC4Q_#ps#Q{o{epYNR9kO0u#n z4;T#p@t_yd-K5dCXlY|GMF}I%nf~#(v`T4$8oMp`!`hFa&iOg#A@9A8jgtLs^ZZae>J~d(F^U|LKVo+biL=@k za{jTdAR?~hQ2+nfd+)HO(yniG22mIlkWoOTsf;2ZAWH9wh*G5pNDG39bdgR-GO>VC zZ3xnp5{iIG2?R(`2T%|~?<8~x7(!1-Nb+swdFFecN8&kf{yW$8&R=tF%-;8XufEoA zt^4JCVauB%eE-dm|4-WHn!C5Rv9z@GAFR2D6?ejq9y$#adw>Jv;%?c#dj93tY%qP# zwm-9}Gqb^&VZ|&|4XagcZn-N>TOz!xt?e3E?EHxzG6+BW4M4?X@w2nDX6EJx_iq0; z8GCjEd9$NJ3CDLppc@%)0C?c5SNw-r3Wjwt`%%B_=TgO(!d&Zf_x{Rp!)OG~_E0u~ za`r0;a~+U4^=G%grI>$v5j%L#f52^{(!UK|jVNsN#uYM9_m-Arjjxh5SAu=rhdg?P zD~L@lt^WmQ`Z z49fQKL5a~Plaf2Ws}!%iYFta%dV+JW>rPq?J;kk#%3i;}fl}K5IV>btUVsAA8n4<$ zAANS&^PGHqKEF;QBo>Bu?RZ{ejS?SlMKd1gKLwerAb7SAAC41iJ8)y8DIK@mS4+O? z+M1M%rq+T0*!Qa}7_AT7nb@8j@Z0#9RFMhni;H1wQn0q__=Iz{f6R-mJK|i)s{5oH z)j5q>#1LZb;+?J!uET0h(8rK4Ntw6|bg41KwqU&|CueGf3>!*i;E}LbNwzi}0K&S{ z1Y504pLy9br9c;=@B-w*;^N{VEq=$X!QlMfOAEt%u<8=Z%UulA zpq^E0@z69%aCzv{LJz^WC8Lj6nSD#n?Xktv|absOX=$bQ=Mq$;)Sj zYjV}Alr)93?b)TOfxobYv_PWkq9e{@U!->s-YtweSByzm8*rg{51%?W8!wJQid2WF zjy;8_)j;D?kp_*Jkc+9 zBj>s|+7oWdZ@tCWe3xGbK>E{ee@lCDd-_<-z4!QbpOmMe`9N~{DJZ(cCtWk-;{?1w z)vkB-skRRLy6!QnmxYfp19P^=^y7qJT@SsrCiv??ETN(qnwf=dNeMMOHS8NI-28&Mc#G+pS3z-ki+&V=*6d8omTf0wYG#x?@?^L zZ9#_I->cPKm*)tMn6>*Gv6^8Qj{-=GZsCeKEAtF9l+{zbyMEE<=H#TL&IyUm4hWCd zGm((7{*{4^?30E)qfbLudVqA2bXsA}QdMp1=aF_qnt|-ZZ@pj4@>pp5J5p!E`WoWx zvBowb;poP6DEb~F`i7t6pnZShIj_sqIMIy{%H=NwY?(93=~uZ{SM961RDPr$Jbv%X z2XsXT{y(i+zxNLBOy7iFuvwc*@0*y$oH5 zZ_4Afrquh;D=CaLq-d(KdZ^Q+HCQm6(nRhk#hMr=#~n?BuEbz1jjP6S5uHdVrC^NK zt4V{)-|o6i@W88y4>P~KaAVwm6u+!^1Z7J7q=&r%6hb^oNC*sC**=8s&&_S0$FIh@aTWsqJKLn8NI(n<3kN6U;CiwxRrh$45Cv~T!1k-(6nxF zG+A;`YVdJYH4khQV`kpj;nAwOEbKOv*e+H5&G$z((nhj3eS~T}>o<7{LeBJl{Td=i z=;)}Oo0#`T>9f5!Wnv_rvfjUv33BN2ehTtOWtGU;2Q8-(x=JxavmzzWDU(M^Be7j> z=Yb0zzBlW{Y1rF!24*i0SxsN3Cab&D|M|HBf+M$$*RPvs(3}c%o;`c7Uc@01BAFW8 zGu@#z4}HJcC3ipyp+$>f8f_}N){U;-&SK`>^}QFMz7Fii(l+3-S=~>}VxjUsF8&vI zZ(LpLpjYZ1ud^A!8U22stITCUF;nhZ;e)~1-@Q}h?~HWJsn%r7*1;H*8jCdWU_gXd zry4%=R=4SvcmSSu@H7Xl(D=621*isDv*(rx*RvLr%NT{LL!}Ts$KfNQOm`c=BDed# zq$`gmKG}3N^v4^$UXx`FvD4ahV9_vj`+JjI8sO#fuE97gUB?&kr6K5>AdjJ*5DMh} zO)3YwKAheGRKTs?J%p0=7$9F`h)mGZD=}{4h?<*mHIktgp?|mvZ}c$Jk{wdXHa3-a zd{w8(Fk?|odRDpoJ>*u`BsTz_%fINuTyvNv3J~8D`}|vBu)OPpmp(88sIvqCInk1$fjsQ6p*NdC+OQo699nuV zC8j9+>T*n97H4?$i}}jw<8bI4)di*XZ_fX}hBYIc{gg?XuVRLxqPaw>5<|Vt22DaI^Gc=`|u@) zMnpnVQc|QN(5^g3G4dZ>GYuqgsE-gD+@6S=pu;cKIC+KDSA zwTkKq%S3%aTd<`HrC+8t52?J@x;7YX1X89& zJ7Hj3;z7&n0KfI#I0Cu=Ey%C-F7`Mbudn;n;RwBl7&X&0oDROZereR9)?eYSiaEZi z=IFf!oh=3p$VfM_2M&1KMVf$#fMZ?oJuSEm7f)PMObeZ_x2zTmzUv~LU#PzLEo-by zqVx9N726|;<3Csz?F4q!eQQzNMU=r9x1N+LT@Zw}a#c@M^ElV=%+q&NY3c6^k0tnnxOtEnP(woNgBG2OHm|48Bvy8%977jr!AN+dWt#jn=5W+VT zh=#7VLs@&WS5jdA&E!B)x9e0Nq?p>4+@Z&nP37c!-Ob?w)Pobu6=VxU<}%(l&D^;R z$lBzCYxvTR=3<%3Gx2zPmuc0$zI!XT(@}H1EDQb)-#1%3n=+;zrB%b!y+HN2c5@zB|5GsD4!tY2HDJaK) z-Lv`u#6UUkZ!=|+Q)1@dAZfwhZW7Zv+gmGdkHNtRDd_Tpvfd)KGVlN|2Pt_E_e?r~ zlu0%Y_9Ih$?&SI)O;|9P&9VD{BDK+7~y1nwARYODx$* z=HR_41lr+Nca$eAieJ`vpMbRY>aiASgXZ(df&K>|2K|L=wzDxU*z^^dFzsNt=~A62 z0NsjuC(;afpjk&srz|Yh$Rh{*b^ot@`{#e!_U%3~htrawxm24#Kbm0L=NU__Oln6z z0j`&3*m?U~)30Fq(jVk-x9|L7oq%n?bj*rp>T#REs%OL}i%_dU6AMPFLVifqd*^;M z8GmXQ|GrsU8laxMyJ32;LqyFd0lil1C)vO8*5CVOW1+Vo*O3%sjl~wXz6Kr1YQd$* ziF;9ejopQ%j@YFVDwS{7MGmjC$LyD)d=RpXX_H99`|YkT7o?G=iQq2`a1N95J)&cg zMDzE3M{Js$h0-QxM$_CUeaRLu>Q+}K7{Yn!DsHW539XsdYQDuZaMs}1XT57zdtOba z!!%RxHAyJYJUY`w8e7K)RFkOSjdu$(VXd@-pgPy5)lZwuA8gcJW>`ivXg3<80ekn^-y z8Hp`c=WmOd5y7r+ic;E9mKLZE9yZg_(ILisd(8T+KOE-Yya2bzFDNhoDnh4s@EaiS z%0_p;YZuNUCBy0?n}>A^ZswhroxOXDi}kY~00qwnY}pMB4Hh7fY+vynQ0(?IobcaS zh4w!vC9aKTx zSZ7O$W2=Pz`$?@?1~3cgt^ZE*(Dyg=v&{e#UR2w@gQ_u*oQ?0O<^8^+wExL#m&iM= zoB$B~0l_5R?Mfj)HJ}Q(RGOnw|~@Kai`yI;#V&b9%loTzB%eY*Ps*OA}1t`?|Y0ChnduGl74#fuuv z-T$hWv9H%^g5D#xz3f$602zsV6F4FD8BV19i0Usw|VS<7OivVl%II@HmtbkJWz`yM`t?p zMAu2_>_OCfp>WEi!8ZL3MM?Bl_08gBbA|uLOvoJtifq%_hkx68oq$~{^6vq z4DGy<61nc)-hFEY9}}FfY+Kqg9{%i|EEqS}9&QFyP96itB9qnRVPE!P><@iT4!d^l-rr>_fTuwa8-_v%Hsp{`K(j zzr1}f1(+(7?eD`*bKCaL{?zvR?NB=eh|9Nc$=Ly5j2Q~K7QQ2>l+LZ?Ij$r0B#|od z7FuU7fscVk!vfK{=E=+uo`p_-;17X3GD!~yF9?u`(* z8NKZV1H+fXITt+K+}ucgq1DA$ZgAEsBpOmHjDa7tPG(yqMQxAowTXM>U4{22n1rGB`U%%%(Y zib6@IJJ1E$z(E4Qzl-;O#$W%a-TzUMo4`Nzb-?B89%Qb(E34k>lj<5QDawk| z05t&wm41Gu(ZCJ2_jaHtCT>9uHap0s8(H!y%LM=)!{0HT*-imve?uTwbyx}?%R^F- zy!P)x!_FL$@JySs%ltd9I&y8sLa0LnH2a#ndM{lyjG zuJYUGlAwK?rB<^%i?C3oM~JQMNXMRbJQ8q7%rSi3;S~v6Pk>#0u!qY%V7Sb!vx5XB zS3BV)5Gl_uM;~sV4F-c`Do5_i2h4V@ac5hXsfDi0$a@b}mMyocA;QDM1F;3Tsypp( z{nsZG5Vk(G3iZJbkk#(ZEZ zEThd=lN0e?$l+J>mE*B1e;qWjz%`D1e9-yjnONsvPY!mzi4aNJv;S}#AyMd$t$ef) z3be8O#JU>nZq;ILlm#!2dHbb=Eq#?@r_!gCFjuYY1FpAQ0g!j<3PP*411i?$!`N7t z(vZDBq`C5jCp$A%HGkMI^L`@_jPiMmLA<`4s21eSdnpK5c(z}wia3PwSyYB?rYY4v zWHO$R&fIWapVMc0SB{43X5eS3kLXqyYIh(>SVk7JaSug8(>m$}Kq=70D9}59J7X3s zy0AHpyRF22wU$DTzKkT#MwXOFRD8_o>pK*Y)W$Ct!hJFeldyqjK6!j2T*@y35 z#@8^Z;t$I^4jweC8@YCI-_yQ^KVt-sJHGe*IElhL1Y9q=OeNuuq_*EF%90}JlVh{6 ztx0OG#=|tf*2jG71$YNewsMM;BP*>953ln8(FXiS>fmxhda*)Rk+@KglKCUp;LEDS zvd#w2IDCoMP^IrT6ld@7-OpSt0ZO=F=TH(DuQvHw;jQY(GH@tUizV-U@aVUw;UfEL zGanxx>I<#)7iHeVDF1$!gqVIGY?=mPm;?>tjg(Tlbh1XEc1D-*(%kr}TpEW+@G*_0 zFJgp}MiHq7njUOLPvTQ(iHS#4zqSLlBcY<`XwZ7SEY!Dz5lnxJZ%5wo=q)lThOQPw zNro?~ND5zmgdsslV7HnDr|+!t-qw$Sy+5)x#Ip>yo<{y@SFK}WViMYHi!*zNp3N_a zT)08gB&Lf^^x7Ob`>GhjpdPwVnOD{_NKEuXKia#9`a+51qGQpb@LzwuUbq}vLVdTQ@_{co1V z4yiaMgN(pXqA*tk9D+yRt@z}KKgo}90b{{9a~Y9U5xzr8UIYGJp;9cA*cl6WejZq0 zwopN4iw%XpIC;SQoA+QvVdcgkZmnWv4T-6>jtwaBQnZ;XLzD3^m~Rt!G`s9wFX zezu6*3s6^l_CwK+^Tq(>o-w{Vzy0%)09+VvE6hS+wT-eZ>Xr9`V377^QO2mK3=VK< zLR&l>%+KIACFv|~asOl#Xv1lF0no3-)@b_LU=*28$}-D9rYfrnfBcP!yqSVCmaGQ$kNLCpj}p_!BqoDoo+37|KAoO^qEEnUx;3?)_S!Y=Mvch| zAjsg3VDs@JhgxcG9uy1)clM&!%AXj=7gdf${)TM1^?7rvIUs5_NMA!kgMg+1cx76t zmTmN+0CZHqjQv+uepZxe1}9az0WNrctE&L7IzXW`YB{8=y(?|ix2^DWb8wpLDU|5( z8my46*KFKNg{&5UjDm0>uFDkb#|wj_pCgj_esy*q!Bb-Jcjik0&E!Onpq61?oL6jVj!oq{D3;R9ydO^3my1IHgb*LROT+7tfBb!Wbk(}iV zj^hIg%WsnPR(*jHDg?m(N%nvOy07bb#Rc#>0z~;P__6$njm7S0$SHRLdw)}EDt5N+ExMI*>QE9HDyuPf1FOHO4H}|v8mq~F{7RR(%XYY6i}vX}kXVe_m(p;+ z)uq>Fb2A^nz+j=Xd5EU#<7noT594;ERX=o0 z9D0H{P+qX1JOvqVh#`oHu761k5TDhtAcOHVT!Is7%mljhLL$t09S0^EVK$mEDU2mq z=F+8r`hYFx&d!-)0dLnD)W{pQRu)J&Yp+c1xU%J6b@D#GalQ!fXvUs$F41S=7&Da- z3Ej&@fI(Q955lPF*4Hc!oKIi>CU+Cfxdx%nflTByeAtH^)|;$y*0hE+#-q=7?BY>> zDgs$)KV&|Cc@q7o?Ujsu(uwHc$#|+E!SLkh)Ry20@=QTE+y8i{9;T-SG%5Iw3RG zjY}Zyon)9^fIGj{JL{4Yn~V=#jz;34V84DAWheNfGi~o?1Yo{H41v0RAtMbebg!f0 z?xNbYfiZtmT~ZvA5+|;)x+x+46kx(7Fd#C_up51qr%6z@`uhj}wSHGbgh=RV$c&Dt zz7OCdc0506kQ8AbJo?BDpsenJvpFb@$(QD*-ks@Fzmq2Y*UDc&DmTxe7(pXpU}>uk zL0cG;o%5SvMxwwUP>E9$O6RrpSlGorGz2V{>Urf7MdnlRi&`9|L5cqkZ(o!%q7zE& zg%JPxx`v9;Bj@yGsu=Rx~LedH64&d!jD4`82WK74MRg#%QW$RSPjA;Fb5Y!$VrYIe`_LT`R??^ z@OFIS>nu+n=yGzW8zR*bx?;Rl8#`XuCy$utTe58<_m6CmarRgp#}D|_Vc$mKJPa@i zo2G_ajFkXQrjo*3OMDDJ3i5q#;)f*)7FJhR+XZyda*UEY<{Zcz_zTsYOgIa2m>J-;n|0;I@^Fg#8ZccIiz%ZWb z4V|^B8RK)#8RtsQwGN(Xdvp7X&oC;0062+0p}p0(?$BJ9EzZ=hZ2N37o-83SVLg^90JgF$46Y`T%HX9IkC495(YNqGLQxD=m;X5PxEb3C{<%4T;HOZNJEOyQMml-z2z2@aMMlK^f+b_2sYg1v<)x`i!lzep6>9m>c z|MJe>2`6ZbJ5-XYV032N2?2O4?`cUY7Y|R6VTAwI=G(1Y{_iJ;`Et3rxsxh_x<0e0 z&2Lpue?OTy4Ru{z2ADU$a;#uq=>pVCk-~W}CJfY~8s#>JCknxMny!_}acx zYKyS^L93Tpcm*ZiGi@mu+FEhXbE(5lGfP!=v0tEB-P#gEV~ zeT!dMSQtBW)_vRO(Dso{x2@QrSl~KcwK5&GgU@AaD@d-_ckLvJ-xk8w&AGlA2g%EK zh17P6ZF`yTzwAyjCtvO}VHMK<TwYTE?nTpWOks@7#fsuIs8z`{{1Ch&`ao0DZJ$r$qr}QP8bg?79<~&vMT;ySf@Gyn6?$ zgKuiuU9@Zi7U%O5rqbrmoq7fM12=c(4+skh83K{=C#Z0+pa1qt`xd-A_)MzQwL%NY zys!XorPb}v^EqP-zpaZI9UZNgaNGf|>cQ^F3{b6uY(6#Mu2ul6ngwe*oY9B7TP#K8 z?WmBu%%0D?1o($;fHS)sir9V};rMJbu8i4HrP=?L_OtmY!VVYcKG{{9+N%J#RgQ9d z_mkIh;IbRGelx=fpjY{bblip~d^@(G&go#T?xuR@AM{dkU`v%cTLTW7W%e~*RgNd`(-H1uuc>6B+b^3PHiD z=GH)?bj2H z%M?_A0q;Vz2g zd>%Y9>iZzU&zGn?z2suhSq&RSbUxdtwF!K;H^8s^$#1P{y=w>U0%r^Sls_;JrXLPs zepJIGho=RfxNf2a86sM4?=-(`x<8f{$85hmkguo*N^0wAr~p5?88m}&P?J)mUhj!` zv|+6LX}?S`g@<{XOVsoAfQl8>qrxtrY#ND6Fyr2}y^&%3$=cF6hhz8wmnp2icz0M( z;P-)4@0#_BG7l_H{_Nd9y7lG_*yXH>ZC=a3+Up4_(;Cjv+J+{yJlPF!$$XPi&8fm0 z<@t#p))*Y3#&H^p7IH=ldKVdoD%Hk7^ z;tCLq%#$VH;C}%%a${N{PFld5K85VGC)1Ca=!7W?tDLh|KVNQRHGm2+kMu}IW%It5 zBF8awwVDHaYsrWRQAiCXxP3R)crhueBCP+zSXp7G8SErYlS+9(STRTDSYbAn#$LlF zO2j)J#HqguoF90BqYPMO#Y??XsxDPBp$n3Mzokny9G#wRI{s<0IU##FJ-|D3Jqpw{ zgbWx>*IIm?q9W)zydW=$3cC(v{{ZmZ;@Tl`*+ zz5mvvz$!aRHq3a@o%s2ktn1)MAT793rZRz~`Y=$OWG)R{utPYHu>LBC$QAo(VY*$c z$enE&|GG~HbK`&2I*tKu^CnT&f;z=i9`@j3CkU?O@52e`1yQ9O5}vG0Em30J^-BO0 zSQaPeWwpBt*QkF@qwT)i&L8-QIS1Uf#u!`$NngAG zIxy~+5phlCq)?xr?FH}m4kjEtt677LWiX%#1A`-uwZVJ5HyViRulru$7Lr8u z&C4;05o&|!wPWb161|0$@MP~)S_X)lzlhP+okwPFV01@(>cNb3iyO77g&VbaBM#Ui zQ@3eSE;$$S9fWDyzn=QR#oSb3 zp0K{bn^G-nl|aLi!ep&}dxyY6*TYvbi@^b=z+|4)=LQZ>AN;vX;(m0yv6_p4D*feU z>$#y)tYlBinig4O;oA9Ms!pkuAvtv!v=}A6f`l^!<7CBm*!T_0ETeUiOHtY*u4sP< zFWdg&ed!PfQzKtLv^bCY#uaK$Y7pOaTqF!eGwID?GFl7F!s24P$C6wWKIaMr_wSQ6 zo}K^;OXqJ4FSRfw^F^UFFkW`v*+SUUi+Pubh-!LJ;;maG8GNCwd!CBOGAea;QTf%6Zm+B-P3Z(%&%X}3!#FE;~11sZn#xX!a zv4Sg6Pw{!SN(dxqy+Q6xDW_+A{Kkp0HI!9t*tf;$lz`ijy)8&s0cTRV1I8|Pr2lk% z>ydwE0icE4qt>1qq=DGKGI;+ADU`eJ1Fo;_ z$ml4LjsO$3A2i+N22js-Hi54W&RrM+2MeSNC$dDA=oZMvJ0EwfcX>?ko z7h-}C16#^hit8^>S$|#1D*Cte_`z|Fiw}L8K33hK z(|76WR*roZq8~Kp)cd6*Y&e9hpMbLP@68($maZKNI&iCua zy|ktTd&N@|y`iz3?S-OM;--8h>Nx@FJ(E7eAwi`VM+TuQtA)u8XPA^^Q1AZX2ES_+ zx#tdh-GK5B=s+hm7e&a&^LHDUr$T3EEGo%Ud5>AaDOd!ZK!O$s{+ChZl+Z(+A1|LK z0iZiQF3lW^mfwn;AQtn2#kGHMtTuRszY^mlmz_8E0NIB@fjdGY$+>rrTwgooA)q-|6NW|KV5g)Fq0g6xPYuKk zR(S-KNM1~?t(v`AbIM(g&&Ohtb|LK)WgV-5;pA;7`_i5UojP(*STS?eG<5-0Je>02 zwGJUUBy^HAnHP#xrI)EIEI+EcIPvO8YUc$Or@WsRN^T`$xr24 zJoH_=>W>eKK-B3iTF|h!pBvx7R-TAY%g+d0s1K^-TVBRgrE3;Y>yT( z+T0vfSkkyAG?9E}Mj-xZX8k(Cz0wEI7)u1)cs|l1)(!E^n<8@tx<+J5+b`!~`5<$1 zb0%cXg=>qE)1!cDxgC1F$TN34@!Nr8cbC}Rd1sT(Q2dur6~RSeokV88kmo~SYWCc> zscCCUgD_q{Xu{otcO%(5>Q7MFn{iIRz<}#f`S%vlVK<6olph5)~RT}z04a=J>|iRi{{6d=NT7*scu}K<3pMzJ_xIJnai{efDLII80dVeL{21nH5qSg zGT&#a?qO`w0F!Hl_-`kzE>FB9mf%GRBT zQgRshdgzYf$!f)jr3MdP^kC}e(DQBy=#h|?&nGGsOrt!)2vQ)?pygLaf>En#K_rP! z?&I_F_3<3s3OVmn$L7VukOneP@8zWQjg5q)X5zjG0HdWr*0O%*P~q?9&NW_65=_Tx z(A?^0IS=603Q5t(<}3hDb;I5hw(*sy%jwgRD&D6oOiMgLfz>QG0>x74*0qV))PpJA z+blIq*<@T<>~b%!LdPzfoOtgP;;cG^2>h-pc|{2bAm~Ib`(*CcyG=cb7lS$*R_nVn zCGmL31jvk5Rz~9yGPIgrjR*zwb8|0-8fj4wz}L+vS_izyAQC!gi0(8wOlCL^Ex(Kx z69tdu{T4@j$mKc}8JMgnUo!^XXr4yg9AtpcCr)EUS^Zc;nA zKvMTX%oW*miJT_;4toQQkftuUm|haC#edWlzvfK%EK0MGd*t(wuDQ@FY78JLT6%A! zQE41WA8R;;MCOTVv*(6YIH?W2HE%hea&h-`Civ7y4BuTYbgN&QtnaGOi`}0CxC3K- zx%(-bo|`Hu1reuWVrWmZDB3G<^Am;|;SuTV+%%RBZoK}&I8JTq5Am7LSTwz{L(73y z?ABN`>^7Jg2Ox-&VOI*4R_ce>(;k}m;B(sx9H4)PFzIGkT;QZ&Cw^nR(Tsfw9WZSV z05xdPKx<3uhqi8qFML~WRgu!2dGE=4Xn!v@j6ju7M8Z_8KsAd~gB|(tQjxznS{#nf z3m;b(>@Ak!k-~|W#!1Fh2a=37`8Vn;5LL%8E{T%o2l49If@S4xnmglIZH4>LfuVhd zQ(>c}Sc3#jW=M;h8JJtt80>ef_+M@=it=gtP^xFGZMVL&O?Th>tZHz_g-gLiAXZc) z6Pn+=9|o`SeXO1t>}e6~WNy3;l1C!RO83E-1#=&xNqIEye3bs5rmNm$97OlD+{N2+ z-5%_}3=YN@!;H?i3EaeRw(H)J`Q&xp%_Sa15E^t3dN&TG7Fy-Fs?*(cDbo1^^<_x8 zR={0=S1Q#|BXWe6qUNNrqfH=&s8)R1YIJGTU56B8+2cBU3$HT;(na>AQ@Jvi`$&a8 zP>9X5T}i&M&6rb@*wm>S;X-Lta9F6>*C3?!nqDuUF7AaZd()?NF{M2MFe2F+A@3&X zVWw%Vm8<G(7BB|AjcPkUQYFcmW)@`%?pJ^0f>|KUvtM* ze8hzXuXoMUKkDdCR&#z!4H=Liq?EQAp8u`fNWLg>F9i@NBAQ{=u~7s_rmo`| zNv1BC$WtqC@BgthYH|&BB6{sgnvG)4XiWYCg9MqY9+riMh|~`!Q-L%OZQfZEA3&lL zz7o}*8Ig{&xGvk`UOE6%4epXng?_EAqH?d#3!U z>Pcize|DGpX>r42`8|-i*6PSP=^Gu=6G}SkY9ur=WMZJZAgP&ud*nWL)*NmF)V+XG zZ*|4p-Oz=$ik12~%&XQfoxf_$9dSiSCoAUgNxjN$Odm>{2QQ5JW9d9Oqw2do%X({< zCie+AabM;)AM>`x$PkCh#UbOdJ_^MP(awg8gG22sForDi_@{Vt;|EVnocwO(ex`;j zrnkqOS*IO3GO8EZ8!Q%069q=1o#*(qJa1o^f=NhNCDP~HubaG*H=`8(*EY5BZD7VN zeRdV~6uE@f$Y4kGxuk~0X9&fPxs?faAg9i^JX35t|9SGQP+P%R z^nVNO|34|TyYnsxiiphDq_t#o4%HySZ1g zSB4uSmOW0}Q&);sP|F1XPQeiRw2)Pxb>?q$Su^JFNG9tM#NDmYEv5 zPV7KC%W3-j54EN9*WF5`7RIJYuZIt+3T}B(-P=QzM2zB@CSO7MEq?@d>%7}tE}&SE z#zsPoye@^Axo$1sSVA!kUPKKk$GU}oq|Z*{qrmf0vxa_+X_zq#WPpBfon)+S5;XOinTe; z*tJ>t=2$aGVEuO%hy4ru%(WJ20H5*sAFa-E-~atf0H2|%tegnk(DRV4x-d1feIQ}( ziJg4LD#Iqv!fbtZ$a{ACBgm{%*joOE6h)cWxMMslcysG)^`G1AnKSSc!vZ^% zCIFj2tSKUFAD4UV+TSSUkOSM^jJE6ELwxkN9-pA8ArDrz-JZ^m)Gh?NI^4^XfOf{Q zS7)gb`-C*ZlvhROrPn~!-d+HR)LgRy()jV?$1)h6;j|jb*W9_pCp8eX_DD?W5}VvXq1DiYwf^ql?Y47cfh9wGl5e z@X;rQul%>f{NzmPF7oBZcW*r0m|{xDHU;ZcU34zv9QPWkabxf_adMvd9Zq4ak;w>` z=2zJY9=&Itn+l%#2_OEaT-8|spp;ExpVow4BRIkn*^v9!b(J_c=5(_gxaXJd&)673 zgx3~}gl&(#JBpocD+zMA1b%oGR3B7@VEyY+!b6-%Jr!7xt@wbvajOqK+=%H5r!9JBP7&HvTLAY^{*QxGzY zJ~eiI43s!?e z(A-ne%FuTdNbBbzkxE?MbLQ$!W5Z(!!;p2m2kR-~?~}xjH4m=!dR?c6XaV~`f*tqQ zDps4bo?t5nM%h_lZx(T8CVmQHXmG853?p6s6xem=M_IqZ+5o5Kqfp+!g z4i|&SxtCJ0NFUnTyaDfQWJSo_)QLpF2B0;Q%;~CovQj~e$t$)Nb=JYx&TvkBpuO*< zYfvkHcTt&pOMVzAA=@5E-@|Jc`YS`sozp8|&Y?4O+M3dR58||euZf475ma-)D>Kg5 z&LirsV}TXBMMAMP4%PfJp&4!EhgX_J3t(~RUG>=V%h?^Tre)*QQhFv`j|Hvg^3w;( zJ**bL$lO3>1z(Q3=FA=4K>4f!wQL9&_}tE088e#{GveH=FfO@{GWGH!qRJ04QoLft zV7-c7N0=gim6IFJi+t?%oxd=Ii7&9c-OQ&KQwY(;zWKX%Z;_Vl`{{gZxzmK*A|!U? z``u=8mF&fr(pdVdLfeJ_FH8mYzew%@r!Y-HOG^nkJ`?Uxj%B8nc{p7LJJK2t@9)0}&OWhNm6PFgN!gT9ClneXd zo$My7#%tulHP#(gCLC{DH_)H_Y1@Ayr9z6i_2uY?b|&%2Gzq1q$6jnJn({$Z;{dtt8YpiVjwwdKK{L-OW8kBQ;}&292UBE58;Cw zmaE3J!t2Q@HX)+RBYGyO3AQ9>56-*(;{Sz8RaRkh>GM&PqW!j>ngS-||0iw#F-sG# zbx$0A+X8|!o*giL+3ueDK}j-8ceRjHSXa0FtBu8CRGoFdqza`!Rcc<^7Ja50<*wU? zP_kk~x@L2}D`#(Na&97X?$)g@xqbMw)w#K%00gJV<$ z_FW_4PIGUwi{$d^D?aDPpjkak+yqp3{;N5!0Q|$KIxg+d$1g=Ty=AiT;wYI`QI3YL zcazrRNiH5-_KH0%4)~+-_$HE9=8}zqWOvL%wdSWFc2tu`?~-!Dgnpo}N#@>LFc>H; z6xmMZL>u*-Q0_sQs0+&VRHpm#a4gjdrA~z?tC1)2pWCscIF2F zLwL33nGCB*P};ZN=7{=_^#HwmH;ebb=IhL^Fw{NzCYiHD_q6yYRo+YPTyNvW9!t7t zNOu#R^oL_q9(E0k4aq%nwJ?ZkvpT=ti86PHb-dy6MfSd_+-|p(Y){_bqw=)HP9NeU z3`k|h(^@7p?t9ys^oMr6S&Y^@=02H!UH3~qubKP9Pdz?Ece@ykcF$6q-6Dd3qI5J| zp*JRI!*i{WwVu)NB$jk2e+qy2O`GBLRtWJuD-dc?7t+)KWku=<$c&F&X z>Bv>yV|L}C*G*5B?2i`ta{Z5Hg7arh2jAi#^=?kShV!OJV^hLfsac#CgRzVe-?i=XxTvu%p>J#wTbwd?|LQ#_GrfLmIa%~+tX&+#_;OA!5< z^^nJ%K%u%6b!>G*US&4yTffoiJQuZC#}UUQn~CWlxzcQ@8+1K=y07#XFQc|r?J&%D zTi(|o33@N%c{H;bE*M+OXi2_0N6V)RJ?+nKMNo0t72_UKrX37Wl%E3pNsjS8_oXWv zm!9ITTb(mLncTaghee)a<{g;t$>iL4ui&;iCFLUh>7ACZ|9g>)qyjaT9Ma zfPa8D++VSq`g*bT>Ea0C3&m7pZz)J#E5U|Um$z0b$2I7vOM~6!-(Ya-@<}HNt@{^v;lv%mQ%?QHJA)b9*@hCu;`$!ml_8ph zOeMyfJRz2+;)?x7n--mjtP!~2o+}IJp7Vy*LQGCJdrMg$pN;O4De1cIK91_%ZI$~s zmbBqQDQG<3KFu*RY8pCg&vXiBs5TNl>! zlvEEKdpT=!SRLoOMU2UHqdrqhTOLGL4SSF2)c=rmuB!QB?P=DQi}(kx9tS0jJ``$T zw)%8KvKP9PZr3ZLB2@YL!w>ZZ(Cd=}XP9T!fh_uiG-(!dg0tqE?_&wkX0A4GnvCfN z^vn2CZ%IX;Qh5;DimcnnxKPw#1r>xX&4$A-EV5xI@ckf-QYI|jz^7-8aY2&NX%q1( zOkd9^o8u-%L}Y3vs0xod=65wAf%43e~>%{?oZtr(uqvO z9U+*^kM4$_W?3{y$k{{)_Bfj;`y_l4F>J8uSoYo-i(LMuwByx+?fV;&eq9L=9moV$ zB<)q1Khbx${F(p=82T~Iy;&rfd~S`YX6%5L|HBlVI!SbQ6U?G#uDaDvrSbn@+?tc} z7OmSzm?-JE`2+;^IlU9K)Wf(t_v!ggZwE(ko`#_n4tHJbuX&}#8@EklcVZcpx+Agj;um@9_{M9y!- z&b6a@UyN$Jg34`n?<&oZBzWUFByw} zQ2&F?DnppQ2P13)Xm5)veGE_Mf=?=azJhro-|k)aegR-%l+E6y>!A)hrn>1FgV}AxD&e&ZLEiXdTM~H(CYNj$dR^QYn8Dd)7?XPU~Jwd zz&!7u5MOlR=U7@LuIl+S)U2EaKETSSV;pBjayoY#!mRz<_YMx{zMoB(Yc$op91+%` zh-T*aq1(grhb{bYf}ljOclwN_b@QCe834X=a;M0z>dU-=21BgEtmT)PYr%Y(;Vf-W zk7{M>iy6ArXIY=p59+_!dS=rYIxL!g%dSzNxYnKHP$@BEk+U#=1X#4>iA@F@JEF(e z@rcY|$Qj1=2Qkvt%zArFGd!tB+HkJxy?j&iZQkwo-XS%et~Hnx`9|iNTaRvPHx$_| zTV?obK~cITAtm0=*;5I&+VU^J+;Ey#n@IA$R!3^c;QU;GRPZaewgSpFg%OF_@yiha&V z*-Kk`QfhDk3g{ouc%PAt&|f9G%9ys1s^Y6U%@Mu_aVpGC)(km9hwkWrCRjuKR{R3y ztec5ZC6qOuP8X5)s5wucm#eaG&z8dfxK*Z^09!?Rw$4xcr(Y>GcUzEf7(h5_LARP7 zJ>nb&bL)Nb?TM4LI^|Hr%JjL!K*F`nN(eRWQtu1|#+san|k@yXNUG`!T!?g)LJ)p_i7okKq@a z+6|C8b<+wkOqRXa@Lm|)+B>Id-dF5-srmBjcGg# zkbZD8o^RT^+3<~N{u{#+r3T&N9=T(gyLa$}uaOWvo&tE=v*crkBH)~=ixnc&kyjpf z+lXDbIF@njp)y@dK!!sUuK`Aq_YbXe(*c&=dWkv5xPef|L}@kyNWakQrdl-|&*+GO$ zV{PAcUq6a{O5r4Ghiep%q6{RuJuQN4a$M3c*HNQj^un{L`n z&>pLJG@+P7rlu@Wt~p)@C75M4+-uv|5OR{co~_-*>#RTmYN*1M9xael$g6eE2EyO8 zIf0Oubp&GRR%Pll%r}r)M~FvSU0UDl8U$gNzoVH1Rv6UxBZ;Tp&VnVG7WV|}?Bh5R z;(P5K^vzq`B;Vd=>N+Rl`2(6@hWcBVPf`t)ZVe!_EYJeykOO4)%EffPPKWm9XY_}^ zd{B7aW2NsnqU~=w0_dV|;VoD4-S9s~D`W|Fo zBGhZ3&h5=FGx;#0H^sJTFJ}ViWWJXv)J_jqM)xH7>>aYTCDdB^sG~Krbz?lQXIx?M zQiavIaD>xBf*fj{3kf(D1~KPJ&$_e+a%E<0sg7%pw%&95dC7CrKge|;gbm2oi^XYX z>BkrofD`%%psf$-os&En!aVDL$h^`&RI6Ih>ik_Ka=3IP8LRu2`Eo&NNKlhcOM{wE>^A=c##fu2O;);vY#UvuvKe;ykD=_{zu0JaRh8QZjaR zS7=Fb$!K*jXbUdtG%S*eV9g2XDsz0DQj-?FCyM06U%XrCUNm+`bs!!k1FuF*`#qwI zu%s%7a^a?;jJi8gx3(G|s^Zqx<^A06}89{~a+vy)Z6qk@?)orLR2? zkP|g!jx$Ts+7lo3RQfTluS0%TpwVnV$SkmD} zqmqdY+DB82PYTA*IO`SM(v!|jGcWw4``SksJfu&#&6ttC))F+THlYqXMrYUdEUTC1 z#Z&@(IaV0lbh)I1>p9avlat(w^pEWw5yEyDZOQ`OkoY;r4K4~7_{A;8_ppvCwb!&F zHkeS{CAg7j7dE0nZdQ;&JK1hZlw-Z8bjxOAakf#j|JCY9GKfidGH+Ti#8NKtfzq0r zOzN~jh22oJK|SFt&T4VTMec`_GojJB4n7kYgs(jJf+?rY=f>G3#C#?H|2GQE_%Xi&y+hR+P2okC75##26ymlDS(+FZ-w+UiKcfQ)X=l%1f ztE$Sg??|3XW$9D#1Gd_z(R|Zpr*|3nblREdSxM9VD?ey+kopFsrYB2f4hGt%l*#kD)&rjNTyQq? zO6IZRWBPUBaEDe;sjoD`-xM5%Zbj1)TFg!a922g0uHN)C(d~<#P7~7hsD#9RM=Tq5 z#vh5(bG(ME_GWuPpu=)3JoUU^gdDG*@o9FMz}E_{`g>hM$_Lj%Y+n3WBoN=pQ{ zzGM8D83QLK`fvCw)e2sCbA(d@?LKfNnl4AwZ7^)l8*Wio5XVEK(u+EVXq)snS#s=N zy-@PJVYHvR$548s$n{Zeo0vVB4xBsPxcF+E{KfC?)8kGXmro{tnaIl)dg3$TLov?$ zBu`*z^ZtJ9k7Lweu6jn|J8XkPL;2E%{KByV({ew%6TrOtvp3F*ZF)k!$x^4vT@QUF zEhmK3VRXH8Iu_QYJa^~Z*8uc;n{!qE3XTm{oG`FhO4(PhapWeht`HGKcR1Um=-7L? zcX>jM?pY?75_twbL#O^LDRez_Oc&{A))bOwg00)8apoH>CQ;+!=f2vUX$>C2_9X_F zpq}VBU+<9%8M^KD_ZRxv{rjJ|rjSM>`MmmTDF6ciOvz~f++i7~>MZN%;IDdf{(}dY zcqgH%feajL)fFHtY!u*jj_6Y2H$HKXGdGFSm}dGr5`E932@RNr8A~lD^%l*wcHihV zO^HFOvkWW)hz;Xr69RFZP zPAg&IF`!WT=WG|FXEgVpqCWfj9;c>{*zL_S2%~Jde)ZGlsdL55K_T)`_O;07ftnKkf{+`Z>3tZ1PqK=T(TJ{3#N=H2-g| z)Zazu|IL-sRT^Rvuyv){TgWDu;a<1>oR2tIivCOf1Jsh}lCyjKOXQBem!lkGDjxt+R zr3hDEO7bfIY(89xqZ_jJ%+qvh2ePfhKa{&B>+27joUA|0Bp+uV>ZI1DQ?6NFKG(xv z7Tl)Xq$QpY^@6Wu0QFRK_DI{!W#d}4v&V?r$67o&dxR-**op=LF&*$n3}&M zmlNG`H6{N6`K2ELRX(2JdjjUp2U$=1^kb7n<^vcEC7y+Qq;%$Q0D)h{@V|fJ`${3{ zYS_r#O^6QffB*3R_z$x&1q^_C0rc1%!^6;bQsoT?3}E~h_)(F-W3Hjtm&60{lm~k` zNyU_Fvq+8K8Xosw+)6w`lg}+Is0X)&mtAa$QF{MpD&aUwz-nN-U2q{Be?*VDs9(z%EJU|5p2V?YN zF8-X|`B#_iuZ#M`%GUO2G5U8l@`MLv=;Ti=h9}f_(In!&Gx?7egMRBd0HoeRs^K^`S zj!(k8aOl>-x4-D4zpwYFtJo*y>)7--@=p>bW^W2Ej+vbjVP{=;l%Jmkvt+t@BAM@g z+R)dLW(}D2E#aP6)pVTs8$~;6S9cJ%ViHecie~_oFJV+5r+<3#|8hQ}?o{DRQtl`T z9&-A(Nnhl9Pc|uB0hg-$a{=`K*abk1#6@cG&#)Dhi1UaiQ2^|qDXE%~O}oG9e=Yn2&07clc6Ph z^Gn*5&K`xX_<>8EqT;cu8vmIEAj%d-QJ>)MsVTX-kkzznX}(*Ux0=VpkL}iC&eBB) zLp=vr>YnZO=X}15+@7-*-(37&t=^6}t13nCwy_+>m>g|(r0a{MU>xz<6BD$V4UHc* z-m0Wp#g0h-upE45QeWF3v$3ZFnH$ANfdZ(Z`}foKxWca2zvZte?ZizF;#X(G+H1cG zStkSkIzbC5K54Ixo(`M{NuZlagm|XRcF&&o4PbMaTqR$4S7U(IjT-tNbJvh7(6zc6xfS$d*- zR|1s#+%gL^LTkygEWO_SaE46tw588}W@BKz*}&uGi7dkk{$e}Zxs78Zd)2BYCXtV_ zt*x6Wn$+kjeF$@WIsnCrg{9@9_*EIGbxr+tb&yPmfcfE9@=7tZXJl62s!U7^=*O9N zGKnVnr0qGcRGFx{>Z#H&55^X=>p9UhV&`JM&L|%aaH8k+Ummfy-tFH+KTVu>@WD4d z9qKLLgO_+RS2*MSmrP=dLm-z=P*xIr&G?S-hbMjsL~RTx{&}G zo3d!5;L05M%By%FZ^o~escQK6^NV*CB~EVlSIikea*r?YvfC||Zz7K3FScWbhgktW z^T(QWZW<@qgbQc0y@&T3O(KZ%@oxg6G}xvI=JB3tB}jus3ry~1yYIKoEG+ss*P%?DEZvc8xF%mwzRhpJ~hhsR5Y84i#P@T%_&|_=eT>P=BDtVq3 zF_3Phx8juJvRA2-UoGuIboMf4X=kWr=q1hDQ!MAv2Ag9R?h*_)4Z?V#9ynq=#hzNI zQ4>Z4P`24!uHs9HRP3ygL1H$8(b2-Dj!L37Hfif*T9!TtV5Ydai%Haw%XfS)1WR%A zBUUP#OyV8KE6S;Mgif<+9A8sBA|Sn-W#mB4kmt_luEp zaFv;^YPn_U0={|VqdTs4-db$RJ{9+P@v50qurucTH3{@ zeiY%ei)O2i*4*5%BUn+$Qa?Jm@EX)=`Ja$>@!ahje~ z1Qp|62Z4W~TMH6OA(FZ8`nA2EJdh)pdqL0aclL7QhS5$SG&GrJ?hle4i!}uX@cGjVikAcgiww#N{}J5;}xgP_mg)^ycEy z6TR|EFS>6ICJ#0lCbb~1!dJmQ#WBm`*I6NJb9N<4hu?A?x@n6-;(Qq*JW`Zi0|v8l zpwD2jPe0;mUg>n=-eN=Dl8Ovk#CFz2sp;g6#vCnHPO{vAg$P+LgQ4Eu>y6+XhLJM* zC|99vCr-gHw}WL;nL3H!sJQssKF>;=%o7}q(~wXiWBywHRJ>hK(5rQ|5OSs-~emkRE;4@>O_o<=;j_m{3GP4aLCNys8 zkmpMzfhn7~8s)E}kkvw1SKkwDVjKxxt5dw`g@{fu@Yomksi6L$rm55{PlMYhpi}FK zU-e6PB#!LhLiqH=sZ(L+t0DcJD43L`d7QU#AdAo~C~o#bp66mYi%Q<}e*aQ@aK*TZ zmVR-KgH$|kgu+n1;MSe&5~P$@`LJ0Rd35Ym*)-wmp`dez!li{MAeTe;+EP{H&*!uz z=*37=5r-iAH4ziWX=#qtb!7%bC77MM$LM^qO@Qw6-A;%5T=LcNQBvJg-4fR%*8T(X`GkBvH!rw$c&m(+p>sL|jh0 zN?xg$$=<6-wD0Raix}Y^k26eYo zaA>ECSpc#1AkF5r$Pm<=7u4^SG!oV>%_e}@c@PKL`R=f=!BJpTx##d~Yu8e7pWkOS zcBFogDnNXQC#L9mJHVH57NEpiaOP*R8Nz&|KIzJrCSlz71JDC;P#~a0If;Pmo4iCs(s9W8=FnZzN8?At>Fw_z5{kxi6yZ5 zQ?o*D?cl86rJiDP)8%%%Cwx5uOYD(C1$aSm4+9y+Bp;k)qk9{4iN#iDbTqY9&p$)L z$L!L1_1IgMf6VNagdmBp66+gn62dRvgijTqp?BJ(Cc?LM=-jo3BKbk*_SYq3T2N7W z$?|nSE(dvhpD5hgR94QrvW}@VRg4Rxx{~0u!_^aoAyawD9M@35Eu|64S}*h4&%K$c zLlFtB2<|wKwfBgGf%pqt149?1^l3|mJisN*YV06%K62>jVhTsZzVfBDURSO&ar}zD z4weH$k+)9s8z66u7(y3Y4F#5?sFp7FZ>p_4FVi34OA<7t*Do@&m6lh;7Qd*cjdP!G zxiCJbBjEZ;B4Q`L#NGkvB0ffzcX7z~)7cxaB+g4jtMLlat8^b;PCN)8!5^vlNJ+Oz_;UMULL&{FhMk z9|05O>SJz-2ui}{2m4d1dfvDm#f1?RX!BVJL5eEdWf5z+WSl>|w zU_T?%WVcUHBHrmolCMLrCFkNz_ne)w2SE(1Xz%S1;~!Or5p9s#$w#Zh>+N%{NTfy+ zLCp`5(I4#yfs_auNT}%yoiT8AC^2fhozMG@vt1O4c5#a*Bx~u@CGKoTeCS2-*jByR z6NC=-HT}pQaS?xlI)TkmG9oV?^&L8&?gg-ph|>ueGHZb#n|21JDC!(&#r^qoUJiY} z60v}&>1K&rJYip5=t*AV-e!ZyX0+T|KqB%wBlVeiXovLtqbVDDJ{>wBR0;sFs`7fS zaW7{coMxlT$g?&p_49^JYGGlv%$Zy>0($$Q_0@P6z^#gtX-_CG4gQBS+UIn5Ic96HE#iRW)mDToycQmz?w3z{ zDB{-6Q*)jHtus~$_wD{Uy}VtrmPs14D681 zT_}Q4ERUW7+-7hVRkr*&zRe!*CD1p=aD*)D4GfUFK|@N)Gyx15qK_#Wlq9Y^2pL>g za;3H!T2dtQdJ!)_2J%i9XG>&KhLYud-%m8uU5qm9o)C*aU>6U3ud`3ubW_$4jK0XT z3}VLGCmBWAKb6=8ZEe}caA2{Dg6=<(ME4iEI84{O4*dKt-Zs!4?B?qTFxo+dBbJp- zy@e^ixJ zC;FV~|4*?+KYR&}fUyknh&zsNzakvY`juT|^aV{igM%!7DDKzmB&&QpTuoR8@Qvmr z@)*c{SN6x}ZomSe8OOIWqx%l1nElIr6XJMmWo;b*Xg0YjP-|ApA7tYQ^J4GcW z&9gHhe*^aaLooloKtS_Ewt)5iT;9q+-c@p!Cpt;B76@fwVRLRYt zs3mwSOy}ZnEXxWE4harEeg1zHA(A=&?Tlol z-(Pvae@OaH5tsVg0#TUaSf=mAQ*ecBiIrtnaB*?z=4M zZTjdpHtzc4CS7M|=c=D~^B>>)&tF+RPU^;B7&kXJUlOfWn#sSt?2rHW>CFC*ryT3f zmdyZo!TjN_QI@8ZR$4}N{ulEsI=)zd!8z~cQhDRab;8`ukA(*`0KO4`D)2W+q&&94 zp9@fpZm0R|q?PXP5hSR#A?vXtf$FMKMYt1$?H1AuzS5~ky|s!#fU>d!<+Cr1Or9eT zHa2TbIs`aeITQp^jP)s@GW48-ZDY{L-U%0A$2$7@7&smTz5^&CrL!y7nxgMms)d*k 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 diff --git a/Documentation/installation/images/rancher_cilium_repo.png b/Documentation/installation/images/rancher_cilium_repo.png new file mode 100644 index 0000000000000000000000000000000000000000..7250ec1e7dce37365fe6b72a7a68d60446f601ef GIT binary patch literal 258251 zcmbrm1y~%}@;;1{K#+t0!3ml`fZ*;D90I{LxVyU~AwY03UQqo*?e38oH8yO6Y> z#C?Ce(Z|1$%x%9<1hc8-k;j5NhCnJ8$q^sRAa3AzX@cXlMy0 zcIj+??UdE$)l4tCWRdsT{X_=k^KL{K(jm-T)HOezuigkS*4W~PmoS*w;p}NK3`)z6 zm^)qR{+JW5Y;#bmX>99IbOJ7xr7`p(2xMX$6~YNpjec)6@r@FB6)ONm zE|t@sfAX>|n6%25%|^CPAuZ)DMs|IHW#k>pP`s3FUvV4uxK|xhos~@_;57)l4z}}; zX~1hcJo2kqDn-1svCTg@d}iw9(9k2-z?4LSUvz}Lfcz5{7Xb!GzBv)y$j5?oZ_{%7 zvvYnbX)`iY_+ydgk6-bKBUmQMeJ42NA9)3cBdn6I+#tJ)ro$YiiIqyq^8CyzMkm$( zA(s~kPb{2_{8NCwLFEaJgcy%FLKrFeUBEjJRm8VnG*x46?^8*Pn%)w2eZpW2TEbI1 z`6#7F%INb#=n2{MGExo3-sgbU0+K=q2f_J^(3N1`CC2Yj2R=42gQ7K@TACCDYlaA$ zepiCRmlF3}{59C44(+$L)<4i=Y^khZ2yJjVFp$qbGuI2na<5i1(H6d+_6}Ywpk^_6 zXPc28&G?)@sDCp8-wD5%oTf+9JB1_$v_*co9(wXEHSJpI>~jekfn}g)Fi{&sm%7AW zm3ACKb&|0V&%87A)nQkVJ4?;-7vo@}6Kdq`Z`#Z{sfA2YcDZi3#JOSljUGc#k2RxJ zNH`=Skh%Owjqsu!v()98?+Qn3c~m(qOwWGU_URdo(Luf6+nFXCDKGfu>&fQkW;vaj zL46pga{%a5s}2VN+fBs}SevsFftR%MwlzmWKGx`5vz}MYFXG_|UW75*z-u>SAo$5+ zA}$Lu#Up_S{B|^vjC@^n8DGH~>SC*6(6lI*5RLlqF2b0=6)hrM;3XsDwkX*U6sKAp z5T5u>EW-PdQhfUI7Spp0p;QF=)c8}#1*xw%$FpDxa#L|CGQsCvJO+;yz7z`5L|BT` zm633MOBR54)jw1Z|2 z?9*RU1qL!zhUiZ?r^8^S(e(9l;^8|wYE+-c`WfmnS->g>#psWz!jHqH9UB&+?zGP@ zi6r}$+aTBY2_GP6`V6$;F7_TuHXvEI$t}elUb~RoB?yqecm{o(ia`94>1EX0V0oce z)KCgSvg9xBc}WL};uK7Q<08&AxKV*qZMAJ{ZT)TFwv{&7Wnn%3K#^hUsi+2t_Y{1u z(>@4Ii%-jNiPed0Q-LW9B4oNCtE6@)YC`m6aZx*6@4Dl<+B|eu5qNWTY%j)}H zm<3I*kf)cgdrk5~{eyWvJ8Np9jFxm!I-9(l;=a62US3{8p6ieHAAw^yc}hQa6}bzX zbaqqfs_Ig>RCtxNzBdYa#$DN-CT)XESQ4@O!(xScbBof)hGmEMhUU%QvJkSm;0uL( z##h1*!H;9n9(?T}#TCF8qAkvlOOmCNer~3~Qp8f5=+TdusFWDM3Nk-4XRM$y5j9;i zrJKkf;mSSzkd$SaP4t6qlzx1^*i+&9CA@w-bIlW2{m1&qD=e8B0YCJMT1UFaUyn>> zj(i`|nKQ_elg}rGX0l3u7 z%Z&`I00z6MoX+o*pTM8mpQ!AxZ!NGkqd}kOJu$+wVC1kI`Q3Fm6@sv@d=p`&N_g}yJ9?&Ry3O*GqQ(@>dCgNDzdM3Yi3k!yK>gB5W=XVFA{teep}R&i z!A?I?3bbOiV&)LtN9X&sEt;kp?Fm07cXD*sY}-x{jS_L7Bch+8pA#j7E`^GQ%7ij> zXnd2yYjV3uI7~~?OtDLG;+RWK=Y8oQH1sL0(?H2G_5>$_+1XWeG$W=Ce(YjuowN;0Qc`h37QJ>6g zoqy8r?OunjHyk)0#a)sddAFXfLNZ?D&euyZY~ z_=trbJw{a{vP&^;!#Xf?_58l~{a9G;b6!CEXQeN^kE&7QK39vRKmGpHoP1A2T}+ZJ zDMR2ngPG;%oXO5+!VrHurhbNgz8-O>?AH`rcdF2*?7YSFdyWm>H$4|KkJ%mveX0_1 z(=*evTu#dJ$zqkzit3b0<-hbO6D;GX<@_8S8DGYn?Jc<&eX3ZesHG^S0FtRp<#OMy zHANb+%Oy&XO@pL)y$uPEjaH63iy&zSt)J%}53^^VKd$jZ^V<;OU*h^0)}>J)c0$q0 ztuNCtBE8>NnZT>osJ5mC)+?@2xMAX^a5q0oO8$|o#R*?4QR{x(PcG2rAbBW=|SiQ_;(RPfc$9Fl6BAFt}cAj|?!$k|r3qei0s%*AX9foOApR=2y zIb&ktJT>W6?|PlF8VfG0bVWOYLSw9Gs|(4BBMa-Qrkx%8@rzhLn-dp@sLs@cRu((V z>Fnf!_*M248Xe&s{q=-ZL|sIW#ezc$*t`n+@*C9GbSj;rmU0Y}<}Gln8Y|kZrCOCU ziwrduyczE9I;s{eL&lWH)@A}{P^=5ylB;c1PW`xq7mW$>`jkXB+8ha;ZznoKEA{7CW2+_5t1>?}r`ccRlp$&9A@f zXnFIFE{zYlwA>0Ei-rZ$r9^RsX&-?dmhGC?(m)5r$xZmKmB;EoD+wkPLC$lS^Db`8 z=j**1h}C?v+71CWxhKWzb4Tu9&hx#?Z!N9kG$tahVb5ns+IVYjCr~NslAE0 zE70<;y%`%Pne*OvoZrE)mR#6wDst`ga$ffwzNRKI@}%%AyfC=VTeF|s;D&dFhgWF) z#(zQU1G_dv1@FV}3@ado}DV%{pAz~b6zr4 z8F^A+Ydb?yHu|^pZ^`&jNJ&X~>+69>NWl9@O-*l;m0I6FJjJ2TT;+Zi)3 za&mGqyk%lwVxj}iptEe<#q?iSva`Kr%U(d+_)vHl{-5UZq1ZQ% z)xf|Az(|M)esF<>&LQhQ9~*Bzj7r6H+s72Cn>+}VeA@oS?<&F&O>$6y+ zMdte_>7)@0UNf(rBVY=^!2W|bUq7rzyZeeOSN2e^ml zB?2X>X%sq$H}p1c|DbCR!_xfhQOMUP%&!~C$Xj6r|ItVR&Ak%vO|Ph^a3~PBDUmo+ z@)2Gd{j8?DbH;1rV%+|Lwy)K|;vWs;b5q~J^mNi8WW;|mr4O>{x`=+P^>Hz41-kEA zrk?&Y9f3ulh=*$5y#A-Hpack%p!=tTejXaVMfqnF`^W+o>i~Nap^x|4DuC!ASN$ z4g9MzxW|Fr&j{QVma!r!I61SsApXAOzb=0QLpYC6QDc5|*}PWD|0E*z346Eu?Vnbm zM=yRcQVBUZT+f{Uaj~n#=CC=4C#?1ZzxsU=1O!n{7Hj!V$|X!`HwzTnnGks?AYp%+ zYlGLAk|ip!VjuoDwIo5jn{pRlUWt<4Ei;sq?2df@j2P#qPzB%Bd$ixI@W8Rm4asaNRn2E@q!<7G%Pe4fbF*+O81(gh9<|$-1 zhxGZUYNGt*;adfR4Khy<{%FEHj}Y7^ zJL&(Yc@!Ykc$i2k^Dk^O~_(@Rh=50q3F z@H#&KX|(_IR0=$O_O;R~d0e4NT7t7yVy6j_*$z%(QTWFUn;GA3hS1tqA=tB*I?+OcM2(F|PO@y?k?dbDdP$ zp@$DxEPZVn`RD@~$E#Q3!y_ZdCln5$|3jZ(;Mz4vIXT;<-}1c4a*>Ok`fcU~B5+Fh z3xNIvofy2}`QyYt*YI7`<7TG%@;|kHNuQ27pz!-G1Kn#jj`?{7dHbhXwZVQ1t8)Xl zBKec;k5~H7v+!RpEC2SFB|I`URr{^+M&a)U_FrZGr0Rc>2o)$XIwxz5TWLZ1r+20c zN3~ec41omx!$l4jfzVfXPEtzB-l^oD`U6s6yuQ0lr>Cd;adI2~PZ|n~U`L8cfXhHF zOC_$SSC*BPwVsZgNQ%h;_x=0JXHTC}4N;P1f9U?voWQ~S9~un$Az#s#Y*deW~y z*@${`rxHm)fgL986tUDYoMlzBAC*h>w?i%e4S{8F=O9AWuOVp2z30P`wtzp`sqM0e z-{s|No#N-dI<5l{yx+C%U)JbLi25mVj<(Z@<;^Nw8i@ZTb1ZS3r8hP1QN+51%c=S2 z?&eU#ET!XToI5_se^G^h|0?hli^FBJhLGFq=Qpl5EUEymq~v*{DkS6=JSqKx9`2Gh zJTZ|Y{)j^T zP)kmlpR|Cz4L9&`-634ViL%$9fh3wh{ax?oJht65+U~#i^ItvwWy_cB*Dc>MV zMDzs4)_oOr}!4Fa`GB!I>a&>4~beZ6hg@_C}ON8CVz1m}wh zUAtnVyE^)`spoh;FEkiefI9QJIr9uJ1T&dQY% z4}A74E5V`AvcMl&$&ghkJW|xXNzM^J2140#Z!0N#dC)?$6TmIdi%c69wMHwj;GPrm z=i&P6f+S#zGYHjw{W|ZNQPEyOLLh(}7D-@lT_wdI#Tx8vNO?mZT^)tdg8yy36mUZH zqoCsy6{3xf%+CZxR$v8^;Ww;FmHM^$WsuPDCcB#iYS)w%FgpyP$;Tz^L3}_;+GoaLW@Ii4ah<1-y$Ri{9v5*^4!+v^0@? z`|Aw&`aCZYN*o>;rpR*0`mi-DG_0^9XSj0&D_rh}7$DNUG_@dg>24Yc(v$Bx zPil4GMzx|e0mpAg3q7EMe4=4DLJCAHh}=HUmm!&`~VVxod@^%Wui( ze=&l8|Jvp5+ty}aA9?VWMCG*q`lT%rLQsg$t-axWGImlRCtQ-xz~OY`rrBjUjb}!2?pNil)#ag|Hp-%%lQsgRIofor`juUX$1GtWH#@4zQ%LDyghYABU{^T@4TI7 zAo>-L{q>&y>t*C$ASx&*tWFuHMH%+;MMOs%7=M-HW!0Xpvb5B$Hgl}q1n;P)y6>sg zu13a|d0y)b*E{Q!%iSLjy*tjbTkAOjBztRY!#J;7fBsxuPpa?Ia-Q3R>XYvy$R=}q zocCunZ;a)2KkJ$YUsJq!^TBNN$IH|0v8c0MP&5u5eK_EJ8we17nMzpt2axY`|M*eK z7BxjqZ}2gCFOgR7##CR@Sa4r?ArBuZZ1xrT8cGP=OPz%tikobsZ330c0=)b@^!+T98L zrh7i^;>J2Ki`l5Wj>3_^;=xku(Lrlij~^mxzkAf-^99f97HA^N79xQAgJ$idobfo1 z=mSGTA*wMGzo=2|^G9Q6R~Xbom9^1Xt`Se;kJXZ)eBm^^^j{+-*Mzb^?%D)~_9d^; z^D)Y>?TH_8f%371vg=N}RLOpdB#xrSEmXT&CzYas{?=?B#);GhAu=k;a4er;b=E#f zV+xgK&1~5X>sUpnD5lPFC;nYAS0>|w6Ba1N8vOQVAAH_eVLCG1(`NUvG>HUDs5z>6 zL{2WeJ1SRIEyn}ntn9k>{?6U-WYc{&j>lMdaYD!2-fSXYN%3cEYyVCpr4-lo&IEsN z_kmJ|$m4RIofJo9-rP{6dDGWwOw&^!wH6kv_*goPD$D~ziktg1N~zdx@OfygKQhME z=w+kl_3CHboG$2;{aR@!aYT|;-B7O6hhOmjfefjAMUeF_ieb_DLKi{Q{+e zSnS%_O!<(&mam1kujhG2m$Qdr)(A1wYMplFA|j&B+}F(9KSuNLO&-S;_wT&JJXli- zh5ujd8KGD}K_ODpb&d7teBoYPT>R@d0(RxAldTkT%>GY+;{B{7gX7rY>n@Dz?7j>M~``AYhvp*Iz3 zDI0%~Y$`CQayH8}?sYy_oh=d7H#Iz7d`qUUl&8WVHePg1Gjdl@Y{qakXm@jAOM6l9 zK8Fi>5Y}9(-?`R;OcKdyzh3M30tbg`Bh5Rtt!*@h%h4?Oj=tP}gMO;Yvi{~`MNW1O zu)Ln|m#u4a&c;0_Th`)$ZYJwn7|@k`Y()wT31P+VjiIGxH5&~N!lpHv8x%%E8^6BZ zZ(8e$AYcE{h>NQ&-dv4LljdwWc>tD9xk}9A_qf39J%&r0QF!V*ixTexT8^AEA1|CL zbK0$&O}wbQ&5o<0SnLI5e9kRLBfx4vUvEH)VA_dNygzU&YWp7y*q7(&VA3FcLrL~l zy%I3zKM_2! z7tT`>0^jJ|Nrb)-`}P7Dhx`0ZV;a9kI}!0rG8&tUgQw<#K?R2Adrc{L(R3Oe>Z%!G zvraPtdCEokE+|n@i7=pI8@LPV!M6+@3G= zF1H7-^)fV7l(BlRT^OF^sen?kG1cU_95zYk>KvmIS)1mCZcFRRkn6CBDa$*^ch91 zV)ZTD-P1?o450v63itG_iP|bN_b%)FvZ038Sopd86)b&v0d89x%iA#f0ZJ~u=6jC6 zVd{K6a5!w2KW(mT4rN}ttz%KkCLV9szMjGrmz9mZy~gP3j-oDKsQFsKaX!2LjF1q@ zHr+`=!eHHS7(3I*4DNaXHJkvS3`;>}Qh!;!;8aQVOX6fcB72(pylv-)GxOXjy3I15 zAkM%Oc!kJdvpM*k5N&x}!@V0=rCHPzE8)?u+|H&HryA`>UxwV!W8&k}TwyLDX?ZV) z;xUiYP3~j_(^vR~D|ZWH@NTkBN)33QO`Wdg<#zNMr_n_rp+TI!R2cQEv5;)tPF($4n zx;}{?Kg5A%-S^5VesFSXxg+OQu#=C3U#aNLXvA`OX9}In?Y0M8%A^C_>V3m zny>Dx&A$)4a@JzGT>c1Jzq+DJBH zve9jlKArj{R>o9?oA(1-Ao?|0Jih0VOXX?rd3BmssC}D_eKI!Eb5b|YPc$Os`{-oP z6ID>BHk^dZp`=jfzS4CRq{ENPYiOlj=U_TjZk+2nYa<-chdmiZ?%N(5*K>18!fDA0 zzxs}(KaNHzpX0i0dQcZ6$EQZ7qB#V~tFu`mbG_Pn3^8XD@w&ft#KyX$dUIrw?50JVE6nF_lBMmz2R~7nc4^1CSvuJGNyfK^hleS7lQ1mx zCA~tG24XrXS-K>Jv$o!y*8YeCEF8P;_45u!Y_2T07xKOKWUDU6g-8Hu<+`^61mZ`RG0l=}! zG6hR^OKnfb#F#Dfuh9(NSNjraT(mhcY*w?IY~@F5y}i5D3-omA72zEr1WBayMd^4A zcULxr(QY}3IGT&9mxr)u$oif9xE^=cH9|{>4~8Qs+-uY zad^+KPInA@qF-C74YEEedY>s)JXe|`C{S*44xJL_yU=aq9IiCS9ZHK4pveooe2($) zGjld2rG%S8Pz*M&rch=S1;?8<>g|eE-4U@FGm@Meg8MZ^c$A`N)QtpKKZFMF?diEoSlyMam z&d15faH)Rab%>{qSZKq<xUJ)`X_eIzG-T(xUE!8K9 zg-1qz@eKu=Mio{Aq%QdLJ7)(#^+!vm-F?w?9CM6}k2isf&XI8!CU#kDBs^D3#y9Kx zVm_2k&)TcXQlH32-*}<75q{UebGaI|z67mc>j)*H)$jQB6s_i18Tw5(h08J0eIGo5 z((`8L!&qTjbRlAnw5xVUi2LA&!Vh^0<7h!@Az$NflI+zL@;@oj(%B~6#g0yjJVtqZ zCc(_hDkCIGR6ZU1lomS{A;5Uw87ECvK_JHNuG$V3Eq;V7oWS>4gdiWHyDQf_>B_gR z2D+lPr->A$U1aau zj6Ik%d9>Xz@H0POP{(a$VKfg^hh{sR)vY|Jk~r&mPGrR2qHV>~09dcb^NZ7og)HHK z(DiSCi`J^LLXwk^h!FJu(zDzyC3DTtcrj~G($%?y+?UsY=&ohca%qK>_*kJ_&J+g# z8nY&LH$u!49v4fRwOct>2%c-Ir8aC7o3z*az3)go-vIuW2~7obrG9MTcMsSwMY#KJ5hHRWwvmc+R!D9*+_Gy_ZQ z3J^E*C}c_Y&W$$vprtTU2-R(AL=3)k^7AVY1t^gz`*k?XAKIMf-m3%oPw7Enc~r;B z#Bp&OL^1p9?Y(2TX%GY>xdLg263rp99)wR**JWGm=}K;A>=3QZ9`~IH?0fFUPCF46|8H7%m&Re6FQ5wbPL{6~J8r)WWo1zm^t|dWO01(dv$LCs4?0Q3G{- zum`-JAFxjL@@3Dn$PUI8Ev0P$eg^Agjig6t0)QZQo>ES`(=i(@+FZ*ReDQM4Dmd12 zz!{?VMdKMw@1~kCjEDMiTm6w2))732c-{K0<}Oi((rtkvj^{GIS^ln35saB)Zt8Ve z@2Hddv|qlbEc&LUd_-jak}xf(8zI(eI!ATkHY-^?HhqyaEpfd{!J+-@tdniWS#6jX zr~WyiNV?5q=)CiGtAy1%Y=hey=lYBamLlBOI=2qP=FVa0J!&Ye-sn`ltso*6wYCN) z2rR-4>A{2!_st-x*5435@)ZaGvSiSzbBF`GpC|gtC9I>(UNGbK6Ul_ct41Go}7bRw?R(lud>kO;5at9Vil_fR+ei|U2qh##+Z zj0iA9{lUcE9u1rsyOkzy$2W&CdOArMSU}8o@8G*qJ&tTScM9Dyd}X4jn>LjV*Za;z zNu2Q5EWVB{fX}2JLQd8&cTwg67aIIR=Y25wTn8bp^H0|W0MJO2rtajQIUywu@M#z! zzKp(M-vZ>t zRr}V z?N9dRR9NKIrM8B%4fkfxDfNv&-;7UjPR6n%^s(YoOZhtN?YPs(h$}Q* zSwE}(cu~2W%qLZ0=Z#vKbS%9V6+ofHMp9;GtCbtsU9MS*s^paS0t`$cLtkz}-1qO_ zhpVlv^8kXyb8@A;xa16Q8VU9y@8U`t`vOe{!Sevsj^xOSZ;3{s~)-xfHKWTjr+C|z8Wk#cHno>*zOsF%Qh zPd-&I`tdDd3^bPPLfsh)#*UwLv-BWdMtxE z8PAB3uw%+TKRJ}Q(fdW4oDc{`sl%bu<{-wYsuQmLpPz$)vjCLQO;>#q?slptol`u( zuk&%+oUNi*%NpW<4_-e%o7v~Mwr;Eqo=RmgEyIFl`@RRbgVGK{L&MRlp~8dWgj$vh zY4}EfXtnaoWg$q^R;dU!7l_e5t_(){=(smK=Jncgx}wa=qN!PvVEmhAVlA|vJ(s{5 zjpq0RvFmD+QFSAGk-8R50EYRO(o>@aEIA%iM8;2C0EoTS@W+j1xF02)Fwf>{I$V)E zUCO&ph92Xbh?c0xvY7hAz}-D}IT;F&adsM<2q2+|O0{)l0~RtM`e@?DZtTp)iZy z&J8SxGP9(iUtIMr%#Dx$6dfjz@WmG_D&TPm%0hpENQEyCXU`WLHHWN_J%{)n2p8Am zfyWt(RM|w#R0UNUqYwJDE{5Oqay=d2+J|aucgXU_8_xYy_&8q32|=zP@z%7?HYBks zIyy_4IXFQ*s5GBYqYVd}DaY2X#cHIaQ`cwYSdT51-rZiS>xA=L`L&(|-&`K^J1A#P zHMo{P0PVT9m1Fw>UTe6h7@xd;9gia%I{&+7VZl@P7IMzUyeUE&3H)wX?%- z16S?ixoKWTPAd5yhRmDev`6JJ>Q8pv3qF9f`@LRwhLKb&pVz;Gj;%xCbCnaX2OFTH zd6~77@|9-TuBT(BM}xv)lViyn0InIG8V>{?yB{7w4ZhaZ6@-lW+_P_~1v zA7(69&f42yw=%3dDlKXUw7)ou31U|`-{l@eU^DfJK*E^9lVkbOi+(noRI)LUW=VJA zQZ;hETaCeN$=VvPeLV7+r8oNZF5!Tg{#2PT8+B%{nOnUj}8eTTNkdf^uLH z=1!CV%jhy|Zy?f$X;sC+fg&on@oIbLsE-*-S|IUErQV5d$8BADXs1wpbPj#l{r+}J z`AccN23M0NT_iwLiu>dFL?1eaWb$5LaB9$Wv z-=NoNO#V=yJjP%@(SGu}5fwUDKai)H8+r{+h4^Y(Y-SKUO*P&!xJMZy1Z4@>*_FLf zEgAf#g**Qk^_Z?BU0gO+5SPoB2Sw?1yz9J+KJIa_R7>*Qu^I!oBKs8H>k3zOpmH*4 z0nXez2-nj<2~tc%h07Kcow_R}bvgV}P3ipl5NEtL*oY>kk7sg22fkwdAHXp+1gYY|@aRm6kK} zb#G5YHW>_3dwk)Mi!x$P5=8zcT5L{(s~cPne@UKfZXz6jUWVgIxHq6^ zuq}oA(_&)JuKM*R+DX>0GQzA(UiAKud8(#c+)37u#&5V5rbtG z$AR?BYNC0u)3ib5;YM06uE*#%)nZX=RXeogVf{GG;bDAXPb|{h7Fqmsry(i;s`QDgJWHu zTnv-eKgLRR@_X*^27fUpSan*h1Bl^Q5Zt#8#X|6dkSeF_$Dd%{peXw!tfoN92vR@jb9R)h&t7nwMi{YF1%qL}+)k4WTwONPyYVw1`ex9iw`j*{ zjgL#FAI2s8EFX}qxJ%WL8B}@iDIC05Q=};tSy0F>Y6E$K2O9>bM2jGm8E=y(KYpVc z&z0m%)mtd1mp$X}-8&-{=4ufa$DK*$C)%m>Az1r|YL!Jq44X$Lbf#J()n%E{n8pqE zCwlB~jMv%T93=t!odqIVk)sqUpVy5dByMZ2egRrB5#l`WIwU9%H7??Y1S*I<;!?3rjh( z2D8clsi2;^=7Xxr;d#5uyK8F^_`wIjWA0eXEd!nhTStJJ?uPq>;U}OO`~HxAFBA6( zCevY5hg3sxXDS!3DRSiSK8@es@#IslBUBm7XxQ<&P?YQ@0)YUB%Oh3(mz(F))Sof6Hz z(92~zYz-^xPJdn>B=Js0x3e!Q(0_vN)IfvtTUk@Wj+LKh?MERo#bLq>}5gcV0K)`vUx(QgB1nYs+`FqSR248uZ%tD>PEq_0O^v4dS zxOA3~uvk?58sp(0Iq5hwZ;CGJg|_Z|w8KaX&;6SYKmD=|-Le~@M(=*-J1tGOPO zE;mI@_@FQ7L~np7unI0hnZuLss7u&NPyt{r0J0Ug@X7mJdhJby+AG8c?TSH$H2{2V z-wa;^_`dtcdvZ!3r?w@>?m+q7bY$M<3|LMl3#nG22e!ft9N&nzA$guthH*X6DdssQ zgRO0wx;ph-S@w80JcdUcA;%^woh06NZjAsRy!wTp*jan$i&^D_cS&QPm> z4yOx_Cy-QG&RFG>aN4!0zc|vU&zsl)60O#VPk4<(%@1Y(7{>0ao=7RB)e}n>mA893 z;apO@6~d0{NUz;6TKDD3TY0=7KWBcn_87>B67|x%$&|UD7c&_{c*=Ktk%?J0z=s{7 zRKfA|#EFXD6K@PtxScEIwoWex_}Sfg*SCBM1QVFDnU!q8NX2SMH)>E_kU#Q(hdtE$ zo?H85px3e*?Ommu~Ua6=%DhZWl95 zJ(T*Qh@^jPEnkb0lck#n^24%CVIO;AEoIYy9D-BT)GtL6U8w@ETC}I&Go21GO;p*X zJJ1SW0a+2(Wcd#w;T2}YhQ$1usia|GFL`tlsVGWwSxNDOm$gmKh+(@98|+P;y&w%N zF!8xV`un*@wNS$IbV|9?py5UU+SVYtPw6*ZZJ$}e>hQWdRby}t)a3^n^$x$0S3haZ z0!yakTvn=Z4yBXzTaA?)W8@ZDZRR@{7gRXzI9*BI0o-O+DzE$8c75Y3rTi>_7jB2D z*E^+5;;J|V7^MY${c2ORXR+a&9_Ohyf%?epkeZK=PZ1_ri=BPoc-?c6Wg=Jr&mRo+ zcWcpa`}!Rsnh`?4?uvH71+WzzqgK7l4@D0DC2iwMsf+ABb&ETC%6om|2Ks^|vpZKm zfuOKuc3N6$d-m~I^Sj^q&ahK^e0-fzIl!~n9rv>*?0&nqO)1dMOk!N2qebm~VQ*D* zJ*Hybw*sW**3V=t-Oh}5~NbV~hU*R(u$a`VL96wYKijnFM#`O!8#L>0br=t?`d5F|GZ0+F; zdP6w-S3|kQ5V+8e89Ly`3RI$in3{#TuO{5vDwpWlv*i;@27!nfKKNR&`4Rs&~M;w-aklf^x^8jhE%kY0X(#Dr6V z%F%Gg>pU`R2ENq1H0IsSNv>)4W);TXMiqcB4G>b{D^MM>@2H56AA!|zi)ejt8`%8@ z*|eRe30$X@(y%(#;L|ECEhLOa8BG!V)Q;aoZI4VMlyqJfSO{-ik|mF|eX^EoV- z0dm)llJ5M#J(J}$fx@6K zQ}Ki#IXSs#x!#m0v##esi^a8J>;S$E>&KrXYU3j)aavA!g{q~qZiSJbQE|JE)^e2{ zC-fiE>6Ne6m0fR7RoYqQrE!lc;2X8QZ|NRrxI)d^p6*08T><_fg11`1^NW`!BP$`t z0EJfpshq48l=M#m77X%oMFO^pPS@?qY!sZi@ z?TQ$a^}I#3`&6>O1u1~%fQlK*xwI*6Iit*Ag*RGtZ{@Dg+hhkgH%`F0_~}=G&o`{Y zWzVI*x~|eXIiKAruJ7>bW`+}$6}W!_QY)X9l(*a7CqX;2yS>ZllKBdY%jv62WZMy4 zDr$xEIIU4EP~Q! zoGkJH4_|pE1sbU9an*i4A^Ln*l$cdF|9$3{bqD^NgUr>nNj&|Lero*kzh0pu(;9A(*^pp#2Z7}fxhsn#T?+->SyA)GG%$iznl$VK(}>w<(1 zV-ZG4fd{XYVKHGTe;NcA30yL@9QA#rdG^d>-G{^)COcDjHSl{(-xAj0R@q{&YM7F6 zVOoAKB;?5D%?gBAB`y*pHUG7W*7KCZ@Z+m5y^>rr7Rk>BgBc${9ml+feO)=P`M9R> zbq_5FQ>$p8(j=!?&>zXg^JITv;vv7|WUNuHj@|JLC_Vv!*;q$EB+VLA<=J02Aulf;b*_Bcb7QTm$^5y)icfyJQRvB|P$3)ctkS zb;^jvg4dOL9=KemiSI0j=dew&%xbQBy;56$ES(EbXMT^36!w(-Vl{^36g7)YR-O79 zdL*-bTFHS20?z&j=Y-XC*nk!u_~8-Ohe91+4_uR(s!B(1$sG@V25OP?lE-Zw9g^pJ z;ME7b_eHtdN{e>WGxbBh!xeLmeK;BdPz}93rla0O%VSDh=hDP4<>AqAvhSVb`bPcX z`5tC9plu3^(DZUALM#?$+z z?>?hoC(jkrLOHonyTt&?*q|qRgDz@m+)RR`E1C1Sja6U=AYdw#H+Cq}yy`vxWW_9D zh&n^!B;J5SOp`eX%=PYe@X>!Sa`W|jZnAKP5(WHb7498%VxA<36OziSn2{mNu&oA= zM#f*$yc>V28w~Nfj{!9WIF|cTLl$a4%pIaJ1~3cV_jl)!CniEcsi?5EYw(ZjWEIV;pX5)pX)?5SqiL8|! z_P!QCQJ>?UFysyhB5kX**dJ#wgfIm}6OHnJFTg03$gL^#iM3~|BsLHO^x+{Qv zB4cA|&S&kbXS}q3!(sw=k2Z~?hSifoXjRT;K1BhgtcT0lIZes)$XnGd&!a+58V6^r2uMKc;8ejc1!UgM9cCTaO=IaLHvD)@zQ=x*IVj$u$6tRLx@c`4rD1-Py? z-C9hiQgq6?+)1rMr#~7)^#wYIfog=Ql$%`J=x)zNc-dZ1TsQng!&;1heUGvFb%o_jhb!2io5}pJ zJx&x??Pfj6S|)wGa$=s8+j-A!JK1yv$Sjmuxg_hA@!XtFpby<~IYG(X&-YmSA5ziP zq67>ziym9kmBE}j8#Oma1$};DO}A(DYU#F@M{-33M_+pS+0VmY3V#7A?us}@wwQ_B zp{3M;OzdsH{}#aNaxg;__dcQNdUR|o6+S|auPGLlG}9?-bKj|Yo;fv;;CApd4FQF0 z%J|{+LQ=Sk7E6M&l?t4Uh9tqT>JKUDB56H+nUdH>tFdh+PdmvlpY17Q9wGSyF(f*6p(HhQa~hz?iA_Hp&N$oVSpjNgZJ*e*Zb|RcX$0qWrmsa zp7`bSJSUvXA}0vF?h2umb(_dgSK-<KtnM93_f)bgzNFP@GTTWOz$_G_g**fLvsCMco6cBr&xSB9E3#`w zgLa+hj|G%YLEmL{xIo#ma?8-Bqc*E%v~qvu)NSpR3wY~$tgnnuq&)b)GDHMDGxJUi zk|ziuqom8o+X^9b>MijZEE+LZUlT^R20mEf*)D&x9O;z9NIj3lS)%lQb=BBWsWi;L z_g+^!jo<^#_1OHU9>XDXH_gvb&s?8FUgEBr_bl$VT6$872eb7|%ksIV$U()OUxcB; zaXR_XyRF8Kv03pI8d{Qq==C>8<;dNK1*Qsdfh!EwP7^#|TL+O@(F^2O(oX6{79g=I zJE@Q<@E$e*-e{q1&zG1TW^V*9i7 zNEP^*B!*#&J2RATmm7|67a8loyM#`4znI+*uj2J++zX`>qMM$MhP^fu=(v|wC+=9Q zHd*b?#>EZewj9%s=Oi2g4e=PUM&GjnZ25!oiqUldxQ;c8i#e7=cr;O@7bq@q4g?Ct zTP-_*ULj`fuxgI|mekWrI;OOFnJ~)@$AGV!y2xc#gURY+OW`emda#^h?t_EYV7AaG zbk&sqSKjrlOVrfV;s915!cGnVBdL-~xp0jP^^%+_KO;;GS)J*x4YG}VnnS=M&}!kG z1>u)SSZo6(-F9S@il?s8@@)agQM<>nY6@tAk6*ab9@k;k8RtyvrO58?urV>f%=3EX z;x4KRAVSngzowNLcn?m}O}d!HgwZRE6uHz|CD2QBt&dk2j22rc4KDP35VwC6_70D{ zysWIzt<-W99HEi9qv{-VVW+AQl!nvvl%M^ zJ)N>26fsmYs63JUeHbI7S*q-$LMJs?_KvbW`?AUx#w4?Bc#_OF#ygIMmrvPmkWfErhhmgcJ*RzwcX`_} zCplM}wRGs5cKNk9t<7Ai5=-vUSRRi-Ki-`A0cGtHHsj-jl^hL=rf=UKuGJh5y51iI zh+D0L29v4TcRA9=7u=Q_{Mp0Vk01A!BMr94?9!F0)e8)>!ym1(n+?=|b$T%;y)%2` z59<$*sf#bmw^|(bQYFJfO!~Bf)vea7EZ@1z1)r)#!%ptvk;Pej0R;^u07f>!B9O7k zms>&>OR-v*FiSgEw3rsz&NC3+k9hDtoU#!n zYtrl24VTML(lyHR2Zz$sqVpEo&>LM5lpgy%$lN&36KC2>Dv>PE2Ej;mELPUXpb<4y zJPcae8qT0ZtPg^~!_`XG)k|Ve zIbIKKP75=kwUYI0nGan+-BEw8*>$|p380+jfH8IavW(6=_ms>ljkKT3e80{)p)e$1 zt&yBBrdB{eTUM%Z%S0$=qh!U=u`{WW_X66mdKHAGh;5=>VnPMDVEeD-oVnMvXQ7ZA za)1mWJ>M3|olvGhLhf`W-y8CPy* z+odT0O8d}czI7lZY%cy=G6=r64_9DOqKdW;3%yLZoVWGOM+g$Go z=bqzyV4-hu4Um}8MrV1kGFIOmS6@pms!_pmGs%UI6s`CU^3@veh$h+>B389rwgE#! zAmGJuBW56Io0dtwRXC?jm%XZU!ep~$l1$pf5RN>G?3*VsuDx1 zfCb9-NsRZ5bK@d_U*>TKU6`l4uM}HC(ml>qtmaFlf@o^cr|oUpI*5?-JNZOMipoEh`fF0f?rxVy7d!wpO+BUF4;h_#rioJQZ(!=Gj7sxXdGWC z!kz_$k6(6%Dx4C^J}}Ux<>2(@k)Nf^u6=6jO)O}gbjk`1t9X*)0LEcMRIZVrNK z;W$6rAbcf_7qs6scWS*~%U8J+F(F`&ocu^wgFvoy0|ktM3zaGvssWjT;s$%!^!?GszWQmh8m1Ro(`5nQvHca z)j@ZKkE@#ecdtIfI7GJrCvR~apLe%wA-gUt2c^0&{K40zDK9UtH${xqt}9bO=2&wL z^aa)G)U2Z4{IYjaTKZ76&^YgS+rJAmcW41)As=8yXhZ}xJzYq)7pzZpLzV)0q>Zzn_oA*&eRP#RY!@8fsT zb^25#kv&Tc%u*_8^~tlw#oU&jdP6KepB=_Z$TWJ==~n1wvhhflo<4n9U5M9%QOHs@ z2z^?j9gdK9$)#r*&dXp$aP64*lWTNKO zg7(;=z);4ZEh77jY{}QOdcrOkNV*dQ(83sID5>N}s^z#^pb%?TNtfkEC6$#|v&PYb ze}mLdi)pyrA$B;MvOn-9kLdyul$W!q^8K==vhkswl=cn$d{a_FRE`@Sel6RnBvhc= zaTnwQY$oAr2gWsR5zLX~mZgHTCeA-2Xa^H~Rx6UsY5IcFUo>6hp(pz^zmgm}yrf;= zXF#{}Wf!lBaY(v5LhVTBtVu_Y>g&xJ&$1bT#Br^$ja;}@!D{8$XiIpzk8ha=^Y*6Bso4NGXpg4Sk5n3ll7 z-e}+Oht)|e4xIsq8l>5)gYjn0Ho2{^_6pUds$2n=-Qs*|&y6?{l27}KDb9^b1(_xb zIX1Jm9NNlPpYP@NfTp4$f!{5G@`J*l_dYBbx{)Wc(AZ?uS~<3p#c)0i_jq)18HGa5 zg=d(&`v(YZwvY0j9vJjfjN0r5$7nr3lcIifD#%uK?v|smriGsG-U}iAerD4O>36Ir z(~PE8NR>+z=dds}DV$C4YFU)F?d8K#yu&bMfxJJ!96YQ9O$ z)Qo4JOn-uV!2p}|;=XMifO&nuk?y^$s+Lp!rD{>q?S!Fxxiy65lK$q@^foBq#8@il zXc)LBYKAWnfud(P$eSWfYDy>w2ndvDv*=Q-CeO)+1D@drK@C6bAeq>`w3mn7&uTo} z)0Y8PO_Vae74S^dv_}eC?H7wjv3+yC8b#s@?srcVddMBh0=8b&PSPi(?3m3UmB=?P`o3sW4$TmX(L#cTf%n%9oJ@pA=*LQH$b6`9zR`>$_3%&iGyT5=}nOXg&J z@(-#Mq=!(YWS!i3J{;a&3%sfcmitGcS!#~H*5+WR_`Cr3?jkEZ70-<-r&VEoSAy=^ zBhYOezo}TGZn<<9WVlFqK6C}A*J|B`)2F^_)~xO3>7}t@jlB_Y{@;z@eCr#q;mi1?l8;RNKw&x@Ns{+lVb+JhQhW1pSVLH#q+qR zo;tdRsr~R)g1e*p(r|%~hJDXlM}_z%IYQFvBo&SJ9g%X)L=()*LdpWA^7tOC`djOEW{HkEcE#>0wzzHTg8wm*up+DDTF3SWiw94SVkQ zx1N_8j1N+W(KGkR-DVM3FyHC5OP;F_&kNCQNGlR7c>|Z#eHy2QtTju0Y)y6N4qKa? zh?tm>su-il6PFFf2Fa3Qt4WXagtLmTG4baKvhVH>A9Xo|i z`9oDRg?-Gb;(JGL0=f(tp@_qzJAO0Z-7OZvJwSHCTa=ot&?C`?OThVO5f;wJO-ynX=z3`b?T=1oE2I?Y@(9pSbps_w!2L9 zc8J?{i;<YW1P)B<|P@&wKOkog{!Pb<_(+gxND>zQtaY%V)K2AXbj@ zV#1puTCMbPdWgPK*!)=hJYU(k+ySU$60U^!*pFkXHV##Tg47v2E_CaXR*P(vNUZImrWOZZ*;>JDdpT(3@6@wj2;(6>F6?>H&+>t9i6F{HJJXWuESET>AkcK8y)UT^t-7S_&6XfRHvFi`#Xc zYnI#bmKM?h#TbQM;SyFF9v)TjC>D3Rk@c>C`RrywOJ<#Z{ZJ$6v2zcx_gPEp5BkF1 z^g+t-@HG!cW$KjYkB(b>0bLqyfIJBS;DIxd1FdJm)0NItxu-gDOGUYpgdrCc(xou3 zUeq~<-Vv2Ms<7%wZeY`?%@EB4cnl_)Sgx&6K4*{~_xy5~IY!mA!T0IWpc9pSKgc>% ziGocp z9+UP~ABTHHH^^{1gu<%T^bUL569=fk`vVn={V!@-On>}Cjn5ohVZoRw%le|6U` zW!K^IuWgTJpFcrwL;@u;!e0h6N&NCQ#qMrk4Qd`rPb7$R>AZdMiI!GMM4HBgzodqm zg8z2ii)xyA2`Sm|P2ZmUyit3JF%QV&J6W~QyQZ&uBuKRt;qO;HgvdHn7sJ8@ zt(Px+*@Zjag;UmL(ny8{(aMnVA&~HQhUfZNC2bV|caU+u6`HWd^7ZRi5usY65@U$! z@u87H2`TbBqxcVcYKa$d7GDM1A*!|CJZXRSk9Xgz#;B`Hw{jb=@vK?A%PJ|}ytFeX zdfJfJ^?@)UkIkkd%pL7klW?E$f+l8_(?-0i;%uoO1R$+7v<^HKNIsw(9yy#QKyMKM zT!pS~^6na6E%T7n#zDUhtBebTUJV0KIwArn_uDJUp33$eS52_RHr7}cpBEpl*< z$ADL2J|50Q=}y219o>&8Ywlarj&fI#rJZ9L+o>PO0|Gv5$=)f$%nAs~4$DwoO;6AR z+}`O*?+pdaaQSk_HTf(=+uR>K^_c~_DB|7SeHFl^!u$Ijii4S%S(|NU&e)#gacvhy=mg)L2LttUV~4@R>&_Fcv)e7@ zp~IGud3DvoCfi3@ueUwj84UUD8{vI|f()@v3mvRfM*KFn1s@u;wskHZqBf)o%Ts*ZouOMh(W&jFx?eVz%rN4Rc`PduJ9aQ^7`Ho1pT#(cvlROnQqF6H&_hTlXJ&x zmd`{@+%0hunzsIFFcVgc6m42!Lgjf6-}^7hvt)i**heSa3MG{~a`H%!RcmHE2Be6C zqaEVTduU|Ez_8)@KW;&t!}JY=*nbe`vAOf;+O-gB2DZX|Y5!=dXBUB@fTZ6^oZR59BNJukj7lN$<4rp@+VAI`17}EW~z$jQ@5_*=CKZf430E2c?j#JOzA7KUxA{ z5qf)*<-*_rkvV>$stJv)do{-is%C?9dE2AKBF>3Vu`)Cpb|h6R@TuFRC~t;y3N^Y? z=q27V?){X9Ogc?~Km~WskWhbcAgFXOCBywg>cws*GR9CkVMj@n*u$G-4!_9(?b?hD3_H-K$aRZ+W6I5 z(5;YAi9)!B`;AoIU!s3J1C6N_(f**OrZoVq4wogRCE+T|VPW4aNSE8*Lz!un_N zR5_nS1dNZKj&PfHzDOWQyO_EqJ8(7FZrMjF)P+F4=1G)@7*<<^ro{GmBWBO+j{=Ur z^}L|@-WthBgT}uZ4s^|M@aSKRf4+Wmk-DAITLXuhEa^0|)H)Vff$*02EDib!SpEC21q zuMT0*+iV@2*J&_LrJ<8p+%oRjPg})wkJe$$lv&<-DZxWPS0^#8RI7Y)nGe==EhZ+0 zA?8l#D~Qcit^p^v(ybvgV@2#-GfdhdV^D;m*iCj9?~?ggpE4O_FeJZT@t z9g>ui4&Gc&rD3LTXx*JhJGrYVkA_u$$rCwI5Po$xt5T(bre4{ai)tGIong8-r!f`d zCxvNV3&+crT(}t!@zY6$5M1q^3VZ+lK93vqAg-E3_?%|}5wUj?y9g%kM~Ja8&;U^O zZP$9cK=Fd=zdwvf);o&Ms=3Kq)uj5{VfBW1C8p2et<6*ig{Ra~*>V=ydohG|^Yt0wVu)%^ZSSPa`(CFrXgI8G-F6UOF+O-Y`#Je!?}5i39oz4loJz`Do+d>) zQPNzaGVWnC)rSu)A-Y(ez);mzcwsx6UV3Pff;h;TX|)xj|^iL zJ<(wCZhRPBUiT=(ep95n$wgF|AtC)<(y(`PUvM`MhR3xVeXtPXP-ln|ws^O4 zI#-XaHVoIJH--GC<4iQZIOMG@s#oZL?YFj#cQVb@n>nNf+co=StEqPjR!kFBY#5Uo zEFQOCIA`{V!P)#7jfwj@j`Py%yS9tQYI!0VN)JSyOvr1om`EDJbPurE>3=$g-?9p4 zKf5S?4x<`l+XCNTqNL`Y+V0lQAf|)_vzA@JMf`{~hk8Hwr>O6RzuygtYflTD=&Y4K zTK&?LK&miOc$-0Pg!%0qv&=ih!9*Xf(`lJLtoDY?jokBAO##Y(v{fB>3dK*H8xb&^5p+Q1YQnFL%TEJf$%)f`) zJdNSM8D2jL`SPRs@o&!xgb8P}dsxMV`}3uLPTb2&-AY^6U;H2ht}9oIyWcBUE&fMy z`|kyZlwurg)2PJKQt%O25}5n^`ig$J*SJ#NC`)v;u;Y(w^yc=}gt#~+{=7SvdANSU zlKJNZi6!cI9}U{;&b%-pCH!?zScaz%2ZjY(XsJI7*}7D3bKU_dwoY0H5&2 zAeZM4H{!2TGH2tBL5B!UKE-keob1>{7{7<0_5MFT@mq`+wyO!bXlSu&;o9SW$ryj% zhq{VXj~FAslmTVBJTar&T-$2oD^&>S#RQ^$)JsD+64Lyu{;P_)Ivzb-mvDYCN$(B3AMU(;LMW8gxLrYX z-a)e_{>1#~7}5UDPf^X3v-Y&bR%rT>mx`|NSqjbeyZ3;e8Vi zmVc@o^}~MubtC`l9F-|i3DVGr0@*;jwR5&QfBfd3z6y~g5P$FIM|gbqH#BX3`rAJY zP9OHmT{i=mkgM2FCiQ1CcGLUi6O=7e)PGOmpZ(Z;MJg?nY`1c8^@Y`&Kl{?3tZptQ z=+rX(su`5`JbDB9~SBVeF)_8MU@^P z+)Mx98S$5&9=~6|`gcBa&f?rVRO{%5kl6p?8-M3R&W8AaS_jLm0sMIu{`qILqMwY3 zDu^3v<|)ut;tq^U`43z7XLr;0wbzxVx-B?CHpkfbMbtr8QRn!bMV=bx|L7flXP}S( zlJ|jrexYGuVK+UgZvMfn{LTmb_!~ieSl0k$>oo`_Fz-Igd%UERAN*@}r2DM)Rz@h= z`EoVS^B?`p&$ljke(zJvnc)BFoqu%N-s6D?S9jJu@%sPtJiosuzXzMY|MHL1@_X<5 z_WqZ1+7Gs$Jo_2;`)6mLN|1#`7C7{vzdb?ChUcE_w=QsdjsJ#r@}HWsVlU8MPjL(W z+1P)27V?$P?3OBcy!?{us}z5R)KL9j0F&+z}< zoun)BYgncCiTC+WYqLLDkLC&t9KbqB_N4xs5BH1rDzVNR*ecR!c`h^fh?&CB^X4aeUkyGd3!k7AIv+<%}4sE zJu1*q%)kLozK9C%GygXQ?*2xDe4`Wo81+rsw zXZW7ryF$T$Ua0Ck>1OxFez99imS>(Q&_d6^5QyRB$rCUCLpAnY?H9$&x$dNT`OHC@ z7v>$be`0U^Yc7M}Sl2G@wXUQ?I{8n4Vh6y`S3z4z=;cKwJX}jTOnQe@(+G{?o!8S{4b>z-c%q5fKhD+V|hmr3<0UC%H7`k z>4IJSJI`x%Sn2F85(1P;XrRz70}Hv#!G<%{;)AinW0VlbBee^u*3*w|y9A)U^WQav zV!4C|b2RDH48s}1v*nrq074%SJLe|PWTg{ox}zt{9Wt5Ji^rl_wW}+MShd=tOX$u- z!5Ec}Opi?x>kbggkpMg({u&$Uj%~aAz(jzI<1>&5*SJ^VwDF*cM?Qj8`vvhCQ)y{% zO-n+2YFmeV=j_N}GA6?J0Dq#jKcg>O=Hel)Qh?iE*(f@fzD4&`$*+=X5p2@sden27 zDT36SXDtuF^g!QdqIg-zY|tL4;l>Q^Zq&d)*PBeW z4>i^&hmC)0Zs!J2D5n7oU_uHL^ZIv1x10-8JZn783q%aF17U=S(_^dmK-Rw-SBIR9 zn)!W4=d8!t@XooVJ_Nl{Ft(Gx$$see0U|WcU>yf#(LLN=HTU*hPrt z0*OW^pnqr7O6i#uX){Z!@<96w}$gc$?~mn@Bl+d%FNW0@sXt<)RiL_@My%x z%ki?{uI*!#9gXM7Zk>88_bD@wFO(u#b(nA- zz}d_1aX!2B=Ek#+sR(nW3hkp@H2JYJ#4}@<6X~rw=0H)$5`Iiar1}SrbJGv87&u(y$<3$>EiwQD$46pMUwx+fa#|!#gAsJmNGN-QzNn!aH1sTP3o0Vg40EN;SoN z6;`K3wk!IWD*Yl6vs!<~a+0u599XMdG0M?0yL3|T%o>2;7GhA;C}ZOclD^bO_3F(V z%!GL^bCpT8oD?@28j6Cns#9*a{Y*m<*sBS@=}6b!uBYa_{fwW#vW)z=un=GmAQxggbycn4|Ej1Dlz z5rXdV4qv!Dju6S7Wab0F2`V8@pNS2P0vDnXFB|7LVsdL|g8g6z5qgcr*Ok@qdussX z5jS2uh@Je!@h_B8ApYRaK;jgu%LCi2&&q6RjOLZKWx`L66N1mK0BO@TNd~fAwkz2s z&2udZ`ZM2J@`3n!rVEI|wwvz;p2@wOV?M*n6|zUC~u_dU40XGPHRBBeW&j- zfKMrSZBI~E0QnrS%u>MB7H@$%CWP0%w2giRz$(MT!ibCnqdrK6_hL+(9PM=JaNWlL ze(t$&jB}Mi?9zwjx^yq_uLa??kq|cx4UOh=bk(@Jq!_9+&kBv@2$n8C~~Qk&z90Wv>0XWp*`46_R!7GTV9m<{*+!KmtICfGoGz4$&Fp z%ZD1nl|4C&>42ol!+-9%ZvkFf31F+-PH^Yy%m@ou70r#Tulq~Kd;hA=8&=ADOup{k zgW2j50P`B>TWsc3!hfJo324T-1?>WPFSl4}o0oZ)dS-8%^etSeIT#xaV{j;EuW(r5 zQY|tKXNM7v1bcQTl8C?$B-PGzZx7UHuyEs6ncxJqt3;Fud%;Hl$-3Hb3kHb4A=r4! z>TMpU?%|cFi3_(@)}n!TY6est1N0un-W{#)Swp@!WP{*L#|nUPdWP@TXL2PTyIlYz`b^f0wnQ$oaj|(KeuLg{5px*X($w3qOo8r?fFE*USYG5!X-8?tx>|p4#7<1={*f(QNZlMn-4qY=6l%fr{NjAl2cE?MARm z3}Fa_Y1Q0zAj&-J9)*1aHvg07DPrz5z98-wEx_sxV$tMvjoScWQY1iLkB)c@W-S5L zYffmseOR^>YgKPFDjraZd6hPYfClO(@!&i8FY478+W`MP$gsmQAEUFfBoD!P`U*?v z>;{`v(d0)M$Q5lfEMJ~Wr?K5s#XNS^j@Qko9(Bdzt3T50d`wCB`hpN0i2qtt6)N_K zm4f0bsyiiVzlR%lu5|}j@j6w*aaISu>e3G}Ds3Pp7A+>!maCfePUiW(xVEzcA=5t_ zx+gKFB7d5z+%H3a{}L9^)~5z48I@pbD)Bm2ssqLRJAqYZ&w!RUGF2IN zAzLQ{2;?{29csH<5Ey-S#lqLOLM@8Q&e-ltpH%@s`Mq@9L)rE66kWYMQKlHht3 zT&4T)*Z32xh&a1|g0cASau&7SP_f*|94T?}`zg*JbDzxT?<{9xM=ZTJT>q5v`gpew zHF!_op!Fs8%#uxsnNtPn(h7N?4l8O;`g^z{qOEhdOZtF(mH0R%RphT^pv{-PONm0+ zQgm9|H8FS$M6N0dIj%;Lnyj#zePiB$d={Sw2h#K^^B~Vq^Ce-uE-!a>$CgQ-ArG=Y zL@7u)kpQ`?SEkn_G`OepuW#GorCEVQHYAu?-AKa^&-lBdU z!Q__4FNn#c?z#?(MJuc${5K71^eX>+EUo_*k_E~ai5H-8anjb}N|orn(@bV7w`6K!1LX8<>wLAiYnIf7s<1>$uhVw<<=0i_8h97`D$DWyLPzC? zM|xijag&tvrKUr4{F0{0s|$alnD5b4m#E1Jvn)Vu<|UTgzWb*w-jC~j)!&Qrt1>vH z_nqw&m^zUlvUfh^9!ZFmwJAD+Mh1w ze;%Hz8Ia2BS4l`nOn7*7(Pu|ZN&()sH5c}IK)J1#t;qauf58XHV`_55CyOSg5!z4^ ztFABxv;84HJMNa64-&n_j!V+R7vBDP%lMxg8nRCE{;8~N=fGVzllz0@cHD+)xshn1 z=(7_BTl`45zydY-ONQ=W3*5Yhfde2hWqUUQq2j?L>99y`Zp!9-y|@yWl2w71(($E9 z$<*JP42C_13I5(*opU?KIKoIngZe1p0K~!K;|sZf9>Hqgqx0>DvRZU%7ykBoWI=Ln zPMAdo%e^AkRpQa~DD#RdKBb?_Fwy(Jv7Nx)D^mc?DPKRoHcqh;heuOj*yP zQ1_IN4VSTr|2M$b?`;h4%UClqt@njxRm=4IJV-YiczNQ&ZrUjh@*-m^l?ns?uF0rP zfIQaFhy%BDzpq}Hvu_y|HL!>K^-_EtowSOu@)(V_bT(u$etBZjTVz?*K89uRSN!O| zR}#WP^u7zPPOEIwefn?u8~~&GhN#n92>M%%5fG(E5m8Ms(oSAy_}^e=|7o^hlh>^hJ1|8$1_gQ@oBrwLj)UoHR2 zjcQAlkoydV|`F4Z(FJZ3w~x+T(MjZ9Flvha<(cUyTNn`B|4&uTE$o$tV+0hgx?axS_;NAB=4Q;U*!+{*wX zMitssH=vlaU0-6?7k(35{zykd-5i}NB~@nEDuuH%+>R#^SYk4snJsK$KkmS`nVM8K zor`g+KA)zh`7{1RWJr2E0}AOTE*Zf@Y8|V?Zoe@m7r_E<*+^jbOd6V9UObtE z+Rkz+BzW*T?MbUv7#5k2=8H;3GBe7kk5LnM3UH53`iV1cHoVzlGg^S#KI-uMWCus{ z=R74H@2Vf)K;NARK~1{!jT{X)P2iR3Ju>X4AJf|^(#(Q)DMQ&^Rhdq;NX+1a&nErG zdS!8ur7gcvi<@)wo>V$91%)OX+E`C*vePBwmC5MkSiz_yYP>xcy`g73I)`c|y>&Sr zF(~)unzncOT`H|+SZ)u>m6@t&`u}}37L^iaHQKP4A8Bos&g+gXNSAF@Qy<;6`eB^U zsr3=zZVEjO4^4p+iQEBbG==L)NZ6K>vPBa`*Giqg(7Z~@p7l6_RduF-a4hMyPkUML zJ#gvceJJyeXmS0GQJ0zhuDS8)`fRlhsDOHBEIK<*aeehhW~!0Hld98rHXTdxO zi_m+WB2NXuq=REZatH+!a%e~pYn`c)Poa%hJ80k7b*8#6R4B;G1frIgo*(<9w#^d} z7S2L3pnekvJFRZ_Eo%LlY`;1vZ?6Y&J&^a-$9%(W-D=?@1DUBCgn{Z!sgoUT@eUCj?D#=>p*85T zD#19oUQ=(*ic9sI7`7DIq`})MM@O{LT69s9E4^042O&D^nR$*Dc*xIsc~ByM*UwE7 zzd@;>g5el@etx(!H6AvnkLacgIBt)z>Ms3Iz?6csp~K2&HDEfh)}nDrmSFx1XY0rB zcN+id1L83V1=0O_b)`Ki{0q?%#ND#ONK@@Qa4qLDXEL!75)QYogt=nAz1dDtiJ01T z9?Y97vc2hetzLcY2&El3LUErWTjJszt+!6+*4Pngm&C@ruR+@;_8adTc*SN*Q&bxZS!;rxDE9}` zxgg&g<~iqNK@hs}=MOf#UYnd>u#c?+*R4z{2vH#AWQD>KN3JE^(swKt*mZjA?H+Fr zdL)?rN){u{RrvfmPriL2T~7L@aRTKN@Dv*=FnZcP5R7XO08#SDd38|5!X6NUHZ}Z= z%|eK(eKPkO-VFl>v{1pVd{wtKizQ~8TH>O$)796jYPECW!}D!YpHtpAM?ymvX1{}y zS|zMV9nKnL|L}UvxZX14+^t=J&YqW9lnHN!wM9BJ={?ae$h#x@G*LLx75eoSkioD| zX}!sH*VLFw#ZsojvRt)rCps;2WgrybDdq=-=S#OgLlW)yOFSF()-2$3lJ2K%@+(&B zUmMt7j9hj;$R@CD7*OU>gtFNrOW))kj5fNnhlP8cftsS+-iBeM_;|dtP~Z`|A!3U2 zCRmv~>sCCcSRHU2ln~Z|oa`lNv-*T+Rk!$id{K4}oE#8LuwRH z57(OPuZmgHUssjm-0Oyyr^uC z5o8{>b$#@tP74(~S$v6z$=Ij^3Bv)%^FvhBf3QO?3PWn14`tL9!CS|M3$lkL(&|xf zIa%|Sw@fjMEf2_j?%{Hjue(Io=%xa)nTGFm=9rwhHT9A-^@!N(&mW>RqK{|YhAXUK zafjMd%9gx>0a)G;#7oOl|E3XA>+P0UP+1|4~!EAZ^LJO`BGma#T_LBU$ybf8e2aDQU> zBt+z7cwBiSrL2Mr^?;-`1igHr3}` zwE_(OM8AQIe~8hcK4C7?6~{FI02$h{G50`a#a6Rm;a1yuELUPSe6J2EdM$jVq#qb1 zK@8SROHux$(Ia*0k^IA+UPLS!Luv;HLwWh0rzidXN0ZkQ_4Ie2V!Fqa!gN^26_gwe zKb!<(DbGmY&=IT>-y|-x{S0}6c&WATj|eMStD6YqRUD8L47??<+|C}%jtR+C~P zW>3*HMwLE!T5bNFd0APm_rRoO*eM-iR={LDEiQ5~9voeKW6N?#e@B_M^E0?56#qzP z<`K`!O&wVwe|u!$0w+7)=q+^({AHe%Rl8maBTJR5B$RaNP)9Nlw@-Imp1zTPXcykI z;c)vo-(uF7^6NBT(>?41u4)FvEb{ZBT9rHmq+M?^A(C-KOSMXp>l7Io#;hz0j-$86WaZm9AaAi$OfIybFkEAmpyAxXsZzyWB zV-zz*5*#OTTO4eUhHMT@w?$MRo*MD!V61dzYp9OIx7dCv9Pcv7Qkd_WJs9}m|xJ1%?SY(!(Oxls!C`uxA{0=U8B$0tc z4NZHptDl^Vt~z}%D6^@@=E)ozmM?N~kP9v7+L|EHj$*ggdNAB6m7V(u(|{e5ag{C6co7t11z5phR(V`M*kHZ)7 z?ePyZ9nD8+jpCfs3ae9~OltSFIUw8mI~;3DhI8Z{8>}W(kxXj(+11EBKK>{DHdZN! z+GhL-0LLccDUqi!v9{1dnVP9h`jizIwkE8c2AyBf$ky3b%zCbxlQDV!6J7X_mkwe*0zID=(X-;%%yTj2D8E4i?JAHcG zOvy63{h+Y_<%+{nV3FCUsJzd*f~*7W&Pni#p7dc|r8Rc^*M(-)xvU~SdLA2S!pXTU zOf`3oNEZ?E35}oNQD)2Bxj7F`wny6P%hEO&_L z<5czm)LOP{y_#LZz>2vI`xgkOorRT~y8=(ubNY?d8TY5XJC+BmHO<%T0w*hNQl4|5 zs{Kp{A{b%SwByC=SZWCdhI|%;S=l(aVF6)URF~s49#}R59E9nd#9UIbi<&)P`V)Jt;^{E*ApJQ zNelgvD-$TWiYqlyD;0;vrUS*`fqzUvpc-@1(LITOk9bz1fr zqo0<*cYVqbCb4rQeOLMkAS@gS(Pqo=u1zw;ipnumZ^BvF0`1c)h=ZIUkcQTq@VS&c z*yZcsVrR&X=NrMkJkLA3mcBExr(Nb&=72Y(zb=J%{#oaVUKT^7md#txsC@^MX*YVX zzX4G@wHPgKeuwl_Ggv~dm1ui9v@*YV;@NN441MgJFgA)6bESkidEWB=BzrYfKx&t_ z%oQ%XV(0SWV~p(@l3RTGP6qycoWfIUxQ`3V;Ygr+Abz@lQNrs(D^2d=@&Vk#?iDyf zPl)}NrzAn&NuO(D(Za;4Y*O5Yi);tlF{kLjKv~1&$w|% z5v`<2((#0(f=ALZ%B-)@I?#o;C0# zUTq86W6eiG+%AHP_v{rrjuU$vWU^huEJNjdcdNba#N(Jwb8>0H|Me%Wvdo5(1ydt8Trt8Twh%UFc<$W>}-Fj-G7jA z3dw5nv|Hi2{@PN36@Thj_REz zuCL9(&QXDzY#)yl8n4?s!ZE6&c@)%Qy-G4!WGCy^I+Zen?~n2w+6?<%=DXs4+QH4{ zxJx&9(R4>TeG$z&&V0%9WO!l>bFzaNZ$IyR^)BUvSoLXq<#w;1>@CzAvMXe4?YR5a ztWJ~)J}jE4E8}Yd0TQT`j2EG_+hbDoy$losG$`Tkt|b^ zd|~`!$AW!46PQE?;v+a!h?GD+im8+Pbz(3)3f=jB9VWi1%pD2~8AMEfz>4F8;{=!9 z_(Cn8np1D$LOs@g$Vb7zT`njhV%YD*6>46kl%X^bX9xRq>2h~~ha*MK{c{(zpB_t2 zxFCrG*;-?CN`z!|hLl4U+JMMdl>MqLOzf8H6Fy$Yjs70oPyIdH>!lU1s~E=3X6nvw zF9$_t%_GUU3MV|B(gG)3m9;!x$)~HE#8?xc!j?HuUWvNd1Lnk^$2cww7 z*mjvj`=RQZSaJzi=)u;iVfO@+6IWfyy>T2Jy*JM9{LO9QIE=F2OdLY$k!TsAdVoGrcDIlYr(IJ|gLh*~%YjO*VhN4roK8@y(tA{*IH_g3gEHY(dR z!#J}k7O_z)DEkLV%rADO7Gh51 z!ly~1qaG6o*~At9(a!iQ{d;h?^IC2amX&4Ug!W|1&c##dl=Bl6Bcm0CT1Y-P1^46} zQ$=FqTQ(P6wOIOoR15vRT9HzV;IKI&(!H-cot#}&v0Diq4DJap$7a=r=e;i+7mtpQ zzGI_UE?dkrM+pe_@5P~SGRft?!Rh8>97mTMp;!XFV9&ao@W={AMaixTqMHspUb}F1 zn>QySvg+Nwc$)InX_I$b5VSaOcOx1moeVq?1)4Cicn`I8>ylUhKBil?7e06nj z1r$0&Pr>D>>fB2Q&3b!TJ74f!mIjbofqT;T*Ah1n9(SMaE-&Rl6+TD5+&ieV-N`QD zfn%Y{pQW*v8)C0S*fY_aS_D4pQWY39qV!}M-#8Z-?HJBi#cmtcU$)JFx)Zo0la}3w z$`k87zO@BC5D-%cCASPZ$6Bc`@C$8k*M|s_))S5zsG!FN1>tH%V+$}6*Zu|D{E**+)HG)=KZ56Fe zgf6sIv{lp!t-W_*McQgvNsw`8m(p2%4EcQcj3XdGsT>z3|6BV(0&GA>3EnTihXl4OOX>{}4wVbNk1?&lAN%E6*qf%nx+S)#NKJ<#R>%7HJxQRn}xgME#qQie}fC|+&#p5t~@iP9n?9z!rsa&+hel(lxzOj%|rwRPaDFO`qp-nQU{f^X* zZQ;)yFz8{Q5=*{-#=N8s1i@BjBkbDXIUdVzBYTZX=pVl`r^oJG_H5cHSE`QyO58;@ zaid=;20vmT=P>zqBp=EnY=|&cG+oT;c4kbHaZeO8@#(X}7&3VJx@5|p{jj4Y!`Ff)lHp1?YifO&tGlmxt6P<+{#!djxpaX< zg>RmpqR_By9j`SFfe~Mko|v}c?pLQ(^A}dC9KQ?QavQ)`JYLiBmiFWVI;4(ka{Qt; zfIR^M%rRQ@tE6jSL8(QxD&rDHbLD}TP@WgMkRl%jDwv#jr_S!wb-r^UNH&m=E?!#@ z@4r{wJ&Y}kkIGWZZfmy!hOk$^9v0&!=*VGF($z*_zjL63L|FX+!5NO$HZvM zqagR%+%0=CNtm<9;s`ftQPZ^E3ZoNUQvEt6sgQh(J!rFnE$CYl%1U~g-WqK82>Rat zOhqOG;=NUh81}4P*V$>eq|#M~UhJ*r5|N;RZ^at(oZ*@7b`Sr zHvZ5Q^s}Z=m44|Z3~8GjBf`pSdY6Et>iGc@}Ekw39fS3zfz8seR`|v8QQps zvLG}plj4ul5UfJYat+XfR)|3zzSyyfK38LfM<_(A8o@t7g)NJ^BO8R;-JR1w5`c<- z8HN>;{a~~q+#zxx932OS{@g*8Fo@F(s4pcC4~AouE~bhhL-&U90y8e_Rixpls5nvJ z#DCG9e7`Xxw-jk3N1&SD_3`lu2V4m8O!7@ix)xgg{F>DzoA-KW^+@NJ<$QlB9P7Gv z=+tg0B#ET?@IMHgnvqS{-$xC8`Ja)45AOJ8SE8fRpLpm=ytK>2KA}AgF|jFn!)B^{AkzLH%A!h@~eHpm-P$o z!+sY+ZUnBy>E=#NIp0xMf22zUj=uneD*m_!92#mWi3v6xsRZn11EiHC9wN6J;d`2c z-bJsCBOWR|(+zNfcIzA1bYvjUJ=lG?zT9=p;SJAO=g(7Ig7@LiHvJw(Li{CM)H8>} zCQC+*WE-@ee#A=lPr~NXZ8*yc+D(=*LjH};`P@i)OsO^nkLkw53^4pnwFkEjd%4%c$5 z<1wR$u0C|!yagLT@q8Ow&>&EScHA~h`|1|loUU*)OJl4W9>wRYJSbGq>#ml8TktS< z`f2wLyxz2AO&|Qe{K0K{SwZ3M2ZVXmL(&ZgIo>V*R!5||nHEy>-t|-idq_|vR$&7n zWcAG>$Ca!dYE8CD5WbQ{>I`Lrrm=ET`jt9?1JQ&)cGc$tP5E#oZ7!otffBYp!S}{q z8s-NNGd#-z4Oeq>etyFsC<-}S$3qsck+`mwu>k2m5CgH}H6#>{9#`8KyCbLi#t?GY z0Tip`?ARorB_i#Z;hnG4457P7mEAdTmP+0Etia4nyzpbMd_}>-nxXF3gjXXfrPNqN zG?ZWqA!TWt1wjLe9KwHhwV-f;xn-Fn>gukCQORCRS}~s7t%HX zrL0Dc-+b9qu(32)$hgCp00p+HI&Q`A0}#&Er{gS*Fx|X<27yEY2#1SK3)$>!XI6aVQ7Hv(^uRlTDlBBr!l+ z^LEHvr@zATPogm^C)cWi86JVdN?m!350>NEWZuD~F&EUJjEBd9YqH6Y!M&cVFi83x z60rZEhJi4WskyRrBrKeR9oxdxgah}Ps+Z5)iv`VwR4c~wjPnODuSsV;n^N~DFS@xJ z+70EG(YAvS_Twtd)REkrB+%w|yg_xrVGSu6VI{8-to8Q+VYAlG8QZ&IUvj2GaZ`)Gk^js)~i_nh}Ze^9S-*n~3C7u~M189h6&&CFMK z&V%=W9_!{;9C*08AcP4Io^0wmo(CXKgVD2mD2z#_0udT_v9MWCTs@$}?*aMcAup%t z*lF0r+%D8pyvtA3ea~xLD!WoZp$M)x5mPVDw|R_sckavM#&?;iP!9&(=cb5hBdTlj^Ge zrTPPpU~~Z8xL{O`Cip3)zwlw0+^TD(5+SEx(vc%CsZFx1B%N~!?wdBSCZ9xAl}?l_ z^j@jm*+16g9~n5>rDjt7ppP-}_(V0RD6aXi{*4{`INDURak}!ILjiwKEk?se2HGgB z;H<+BUO9ELErQD4Hj;<--JtChrOX}xD%M)=RYpUtBO3gTNGczK>+=r%c)<(Xl^cTe zH(&YI&Haw)zry5uyTN!`bzJcM$~or=$uGXun82%% zoI1GfT2rQjUzzZ3)(A5zwSXz`StlCpI}RlEejwCX!Vy(<)#-Fb5tn3ocnKNrwUzvo z9cCsN%{@|dCpwwHSRN4bKGIQ;g1ewp2ag<9UXGG0c+fpkvm>LN4%&PIM>CwsFk%@oU8y{CH=`{ z4&AJG35tIZizNSFDb$-6=hg%_?eVE`7`LNw+mo8Drjf#Vb~fEz`}V}#o@na-!X_*p z&A%}v^&bJP1o5b-p86GJ=w_VJ`eMFs3Q(yoJ5`|=(ZQc$lWX$@G84?A;}Ioj3@h`G zs=nXglkn{s&!L-qx0eDuO=DkY96KwW#{Zk1;iHn$rwsWN855zu7`x zb>{I>z)iB^=FXk1+~cD1J(ApHY^M_=2Qa}Ff!vJOde)z2^Zq>v{q)b{nqkdiuf%j#A{TB5EXXdFiR?uzs+>6zO7WCNMZ( z!6lW)4z#tYAcmkRJt4J3h@S*R>u}Tb^4>h+3{+qRlE7C+@5EXGKZ9S;E=t|}4lC&E za~NM90hXFobrnWJ0&r3y5$Ps-oQA4Go@wKf7h^do+_QK0gmy-^h;`$bf^L2oc4<4Hi#aoHB zfYVg0IUyS#0u8H9$6f)9Xbj~NfBg`QP;UX(V|c>H?N=IkwnkgP>S&}cHI;?J9&_|3YKq79sJUKz=W;Qk+F2XTz>M&-%xLJB^) zPJgB5H?9fcZ5)Bi-+Y9RFBm-3jpu?L&vaV{uns?6(`!u&(qrb+(oi=mByxPaOhc*m z7Rq}vhFSv?%;3!y%9U^53oQe2@41i6ML9ZGZcs3#kX*cL=a1xY?!%_(qQ6fCZTXa= zl_h1FdPx19>r0HEd~M}eQ;cU7h9(=FNH5x_Uo$zPBNnjqvOoa^ z42v1q>3sLl!0R1qkXh|AG18eYxjyRLaJ0G{n6+Gu(f^Uis>s{TFbE`F-+QwmnI?uhPKD(VVffgAdo@LJ-3}q6?U z02oAiN53eP40p-$ymW1{8tzbSxF2B1t+v@<$K7FaVlvpv1f=4Z^3VQZRq)8wHCJep zG<+eewigwq3m%MLw5WE2P`*Sv3MpW5>!viSzAfm%M~b0t^YCkaYHm)|*m9DDIOOEAzse-F3tnR7YHI9~ zavK62po%j4KXw@x*9+?Us}Dgw^JGsvoN%NZe!b+wMlt6r4wT#&2b;Tzm3JrdopQYt#K(bX%@n-K>k=afsCYhN$DHAI(iv>+peUTvAnAb5CaVIln&&^T z^@XQ%%y~0Hd^}#LNoOFOX6#iZ!3 zrB-|rOoi86kM~jKGs5uig_xW zq};3vcY0NTk$X(JCwdGPQ5^oF+dp?dbjQF!A=@7OWbUqOoMto!2{!_AoQV)1#yK;9 z-Tn3bmRo)k>P1t}wLMfHLv?WaG)1CjK`%J~UA^f4E-c-XzBe?>j1~qW!~{9J6(zp@ z!bAHf0b&z}&hNB49dciZuFiYH+7W$~!FLbrAFnp#EitRw zFm?6k${I+ZZWuLvYeCRMcxNkptPf*^zBb)*o6-{pHkz_u_R}FIK*4a@xX_CO8k>f? zaYKK-06KqON$GS@R8{zt**s4*|J{V&v)7r~Ox(=OZTT?$P%BbDP1*mPC!u~g6#}*7 zC#DrK_FA={g=r)1_P*oU9N&lBf*In`Y`K1u0*lFkF3B~^A9aOu9yre~_| z#~85<3y*KsLI;8?5L_3g)y^9*%+Ntk)+6D7mj%t7$Gm^x?Pn|hT_?=e1`Q#@y;lKb zgfrtE&#~~dRy7ZX<{#9!X4si;2$%JMn#=e*Tt7`U@*bvHO@yOz^5F!5pmcd)>mwAv zWjw|p$LZ>GR)Pq_$B+GVJ`V=FgYZx>>z%3Yiy-Wz{Z4w!7VFGIi%Uq7c+2&a!*2tm zFpCoc3S0-JEij;hmR(JpJp2{^shy=s0?*$9bnc+=C!pzGMb28agPEXUyA{Dg_sf7W z)_!raGc+_<{R_$C5+Sj>Zu|mPixstt8Qb$b0I|xU3mX8PK5~V*p#t5w*bhFCm@tyW-du@Oa%tz*mPfshh|KPl8-z_fPu={09%ASAY5T7HL-nJ8#7W8XJ0h@N zS;j7}t9p*SyD~t<&o0-6i175M;P}^skBlsDRewbcdfr6*KsRL9VPiOuz_>uB;d68P@#Rr$l< zRYC%W3efkzm`_eV3gyh|79RmPKiI3h2eYNk?-Zj7iMPy+zp)-_#@*n~L(3y$$v#WX zxXj8Z+xC#XvKjO)C(Jsbo==2nLB6qPJ7w-Xycy&;4VvYjae?ZYe=Y>Z29F~M7>$f& zZkQV|{j7|6PinQ)r!&`H88X?pU!5~baZ^Zdkf~BuFaOe512i`9H{@x-y*eJ!^63S3 zp39GmM=;MQDwO!r-dV}B?076Odv=Im9PTtL*pGv7q5&_!`?0Kn z*X1@8?6f`7s_AV-N0T9GDNfonmq%m;RR4Ia+#vITROM;U_n(OB3nZndVOK^P)E@~1 za{_VAx0gK!$4qr){R_M%&ImtN^4N4L{#IyoCHNqruzh}gE@SF>QAVKTXI0?Qm%ld$ zAF0);lrR9BM7x`(-;6tDPal|Kgg>EN=1z@xy`4H>B{)SFfU5UhK{$8q26SQ7c>HmSRZc5_z3pC?u z*~od=05${gL2OBZSS<6Epr)8|yV)~D&G}2EO3r1$t51Fuu5cCPsseqr{Vx_b=ZirF zlI;3HV}DY<2;VqHbAX2V)mzh1d=FgyNz_xvtFggXka*{qQS$@dzZ$0KWq&a^m;y-* zMQ6jR?&aK-jq&~qCW)J~fL`GtL2|%!t+N7Gtxj*dMQ(Tl#VGhrn*x{qUO#OB1T(CP zgA!jGuL=5zd;R=NsC-;zz*qUl?7J%Su=|@edE~`R=K@<4JRx?Ac&VSWs(zoOWbPhR zYPhq9!l`3yS<2U5>F9J{eLoRSGj&j$xIE43xYqnId^~1Lv(KqF86-{4ezFB^bV>v~ zR%=3)#!cP}AuEi#t6H;;*qb?U98Q;FU9t#P_td}}{{>-F)BeG~rCtVyhZ~PXL`kK? z^;~T@AW6A`KeG-0HZS@&Srcex6MwXS$9Y;KVrC9XNb*KT`7Dw@o<!j=K1^;{Ek?C|N%a5F*2KBh@{E#;xNsm(q5Iv)$);~d zcgqI3D^*g^-5WI9_?$;lei>4L3=GHAEyV}9TAQ@5xa}++7Jr1)6-&x%-hEYyk29J+ zuiV2dcHAE(7MzdHSg;*BRZw=5yGGyE7-+HmnlERV%gfaM!bB7Jc1vp4lPnOg(O8}6 zFRWntIlxKJ@r25_*W=KYRY%f{ph`nw-s&w$4?dyIjEXqTJJx%ODKptpnVU!Md&}>n z^xuA?%^RAerqG-eNC+hz4BYNWTZo(ll)qKO7bBqHB>b&$V9%c;zAj<;jQimbHVfO# zO(rz|K{7*~+z9~?mJ153nw7Gi$3wpL@gmo0a*a=9QO4c%G0qVi?`iOI9SuvaYU_qs zWk-4K*uh|g@XWXhc6!F6b?bmVMpcv7`jxneEg{ctd_w&6zkdaA z@@ZH;OOunbvx`a^_g{JOrY>G8N|2m^Dzu0dJ9&s*AA8GuQ22~9-s->}7e@Yl^4&=n z5t*T2n_9*f_#PX7;i}OH<3o`__{}SKK@=P4Y%xG^wK@$Q&{&Gp?mt%Aq)1!`c>ap*ib#*1xDW|!c>`AE_nRc zOUF92t{gHajK|jv*Hh6x%s=3Bpz5I_Rt*)`>#u44r_~2J=6Fw%dhdlf7^Ghz^rn&z z7CJol$VJ9KVI)7bdTW-P>dyR9kk6)+(~$7oSFc~Ay(YXkF$!NGADiXFtTM+Kb2g-t zE7xHgZrg;adE7AT(|{CDZ6jLyluIWoqF~gjh__FuijR zG9VY1W^gU-+(F1v|ApWxEdJ-=!I6fVK^v5SCO}#*`9{*RwLzTo71f8pP*)};-LoXC z<>;Wp!Q%;Qbw*me-1|M{;7x#hyK&i*3rMvpS{-82zdHF4tEk0_OA#jE#6z9jzrF!; z^^wUq@w`6Qh;~=Br?8v1&|*V{t(3xDbG^Z_Rq53Ag=7N>M4Be!u{f@v*>7cB=BGS= zDr05#FokwxV@TcQFYQ8wz7u@oWrUpLyj{783tZKf(8rf6DujpGtxbgH$K$Z-GwEl! zXKfh<74ud7)t&6S?-6tQ+W1h9nTCUu?6P2myKgp-LJRsjOBT(!y~+_MLM$E1ftt+ zP*3oQob+edwC7tI;cqJyt2#^`g~XiefZCK1E_-|Llw3HR(TSVJ>0KVBZ4DrdDhdKK z26<9%WOxM_o|Q4V5nl>J^Ft`ecv}2wCXjjV%tvTS81klk8_%=y4gdVPBMjQ}t4*I_ zK`njS9^|R^o*Qb;y8#OK2y+5jc8tQaY`|KbDLC<29yh#bwz9>ndPW_|>$g1{fFT47 z_B#AX7PHvPd3qoLk1}(|&H|xS3d0m|DdT^<07Ny1uv1TnxIZGqo}HlYH>}G?cVYhP zt?!i!9UxOKcB~LsYXjt*La@EEsi;;uNySORC~D`9LDH%pZ@a7V3u!((QI$pGK*ved z0$D{74!e9yUn;zq*t@)PyeRP|KbcX@37Ch z1soOulF*Jk$8DU_u(fsUWP^fR6SYEaMc(n8k(c#bJ%zLio0gunM2GvBr~eVholrGB z^yO4MSHVW8G2DyUcOWXVLSDA0+H}|S;X{MCnzmdnsCo-le>~9X-I?nN-r1R?E#o4S zs&oit@+H2ayxeC;9yqEecLKh&E;awDIQ`+ry>iepAQV{X7MFPM2$vR@HvP_;*u`5z zKpBa!V8-Z_u>!>p_3Ktx7X{FSYydSt$5^ICU)D2RZS9`tD!L2|?Fy}L$CrmJzoNw~ zrybRSH|@B*@oU~W7rggGdf0X3l(ds~vp0CUoU%HR?A=#|)zZrSxz+y{dT)QzX6ug? zCD(Dm&?$$5pXL=pF9?`kbFlm{MH>Mx#)55>om(e1mLtT|rVK-TGdAlgnw=cZ8fwc) zkl?J+^3W-DU;hRJ#C$%uMg;n?Q0^)2sYCkoZ0J^$P$mSMRPE9RXg0lJ;UK0*D6S$6 zbtcU%&fh7Y1EGjD{+i2Ni%QQGg0@dw&(4H8L~JR>cDsqU(;J}nb_qo` z2f-1~-lnpMo4c2!7Gs*C0K@@cblvCX%f;4?X6qWxW!~R>Pa*`coEvPOE9y19NUi3; z)9*IgT*1i>TE7-63W?ybIGk@VB_=&O0NC zkYo=~2w#h{)i-3rY>F;PG)I2|vWWGT?0B{}H`G;B(wyw3{I)zC zun^Kafp}fvb)jLhbv=zQspZyavB6ZmjxzPa05<@coZc0(zVkS6_06nUgTNx}RM)x& z|Hb&W)s#VCXza43X2q#h(LRgjmL9!E`hsULcayS!{CM&%LbrjEoSgh~9q@bUH1{Ll z1+3}!C4WM0UY6#z#uSFjP2#WrKSku9ZuiI7r5VGr;i7d5Pp2qsDPAN^lPc%7xq&KJ*B-fH^(Bv!cARVcscJl*lfOz^_W zIhoZ8b5&2272`RMx1~hB{m8|Kw?cP1R^+>DZ+BlGB=#hdJZo|MTjk@}eBIu)m-foI z+XpaLr6w1O<%nZeEAVmGYo@5TQ`Pe%^g@63y{&RvZMjc_yzG+Sq`NOMs?FNPBk~Tr z2VH%499?xze409cH*W<#hnGFK({YnVe|u=_X_3%A^XxOdPJ<=(dKJ8U_XC!ig2@z* zrLjR&M8mVDyN3c-3mu~(Iq9iZt_~=;0GmX=$!+_R0jvIOK9vp{S0qmtQS8~sI*LB9 zQPz6P#x7?4aHMaxU3>6ufp}Am7D;Kl_1J2C78sPi-Eg*>T<>b%6j#@GJw~wC%zeZb z42vZNIw#2$A77g4F8btfZoR`i-+~6L z{M!52$0tf?*y?+U8Y;4ypsc5BTaVF8ik=r){-Ol6ZN`?{^V^E|e{*WPSlwHoOF^sNqcTuJ;sn<>M zbRSy)omzXlbJ)dl`)(88U{GHlLdZ;bcU&6%?}MUl$J>J~Bbxoz z@g9!ZXoQNjhv6p4hp_BblfKU9OeUgqZlRMfQvNNO51(YF3Zi> zco{0T%({@V&@n3sfy!wyN}?2|b9^0PvdqlgodTpCDM`koC18s`^?9oj{LhHoMBHYB z-7d+N3~9%v+7O-IgdPsxu=1h9_e}=vPt!Ic7RK09r!n%Ils7T@sUu+^&-R!Dh;}tf zF+H)(*PprRjCb(PXkQj3m@a~A5Fo{a3Jd}N(BIhI{-00C`59@z@dI9kPUphYJ)5UI zU~|LCAf61Ab&W}r#d;~m>MB}6`h+ELVuRsOgU3`yFg2XTGe6Ba-oNP^cki%3+7v}$ zI-MaGman|^FYnb!y!(>lSQvgrog|e z%-tPL{(05e&B@pvmuy|%dz4-= zw<9H1Q{!EFkftI6pZv)N`vYn?rJftXr?s1@oZUGA{P2zc;?Ck2eLIU=h&~4LGSfUK zKeP2BM3gNihzsoB%*Hgu`*q1da{E24Kw=;?_1sVNPI`StxmU5Ea;U|#KQVH$=mm+*GuiQ zMhIaS1{pz0U&AK^d zDkn;HSar1O7$PsGBi_za>K)72mWD|AUjdmsA9#9}wHLKQYMzM+Dc`>mZ77g2Ac1Iz zI9?Ik;KfNEU~Y8J=gT7Q%hguO<_@_D846>=jD?jtkBEIAZv-XDnD&8{7BJA>P^AxE zHpmGw?_T$LD5H6=C1REAQQwr~JxhE(w$0)hblHl+&bLAEW5f_*)*S<)8}+q5Zh}b$#3_CZfyx@-Fo!um2J<0FBt^p4v*F4 z8S0c}T-;oNI^GuAxV!VX3i;0MTLu*TR1)|o$l)4jQfe^&qi$3?EkUvW4{50?)= ztgHEwih8q;i76mB2R(+xK0eO~udMqmPop{Y127<-hogXl+!^XSR=6l7bH$D)6)=!` zNXky;s;`m2@??IZWzb72p?;P!ju9ep*^(yM`xj$m6dyIiO>ul(6)L;LK=FW`aI49J z;GrL4<~MySZJG|;+mWr?*_z%8Aoga;{GAw$*%a4q&NY7 z!CtR#mxqX*6FcGZf;deJAp)NXuH^4OH@uw&d-xnZR1e=bu(F}Ikk&01hX)7Y_=7Z3 zy#}^XD;I-&_pzteDq^)N>yIqo8p40|U%O589SP-Vgp=qfv#07%(xTr3HmppWq-@~M zx$&=R%=}e=OmLNLxGz?V-)=r(E0zsc>6Z}Wa|mTGB==;ydco-{LNqZ?qEWq@S@7^( z$>8cxaTl#H=GJ=90p8%lTGD*79(HzehRyrlI3!X=%j-fo%k7KQI%Wfg1G8B}z^^j%TJ9VBhvtuaPi@5IQFam6 zOsU7&>GGq*FD*aCK7ZAYRIh4~4d7*(-(>K{s)RtNw9q$nb#;Q8PspM(E)nCP2h|~N za#~#f{=mCwZ%Bm&nQKC2+ze7n);yFtEvdEFX!0i?p{C9xbjKbex=W4uR!{Mn)B1Vs z-%{hxHHQ?}eq9fm{mgMJ)w--~UEh=63N{VS?BCD8l z=9KfQPmcW(^l|48sG~(sMKzf9++qZ;7fNZvH-9Tge|so*ZjW6Omc z_+mxxIZ(d8rMr`}DS+)+K!I{g0=%iug!_3JS|F z=x_B5?Pp*N5uuqrMrD_+#b7t8Y{H5)%$q=gOMv?IS@ocfnsJ!7G~Pl9&qhzq#vdp$S6%=-Sn_zms1b7H#|Ou_bOb^P>P z&~K1OoqoQ4nw`iJLto-@0(R(j%;^|+dPBqBOp8u_KE9VC24A{UXhgkx&GVqT_0-oq z_Sj1pLoF1$0=-+eu@J?J3*~EnlELg>wY|r)r9#=jJluTcXo$v}6Y=~Lj`z5pI6X5p zPum_biV5R2YpKUsJ zIV$XOrjO!xwY5yA#egHb-lFj%+`HeUSS?ngk?)^6*?b_3Eql$XK1yS4^g&=}$G0MF zxs4I=_Kj@?Y?m}vi^#B)PoY6HGHpSh12g7A&8-_8qK!_V=a@K8jLcb4`6H?*-b%5h zN$ZMF%exw*J0F{A_pFI=r+sy;=Wr5llG`!YenzLiT5^m9caWA}O_S99KCe`{q*}da zs*^^miq)VaeQg}U)vt6l1;9O@_?z$Mj4ic7BqAvOlMI}F*;eXt z!kkpbo~?dZz|W_x>*kehCznF{#<9qDFU+*(YG8a^3(JW08RXH>E5rK*GoX8!i|X1e z;)F-5X7QT@QzfT%iVSop zhMHG9+a6Xjb4SJgtIXl&Smylr46rpT$o3-JTZUOzf^68~J>zAy;IB5SmQllh0FfL( zYA0+xX^v%sVmy+^SVgZEuD{%|cqU3n{I@wXR-+jEYx;_7mnTQJKrCfu_ zrav2}JBUbY-hP!iSWasF{YyyDA9Abw@O*bN*8gtJdX zzpZ9bH|D4K=lo8Q%vkpz_J20o+Df(F?c&WEEap$1XHJp=29#ry^n5^;wvpZ1c+X0;1vJ z0(3(IrLJ9r7@4m4y>wmZ&Cbq&z<#v@phG>6* zi1PGTv|nTX_($p041(&t)YMFq^nz|82#0F z3779;W~?jbccU90Imj^0d(zcZH9YG}`{0>@%l3h|6udLfBbn@`K1vh(TV*{(y+V#8 zj_}2}9L#iHOnrisDmFBX=pX)5?0pM01m{rBD~wiCIxt(Q~^mPGckpNZX+{Zg%& zqxfJk#ar;#m&=b*n@8uas=t?9f;klcFeLX~3Tg?g2 znW-&@5o+Jc?g&f#JUl&MB2z$DxY;%M-#sIjKpQ#Nm7%GAg-!KVr=~kJPBS;DR7Jy) z9UUpj&o79wf?&V6nhODL0`~mG@AqHqYOQx(54E(n5>yZmARaJ}@8IGGii|)aq9)ImXkfr{q~Cq@>T80W^)HRb zgZcV)(~V=H;v0WL(;6Vm_YQdQgn7OJ`v(=~>+_RE6~8i=53}QcIb7tKrxU%RrY0H_ z&1ERwT`F@KW(*V>F#(5o_=K-=qneHvHhWPs(wnd_ghg!42-939#}hT@%N{G2=SG%6 z$dlI&&COM8YPr!>SqyT#EjL*W_xo4w^THCAJ#nbe$j4?c6c-uMm2gdDUowSyH(czaLFm0jGj*XVPu$y4P3wEs!X?Oiet&1h}$l{V`vynEWi zuY&tX?_Xvo*=QQw139QN_V68PKK_i*ih%GFLqRwO5uOD28pLPZpiBLk{!MtbA7HAC7r8wn?8CeBts# z@9O0g8o#|*O@HlRdZPVeoD@>N{LHiq|K8{IOf_e_&(hWgd+`@8CKzqFT7x{{L{4^( z;eLcTQ#b_D1AqYtgZ1n-OB3Q6vmqRfMc9BHW7-F?wfEY3+cp_ee6s7$?*?XS(23)V zRLl9k36D5&(^C1cn(15n<1mTInJ}GvgCMLW$a7gMCz*mtNNtfiF9&CIQs$Ox zTa^m%)ax>{9G1mRUsYcTG0sst@b8z<=JdO4%`MjLws1}p`fjT3VfjoiPmvym%T?PW zo4`vIwmZOx?hKWn4dM znRhXzY3mmH_Qww$%)Oy4r6VI3PJFnHM_JA1C4+B4Q#~hPc#9wS$vUC2#;!zZSIgrK zx{A^%4pzr?i)v$Yfd3 zwHBqHdo`VQzYVB$D}kOvzv$e2RLhHa*Mm04^te0RDii0@d1 z%Gwhg-a3m46_`p9oH?|C5$zJ?A`L%mn)DQFL8EH%#l}~OwTwcQu9Q~!y5L;l&htHTMP>XKE-g1!> zppFFXlqYO^klRLm*J>}TUT470c4>^On;39mqu^n}_rpxU7qjNs5bJFPLz-fy4VQ6? z3RWc)b7dra*Nf{5Xa#)#;}!ZJ`mN*In=8rSE6md|1DoaDJ?RqRIp~VQSSL(F5~t<= zk@nUBQKoJC@Jc9xNJt2XAR*GyozfuPjdV*lh*(IsbTjnOHKYgw4Bar4(%m)GceA^$ z`#tZz?>_qT4;=<%?(4eFzRvSFVqP~-Q1sUwa=12+t&LcBlQWG$DnU6pU7*z7rwY;m z4JkfHma9Xc)LMR^3KDk1KsJ`4^0sz`g`HS9L1|o3R|KWx;@P&})3P_V;UOekM1Cd$ z3TvYc!fPW1^uX6;oKBuo6{`wb0JSI{dzr+PgQPthWIU1@CWbu7-XRAagSav0836*=8NYS zd-iQ-8F+?J ztLU2JJL?o^eJ5Q`FeVkKoZW2`;}s&8XyC_T0QBYA+o=~xU|LQrXg!aSc#zAI|Hwqc6r_FIYf7y-MQ6!n@}G2f1dY` zlLvlfJvlZh5m7v0Z-5i`dlaU++(wI6ac1j-87(RRqv0G?iR&gW8@DtG#H~q5yUNCH zco1fu+Jo0q^^JI?#;`?W^zmSNfEW27FtKOSpLVt}KS^?>u{xZWiSyy;wS(JShI|3Q zYexkTk0wpzXtlCyuD1~yxK2t06rbNdnS{8d>bmK9olVVn@4J9}y%{ZDE?-}*0O)pm zbrY>vLWU-C5Xl!WUL;iw_|QB@2m^$Q-FbS10L$+uUN2YrCT5WUK5;PN}FZ8M-v)% zd2y>ViO1j*lxBqKca$z|8j(ec*P@z-$+)7Ew|)KI$CWUUa;=q`hw(Qr$A0L5J#KL)}!Zhcsn^atTgl|rVa)!*cG?)3yPn5e$bgO5Dctw4Nk5~ByHlD4t&RHvKgU<5eyo+3kl_EdkG(q!6ma8i!|NMP+6YvXFCN{o=TYMxRWZZ!KN4_2(=yUsOg+(NF+!K)RMj(+I#srCGtTD;2cZ#*g$Rh^1 zZ_QVml?fpp>1o@YpN#B@Z$dc2R$P+m}f?*I#zL{*Md zS=fnaRW30U=}Z;!dnh0)f6dp8_Iz%<)HpIJiD4O^M}Zom9J=ef5P$)bTu?r>JL?mzsB?19qe}fknpO+piwkIU^fYrEtdCAXH z2WH@x{ID<^7V0lw$M1Qd$u|yc*E=47CBPHY(DQhD_sE^S*>Zi<&p8Il>UjWTbzI0a zYgPj|W3!bqgM4P*A`VuE1`EbWT}#I1THGM0ULO46&*nQKR{d2b*?rFw<$+IjZFB&Q zRnPi9D=_mo7=ZS4`;G4He0>(uT+y?KSO-r41KCVKW$dB%%bLpgbHuv6tIzS4fNMz{ zXB|M*tphYxhy`@;$Apkvl_VyzTiT3OX0-SaKLrMY?_pp7o*0I5z~(qrQ!1b8l(1?& zoC|WAkRrPKeYb&QGJpTdEOv-w0(-;7mERy3aEy);X#hbxaR0&by20^XYUV#oz5Lz! zVsqX=YWyrAEjdApO+rF%3)iH){<*h%+Q zERJs#6~`BD)mf(jT#M*V_b|f;4NHYTnvuhSNXaQ~veLS9M8ja!;TT|&3^d~!%4pFB zNCKQDd*N-W>Q&6sC)-V2@H5ScjtUXBd>*r-GA>p+V(hPZ01^6#o$pQyj_VN%Bmy1S zoRViFQvpIE@WK1cTsTnP9b?%@32A;Uj?*Z;vaDa@^19%l=r&>IE@-Yk6^48Rqe z;F(R17PCfi;V{@QeMp4YZOejLM?{~5^W4rHr9ii~EPk_V@(ECN0LYR@bcgw*tRJJA_5B{x>K)WYPH$IuAPqWw*6tPDU6`N z3dNbDVm*aUy*aKJ4lt5~o^MoTWl>F(8iNY;8`^vATmec#uM40{%y?{l1kzl5reis_ z#p|Vl>25uB!b%CzRsiso5*`S8f6qZ{t-}GVBEa}(J`3HRS zzmr=1IRW)|vAHHZ&_qJ<*23jaaY5=y(6bHmfLGa?xzhGbW=}vWoVRCs7`gMsgO-+f zFU%1K3S!7#8c)qirRH(G5nA@z-?=d)O_= z`vKY)S1&@$*ZXQ+v5dyx%jHyCS3P?3-lT{=p;TKFRuXcTwc$9&MLJj;Ar}X0k;^r2 z3Ab$lM(9}_Q}O^9{!X9RYP8S@W!uN*0gZ7tKtURp{){YKyOJp!O6E5>@6g~Z$#xy> zuA|hO%6GdUn+pHu0{@FWAP+A>ion6aiHwbnExNU6i1y~$wfYU#xzIxj0Q!#)F_p3; ze9ji;;Bq5uky=b@W*AQ`|_PU`~A z50Hm8*{++~tWHZb8CuYa?qog%c1pRlY^jLPM@*r{6(po|p#XI?-8G1J0%wEnwQhB% z2te=T4+Wb)Pvne{Pi8I4(SomM8k0W*s&4aiP3yo>Q45`yC|?Je751~EmQB?&#P&B+ zvvYEIE6cBsb%FE7MG`TqNsU|z|H#A1G!bNRq4_7jvNx|@6$sC*zSi|JBm#8l*Wqx(hC;S>W&V*FyxQF4tPI!|KG%(k zxO@$TS$lwjSi(?GXQII?tadB?{X3Z3EMr^<$r$X~Pa878I%XzvRr6H`^rxDHC{+@s zSInuIn0oKfd0kz&neHzMEdU&r701IHHi-Ibhvh#-2Q*S0Pjji}JU{Drm~qo9gqUOS zS2c(m{nHHtV4@C)dY`=P;b7b}@&imG+kP}Bpg+&+8;Sw^2czxGiTpyx`4By7I=U|H z3NmIOozXKWGs)9)E9(BVTRW}V;OPQ+XqByAl)!4*b>_+i0M^Hl^0|(~;??K?;A(qT zze|n1?WU_qSZItfG&FFYM>S8mP4{9%14Fz#-O}UYaDdhOM6n5J5(t{iw=%C7^y;RH zA?or;9UZ|-b-gZH<)Me$ejxtcFUCjtJ&D!hE_8rA2;1QT#F!Bx0b4PvLqetR0m|g( zB0tD<{vz=Bhk))sTz@^9nAK8XMFl%^fu#hw8%8v(iZ;-3u)x_7N(zTmYGDGZ!_Fq5 z1sk1r8LKSKmk$G$SQcmC{*{{Vq|=U_E{MQ~kzT{soKp>~|D37e02ey)Xw1bXK}$C1 zrorLXv;q*=ENV0Xw{)y84gI{}aR$C>2R_@{?ZF+;l`nv=8L*dU$#E~#fzg{@c7L>uC;sVe|0bO!=4YJDf=?Ok7c@g*=S z_*H3Rnfos8>DhKqnfEDr?b%iftLp~0Q-dAXi!TALv%n{nts6rdjcz3XsK8%3P7ZUv z&fDej0mX3Tt@?6sgFU>8)O2qluM8;F@2!H^vg~IsC31>E8;8X)l4L%*YooU07YNMj z`bmO_6*0M{=R(3R-KOEm3NiT$p+dHZ>U zcy_!s&5HTLW}@tELxVc6%i0qM2M2lEP>f8;CL1%W0S5hq-L+7@Ek|A3u~c8r=n9L0 zZvDIF)U2$^Gw#O06_!K24_XgaQ>6lK5)%2V_^=AdMNqt5j8YI}e+@#wwx+#IF3-V0 zcLyoQE35Mpt{y{1YrRCyqHaT$9tO_qP&Vx5+to6HY0!%{^o*95#lU6DHVZOrSgx9k zlYuf^uG)6I#DB#pUBoF=Jb=3Jk{$U|HG?7V==iuMR4?y3_2!{Vi*Gn6cb%y}J>o8- z8@E2TZ|X3ZC2oPx$99BP7A(q%B9_a144Gp-oug(uW2Uo*S(0td1N2VScU*j@G#;D@a4`( zc0;jrRD0Ryj;#!1=Yv5^I*nomAH)a=<`_BZ z&$ezzv=`f(c7&gGy9^8{9dT*{SyTmsHoJl6(T0)v{h=card-P7S)p;Xg#;shEMWXY z-K=6|#e$N26T{=@jD5kueobNAGueMwvbRkF;};{l&atWDW+f6Li_=zI8gtJ&e<|Doa_(o!NTiHwf2 zLmIf68)8NR>vIV7KcRs}l7to!A>amft-><$tFFlJ6|mgY?Xm0>S)A zN5&!)tcw2=CJu z+1{sn88?isADWyC{rq5v*m8_XAdNdIz9DpD(g?-0fucYt{xPj|pqAsB5=-e|%^BmM zcmGo!uy-2+&%37NBX{efzUPv&y3l1$^?%7r{>fYdcLlW+4*oVNi*Ski6Ago`FuLf) zOrTF!9~eH?y~1M=zP_UH*QF?Nn3n)bLecD2&JG=vGOVwi2pbSd-p4aKk&#Jwj((TU z*!ZNBakDIn+E_kfFZPy?&Erb!pEYZYORr-8n`r-s?*j7F_ri7lHv*asHYZ>_|;W1Q2 zdC^_@BNY)5p$|SL!B!2D;bgoZZMAohF7U3 z?D;)0t_Fq6r5oyGg1p|z(o@1UQ1-?B+$V1S^p^eRACB6wgU|Yi^e>nA6^A?OrDzUj z&2x50Ty@3-#HtM{UHSSn>s3S#eSe0(5kdvNGM^Q3Xf6Ah=yd;!B^$;kYXjn!RVRmW zCQxSUh1hD4RO9R2;>42RpLMm@4`D>`A^1c8Ira~o^iRU$_BaWb+n8vvF42f)F)z^I zZgQscN;$nRR}!~=YDpIAv&O=Yk13q!t|B?WqWoiX|NB?u)~FO5PS32YtVSQco%w;? zSC5{=@2L6M*`9`P418GgeASy}u*w;SjTkl+9aQLc(ksXXS^bZ!QqtiyvaGwO5!pUY4k~Wv?jk{fabLZ}KQG ztQT>b@bFn!HuL~bJ;!*sbnVmkHqd|4+5h#ua1JDslP+Qn&%c=7&T&tiSALtQLU>i% zW(I#KD3HaA#6X97+-Y=#Ka#^FUde_I8?WEj4GL9*%Kh46aXy58_z+%EQBk-m@Jc@{ zm7DrDjRGv5O&Tan;WnpuxDBnWJn4*MmOv-?5GA^My1y0ZX!b|gmXwJ!tB~?!ec5*l zC^WR67sf|e7KqtY!0R@wo{$hyGRhFdn%)YPjfCkcL3Ix!=@$p}FUqXBAKdx{?QoJH zSME~{XmrfCNE@pnJu|)Xr;H4LnPABLo<mXOcS2x%C#+dDoMPaMs;P^Zm(g^E;!> zu-@-l^w$&oyZ7c!L968=|Z`=@VUKfJ*I5kr}9u(X+06V;>mBe{No1e<AH~GQO-VWc+qG1>2VJ~mAeeZEJLk{9 z2V-rXo_O%*{yRz;PH!kohw3u<72<{7^<`4e@FJsiJ4Orq;Ep zH?YSd>$QEdOys8AX>=A`?$(tjInjJFyns&YGL$S>_0m8s&F&fPklTl|kH6_Sck{YJ zGnR9fzw7Kz2t5#|_M=d6jLQZz{!M$eXi65(@a>W{7_g1I0aEV^t0x{XVTWlRhcV6x zwoB6q)&tjx%kHPrCyO-IjWW}N2JAcZ(HX|0r4Ryz<&`>2*sloGoDTWqvDN60i2Tj7 zW|gO^dF16@ZFtPoZ;ADm*bB2RycV~;>>`1GH;yO`dSdgLpGS+vaaO~>bacDSaBMCv zysIR#6&ZHk@Jr^NuKOrFv8?i{=*9<6IaV*c0SSFgt{9( zEkOw%Zrbt02BbD@<85TG4=SseY=0RDO^iQ0AL(O*su92Y zKp|Sg>y7UtrzZiVr>CjPwPL;=bCXu-&Qa?}0^U@Q#zF#b{6Wkf4oAH_-Q=o%MDQ`t z(R#o7QNALMw4mp>nRth%*jH|0PMotU= zd$wM$l%1Ewy*efTKPu+`_K6!&_Eg`2+x*V0Q`f8f6c#m`$Bv$XHXRtQ_QRd6RonFi z= z%^>yJ4~_aO&H1;-dfAKdDUW(j)Ro!i@zrFap-?(aZ`SzXMsboG5_q9sMOBlOgxByGOh6ZLP1J*L|fi^NLgi}8M@6|i3*upeSmw9b;-Ep=$HIW z5)5e|FE20ShJnYU6>CVu2#gN&;B|2!=NNQII<7%la@%s#a`$W%VSW;kBF{Jik#ITN!9aQjdrlU2##~N=R&pD2EH*WkNhhc z?!sOFm3rI_mjmarqyx4B4P}`Gxl`Xb@5)PI#Xiw}-nQ&nHGJyFbQD7u_kvkS`I0H# z&S$Vr$722&zLDFbyLY`=q+QqG?iDPS!OS~9;0`QUN}7;86FfcRowz`-edP|Gcn@;= zz^M7u=3)rv7oKuCL)b*WV}HrC)7|`aO8|@xM=*m~SmD^W4c6-J{k5UaY)7J@GK00e2J}%lOPocCGVG zc$l#ZaMXMF!PV;fK)cVsN!tI62}RJv)&+s1#w8*m`m$AP9;f$Sfe&+O*)LQE4C|70 z&e}&E)w!F(id>b%dH03UVovK|u|92{QvR!THTfUIe5qgb|yiHxbT=wm1 zr^8_$``@cFPMYK%ZCrb;Y49WzTxI3t*k{^LmmC(iJj7&YJ_O;|U(G_S7@^H=BW1 zrpqj#MtK@g*C+5*L;y4@Y0~YXWADjgMdWvv)v=ExPOs+12c4IuwXt8Cvk zr0FgUQ1xv2T6ciwCDkKE=P30KJn9Nwj3O;JL1|TUyh1clvR{+Lz3IDq)Y}UB>?+4A z`iH*+@`g02T6A2Xz(w0hB=Qv$e5U{ul3IgZRw&U%7`tZgO?7ImKlje@#U@tSMcx^; z<&}Q5%U6qjApPPd5P)Xj)A4XB{R5cEza~5WzoBOAivqAg`^C>v0`fysUm)_A31N2Pi@PvqW%aEs>ds1+3aV1B zcy10Vx{f^7KU|jC53U2H-|Sn{%SIa`ObvsU{0#rK(f^w&3eO>VJZ{x!`*v!&?jIG8 z{)Q_v-mk?tMh36LS=Z+K4|?dNWdJ-To|9srs3`|lX(lEL+^+_AJlY%E?=EhW#+RNO zY>rn4i76{*?U*u7jn;BLxN@k?B7)ykVfXa~vAB+jHpdm9{Ytcm!W3?f)X2-hz-UZh z*P}{af4lJ8j6!ZQT9-koZ=_#`y6fuPNM0=6dFBXU}%-(GBR`qAxT zCdkO;mDwc{Sh^;!gb6KHTQf&S--Dh{4BL{BmWNK4iY*64t!c13*<^(Nq9Fqj;V2^R zeK%yVf>fH@J@lP>&)<9BrSr2n>18u;&Kjm8+1_`zU5g3NQ41a>{hqvXgHT^!w9AGp z6`2fuu9d&*N1b$=dk!|6#sors>mUN%&|a&kli$0ZUN-wtGW!v&{_86wyz82q*hyR- zU2|i(&;F>($Dqp-y6xieRcjaFbs7B72uPyFT?;bKKa&%GCylw+u6ol*jjpLO(Z-#$ z%G|tN_Mg1*3lI&qHC)#ukb~86)ef|$sJ^Ic@aV!kQVhDLU0i2f zvhvHxzZ8)CQ&1eFtlao3bt6~tM<$jVyyM($0T7&=giN2jGtd|cC0 z8E^V4J_${^`OXQtqk-#n%j_R#f~H8$%hbdUxx%S#2z{L0Q3tT&OghO1{9f28_HvK@ za(`Lumnxk*Xks}zIgwxK`C||M+S?Oq#cE?NTAiyG)wWl>4%$`8a?aL$t2arbLVGGz zt;WTOXI@5Gv;B%yAjf_!>}*0M-6*;V&VDsh zjUxA|jk51MsKc-x#$iI`gS-hvU3A$CPV#vj;avs`V1Je#zWCy)BlL zmGvf%zD|UE8O5yoq+8IvK)q-K0ZKKifQP95p&T9JNJ^y+gDxAllrubStCcM4N5D|| zu0dqzqL^bo9PyHCh2=ogQx2F+*)PPtXy-K8mUvIGxeHJu zBXLc;7HE%n_*tx?@fbAwbuSm@!xqO&Gmm($`(6N#v>@SsF5VlJIFm?gy2i1?UGD>2 zl3g}t?!ik{B9oSA@nG|IzFbzRlhwdY$zq;r&B}|~^(f}-W)E?JqMUyiSNV5i{h8{I zbh=%<5g{cqXM?9%W)et6MfK^K{cL&w&_$l ziq+nAP%bhQq{YV9p1bUfR-K4^DN)h)MRnWXgad3xTU{?84&*g%B!rm%s&M}hFJS9m zw|0ESkg=a&-WhmLHgRi2n3*vd;#>t#=E)~6QO>Pr)$i@mFA1Wei2Ylk`3Lddqt30BT8L-z1>_Sndw z;tee=?H6oxyDZ=r_m&UF#XH5 z3<2X(=C~-ckH;>&7AecbvQDV0sIfL$L{GwL6aL)q+{kPi==-Bc1tHex!5vK!63mPV zMg^XSYi6TGO;?w28xjEo2d#Et&A~x9qa0hX%SOM_(blxJomU&ahLoIKFwmJctb1v` zu3pZ%9r<{jSrGBvPe{oic0irq_0Q?a;&lN(sRf}?!v=v29k1>d606wZioz) zGrEih!XoLoW#|X90w8Td#6z)$J;BL$a7rywNR$zcyx?ca!;Sa)4FjZgPS* zoKll?J$g~SW0(^j+T6Q)FeqU{Ms1ENn94KsP&h0_Ac?7L+XzKdK+rL(_Hsx;D5@I? zSZV=)c(gZ@C9PcRh)7gtn`<~-;wIXkykDNm1r3QJv9DLk$ef<#CEnlwW@c95+wxuw zH?yV(Kw%r>rLA`!p8+Dh@Q%ce{S4ubaQ52RZ%m@$upTXoBl9@GIbBM$&oY%|Dyvq? zy@9#utNQSv01ozl&Fpr2GuP%TVcsr-H1542J0^J!ogm0s2 zBS)Ff1;1@Z7M1w}m}Tn~0ekqm;)}A~dCQ_JTcrUO$5T?|?8=A{`p160S8gVJ= zUUXe@T3RK+lR0EBXm2uP+@%QUnM-acY*B-Tk(I{@r~&dbuOL_jP|GEvQ9kRMcEgIC zTu!y$$`H|`S1;VDfCRfQ;H(N6rU67)B$jjIA8@eXaD`;nk>ab%vu(2mU|>f=qBOx3 zqTb5~&Lz69USYukawYiP13Jbvzm+)ZXuLp71SAOgHQpf;)MZbD=?u8k^}I&K*mzzM z7Q|#_$gC5yQgc4|VnwRfX-lSdrCo=b?(wKL{*mM+WVNTk^klDcaBBc``v@KKl=LSn zlCR8;D8_@vMC@?-$1)lpI~nsVBQ@qncQ6YuF%s@M4O~Q)DK}7QF^j&tlO8}V8!H90 zE>EQv&o% zP2COy#nl!bA-_A^nG&ObX?>utwY)gKP2c^}gU59vw;}ZR#=hnW%ANjaSUjjcJ&Al8 z4>>25RaB4@3-hjOnh#eW$Tx!85tQ_uOkGy=_ErRa26y(Oi(hPC$LKsb6GK9-6t|= zyhK<_%kdlA_EKJlJk46Q?LSAl2<|?O9hjVlFa@L?y5}0CDdgR9s=PI!j)YfkaB9&!Kf)p#rGsLNj zu3ym7nqW*+mj<^md?G6EJMVMK@miYk+UlM%`a~qyx9$P~fc%|O_LGhqF0T#}w$If& zNdqKhR*D$EwDR$3+6Zt}H$vjV-b~NPY!LxNdRn`X`VzCC3Qx}uCvo6UaO&WHnH2n9 z{rC|B#4+r^QdVU315mMR9w4>tLRMXQ9#&8lddP;9W#~sND^opwG?K@7%e_`Mrg>1l z$8>NJ{{zqg0yM7@bDgeah5^vhO{}4e$-%*QWHpYqCMe<6SCn7Bh6J;i^WC^%8j=Uf z$OvvMPu^REtsiUbE2IiCn!;{Mf#j2^nYIe+IUO=egVE7)2X?}7*5|nEn7%1)JC-?)F_CM189*gA?Oqvh zygUcG?>aBry?K8>sx}?N8iG-^9$W-40N|f16PBOXn5}0u4l4^igydgl>u1;ZTlG>cGdIq^G(pAhc_$hAh$uLr%UFx z&2oQBK>P6AoM9%I*WX`cu)xj!!sXkS+owALSO5}v)97+N*Sdhmw?LY_JyXi|>j`Sb zden_)2KyCP+og7KlpCfEf<8a%uF|;CO-%5idZjcdV%N)gj@p3cwR^}Qjns6BD9ArCKMcUI8g`3*#mK0r z13DcQ&=N}3yE`8Gx_WxH#pMs=;#t)~N%@$PdEH{s@##9!pS?dQ83V%I0);&N%y-Tk z?%){(S=o`T!&eWuUka!AdZrz$Ovs9giXOZg=V$CcnqM11)Vpp@?wSuFb@N@z7ZR%K zN`WaX7SWr?VXcmo`ik+VP3N`0h#}}lHqa>Ric3r^$O4&5X=~TjK-R092K#isZG$#c zRbt1qb?Pl5c02ScUdA^05zTXhL*Ks#9c)afnDwO;DV&+Lh^oxVCVvPFj7Vp`>rykE zCZZqc)%#gh0m^9~HJhpF>1B&e=3qlZdVUL83l$W;2a#T0LCI}p3xd)u zZi0T7-WL@3?>rXbo?A~=}sm#SaDw0hzfP%7dtZA9=IimrhM36^Iey;XMJGzwz-if`fzc z6cn&--|ZDBSzKOberDh)?MMCiamTJPlPUb41?)djjJIXkL2mZ zv}zqq%|Yw?-rnAeb?fT{E5wg~MWVkywXP2mlSbX=IEp)Wc7~|?#8OA-XtVWw^5a$m zqhnZAdS1B4+qISb`ZBLSM-c@{9QQ;yCa>${Y$c3@2tQK;LHF96S*cnzrXf1Usw;F& zpL%WHxcvX=W4Nj3Vq;>c*A@ZI8Ag4}LCf7?V6ZlID%N17=Ixzva(enf!_v*c&5gbg z9=+lMgrC&3JkO(_JIW+nGSF?9meLPkX~=PIFD=mlgEpgXDvTA{{%&fuGWheJeS`X_ zjVT!4Meci5`lrli3BgNxwfyK@4JCGb-Ms_nxbYfyf&SqTkf7%zkcft{BCuKG>fQ(_Ww9!yWe|u{pJwT_G4Kml1 zHyGNcTgXOo5S+=r?Ws33i}LW{-&glhW^Sq$Wp{564-4x!V-o53uO8(8W-n^mQ4Y`z zw6wIuFUMo&G$QQZVE(7Rq}|TS&W6qU*~c|EvjVewhb%u=#h?3#R+9?>CRf%zP6a3a z=Wkb3MxmgPUr7h6fL<(|pT3DKvpov@F8crZ!~dkUil0%ZWKJ$81plt-y2wagM;kFf zrB5p|GO|KOmP;y;(@h^)!Dlz@{=IvYuvo^pjt;3j0BXT`%^B?O>8XGIdTcIcb(P3* zq2u;^C)R@xXR4 z*n6pD-pWG_O-;tzSXcn8@EWg=z`dZ<=8yQZvZ;b$6E=k!;D@ZXlWX=7u&Q6<(Skxj zsgUqlHWr_PB2>Gswy|K%5O|n4CcTG|GYw=tE;A#}FIwM)+$CG?h@iX+C1S^TAmj^h zAuB(pVNh$7qq+Z6mP0rV8}*=B<54kG`EN_Y)A0wY%bg9!Gt2-G3saSsiE$Ou<)v>G zGAh64axxJR=Wds|ZjzPRO&g%r*O|y;-Mz~cPs02d(%aoVc**t6y%?gT*7%dgMOXd? zSEYNNayHYlfF{WgQ{gX)zcRckxC%eUN#tPGts$pTkXQu=+`{ULq?Wbq)w!FInOSK~ z7MJR$Pi<$1Xu7K-zpH--_59)@``LTf3_2GrE&~Gt%W1^j^+)e7F3zyHA2cQ0@;X>y z0>DF_3VcJxnzAQ0Zf1D-O)Q#<26UfB^cj8UTZ~S}CAmUDv%I~vdqA$DMKbS5S2Y?hi&bIraiP&_4h&9I z&BbO=QW`+e=6h?s`R{X~xk=oeBj=c#YUf$LrUrRL8JU3%)7EV&c|A{ z&7f{ZRfKHjF3)$WHZ^XU4yI1nT#djB}uiExlgkaqf#g{Sc|lAXqh@6_GDX%s!v z&Rl?=od2~JS>6Z}V=VmY)OOs82@Y-sBnaFcQX?CPEv3-cf7wm5+QNjtrF`+`4TiQj zn5wg*gI(ZRr4_y{(!0w`K|lPR1{KKYHfnNX&um=FS9eiH^o&T*09S zW`{jXGIeVmC(jl!LIIE~eE_P8_8Qaz&^7DyC`X_&Zz^CCIVPAa02&Po2^kS(CW?%X zrt?Ov9hm+&rOpHVU_!f`!_4QBn96Oi89t74ba5(Ca1BvX_`N**_ zswYtJxN^dvtLSUHoB^U0$F*Tg9>;|b*YmJ+YWcZ-SWIqdQa-LMEG(03IYE=pEG%-} z-MI}cdoFnj!(xn07Nmi6({4Q&TgleC|4v3Yzp+hSXQ*ruyzVJ4IZLV9+`E zgUJoTzFnp3KI5a>al!N%=coJb^IjIA18cjKm9m=;O;W{PTL&-0_7>@ZBwt8QMHMXv z7#JNaTihHhH+KVx3L)PTq$J_88yut4VA3?}{`5HZrM9DE8Gu`(e7X=-TLvIZ4PCqr z2oP6e@&e3=a!zp5s<$sPfb$>gu}{ze1SHlXg=hfcf5Ra`?Q%-hAjAzERQF!{Y`?E5 z+V66L2>>GCJT7scb{@jqTgk)>_9kfP3OKl@T|i-lW>Sb`tx`z+{{4i9z9)d#let%pGf_=2?;Ir0dzP9F+zXOnbd+l;V)npc)8>uc;eB zG0p_1MrmXsVZ`{6c;XTI&qKrbreun=IY>j{SX<+zDk<(SUa2##gkR9kYrf4Hwq6}H z^?YiBILHG4j6XTdC`qbumc1z&K8vKD?dnfww!nWQZ~dr1@NR&9tc&WawTok+XfnTZ z>Bf^6#W;B7Nqw7oZw<_P5W?+Ysh{9@#@+xVLWcf!<5`OL$yWx;fp4z!y85K}*u*R^ zDhhRu&5MT$8-|_ak`b{}9_H5X_luGl?y1JmpN&>;-}A(V`A#8D@<2DW$cTOL(_r*F zE=LeJz zc9+9gu>hw(v)V-0UPD>8%B+z&yv%gAbFPK?(`VDsv4XT%PoLApu|WWLYx9ge5Q}H`C38v2C_5LLlZQ8&!x1ZdZiV^sn&O2|e z`xaSuEQ@h_d~u((;ZRP`V4;>Q5LI=09_H6CX{Yje9(>xEDAxeAj+Sm^UQXpv1!T(# zq=uB3Y@eOo`aY~9O(dW)|Ail4c?FB)TUed5ht$nG?#dXmcZNh+^xJvPLeXEitn}0N zm4sh#tZ6}9)~Opj55p~oW~ziX4;&=k@mS0sw0X##Z&p`MmJ8YDE5|~q5wwd_S)I0f zy?iPa=%&+IsU$h55M=Hu(x;hx@ z+XGNI7PKO)H^w!@-`1cHs+zK?nQp9ug~sSt@E5c>G}Pv;2D8#_CM#4hd`$1h6?9n_ z>C9$aJWhUnB|&`1lW+LR6BRXvV^o#YB@D1lu*ZfuTiK#7{QW&{eX}9>_E-Pgzvl}d zRp)9U`6M@TgS#2x>-Xlww`uAVnkwuy$+)eZ!opb}4(`>F*EYTmQ)SZ8?xo3wef>mrDpK&+b)g$Iv3B%UF;jMyOM_va zMyI3|iggnnyj4v;SvH0d+6${r%qRq{UF@0iFNUrohwPG*VOgs4HFM7p##rQAEiHbf zD5~%p2CvYki|A(rQ&cn*@nO@DU`-0XFU3wqy3KvZ8{Y!;?^P_tU{qDp9HmTsmd%|} z9eb9L39LILoT7pk2W)3X7d0OHX4lIzXGXPi*#1zQ1a>9p#nC}iDKLzehU25K4 z%+-6$THxoaCydr^)$x8?UCq-_Eo+h>Ey$O;KnSEK&ocP>`iAColo~^`Er-nR_G#U; zuSqXePhWYxF%9WsHQ6twbGSI$X40y#Xl&h4wzA6SKhpFYx*Vaf+LQ?ST!}83UD@#9 z9)5=MS(RO9XXog9)U5(KJwkX_^sbwGUjFb1sL%LrU!KTyR@0x>2mmj$kA=_7wLDu` z=#1L?jL~~V@fLs{A!0Sj%~Ouc3|Y{S?j7JbGR{Y+LtKw}&o^QU5a+|kiarwgWpO?h zif@s~{OX(3lh?7{`wK6wJlV)TpRA}=0YGjkfM5x6p=LN(msdG*eDxv`T^m5(RJ^?O z0_CE+<>wiWjut^Gmh;_|(wQZ_lx_^z!d>BS8m6YEDy}dsa@C$Voi7g#@CN@e0`)(` zjPLQ<-x7)e4Ans-_1G#=3{7e(gL7sod(AclyM9rF{EG^>2Cuad_+5;XZ%#*3MM1^j zYrRo_aPMKKx4QDxdV*voja)qt{M=M!(#(3<*DjM1i5U>szV zxs|B^6;?d-+SqLbGtvm-h`5ifPURDOZge?erSeGgAnS?WNQn5cl|Pt8*3q}PL_|%< zV>Kn=+p3vY*hlS`8>0!Pi~aFb@ipE}u3CRIos9lmEhPV8Gs^HO*R+?)QgxDgf60o z3$>o9a*J~uGVr-w0*pLY8LNWUW0&ayeU3$Y!wm@Cbw36@L^5r(dY-a4fZcVx5UZ1* zt$>gJRJ*~mQZC^j#}^Bqj+oCixaa>P?Yje-+On^oC@NS$5fGH70veih=?K!RKnNX_ z-lat zWQVfbEPSP#UbnqfE|3cKKLr0Rfqxl#OV}fute|$n(ev^7j;L)6>dm(iFBi~IiS=4s z>@SM_R)2~DHlxuyB7!%Jthssb-c>EP+J_yYnknGbH8snRIlWI-MCw}zexWQ=&cm-Q z4bWIC$OsZTt`=xn(6`7M?TSoSbhYj0a93iaH0&`$H`@?(<`gk?~PWEv^+ z$oeJdja7JqC7b8HLz=PZO$+JYcU`j%tsIj}tpz$%>(v63@8w3Ac}3H^x@c2rN&I*3 zh-l2K6@5L_q??~&H#a}>PR8FujP$jA;QK^R`hNdldA~0gMkEF2yRAx>LoY|RM8~{L z00|?do>2DMdsanV{fq#`3{Tg~adoa!gO!>O3r__SS@Nza}+H*Tr?AKRFuz%)WTKqc6w z)d9zLy34wh!em{MA*0#jOrqQ4kREoZ?(%BIWZ1hax4!eOKUYfRcakMy8qr6hOnJv0 z({P1ec@TRR-D>HBUGI^(8V~~=h0?Qgx^T@uwE$k5M`aGeo;_U7#CwB89RxJV+M#n{ z81YENo!En;#zqTGeYaju(pr@iWc|qm-Gc`?2mFxaGFPnPDj#&Ab31iV9o?w*f|-FK z>vC0AmY?2mXU}>cs-L`!j`eRtMgJ|m0+5A|-1Thj2lH^jTs*B0cJ1)e#O>y&LJUfk z+^Bh{-=2#>#=_!EVf~KrN%11&v7Y3R+_-yR$D3l7>Dr_B{9p}256xx9qlfo zigNNEJ3Zp7g4AqFl&ezrjfX|DjE)b&weTNu-??4@y?JYx?$ESI&52!vjn`jE7Cvkl zvV;uLLKpejb{*p{jD{q@F>smzWXZ8#U=-o9w-mRb8F-D^P7$S>t%+LDqV|yqwG3p( zh_JRf`t#t8=NjFWz1)3OrTT_m!L&c3|6!fV8DQt~Q^n+?Ft+viXgn1;315ZtMAUa! zv`VA=Xx0n~$Fj4`CTe5!dLc+gKydhAHD29iateiY0+}xx&bb9q{DOj-f{?D9DhH7Y zzV78@pwtIwk}jEr@NI60V>+Jbj)Jct8H?6)&O8J~-PXsd>5qu9@Ap@XJ&Tf(lD@=X zKV%DO@;W8Oa88y`_Z@=Lw3tHm6SveeK+4D{t^aK>M^&4Z8}JNFo^3%RbAUwMXz2h< z-*fKaim}jB{0K7Ecw3?LUFgDEsK{VU3zkxOGQ;=Myl#0Ryn6R7LAboOGPKP8lDj5D zjro};P~UD8i%w;miP_-}6;JEZRHFL`KS&vsfJ~Qsif-a^S z2M(5gZAXQqoJI)g*U21?L`IWXlmyN0POJ_FOfN=JiSu7iFaocE$xJuy$nD%&2IqGk zo_T2?Iqini4`-dfH&c|K;4Kg0a-i4T+FlCn8St_MZAZw*KaxQmSR|gNRNuO(y=#-0 zH8#p}I3jW1!D0BtOInSanH+v}vaRWBpr+AMowE^*pq!IeeVoz}S>i1xsfX=^v#|jK z7)}MvdatyuAwa^nyXmpqKmRn&wTdbmA=M+a8??Cfz1`OQObl@B1n5zmAr$?9hiA|v zFa7qH7{lYMT;}%SW6q=bib7(MkjS#0dAj~F%@RWOZ*urw0Q{`5d}FWyAi72qf}=0A zUc4w2JY1p8vPpq>=7_)st$`}$px?*XSQCf5tIq4J)hgq{!g^X}$PYX9XETC5o0}6b zueC=n-8ksD>TXT$l%J8qjUHK|=K8~rllXoNp8o@imX>i{XdYritG0Z{uU_(dwLwNP zp9rROZ~eX>)@zi+FbD&gx88zE`4%vLV~-;l`NW!gxo**KpI)$LGwx0(-Z}rZk(X#yrraZgEBL18l}B1pVpN870}r zYYxEU(|D}XKNaGxS&<-c5(z|!Da3ilz7E|eU&gG<>`%RkNyW3E&&k)s#+lc2ze{E& z7v5I$Ud8UW*k{+DfV99(SrPv%))I7A!Yt7C9s2XUC(pZS1Yfo}YPN=~Hjj^wb0v<7 zrb%A0R$Lt_>Yp2W8d*WXX|m{@dE1xFniVB~A1Ouk@tO{T0FNuuaRdp zWO~?CCQ(dh6Yw+tj(F%(vyPI}d-=`v>EnB*qwV2ylOW*=ss{?M2_v1{?5%}f-Nwc*?&X@LH*d#_cFl z>zwQAVX^3m4Im1`$s#)TySR8r*!mwY_9bc&vugk+?aawfER*b2ajpj(Mk6zdet)H?bXz>AqO_beBC^ic6TN&|TC?xZVz3^B3tAeXMMb%cM0SU;#w6&xUH z_g|LfL!e*K?Ww6&O?E(YmaRXlp2>n}PyydFQza#XY82|aR>zs=e#^@MnW65((v5f^_Ha`#S1Kt?e< zFfb61r`05b-I^U^2+twl7J!XL3nX&Gc&xPo2`Tja$!LL_J$s_ zha@akMqH=p&j}gGH#;m*HrI0EC`*Ks4cV)Pvli=0cilMY8-~^ZlBW1{c(J$Ujs$C~ z@&3gd=2Oclqhhn(+mHoq=G8^kCBNBP*_!2gdZ8pweUdD+ZGe)jVmP1)5qwSDD&urzEBOzv%0@!yQ&Lh=6Z@+rBog{^{XsuDrcu&DuQ`A;KT80ORBQK8u(FEp zDucY**`H6c@JXn#ZpkN7n`PdPePs8M%i68v^39F6)SFLxRCKhgtn$p6$Zsj03Z(-C zY1pK$#I)qB7|$CC$7DpXZphr6$sw$ZG08)R$e2~D^d4q3N2F;fqtOXS{zhaadC9Ue z#78e*xgGz=TX>%LhmOTmryI+Kisu*qK#uyiKamY<2qF2=cds-EHS;bKm+p*DGfWeS z#Y)0wo~nJ7_bnOIm6I`dA%8l|Yzi^g+<8v5qvBK6tgY0pB#=f=$0rbtUJpUoyVMzU zZsFA@2`8oEqiVO83jh}6O~bD}#a-FpdS*1K(c!pSF43H72STo+euS%Kb?wTvKI7uT zD|D1;1qe~?F$*PnemH{yKo=!7iRMR? z6ubAYPz;8HO4!^}BiTz?Ic&^rnFYVPWw<>AA==#9x(uJ+VK(kGIiVjIcF%TQqF9NW z6&{@V_U#HF3kCy=1G7_F!eEv>4pg7^=})3hN=jC9n}wTO0gwZNGjKT1U{pq$*M1Ai({HhAqWtHLc7x5w#hd>Q&Gr>u$nz_f`f~5OCt2+L&0TFuq2r=I(1dg>m_~K- z{%O{9nfLlTY|-9@<`VlRO)^cL@|*6EM*%=ZK~ z(6cRs=TPy!HEphd+*O^SSa?kbp++ZNTT56!@=3z&#%QP7Lg#oF^iJAy$C~%iPlgNG zs)yF#!N0>y5_Au(hUET2Q}8^z8aLV#%`QhoT4wH$)m54H26Uxk-|2gMz7{-wDboMa z?&kX-t`p+|k9}fK%f!UQs}MEx{{M=6Yo?DGz4I>4qE|=;8YU@ zXIhwPgXws+2(VPV@Ew$>9~(rWqvd9C6&3sNr;iW^vtL+y5;$R?a^^s;f6;;)h9Ejj zCQ7`H)BQ&U+f4VwMwo`=p_=(vP07zeouaN2$b-{NSS!^CRGtivP;GCJbsKq{<=8LAK!%m z^`a^knI3gN(gi&%={-xl5`jUFi|4-CD*L`MENJme$IF`b5*H}^eB@E_Jlr`Fc@n_Y z)oE+cI~TsGmb;=~Ii6$Zx^Ji-|HR@kXn?3(it^oa?GUpLMMPqEiSucrCjj6Z*QkfE z7*aqVoy0x!>MT4;j&O!N(e8YDXkwUNTFt6luheC)*LPI?n`Q-XHy5{j?z=&ixU9tb zLUGf~INj#6U=^GmjR|VdojWVDM-_6K4>+NVaunD1>?cBEer{Upi`gCgG@e^NT-GCB zwi-f3ghjz(t0nh3j`SHb+{$jlq0 zPO^=Sgk*dCcGGVctKPiEQ!pGn3$jg(0ZZWi5sP!%|K>+yf5kgzY9x$~4cL@>C3&1Z>QbZvHr=)Q#Ip)`cvw0F6`ufAh~xg%)R7G zkrxg35~=y%O1ao%|30=na?r!Gj-HPXdiD0BJFTHfeQ!(#50!CkZT(soSAu|2yxt+F zn(iUi_?DZRC3t1n%pdN%_8aeBt-&xTfmuFRx$n&7#=7mU0lI%30*w<3z<^txfZV)r4b%xM$gjUB0%nz zDW*qyB(x33HKm(9M*ip|>No~TZIY1)8*&DtejC_|VtU1OmqH*@8G1V`EO+IOg+01& zPPpFDqg3xMc(|jMYr!GvZoK};U3ScuOQ^?C#{fM{5<_bt1SOEybV5~%fHCaSN3`&n14iz0$!3{N~eYN`oznbD?8%*)b6gXi%DHz zi2Dx6xH9+McW&Tpu@^7iXDYKmbFErq=U6g}YR`jdetFWNfum|CB*?Rw+zQP5;}mvP zzadi1I%d;CC*arazKgM`2MwkEp^U5XB1vW?pBMYt0o+tyj~sJUJ&VgY06BKk0QX>* zm%_5c*57H2|Be5eY($thVJCUsb029X;H;-+22st3$%`eFO&EaaPQvq`>00bpuB|7^#j| zRRR+DeQI(Q?(ZE}DJJwhHHbVZE?Fd8%8B8anZIawU-i&;*f44(JjU|QJz+j^B4-N5 zvJfp73=qBLu&p>cvMt?yaDacKa+(xn;cIjf77trY#pUDh9Up_+_AH>Q) zjf+yuqaRLjognm|<>FyPPCZ^8bZPta#?NZ)kzot7ImpAhH1saecx-%FbOgv@U{+R^ zd2RN2N**h->g|K=TU+b(2M)?NtQ%f2&X!>qM#l~Ya{75%;cg(l(lg8*`CUES24Ni7 z#Vo0$h$)s;goTNM(efzVVW=5;@wR^MpqeEdV!W?Jzr*D43&W1|PicAR6!b6<7fmey z(yF8cWv%o=Ty>?}3oi?JoNV@xr0U^Y)8z9(mS!`dceNPg6kF)!#O$k^GSoI! zNLhkrL9dis++)i^m$7u;v^$FuOA~_&?X6h160%pMj;T|CSd!MBp7z&R(t8bT0 zy0ijH7nxSKwug}JYy_EGU`S6DJZ<@=gWgmCY>#lG`>I=2jsB0k7%ZgOBeS{tx#pLO z&YhpD*XPc)4J@`l7oV?sKP^<4!OqTt<9{iX5dpG;iI;;&jCC+ucmtDp_5|Q zQ-{?!EzXLE(KwyI&dU6}&i|NfC4VObi4lTDOB7OH2zw@&fux9eS6o z_R?hfGmJ$wXcw+e{b16&zT=Ve0FZ7a;kE_n15cKxr>F6PG8PAow%Fe!1+3sCt!Rdt zm69%B=L<}*V*}3A!F-jB;;x~L+k1O2<5*7sOCpn9>MZD}N4CDq}Owo^njNtZ!r0G182`=F8n+-rxLJRzaQ$Vxx;z@r9*=yg0#R>Uy|== z#btGb1>{ytSxWQzIm=1j<$(vB7UN*&8hE~J$L;OK7tdO-v#}|GetCJR)$o%`((lYj ztL^K3`LpJ-tClF8@|{ZbM-OiQ;)r1UHQJ5Ypz98QUkkE%4X5BGn5~mP)GwNL2UImB zg_$UyB10+d>K1U30;g@)PT+mR0$Teml^GA951+*HSTm$a)}_Lxv`Xe&C>|Pw z85uodwX~`l+$>n@t#;CW`sp5NWwFiD%TKQ*w9p04nW90lyf3DHTV9l`H*CF{+9(Mc z7@Z7CUUJ=uLZ;rbNRz=bOQKcRx#;dXp!9J46#F>_(KLYYiPPFq@|gQNE;X_FscK|e zrb3(zVLZ33R~%Vs`(5)Hvm(Kk(_YD9-ocl&RK>*^a#o!%V9p`qcQxS&{>PP3;5>gH z^44S=oPp`CSb@`?-V^-8ytsoPUYjHBOL%1;wwHM|lKKuqUb|$8EC7RNL1-(*F z4lhZOcF<><7GXPQmK<53~U0w!Tnm zF7F#a?NJyfJW;yX<+jl|KCVkd62ox9`_OGmn&9%~FRP_s7U7&wt)a-b{EE!?Zoco{ z$(C6_0XihkV>M(}T&$A?(cfP9P{-RD?RK(_nKbH6rEdu%6b8p;1vQtdPYvLirwRu) z`P~KfHnv9V6P_(Pa;8Unc2PDdwE(UgEe$zfrsS!8+}Lz$2|dC*=?^qg6al15XJfA6<6UEKvQ_1k#?0+hjE^a`#^V`li(m8HK9~ zzmuCNP0hD=Er5}F#oyn*w|;#oKCK++sdTMq;?&gDqiQ!A<#_sALa30Q^O>^i6G9Sz zg91rFEM!11o(GGjJPzo`00omxll+$XLyjU_gZ+stoRwv^13w^lIRi(1gB-3hvRhNE zo=}jwGcTy#5m9u7K(9l%itIl|;s3*Rni{#$wr}2IiQRX#_?b!m=3^-;iZ3gCymuB1 zki!?vY1~(2_V?$ZfU0fCzq?ZMW=pv(nmy!=G-N7LyREZW1N3vqUL5o-{$+r?hEQ=9 z1NNQ*@Qe+g=Yp;-`O!pm0@07<7d;T8Og&d%Y`YfDJMprM;f8TcQet8ztf}~1HuDTb z)QILzaeRrF_wKk$x@7Rupg4SNeYnI=@6(rFu^n{lz>h}Xz;t()(TCbdJ)tMQtDr~y z?cq7o`j9mDD*#U&aLK8x;ByfE2-t5OF#RrvN;H_=@OPU<$8uH4XBzpX*@&5U~rH8el`RCGye0}-@e!; z)EPl?)Vt}v5R#QTy}Q{YdE|nqEy9Qwhp3EM@M95DWL(U18&T|CeiNKZhFCaAC=KqXiu?s7+rqW z2odSX55LgyR3tR_odfg|;c5$PSnL8((m>Kednm8Y4rAQrGB(p)O}nU{%S7ZwsrcDL zI=eakehG<3FO~)#oXU2sjMl(_FTq`I%Ym?ms~3El8XG@P)(15u2#wWL0QYEBpkDBO zx6G2N``KR|8+wu3$qhpD46a4v9VE^UUtdN&cq}$ zUXX$wk*W7bLPmTWD zSIHaas_QDsHpmR=&k<@G9INu)*bIP|>wG(kSjbrQ$-Q=89S>-Uo)Tl*w_GMZfcvMj zI|ztGF?%DHsa|Ho)xbh$&NX3sEOo`y*jUEVu~eO}QQWJ3!ri~B_)bO*Kum6Z!Asjt;_I#=}|5pbA9;aCBa z{|v%D&W+SW^_%o|>hDxN{kbCNVBfuRqe6B0D9orMbR2f-n`mFwsy~n@$1P$mrqQ1!7+3@dtteOVc z%=!$e&_tf)QcH}YO~2Sv@Zh7s97+d3x{c>URyk~sd5ev)CZ21IG~TJY7;z6zoK*qK z+6BL|7q|W=#k{{g^yHTW#Cs6Eqzg3dKWFtRyM z?^Lv5QV#IqG5|~pCfuKM!q5I%l>Mij?Gs3TA4~zAPSAp4Zky5B!66cK62&YAvI}VD zcSE_tTMDIUFeMHWra?NkNmBVhJ1kX}eg zJgFa04GD;B?*qIw98hukohBwGPSZ@lAx%7`;VcTCm0;Rf@1|-2t+B>*0O+>-$Z#G+ z>a!_bxtZ*ncRd(bvub7RLLXWlz5Ox0w)QMum5P)Q$g)IR4c88v9D$0gH$)^14D56+ zhwG8EvDwaeJfFsQJY0HkPlDYlKA+mS$>I?-tKBUD5Pp{o$^dpx-Q`0-==W$Ox=tr*VYXHDllt$s{5U!TbS0K`c8 zE4w7~uWPL9)dkHUpt-U$Ey48Q_+oxs1oUoXqt)rHz9yRnxeg|*YQ0+KW_fEod8$bW zSU>jIX?gJ4 z9>?c}ziw~khdzLpYINkDQC;k~*msa?ko)i-W{3Y!W=1SJWpN#>SvL10eQ({n07w2{ z`wH^lfsCFf`u6Lm%Q;IrxP$Ev!0A{`-wOa7o4b>7-{<1u7Fq{SqPdqn<7he(1YJ|X zFusLPJlC>$)lP-YcqUZUOSYTG2@MSe*``3>W{5!0 zEE${Ly(Ygam{3#sBpVW-Wid6tz2sM?PjMIk=qnW(2#-@invn|2EPY;F!s3WadD2Vw z!<)-m{Mh-f{u(gA7YOB8NZ>e_9 zwzx}5zVq1Xl{&E7rsOV_eHmC*w@*1wM8$tkz}X5OLbcA_^0)i?O7zn?3rjkiU!cSM z9&ZQnSO+iAmx(y9yle+DBo2oTb6+AC78Z2o!Kj6rho?g$vqe{49&_A2nB;Dcc+ekI zs$xxkXs2%p}5<1xH znIj4)Q8KJ#3<7P$v?50!O{s3qH1AGvTSt-SxbErkSA@y9gOUJPNURqxT?*GzN7tXi zj(LWYRl5`Jv%$QRH=sq#w6w~XJh{I%>Fr=Q`9lH%I23sYAs;mT>IVE{xh-XZ%-E&; zJF#}0zd#EAzuch)Zsr%zbEtCLNjd}sX0y67?65f(r)n>dA9~^Z`L?|uhQWNdc#na7 z^0C3~+-{(vY3*PoG&%Ry8BliA!5{|0*U>_zGpfQ8nwZ%(6S~WtxjJ5>1aik`3v@+ZTuqHs0Ud<&pty9VHAJ(TXMG8k z)*4h!Q4{?pEX=;ec+%@IpIN6;w6DKEnEg*&=x=zwY^PUxqcazYVgR-?SABuB=UD)n zym;B|Rwxx}a~+f@H{E6l1fR=Nas5h6>54-nj-5T;<;#a|rEP0Nf<&5Wf4A zKFdo3>^2??Q;*ZU`2HOBtL(pXhVvF)TDP&i9x=dD=QDz|z7B;jsiSPc9`BkSo}Sx&p+Le8 ziHbFS{XT%7{(xa0DYGGr&Aj2J;RD1 z>FydJB<&cz?V!wsHwZ1+S)bJBiYu&H2GlyEmY_v@@A+<(ENAPgs`jqFB5^4&twFSE zqBqg>G)-#wEefOrM&0pzeRbL{i(gT7Rzro~Hf>&^|BhJw(|P>gLSO;m8H@_7*>Hmx zmLh6*WD~W}0E^);HriUa)&eu`OXmgL$KFR^X0s4Z_}*z{XkxAw_ep_w{63M$Sm#Zz znc#|9Kxl49Kt(7G!x`!rz%X=65of}w#5W+%QmP^Wl6da?dCFGD0L5gJe65x)SiTm$ zon84S!I|%*3r5Dq?WH-Y8J;!Hr+L!;?xZ)+qf^!jBx6Z;3#Nn_kn>f5ZgG@9m_CQ* z!T_kCG&-j5+ef`NuFYe8ATW>T_JOt48yUiV z6Ls#gU<&(qQBq0@Xn@e%O4zWy>`RGB1>H1JyQ*qA;q47G34<LO95~7I%?g8ph+1d-+ibjz)7Ix4Q|HbK4rS&fjRCurPaEVtPS@F}G|A(0HM<%m<+M$PH7`qb3afPL~}#vuWa z#z29!(2A_%8NOK$Ds^z;Ify}82reW589u;~O@G6AhlC->;gO9-0W{X)HmrT0)t9jGUM;~%- ztyXxb_o3m%8&!W<>3a?E12qAsY8XI3DQOA`HF5~G0ZPKzk|+MG#eg~iOcv0C9z|Kq zk1>ZHS)h3nSM>UJHtlfziB0$gniZ9>&S-c1b8E{3nz@aGLzSv0j7bqdKS2(te;IzM zK25O~$M(HkUH3Zskdua0-6bf7dK6(u4xu3el%7h0LUN-zsd&$T&%Ft!bJ2yt$hE7~ zg7<+;z*RWEJC7nLr4{CZAYKr{3}|KYB$)o=^ZTU?-O^_nvL~He?K3F8b?v_Wne7C% z$*$?af`A4%VNwtUXGdWI$YUr3oNMjIz&vq|HioCxIQ~n<%-kFU?oi~J130;)tV6K; zHy=*PXqH*{3Idw7p%$pHza-*{?BuidE@rQPO>YmEfDRUy_J|zH$BqxmAM7mNwXNIF z^Z@Fcn{&5p+s+aR(h@m&N{8GQ&QoHcx&G18prbg7a~&u;O1=kaD-;wyCO8h#78M-O zooxq|N`fY2k`G}K9jdf*LMtI5(e6j%MXSwY`|(-RyY?ej?ACH9wGc$X)&`QlW|jft zkdyyXph8aNDJdCp)BJ5eP%}(i$3_2K0KXb28dUSeGQjvBE%ALayrr6KRCsey6=|!2 z?w7>1$~50n3$#k^tF0QZ{gE>7o1K@b4r+VZq@{dOd2v9?Z~Ivy4qQQdFz-Y%G}s~? zc1ycrP091P)SUCX_lf1*im^Vfo@GAQS$rTN@t_k_yu1wcbRfaZK%IfwS&mmb9d!1F zNQO|-hYD`K*MNPo=js_Q@(SG!r|36b=&x~EF7PX6hSm>E=~|C=gyzBoYIG8@YwLXy zATl_3c8}WDS%1+jep%$4RAbbWIDVi3@*}-=c_?RzZN-FhoZ~Ve9z_4o@_4rigVt^` ztmpfOan~49C7KfZFwrGL+(|KoaJS>!)JFL1o7>zLZ!;`wb7i%`qvZ@iI!Zx9V)?gO z;zq%^tw9?9$1Z}a0Xm{kl$-I2#=hg4&f;)M7T0B>is5iX06JCT(xOOmJ@dY^zu>__ z8ae6C=Eg>$CdU5Zi>ZE&shl%W;xq0bz#8rwb>EKRbI1gw4}FpK=_QZfdNsZxIA3m* zfHK%cJNUicx0Ugj^#BCVVEO9!=8Tev4Cuqr-@o5xlF0An`uQTzpdFre^FJ)qjQ$@B zU!Pn(QG9E?y84jpuL}DdiPKt32yY|m!uR+CF7lq30T)Hj-2jInxu?TXg^=g9a&?}d z!vPey6O7tFX0)gPJe1==0u40#tL5YO5J9*3Bqzn5Jb5c0y%7tVK%Y}buJ3k9C4*xk zRS%Jol@)mKMQtb-i2v{FJlMpt)qfW-1+~?ax|KLWr7IMhubpke;vZeh85d9x6BA39 zk11{$pr7=z++v~PHk~}iMTuukpkp~FJYfLlV`677(rRN8?TETkSjEG|rIuNT4G|^- ziln`!-O|mnk*DZpm*CaE<`jD(?z?Abq@30~kBX|9<;uV7*{zSCe-msS@F4Sz^+RIX z2vIybQZXCWst3Hg3{|$$VsdzNDU=Uec)HGyF&WHExZ7Gpp=(@wI5&e#U^SbvdNMVe z>l@buw!g%zTSzfk9v}W*M*QL3I`AY}specS8>m&(NX^uI*o5jPkLFUE4| z%m5-6(4OiuQG$C@ICWy{uGq4{UVYbDXv`zK)Sz1~=4XT6i4Q)Zg+OH8wicd->vp@2 zMn`LaM$jnVE{XI7$|L&=9Y?GE#l}pki%eX4O2;j2_P-Q>|LKou$M7k2r*Z-9lfzWe z*cYkn`nuG<-=PQBtQJf;e|hnP6m=x{#L*TqGTj^uzm&}Ve}6o6MEd^XylQAbK;Dmy zGOh4&pk}?={)*bNy3QpFU_KG1Nw|`dM|bavAFrPz+RerMcR7In?>+wESn|PYCv)I# zFkB61oMbqFj`A3H-0MY(j;vNFk>Lo_n?FC1b2}(1v2nxbs!G)VDL@Y_k5?6<8nC@h zVT!r`G57s>DLyaAXg5f^d#DZn7rEWPXV^ZH^rBO_PlXcVFaNJe%3oLg+Y-<$df~Nm z^OvON{(pFq3jzkygO?V+8~wc0zkk?Y`HD6k|DuO4wxo6F&)w-+umKfW=GPBFzN3AOyH0{8!kD#5Y<7EW{H=cD+iE&2~j`j6eFi>Ba4e>+-Xcm8v) zW2OeMV@h;?d;9-(Uw&Sm=%Y)-dxZ0*p+&!Iru_WX|G!H9!&`}_U8mhZXD2Eup8sPv z;@`!OM$P1jv-+C&8Bs8EbInIJ+zUh20;9!`FEoAnb4!ZW3~!ryZzL|t^a`pl`_3L| zDJNejfAOkSCw5_g5BjGb2W6RP-31g6wXnI*+}s?m#Za{%-)MJvUZ-I%@1NV?14*Z^ ztiIY2miJoa0faR&eys68pkLDd9=EChx0>Alg1i001LmUkaU=40FrHWD$NXt4NL58c zqwgix@}B&FY**>OUFj+-{hKHNe#~wF+0?I>ojs8mTNYy<*g1a?gq6DNCz{ z{bpwMyXV<|SYQ8kF^WbLJmDUAIeEC5?6g3D8`Xs7+B;wY7V&s`CY7GQ`qMkK@@?Tz zZ7nSZUx|!V9*O3RK_1GT;#H5e&tiY-p%Y)!_BpShZvJA?zyvkMlNxyMR%7b4>a$Cl zn6o{Q`;nTKL{Eov3sM$;0{W++br_y;^QRWTFTcCb`5R_m8{mn%2wjRnO!h>+k@WnH z#oo-Ad%VFmq94EVmASrEJe$+!Jdww+smX=<6<6v%xBGtc z!79*Bdk8%1CjWEsf%qa6M9`FjFArIN`TqUWJ3m@KchMukMTw8`7bv#>uyuZ4tSJy; zQpDNZPP^tC@e!3PGuKt4>91upUx#X$Q57)r>nTdL%F1{Y-{7`oqgPN}vcI|YCwhi| zdDoX0!HZ^JLpFYb|93$k7v_{TiP ze19$o(Z1-$3+CA%)eWQ1-_4I0bcf4WDO%(wbKQ(G5_^6?znOT0u`F_ndgfl;;mrru zu{ycJ!vz0yv;SSR|M%;2gYoMEo_^7OOy9H4);^0Kdvp8hFO#kqi>mXj{P{_ARJ`3$ zL5YU5Lk+hw9;F!PA3SILbL&C0K|8tk9O_PoY#yz8&1#ZdxNS#W4`()(@}6a#Wl`x! zoxI{!jbzBxDyX7V^SSMtj=!Lj_^;N@eA26)222w9$)mh`iZ>!VFq-=x^}YC$?WB0k z@A&tA_;{0oj{Ta#J^o_{5i@cL+qe2d7eL zHM~9(UE{_Z7`{eO)Hk4pMVR*+M0;(sd)|mv#-NU#4@bg`pl7gaa!m%>3LDHNrSdJM zRt#DaL4Wc&T^x8q%Y0U!KCAu%eP-%l`$vwXc}nv}b=>utbmV>jp~{BrS;Mp8)A_4xHs#s7u}_of^pob(c<29R@NC#;Xs9EaALZ=czw=7e@cPB9`nwWWG^<3c zRyqR$zem>CM6DR=Ln%rI`zRv@)DGyIWjqJaeWJt0`6R~fiXW`H9}ur==~GH;V^Tr| zw|4x1IWf$*_FK8Z`ti(QnCi#yM(c&3pC?J92CdLtZF~8lK=7nLk$&As_gY+LYJZE; zs<5CQJG-|Sj47qLNp@HH(iy$hGEqZv5GZKd@N@#-T$XjYcZJDCjx%V^d`Gk=?@|sS+af8fntnwx?Ua*3w zxW2LRY#&NjHX)G`xyV18fyL^)!u)VOzS6LG_m!yh#TP7B{j+=?(@v=-qx6!5iMszy z76U2-kZs96d*<(?$P&vNZqhYP&%n>Yyw+r^rgZKvb=821Xo)I)W~Hj0UP^pNcZu-B zy3#y({!&ZLPU>aniucv4!Y}K*w_BKs7sH34{6RdA%R03g(e6W?Lc~{M7jHT;PbjqJ z8D{;R<8+QSIq9wV5Yr2`@+VU|_*>hV$eL=4+RSCyD6ebTH>R9)%s<@#xAChoxc#?e z6KC$caQ3P8@=WwRXXW#+bG&b?$-Ba4LrnY-KpeJWVNtzK&%+Q<2&)t+3Idr`H`5uG zhzyKP-Mi&79ps{$HL}xvz8imt(8Jfw2|183YSg`cT+-nxNx5Q|A1lLjcH*l-YqDW4 zyDKkMP2$RL6QEpDYKm)Yg9WcPrH6~R#)_>m;t$;vTu_DY#(YpUU<4ZpL{1tD@RGs1ZO zNO~~5nzFq;ORoQRj`ocp!hO9C_U;N51g_&@7nyiUSG7zin5=V$MQ%Hl0gd4%zBRxw z)?IFjh>CjDlO>D6dngm>PT+3%+X- z4}W@UL{~?+Ro zmEAbvbNiZL&#TzPH;J7a?JnF~#C#|sAHYHBAQACw)Z#Q~_$>za>4I=MVp4*V_)A+` z*n*kEHS-U*x89sG`@FnR+q2`YHa3YRwUupH_hI)@gKlzC(hIYdplxWMs6;hsdvaKB zyfl#W={CgkFUxo!MfBNI8LAyc3~&ue5Y??cUP|p*>h^KE7{C6vThg;T?~j%G&8LM$ znHu^F6QzFCtPnAlIhE3{G+PjSwJ zU}dtR2lG5CL1Jp^)0#Q9t~n7#s6x%AO{?CcMwR)_z}yZwWCYVsPs*mmM! zwTMFq*bNuC^n8?242@O-dJ2K$?{ zgEA-eA~=z%%?>6Y5BippF7N1hhLe!%raxoz8q?RSdbr(Oplv-U$_vjes19g=HE3DA z|JM=pUnQSEetsOPd!g#@Brico*a|AX;7LWaZ?(ckxa*Iv=2s-Ylm* zs_*mjo$mcvojqPV>G$ZlT?RQpn4b@A03)1v;pm4@g(kgfLoqQOzq2}S$06$u>p_?E*}wPdAAkTsETcqdRCHo|l#6kCt- z04`L7UY&dU`)hY+i#u5zY$;34xiv~m@~wDV`waoxK(786H`{ng3QRkkMF@4HJP*Gw zqjQY`_v~XFobhbXcy=J`N9R=mwVKIcbymIFAwri$XUyb_H>IG{oGBl32U)ihTeh6# zAQCB%saTd-capUR)X$>;KfDtF@a*4$GJ$-RNlTTiI`UYHBWN+%=j``sIo1z=-{88= zIx%_II8*jproydR(4&tEzQvBz8RzP=q`6uw(N^rgEXw;~AzsiT1;@ za110_#W;)^9FqP)dAP&(BWs7@Nk^qx`;CowRnwbHd6v7tI_|lyA7b1m@)w@+?+f8; zHoh3g1~eYdG)nHFj*o(gSw$Mp7blOqc+Xwi;fJG+R&xz^u6it1E%LSS$Zb{J>J*n3 zee(pEXK<40T{r3;tJ)k&3+(`N2f0C;S5$SEn#uJ`@eI}?^*w(09&Is-6xqzVuvKK8 z%#hcIogTUBNG*EMI83S=avQUHZCo+V)2_*5wqbDEW90Pys)pyjl#^wYK#){53fQS% zR^-$#uI_s8)sY(5BSqkgxWnB}C9k6y#Q72v&G8BE6WnGR%}Lul`=lFIVSm-ud)aOe zIG$-@=P4E4=T}|gy|@9rJxbfw4o}}UX8x=9RIX^^en01+Fkm}IX8y3-oS`}S99wY$ zWACnyo)!7H?zR3joHYM(V0FDz6tnJ~N$-`z;ts(iYU|iGk>ej9YmYWN!FVSu6nf$| zOS%vKd!gt{Vz218b+26k3SO_;y7yA&h|Qkh*($k@?(c7`9@dY)?+#M^HFu=HBIG_J z7oV6Ld;^5F9~W5%GSdv!N?c}DK(4d7z`=S)Y@|ifojG?^UZ)4u_sv~NX1W=UE)RUQ z+t0o{6sVZwywmH@?~vXB7r)L!vcJD?UzanT5js*(IZf#QuxB0k>*l#$F~uEwpTH75 z*Z3^;PO{L|T(lhO(u@9+=Jr5U2kH~JG;K|XY?$mFY z&qrRJIeY37u-V)ZS!~pP-BeeBk!!EKZ!1ONtV)_>aB*hYNHn$hSvLWfl|qEg6>7oH zTJ!7P-d=MQt@=z>+Y7x-i0TaVa4Bw<&6_m8lm{(U_RurYw)UIka=hax81K>m;xG;Z z295SEvA9$Bb9Q!8I`u1oRZV&><4*9Li-VFo>msyZe%%L++1i}|ej~|T=O|-D6A50` zZ-_NJ{Q&wUJeWiE;FZgKRR0U8lAR+et-d$1iw=Oy_g0yg5@bL%Z-0ILHicZKG5N#w z$oM;UF=X5|%XgszR}TWEM5?1US4 z!sQ-6MqQ@j7#Pt%D~?3%#B#6V>et3=G@-44zy2Loe;ldfxy`Nqn?gnZi#{h3My(pb z-4zFuS|aKGOo9pB0kh*$0@mXL-bi#+BKMgBe-fm_!QLk#FWP#K12{*g+JT$xfum~7 ziaLd`$J?@FpjS-&3^||ZtyoZ3{@kPbF_07%eBO8!1~R+?YcMq5F{c}9uXlyq>vCqokUM0kwi@} zIuX4mdK)EzC_#uidT(R2(L2$NmND9p=nO`*VMcjx&w2N|_ivxG&pE&SkF~62S$yaI z-q&?~u1|3|7Hvk+@l`dAEBlprlP5wpR}E573&*D1)r!dyTIuQe`p-q0c861rp0ar^ ziKE@=GbP`0r?5(Sj-HJ=iE2X=Tee-MQKTQoeevRQAa`r6_jpFyn}d#tue`+{{RFIu zQ=e0kNGN!KBTDZfh#VieG8)oP+S^G$A~v$?4U1bgho{_o_L)CSS2o(X^#2uB{Qqv* zlh)^dQH&EiC`a`AwdZ-hB_NxCflBT=W@ZzgdFYbzZNx=F^EIX*xkbMs4_QJMlk@Ok zlhygD+z(WBD&G+B|A32gh;0*p`lyTXJdaSDHF7vw%jv8cRy zk$Wbl511`6>8wR-=$CLQqDnd>TJ&qu!4n{Ai zZ)ts>-?*5@=rI}1&q7L6ij96bUc{;%Fep}G$(Y1_%^#qyMp%a*4q5&wGSgBp&-0{U zo}%|L?2p`gl`Dd=`ricfa%AJ0v`ly#b6*&xFYs8u}{4OMF**9U7bCrO#aRW6B87VKZoL)rnaX zRq)+3m_^F7Xa4KzBFSD`eUKz8tRLsbGui*&3*D2kU+u<|Q|Hpue(~TtIqvcE?6^A5 zC_XEya>(s=s=1-utz@dUPs&cF)HoU9U4~Ddtq7YhpB}fL-ktBy&_Q}m7z}z_!@%pF zM#9_C!|9`nItZ-B*eu0W%03l8@K&D-*pk}jD4A$QRZeO%KlcFSOOv_JUpMC%lsiFb&CJXkok|3qz!?Ew z2ijh|6DisoswP!;d_>M$XMESs+xl-b1gRX<=}+#hW?f_^^E~0O{nobhf@u9EC%h3% zru>AF+5O6_vG>!_u631?SU1VQmYHET+){PL>Nw7bS?G&$D$wn0j^mL%{VDDz#zuxo zKLLgAS!1#n$)ft$_w?LpY1c_LFH0ys3i|+)lY)+ZM#mIXYp;e7-!7Zw(0Il}Z<~bJ zAxuw?-K40mOqM91!;-|4D;7KR^syw_VO1Xv;FM#ahr! zV_4iIb{hFa(v3NqBksXN>HydClmJ`-xk!s$Gv7nzqm&mq0eLcU3JjZ#CWNW_P2jta z-E+#tm?R(K4d(5<$?)M6rIUnVFy!zDhF|}BicIt<6pv*_yfYu* zNoyZpTl6mXD)c6c^hol+AvT+FM2L`4I~jG>bAEnaTrZpIqPv5rl+f2`_174Av#2Q5 zM9j3P`m}A$@^irY%lV7wT!XSgIDr;$)1dJn3-oI}trw(ctox}b&j9H0ml7;D?K`)}`1 znZhQGyXyPge7WaTNBfl(qBwVrN2N$&finkn#ggna`VPKTRj$BBNDR*dfykMn6X(?& zwJRL+K)8&KJ8@k#BMfJVq&P*>dBJ=87PH98&5{DN=L3(JgH*=*W%uFm*VT zyfRT~-~<=PgZCN-=&;tx$y*sT5Pb+{cy+h)R(M>n<`K{Ow|H)Yeo1m7Y9G{o5mDt= z@7_h$d&q=$gtIzS;73peLaa+|QVi>5I)FC4`Vud2Co6065MiffAQ#RS9SgFBr`#4< zt#H%FyDs}^7q;x~*ubkoXQ((+2@b17F&2C5?oNV;@7n5kepOXxd>Pr{%8$1*81Kdv z>qAhC#Qwbj{SQj+i&=~x(ev5!Z-rvwEJddfmoD%9X|VVcuUp@rwBLR&mE#s-_D(R>Qi0m-;PP)FNBeVVl-s9gPO_T;TQ32m~ zSI2H?msn!atV6ZR208p5=}mG!hxHfnuX(a9yvKz%c89r=H&F2%rHa=eAb(xH(8OV} z_hcg8(e$o}A1gBxhwG|JIi;V^zqWaL#&ZWI{Wm~o6!QL{%`0@<~JzlO_%A9 z8nkt-3(KlNLNvOZ>{N|a`!w`6+ocCBHUBA)L?js8SK<;rKM zaoGe212t0C#&7R$W8Uda-_oWyS-<__-9UOD_B`?>crJ>gg&F=gJ>);#WPruTd+`Hl z+rmTaHk%Rp)5}S}dvpknn!qa?fM&H%$(8@0zrcFaQV^YaqLG%~6-K z*Zr?wzoP3rp7fKYy?@hbfq0gshp6;XJ(sEZPv2{t@tly!_ZcX83yYvfBe$#H&-rs+ z++_k1%CZ&TiZ*gnq6fO`99U4|IxTZdKw~c8}?6kom%S=x5hUMMVUp|U( zh>nNFUbn#?_U_0^v%QL#CU0Ss#ZtS-9jyU3`Qe}rh(0MgTn2o zdJ$ohJtcrSD+of;b+$;21w{?xwC5ht^?#VjhTDCuC+~L2AG>y~ELWSQFdS~$vgFsS zAGl9`7-gL>%4 zeo^guBzRv^MivNtt_C#pY;R1ky}b%2aBRVSEcNv9k&)o<8a%A1j0qhlAiLdDYhhB{ zczj4u(p+5{G>VLlHnG{A3GqJpBP{o~`MsCx^eH7@5l!R8nXU^Pg_~370^y^wm(@oFFiE4B#KULX!(&f2 z4}1cQO?49&y!TF3FC`nSq2bq-wGLk}7-kvF?j=fQ%@a~WPbjF!^+Vi$VP|f)34@v|5 z8P5qdmqQe)*23~spYdo}gaieBAZVMoleU*f1aZex}SH)PdV3E5nhBI3fF&Fbc$ite^%xbO2$vsnJItS#A-rH6##AnjYw9!F8PX9f$3Y z{aBnSEQ|tPPDm|$vg;--2zbosU(@_IKzJ}z3qOL9wjtT-*YtChvwKgG=agpy-L4Bx zQ7PE2540F*Jur2bIIa-B<`pET;lWlby9p`W)w~iKe<3_6vSm2A8O0S-6dR*gdpd(G zMld?rk_)_vjG~kpNyDFpj#cy|@~X!qDbt+*^uSUS8kZ*e zMc*#s2)ZpHjtGH~2f`aWs}79nJ&uW7N}1ZT+l(t^9fxp(V{Kp@X4>bq+0}7Ui3hFl zK(={XRP?#_{+Y6Iat-^|*4A9-uhz(+(&(|A=ug^rv69g2OJ}$!V7$kDY6CjOZ+-Jd zqPcoB3UdcHI`rN1^3IMZaK?4}hf9%i+d3eK!K0n(4^GnF%BJ(0vde=A80>srdq?TC z%MVvMXRv8YJwruiX|@u(t4x=4L**7=0f@}JJ5jWxDp6Hk!P4?1-Mo0&_idw;pWt1w z|M~^0ik|kNZdk^ZD3ElxmOyxW$)q{@sp>q9mG|L96#5PO;Iv_-4Di+;{*LV zS#MRDnUnJpth(lm7d3rinq%b%IL%2ID2hJ2vjb=-CNTk3=)~5Alv+;lDMn@Ckt@lf9U``0DTT zwz(%I%l2rom!CDR^jUClaDL)jAVNo31AIRFPvgS8b7OLR4Rh~+LO8dSmkxY%hSV{9 zS~umwuSWw}%n2Tnb?ieyLBG_)-|$VZ)>&(!0)l~^KA*2m@hCNH6gbYWsL2@2=9DVM zr*wR<{~oRJW4UDM`hVNz{{tA{D??p))_`U2Y}Ux(jC=uA!%(n%tLR3wW&1jA`}#iw zoP1H1;c@RvfhfOv^@>ug8caT8)*lU6&Q(vUQLIdazY3>lF1bXxb2}pb>+j zT1#d(acVSWI?$1q9+CesXs5RXzjZDN_i_GAAN}h;bwd9FgiDm8ga+ktDkgmTanI_i z<$UAuxe--=|gP+^W!=;{M_F9d$NgZ8F9&11hB;Nz&&2rmXSU9w17(Dw{ zi>qu77)ia+*SEDnLK3`pm(A?k)c#C(kD;=P->o)0bZ3@&_en0LIc{*p$iyscZJl56 zW=pp8Hg>9Z%nho$;8km4_cUJlhL;(d5%W1^$GhVIA%I}k;h^Vfg8 zW$d2vvPu|Lztl(^%>YMzZR`3Wujked=>vv=^9YaN$wR!%xwX(p~0C5a=5u41DfW;=QY3>lAi ze@eQ-ysPY{rK~L^uqLmH`*12 zrC*4YWbzyDFtD8)A#F}^M(o$sNsKkxHSRco(E~aJ#Khq^M?EFmFjOJfrcoRhZZ3U_ zFTOl*Hoqs9H>z|<(CUCxFS^JTU6zXcqUFB%3_dm!v{4+h z>V~(|z{U1LqL~=v?u3zriLLpC`6dm+$7x1p$EV^Xo!Ks#-}UvUyF%q?4&%iu9s!Gk zm?FJe63z@aj)Lwy#{F#j%`lW^behL}#wAcp`?a?AO5K#D!{?h0Nf;~KSdj~A84kO6 zCc9}$(!&^|Q9!v;s`X9?=)mBitPmxjyQdt_5wKQUcjslg!WhtZk1>JUepe*-!0|gf z+LK;NR1_M+FVf7!P=$$!k2fsB7F}dz2Geej6hfH92$Fe4yU@J7%_YkC_64yLfx>@1jvZd`qT0eIZBQ;^p`0 zFA~_jl(JI>;x4Q)iHVd}t+(WaGSv$fhSJ?WmSr4P@|gKzKjk^yq~3ova=M_sBSqRf zeEZ$o6O!T?THm|%=6Lp1*}U(f^547|ilX}*q&BXOtRKu2(|In()x(qF$+!N_+)Dj$ zW_1cRkx{DgJlBGvCG(1D9I~EUoh z^<;5#ayeW0^+)ggt%147LP=c>^C83-(dO8P!a^&xqMgJQO$5YO)lKfup|4RK9>wo2 z=s+=jGD;*|<@E1Sg=4SRdj1mOU+@;314OkQ;Y1d8Q{c2SvLjot4#Q7*Sk_64|I51a zsYs^e9(2a`j>x&NwJ8U+FxH-OsbbR5;HgPHfxpP>D*cqN)2{56_Ioe!R%+0CvI=G0 zb5Nk|x~=;A#`T0S^^R5C_T)dv_P)r;8nn13B-fwG|tl(u15evDJu-0 z14Batnjiq#ch|UiUC{BfHALNL+jIfoBQGYL*H+hEpZ?)1c4cX>EHG3EQ#;8!t#+Uw zg#4w(Fgj_G?`P@yq@dn&uQ^cAdhb26H*@qHPXCt}uF>0jtk||bGb>9gr}+I5Wwq0g zjhC|7d@y5r8o!OUo7Io+Od4a*>1mtss=V$^K$+-{lkeAm+*?1pYcpXo*GZ?ilNGc6 z-79B@{DbwyRxJk)OTCX5|F>^yhc25k%DTkx7YYGwK-3rJ(z5AWG zA=ZC|3j@YoxefgO+C-MxghM%gid4i@4xEvA*7t*g!y=))hu%%8NTn?WrxQUeXlTvP zJY9aUec||oi1y`D67#cZo}#aFN_w}!R>MqJ`=-6TQd+1I?ZL2FQqr}zPdf6AoFS52 zl90c%n`LG%4p{2$_Jxp=Ni}$6!Ryf;=;zSTZ+N>Zef>jhBf`hOzD|m5hsKZ|khd-B zgDPwDt^g7fH2&D_S=`!2n(UjmwxZabX7gnWMqh?Cs~@=`v>w!_qNOfAyfskg=CCMY zlaX0&eXrh~7$e`I&#gUZxIA+Q`u3?GC0N!+=ebN-*jY+iq5|a_kK<^4ue^9d&)wwe z*aB3RKVIDs<*axW&50N{);PQ_X9O-IjI{uHU%Q~WShb$c z98&?&_ihziZ}vO=tdZ}5x=OtcFs5B1tJLbj`b5$RT=f&+@=sFHgjd)gxWjAuIJe4V z8e=Un8Hp zwJS{6BiYGSDR6{OuF)_b#=Wyj8qI5WS`IF`uC|8v$Q|!w%5?x?r{W>kkhhHY@?=(skUoQu@+K8`@#71ji}dWAnb%OTUHF-Z@-o>atJ z>T7GY00AY_@joLZ|{U#l3o_=IECG^ zYm~bpeazLRh}>&?N3OC`X6(e+MBWx`%a0tJ<$*8`JBCj2mN@A!yLCuTg~b1TnR`an z7gy`-p~ibv(9s-$e%h+t1ABplQITOZBNaBXvVW`rN zcfs(60CVHtLwq%#*mt#Li_iUM@n>fL40O7|!rJ;gS1x?)68WPs2b3W6jX3tr(i7 zT1a@!+$A48rgF&~7&)F}k$53$H*QUDG5FDcC`Xx{>wY@2k{`PAg*5%ywgAaa$i|pB z$6*!06nL5ON)VLV3YU%A7Ci)RGp=^FeRwNURW;PyBt6RX_)50rYhcyTt4X5+`ADAZ zLaFdX0!jo3@RKlB&l`OEG!VoA+f6s9w_Gg3PMYQ1i%E_#ExH%9kT3`Z zREc{pv$a|1eN`B%>|3bZ=I6b&TYLKZndorSI9CfEU=Z}&@JO1h+%l*e_1&`{YH5SA6B@M3Ux@y?Jx%Z~7mRMG*q&yU)AKCZ z+4_yg7{G~2{v%fU2FL#X{v-JPfi%BJC&8YYDRWnSo)}DpMGB}`D~ic=oOHKc$%5KUpvtED%OPY9tfMrH|9x*Amx`*SzMZO8iKtC) zmeJEMBEnhyYvUrMN&O{96qd?#yFO5q{-a{m3b$F3$4xG-4tMYD9!CYRJTB+%viz(t zK|3t9#nr*L+|As3vKa1%4KzJx4cA(SJ90ddWih<@HZ%Lf+(}E__;b zl1zpdy#(gYU83wuY1k_^Vs-|~j#3;P&ES_0uS27Zs)#3T(SI5}{u;1TkEpx*rcYPe ziklye+yQ+7h+D0oGrxG}j!9&c&W)TNWu1u>QP#|CbuS-HUEM-qWlQZWBtxFo0^zti z60UJ~-gG)UJ72Rj@5M-#ybf_q2JJQBe7*FE$=Y~DM1@Uc-}E_oGe%F>p~bFd7Lb6&LkR8zIJEOFg7-Rk?iE?S*J_hGUy3S@#;779OHac$5E^D zygZjA+iKKGlQ3Aad=+${@{YQ7#CQK-DA1yILsGJjxtfL*5V2=_v5qsrv>L%)Zj~>P zmgj+x!2L*V=<`6j;bTBTjpZyF0*+m(^s-*W8Y z6oOX1`_muy>A=43cRSoJl1Q{Jvy zzxthj;lBHq`k-&$1n)dF_cEP=&s(vBICz>pn5KL+`|&W~!}e%z)uafUl-L-4Z2~nhnOCNO3?&KgX=xHo2uC>E$^X;t*qAZVc2-l>JSB1FD zjqNN0SHzuH?_%M^I}JsQ?l6+$`Xo1b1*O>P=*~M}^%2awiCe$9?0+^H2Lt4|9i+bj{Bw7Wgfr z3{I7^Y|`CMoofB`{l^o(_oQTt;dWq#y>zkGBfJCf-Br^HXGYz7<=aC!H|9CoLeDx9 zru2YEshQyt@vW+ZA-2%hc_3Jh8 z27NOH?|!XJ_1mcYRGg*zIS=W7t@~wBO3kcNP)hDa(L}@=Tvhpr-}ve{R!gYrNEO*b z!8#1hw4NG&3cV&Y5YG>U>pRzoaTfykoMM)r25EV5^C+KZ?~7VyVw$Mqob|8ZS!#6xD!|w%}%ieA%2dKnlOx7|AuaT4rQKQ zm)HubrM{yc1KFlzjSB0lbz*i-TdE%T`(48l?&Bp`gNszWQ#dXPQ!awAkx4_ZH0Uws zSEX;{C;=Bj$57Jp&U&``gQJ~(jl|;EFax{iY+}}NWeDiDJD}e7a_y;k-uOsUxxHZT zGTeY#`9$ui*SCA2U-i~kZnQ@q`B=QR{&?yf;Do_e==P?ufU88<^_a~Ys z1y+OvtDt~-M{oMH>W(7A2gJT^%#IOKr`|HUH%SOf3tw`59(vVK{qC@l`S1Xfx`lPg z25i!T(vyV>bmYO|^0D{7hHi%@tZUm%xU6Y2zZ*{>7Mj);27NreoXPklo;v{IS=(0bBFyHJ9(3 z^9wB7U(1jU>;o_ymYKExNa)vPoE)5nLpWmnyobe(Fe1*pQLbcKUVZh_-ZAP`KFyEv zWpebLkSjXF?#a#@>K%_ZTk?->^RKOp3V$=H-Ok3!ksnor z8%p!()wLym3*oPBJNu^?U7XC%P#>>Rf4w}70@@YACFkJ{OY-@(wXq0qi3yMV@q^?) zJ6~eU4Gtw0PGz~XzK0}LHr7ecrDu1%C-w;c%b{%VjQI|q#Zcxr#e`krsiVJn0eCwM ze+gF1#TQ`26N@z%RKM^HQq^jgn{&P%Wb`-hR`~sG=i08edZVY4E>zo;y1fo-VL*RK zF$P#|ClV}xXXSD(%oIZYSTedR%8JdDmg481bgllz=s}YQHJg_o?&KU26BWB1kZkMa zx*S)hqh_5rx!bY$WMtH%uJ`X01uD*nsH9ozxNqO)6avYgV1C6@bGDTs&%Z>*#a;Cn zao1g_8LUL+l>^F}hKJhBz=Lm7GKgqcgXX?}Ua-K3+TK+gn1zoOKxU!R5S(Y3lPXGX zQC~>g|An2>by3f%JmDYMnh!c;47?g;A;MN$6EXEbYJc}0T1?Nock<`qRJ?N0vGsb6 zJyCLc=(~N3+VPMw3JVfyG^*z-bPyI~Z+9aXEv@S6U*&%Fx!oC463FPfa_(U8Kf{rY zhPbClNRr)DdDkby=W1i&)Mq|@^a)@Vj?3faYdOBVv z`_S%c;04y0F+kooJcBdfS*dE}mZ~YfvW(Y9%8zfeXXQ*e<#f22f4@fGY<~5*A05k$ zod$~W@%Ur^I-dZPlt{CbjcmZVuRX}Ro2dd;Z(qu`uv{6jjD<|Q%gc~4#OLb~-x`vI zeKMr^cg(75&&JXep*Ho6jlZ*NI3A|^(vZh8hThfZkHd6q&!f=*-tB-RR9|GaQt z$O`oa6ZxIduwcF?#={i=n2Ouu8H%`_LpdFWy;3+-CP~t&g5f?Y_B6>A<%T}dER8H^ z?>i3sYRX_S8}5}+P|<9rrJna?*b`BsAQv`USKn=qe}RE2%#mH*!y)mMfW^$>z)R$=TWkK zg#$vdacvwG)xmb$p#Eshj=#>F^+{{qbPbU$C9t4Rz|;9(TY&gF{Mjkw|DsfBet#`P z>q+9iPV{0RY#%q;A3TDHoGUHy>uuzS?P4;pDXReMs&DdgO)1N(Sh^a`p2_23_~g#PAqotw+7OosLw=l6 z4*5dv!D(dq4`J`xvg^JyOat%zaHR@2cp{ty%if72s0M+gC|pnYQyx-;@XCug>4Nk; zJ{{gO`g<1C%66Fti)q6XXZlmUHJ!nIiLZkj_Zn$5S{DVtLHh7H(bqD?jQMbf(6 zgoQXn>f5b`yTw?ZX8408X?RJ2mIbP!U+VD3{{8|XbQ1hM*-`sabeL@4S1vtL>aSsr zV1QJLRyvH&YrY{4xZPG&i`}#giNT31w&ewnm-|I)fs-;8fU+VonH-!p&i+>s#X02K ziJ~M%Uw(Qg3x9qC#a8TkajdP7`Nj=1Rr<>o{!KCo4cR-We4EYz4mLx6y=-4a7<=06 zU^WL0;-_il`ody;z>O0oOL%c?5w<&Jx8IGvs0L2fPH#W?MLC!s!W;S%Ba;#?EH#zz z2I=yCRX+`9>IWY6^4m2NFTlyKxVHG3Aq7SqD1?OB5LYV7oKkIOn0i-q2 zqs<%`uY!Wn~@=;SA=BNJ{Zl1A;CMZ z6S&kp_Z%dX{|r14*FS-#&hQ0Buz4iAh9Q1IhupsQc4w`C9TA!pEwN3r z4(M@@Ab;ZNXS7jxU|Ij(Hll(k?RD@;^4=+$^M$2T`W710gZa0>(7rpvA|3XCv9!)E zy+V92pLM*kLNq%+VCwo>!I;sY6Eid8W8~a7W3yrY#=SS7S^U|1S}?6+3*)|;p!C<1~oNvIDyZp$5KcZhS{5+c}BF*sU@PmK=vsJ8t6WOw=?R=oC9X8*I$LuvU z#w@Ny%aBtz;umQCT5YEc&v{f6GxRR0#9GbYGC+jTT8{G0DliIrBzJ6F8c0QF0s>xB z7&LV_wan|7WI1KXPyb-0KUKxXd9Q;lrMNM;4+Utk4)_&QwN_;5^m zwCy~iC!_>DqUXQ!XmC>KN86&5^LzP_;ZaOo9b^@garj7sYim6UP^@H91!$?9AsU|( ze}9ucmMvAj9_we-uzB@$b(a=zPiM3*=ir3&JtfcM(T&kNcZFC8<1wnYb?nb(TK#lBB9gMo9iexQBin7lHzbGS;8c^H{p@$*|TSjryF1+J4b*;w|lkFWmKL={L3}z zDI>TF{L#F7f2z@NaYe0?IKrVA%47~;2d8qkN$H1WAUri9z@#`zj$$l`3E+n znqi+P=+-cHIE-}y@k+DCwtroc^j2goC!06RB-p{)yIH~|g>*W-ZZcSz`bU$d6Ne|_ zd<_Vfu_A_+)fJ(p59&NY1Y$*z#;(BHA0ANXyhpYSGR2u)#O+77wf0N(>5NgE1Cv-S z^`2EXLI*t_@-U?Q9US=p9xxq~l;@nwE}V){E+}&l6J}s}GErsdH(%PX<~xiHYcSKT zDlV&MAVT9T+{^F z{KN2c`!CRwu7_Qx)H+HMPZXG#v`UH8bxLFv|FJH0v+?vhYA_ZIbW*i&Z!j`m<02m6 z_1xULpT5MYfA9-B^fdozS+;K&0oCO`@$)Imt>M*=(QwvoKzGNgIY<~FYzST>nohky z-|~NVVJq{YBt4K-7=dMQ+3_%vnO&7bE5saZ4!g0-os_rXG- zJ9Uvml|!ZRrc?@7EU+qI(pS?u{4S+|2q-h@fsWN%#hTyYBXmFAbw;`Uz?RZ;2-PD(3#?5y9RV^aI% zvK!Zgy_3OTlAq2h=GwXP>QwSLX&299g)NL`$llBuU-k$9{2@SL_Lg)f6}it_U;GrL zi}i@i=JbK;$t&cScM4)T2-${BtP>SF(aLKCYJ$zGn~Tge4p}c17p_<9gv!qw$M#LZ z+{tVDewJ`iTgMSAMl3|%0~b$(q>)3}gxaSq!{^<;;1N|u6!A+w-kE<@e$*{XH! zAU1I!Kbc#M8#~F}Fg?uh`8mnJLqOwFaKa$TaXTN*5r4=1M@H3O=;{CW%Lac$WaM2O zpZTJf)4JW9tL&*3ghIyR`|7e=Y8hsKNQm${8$wRw{8YrR%oS@Y3FRwuaj* zo1#!zwJgivUE;Qg!D};H$GlQQUZ!vHa8Bp{YiyJaLn+Ay^c*7l%iCA1BzyjL5W&Vf zu<2K8U?DsaXO;ocR<0uDYX`!?tmPSg%_!g2LOpGXDXh0yEr5~XHvNW=&XuQ z%DQDf(-@z$XC4}C*Q$N=2|1HqwT#2+KgHsfZz7yIZm9fs9vHsA~NE%rP;v=UKt?V)+9 z`Y&|@`IU;dN1kS}JX{Lzv*TrcdS2WhCa>svEB`jrI4Qpx|3mrRxb#`%7vkXHrd1QJ z78S*pH1VnbC-aHt$wgC2&I_2Q+ffFm4voC-CK?RSU3Oba3O5;dA$-O4Tv2C^q$#PG zyWCw=cXJtcU#W(x?bUGSXYL7%@#Dw)7Gtpn);n7E<1Pd8WW31w*=jPo-79NKh~G$C ztj*spVc+(f4;F^xO~Bp}C6;tcF02!*&l6#%&t3mXq_Hu}xS_m6|EqG+JwySB-!NrR z{}V#tIabjhvoCmc)ShZbT0WerMJRsQy(Ys_4x=w8Bivf;bY!tA{76>YDOR zPXs3uy<7Ibo-tvvt#%*ZFs5FB?N$p_0BZnwz}OIC@B9>i;$so%1~4K75Gso)*=q>y z4Em^32DL70&Mo>ZsRQ%CGdadIh_Ml311h+3Nl0qpJsrk1P_qIm65PmEqnV?5d`?el^7WryObDK9Ru4}RpNwl#S#WK za@jPz^{t}OE7}!!5kgTqX#{TfX!=4@t>f2_-u{EIBr$DuRJpVZwOZ}*LLUz@-Yxs1 zVXiRHpdr9+9dPS*yx&gLSwt~j999{n*pkE`JX}18mh3y)`Rw+o(Z44VAg3jramV~j zqB7;tlq&Ts@v=eK$)%=^aDlpgky%*)xYRS?&^b_0Bq1-jItvhBx`F1R8o+4bk5(9HISd%4hGVKn*uRGos z<80BVU?}7G8xS|JL^T3`buBM1no*WgvbkSxSlb^0vC&`FW_R;I@4Y-#28?D zccEFulho^1N=P|SyE1ry!Xe5=r$C>78wO`R8vaQHi42)wmPUKfdBZIHWolWaofW!! zV8`$b=!F7gHixv!nfEh0*siMIv-yW03V8Eyp#~LgSR&Kz*-Xv!;`CO-Ag*0cbV?Ec zpI@|37K0xTJ%YbzX&jCp;*I`?Myf?F)$Pqkq0!LZM4EcDPUbTw@*q$Eizy9Qpl3Tq z+9p4{VHlKq4()m)=aix$DA$ybk=a+gV5N|Ac5e8Gb-bIf{6f}zXDrv2u?@7ry8B*n zgCnV@SHddEHe+H%ss?$Sp#P3l=P%o@!N1omw1Kau>Mz6gZK5%;NRQ%{`HN+o%k=Nu zR{~R$_a`QuZhdGh#ZCHkmFuXxw|Ll$UEfbNv%7Rg0Po z&j&@JXzP(8t=U9h=yGYn&O^F__`AHkj4tZD#OxDkPa$-0D7*Qx4NJCT;4_5(f;Yxr zXw_!>0~Vc+Rj*$t0&(4DWnXXcJ7yQatCrHc*JAGL-y9D|I)ll0%rO7TV2f&MP3jkD zUc%<_SnY*B?&XtxXB(}qyIfzpD@Uk@Fy>KSk!jLT7Z}lux)HNv5Op<5Q^h(cq3vTy z2a7njriz-382CBX`Sa^x_+z3+$GI{O8{%1wU9#iYJwmJ1pgTE~AI&ezw_VGQ1 zQ-nc0D$FamkJHD*lV-n~-T`aMB!qpFF}G8&_eLZicD8k0uQrK$y`JTDa_VZ-tgtqVV zW_H^J?e{6EskX~LAF-yHkaulL4Pi&WWfwINx_8L0;;S_#Qa=B=WR_ogko0EK>syuq zf$(^$H}GhJr$_XF{1-a^Pt1}3_%_x3jBBGT8r{XaeXzf`SMw)xw70EHGN+kVb=E*q z&x6Hjq*f(P_rB<{OWzZolE2KVQZ;>F)UQ;qCDxx_dZ(k-9GxT=8gs8~p{KWl{TqAE zv8sJ(h%^OPPvUil8$uJ4-4#NYzP=WmOMuUXPON{;jf*RFdT#ai@xhYkf#vqy!Cod{ zX;el|#>yWl9cB8!zXpwgn**FjmV$cXr!sxXNOkQ@P#{*RaSplG_A72Xy>x zensyt8u#U{I0LWWS)q{ln~C-#qa~Z;1<3I+z}4z1N~&G0x|R@nFVDgPFif6%+^k-o z=m+*dNV}>j3+;6xOKJrmmV11xG_7#8AUU2i!St_&JB${?l0=*C^o7dzV6eKpJJ*CG z+UA19c3mw|Ygi z%pw6%rce4zx*0NAaPLR6EiRH%IBqkGDQDsjj1=dKw-L07L)I@@&TMTRq&z#Ni7K}q z8#+u*`$~KDrBJ;0w&nw3PPM3CDw~mT=M0&!*qQz1n*4a7p7d4^KM+Gp0x||ukbt)z zzQWX-jJWnGYT*83ZImseiUG@+G$gSPE;=#W9>QODS2plMS-hpN>vLs6Y*SEua_E<% z$9xnvp8*+d1FZVTI$YA-_^mYB1awb1d%1mQO!rk)YI_Cp?&?E`JxN?xlKDke_0ukM$JW+?} zifJ2t>4fF}{e!f}(o?-IXwhvq>5e+3q;v|UDQoSTIxQiFNk-N+24f7)xLe}uvyN)> zUr!uDN3HyNcOHs(ww)vn(gUtEDl-lJgztY`4sHT?hI2U+Dz5$f1(Mse2{9Y=k%)a$QKs# z<7dZ0AH24MkR=}*f57zyt3igw5x-WOTQJZRc0wa&==UG`tP7oPA`QZ3IuWu==d%^03eiLn!83M%B9 zs8|zfO#A*S+;*Q0r`eUbX#*kS{wdjo%Dw|S$dopBMJT)zz0rr<1RW; zrGRTBD=x~H$Ue#s(vR*%jMTvb&!=;7X!xi5TFxr?U_02oi~}>`1;pZ_;*u2DzQBcJ zgwPVQ4GBBZl3MQzXqN_b48OxA(~EaZ^s*^f7WLjYcy1gWuLhA>6c!VG)}||I+#f!6 zRjS}eAe$-t86^$1l}&SQsOV7%!Vw*q}i_LBhzd;!srv|RqW6&+sC1Pa>Ad#(@Oj%^v7eP4r2MVEbY*Oi~6VDb1Egy z_0l+cFKC&8I492=9?pc4i6gIF7ypXk)YL1yI+tt0{M9v@x-OTE8EbNL|LkFgy?o4_ zz}Ve&4uvz8$zSr}KTIrk9lUAg`fLjCQQ&p{w`t}!bcA6?HB!|W(Iu9TM6!GDJ#IT7 z7>onu31td!`Uy0xh%giuMgIJXgKtg{78nKhkj=G z#$ZdZsmSV&>ZsaRWpT?NIxQeLDj)ao*V?bklHE_qB(<}QRg-#x5jJX-Br?~n^@gT!UIDsRA2FCKHYccf5+#Sd*^&BZ!}q}1lafP;p55- z@3Ixe9#e+G@p`!n@cEL$iDK5x3;*vV{gZr12F36hp{g_VW~v%ut+SWhP#V@=|mu0hr-hL4VggOPH@vC?O^PFgh|O3|M@O*NSG1e&)= z!~s=7(@nk7rTXK9CM5Q@#c+TAe?XXp%a?*sz*;G}S71!Aj^bj1OL%%fBK`(WT9{ z=%DuTl-+{(5@8ROkB?rD>--7;=bV;Cor;?7i37XYJov%k}-kZ0glbJ^0>!DTq10tyA-0tDTs(nb`@wY*CKkZ z@a~3HSs|+}kAovDyy^1Qt4T?ta`CLek1pC_cO!BixVRfg3CUuD<8n}ia%580el6Wh!3jfV2KCva~ zTiKZ9X+H}iwEvP4P+EFTN~|$2hym)KQ;-uxx@Uu}EsL$F7%CH@%5z}pHKP==o2bb5 zW)i8yAdZvxidS|$PF|L0uOB;N{Z9boO-J+Wn}QY1F{*HBsnX`W%<=S!G*TK``pjt}EZIhEKw)@2hfMa+eT@3e_VZF_& zf{OJRR+Tl=UQP`Rh`Z@7@0Y`coVg2QiOV*_+j}guUrDEcuK+gmu~-jry+k$-%ISFa zKPm+lF9HlytF@ZXC`?)k)se~0*eyR<7U5|bKxgMb*dR34bvISK;{D4UN_OYPYrBjw z`F1@~JMe@A>(#LjwL*?Mz4Zyd9c;i@h(C9e=Xv{F4L*HupxxE;HM?vR2erhfKrK;o zB+*ex>8xd0`0!#H&LSLDwE7nXrR5(Vv*Zy??85n_>mv4@&7GKi{vHZ1X67@nGOVsT z+$Xa|;M#u|bjTi&{|dyGiT&K|%_@mTQ+t^fb6w_q2VyLnlciAL@Vhqa$6^f++b)A< zeJkcIP(-oKUoE9D2v04gLf;MNV8Tt&^~1z zci=nH3OWa)d%lv1y9Ki$SL8Gn`vc_R;xGN)ZCgNWUOB0T`_m@=C5@@O#=RgaVLR`fWo~hCxN=DEg-*W~6p#HL^ z8_@AX!h!rAfbD7?)f%i3H#8)~XicqJA0+Zbp39cwt!%LFzHp8lwH4*dz5swUxXVPA z$Z4KYnCl>5wZw(kXK&*c_f`Ga_3!(S4y(`;aJzKQIzgl{9hbb>VE79^we|Z*8KS56 zOx?SENk{-Q>W&i2ShKeBTCagwQa~^sS0sdT`ran>9~II5)jX4WxY+WC1zCOw;zbdr zV*ae0I*n_*0x#KG2X z6>oOU&5V)(^qzvRfn~)*2&e~2s&q1^Q_XYp^yV#GiUXG5AVjhb6f9CT4 z^~&ErF`Jf*^NYUCs`Z=SfBO@UjYa%IV79of1pSG7f8Rpce3H+*J3DM5BGp4oeSZmX z`5)8!uXqh$mirO2e);_Q5%kx8I0`X62Te|!h)q-FV{zj$2k{&V;L^R+F&kk`lC zwE_rKzwh{89{(r#gg@%sUo>&;-#4HCdyfhVqAejXd-}JUbG~?Wn$A}yAAJ+onX@_Z z-)+;&WJ039IYvRUwA3a2rrzG(y5@H-5&Uxw{*Sr-57&`75DfUf!p`?j|116RXU0sH z_9`&k&z?QgwSIi*T0xdY`Vh34hmJ_=5JKQ-@iA*wfb@cHjfQ`LthaPgkKErCD6s z)(~ixZb#Dq-{42xlFODdTn&vIr828tk&K}iIV5SZX*Xkw> zL`xphh+$%}(J{%KW;|0Iy#Zy$1A-4kwhDYv3XUc54DOHfIO!rcc%c6EBez^J$smB) z;^3yLd%W(**L@4$npRWs*Gj2O*Rs( zTlrFd7&am>GrXQ@jB%J({#{ydHcXsr+LEKxMv6 zb5O26HOGgT_BA|fy$|}Nk9$NFjQ-7Zh-IOsr8Rg!sRwX{$dl`QT}QAU7v|w}&4_JZ z$jUb?ab@-bMeR=cM)mMVibtfL-xL%( zE9_o(E-W`uDCIHhZ$?il`Lj#%bWfcna_lAsu1?H(Emceeygqf;_<91NsP4R*N;9cu z1zzqvW_mN}ea>tO3%#}i7GN{=^bxTczN0>8tEi;xlVh(U&U$w2_sV`E&bU7r0m8Q> z984D$ZrBQ%l7`BvUF{n+^QJQ$T;x>_B>R=WWxd9WdE{Izb3O>N*baFDW+aPM&tNr8 z&t@bq`r}=jAx;k1emBIT`TDm>VmNei{ht;7CJ37dee6fIXaf~lXS)tcpI;{6c0%nj zTedZQDOSkUqqJH>sK=3(wrK>RhdE4HSw91L{-Z^7Tr_v{>0RcV!Cm2yeIYsLD?1Y# zm1RC%0qIjzg01EZ-B02=Q@%3o%;K)NY$~A_xB6AR*X9?atq5^xLqK7JlZy6{b?Y_nwcu~k>kr*?9H*WtiKSfoRNotL8&E38$K06Dc6AK^ zg9&Vo#EXdz^W~g=V)hZ46OZ(jPJ1HQ!1*#Mcf0-JobBOU?*H2#9ZrJf$u|!>6xsOr z6f%+CX1^(4*c$))s6^iX9)-E7oMV}`v0xgOk^r1s?P(%(5iQZXH*OeNwO!_C5#3w% zByrqaz+%dVa6XhP)euCjL0FRcDRpbnjCX>|=i~V+IkjdF=q~e6Z!9+B&-dAYn$nKL zEqWUK`Up^9-><0^nSn?;y;mNn`$X2v^Y{JAJnxso7lz;ZMGo{!bHM%rY?g#;ZJ+++ zvGsX{*T41Y{NG`<7T?V;X;K&1Zrw`DK&)X|1WbV^v}ni%H|`}AXMZ}4_%+|aYiDOi z)m$NAW-Ae}I1w$U3qnd=?eMXcdFN=RgXg2O}JlEuXCsgBzUz>&sv51XErj2lfsjt2(o+70li z$MZE4SD9#UDMo-hu=xC)Y;x&C%T0y!I*l1oEr#LnsxE;t*Tqkq;PKToG(*?hG~R_+ zJ~jWf^gv}_`iaWg`VA@sQW%%;qi6l=%T^{!RRnzClXJ>Yc!na!1 zMI!pZRfYHQr$_tVJ%zn^k}nb+_XMXwYU|2Oy9p4>#rEQ0o1N86-koiYrfce7Rtz;= z*2Vm@BF6(7?q3pN9BuOtD-GO7RYqGAiUB)-+K12`dH=L9plFIoCMAviEUi`xZa>CJ zcNxvLoHp5G;`vJKGR;<8Z-17ve+S6m`rv^747V}QIqJ1B$#aWLc{5L1T`x8LSROp9 z(>bq_Geyq1csLyl67I z04_EI-`y&}ee62CBFmyfEabs8_>}|@9GhTlXh^>92cSIt8`f(<*}&%mFX1iLC)@&` zAsQkZ%GktFddj3a4^>abjd_zqbHe6558Ki5g>`p8BJqm*R8U2*0>}Aho9y zfSK-F*wwnbWx9V9Jwn$^4-}}~K0+n$`j4!3TXD3nuJun{w6BjMmmV-W!>TP1(&+5t z;sf`{#l!9=-Y{)MU$S}H=ILAK-?(o-^@NXMKyEYP^y7v^EVvp~YT)1RY4&{3LP=R_J2z=J?&5soBp|&=GN|@$dOzfpu{KD)X zJXI$Iot;Sab@5FscZrvDN8d}|cs^zH9pz}DdeH=bha?Z+3t1RnA zPauZe`LYKy>>^EHL5z-NNxYzw>0ku$0aFoKBgh z>70&{V^{xBc97}7Wy8SXle>wR*_oY#Nx1AJ?SBK<$*?EX#e1?b7Rl*2kKeR3eDk`6 zU+p^|^j>6IMYGSkTzYDA2Qd-;c<&|&VR1v8(E1>+g|AXI=t%DIw0lnlsmRd-)jukOGO_C8Q$%$73HdU9d5T|DI#uav5a*!n-m<1+UOvv&gKYr z71h4l-OJX~$!d`Fe#f}+LS;?^o396il z!Vvym(|J-~vHC_Qyfj41rSVF|=0IOs9}AGO$AEIH)m)Ma2Fm^yZ)YGl@fNyfW}K{J zUG%~T8^ssC#GQPA9^QDpcdlq+b%QLN4M=Pv0rNsB+=ay&=Ja=r-k6>R1(MP^6Fm zaZ+=E#I+oys?#M;PoFa$4i{NHtS%yDlsswvwlh`6H1OGSvhH}#5ri5W4Utd_LJ?G( zYSIMWqc1#8-mr|nyv}1{IOJL2U;aGT59+8c_CDH?^USG(B^^J2J{z@^Nv;P+3WY^h z(swn`Lj$C8-gF;&hh-(j*1V!ceqD?mdS@R3YJIvpigv$7>x+?r;}s)1r4Y!NeH4I= zma}iU78mRQ2caJkEq}jcefwPL2GHCiV9x5BCQ`HPAjMc&oNkowMO?M%V-gOSQ+|_Q9`D0P*TWv6WOj z9m)JrQ5Mj~yOQVg#$^V~@1hLpyZ`91u(**Nrb)Xo`(n?L*hHfUqZn4?OGZQ3AV$M- zv$QeJ%0$H}zuY~$&ny~!OMAv-q5QCC7l#|t5Ng%z?S1UF-f+5at7J`m8$xAm7cX3> ztunX%?JdpWf*z3UyO#x1kU@;2`A)})Wo@u`bFFbz6Aqm4Pd@OZkYD zPk?rbghR*q56pa`>+Su{s&pk1KMlxrjK4^v6rbR9+fr!3qc&T%VlP?%q%SMtfh0YrJe?!HGN z*dSRlA0c@-(kqQ_5H#bRxuuab`>Eoi!SuIp>gyIin1@7;j>O9B&aR*wQPaQH0w8?t zZw?|v4C;2uKdLbd^%(9u%zVwoK(BhX&+Q+{fhk5euQY0&o34toGM=ga%D#+b;uA6b znlqj^an||T;lT9$*9Q8JGw=sLkZBSyZqa7qdK_;*DGU-J>on3Ns@?QkRqW{Q#PWgY z)BOY^{TyBd_*6nSv>{W)mgz^*V0^Vo^%2itVlanwC*wwTm(Z5=!3QD09tsi5b}b+U z-6;qrKiPppq>VOHD+gV>y|e~!N{tD3BoMgKBKHRS3A98Gh@)Usdo=PrM73mM!hs#K z$5rxy<(f5?8`_U|ebJb*n8bvZnJJ8uP<h)XARF@WWBgW818B-PRmn0loz^h>*(G5vFQ*BJ}D`(c* zi0+uj)g%rGB{2y6*qzvh)4#@!}oOo1z4ypnSL zA7k)`qXuN>f;zbi^K=w$UHVe|rmBUB|Ljh40M^K$!6u#Rs{zMb$Xq^?AAD6+$MWUN z_&N7jddpv)gpzmfz+WEUziK3*%=%gFWq;|p2cJY+P!etVBC_FI$0d(y@_X$)cgHxs zTjq8!^P=eiShieTw}fCv!2C$d+sx2$yjENeM>3FX_ZY=- zL2F=fMo|CP31gzRV#%U{6HJ=(zz6x@2kRw3yz+sHY_QDP4wle+yFj<>IZDoR*|*B^ zjy6JkI28gg<^A>T^+20Ni|8TQ;YH+y^hQ2IbIb>~@ls65q!?b&8*}#k$g=quuxUT%T#(V9{F1T8}rBggu8ux*=qW3Q3AdY=K#!_+M8I;Z{ zNnLz{F=)xMdj}&_2glTuySU&BV!Z=mIs!bDmx-&>g(avu-t3Ch@4iyApG@803s|mq zFSE3WR=uCtes1we-&7}|O!FPEyp+5*s*xf;34|WVD7sCnrZ(}6Glfy>-?6b~m)7l< zC4>u@KXYw}|IDV!lVxi)mApcI$557t731wtEa{3TtBwW_`s}UUazSgG)pohfJ(M_8Hs-#+I4H`B z(N9qIn)O%0pIB7fv9BYwWp2yLEYl;kZ<|J#Y!f%UY2x_k!k4oGNZZs z!7C!a5nqU{yu1&DD9LfEB28oKJ;>1JdydsX>xrs~$M+N0!J4$5EZ>=mXG}KF9H*me z#)-vfwU&w|*kjU@c?X+K(dAVJL^D`vZk2?5T6)ur@6nV>(p^G=ddBt@y#lGVK5m}r zRz@*?MgDql7x2;2d@FQ99*{|okQceHT=|h%of!)D!)>)ux{QA`>*S&#UgG6tq?^vI zzB~w6e6GYoW9u<8>hDn;dvSMZj@uFH2U2OPX&&~by^uGa%v(}9xI#;S4DzpUNZSTk zQTis^6N~Q4@ZgpqPda5=g(?k=W)LS@#KuX|cTfhxc3db^tF2wT935j{#cA>ZQAr*w z(T+QK7f*kn_WrEi>%E3QM)hOOgbR+Ojp%!lNN7whf_bxumGK~}9Tw|WzhP!pyk#IV zX}MCj^KR24xh^xC{E6==e9&*LaNPT`)}VkZAIm?m00hxx=Uz5lpooI{`shTiy5&oy z^~Jj(sEbt8yE@LCgQ~B2p!8Gqag|SkJ&8%9Oq9$weTP;ACivLtnNg6*$?3u!FvcDqy za1kT&E*6X2JwV#fT-jv2Ugf7f`&ym(d|U6+_WjZ)b+?VECP28XU=K4nH1$D&gJRZX zdEaxn+;zti)2ic{M*b6%KusnEdra8$03!#945n*GB4d2b(z!KE1-l*WGuanQ?cQ`E zZYJBrJ50pc3&K*TbK{I4su*}?bzzEeh!9MM;nBjcMF&TjMP*)iQ%F=V{_xbn(zqE^ zbsHRw8GH8p^NPFSk1RdG2UZP+4i(F9OI=>`^-B1jvTNYcu77 zG_8B%^04<#89B)H^>t=CUg&hd>xBe&aYsmPc_~H>TS_T$S*(1~=j_esQfIwqc--49 zKg8I|WAC}O51F{)4(dh%Cryray9wck8}or}M|dmQH-0!eM|yUpH-qeV*&iBy9gXt2 zueo_W<}!2K-aDS(#+i(gfRgMKWtBUYI&3jf!Tly-{;Q^IN>^OY{&W8b*O{V=C!&lD zJ{vzn3;%(WIt@ZZugXSrED0ddk6)psRwx^BLi!O^wtw*lZOkOr>?J# zl)*Gg;z`4&K==#LYE@u0za=}VaEbT37g*jq4JtM=x~l5Ik8yU)?bz6F2@J&MxBZm) z_cARg#DXlwDaQLP-~_W%NN$Y~jt9)X)sRPK(b5304R_m!wbcSPC5{Tn^TcD}cNtQE zB+h0|F=TNw`V|K0(|oawD>n<$vBP`8Z^CZ)+>=WM45c%?M^UwrL~2snT@guqxa4++ zfD)f2ioq{i4ooL`QhTm&9nKIM@f}it7Q^X|IboBw)dQR(`~*Bdq7*oVB!GnHu!KOs zh_A9x6CQ79kgwjJPnz1PgD``E&?BAH&MRx#_`vrGBl=wzX3W@{aR>JO0gdc}s6gqq z`U!~m?JiG~DhP8*s4L)q98n?PzhXR~y&g8wzwKY`l1qHtKIfy1ppzlujUkIX|>wx^nJAiJYh%@AV;8)H z%RVg*ndr-)dC~M>9Y*B=1+rs$?cMQVyM&I%ha%b+hZ-G*Xh`70dnD+j;rJZN=ay$b zK9+fVhFU*K0GJTyZevbPc|1!=JxuHg%PZWh`(>Zo%6E41;=(RbyD}cDRR|~M&aKNQ zS6yJgU2gs!X67Ce`tCgziS$};Yp?QGv|OK#&8S|T$?XvlPV6%T72o!y%D(XHUKW9y z)Wr9$&0rgXVSfAM#Y&zLOUd$9zSP~4C1+?Aj=)_Vg@D@CF#x(bu_=cjJEO1L!QOqR zeedb+U9(o|ZI6Cs7ku3-gDF1KbfSOuy9*odLpZei&NsLH^A?bhTLBLyKTBFZ$a<-(s}Ivt-u`2%u(cjB)0Cuz}A+ev>Rlo}T zsonk0md5eOw&=6V{9^wf(=7kw+IJ!*J9J^I`4?#FUmWBAo^UP$7D*l+Rp6A5%lrD@ zZj>y`RYGF*td{v1Rk5gK3!|TqgZ~^UG97N16H^iR=>N|m00L3~tB~&Iow1*C!2i`O zfQjp+od>^w-?r+{4f#J-`FVi2h15^?^xk!Xzad3`TaU6?R~MF+l)bz}8OUM_S{y#6 z-5EVyx%78-H7tpb8Xj-P#=}#XgW<;Mlfo#IJ;q12Dc9pZ&?WtMdLN(^Zips47nv#b z-|f6XiuxJZ276BYS*?Mt)%4phr5FEBi-CJZH3_3EvErIT_80#7qzq94&X3m4?oWRr zD-cK`akHOk$gI2kX=ZD3ax#PA$#3Z&e{z%l;R4BcPTanwd%t)u^q->Si82gK9Rs7>^lkmP+;CY?~}Kq2=L4!mv+&_c`(xU&c%ouzIgD{&S`L+^murvltg# z-J=z~F8p^5j?nW|I@)0|{GZL9{hzb;yCEUwqfSdsR(XwRY0L}xpR@6oHJDCtA9%? zoVSF<3-*{2JCMPD@pmKtf#rQ%9PjGtYV@;B*D_b-%C0L>SAfKvyFh0CRjbXrKQTwK z@xMTF;qh#E9Xl9M6y342*mZH^p_f<9P(%b=4?v?x205^Ss?=fPJa?F38yoiH4c_I2 zCgp~D2!q>|w!_hmCiTk8d?widjnLIAS2U#=KmBO51cTeldnEz9o8q{T7>-V$8!r@J%iw&K9zlbtJ!dvU2T z+<;R5^6sxo3E4!F&s~#5Of1w72pM99o_z*NXBs^pS|ccChH;p)uuDt=k4*g+<34i} zm*@~he}8vV`*}&c$Nqo{f5*#m&h|`s3Zj)-u-4LlE>LVG0z z$zFbv_3=rP#EuEk%Q&W7Vi0{YFrXEjd0pB*;T@xd9zd9`R>7~lPt(_J%CJF8OMk1# z5EP}b?ap4OXW7?kTDJ`NBvnPfk)2OeJDz7{{Mm{7$91v>B!IHklbaY7g{km0>Hs9x z9`$DQ^oeEA8B>GW=h>2HpDD_`2RZ6b&NfeFR)@=T0UC(L@94k`i3$&7l5D{>L(I(C zaV~k2*QAMlt~yigoWB0!$eU7GuFHJU4gznB4C?jt*osS9O%0t0~jV8|ep z_7n4Y2RFXH%)~_{by6Z^H`1NUO_`T0w0fg<_A|u-7KM2a)Lx_Z52kS!=$}srS@-qj z2B@Wv*SQ;o)Q>g!`zG#wp>kR2ld~Dha}L?h50cFz^E<;Ic<3{yV)Ne73o1OfSSPMr zmpM5Mw$}SBfvM3>X?n5NqB9ayE`#5Wd_4owJkEk6~*1xEa}#(a@Bmhjo8_8 zM4;nW`vMdmJ)+*AegA9R10{2Sdd@wR$uKr)rvFHh<_+k^wtyyjP@^D(c3M4?*-i_7ks&YVO zJ$!@p@cpQEEjb}!j8Ls9S;|PS$do;p^l~gLSUtMC`%*d5s?6!fgY&J+WD%JrWqESA z&7q>in~uFeb@M&IidNI*fu7(E>Dnz%Tm3xZFmY)4*p>Tca)R)#N}>oft^V+AvsUr* z7nKO9@Q7mGzw zHBlz8snDc;ggC-IDgb}nxpF_3t{!PFm5RR12!4KW8Ia?cIbH4z=?#nNdreVOW+sWL zsl0=^&DMe<9vfpy>N0pYsQ%_2KqI%|s!-jmR1Hl-P1U&zTQIRWpsL*0y*WE~8k~>& z(LE_*+Mon~B_(w@aPgRI)1X55Me+IQLCym*;@h+SOr(SA>+mWxKoz$D@JUxD53-DM zs&2)*+BY37C97_YhA%y>>?1ByFCS+Es1TSp`trG)0O_y$?>GGByEDyN0qdic71>&KTx9HzM%0F*aaquJU&aqS%ss@`88>2e=6 z;np{CuiThvoa!}dvp1+w&nJUF{AldW(~itZ=ySlx+&>!W0R6%)Fz}tYzCZ=n;4JR7{ff?VZ73f|QT8tf zBNw27xa4=&#Rec^f@DL)u(O7}=z2zNjGVBw}JuRaVbCk5D<8JQ${2t)RQ(L%m`@ZJk9VAXQF z`!cWw$u3f?$iIT~7}#GJDA0%cMx{n8WYaMWgzZ{ygR4Czkm)kLrf=I5JvVQ6lccOA zQNSzi(*+J-SUzTErs%$!4m|096K!#-(C-6D71ldx_T;L#Lh-+SHyHJmzL^rBUesh| z8t6@LN`0Jp?@Xu&-K*lzW;HtTEf+&kNY9PhAIIws(7-y3hD!%~JY2iiE%@Bdpynbp zFfiCz%}uYVFIe{f`fb>KIq`hme=3vBIwhdC4J6iCyzsJA*MvaI=9q-0WG?oU=vX3V zvyoJD>TFr2es?*|w-{+&;b|7#03~$Uvpn_1H0o#CDRyNkE!XV3&0$fFF}g&)rd&S2MG7J?JC*H@S2hP&1YHhH zJjZ$BU%B@IxJ}+;#6LVR0g~D|+8P>%Ll*vDUT?FfRjgK!V@=DSfx+OUjcoE(5bx;m zaUwWe?7nmlG0byiEUG!IQ@7gI1N(WGza|~PyT$Q}9mTd1Q0fG`3ct^6B!>fdtfJ#s zG|FlQz}o5eOJjSu=uDSGoyP-9EC+X54Bq74U&1u(Mlb-mGBc~z)D2)!%tU4K5I~wb zq%QO*gNvd&Sww&H7;ob7*5^YuPI5;3n(!tbN0opncdRVf#|#SghpJruKOsBL z?=AZbc5GS%pA(yBInQ&vDuU0PVm&u^9=SdX4L!WIKif)FW;4iP)1Ue3NV=%DUh2Fu z>EFaS>=WNCp0c2(bPcN8j7LK)=e{b@VvQV~QHXc$9UX5bcZbRZ%DLRg{F-$>G`K|o z8$~B6D2)bvaxF91t1pGle|#}sf5NNN?n_F!rfKwEuD1Zs@F(&8t^@+b4a4<9yO7vJNjn+;gl=27>$FD$1xr4V%ukm zG2c1>`Bl{`b=HvLHlXB)!kxJ^BRjM7yWC$i3f*fV$BHk;YA-NroIPX^61{l{Jij@1 zR}FNJH?a0Bz}xxQty%{2GOf>l8G{kxv@~7^ANR$4ZA){97v-R8hEwi*KsC<3pg^l3 zQe48tY#wz1Dv3j6(kmwQ@7ag06LM~Xd<^3$wTqx;^x1ho~ju(LHmFkc= z9izqp%5C1+G6wj*(MG{}0o!3JR_*UUaL_yowN{|z^@(Gef;6&5*5NxXH(dnq*5BWD z@te{w2hs`4;Z?g}A>3ZMhQBG}!K81bA7F-n zX8Yzx6|?DM*{xG{y%z6vw)-O8zlmp9nut7Ml%FV7;Q0a>q^t$s zZb4uM_%k%fuXKR#opG6hnoP$Wf4mQ}Gj`sO=QH7&{~i$sN%L3ek@kI|F+A9o!dLHs zj`p1K)hDGCKlT2at3?mq>w5icsZq5{VVC}kw+Z}1mzJ=ah6WwpI8)9{NeRb}x31gU z80XFy^~eW3{>a7YG^i%h^{yA9<1_m#E|}a&_E;o1?MV^4RsZwVQ3PV>;6&=Gxroj~ z;B1eL`lhL%Ot5XqXqlA?QeJ0ACV73PoQU)i+e*Pjse|jvNNO)^B19gV9(Y>o#=Y?Q zDs5vtu#o^bpRlGSs+*E*1_tAx-KX-<_|reo9W-}KI!>frQL!ihJy@n}`GvEi+|lYT zUhBwUfCf+xPlk!7?{!EvEXL`Z6=4a?Qp$h$KT1@{08>0#+gy#zh;z@hLM~ZhK7DNA zq4A22jkSDJ+$!$Fy0c`#DX{i{@y_mv>s3ahHps#0QEy<~E|rG=7-xpO{>rceM$jgk zUy#0fZ-Et=* zF^)6MYk>3Q!we9hLcY2rI#_PArU=PgsytF3NMqPO-dYRj%6klJ(m1~L5Lk5D(S5t)YN>W z%qFmUxrJo6OWT-Z!uadPMtoqj16vRR0HsB&=tFp(w@Qz?}36( z@|BKMhDX_LrFnTL+(&jJl8q$V6+k?o?IyY$Q_9jkcifjjpX(KQ0f1a;vWfZLlSO&a z!A5{fi~3HuEWjv_WLT>JFo8-aH#Wg#YHQ+@@PHrRRzaxjk=5zOH`>F~cGR&4-s|OM zDPT}?VRW2HL#t`eQ!KC|y}i58IE!Z(e|4!%yNDpL1|G@VT$-pW%*f5|1Or_3w+EE~ zC>Vr}-@rDw>Ew)$yg}aD#HW54UozaCN-`~!FNgn@PX9l{jj%Pg ztp#n3x|w}(y6W*-*W8l>q{t#5a7ybl>8b*zjh~!+XM`52*XvoebsnhbVm~}HKM$uR zlI%^s#;6UDK>K%d0c=J#{4v!QUomJ95bX{(xquqgTCy=Ax|F`Bd~i3dhr~iP>%mmg zCDni}I03{LyNv)lInHlyyKSJrGo8>Ex7#aI-}ODA`}(W6(=@6JjH*~lUd4zTa9VCX zz{0u4Anfxlm2Z<-O&3l4Ar)Nqxx%_Xvu`c;GW{IiLE8IOJ|UW^I*b4y2)_W_jfTorZFdZ(?X>fc;@q}mdH4R;#VN=rNU7bvkV zA`6LqvxaBp{1EpGG>_+Ei;SwpV-{TyxIB8Z3b(Z(rG{Qg4CzpjXZp!lv)RYhq}@mmk661yQCj%EO4Ulif$s*OwkE4su{t9O&`2UF6?fc}Q_2*ZrN zO;toxTQg6@W4(tgiMaANCMr=y19|=18GN2UN<$RFBN3=_-}p1zr7L7WHFTZ(Qr1#- zRgW&XIT(CJ5|csq~g zR}^#;-KK`6fNq~7#%)X$aE9{jifLAi^*l8|lL!^8S#ZSgvpW&sRaZ|OKBTuL-=HuY znO$S&Sm^?=U$;#2f%ApMTkqfZb(8X~lbD}Cr%!Qvt48LHBavYR>qUC#+}%i(uqkr{ zz%iNR-`(t`VVeX#HoikoPd^+WGfn^;7zdGhtk2N;3{u3cc&5g1&Ts)a>xoCnx6k&o zXKe6$gOfC%LVp~#uGRDzxPUiFgsyS4tmnkP0+7Wg^r!!XLiv|H@+l<)=72PZ@yNq$*9FgHk9LeO0!aVmsOod$86pDKe$P4IJc&F@`%rADPRtcK-2m4e(--Q*)C;+}j?>yBl1qE>*#=`p}KHi$5jA!h^Fb<5*SOS4NH zRs}e_117)b>+z@$cx%vokE!`IxO??fHU)! zk+sXI>s14n?1ELdT2nnIZvl>8bhoN{iK}x$o*v;b{im$xB%iNEnXu>bv{3W${&(G( zpGt4Qu9D~#clPGx(el^K5^hUZH-ztBfC=`Bch$G6Lud51Tc1w%N|TU2X{8Vvv+K{4 z-^3M?A`d{Y6Fly~HMj|jR$*N!c)|SU(?}zDEmh1FtjnkucO&v3%Z3umaIeLfr={U_ zl88#l{BUy^oX-UOf*Y&fu`PH9$d+Rw;2c|@ZGGsGyFMIV4!cXFs>jc{!i^;M=M_q9 zinz&}j*)zz7%wHCkr4zYYgkGun4&F^42-X#;5L7r-f<7^#Zw+n>g|r{pPKY}tiQ`t z*kiYSx|P`cGVl-d^%}R+qON{j@F)cg41v_|suJ_J9H_J=_n%ie)+ zDLo9!EJI>B1{3RP2-NL&Eic)P6dIHk0YGeZ>(!1^teok7WfEo+A+9}Qqn5s+Y`M>*QjI{xJ$%b(XK|#T6M291_YQHqV zuj`OL;i<&_!RC~F%MghDI%`!o3ij z^6PP3*LXzJN_8~e?UBCQU+EvD40REothCFe%oxyF2H?x!q?7<^>a9i~GUvQ>6mW8c z*mt*2lH<95U#2{t&&aWC<5l8DyrJ!IDBLk^)~mknxLOv_z%Tr#LSJK|&ZEFZ`W_!f|au{gH8|ybQB--{{;om5oSNz>Y+Z`6OGs z1TSX|slt+>wFYVaO9u6>)#_BxjzK$whozlU_!r!TzWnE)EVGU&>3?J1=f0NIbR zxGr@^rK^qHN7jgYY&=chwtn&=;Ps^AX~0{NK&bWiVWnl&GI~%bLq*f(Qu66Jk{$O| z8um`h;*DqOFQgY^W3nN=vwUeK9%#dH51uOk|pOdpu~wf7yxia+W|~EtNyufnSsGr^q^6XKwD*<`}&dRYES&AZxbcfu;KA# z_S~_ib=#8oqs`WimHe59)*gu4idskr?xTlc{1JrR^TKxk?T46c7Js7>qVa=%o@nh( zi!yNXaIT0$8#7XEJ_gNj(bVBY!y zoW(Spski(4`whS4ilUqX=9Sf@EdwB?)&Ya~anr3jmG~ZkcH?`#hi|V)qfa1vtV2LR z4%BQ>bhYuRClHeAe&tu!nV*|x8$iQ%I+_^-(Z7eM^5 z`TorlHO?Q01Tf(M8*gc||C+CZ^D9?S=-@MexSp7cI?+zOZ{dS1eWn-J%w?H{o3xqI% zBSP)a0@Lgfcl3n3v;R>OCp=`{F|W`H0NFu z@g+0EIY`KD#mgvjK2Db6#14f8VqY=;Yh=e0fwFsV2$!$V4b3+#kxhD_&`Z1Rtceny z#r_dfPG2Z@n$PeWpdZk_^JO8|5ZoU`ei#-w;b-1rSgxiIQ=H z8kv|Q`8Xf~Z3YfF$~KX58++o52wZMD?&QWkzj=P%b?*CP$JWsEx`Mmis-i$+zta&Rw9pIP2Ot}F(Y7Mwva>a%`#&VGpqL_4Ie=dd04Gv5u={GjsYy;kf; zw>yeT2Ol23(h(l4NlWxzN<09< zSRPA9J);sUDl&|~!JGPxKgtR;&@~5+iF*3>DZ5bfw z(vUGAFq?4tYRtHaQ!v~1q*5NGVm!?sP6vB>(jDC2tSbobIGOI44=9$lR8=V$Dar1MDez0e8~r%^(q zW5+;tkFTIB$ez{|NQ18=yk)7a#Cr>8wnA8hBwk^JHuQ_B`R{sMpj^F}dV-*#sIdOd zkt#`T?|i0NNFyD5chi3)VS~{iU#R|+6jCEz>bEvj9=IS89-?#3*nIA}RlWkhs{7PB z-eDE8F;{Mz+aYcqF95KH55Lm(zE`61z{ckIawi5{HsazxhXO zl8c^3RQsbma*uX&ENh*_oppt}zDONRbDy6|(l6cJ0?s0<%dr-MNBm;V5TmJoeho3-V9+QOR-XQmu&w&ZS;VVu<2QK?U-3prhYo6`+n+EEyf< zK*3E*_>HOxD?@G?1rG>ozqvN0KkCi=WfK)p2|C3DiaR%a6pO%SFGfggzRyitV`q>p zv>42kv!US(fD9AiF*O|fGaxV$oxzX$-Y!kEmrbwi6?ic#xe~RH zlUxaw>*>vwZtOFow$OqkPR?AwoC>w82G3L)yASJT(!W9P0LMLDI85XEr1fA%7l09Z z59g@_?Q_RWf9cGzz+r^onJP=v|)9+ znXmb=E{?X>SH>SYl!3_P$j}OFg7TTvsbZ5a#RC~0?URH^HS>J@^r!KbEzQx{W$NRqfJLmlNe**(E&$FJj?sc#0zOL)e1ucrj$)tJ@)@dB8`iS>!07(A$ zts(qce~!80ve=looF04`$rK<9_88jrD8|QSgFH<}n?3hId$AO5QlbIpopcL~o)vt2 zVha!yn@Fq#u-pxz9s?SI%>%hrtn(`mI^u$iMw<+$TL<0Y76}^-6qu`&Cx5#hpGg+> zi64EBK=jtSp*9EM>@^#v7M~MDMincwpBAU`Uo$LR2G+Y>)r1)%@Al}TrX$Kx(yQ>& zEbqOY&2imfhylh)1ul?>wOWbJXiK%t3MIY$Yct5<5PZJpfsmCz(Fmz2M%> zke%VYc#kE*oFcaXZ`>!Onk3@p4nX0HOQs=i9qj}*s~XIeW^MMjW?2QMJvF>Q^`ZiR|t*aDKb*CkFLM_(6Nb! z2l~Iapt7xRzUoWsDJb=$KX!P+h$}_3&=xj;SL8EWoS~9h-(-;JIG+CgG8K=EJ8J)A zax1#Mt-Mjm*|!XthNw6Gc=*j`!2QH#_EK4aA=YlVC^}!Sy{=)Yoyg_m=?S(|V^`*( zNUZjm;RuI`9$%3~yw_QuZ;rM^%x%>`?v2yEA;e~e>7XP(Cnj!r*?M3hDd3`Vk%G3@ z7~a>eV`!!u@1qfkgLM~+7Y9=L7*2g<1{WWny7GdjUtSHrN%;Os01i%@C<%tg%5U#? zykUDA{&+2-YGG{>z}PGq^Fg9KjK^hxNi&&=?{@)$F*^QbKSI)rUoq zmAF&cwq)pfOhe9~yN&+Fi8DB)DZT5$?tPNEl*XQYMtoFm;$^;%!P(2<6$_;E#;%4e zY40FU$1TSu+@5t`#OKV^29f<{T=che0toZX*mdp|TTuPqlNSQ*DF>*#OQN3%)ZkT7cp zi$)z`yJsST$Y9VO#I>X;v-KR#xog)D#dYkbuj<`V;xS$$5J>bj$;O68AD8aU`uzi; zh@f}@TNY4*-EMeEUA9K5hYh%lX$)56hV%6qf$9FJVt&-)uL2coj^^6u=4V>kTH zNk3ML{<60*-; zS^80fpAA8hNNK@kZXJ`Uw0=kluW!QKWKh5OQg;&h)RxF-y?#1*A3jM ztS~My5~qjKzK3&!x$+0JBEypjyt~;(&^^tg*=92H_I~Dm_+t+j$HOH5xN-jbc4Ir{ zJi~aAs}H8;hirRi{3QCIPhi3$F+NYM&MQ+~PXe~*>t7;}n-v}+O*-SF754g;Q?U2NQF_lDE_ek*J0+3?`aEI;(PEDYfoBiKa`IugFzPu;<6{ zN-g1%vaBr#kiJ`%i^DAri{?}y>=Bp=E~>d|?>!r&lXug%daD=o#>SR$mrVjbKwi`k zw2hJL3-U|WXV5I5QCJJCdPlT_(1~5cRW1(t9smb zpIxo$#iR3Dcn-R+#a&hejWudle#o6vKJ5g+?Fu~J950;HX`_53o@6yG>HUy9A;2EO z>RA%Z;5B;-`GPZ%^Q|Ehx#1@{0gUY3J!n8gOLv+pmD(PEUq7>g?^%0XdQ4v%pEp9* zjg2(KB$%$qsCckFO-Vtox(M)w)q@@hyd&`OG@~LDoL%3W=E`{aY8g2*T}E^wvG^h@ z?Ais1*U8fY_J!br&yR4gf7M1^^4dIFPU7unC0J8We8p+KjlJJ;jHvO8aSbm!<(kM) zUq+weZ{P#L!@9$tB#4VlzOf5O z9-knlQx*P4v>o=olzAqF40Kf{giu2Zanxg3Ss^ln(}5z;Q}MtWrwS6N<8iiP+X46- z&*n1f=ckGsP%HE>N4Yy@;Y?7c*jsiEy2Tj#R*RxA9{a)Eat~|M7a_iMyN;0->-Rz> zV1s;3M%UisLB=i?1=e4>(Z)^96g{)9D0LyA5m%akEIL`t`w7`Ddc~b35F54hzB^y9 z!nx$b8eXd4%sNd~AfJwU*^_6;T_}D;b!UBjtVSg@TC-S9*0w=0oam}z4)^fiP`Xz+ zx84w^tc|5*?PVO~V-DyU$h!kGHd1jk?Kf*WjV>SNkp1i@bSbxb8RW&_cAHH-^W*N; zEjTQV?2du?63;5XA@qK%A=)S#D?XSrWV@~@UKo+36xQ;I22wWTJ+Xl(LA-I2IM(HL z9g_`gS~Gmf#TZ+GyanH!g6NR-Ra6Gc_6Pp%1>n*!ZCW6|dhw~tV#fv_(vzPz&hYf) zU=qq(+kMip$6QHpZeTq7?M83VgfC{*647q$OyE&nebkNk*%rnqOU~>W1J;m;@-(Ve zcv&;BZN0?zM7Xvik@WE^kPoCs`A5xl($Q;mxS=$=)T!QxYwbC4Sn zbbD<3$_2J}W@1_2=jm*RCcZe|F>)Wk~#DIHokVHXx zx(xICKycUErYFYOyM4US6!aib?H+Ol?+Qgw`|_!-j`;5V;+^MrX2>@4k(RwOmNi~< zr!CDn=%{(>Ghd~<%Hr8%*s6LL{iej}Ls?%z)%8s~mQ*f&RXzC}tE+vrOREpuhxw-J zL)y_AwOX93CM+2?CmEE+k+oev-rr+^=7hzdf3tp}nw(@)TY*Tj^EJGZExJ zLWoM$9d!%p>!!Oxy2XE9sp%k6RUXUv(c$@m=gTOLLqb=?8yI9?*XxHF2eHPW(#0QT z>yy>$;zwrhIQYhX@jlqx5Im`F@Z~Fwp9&%vb%Uaxu^*ZRw(AMD9@p)8@5m3JSceO0 z3<2lx*ezmRfK<-TTKxV19p2nZ@5ceoqU7E8WBPyAub?)YY0FYkO>AttT@gRmudlSbV#YeT zY)2AFb1Gt{3LiW;TFA+zesZ+47;$_&JFV(?*~o8TL zHISqEeg>VRm0vT+-$2sdUXTkL>Wr6E?!LToD%d1OutvlXT8)SH7&?i2{?mh8jNoCn zsFK`S^ib-VMa{*UNg9E}nX}1Ym6LH~fy*hKVZBfFKr%=JsAt{Y#NB!dms5Tzq4Qlx z$NvKXRI|`Xdd=7?ii%Nc8Yk9DuJL*=tFRw-qmt+OH@rCWWHW1H$H8{#o>*J`G`SFg zfC&74O(f6mg7t|{p_D;88{j9D?hm|I{*5^PKgxd$yd(=fFk^-2dy78R%hsz^{6u*f z#7+upM(h3_1fF=#Ua->Xi=?ic<*wQNh$Z2|cH=&fw>NU5Qb%kY1zgJ3Q+H>|R&Ehv zF-1nIH3jnIkcbpx_INMT)1{Aw(7hoQdUh?ykvwO7yqH zzIOZk7CXI?E+4V3iLiam9u`pV=oQ0b-XW~KiFc)I%t_}fC^b?Ozh0H#!Texq;k%xZ zK%$qT7!#yq(shd!qCvJRGXZ8$T-L&4o#hiWuWDygAmO5Rgr2?xht<`PhEyp<%^Z!F zTB|{XP)wVtVXYq4dMnb`D<(ntLX6lp@0~kp;+Pd_uk~$*l0LlkV^D?M`ReuaLxXcC zXJz`Tdd^;Ru*zqhTK9bZX$OnT?qii6g-Z9OY~`bJEPk%sAiq0|+VItC40I^8D7EaV zs6XB~^Q>&mH+eWQF(a@kurXoW$J!~ny+BTv%k!-iNEKfA-5=Cgz+_NLtdm8@S1WPb zjds#qzp+>mWCOMSXvXm28M&jBt zgblt+2f;m3mbwP ztY6+Zpx?CaGuA_YAupzhCz-(PE$KVzN;C&5r^F;3S)Lvr@eJZ&#E;vm^S)#Y6%d4M zjF)%f?Qc3y&%7`-jhM>VpGOpEWTLARhy#T68+@fxG|L#TM*5#l^!A97zRYM}&meQ_ zEi_uP7@NH^xt@9Say(Or&*6+3MVI2k6_*)ZP- zIyg4rAG;DTi}&h;hIw=Y{dG@SuCRY8es)?6vXBMybtc$JuSP8SI+vE7Zy|pX68$DZ zk}Sa|h!ql<)-6Tjlw&Sz1)wgMEn!x~W`-^3`nzT?k81+B_`BlKfGCcC)64r*fb{Ehs1_Sm zxMuqZ`&7Altvt7-OnR3c@u=a%z3w9&zuqL9m|Gx#AfKFbocC{5Ca|Wm^TVflP zh*Ns(2tUfSa_3gIw*Qq|o3zyYV}nIKrZ%$h>9hJX-_*;eo<+xYfNRI$(I;_=;vW;C z7O-1U>US?a47S^J*N zDLQf+*O_V60~Map&V5j)ub{9JTse{AnXjD5Gm(NM?Po}^i+S&FC76Gk<|@|qlMux4 z!C>73vwO>c8IY~j7+f1tVR8M7MYSS|RkAij{^TclFKnZ4Nq%0~OF~#!?`A?Utex%5 zc1uFY_qeJ&ct2_~RjOnrUgCJ#7io_?kq+c4UqK}iq^zQnEOye;LnN(qz9uR>WPZ7w z#l&-m!|+Nf)V9ymyd@Rp$QO}n(b?~hesE^!+MBhL#W$SOH#wW17KYN6QPkp9g3FX_pmX-mOTWqHj z`A_D)sWgs&9M6a66TzA^ilml+pAHu zP3G+F&`$U0gMQ$PsCDvk_x@Ms#SXw{^R zkgg<=ks1jR3-m9mgVin{LP~*XCr;GsgA(s9;wG2DFI%^V*u?#9TLHP(0@I)Q;>U;T z;itdR2^co;1RN$;!kp$KZo}GQSW-G`6UCw9*8M>mT)K5naz?(cmaRh7x=XST^!aL+ zI{dWdp%H^~quZt|qqcc&+?s-$)9{2UaQLunzMT$~N7hUx-Ja#J;RHEoKPj%RN{VLg zaH?@rA3)2CK%^1skM04Covn(XMZOo z{XR|j>6M1l7MkG)=o!R)@?UO{M{v(R&<%6P4V!!JJc;K+E9U*^&TdlYy9oEkS92XV zR70ZTf(e%PeNwZ?x6CcE3Y)Pb3G%ZCvHpe!OlnE#h9ze5eLV^htg0#wF^K)6og|X2 ze%4z22%*6-fE;Gu_-e(%c7Qyn;PpBxA2H&kMCY)M+j^ghGkMQm0G@A`g{i-OSv=5f zNcad5x@afQ3wDNC_LQbu)LR+m-zklCaE#L)e{vSE^D~BIB~N}xI?_D|e&3GVp1nT3 z8uv zZa+TuxBV+Lz47qnjHey>`sCLKEblsLw=!H_?%|-o(dR{X*f1dhGN#t*(dU8?u}z2T zOLm@4MPReD2KlRHdS(-GKR)iVx+JVXEmh|I4bmoByc>3e@wAy5*=kJ=$!i;YI(*FY zO6!d_nUrMxIV*3jbl;B(4>wBo{_Oqod%a}%WU+PcJKqf1K9|AvBPw0j{$dODG=|VH zTukZd_Xt%zV>Y49Jc-jM?G88xY&u0Ijc$2QAOV0R(YZ}t?7Y?cj2s;=)?MoJqlH-q zifr4{iGx@1-Xn;RZ^rt7Id{8~&v8?9N||?%-_bX?iZuq2ugU&{ssRmE-z&T?Vh@rSypLf8O3 z#s5ghe`8z+lu-hrnzQgHQYW&`F$PKV%<333LI@BVNgH`Bnp+Q66|a=*a{_^ExSX~z ztqCfUzjoQtUf@LiH;&X3TO8$*ZJ4Y5a^Z4-l#p_bm zuD5Fb;!87INAx-&Prq-BF+Ziyuol!VG>-Z?Rulu_WvZOsm&JyUI7Hm-D3z6s8cw5d zc<*xQR}50U0P5XD@1iK<%(I_(kUi9ls$O|L@2Fwmbb(K`vsPow=KYOjSjO1i2qB!C z=1%BMT<(UQ4;;ERgBYPnK+13A;{ADW8xYp>?iyy6m0AFf*3LH)?uVTk;PwO3@z7t` z$V9jN(W?Wk2?(ArS02u$6xN40=yf-$s85=2OYsjp#x z&zo63hh))TeaGG4>bqQbki3UQX|dSVo^-GmmgP#p*OYst0;gjp9BQY=eb+~eoizh< zflg5$uUvxW&)#N#=8R0nvj=evA|jf~O(#ZEM+uGybBQ=nbA=D|nH!gx-YLv|lTFMA zc_1^8aq^ON)_=E7`%T0uX@l>3v^bfVc~3Lv32IuEb!;*GhvEW&X3HxQ_^iXr>>>N7 zUkM}{&Q2L}Pu@@(6Je$aT?E3JEHC0+eUj<_e(#d}5|`aM0smiDBRNiTYo=7Of-{y; zk@a)f5o1v2y6SX!eOZA$%~Dq+W37AoN@KOla`?MFO#xKK&Wcy-^m{6{#b?fs%d! z&2pUr@_>bpki(+qC1%@q8Vv2HYBXCy=vj-4i+x8XKAE4ddI7QFE2cAh7Xp)e81b_nfLL21V9pC|&kydc5t+#c#29(EQ&p-Y_ObF~ zv7#p%mGc>fweEDof&ntV)_-MeF0-GV3#{Zw`LuX9W5_b zt}jX!p2LB<{4c)8sGOw4Ihw_2W9w`-J@zT#m8nh7y;Yq7*+2C_3a+TvGp6IPX^P-K z06_h=cxHn+)TC-!bz9J{Yi7Ufw!h>OMUmRomG7+}yqZrxfw|@+^#b**&!8W6hwiXKu_D*Y=pZs0E_{-kCCPdF&14bztOv{O5!xNmobz_O z+pYAS365}P>RT>bvp7^@-XH76Dho@ejWayAf3m!@sV~p*Yw*6dH1*nXNcjG#=4TD~{`E~>41R{g*ov#<j&OVNKX}jTf0Cjul9pcg% zozLSjE&9@UVAYHcoi?JQu68dD(&p`WG+J!BbF>Uo1TwvRBr_Q9`4I6PqI-(+X94@G z!|(*FXiu@t%B9mjP&&;ht*+1j`RN#-dw--k%XcBOT^BS3t`zLJZc#to3%E04KhvHs zP$kY3s%qEMFhhs>Ba7Pj6(s+NfoZqU@Ij`Zc0t)DtrkED?6rb#^M;`CQ0A!;l-9cotm#vd&1SO`SnRE)W#%Qg=5e^dGruZ$h^cQ zBmMQ;HwtE+u|wKbUfq{vxdoJxdBzN6JiDrUC7P5<1_8<#pnh@M>+vH)D!6L`0RZ3a za>z?j@a4$?2LeA)9dC(~G6Rn(H^iII@5xy|_*xg08y)thM#zGqx|$1)+53T*+WvHF za!aNC(|wG^h%xsk8o`R2FvzCvu50{7t=ahfDQx!iz6D(&#XT)PDFaQ>@kx>xBQ+)W z_+U!!Ychc#4Cu#O^~QJgY)6X|C^ZDeiFytcVB7d=tG$3w$yt%%{qVTRYjoVw&A99ZL z*zZ*Lxw);8se_Jh~S#*W{BYS5j?6#dY!^-nL3L0aD4v z=}}>AI<-7>Vk|&4zt;)vsRZKqVfbwVBnsp_@F1{or6{*Fg7RY{N3 zS^Qu)y|M43EA}&Mj=WjQ7t36EoSKdwsHHmv+<>muk3Y5`-Y-!t00b1CAEMjJ7fW5k z(>;b2Nk8|?!)D?b@~`_Qzb*{WlLj0bO9}YZ{%jXkz_V`dx4Kv7Tg)uV^K|_9M1S64SDYJebr4A$K1lLGThL}?SJmk31Oso-&>SO;aDu_GS+QW}y~T+_hOw?#p*Xvds^up7WX- zbiK)$Rg+7pYCfM)qA6%-kST#-uqylQQ4sgcg`!KS9lY{Xj_+zO*HWaVAX~CD%bm11U7qUl;Al;L>SA6nY zjOjNk2uP{hYEf`ovBMq*z`^z=%kIf7?9ev$<2;B**62OzF3((umW-PzhrL}o4VzZ4 z->8@n{alCyXB10117S(<|B-owH{QH{y|yVuQNWG=ZR%OLy5EFQgzi_A)4{$Lc5`cNj({|sFyaqBTW~v`R1rIFG2{&NBCE;b<@ydU?CLu zm_h&1qi<9wR;*?6+=KA0J4Fu7S8VSdy+EkMw{y(Dxb?5|#?`vU(~Cj*pA=&*-?~Na zNXM_6xDLPEi)5AKnoOVsE;z z*o{LW4QsI#@vOruvSGORm!7z~mL0IX=R!t!+~hQ1Dqc$c82t*L#M2D3b7lXY$t!q{ zRxV=Tj9k+^L!W`afo#*aKeygx`AXj`A*q>?!*Id*Q z?k>K&HoTS%jG`#+X%z9GfVkQ44kKe1cE8$>9d~ceL3IOC@0MoT_ejWdW!-XSWo4b^ zu(pCqG2QJKlu6w|`sCLJ2%klkkFD;l(;`UsmTZ1kN-%?`^qb4Ws z0=lY7G9ZapE^g>m+SrpGC%l|_GF7v8octOgn`4k&QeN<>J^5&O!Vx>ALZi-WDScoJ z_bvw+zHDylOM3ns?TEUi=i~0%SN3xph6%AxRcpxr>2)@*5n%|)SCB)LDtC!ek@AZw^r!o`frM$?pr<&PF#}Hkqbf z>@jY{3%Rl7aK%QbmbgVxW!#BY-MQj`PUcECTC=u-gHLs`Pl?_=vk<`lx;QTZUQ;yg z)_{w@qu*q5oWGFY=KKOT`w03ZZ>CHyMu(*?{qq;{^wv-GC_E@|r7#BEnP=y2S4^-Y zK@*@8?cdmLCEi!K6uw7fb}c}RB^XA#uG!#wA`=M5O$sOYl(oS7Za-%Hzz0bX)Q&Fq z+`c2^xfM#WUgI=}%l=gnYgA%Zd~~pu!teSDjteEUZn%mcjy)17rCC`>ySnSxy#vx# z>s`TAfNlfD^mLOE2)ZgmGuPv$UTyz5s(;`SY!to7>>nQtUqCa;LIyWI#9wu}b{QBe zY#^;@&Cx#<>&xBJ=!213Z^;|YR}?mW;j zDdSBOZm1(`X-os^f<2L$VL)$;vXH66yEU21mv95{uG|vEzKs&Yj%D2@9RKY8uWhxh z4wqG>MK7?EGJ@TZ&}#{89Vb5P#y*PtJ|~S6k^vJZdHhzf+TfWQuWH#~7Y%2Ii;Tkd z3K3hh*f+f_WO;#oO@Z3xy4oa%tx0SPlvYs6B%q_6G06NV{iSn@C~2MyoWN(A6wmEi zxozg{?kg3RJ#@&Qt=sdhi|>x8h9Z&Fc$q&C$Dj+BEIP0$n}GQ$IXRgx_xRrER=2sWh{YZ;5e6wxuFfG&=$_wBQSj?<#H??8GPZj~bQ!o1}p zRf%i+b=wHYM0x47E%}5vG8_}DEU0saJC#^7*xjR#`> z-Q%?>L#Q||=4nu(kc$qPOE2VB{3nf4n!=ePDV2l<#q!7paSdDz$IiKkvp ze)x1%tVdu}%7Rx=yazZ>ag6+^ovI-fImI@0L$~iZE&Uev&0Yqa5MI%@3{B3qFzu!f zGnN2m6}8$asbjSriyy<)Sp3t6l$UTSg!R6U9^9M zm1T1J`JI@3AV!72E#}diOA4UYM|{OK?dju2#dC{+{u)ho)<*U_cOLx&rPO?&OdQ>s zTY6zxHDbg8G}ckjF1nSeG{eNtRg} zJ4xJrZj%vEg2&W(nf9;UM+Y{_vKP6G7$GMIT$1gbozw-J1%w{I(EmLj1&OfU>|wwO z&w9ZUP9Xe|vfS7`7U_|E**$_Z$kIMn+s0VMkccqhZGJ^YGQEb)Ghd{NB26n+4Svj1gc%5e|A zBt+0<<5j%h?PtwWB)u&Tg?+dDeflwSW98l%Grae1QE|DMIzK@axsY!iJH&Rhq!DK= zqAs?YY1`G!BwvcoX4q(mXBykx;v;X6q|{BbIMgd&Gj5M#%!=fply39!2|KyqRFi$( z$r57&0Qk!^0w24Kvag$40>o7nryE@kKqvBaYWBrW?W^4?Pr$K)M0M8Ri>UoADNVXg z@e8%|Cw(L+JR!zE9_XJX&Hz^mFdQ{I{XqZ65SoF1{rdHVlsNjB=B@|*gvyq0OWcrJ z=lDP*m%5zuG9rTN?e|}=12pNp0t#;xz4iDmp(#b+9Km0~OEDn#vV zIb2zw8-{eb6z`a8vuTwbE240`JiRl-ovs#$waQ%DoHsfLtN-vD_y!*QU(hA?5#rkNn>^Br~tJ+2I(kCcL<<9?DDf z$DIeDZyaVWOZ%QrljF3Cb9?zQLOJ8Ps`Q%w6Fc*R&dHr#~_=b``MciuC>_py%t zANH+Hm#p57Zo}y#UXMnI*A51^-^OR`F}C1F;jHSoDox9_o;H(AwYwupn|b~pM)tQS z(C9@$Bm~9qMHuuTEByoi$T)RXP5KU>m6-SWzye~rshF8l8GXikJOV$C27n(bJ>&bui(_eG6S)g89q)t_QI@W4C9 zn6U1ix60oT;Qj}A@qYsqVEP97gOx-@@a>mB-z|CDc>KV)BTTH;hd^J%vFvqx5V6^C z>aX9F2JvVQ-!_H_mi`0J)kd#tM15(=;!sT8t;E1THySg}fB|A+9%O`+cwjw;@S{tz zZ?R>T6$G?tpNDF@PS&OSTz+jc{`)lh&&%T1hv!s}|IPKn7|%!B*t?Q&4=KD_ZQ4bI==18R0-ECx_Cd=@b7O^@X{w%|iA^nSX{~4=>%< z)YAWgrHe9bo{2h%Xz7R>$P%qk+-2;nNmdCseYvLiMi>1eBHMM__gQs}S_NyhQP#tdJ6+JJ9i0_IJk@+1N(+1DFKK zdW@fNLDxv%*OjH)oo#($s#LYPNL%Uw`mRz*C{7kLUJql`R;w-j2i+tBT*=Q@rE86w zO6#AKg7R}?%@{B9?fvvtV%ayZpUky6g;bbOIuGYLmO$LDxVzYjkY4FLX<%s|Z=Goo zwxF%8U8%N@J`@Vi-3!}(W-!$~eMS~6miD%NpKQiy{HMEp47sh= zlQ)IF;da-;R3K*W`>$V*GE{+y&Xr}Pr%<3fH&kHaNpplt{(n9u-N&=8k6x`CofP)?lgPb2D#IVRs#%fRV*zP}ZVue6w2!!D z$TO2BrvK!tOjN;aUvxOWpXp4kd(=v`+Mhw{zkc=5825Jk96J-!f)6ch{x3lXC*Y#K zU}yGg&yX++LD=mywL>AETJ6T+xWk9^?r)jTDu~DyV%bY3Geq+DQ;m=|HuV1CBoL`A` zR*MI zYC+!@Xf)4Py%ecv``mOQI<8hai@LSHIms;IaSa_st-b#@9y-6@*PnOzKVChlKHv3r zrpCzs`1S0ItM5dXXttt0;2Gnz?-)T!Z`5IN8jvB!V)_DNXGMv^-rrG}NIr~6&}#;s zkc!u}nANP5dDl9rQG}NTRoaT@5$H7A+NFv7fGMri+O6HsEotFl) zU1=WI#~P^BnDx0LVV{5B8UDE7|2P48Vj962mS@QS8_|A;#ta$3AJ=Q95b*AnkWWjL z(|8t}Ax+7f*9uJnNivAUu#G??)dnt92xD}4-LXE=ZP9Dn10wp&8b@p)C)wzZ;tbHO$G_S5!xCO%crx?RKYQpM)o zxi=p?UG=vRpPj9S`GhJCxkL6NISxgFoWv=!UWY^f?YI7ASpWRH{wEAfpDl))(hr(`$DT$LsXdiwj^4fv&?oC>pD{u~U!RKK z$$G;H{kN0*Z`WbEQe%9#f_q`)TruVEq136E=*C^$mSv5Q@30+fMdaJpP>9)qwzN;p zr+b>yS)9zIk53Y%3-06AtG#F!|J#rKw-;i~c-4Jvkd2s>R5@XK<)fADi6=nv9dW@u zje=L}I>lY4e2^F9>7M&UAr00z$!bZI9!%h2MUf zb9&}eF-;5Mnvdz}kfDB2>A0;!6U{1j=Yzq|J`3)JuSO#U!iB8Ed9G`0`RhBp?taU$ z{ikDp$M^jY>o*{h=(QCv2ZjFC)b5E=qw)R0==trXIh^+!i+)qZZ(N{SH~f74&4S;d ztwQb^D1C5;4yP$os^l504@4&t(C%vSx}$!gZow;`|C6i&eS=7`2l1CaGqc~W-JMDa zdo3#`|7cx)Ib9`LoHL#+_lZW;z)dA{;Pj_fv~iIxVJXk+O(Yf#5!xByct2I9az`;T z?6`88`Sw_vScT%lB31Vg>ZQKuNqpMU&r^ozN%XCM(q$u26$iH-ktN>xNAISRP)Rd{ zfm(4pX^GvA2VI(x3x~iMj&X6qNarbi%ai&gdr{1Xd%7xU_TrKaxVZD$R?~L@dFQ0h zV;~n?75YaB1`M=UOHze?PO=FYVBu{oG4C`V${8vF;??&bK7?PQ=uiZxWQI~)|8;8W z_%%~AS3%UI+ET8zG^$mJ+MCMCumQA)P)-RC0%n$06kCGba$M0#qI)+ zpkyjt+>J8RRu!+^?#ji{;`#o3eeG<$a)lIS>tDO5J?z2dcW4-3owdcje<+mbq~ILH zjDmXDo>4NVTD@%7#pa|S)|3D<;utL^^l$^4QbAT022Kd;VCe7uuVwPz{Fvx?KJW(~ z{_|NnCL7~!{b{WcJRX~(4Ny>#mL|Be&KyjgWM1m;TxcBbMo1!J$9I}p7jk@rk}6E@S^k_iGdyrtD{>=b8{B+O z987#`!RL6!ykv2Yb#VbR)a079A|R|qTUxs!v|9bwh4tU2a}Q^5pM!@P!E1?lSFd)p z?H+Efc3~JOV=@a*0xFi`e2cOfAeTEM^DCKZ>@9S&ag5xHVm@1g(si7<6&rPHrgDNz zgIow5;|T^1tY>D}Z{NNx4&9in9ao<>4A4zG_ z+?jMyRs8XRf(ew^@^p$H5s;nA_#SVw+9oJOm8iTeTv@SlaR_N6r1vrV1PAq6gqKB& z0suSBCaWIMNs9oXNS+aV+=u=&3e^B(%GFBh{tg5a13)6D0cv2cUwbKk^+WdsWk?4h zv?MTarVB%Xk@$eI^#T_Nrhy_`^$E~pm5jCp(mN!HOtgQLI$3N>Hl!2beCTNqPtn2o zh0QC}pZHj~V!;vFnKr;@@X#E$#r5Mfvv$)rwJc>3l*Ks-!D+Q_Uu`l!&k*(l4}kG)8uNg}x%*~b zu0v2&blt_*+(k})qpnYUBkqe-Abj|i*eY-2@I~=xz5H=Z*}&gruujj3IIN%cFUx=| zZ+1ZL+z#mP{_OmB26edBLOlYUH>6b(>@I!x$-rlZnngB(>fOU2n}N*o858cQlxJyg zb$Lb=Tj|In1l0*3tE1uSd{|in&gw30lV+B_3yszMPq~|6=xtDGU zyN*&}fWMy|ZoQFPGh#AUb_vZRX5LmFJ z4uDW)8txLAQQ&k_o5zSj_Q!|J8XP98o}HdT0<12Kfn}R+H^!rut;SqE_tt`?R?8iB z3P{Y_r5l%kh`emlXZI5ejb@$CZnx*re8`yd*6eLigGmHb<`|`9(V_85v-ayOot>QG zCsj1AXB!h9Pp0d<7V5F%y19HJUB-Uhm1`U0Q;bJDKdL;6*K9zO0ppz>i8GyfGGgK| zP_&Sbx)+rp6_|T`s)7^;zJ0tC+%dpGRMFG(wMM?4Zb4m1y;uHEmycz3RlA7cogb9O z?Z-zXc@D;2i*8f`c114l&dHjuiD&dXM~o&$QJ${GTX&>HLWDqw?{o(mC9SO_d;KgG`w%D?87_9M zWA-m!Zugfg(yEnNT?^UU#6O|Jo?_cmr7AGITJ=6cmV2isgl5xq4S6qZ{DcL>mVge0 z@yCZFiy{4Tn{uTjOz8rsw$O@9J0_h0#_wVfJnsHo@F>VShQ1GjiZH;VlQ?U=<}2KR}>X3I??8&_oB`QdO|p7 zsF~;|oj);s_qOQ9AR8aNztYWu&)BT)6IiLF!AF^ins9>)642*NAP|4F9w z@p=(%JG8nX1 zH!71^Au^Oq!bi2BDmA$k1M^Gfg85>q7rNrq3mWRP%dCMKEPgMj^b^6^q*L?WdBIH| z$E@ZBB2huhKejY1x5TVn&1)g7HSZ?r<The+67YHv`s5qds?@l8$pDYi zrL_%%y&7ael*jby^0m7+tYE-2XY-&}nyjO=XMdk&#l2uTa)gf|R}~hc)KadWufpev zFyw1nEgzXKioe6ie|5v)LOel^*r_KOm4xpr2xS(~K2QuF*)%2_hGXcE?(uGU$_XN3 zEJtS;)pWL22Y!IX>_GXIngyV|o2NJQrAqc62; zh21wW?^*@+AKBUE?d|57_QFtv^y_AYKLH#Y&UTfW+6GrIDAq5Fo?j|CA`i~J0L-Qr z+1tB&8o0=fJ-4aV{AV5igiznXBdUA?wc%#}vD5A-dtss!cVTgyHwc;Dr+bES*`062b>`$+>mAvAUiISxt39yqgNiNOx5n}jie=J?r)&n z*4}I0^l}8sj z*HOgj~44y-+vgu<@h9pHV4*&tnWr;-%#lnoNiFPJ#RLwb$VZ^*)Y``{iZO)!oLfDp zCTp2l+#5tBB*0Ge=!srgRkx4`DaISb>7+%HY_$fcW%h90n;y0w2^VsyAXhp+M{NJ4 z97YMwB1wNiDgIMZ^!uJDX+d73#$^WNAf=yzw;8TJWdI_iVHt1I$l_oE#LCDRLy|~_ z8!}q0%IP_zd^cw-a{VJaDYb$5KGm9;ZT}~}-c0!jn!FAEcXsQeVTk(84lK&g%DlI~ zOGj|ZHSqQ8*XJ$om{?c}-PVCft9{((aH|KT%ii)bGF1={+ld}=Eby;VQUccOTRJGm zxsP#qn^!veP0|4uRY5}|vb35&Tsc|v$EA1ua->UxyG5N_bJBSi9zd$K3t1Q6vnH3| z4)F1gO?gy?f%5%m?f_czA_E#*YBOY$J2R9!a(F^lO_qbBK<~2^Hl$JG$_DDzIpjnc zpMXUU1?ejnLd~yD-`~&ZW35t#fpdvcqdwGD_iUu$OrOVf<^Hn+9&-i#jq~WDqd!}n5F)tj z))iZqvX4RN*0`GfydN|MY(y|aaR+>;|;}&DJRAdBC7LbS;kq5hKqVM{LQx2Ox z$%oy*R#)d4=&Tq#`1P3~-#{qA|Hs*PMm4pr>k0~riYSOKP>Rx|E4@fl=}mekD!mJ# zNDYXJfb`yxDm8Qn9Z@<#2oO3*htOMSA@^gQv+rJekF)N$`}~W8AtPkY%bD@AIQ`btrSSYXE*ku@x(rvvSMyZ#Xk^O(< z%AEwG6&3qqMgPvVS>)RO?|@CuOP(tN)O_H!qR1GnSmSv+bE5Kz-Dv5?K^eCHm9Qu( zj#zG#YGwnGTQnImBITvxpJ(|CBv@Kp%y-6v6SPblR05nJ&Haf<_pTfaPy%ZUUqanf zNmYMZCJ^kd+in_B36(S*jrt&ukA`rA3jWF!%YEOB_`2iVfNOyg*%xCjSvMc~W-6%! zaG0#Oe@#Efxpg4v^Ck_yB{Y72n3;v!>Q}Fs7`^_?l{;`a%sPTC)6#AA%HI^RTcLmu_(RY`IfPjU=q~hOl-j%W0GoziHmFPM4c@+ z-JbVypb@)>H6yUOR93MAtOB&}v}qe%ys^{=c{Q|-x0*>eCqfOB&UveZPl1`H`#lu5 z-@Dc;W{erkTjzl5mAB>9v4`A)aAGH*)pebjKCPs^g@uqYA)8^kGN*+mTFj(G8psts z&}|3&QV)lvn%2E7izA~O~K+@fBs!PqrZ!`Q> zWerq5#Dx$C_O4$27dJ=9yL z-YR$BHMh7&Dp%$o$#0c$Os}fk&uSPB z<};D?pFuHOCk?Fndps8Ru-IuUz8J8%KI!KOIToEo?wot)kQ)JHbazA#U&3f`hH zSXmhLMARUfDb8@VRMqJYt=E=eRn`-eMn_lNF-A=V2X-;x{VcW(-?Z-^ud!4jDt$m* z7SdHdrJ&gDGM}($j@rUeNT3|}9Z3-Hnq`5v)vEnk^7rBu+4I#}MI6sSyw%gMR zYt3hYg)~cRx(U{_Z;j`U-&6)T$y#p|&I4^^m+bwC^hAkoJSBE}jzwslOl&V*BNu$& zR1D!@S^XmXl9-N(M^*qVfL8&ppMfEwAwB9!U&PzVMBhVMxG-9j)v#La5>XX{o ze(y>$V6zv;QTCb_fEjmX13WSaqQ@ zYFzJzCgOCb+YAV@hgXkwm*hh43lrKUZmdsx@lFZL1d=l`iinKqsT5`q+}dmum8^C3 z{&DqX;^W_RDwUIkCqI&q<`T|h5b`@0%sD?d9u@GMQgP=EO3{=A|dCRNOdhfjk&8@$QFj2jx z{5Hq)yH4&61*YG5CjoE?P2iejDSDt^_hzn$+m1{yO%eJrK%uzgX5i!ftzYG78gr^C zrG&Mi@wUdYN+mj8z8uCIjg_>}6|;eiO-};ePh)l4gc^`a?8MSWvGTnm_UwWG&>gK%K zqRFQDh#R_uEEkxpvP-%Y)uQ0vbq<8sqyg`l{6bgEdtuE)hjJL6UC z25osZ3mbKtPK1r(c&`t7_6%uWJQHIwCl14ff#u$omftkksRLLuJ zUVGO>v6W3V0N&`*C8XGn+}*%0Uz8SZjR4l?l*F<`r`lc&tWZ#bbn3PJoo?>K@zeJ< z?4J9T11851p7j*L`94*NSU`;hre+d5t%oT-h6LKj&UgJPd5g%OYaOUqDkt~xGgnt6 zfAE>K2SVV)v+<#Dv{7Mr!;swoYaiPX;MVAjvh-xQTv5w&cb$ zCo8}1ETsq@^(tNWz@QGU(H_`;j9JlV6F#6Gku1?sI2zgXx&oXQ&(97`swf#LmJfsP zayx1deN&svZ~rk*NxIR`jAkSJE*0ik7^1U%n_H;dz-Zyv!@^`RvJukpxBI?l`V$S*j~FZcNGfQkQq zK-h2oYWQz<#2Z_fG12VY+yYW`vx?`5)mE2*!~TA!bEPNNeq{S0=<5TISHwJ40>@~ApT%w6ofRNiMOa8h``{9G#s*_mT8Uv zhkZk|WksK0E`iEuDFC^@@}F*qCFvCaTworDy&Pmd=ybO?-(|i-4NQD8+T}hHYf6?5 zjiagnk-=QLJaz(NlZ?#!&QSUsMzzr~YCXmlO;c_VPxkniaqF8g!~7?4ZlKV?e}ur4 zyYVnc*qnwP6_0fl(eAzO21dYo9VSl%*ysz>>?Zqf$kh3X)z53! zCK(=wXJn)@* zeE8B`8lkt6K!wi<@i~eaZ8GcDW~bjU)4{7>jpZCS1?aPiHurk^ z=n&{b?lrxLoM3)C`U``~khUow28k3?S6^YQ7J=#k^ai_6CP4byxd0ec1G>}s$~OU( z5D8c#U8%dR(!7RNk7p{ZBt(`(ZHBp--zxg&ff{AY_liyhMh!0Z8uU(hB!fF;(2G%g4)h#qCHt2VHb>NX(+e?mCGpgVp9LOOydVJw}D*)31N7v`~)s<^m((+?Ls1crNH z(&lB^@Br^tZ7ZuVl&xri={~>U6OzzobUB_mPLi@G$M?xIxm(I`Bo^{ zFKS(eo>7;W#{r&9u|OLg-=hhrvC^cU-QC^Rp4zpp4aQSGCt`XH9w8K7IVsMD_%rWb z;W)M!SKlN!9M0>eK*>LxF5qo9kX5Ruqu{M!vpG}{P^e$|OeV|+b?J@OOq`K(5reF_ zC6A_6dW;R|?MMNQBkJs1tNiSuXmv*#w_bh_B028h(tVm^(jCLj4y;AxWiW3}iPNpj z&I9wlymssUjD)8rYbf<<`)A?t4b%HB&Aw+UpmO@edb%+MV_)qNNd9wS+@Xm_ud(rX z)j$uBbK^dwZM6%re&$7B4{{ri>krXoF95H0ShCfRzkyvF68MI=bY9$)!L4g8-MQ$ z=%%6hBp3LQsdMkA&VPD1WwC_=?bNMYf(N%RsZ)#~PD)0N8mtk6wPxdupyIg$bUJ1! z#B|NdOGaXz^`%L01MVOiIOPI~4-Su*yfYCt_+-tdciS1u2%D0~;%O9E@@@rw{``2! z0HD390cM^Oq!S{p9GYEm+}zT^#P8};8DvBC9hSq&+K3V^2&odw$jaUu_w{|K4uVNk zKN&jFox~d(9~G`S`Kgz@YEeu@xe)d~9n4V{jcQS98WyzGHSumZLAZVeiBoZpN<8-U z*$rk%&0~|}N7-}n;^_U4(^DdyT9)-*Zjn`A1U`I9iRINU(J_y`z`o30qKQ2AwzfDp zw*I|Twlu<(r(ab&F>!o{giTGHS2YFk^rn#WZ2D=P_z<+wx<8z zAGLlxw?}^ESVyk#>^i8(Gv^ZgKXeODDUvFlX+>l$#)u7@&qOQ?FH7HiG}RZg87R~P zu+>%}^adtdFU@-JTk3|Em9MTn2X$5!-3n(hRo_z@%-kFU;M}$=JahKCS53~g+n)jY zCAeWJwT|SVE4rYK@k$NoR%vEZJc|aapkleX4r0@keVph9jWE|zpKPMbZFYU#t9QBR zeHy1$kjv+u{Rp)u+HF0%POHu}B=o^$gdhF8j8iYXR;6d)`p~`Cl$+3FJXFY`QC-!b zNO+M@j7lL*>CP{D(S5vqr%oAW%N1%wY~)sV`+z&LQ}&I>|ETc%r;703UU4-^cJxDe zpsi}qnW>O&xgwr~q{I20G&Q79hWvWAgMRj(u>8E8ADP5yhj0ssK>L}e0X%L!l-~@h zxmt`96cbs?t<1Se4|evqW3Mh;%r*^t7&+a?G6}}2c#vz7P%09D%!aN`czj8IneisW zbbIk**=uZ*`oPtlfga;ao@SddYOsbI9%6g7%lrM97ym=t!oR)gzy6b6@LF=iO$K=H zm53ox)daGlw8on$Nvf>vg_D=O7UG9WZvLr`;<%*?o^jy8HP$0$`Rf7@CMd<;50D26 z7r*33fY^`j{GM&Yu95SBWVox)#rjt~GH;=06q?cAg(PQjbXxu)bv`Jt&eG8fR;{rl zz7C4S5qi+Ki;|D1Y60Y!2vh^i+Q3+VrupZ=|nTfHptxN2JFC2-TDu zcg131XBh{@-DlL4G_1R59M_Z5(({wdN;7-K407?ZlAa{I{h)Q+EHLJ`A{=Ez6A+Z9 zdKP`Tghlp>SKUtdY5821CcDu~+6_%9EVR zmM81_n2`l;UHI|j9FK`4nD*X)jDebkxA3uJ4uCA_bzqtHopj7zDrB63#9v(}b-`>S9{C4j??6tbfmApqsnXvE` zYSSF&UD%T-*s!}MTBRefVa)RL>fJb3QjsjTceTf9UxZ%M*fdaSWGnIK-PdI@n&YnA z{St#R!ySXaK-$KA}jm(w=^;8tbe3^B)mtK9HWP)<(Iu8M!_mU zDf-Y~KN=ePhvO5OH+byZ#A|9#K)>@;YMo+ea;@dq)RA|b64lfXJBfRLUQ`lLX!;W5 z=Wtsc0~Ul=c6*lTM_-@dPXsVvGxG5bdXzW9qaUd~{pqs?zDV5+Kv1ygg>V1)(|kES zB0>$sY?5HUN`1@*mg_vE@Hb zxz_{!tUFnF*R(fLMjZs&_QWR&->fMlBz+&$QR$-4G5ug0TcVF<JYWzwU8(wy<7E4d-zR*VQbFpAk+0I z3m@Zc|I?aN(cLGGQ-?|ttfY%$^=Mq+#(|W;h91kc;l2o(fcFbg2)eOe#Hm%a6^ zJqJ+cMRZ0r2`B<)v86Nh`(PeQ$rF&RSrO%JbL#lUxP=snFZ45m7zK}^e-coyB0k=9wx}Xbg<`P`1vWfLE(kG)5fFo9ZrlU z_Nz~SX@7>4j;k=Gqx!+e^%#Y0o=rOIP5kkv1fPipiuG0@c(KEykjgX8sPQ1qCv;y83U*ZauEG2A=TM*J2kn*~6P#ei5 zxCG+B|ND6vu0vF1Fj|b1mXQldA5$-W_cAthv5YgAiCLg+{SW9cGV-?(owH5%a@z_t zSKa%Obd+^(mUk;x8M=#bxZFMM3oY|_+sZyGBtNqAWe&PXEhcBQ>duYiT1f&3cLHD5 z*ZZQLY6_G)6b|gm-Kc?FN2(RW>gX3ge_Vz2Y-xu0fYF`;gp3F+Z}Whtl{rU<2nc`J zxOuqQ^eXI5K2@WWX96Fqc<|^PB)17NO0Mb?PBRtF4onLffy@5EY*AxB6AN_9<&+r&R0s;bBB8LY2 znXUyDHRIya(vmG?Lm`BE2y}wO7C`z>MvKLtNy4QU!m^Y&z6<>2S0P@$YLB4NCjRQB zUSPP+0l|G&-tB#Iin}V8-ONVr^ft+Ms!r-*Cd1FZr2+gEr^6Rs+F64tSul)W-a2yo zWKU%M>FtLelUEMAM&lHp*LU6SO#3Q*X9p!%;&H}2e4XZl)cNC^`C1msXA^YsWP+D- z&hra?YqzhEk=?~@Wvxxtp`+}DtNMVX#SAlSXYO4+c?W;H??-UT)1!N+!AhIEK%wb1 zJ85h2Qj*v7GBL5arStaePw-7;xlwyNAo-nmAy~ivG0gnSD}brxs-(m^&N0VlTl)?b zRp013FgrOsytx*$uH#2U9}Xn~ZySOB6!Vv$nwipOzY^~Zhd)pk3JWXim;Inx;4NFlh18K=XxB@S+p`9&cMn}mQ`5iA-ef7d0Z}RgHXbsvy8|! zl)N*N;`es@zQBjX%#dCP8&+h&%@)Qlfn0{xl0wp=6b{nYA3Qi&Xihkyls`t`H1*amIpO3wMQR zZ?VEQMVRn3q2ajpK1JUcm3sY^_XG7#zI+^;sgu7?h60%OdZaNngNhqAI-PSrH?E3u zH`xhUA6FM?JxkQQ{zaDN&UH`ac1UjBt#FEn}c zW`3mfB~ac~qG-v>Cf5U9LHrd31OlPBnUT<3ET@v_0o@qSb z;02@<0RR{cGCmBZ$2ahF=fN*1wD>W|qnQ96Zq2-hKo>}vvI~0R%U-uK*A=WREi9N- z?Ji-Xz&)Gj@%HU!Py#T0`gD05D}&0R`f+w-kqwHRs+UQ7&Kr$E0o)^Cvv6I67Fk{x zgEt{>rzl=jXV)%#1Q?l^Dm!=-=mt82X});z;YV8=b5d!y%M{3CMB3)dMlpvNxg{K* zi*j4uODN%r>o(-drYj$aA&ck0>1KuNF*3t_nXn~F!?6G?o@H-mW*c1pCzMJL|{ zXH;c9M2(W|D}50-tAYor=z-(O+YijTE_J0#bxPcS0nZh&aimEza!nOlzDKrq0^TrZ znVmri!snPDj0N6dsp^;uYJamIPG|L>aJI1i#WP> z0?z9!9XRbkv5~=2WB!>P7HIGy0QJ=Y0;RLSoi<>Rw0| zGJ{9A6dvV0$s+{vH0U2YD1K9_A}oG0M@~#9?4tJUMnLxjX?xb|pAUCN_J^|4A*V^P zmFv$m3s;g;ec?p`eO)`@QRc~TH}Ps;xJ2PAE>7wfvFgp}*%^wmlM!JQ+y*Ck{u99f zc}=C{H8CHl)o6B(1Fx~8U!B*=)|x1sGza3y5kYqgcBG~E@*sk)_|RIeJ>8~LmT@WHP4`BAdjiyTA$pG%#d9L1M|Kn8*=nz!`Jm~Me zN_G&=8MWDXA_MZ&tOd`zMB?a6Ec(Q$gm)Y<=Cj9)eKaKEb?b&JVYGAcW!iTgYd*WZ z{Xl+sv#wygfH=AN z&^VK}dQfqtL`VKxzW)`=_}KXPI7mYcFam>}73i{Q&N=o9ma z{6>6DHGV6v{$T9U$xC@-P=U?>N}Jvy%}x))Qr4_jNDdQuEmB=jCmOu4I#)D;$V+Uu zXE(>_Vz2tu!$dL9&?D->P%%$ew>FD7BmEoaGJ#tRGC7C)(_sG`#;zwJ-T$~C{+HAA zUuTu9N9klufZoYssf)wlZqQ(7gSkavOT+%&*h$S@`U)n+J*jwuLeIR5QMeO47@7b> zi%T0J>qnJZ^nL2az{7^~_h+iO0tp+*H_FdFY~m+tP>helDefBY3@i;$P2QMPWz zGN(~eQNZ`?P4VFIR{}RXd?hRP%?lSqXQ$bRa%3F0w|CaWb%<}cNRtM_E{{{XbR~2A zWhQc0o#{dF4$Ci;zmG5D;+1i>t+1UaN6y5st4#r2q)hkNwrcu+kMjH{6flpII5m|L zov)`Kv#s_Q2Qn7<)gQy80)s*;2pbxs2Bf>?@_YxFeS2u(;|H>V-=KFw zidVj(09~&!-F;S0Wl583TYAW{*tEZkLDuH$kG9qFt#B1#swn9kApN`U*tq_TrIb;o zGm(X;Lrm;wIWI(kFpXQ39>O6HM3%kVU7c$Ki;UK)arh6UO zhVp&Ii`H|J>;(iV_S#yN1@|Ka?DR!ZtG&Lg8ne6;mYGwGzkG_N{VPCQ_ODlP^=ySi z`iLLi>*B}y881lCR!T-_RHHWwXpQzhsnQPDwaA@DrqmS*&S0O6`X|ert9f7hiEiGX zy|l;JDD_S1)j8M9TWvm%+BCwYx^Wgyqd#7y_@g%Fp8+78| zIY$)X>yvI|0($dnEkFdQLsA4LSP{Ge|y&jfqKl9YJS_129+D1)&=cc*agB* z>LfUfk7m=vZm~F)iI`>&azGS=?y^0APwc>$4{bVQKQ2x`s$G{Sd32MWx}*{e+kp1; zCmGl&eYysYBQ9ZYE)W%+a?g#o*QU_cBp{UT@jg;J9Ua1XGCH~N3Gijtrp3*8;(B$D z%J*y*QagXF#J2=_rvT`JD-1vv5h`z^X-lF0l8B|+tH_r9u~eF`u%JYO!74K$$O)x#T@W>#HLBot{2ar#eRnO zMZ@0Ya5ZKsL@~+R3oPLEEa?tc(*P0X*qfN?XMDWq$qA;s)ctn+;hKO+dz%H8O6*vf zO7!4)Ic%(gHN#;_)lk4zm;KhQTi{EjT(0O}?Q`mAJ!>ytMMfiH`<`0nOHJRUP|E<2 zMBC9TIQ`HQyTR{Zi@p$GU{4iq%0c=k?F5*1sf{MQG0Q8flLMN8S{DP}2;yLH@uPv( ze$uON1v{A`9bA+YRvnL{_TB4X*d8r246C;tg_!RiV?2eVo`b@BH&5zp8(3Yj;JrGx zO*R0aT9(1A>dx*{iJuZA032-PpkJ0Q30M2X^I%g&axj1{)bRwd)y2-;Ie~yGr{`mO zb9piJZ9{DC>_MOa{16p_$ zL7myU5_ZIdAsdF5S~TAV$14L6w?%>qEs+zkqGe^%Uh>7IyLd_8^98TDPy+u2c0~qA z+suXwAz6lq!|VMX&{|-sGWQ@A@Hk#!$#Py9#M7yzUAMm6w}JpBCGR}l%{ef z2suVBm+oOWs-wGK$0bSw&078Gj*Utj2}PS;6AQ&zk;m$wRn(CRJlhA-fIFzu4xf6I zEAc-S=lnSx`ehLwgZL?v_5_+^!FAD%8cr(~G6O!vxG9sNKfZKyJi_?dWA$O1X-g9( zLjfbo@mpUhUJ96XVTZ-y+I!bFnjdi<)U@5QPO05SU6jlbi#qPVd zs$bL-KjUxE%bw;`-E0wzO`?A!7VNPQTtnn(m6UU-qx*o+h|Y{mkN^B1%)m0 zVTb6jZY^UNj*>!h7K6duF9RY;?VI1bkq24wkpD7`IQoI4@Q$k+UddB2rRB9OS;akc5$IgRQ{h?8_$NuG2$tJb%h_|4?`V=DuX zlyzTy8d3X+KdQl}dF}f3+YM@k(rFiJZAYCnRQp&+2WbTD3jup)0;JlDrk@7vaPGF3 zJy%?T?pE2HtH=iI$!=auF@5lc*qf$VeqP1k_))qzlG4~gpvep-x8@TT#`o{4Xeysx)=AitClZ&8F6 z)})f-wXmpBdwZh%Q5y*=T9|n4T;{0BJdVl%;cYv4SE9|hiT5?L<{HKnQmqsp$vSZJ zEvYT_1oOV&M$Qwh&{4ae-{iO7lSokw{~FD9{?mjjw&AWPl^ZIsjKFfCqM{%X>FXV2Y) z9~1ICC>)W1^ZUnP&@o~Vd#{H3u2zUbLqyjKk7-AW%4B6mOC)ITa7+}i9a$a(x#Is9 zd_8|Pui~ei^sEqOa~ZPJzStYLNg#pHNYwf>fYC6J5IF2&!o(9_sTgg3_1MAUqmx09 zeu}A1rS*1;VeNCgxpBTGYqdCau3D3ickcSHug_H`Q9>92f~Lxq@f z`%)sBeVdgevQi!>vP^l}hJ8ud4;_E<=1peGy7axfa$r7jFs}cDlJ0{xPcx2;8tJQ4 zXlMX$=z(DCEW?K*Gy<}1OP$UYT7kjAyt0nH^JZ{G|3Oz8`J<3%abx+5)?6-~9w{$o z8Pi|&E2ac((_UE~l5l&{wl_$h*Tr=0-D5VaE9*?$&2YW?SKsM0)_AXOVM`0hDJk#` zzxiGQY=Qk*GylzpJOg697Ooc#0fi`e=>#+}s3b>|Gab%3xEfvyO~4Z6Yv#=+&wsq8 zw_9>$=>n~`p@RtR(|2;9(v<#Otgn`N*4I7MG3mj8Kv(v)L(BBLAaUSE=k>pwd#1UP=eyVpW+aaxfp&}1jtFW8 zRy*N_65jR~66$QZ4^_GvOB&SkG*9pSu|Iu}`mM_oHq7+Pscd;cy%L{L;i=@xa#Oin z&jq+LEIvDyUCmhGj{Fso-GiN5q?&a($Vw;Ax)#dm|30RYYF*MVtUD^nN-n@{!9`) zvRIvI-&e9X6fF03uH#zZ3H~omYNtHOKyqnmx=T)ZK(vKX&wcguzm{fq1CDw+4${ijww(MW>BSvg#rzBG9SRC&A))@K!}Np`Y$+IJ;Ted znoOgPk8}?{ZbTf%P@As?a!%L&xcViispVINJ~Yp`%DikhE%;0LG`ffHWU&yZ{K<{x z^(p~TkbXkDN~aq8oVIoxp$}2E`AZrS;Tq-P&0`%`!4a#_qW1OSirn$v!FSl$Sdg@F zIPJG%3tS#4d{7fxy~h_rPxC+jBMZRk(w|}t=W8{@&%!6!C%vvq z((7DH7B3ogmMyg7pi7*M8Lg^UDbYjQ%!d`KAjK zsl^DHQEGAv++8Q35!3@(tU-;H-%3G3?Z)!k>I#Pu*3mH9UJu36XFrvvi%tX-Or5=C z;OUW+N=fFGBJXB>+uM6B+i7)vN)$oL-MkxTD0oBQVQGe1nIFfawG`SVIPtGWe1zY6 zfs?#&>K7&pt@!74xO(Uj2zT>J-1-(T6d2lDn|3)hIV7d@sX!9?cc=c!c`TkGmmkRF z5DH*3O1vI_gP8JC@dZEJ3B?(t9@x|EE!H+Sxf?vE>7!U+T%vAgEI`}4x`yBF`$&HO z{;X}T_PJOOg&j7y%rx$@GY?nxjN?kle)IDX*2*~k#6M(eYDyh$Y{aXNj-oiDNodiC zupXMlb7s#0M?h4+6^~uAc#Kvz(D?D%A=l#N`dX2vIgs%@?~waX-*xC^i08%p?Tj_U zm5!xjRz4o!1AAU=YeOq#NsJy=ulNF+$}PY9?0{9;3rYH`!(=DJ7Y+{-F6#JpcwI}+ zG4!0bFPr_ts#lNqTh;A7cE-!C2c5s8NE}WTYz*~JT#Dx`o+(%BFJOYwD1~D5t;W+c zM~kRhV(oF=gAVr4VBUHE1c$mJhw(Gcox%AC9{Yn6m9(;--3hgg2)ot|7v{Q={B^t# zfvHOSZ8rY**7C3Mhb)HTR=q%KXx+AVJ&$ywsn>PP1 zC&s@{JZz7FO!@L`ge-0BL+ROR#d$vC*D;ESKBtdrj}{QT$t zG|iACz#m@7-r6d>mS3_|6&4fNjeW-kYa&!{a$-RI;i5LYp}VkMQz3HJXr6=0wuz!u z5zAJnJElp7K{&?#NTVur?&ldm$h+~*PyB@P90$bB_xI6-%Q8=L&%x*zmbhd(Rz7Pm zmne!>77leK_{^Se0|WLv=3|uUSQ)E|r+&3y3QDBt25RoHE!;116o<3QKo zfZ;duInYM(EYb%g8+=8%j@wm#p0XVzr=j6&4`rgu+T2Xr!v88Jcmw98@aicK9iRt( z4(y1lJ)U4^KR1|`ivff^cd~K^u#WM{y~TiWyo@$V(03C%1Dicz~P;? z*4RDyE!H}}%DPaxN!t)++_c?hKu!_0_ki7l7MOjIJ51RCs!&zQ_AsV7>21q;L>#009{TCy0vi}r{|MQ9a*H`q$lABO3 zfc~35FZU#+irlJ3v$vdY^~IO&BA;N0R8qpoap|V1zCbFP5YVag&-+tYHC-;^z0=~F zu&|4W;klag2uD8kBbln8;SVai#bLyr?x+@@rxs=m-L)FtWClC~h#ZxBtXhm)k#XgY zeIC5BoxYNJTH?R0_E?pZr_qq&{HgDkQmkByOmf45h`lC9%F;ABjkFpKPAgv+UXS~> zEXVti_-SS3`yU>VNpynx((-71*eSxX5$IkVrX-CY!CqS#Bw4J%?exwL7IU4!@PYLoe{vprlYy6y}6 zm>f>o!onz^GQXS`%u@!9nP=(xFdRD+-0gswo&IpzzW9=Lev?y~?NSHw*A=}xPU^0= z)?!Gyl>C58m-0Lhh<6VFO;H2cirp>#mlx0wi!O^aZw^2K^PgM;nJu^`t=GFU&b{Au zeh18DYZb%-tB6LHbnv3nQcAVx?nq33=5#bL`*!&f;FunLO9r;T)=Qos6{pj=U$AJ} zS%a=l6ez;qCJ=SSkvWA5nY3}NjFdLqX48~oRylo^>apqw>eOPj@<=pGU%+SCCo`7t#3~c5XZj6B8K7lfa)Uf^4a% zY}K@>ox?eXY*5dXfhTKtw@psrl|{oZQ~>x;WIRinm$o@F*{n(jZft{_2ueFyN~7TU zJo(PVA-Bm0xG^JDB~mN}0&dW76#Kzl(|SCH(!zihAQ~tq6O=SL^($i4GL2(oLa2j) z%8?{}Xoin;x&PcclWkCq;l*rGB`$ppkO?y19yqVmN_ct%)qw4EwlAD)<|a&E^q>i& zlX!rgmM}ag<{EG0D4(dEkFF>;fZvtzJ<0=&{hP~_O$TF^yC-?_QEg>5X!`>1#-mBo zJ5C7_*`{%0JbNB)KrF;3=LBrX0|=;~JK)~4fN;s_U`=mVY=-&~uI*mt&pz%47kDcX zqkpGPGGry(Y{2?K^T{Nhes`ZqM#ZC=S|ekDx4taK-)D| zA)8$>Ghf+kcPa!dln+-L*jZu1c2F-9_fJ;pd|WT9TYK8asL8 z6v<+h_=?6CIknRhh&@(B_?p+^hGcsJCOgO3(=JhB!SLMnK zDe-HRR&ayCef#H9%DR-leXM*`Bj0$Y3@!~N?y^cYP;TMI3WORca~;0$7G#A<^@!@k`F3kd`0c&_bETVozrMDnsC@nURr^BMQwsxsb%1==j;4y^ z?)H<_?Jf8BUMd_JKPVvnJn3Pxqx$P~wSYSdtc5uR;x6hJjVgNLpP;1$MPB&2?do7tm;o@cEtAit%mb`keDVd;%pf=?7a48V(7mvV1J$%#g7PZ236wkl!L{acQ)z*4Aqv> z`cF7?Zj-Yltq>-WrNo%we>R1wvp}qeM2A_K_PZ#%_DqbdC_Ey5V-)JkBgGnt)nmBT9{ha8jg~SCj!`6ETd0*N$54OBY3~Vo#oa*bVYGL= z>@t9nM${7y5nk)ab>oj_j=5L}Z}PIgjFyC(YXv9bT*?o_NX4}!(X!QoC1q0x3!*_+ zyL+BCMu>73_fi4n?fq>h0~-$k^0eI0eP{wV0=JTo)(G}!QKFqC)g!l;-~p|CaHrwu zw>}?3uQwLa^!pUZtRsyZJZfEe{R|*J!mOjO;2=5YF;%_c(y$W5|MD~|?DPq`%UB&{ z$0Y#vrd=X0Zw=(T!h|C5B>r)U8bN!M2o#Tcr)@O?ouq<$6|_D}2rCA`nM|2)Mwq&o0`{HWutNJ)eOvr*BSIiwTx zBxZpi68S~6KyRb~>}*rL*l?8bgg3LLyIZuAuej-+;l&lc8Z?*NgkzEsKb+cj4?C?` zv}PxWFfy3Tg9y@j@A(~TmRt0N|3K@)+AYTivagx__nMbw4P;+o z4&3^DGiCDgz!x-Xf;b};uk^gqc|#@p2_j2^s-Z8k>-ES-$wb1sXHnvV9w((+eC_=Y z?EJij?`fm(T_|1~VtI9+l&-h>)K4%dsK48z;H-B_%; zEuUMCSP4T93}pgXL{)e_7e0U-Hb=E5YCN#X&2x7g)oUX_a$m&p zB{S!t?z5unZzhXZDe1Oip1GFW>d#WTk7z7q7TQA9)U!4H7ztj*U1Mxh*v^LSbvO_u zYq9-?A#QX#g7@ObN3_@J0M_`M-nyDcI|~}U^)6u8>|c{e>{q-9e$MX+AUQW8atx*9r)u&sd(nO$}xxAbL6*fy(ZGpa>h7>DV|bOQ858* z?*GvC)^Sy4YyU7HNGKr)NJxj0($Xbef^>_7ba$7iAl*oVNO!k%OS$Rp?v8iunK|c- z^UQgk-t5?x*SfB6JgCQu|1ps6i-;~^W)>8uvFf~*D%SUkhb?v! za35rO%C~0f#R?j@Ze~;Q^`kXml*0w%rc(GVPj~rAw3W*mZ=~r|zh9@q#JN@7m&qC* zX8kTvXl)|Wh?ACQ5qaK!ILzR$sTachKcc# zV%%$Eq`ibuP**r12bthD*I;G#bGWqZzY`}7y#qgFn@ovF7el$E;9ZKVw{%m;0YF7= zZ^QY#T&@yPGroFuqo?;~XT=ZC7;UC=SRRwtS~P&_McePH7Y9jRcMY+N;mZ2e1$9;# zU#MHY2<-nZu@Rw+a&{S4eRX(g_%=8Xf5{X9nDTv>M@#0RNI1!hAy#o?{FTe(#A2@; zm&Ine7WdNjaj-_=r(A7=f)H(L$&-5zY3IPUoY*$$^2V}{nR8dBe%$z5F|@k@x&gD$ zqU@j^P)ne>m^U6IDe3J_TU=*a2f0Sly|q(NnlZ?Oy$Ev|)GY#OPR7jBL2XpDQFOUL z!#4-4cXSuLGJsZ+2|^-j^u_TerE3-FZpQV##CMBU8ZQgyEs{#VsmoU{|0pHZpPLgx zO?k7~9+9L5>6o0<$WfBQAB(UTlXf?h+g3=Rj&Z^1YE$pS7rrTVipoHiD? zPZoCR8IQ9mSvUyUvW9A{<23QMqOb~mLuTqm(SKiIQt|P+`}TbG^a{1BdN3o@^EJp= zQv8z9W2VI%x*eq&!V@%Rg}xM;RmH}SOZn~`aVgTjYSF~4=lgv%1EbT$8|pyj0+gcx z5Vk=*Vk?k<(1JCF+j3FtHubX6)MmhPw%_%Ds~RO1VJfR)XCO zLsQ7JvaU{V!N^vqiQnR?(}FH=z*~sfcUk^knM zxI~ja@Sy(5&kAYjF)S(#4LG$-jaq+|zIBZ^8@n!));h>HtMmz(U|S=}{0P627}59I z2-AUG5yw)S0=jRO;`WO#=BNN79lYyu(Y-dCUm_cTxq}@H8sk?~0U4j6hlvvjbXV?s zgYG=%>}{rGR4-nj9`>J))bAp(0KTg90W1M_9%3bl_k(kIy}wB> z+doNcehu*gb02X!jdx3rtJ4baQiuGj+ay4Q`(0Yc|2nYqSjJV{xBHX9P0g&q;*NcZ z?lqxWi9u>4qmqP4R4#oKT(0=KoL4*|n}e{(<8!+*PB(7q9E5}OTLGvIYj`l$ry ztRmnWOoN~tUCV_Q<=%19{c+Bq#9&txTIY5kLb2{TBLFU~RP0>4dYTJy&aUGFeeYRV zjNA3E3sZDRX-(CojI}P+vlVMf&MwZvMmI6@@j$Ble@=pb{g1@l@};=H$ExA7c9?kc_~wk;jCSu0jt9uycK#!*&zpXLY9J}%4xW$HYAt!&pxv~ z>hC~Fx%Wg>Q4%3C8bvv}4Bx<1yf0;9VOPbAgfWD2{TEi*?`Gk@Zs5<~bs@)!4R2zt zA1()ahI`s1z7_u6xO&%7rZnpyT%ky&)5!FR&2Vw|-~Bhs^4~tE&U!fQYRC0F!vFLS z|8T`l4LGW~z%6a(%`_YK|6ttz z&!+pIjFs*^j6DOXy?;@L{)1`yyBpUpg@M%>cY}TYTgU5nzxvNc>2JFqFS%bIoa|AQ zkAMZ%`%j;ufS`{QU?Tt}+V`L!1Eo~}g`%gx-WAuG7tCveP;Y4Sp4%Z=1_3< zs(l6$Ukxn7fxdC17_qw$sJ0lC7!8#fW8tx^XaU6KqBartObH?*LK*HZQ{V#Hh#@?8zX)QPKHDcw;1bk9 zL;kmrxqtUKpaZ!l&?I&V*fAetVqy@d*L?&|?g0)DS0EB9s_llc5{Rq+POiGY(sy(~qx6a6Ebo|` zC#Y+xdR&@UfUcgnk56|Ol)INMin>h-Eh++O+NdAaHxbaKrm6Xv)l5|fszy}LZgoLf z@R`dVDjJ3hM4M{2W<3Qy;xdu~-|NT*cT46DiK$up%hnGO(H%5^s8q^n0Zs-lP`LmC zV?`C>{Ph>aOzS;BYLIX_*n zMSY(+r9d0zmA2D7Cm>n~R_@pAgClVd6vR0{KQD1of3fl8sb*Et@C?9U9!xvxa8KUD zxgrJZ27!_{<-@T|yWId=M|S0A)%g`VQH@cYTwQxIB$B%U>*$5&J5$m%S{Zh(zcPot z0=;4kACRTAi1?WV;{xf3V64szZ&^@64hK3{vcS+FdSe1;W|M-f+h#KzR(`_J6U-&f zOST^6o@jG`huj9jF_!C)U8+G{dU`OiA}Y+eSM-~nmZ z!n%W+Qknnwkn>B(5|q{Ez4`44Mu&C`;;4P4#uto1h+ zZ-J%9=XzSL!bTuu1K_J(MWFLy?^AC_hC1Q`?RfwSyrFjA(J?@x#Jkuew+A_^XuIt@ zWA$P`di10(Udv$RdqaGeDbO&Y+Uo|u&Qs%+e4qnptOPhxueG=3PAUwEHphy6r_HoY zM{|r3+}avnYhPBk+fOuGOjrXOAPb-}{$&%eB5sFsx?rN8m&T4aQ$sUOXeG?C4TSf2 z0sUH*xCS%iKf;Fo{g?k;E6gu_MtXRmfku-eQ_d){x04O9_ZFS8RTHrBl2>oHbLvc??B6j<;`t zo!z0fn-&^)1-KAcYZnlS>vm6Ey;2J8$cBEWtnk0>Sik#f;Cv|UVC^`XHsMy(oYK#`q48tevLy8QcZ zO93heW0;ObJuN*QsyYsOk|j}tv`@Oks%@gS7@(S?zwOl|*KqhpnQ=tBb%zc{MR(o% z0I7BS%U{dn$Kd#^t*z6DFAVij;HuS{fLa^~XiukW?4ziYoYcQapU-^mUucukU+P30 zwl^tg)&M|QS!*+(Gn(k$+>9)!Cz~FCeNChZxSdxwmxO9Xx~YIE&e0ckeQ_KGZ7*Ge zRUTm9A0i1zoXdckdjKd1Qb0UloC65d^lJhrfYpZjQ>C29Ne3H%c~g-ph-3d{x=KA1 ze_FdpDcfW97tTuD|-rFCAMoG@y$Y($W-o0j^3d(-{J_;qB z>Nfjy^;^$>L&&NJ*yyaJq>qMs_{>X0YGrGTMym7Q{4>?db3h?qO|9X|5*Z!c@nk$| zr7xiiiuwbT-}q~29Ix+j9t~m!(l4uKF?4YlDPI;>dp``ot=Ogf@?=8S;o{5pi#w9+ zJQ&wu0VQO1d)4*}aU}BZ>tp{6Hou>ge=>PVAW)rDh&C5aQoNVx3O$4*YoxtuCs(Vs zV$53)^nqoWu%dTLrNA@T&gm$OAI}BMj1sW$SiS(_k^WdwZ6;{brg@vH6S=I($8p)m zXV-ds3<`=w=X+!n52bjsnvA>z$P605{S5;ENAYAn4)F!s)02~EFg?0|d1PYl>FxY~3xk2g7XU%{#RgxK z2Fgzz&(W%l2C(XbSdQ6U9ntK%U-kBY=#^O6_qHFn^i{Cr+p(Ml4fl*guj#)iwiboV34)Qp>VOTKKK6m z^$FgyIUHm(w6FrL+D;A2deY?{#OnM*5GoEj$wRo!A9Gg#9z!vUk+D0-{?f*aF=Ie( z8m^-A*dQJ#Fj7}eF^lIY*$yz20AXla0aG8Aqm_h9PJ208(Au)DVK*M?%$|$_R8}C; zS6;tt)?kRUNZl|FP{-xo`H%=9xjC(yV*9E1UVzLs~0|XrI0ky_9z~AHo=N4T)*6%qU*DlJTuU`K{ zWYs7Rzn9HwuCKpB8K_e4ngOtakpj?3=5*Ri>54rbHzL-6eI+7Okq2c}X}i+%t>wPT zDmWOD8ju3{No!A!6ubEZ1+aNZ^9u+_s3vmVdXNoj_t{yiulnNIKJQ>rdsrAuZZLr6 zcT{JmcpSH563_L~q4IYnA>Eka@f;w4psnq3&Nf^I7)^sAOOlNq99{Pqc~(C=2IBOI zlzxy&=dcmgFdv$$H2{Ik&xPy8+)xChYodioNtfMGGI&(S|4y|=qz}xr<02O2X`ETbo1H7kQfX>+) z4{gw|i7gBP9}+zNn>+g_Ck~UNK!3Hr;;zI`0D-=fz4?}<@2S4b#zQewMVr7*(*B}a znbm0nK3d=dpREpm9aN&S>O-R#{s2@Iw%~QDW%J@{b5sfq+l`A7 za3IzWI(;kUPWuXKU~q-{_81= z0_m+`;p>)nJpi)%S=6VV5CyPMfBwS%FF($CgOfRJ8cApZJQRTsuwkJeuo^?LX>X!| z+(R`2mvJbNHMofYgD1jo!HbA!qa zDq^>1vOn@Qc8?%1w5WbHr!%jWl?yETV~>>RLt{(4%bki<1)2fz@I4desr&|2PIndjdXn{TsM% ztWskj-^c_`kA~9!Q_s@4lHZuB6tD>2mZY!O{o2PFfM4m2lPZcaQha(sbG40)HZg}|D`T0O2{Chj^J%KMKbNJuEra*84*4D5BBdWi^ld0y!zMZh43!XRga z0?Lv-P!6)U0Yx>CBFm!KvT#Cw^WVJQFTumBpDyGJz^Mfa9InWGx?5=qQNy8Aed6sc zXmjlnYgoQjXEs%(c5zBf0hAA3t?Q1{k~Ha@pNIT1I!)E^Br};~J=H;KT>sUL=o`T? zobF6VfB`XB?yis6J^DLSY6~kX zhS&pGf5)eTui)J)(S-0VY-~)mIV>1noW%6O+p!|=IRwYc6Z2~4!!Hk?ycE#X(kfLJ z8&m(AJ`z@>$zP9g2ALw17ip+$(d0=t0Cw;Eh} zw|&{aC#w9qoV)lN-s#o^SDg@g_+oF|3+}MCxonu4~TK7W`AFfk9Tq zdjBKOK?{kO(exxQ^jgq$E^HQ~tYblI`WPA1lJC^DUDa|2W<|T_~{0ihL6=m7e+84wqx<$_BE5*h;(@xAyt(^@m`1|>9;AH%_)d7sdmRz!UnRTtL| zaVtBCS}!0Yc<~n}Z(IZny_-S*<~QZA-)EKr@yG&O*bav^bmvB4TlXgDlZdnxD&2%- zyhb!poN;7r&*_@tVOnh;Z}KysE4ip*jhTmPQCD>3O!q`#7u{? zfdBKofF69Lf8p5JSnJTUpXYlCsyDY|Iwjdc^i%^D<=`Mw_C`!@Zs5|16_(rp&%*pp zd=B&HL}b0f@9#|yuHSKD+MQ=S?BAsg;n<>LyE5gj-9T(`d%s@821)>dQ8BX>^kH|h zPP_XiIhLze+}kFH1EL#<&ba+x{_6a-hGTf&ALd)zOC9{7`1hOlxVJ#(C;?`{hx(xn zl7}t#44jSA3cvXuWR;5ttU%~p1p%vDG9_}*PfU)@Lmf;e40xN#%>l`Cn@fkt4I?1N3(kg9 z3oG%oZ3)CpTo#H)ydXKP@SCp6exWnS#H3L7Rqo5{N6xEXpi`t|3!zx0kZM2*Ox(CH z?&u1_Bqeul5fU0AngXdu?AOoNO2Y?Q4h6q8HH814kN(g8gZ?YH4#wGVgG+|o8T*2D zT5PvN{o$l9mX**9fxj(KbGY(D-lw02V@MPxx}N03#=eV^QtBZNv89}~qpif~sjg~= zh<2oR$xEtkQNS-1nGKBogb3+rNSR(p|4^qp9;jCsRL?vYvgx(yz3H>*yZPd;rZsAD z0s3SW#}W%~@`+lxqlKRGDo-oiQVh|WqpBl5(T*2g@w~K4Nrr8e7U%C2S{fZ(IJ}Q3gKN*xw#RamN`z#R@j`l9n*P<9T&Cl0Ly6h=?)p#xP}rC1i?;{O z9#I>e%Y2C#cO)L*y|&@*wJG&KCIOzHE>LI~s@x3(wLNZ|ZG7BK!&Wxk#9tq3FjVQ; z0kqB#(C}*8RG+mQ8ui7KFSff==(r!3=cyJ;7HHSUr`=7z@2+ihb4C0rGUkH>N$G

cvlN*+UCZQmuYZA_EdbHL;Hk#>mAj@^Fju( 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

(W+()JM|#+=1k-0NhpB5VY9 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�hZu}?^PBp@?7~pLX}#4AVe@FsWXU@M{oh>< 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�uT0cS|C;rR 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

FJ=i*vo!v13@HGnv$e&lpw+hq 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

-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

*6Pk5|>N5W!iR42OO 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ౠ{iGu_zs#o(4X*H(^_lVU6lXL#=2FC(lug0G;23cH;T;6$d{@ zvUl+(-pLKX$s;1fJibrYM8t05)3qi)I|e2N&;Z+)WjDj?dPE=<&mra?SJRjJg0<-` z%bku>^2+HffOGC`+G@yF{3bRk68PZ9ma8sTqcY_g!^SZpvFNu<`Se)^8~*m1-8#(< zzgO}2M~&|1=lgBMkH$+kq;Un@PJcEVTxpb;4ZdT@+1hl?iK|!DH#gMQw2B4kz5O{+NjT_ z2!{Hmi~eO$qC(d2T3RG=-1NR^MSK5;v#$)Rs%zJkF6oj+P(oTjxgT+?K}_E=GaeCn`Sz=h zeXr*2MU60t5yEmn18n|y&sd60MLW6QfTp(5<0e53M{q#2Qr*Mj^*%?6w1;(X>v55n zjg*v>KFaf@wN8dYG;1<`kD*&hgLNj?R~1O-^)#O-FvW}#8J7(V7^Y3)ITJ!co?Sjv zQfapL$Zj}KH#z%XC;cduEZL;+a^>&&6UzwWyUsa^Q*dzBF5?veI?p;~2)GGq8&`^xmE1nG{VC z|JN*?#snI@n(Xy4yZ9*yTwSN2z@V_xu z%~DV7yKgU6jIx_~t1fq5FjQC*PPnsYSD^A- z8@2to`Nkxv`C{YAX>{ls^RHuqC4Cg_etIb!^bY{U)zeKWi~P0W>Qp8p$m+tfD9N_* ztn-^k-A>Kj)i6_Y@5x_y{N zT&BzVV5#SY52)g2w-YkyED!FN#!b57A*Jp^zPoiF^x@uW^v!$~OmTw_i{@Y60`DA= z;=Js^AbTFsIJ8v0b%2P`NtR0Zb}R)cD}^PI8k@2Qrm;z$;G`#m{31Vm2|djFDd>B+ za=~1-4-c2^{4_T|&l$c_?$%+KLd_zzpYQw--FZ~}aj8dgp^w|H5`RW0D>c61bZxC? zRVnH8ilk7&*J@!yYXqKPz@K)50zXuG(Lpu>J(DgQMopZI$kvF_^qCy*<)qLS);E`L zU2E>|PtNr7=1`U!Z6mCQj8K-lUO1g{r>x(V_n}ncx0*N}4t2W&kq8#3S!pV}Sm?&8 z;gwPx_vF-PAy>pvs4&QFoiWJB(s^%8CI1?cLW-~jXK~&i1Y$3O=6ySr0ImZc14A&G zml{R44vm_y{XwOK+>&nJ+ zRxo3)5YUL*#ms+?)2MoK1mV&h$J9|8-o56bA(tO~pFd+CBI{`QN;77ZA{8Z0>Sm1}H}k@(;U03^KQUPA?zT zwg7=}72Tdi#uqUzK@ji}?BAr2^D`;9yIA9GiUt_fXipBDrubnq{JNE_gj7CA`L=nWCvn0NswZg&j|Q&!2qH(v!V*orwv8>8L{kyXKiK4atWQVl zY%~H@sK6f2po4%%f2{&af83MH%Yh@yb3TkokLWAi7H13U9WN^eu_&r1iurwWTM53!(dvxYH z)_VlPuGWC;wBZtWn3p6`bW^|@^3W|J3yb9%K9xhlNE^Txs<9E_;=Wuz^*$5J)&P^< zEoJl1WRnC~#WNN3caxg98J`>t7eadoGAc4(p$x_C-R8nM|N~qr5jL4+t>a z^7E3m6+zH&kP*Ru?I7OcgJwd5sE7{63d)%71VluYJ*Xu&E|t1J-u;2+0qT}YxuFlZ z(deH-f8Sit$+)I)t|yNwEIf+LyiVV3I>u`UoS}JPClO@c+4i0t+vi0Ocg|fP}V3n80l0vEC7)3_+LW)>+!y7`mct^aR zz9$F^7354nrJl7L$L=jaeZ=76-0znP)SF5R^okA&O%3($yyTX;l5&G4)l0Vuu|r&ns9Za4o48)cf@U(S_7hye_ZjMY`rE^Gi>#UiffCEu}c87EW67NhTzpc|v!e~5s(U<<^ z%Lh?z)srRH@6cg3%#hCoHXqzgHD<9WVyfFGb?&5J#?cNhlfXvH2J$#1^qw3JUNj^j zF1mMSgfZ}71<8{J)fJ;Mu{*~&B`2LA4J{BL?wnuvgvO7s_$s+m!B4W&8;vL{?2K37 zL3WDk*LEIWgviMAN_FiWU)lzbT*MWZ7ck4u6e(iL_02rpclNYVMlzIW`2C6cZ6EgwXj&~zE zI1^YxS+gbh`@T^*onokqnf(DC&t=7oEk@sVbn1s8^m0&4&R;NQ)&*sMJ=QTJhxJKv z;U!OQyBglx^Hyj|5P{JDorvHDJ(0P8+{ux>cCn?nygbx&u*0O?g@SyTA@eT5@`Ox& z0}&URQ;4i9N`Mg;dvP4|AXb(iTl?YhuKd0O5_j^mkF2tB(sdc|g}N-tQG)>-_5Hk< z^+!9-Fe+vUWc_3fM);Yp8303q*(mB7chGt$a39de!|t&P1pQj1KBA0okGc8zl^dFa z&XvO>>A11ySBHyC-9#XdPKr`4Vzv2B%xSy&Wa@*pps}&BPj&(kN7<9cy!xiujUK=v zfYz+Fj4S$LIqr!NNc>FhyaK?xaj6L%Q1|DnnMTDkXm%!XII3I(X&R@pNx&%K;z*4Fl=@Nw2_pIcmoetF95p&mps(IlK7FwZ(Z@}if0|- zcc8jL%5+piN(V+`r;QV2?(Xii8e5t;1RK}j%l!-I#+;95+vR6Y1_oFzO)-P2@7}$z$L*rld~$jD#?r55 zLLOJ!5uJ>m?$rJAfPAUrGk(}au3TFyg7eGR%d@l0_CS=`hJ7`2bNKFFD!fnLV*Y zXTDgAYA>ujRM;uzal)?$n9PnE?ZuoMxmEF*g08xhm2FisAC&uo(Q*F!aN*0+Z{F4o z6a=G?0v4Mx&=y|1G}rd9!-&-J%Wf{kWoI`S;CGBjurzEsiFQn{j-g6{1eUuc<BK{@2;P1vm7MX zrQ`_xSxJ^mb5|>Rgv9f!dh&v;z8@9N!TEU&%pGCxm>*Jrd5Rgnl-J!T3}S@56lpaZ z>yL|ZF$v@*>u!`aS(t6YR|ZV<{zd{st4J|2`%mn{CfM)2xD^nyh9Xc`FKR~`Rg`J# zE~Vn;$i_Rw#0~-p-fX=+`A8<~Qd)B=l%w^Iy*9NtYz}3g&9Lv*i^)0Sv|>~EDGlj! z3EBY$ZdV4+Wpo`YWg>IUWFH$V6kG4TrNF$IOl6s=lwnv^kl1eJjFqI<8BpjAbZLbQ ze(N=yvuDjfdV_n#At(37-X{^mU7x>7{9^_q1((C7#^qbe=a-$gYR7qaVHU7QeFb#4 zJuZ+Tvl1k1$4Zl$S6M{ZwHKF)ya!7C5R$+5z$g?{+I>`+#NLD(Ce8$xTsF=|g-+X}Up+0np4? zo0K&<)n8)=vMU5BL28BzRYq-y@;G5-z~7r8p8L812*+Up*n-1HPxa<&YI%fZ$VuZ% zbeBWnjuMAbtr~O3ENgEyn~mO!rE!cE7_E7Hfjb2nP{;@7%$4Iz_2?u;uJb#fPrW4O zbCUy0!BNNU{l{Mj8#I=&OZj2$rG2;8Hl4r?Jt=mMTyUHu%zBU#f1_m2QwxBe7yI<-^xD?G@x|-+~j_9UC+AxYV(ZLmCLo+{i=4X$yxl8 zr`~tqipF90^wbVlOi>Y6_;oaS_*a`1Ven}n24A;G9Qg$bSL?KJvp6ryXz{+xlnOIo zCL-FTK-k?4Gf|r}mXIK{b~(9p@+MTY9LpOVm%mwp4%AdYMEzuVv>FC?KbAZ=sd(Xx zWoJHLHLi$BDCkmu+7P*9^mH*Xyrseu1%{aS4W3)+9bZr2X?F zC#u)ng_UoXK6g+^cLlWT+o2XI#V;1eBg7r|LVL1`1X3uHh?wdm9_+H&X1mjbj}2A9 zNDZf)lJ?jrznL>>EzVdmtTAdtS*yLbUAE`FLakz13H~((7pvd85i^3k0jXnHm%>-9 z$_^Jj<}~w%Jx2v^ZG6(#vRN6OuUhLaWff3QGI&Nc1v{pPd^37D4}R(GRx;P)6>*Bo z+t%2+z%ZL=y4GVCdXQflunxyY$SD~sc7-&oYzkXyBs9Ba{cMpMayUsan4pjJ{J!eu zll{W=+Rd9efO(r)I!hPZosnO1aKL{k%|iz^Q1yWbx5bZ>+v~mXD~FanofQ>D{IQuF zD*H>;RlhpkT7wtdehqU;cr-kf!J1Ik3eOKv((9Qa?kUAq9k)rd9gFZI2(++iz8|AH z#wTFQg6YUI(5$nrr3}&a$Du3K4H0K9ms-+aQ)+NnO42OkZ*a}I7BIP&D)0Eji z6KEIpJ{sbZIZ6rI{pWGP8wER(&NE6iLkE%|g`3O6)HzYItJh-Vg^J=wdU@YN!APBG zkj`VBb1O>(joVGDr3gf{1)z?%kuO+LTf1KTHhXO2(bGHn7myb00+92bR$d^RV`JwV zpOX{&?rk5VLtkhA-U6v`>%*n#mgy-^`PHIL8!OaQlaC+6)9X8-0g-&BwtFnuJ^@lv zQVM?0+ox*H*Y1KWVrDShSFi{ItHS^Uh7FJb<8y{UTR^RG-I+9D_J_*GDkM#cik-q) zMW`dgW1TSJqn+K4Y*?*QMMm@3y~zZ`xHy2+5ioDo!I{Zmoc%hXrHH(bKPe(C+;f3* z<$bfc4Lv&vc*Q7J0`!#Vz+qAknk6uGZFe$E%$nJIsh;K3Ah4H7tDfc*;I`sI1}Q;L zPHVN=uwNk~0-E5@;af77Jv?^io6pptE@ovMF)sK-BF_t#<|Q54DL5-@zWB_lqN86y z_s9uGtj_~?z?0^0-)I<(8T)HUiCi8oX0M9{#f{>8WDIw@sTv?_u0Pfls(K9BP(K3F zgC3~&c!7vn0<-s{mUNGUOtE&;8-P-dY8qZ{b_G+VDkGwMKuM|4@6s?`(fPU}SW=3@pD2PE9~j7mokzQ;?@8Q- z^EGt5q=Y`8o{nynk=>%arD9 zUW6No=RxeMBpFU2>fg`CKTqr=0tv!1lM^5g=&iqo;B;N3nB!9uyF%v#a7DykiXjVw z(Z>n-8@YpGajA$nbmpnEsjJdq+~S${4~5&3cXliZR;a^%@fs><3LmMsQG#z7TbUu# zIK6}+Ox^K8>)p;ggrB1j&1|28n5 z$AbxJreCXpU++lMPMp3_M{WHBRlZV5Jx$*G#d@|tqIfNgEj_EE*v0szmVv_j%TcPv z{P$?49hSU%eoP)gv*Uwr2~~Wp1eYkI6XK#_y1W~xE>Xe*UKk5gQ$300vA&sRysr3K zaoh7=JdsI}>eM~0)MX{3B9(7?esbP;hy;zKTdpL?pe_?VxN`t|ZER_nP{(rb$#=A^ zp535S+=vENCKq>QT>u62_A#2#ifmBvqm({$7A@@i2>`gW@2)Ur6? zi?{{)4s9{8x;Hmsv!f#;YY!5g><5xMqa7WQNF6xgn{aS}tg0WJ z_D?q#73{JW)6%pug4;Mwu3+GsXP@Jj{1m+v`F9c^2(ZYZh|ks&tvvcw9cknxl|ui? zfXM%t9{ZZSg~*gPV&MG}M2ydv7gXyL&uG+Ld!}``{IN?^Y#@HA@4^*5rJiGBH}4@f zJ}2qKL{9q-dDysDqC-r_ixk@gC(VHZ|5Gx*BUSaAa-@qiB0;@#Pr!!{=J7skX%0tU zTQc-iC9U$ST}LoXVZYfOt@Z)+($Sl+fQoGA+JjVH~ZcJeYxGP@i+7}P4) zIUb92R}kcyeMfXpeU8{@t~*cm%Zme6ErwHSvgcB5B5^)O=w)iwS^M>O6Dv3UtpyNU zAnf4qbQGX7U#waze2vlv-E3yh+u$Vz$vgv0p32I~S1%pbl%`JYd4ad`m=06wMBLr=`{W&e7Q! z`=d0bxOm>;Dd451gqcdy4PQ_JvhY_1=OwIABVyYAn%0Qm+==^X0ObuPO9)|0!zT|7 z5TghO(^8>>?0N~iq%=VOgJ|aG|HkiM+RO`Q1g`I;^VG4ZBJoIzNu~u^rvjo2)ap&W z@o=Wrd5!y(4r5V5Q(R9^5AM9UVeY9{n!m`}$ac@oJ?=a$?w_mlH;gNT07^szX6xh- z9ttYU<0*&DEh~qmiC{DyJdQdS7p|v(55CteH7jd)!^zvKW2#V}Y&s8XB~mD$?U@yA z$r7T(;$`)~&BG(Cr$>X|1cwl8FO=f%&rqC-zP85VaiB&PrF%q9g;dWh>lsZbrHHW{(G0X=pZUxTD)|=p4c3`IXexS`1p6E{%day zylWpUBu#6zC-zGQ5UPC7jQQuk)ju9&;pDG*a{4AKIj2h)dT|B<%xdZ z9I16o+F^v9AkFKKnHXS7|cTTAYx6}>&-ZMtG({TC#J`R zt~n(px)A#-l&z{`s8y`eG13e6p+5zLG%T4+{`@PX)gG?ebBCUy8MVF#x(c!1US148on;Nb(s<8*-Id3%Szyq%G#Kbk@EDpC!o zV#4D1>p%8{C$7$vE-opXfO@%k80ZjIAeqCp{c=29Aoz`_MnEU^1B{id;_jMvDT+dM?tXfg*G(z!TaZwlpieCqdp&-2l1TpN+11WU zy}GNOi1O9W{*0WCF7;tX#mfY+P=zXc@$vBB05-Zc_#Ljil#OAoOM)MCMHQlI`FDM2 z)=g-%IRvl74ljFqd*!s2+(&8YPxH{M4D%03gIaMxN53l&KgP8SFsYMs`$qIaX@x-qfesHrYxp`#*PcW) zN?6xH2@c(3Mw53~cM^}GT2POdOM zyt~_oRW846#a?Ay@9ke<`+gk+R=mK&|&iyWL|en_``0Ba?t9| z9*B$^%&p*5aYP{I_g zCfYqH#3jV^N~{6P5Odn4c8P(3Uz-a}8>m`JIa1jjYK_9Tdi5jBe6oP2A&XPMNE;S#(K?E=il+hMEL_W%kXk2RxxIf;;j@;xoYG6U z2A+tx{L#|7I(!qm$9uD_?=`Ywt3V}`Fuu&z;L-h98pmwMxJtik#lZVu&RJB8&%oS# zfTZK`dc&EDzG;+LYb%@rAPqMuUPnVjx+fKBJFl*;X0zaNpF=B00dW>KPi@8Q>};UY zCM2BXH}dxSl~wz`{|h`+6coDCl!%9{cT#qjBA7+B?s}ZowB*(6K@(awTH5o4vJB08!=A}S~AKc1M z?ULa2O+YHmwM?(0!AWEJK=svpIs+*;(Y%z}Ipgyd2c%sJi zlcAoCO;;;NvVTp@OM80f0Kf{Va>pJFH0@V%#rw|Y|m-#FqaS;G$xG0N`eo?Uy6sR$~ip2 z<{x9`&VHUg(bwGW4Bsz4&3QL$SWuMF`gK;nwU&0BSw7LM0HBPc&OoI3 z2K5TlZRlEMDaPq3m0t<|N-0(VjU9pdNqIuUwGOkh;&=Htt{E)qW$nedeZIE$zT$M% zE<*>kNJwOsiZ`;erqqPvCrg&zf$@&xbd^3U!MB2%{kNQ>eZe3O>&AMUW)+9N zs6e_Y>|&=9&CoDU8-+wNvYtFAt@v(u$S6}g@7>^_PSbuy{+k2(2sqsXx>tESKi?lt z6=m_(R(H@UR1Lg|3N3q7d{5g%BI1<&)N=iaqFYnAOlNGIhbV>E-_r)5DhY;7{Zza) zKg3;uImk5-X?1ql9XmY44HsQ~{M}1=mdk5aEUiZ#KVCZw1f4*eH=H8oiy-5>&)eaC zMmT2U*<6;(jq+c;?k=q`6MqYtV`0w$O>T6_#8+P85C|+uy91JniVCyWy;>5Fa{>)1 z@x5TTV<-?gz}XP&t4K;x(=L)HppbisgySeZ*~bpoLj?|kYf#=FOAXcNzDsv~!;T?+ zxT1S*z^+zrrr6Vh5|IPRukc|EQaCw1jmhS=0gt-qCSDQ&uc|SAGJg7-b^5?J8t;M_ zXK#gz_W0(%eM9uRUULU-G@oW>gUMuYJX^TyhepY+PmcjO3;sgYvGxdegLRggq#fMZrIXQ>38BdLNGU`lcQV`zgNW{$kub|_93O`1FqK<2UH7^R+65( zch4NmqeA5tZXA9KK)K6du)4o6J12m+o$I# z^4Qtl)kE9ry?6507!*6My{g0vY~?w5Vt1-UpidR)Iy&r9k5%?#u~+d%?{sci^xHQD zZNAs3HD_!2?u1dQ4r*cV95fQ%vLuIQ#rWF~S9zXjhOH?o|GhAc-aeuJSgu|zQQvic ze`fclP;>gDD!-7&)lmzi71_buoKPzBF+Pr}TuEMsnOuPF1auiroc2sqGBHJB{0 zwa_i9juv{I>i!bYUu|@GbMt*{-<3N$Kz`}d@pGCRLq%?wR(NIdUQx>3A?@KqO>%A zR3jHAG$JBC+ilUB(Q<5PDBzRsPbvAmRU~&EETZE2mFIcyHB0CMArM=q(G4_M z_#j~y7dFkIm%a~p-!N8g^6cux`k4C#$Z2Wgmo4NNS816Nqko3fQMW~Xu&{U;w$uV> z_zFMPy83KyP8rM+|7>TqV6?jv0m<~B0YBXyvuEWW&bB;9@Rr7p`I6QneE(@pj=gP{ z)1=zO{9UO36N7vQWZEYth$mP{Ma&mO-XxDam5R8y!{y|mj;i~VR#9$(E2p)&`vVSj zk1b#|=}G;nH{NaSvoDEj&j?LTf`n-t&Wkh$KZUm3`oVU#eUZ4o(}n>PBfH z7NeEw9gC0?S!CFviTqTdZnFk$X+8Pb?*mZ$?neCg%{DARjs?;3b71TzR*1{fzJ}vd zMtL1FOkR$d3GC|zzwM`_L~zSU4&^o|S07%lUbh%hc|czqIFr+p&4+O15eQ1NQo2+I zVjnbSyL_qJ$wU}iD5i2auYz)y{1BoSsT`dAjFv{FGTTLOi8ARfo8$OiNiQs{8lO8f zUEhrQ$inM$Q2Z@h8JuVM?jw6c0a0_^5gM60tbLlBcNfXCg`zhui>V@7ZfFOMq}078 z=1L^ou8ZwBDkkfhb*||?Nx{sU$4w^&tm3wHtifNV=;z!iNhvZLRoChZE}gdflwt%n zn(8}yAWGkcP0(o-tM!TZukuu6RyRzc=3Q@W`6yr_m);v@(gk81+^w~)np+HLjhT0> zZ0ERg&!nFxW@nTJV!F4Hb~He6sIZiAed7&1QuZv{@KAthiVuOkFVXxsT;o(V9Hqax zZFuNo0`XH^j?miL>aj99il3Hl zaTYp5L-AXt9RSRIWepl#e!hlaNTzsbiW_&(KjQVg$cc7O&}oWg&f6{XkhNvCZq@b$vajH`7oIzdbsYGE*&*<7tZF7(L$dSi?ZGJaC*1zR%(V1sC(2Ob zG_>VktU$cIyu1Vw@;oQrmq#%CVe3|_*CKA@fiYu}(C@^BMBy-DMRVKch(eSq^^Q^9 zyDr6hpuZr7gcv}{W60Bo=wkBsuai^7eG_-TuYw1GMPv zZ3>^>{UnsjilDhXmCGE$zXv*w16YaqYeU7A_wXR@w>Mc(LuTgs4$KW*Z z*Fhy-vn^_6mAIO+mnW1ojKL&l6}wav#A$#DGBMs_(N-Y(g@({CN^O$P$yD*!Kxd~lGx3s~#s_PP^c#?9(82UA_X(lItN$0@cG?9G^ zO?X*U$QOG4nZ!4QIQdW~DTjk2*LnMgScclXHD;4RGbXIb_~c5!EN_yWg~9v2Qp0>Y zEG~teQu=e6@i5RGD0uP0P{&prrVk{%R<}Sw_1*eLVrruXK=vQBJ*h&TF=0b8e&ohS z2H#yy2^ut`?Rs!$L%e$BlValH3_WY@QUTAejybg&_4nC5fqqG`TA+K~pwm++dO0A2 zA@~Fe_Rk+Q&wU|+-bi;$I~G?*55S>pngZo^LXU|=G5kp6N;%~vCnQ_TG+V6YrY%@@h%18=%34O8btGG}Hqf*e!yT)A}Uow{mb-QB{~bD=Cd z#qz}xpIC=^DfDwIb?gQ)o&pqR?~LMJ@N^k?Q;^}d#Z2mS>^b6 z-Tj;098s{jot5uWsvM8yZ`>`m@U;iukYKbJF%dqSZgFKVxH%NlOm9?SOQN3{fKAZ7 zxgTAIL%S|gp%n~rEM$uHieSH+bEXmdt{!)jm%iU>u8I_s@XH8hQm}TBF)ZOHO6|KM z_DVj4*wVwg1}6?j-F?VgEjeBD0QfDnZ8Lx4?#4Q2O4o7Z1jWVNA8g5&`;l54<%;ZT z<^e{nXr`A{(KD?p*Vf@&jHrlrrti}hoyJwRDk=L)hwx|a!>dY`qm!*fwu=%PT+LTk zb{Uf=!t8!U1pc|A)iF5tOPqjv=SE3v>+zdO5;oH>9#_j83JrGkj#zF!z{y07uBnfv zTBf?(aJ2ok$F*D?q_jCwy?VfOY<#tY$s^uR=#G#fawHJ(tO{ zWTEqf7E?W?|emFH*8^!jmCwWwH4MqU>O zp%PKx(rw*030J$%t4rFQRrh(`9ddlCYbm)>)pl$!y2~)L;|ui$E~68`Bw##t=Yl2W zwNcem67J44-b%a8R|KyOllGZq9wsCaBn%C=`b}ggabX9N1-;760zIXHbb+cpY#r!Q zQ|fX(xH6fxC!$?1STL!V^N2_@N5dzfl5oH7^J058d%-TN+a(^=+Jl5MXhlRKsyhlq znPWci$`Z+JT^J7~Y5ur7#!sH5MKx^MFDrSXyX?JKYn7{6S0*F(xxk)VzOA!)=6I=L z(n`&fxC+7J@Oz6UFgx0u8FlP%On;1AXy#(w0sPc`8-2%jQoN?nQQCD3Qra+20PdW& zPWrIK+WONx9xz~|0+y_??C4k6kl!jw=TlcOz+a^d$!&^j|5zF|Vx-h`wHiJeti%cu z9GoApO=bzz2V&{`*LqbBdkz_kMKSj`_KPeif9!7%2G*fd)&^%e&fEk2jUQI;kxee;DJu9_dPLZ+Clfcc> zY0;n}mm+f1A&lG7nEE)Fa42^4qY-@%k=)iCac4U#QOhpSUY_B>vYy;m_qJ{uxGf%g zlo4WL>OYe5v7d8F{0>IGRWI~<+%`QGjMTX?w!;2c#DA`29q4GxwHbs3D3!MbZ1b&@ zI+uq6F9=KG7lRjEKk3))ziBLu%=)mK#9e!o^EKQ{j!cX4i}+7aWS z*=B<`YHN{VO_``#hvp5OdjlHe!CZa5{1o}p?$ABkO-`_4-dl&DL#ytW<@+t=0QO?F zV)!HKkjBeF9rSXw`Gc<5_E&sVe6{NX^?9Rk!+80lsGgBK_F|c=aZ7ObY!q}+*%lf1 zZIiinc|!-zDWQ80zx-m@PIjQ^^ma$WbMhoY+Afxy$V6EMYQoVHXUnYgt4!uCCfPcR zeO|V4ZE;KmszBx?RXOT1Qae;Ca_(S7{2vSjn^H~(l!x;qdP>MuhGj0cE=qI7(&hHI zM<48A`SN?&>H4qtHA0L9dFHcy<&U45F<9kvmiowDdG5|lmspy0HBQAQmRV8}k{ja> zzrDO}&mY+^s0&s;j}0IF!Z@nEpv28Kl9tIY6G%JX;t&yh_a=d;i5+8E_A>j7Y^pGF z$qH^r{;vncF|?PL`Z0+e&&+;VQ*YWy>Hc~5<=wIO*zQc5w*cLjT}m^6a+u7Iw;$yb zXM48`jO$`7${GerCiR}o8Za$Ve~cpg73LU!xFv&c1*S2=bWMZA4L~wJ-Ki;iCEE0D zh3i>sl^+fxGeP-*qg%QCM9Fi&rZnH$Xgm^i9L_xh!|Ie0O}9=Ti*X~=2w+!S#8o)p zm~OFraXhnMPWGd5pz!YICiy0c=&E_Ka`CsMjIq(J1`Wt0t5VbM?v9#NZ!aB3>$Cgr zzq?~gS0paWOM73h@x;y-15~F|wS9RnnK!RAm6QvgxLoq&E-bG1ue9R=2W&ne>F|ti zvO+6=6j;33VR*(1P(wAiiqOE{DKxU&+$8My{vqe`K;imZj}VyKhV?n=qombo^e+8^1Skbu^Pt_XzXPlmTK2 zSJmcByD-iwUaVLU6fackyXb5|xRiHiJqD@0$T%Y2Z&AgaY+zn#Gh^1U-i%;Pk-XSb z$H({zGjRX#P)c7e4GcmL)33x+#wEkO5>7Uv+EVqHJO%PS8C$PC_C4KA_FELh_dVy; zRT5SvOWNvS(zUHuG92Zh)4hQ!_KzV}O%3mG6Jr8ZSMu~yuEWj0yyq|~I%a|Ej+O^H^^M7+ z{47nQ%6u{#tJq)36bF>eFHaq;v+xynIV^M|ot`1o?H71#)rlOi?(@N)pA)DEj)G!m zd$&rzkK2sIG3Y7pl^tD|(hNS7(@K@C_hM6y6jeoaszY3dc5uQ#9J}0JC;@u1=as;= zLc>05TL1r{ZcWb+<8EvMJ^3{i_m?>MQ%Vb72?RQ%0?Vp5jFb;5H{2t$lc}FuRbiAUKog)bmlQv0TkU_xX%h zktRV)6++r(t?aPqrHw}nSN^J&U$5O_KFz{J>8NV$0S{G*KK&~SH3_>FF&6LMKi5P% z5iA-pr>QnOw+!JMOH*wUp8f6|zmdbSERh*p^(%F1?P(5b3S7fGuo2a%#YkAF`z>ao zvtPMQ&+)mh=Kl37 zEc|y)d!%G!Hh#@TD#N@&4DMvJo4GIOHcA~0MDrx#BVs*;+bqbybLTUyoK`ul*rxl5 zUiQIa-Do40xAu7KTRz$pbvfOf&Q9TFKM}t9T8Jm|nOn|^r_D<1GV&2JFj0Pm?~q76 zy)rp_`=KvVy?k18_?VWb;v(1Spz0?8XBqu^gxz;GbMW;>Xnd;pL)r7Ysd4$YZ-BVS z+D5Wt|C-UdV0yGMNg;g!jz9AJ+<~s0cjlH)d7N9Q(ao#LfaK2w1)kRAP@d(5$;FXm zvTr)%2)`*|y<}j}1`_2IxBLYLJ$e=^NBG?z)4PDub}4yKO@5)(BA!BZ{+*cVK`SjS ztqT0*OJf#ZUL|fPON;V>kLAgo3JT}KUwpUDf{01%%*Nv(o7sx8JZE~OU_9~VZgXWiY^@8&MPer22N zYn^S&b4=ftp52vRJm+7%q;o*5v+HF_T~1K{yUi@H{;|hqpuB ze4+00SK@cw6|}eAY;*$z7r&NWX&N}E-n|{K8Rq{g9sYfhWAbFh`|_Dns)cvc@WpqX za;q}OS^lz%l0k=tS_SccDjGouF|w(i$`@RS<2U463GM_-PnvX%FF8}ikqDY(+52ij zz8UF=ieE@@4Je1vl!uXz2=(Boq<{T{QLnSAA;{Cc^Htz$e*63_{h{>hUwQ+N!Se4% z%r9-KhmP(&9`Y>qQ6%kV#j2Q4)$YvaEzh*RXqINUTJPBB*1rzL?av*YCwDAzai;QH zScA*d?Ri3GW^Q!xDm44fT&3O9?6R7Q{Z&Hu`O;+;ls#&xAk*&(?so}_qaz4Y5=QY& zq75>usUK!sMH`u|u7Vt6X0+bjKf)G--qul=`6atUwJh0HW=eM!e@fdQTZX5!l3HXE z!B;JhO7c3$A={BxSZ+5MM^@lxu9fu(b@ccC-KL{-ZWh;*Ct0rLHR{Wd@<0* zxj|LlaRl~&xGk=lGFq_k>-x;9s$;oO=U)-N(;drRDYPIbfCD8ajkzySq6FT? z{BNLSf$BEx$;oZqok`|!9QfoxAPzkQSA75}fky9z|LZbT`ygGPzIa`dwB2#?S7!VB z^2CLJIui~KZy9$%(r^N9DYUh%Ts<#AYufemklKA#|DMCDt=~D9g%4YCs;gKIG@82k zawh3{cK-=3vD^t0W|;YeKjSkBTC-V+o_2|K8#vGSyeh9djpU|#l=)f?6}CCaOzhjG zRh#yzbDGzxf1No;r!}RivQFc36w#c<+3Z6Z%g~X}^QLKSyoO-%RW_?k+SlGgEaW@%?kKp9&g% zG6rS;I3NvyZxxQfrfLF}=4*5^_kVo|!~@9`A`9{U%vQKO1nczBWD$FRIm&c88tGVN zyf2|n)HKleBtX`f^D{1aLQINQ>yv@C@#{M{L(=#Q-%PI`iP6#4jKHH3<3(vnd#inF z8a1lLo0wIfFs-E=V*W>BtiKQW*}c*D}7#FC6{fQMF00mHjDZUvb*%d zbg=zvAJSMu4PPp=RK$F>9MjO4v0(^~B#HU-kx0t;%b|N+e`~i3m&d*BM_K=$;evwx zryiaUFJ3T<76pn)EQh#JDK47Tq)M2|eK9>JC1?qIlJfjthyHJy{r~nW4IC77s{~ZK zHpPEVMlJ=K3ga6xA~FhEtkb83R86yyU{A{b{Qv**l_Ao#p>pBxyY_#(NdN1<#pOSN z(#fPJ7L6X?Y|1(hhza7nY0^@}4Q+k!`|L=j2DS+0D zSLmnZEz6iBmv4oAy}bh~-sQFlU0q!-xw!|_XC&RpvZP7!U)%X5tsZnM+aNw1XhUFNSN9*HChso+&diHfMZOJiaBvM}uc~hAKQavx z*)$vVrg9w9{WeKwy#yvJKN_}mD!$*7#4lPmiD}eXZStk5@6aDXe)Z=fi1YE$ zb#rSpZO0eVeF+(643kk?(O^P<7_N7HsR`7-x7`1BHy|^vZkwE@yL`=R^A?Qs;^%MWS~xXF zL`EL6P_C@Cm|^+jatn?l?pT#2|5SfIC6%X3qeJ^tni}p!VSZkoMMLRc~7tupo^nAs`5X zbR*rR(%l_OOG#{y*fb^r(hbr`w=_t%G@DksyEgT$ee}Nf-21%W_nmXz$3FzY&1U`9 zT64}Z#vBt?)&iS`=#SS7`~80InKbk2TGXR*T_0vVJ~z!bk9W0y+~~Cf#q$2;$-xq+ zk7b6l6cb^<;)(wZSobF`{mh^CIYUWJ>!9U;(GY|F05zxrJN{C!Ocs0xw9x(#(_51-oy5rUzf5yVEX#$bTl@u6X4 z?9yfHmuq`Zh$NG)Z@)usgKL2=Nncu`SJOG6g6+?OB+2)RXnY(e>#FN<3{I(iP* zC=#~8_}lOv_QsJ}?(uVw%tnw4{iLDE2)}jT^+_Sr>M3GFG8p-Rk>2ttqVLy-LpP`GuvZ^sUeW+#nJtYspp6*e1Lrpy?j;nZmL3l*gg zuYh~DeDXb;{ut1p06ad~zS#)a5=H!IaR@6kWPfx%YHJ1*a6EA*QlSr)dY9@?L|?AM znANisAn{;^Dlkm@m9o|Of=sCHpg(~V*k4$#kRAeOqKJOZ|0U`D3l|L~I})eY673Vu zIAR$^#VDbjx(gS(Xs|ABhtG8<&f?5un z*qhyXxi_i-dd|Ort?z!&SJf9=bGepX70swV8zBgJA=J{=Y8x&aF&hE4p9Z&luco%) z8cHS@1}Xo*bMslQQGLy@F*7hziaeQ1c|J+X^MU~k^GlxcAo}CP${C3px6p&=Q5QV` zrn1M~h-;9$ax@A38@sY8m*zV|%~-C>S2AW~j6{EAW~I-jbn_c`J&Kiso+!%8bCJ}8 z!^S)ydR~VJvjUqd$)1zBV*8z@N|yjbaKSzvB1DX$2W*ESII@;-k;CulfZ}n8fb_tM zeWOlKUy<-_n_B`9HcJM4W1@KhNYFduPt=w4m%4v&K5u=5V4}0^fFf@(M9AKG%w}m= znd>HIc_B%&mzP($+^;;=90>>RvGDQwoyA2whiO(Ej)ZaMMQX9<-^eUd$*}YJ*=xus z$ltsM5j;^3SrjOZKz-o-f}BTMzYxX9=Th-qaK4>Am~|MzH6W~yhC}+3X!GcBSXpPw zuFug%Dj(Rjh4972yOz2>-diTcVPUw{o2BxJ5RG4t(O5j-rLpIhdG+yRUQ(CU_wk7m zWx<|bU;Ojc{1-Ot4J7S961XtDPR&4%YW&s7BjmHajv!8_#g{8zL0h76_H3n{1#awc zSiy62FKaNcKB26Db>io8pMDaKK?j8NAjfK~C|Sfa7PJv#Z{wXdCl-PxU`7}w$4 zf)kLbmMPaS_$w)yeV8g?TvW%Ygm$N)KQ0Un3O(ra`k$ohZ)`(ELS=$|YWbP&y|p9x05 z_d7{216vzM-dx?X*Xk!3oG(T&&W@*0vo@w2l*>b^QgRzlX75@aAlQW8x5cYQaS#Yj zl*38>l-d8~TwMGe;w`h|oTgE#XrUr*v1z9s#Rtk_!ot04o{OD$;2pL>pgKBZuGL2( zs)+rr6w~tNV6JF*uTd^rX+;(!A7&t~E}qQAbOC^dmXlKr*kv*grvpX-M8AN|gpxl% zgLzbBkT5u{B%O4YTT=*>Ri7;n4rTV7{nLA`iD-BDJsMOMmtPZwlsDM*HV-c^^Hj|6 zsv4})uC@#e&Kz@9GDTtni|^!73*dOtgWT1DRo1HDXfSHJ<?&3Eh8-rebq=8BhxV7+&~k97f?*bw z!*>Y@mqxJFtw(Y`m%)NbDCG6@;>$K=&6|9$@bU4V*8mMPH;LGlqWXBRaXeD+AGyoC zAu?Rh=b+CN<9NUDO%UvVDPRBpHuwAyvS_@!|1D#qYkrPqs=J6hYA_ujAYf2O>FR*Q z@&2UELQJ!iv#`b~el0nM_QM~5&^Gzun&wp%&A?SBEuO~|U)vMUvL;*uY zD(&bfWDd4RAM3e<)YGTHsIQUn)2B}`ZNeAT;O@{08*kZfC5ZDgCZMZh1q3+Q$6A;; zI9;{D5KvC^d`|sGx$gsv zu-TrQG&QeM#7#_6xpIAdZ)6*V$(Q0Vfznf8<(p+#*ytT*xb)yxserQF zcmCRho&6PAEb>1<9n5u8{RxG`2}RVRLj$Xc^O~~yg!)cDrr8i~c*{BOW@OO7N~o2< zbW~^dckhpfHp=vxcJ9|pgxoBf6fp_9) z^Q0!J(t5B4I?O9lr4zH|>6ui&=|NFz7n+fo-9;F4#Amuk0e;%cFBrXvN13PaQ@Klz z(YEn%ZIFlnJ(K?NF~CM*c|DUnV0Ipjw60aU_V+Y^KAPUug~`xG(>8gFZ=x zp1UHZf(m$W%T87Z4GYn=vHa~604!*#0_LfCCq;kLAz*V@cN6w`l*+%8BJ~ zzY0##|&bna?Ccpw?_j{vuS zAN}qiK%EV-82ox>fhN7|9-Hz6n)#0ui29^ z|MoNZ&!rV#!;bYW8cIRq`uA)9!;f}V{Q)^o^Y6v`habu5HlcWF=BRv*%x?adMCP9@ z65!ax*~}a|T3A<)+++ zseVRzmHFlVb>T`MZ!R5SwL_7#a`iFar6V==BGU1}uhJfr}`$F6g zMd5W3$TaR+Q49WkM(K|Wb&*xPSbLT?|2N_1cY)fu8`XHn<{!~Re#n@%Z$CaP)Anm! zHF$t}`+-8FvS=J_Pt3LBw-%eJ%8$XMJU;_3R}o8^$b?MSqAexWp6gUcM*p8j{C{r6 z|L?U|$wvmO%`&z}LgrUW`N*V+w$!3eFEk6jmR%-!vvs@vge??4jEO*Hfojpimyk(= zVW*>O@1K!qZEUHq`Vd-r!gKElB;;9^VxUD11$Auw5uN+x5$68S5A1PIn6^`kMn*Kw zE)LlH8XiA>y!Z{f7BH@u1-oxGs;;ljB>_7nT^=R#}^^PXL9iM|o9>H(b|sXVw(%3WUES`MNE3wE!zR z18x|Jl>ms5v9ii3OVkENbly=wV-@F)n8!^;O?|K)?{E%3x^K2M2>~D$8@XU2Gh}_l zbwkYam^eH-nhpu+YN*z&i1Q$}nj8gtNvr8VJJU(N$?u=7lO%Pqh`0XWtyTt%$Y*{4 zne`Mt|NO)u444UbLr+9>s3eR@r+J=zn@W?g)=T!>wkF}-Ln#uOy!TW_GqtjME4<&S0|Re4t{pg_Gx5#1EMR7HyKM_2 zwBf@$JB=|ykXlZkD=!ieIFYAn`$tbBL}3FKN0Nd9GU7DrPF`@MUe_JcS0(~v9l&5u z`8I{9EnN8WkN^RIRb5d_hqy*xU%CZIH(T|iY2Y$gAW?kOplQ+OVCMQqp*|5G8B-cx z>D|I2B_4yEAAqhqftRT1>k$QG_PVgRtvrU4AA)0V@t!2L0aFngkX7{WzheSZNL*`z z?|mZKHM6WP)uy3|Od9u-i(-lsXYt$)6*&$B5Zr|vuo4nJoo`Vh#=-AN7LnKX-fe!P zL{XrSe9^U@AFmSq8B-CtV&#WV!8jNwOlNqcKW&PKa(LW!{S=N^< zXR&U|VX%kunaH#xhoeCKi;0QJfe+{wX8D+_?N8mM<~`;Bv`TCMK1h#_fCA`K*?_&n zI$%*absH0v%u^8xf5i6Y8V0@>lesHe?h79=fsAN4e~87h<&C8|y!0H@9FpFr&r0g8 zw#N$%>3uHtvh@?_vG0go#M01bzZx1ngw;Uuf+?=EIxg4V0`er*s>uIoy2paVBl>?F zuNbC~X$cQCOP)(2pjPtyJ7S5;BL{g3NrE%F&=#C=c^#ct-P>4L;R4R0F%>r2ohd$7 zY@~;pW8Gx~qDumT7*afWXw~Uw1uX?Nz*xNx~m?gh!Z}PNThp z5mHZ`w0F<8iiE%7R#h7oZp4?{>kIp&Of$c-!TyY}g@!7>X5?cI`$rqz=;0T9QK`Nr zxh9wCe<_a^U&BB_MTtA$l(XE~B=jp~2l%ZXU}PoS_u66>>kb5UszR~~7_NtXi>l_l z$8Y5#DJhEzXng@N>k1o?fie_ICk^J07u4otlF4}*gK17%s#7Z0dY zQ;VQ=9nd<1v=XlrI`zsDuiz_tXFf%jE|Mw=#bp zrj^y{QgdwGGK&IW$;;hQlV)W#TNjt;xh=3iJD-2%^=ocLCzBt2Hco|cPL&h%-TJEelzrc`O zjlK3VZ$0oz+Moj+dLRzF{|JideN|MqA1{1$n(lr)N*F4ZOc=II+7!JbmH!mb(icNR zL#^ZE-hG^-y55|o6v|hy^J!&?GQVc|G@L%wEotW| z4^(umbKPiCzq6nJs(}9MQ@?P$ocp@Uu5_(Yz5Nr|$V=iT7pHvkTMXO@vE;iv?)&Em zlB%obRpog(oubEp^*vFq9Q7(@1mBG!yXIu?XUf5mU^bGIV7An)c}%zL-5%WA23i3a z?})xi!R*As#*RQRwqQa{hZZKrOEL6S(EORazGI= zc%uLS#We*34Y+sjnxSfoP-`2-#nszxPS9t9hpV+*#uOeN{=9GJnI$-16kS~DFmwt9 zN4TNq7EhM_)sIKkjmx`5wB=WM;_62N}KA3i~o2TU*t*SQa=)iH>>@ykGS zA`5`?q+oN{d1r}@ zPk#05`GDLIKMVfa?V4Wk!p#7?-|@_P>_$1zyvNsAJQBJ*9Lp+%wOoM#@0$tBHTkol z!uzRZ+wbU;UDpevKt9R5FtMOC46;Q8AEiQs>ctJ$Nay`eU1$RechgGK50tpQVU4rp z0Rj9)3YH{&NW>I;jv6|3odWchwO-_pq)i{FLv4>Z#ya#UoS~aX0;vP2{td6f|4LX; z;Y2P-S7MJNFCj+3mlB7?d@j(8I7`d3xX&LvQG`unqBs2)#OC@!IO*rpn~mHv z$yl7FTLS-7^6>jLl`JsgH=d-n+J}PCZEi&CSySux1f#2na5iB+Rw-V)mo&N+OAhaD z6+P63G$^rcy$pI9DCMzH9;c0mx%z7h!zVVJ#Z$21iIl5(Z^KB?{_8&Z-#!KW3U`lo zOZ>mH?Z0;yS}>YFVzA?)!p&=j5<#JYP-eKM{e8WX(SEhw z$#OmULOWZ@&JhQ`4hR^lN_JLK%5e}gs&9kfLbX%JHK?2Ir&oxe!uo$kGO7d4Y*4qq zC@rol*=vZ$b9^Dq&&74HTI8Vj;5cpCb7uyDsG4gwW#=m;y8o##RZ&608Jfha(#F3- z9u*lm;%~owIBo~IMK0fQSoz%Y82)n5v($W`aj1CAnzOFMNyBp!1HC5fGnAe;B1J%&5u51T53_ItyxMZZ^S1X&FDF13J1w0>#Ec;k`xPv=@o4P6 z(k0l~ZtI{o%N4l~A-Y0BLh2V(W+F`-E4L=7DkSB1or9j#R8+I|f+6Rax73G$_@TNm zx;v_6<`!aLVAatXtJMvIlkFJ=Vw}|T&9Z@{ZHM}!kja;>J~eg(LKRKkJ|OUOHlVEH4qz)=u=VKta#{ueZ-~H zQ_+a_0=5JQLzre97d@A=HlnpwKIR}(^24&lOrn5uk|?-l=SR*DyGT2%g(ceN=8TQJ z_5`Yo*z0!lF(;jDTy($Z8@d7kO@6PnYr?EC^eC$TXNK&K07RJy6h_6vTc4!c-&+U{ zH&w2rP*_g#P;N!*+dIKkBvM(hPotK)xZM7|k|@G>-&qV~WxIavtT2Oixu_=JZ;d#G zKno5NEq;*`wJfLu>TZYjG3ZmNKu^x3=UWls(NtoES4LX4SL#$PHl0i4MIfYgKA)iv z@ND!IML(>5&y1EDx4CIQW5V28Zy~1 z)2@#E^lmH$#)UVXhjX z$P^nu@{nlfLP5_|pkL)w`aQpKG2G80892mBI+<6o4h1+&_cRX3tVic>-nq^7(8mP-B({&mpAyh>b1#)#5x(_|zE4<8qIp2bt|-TU|WI8?)>UT65Z8oA-w3Gwrp z0JZ6?nqvz?AUlZWIaHa;H58MhZDH+x2a$AhZ#+qH z%}%1umUed?ji?Lxc)U-aI`HnJ5MTFmX6!^!?ZO>i1>_6lo;g3FX1p10NCgd<5(hQ( z(Z#Kvu51jcBd@oyBGOAmcJE3d#^Fa2_OD02kkKf<(1>(SWA+r4VG{|>&gx;tuIvm6 zq*{WU5Z6yfjjuGwkpP#Mzyak>3E!%U99J>^6}$RjSLUg z^U&j710$&JJjgY$O-)p=K^YA zu~<`JT9?UfGj^B}YPmKvXTH#W4-*^vXhPaBhDDbN44El)UQq&?fQVrw8x|mXh^{7m z^^6`;x{#HX6>q9r@;vA$)*%djv>^)`NM%3@M8m+4BR)LjEZYEo5kf=vfV0E3U%-;s z%JVm>s{+6y%y*>@#{Q72beSlosLU6m-=M|`kuC~9e;&s=Gq$umq2(-nA**m5Ir)b4 z`gCDuId=5x6ZD1w(ahu0nS7}zX2wUMWH|Vstv}@uJ>NW+Z4L2qvmqk zO+F=JyO^~FppDjnn}J*o|1kE{Z2?fgbFBF4&d1eAZ6!XJo23dl0o` z)d2qa$&M-f?urlS(%kPCB1kfvcAa9S<3dQs(o&uY1IhI8mv+RZd;|-&jH`YDj6v^+ zxHJN^&DlO(6jYHxSe?%I15r`xWPFu(>sOmieoNUAdsUJ>%!LJZixgkYOPgV^glE2I zR(p^l$dbB!8^*-UcTF4h5NKxzr4-`pFTaGTUxG88;EPKNO;xK zvJ7#SQR>5G?(e?KEG38KZI|_pe5k*5f%B@ipw#;0lkH71?w)6amu9^|szWtOR-o~j z)%z=r($!?Rz*tA)RwOT^CG(ltUcIOXFSAEf;EhnIEJN8H5O;tCRz_CVwUEaB&`Ryy zv(*?sgka}r)HmEe2C*M)_J0^d768-ZV$P^V&NF(OU1Ya7@6HWSg{A#jV)VJYYQURp<_1D_HvRrcBhK%f<(U)hgh-l%#tJl>gnJ zIbdm&N4nNRe|SJ0q-{21*1HL4?W(v8%E-(3OJ*lb%6Aw${tZ0MGlhkRzaYAK@qztb z*Mq6qn2js>FZQ&7F~)osETW>KPD&9W_;{qcX0=L!-WsB3<{pJrBw|p81q(6Os(K;0 zZKzLhui=&Cr>&~un_IHetkMMnJ92NCH*t;1W@ZESmUSw3KCqSwtT{hPp@tg_t^|v^ zG0Z-Ex%w)8n$H=^)@-DEATJ!xG~h)@U2-03&O?-1dGd0ZIO>@0T?aqoWF^DS3Akl1 z@s>}2)!Gb+P1z~^m4#H3Qou>e@GH^;781&PjrmzmiZBpbx&;^?qmSRfsYQrcB?4aa z(~D1RCC~26)^`-xJbvsy#fiP7Z8DJjsw!aER?)oTV#fyoI@5dJA{9QKFjfAF>gmq8 z3<{dX*Y{u70t=3-{PlaJw~j&P>&cloykgdIxz~}B;dz1(b{8HDQJ(d%)eZ^bts7dV zxN9P?Mc@;YM6em9EjIb9WZUIM!lBcvc=5z9oACbq6%01uig5hojqp#T5LILh7j(vf=W^XOE#*I8Hxb}Z1pv}$A z`(VB|={V@p0D$RAetwbGq&61vk_>`JoymB}Cf(8c`A?BJ>`5yBbu4p#i8GnZ0~`dx z+cy@4ze-_c9v~!33A{b1a@U z`Tl%s^M#&^mw9?Qjpa;cS;ddH5{Ll)ywRbP~UF*>2UzwvC8LWi`letG&J(7};e{*}K6J}Y(m#`M~{``1L z{rkgJV<}Ybh=k9sTMzu`I{KZdY54C<5?~*IRO|jkZYZWN5XYkX;6dxiTyBfuFOW@ruk2R#n!)+yCfX^wC3dkq7=6O6=b&t0CTtpGx+d zZr)jOAI3gb!DWy|5)*kgd|ye0wJX5F*xXoLtaq;3IR?;$Ks8JbQi7KxEQbNkmrJRB zp}%QAwsZb#@@9ud)+peozsUc92h39DY3$`GuoCz62@&P~y(`6G1QYkFBtqyYK7n8; zSHRSElANXJB1AH_AjOxuz}P`!u_A?lnq>Lw2Bwn}j=l^bR2Vc!gJ=yx4>T))-D#( zC2};lac3Vsa{Os#NtNOw+OxG72vWVyyrK|-%ec`UA8z^3j0TyJH{7Hm)t{sS$=z~m4B)Ex{fy1GI!`uXrpV|u@>VZJPNp3uji5(9oRD>N0gJRER)kLymljA; zXE~A zrkk&itPO$WP?;A3pFlEIYLV60{NS|26NnaT2rxMJf-G`BD&pOT6M3DAB*iEwppQ{s zDzrgTDuj%cS}K@r9Y^DfX;6j!p`e_5ll@M=S9r$Got79&_aJF@vDudobx zy1xo}np6jGen8I4tFGz++QH-BDw{i~&t2QzLKxAl)$(%R=-)N062GRj)@`g1cHD9v z`V2d>m@hx%j{BNwqTRt-L&6bGkNmGlnaRF8Qv>a%so^eKCfYPF%6W!rHJVRm#@-#z zKTxE!W^1O&of>SyuKh_pyWiAjU3iR)@z=GOjCBF>ALZI1(3SjN6=XF0%mf2WWp6-6 zQjO{fs~wF{I1I$C&DX1#EF@YrYP>&&&4|CLNm=PMsH-efTILm1aZ^rFkw>=zcptnY zm}5J9xQfaJ28pksc=CXBe0ktn?{IxQIg-60*0g5r-O~VcOtkcsR>FHC68#q*CCqW zw4N%VXdFqlgCEMQh_-=M6DRCjDLRvNC6IO3v~%@8$v5FILQaQ&kL)b+^l|nx+|S`t(t6;Zr;3E zR`Hd6^4!(I9202=_tCSg_?gazng}gmD=jkDaoP!F|le{gM!!`tf5WL+@5NPmIT}S-cy(osO+n;uj|4aOs(O zudOR>bka-8ttXVe`HR$21>;1-Co?7F2b(3h+C|=!z8xEE_0fjslZRG2b8YMP3{!%e z9p|~d!mDlE7M?xjzd zoho3_pKf&Vu;z2WD~$PiQgXL82U%ckxm|J*kqFQVr|79 zzSWl7(-n{BhH+BdH?}=DT<5Jy1NEnj?L{ms$K2eeEX^79OV@n!r`&Za^$+rG&7a!n z)Tg;P=qavi^_@Ry%uKk`S;T>ECjE`WJPZv_Vkk{3$Hhi#bW`Yj&lZ+IbD-7H!)rq! z9g;1V#3V7)IXNK7N=?iCozL@xfNiQnzXxl!w$4y-*r)CIscr+U>R3B@^o@<`p|4W3 zYo1aW?#atM^P$(9F>?i`sw)~B&Pi{>#09cdzZy&ke?vJkpJQw6Xef4`yz8T}TsUp& znkn|=iO^^tWNzo{WQQ35*;;+|WWuowJB?y(+`OP3hdeAw-XS6@Ym-l$hn_8`V!HUTp4APy$e}oGlSj2$^Fl>Jzp%Zn(IE=x#Ox zh(=duXP8A_e4Jygi@=Q`@|jrt5=1 zvth+QC_raW!bqO>0KeOIKJkqnkCfcY!$7yBP$C{sFB10ikABfCt1Q@HnIi0CE4PJF zL=Tf9BpivZdZsoPM9T;6eJ{f6Sqx6=N8JjJ+74k(01HX@5PG@W^8An9lGW7s!>uX( ze&Mo$v#F<5qkBgaS7(;#)oL$5lUm}ko)atv z+{t=N9_%=#yS3PUU)sYfYIfRacoRx|$Rin0bolfRjs;K<6^kf@oC7AE-|o$A!fh%_ z;9FU$X;Fo8E^fprI~m)4m@naV~U!S+yio`%<}G*C(Yv z;iMqS-8#a3cI1os<&158^6|!ahk!sk1j{45HxP3tc1{B36GP;x)YTaA_$ z9=GV4X?JOuADVqtxOa3^lI%uJLrKY%R~_QGs*<+4lXUUkB7JC%LhsNr6M9~jxQ!|@ z@Q{JwyT_GTGIxfynfFQ(A1zDoB^SEot}P*saP3|@UK$btCAK1$-cBK@Nq(BCJF29i zQ!6=t7=v`^ zgR)s6biEzVmQ2-jk7^?wz|Sf!XDqF*df=1l$pV+HXv5l{1&yBw^0y*-=Z=A7qQd)) zrMKmLW!W{+VOgMI?XleBZxS|*Z+c%nd`MVuGN761eVN~QQs$6g4`pj~Kj5_yO0o$r z$pLIPIjhvVbhP9Oc56utFI0AY-| zJ{)uXH0HUTm_oi-=`i_6?%EyG1R8ajKzrYS;}1OL&{8n*)M*AX?lD>43735ORHw0M z0ZTYJITV_fmLl1oC@|wPJg^=@Ch(kXBpp_*tO1gxpHB^YEscWWJiTu^%w8ya=b6t4 z4zPJdOi`+;s*ZU^CoU+*XQYS_UVRfgZa91_cIFO#yr=#)9)lecfQu=b)W9ewWQ3p! zK@Xfc%|Go(Gk!XiOQAecC7cf+=J5>6fe*c(SBafKa#GoF_e^#6)dK5E%XM?W8$CO0 zr%U`C;d?J{frkbf#Pjv5`n^;p3k~=~HRTx>#fu@ev(Jjxk<~_hsj-d|LhFjGhg^*saGma zd$MHQ8h1+mdSDjPB(3W8gFXWt11bEw?BmsXH%2*W6$zEQs3?qBGI)}>cu!UFGCpu; zV!o9jL^-3@^w>ecKtiSo#K*w=e464A5;s*lO&cTUd$M0U1&afJc6dEK50*XWhKg9* z4|n$Z(yrZIuKnIAWUOZ`YZ)@HPs;XHay{3t+MZ1>pjT92bhty@%`PJ(cBPD)a;tKA z9{L8un6m$tj!Q6A+Rw#7N)kWYjLksGaA^HHcUx;*p<$GdQkW?(*~hz!+4+a65jP}q zI3t3X2=}S#@VUZ-}! zTj#?4=;P095EkMa0m3|9l8?yiO{!OM`I8#(6`7BX@B*0*Fl>l=B zoqEhDepWG*PK+PwAfc6sH5L-5dd@Wd-Y_q}z!bHqrTcDcUnvzXtHl!IqfQ7jD!k@T ztZ!mEeBYtRTrnxf{*>jcS4x1PgZ+VXpC(ScKI4wwE_I1FYIIgk?7*z?o+{^8Bq#Rf z3JEc)lPu#kEN(grczvajSIkFy2%~pXKyAGqG?LIzANSa-M;|#y_2HqZZj(N2D^-VI zqo&~8r*6V{gdE&d_O9uxBf%OF!i3Y`NeiOlHt{R%zH{raO7`^q`Pgz4AG_zerg0YQ`0Ov{a(jKX z_WRnct^brfiQ77n29hgmJ6?F1V9|e}+b_g!z^@#JG&|xv#E`=8$XS23e4mN|cH+NV z=?gzxdt;0JB!z%3ICJD}@{7SoJHpNwP3$Pw-`^3?TY;W+|I^X$Kd(_y3hifV1Oq?R zdy?K(>K8%%xguzk0U1!Oi^)p#o((1AFiD>Z~MRFP-DZWI9M4Vg7jSi#PA8eX2FgsXvXwEG^g{T zMK=w;xgu&ifx$!bfwi;pD@DMK43^xZQAbR>k1Gjei6!4p4hG)Xq(zmmho$c&nYLE@ zT;Ev>xZ{DPHfncy`F7{_f}6Ed2g(qUSIBTyUs%hH5|R^-jS6(JOK!u90qDaG%9?U2 z&mV%evvpB*Mz|k6Cd(Q3LfRxKF#&~Y@#}+e+FM((o)0VTc`l@>OfyIu8R-VM-6i#q^=_1slvFn{LE^Z6X>f|y zr}^l1So-59Ev-B2`{6VWY?5KoQ{|o~4;A&a%_$Rt-WU^HzJ4dpywnAQ?N=|ak8YH^ z?cm8yt96)of zIkYM!iztBv@gP$ab07!b0B1?q6T`Rl@akM7xt_pnH~3)D{lcc6jEqU!6#TXwzT$KW zSo+E}qOToa#srJM$Mp@c?@z40UA1>KJ|}2!Vx9Ar!ReLBH*8hi5*3psU+=@l>w-}w z3X`vpjYj2`wS56_R&P-6PT)3CRe+!>@wCGJncI&h)B9v@7bDcT5PG@91?R=3A3EHV zds%32N#d`TE?MiP(fnCi(7r9rf$@jE(yQW!HR$ z;q|3hJVm8x-VFw*W*nU+5!%<3ooLZ!ms>l_%FU)8%N}=cuPGk& z@TPf~8{JKjca@l}k>))Cs{i% zlkwRnaRlYw4okmAX0gfdxJ!Tfyuu0#lDc)gRQThz+!{a8-i^1HIk;yLlUQ$IywSUZir z)V)=yQ{y%5L6v=>wq;_=^Wl~HUY#!YAm)N``Bb@%9{I^kJXicC>P0tJ+aoVtfwK5c z4;7m!8jZ3@iP0XJV=Vlq#p@C>7>S^&-H-II8p#n8q{>_@S3j zcSY8Q@iVFP&GXwUT#iu2QsOT}T@gXucROEv&PTP~{dSq_>*kfH=~-DROF}R*FZzNs zCjluJzuR3Zf&Hz^`gPlQk0kzH@KT}$${)w?6)&#umk=rlAsZP(x|WA~=9NPXhpG4X z4=@RxZ_iy>=CzM!Jw-CQqbECvo@SHstXq|8U&4Q6uKXOubOKTx~%nk1Kc9`C(|9(4o6q&s@*WOgIB%ZL&mRCe!P-#XI>D^_Ub z=w+|6+ADqAMDpA*anjEtSZ^d$CSJ#+2m|wA`I3o4%Zwctd9d&sh27!$s5U-C!?VsD zMa{qI?0~rSTFUM6I&Jb>#oDGV9GbdsYe!I%ow+1}ip{#x&x4xX{PksuJoCnsn=hT` z51$gimJnS>q~2Le$$YupJ(6c8dvNiIX|C3dqW(b1 zi&JrJC{r`aY_19@(kwYFr*emd_C?=02l%}dlFm_Klz#z*7^qctHIvNA%4uRlD{Rlg zFN~V&)#JY1I|pbj)6{1>wT?qzCXPjmJ-qV`*sI_LvJ-UaLD1S{C6B+k4dkfO?eleC zUpQAZ7y;1>8xjATFD-}1`%BF5_@|G8mv+rX42D|g|uXtx=A5SjzYuRA$e1Eo8fN6ZEd{Y^VH zYwm%d%W9yU+ULh-+#H6Mr1+E&yNP1Mi2ByUT8+H!=sxwL`oM6)x4OrhV+B^9AK8Kf zboBtsu&|J=MzB+ZUO9R6TqZCm=tC2$Cl3sJJxc|Xi^<%t39{J9_+bIJ35>{XiQf!b zxVUhV<0NgreREBrepg@SQ#}<`AtvD=l$0;W_ptyDlbOn`Ac-Hh0w38-Rqf=U!m!P* z$pq>aUk$RqGy^y5?{M<3zdG<(!#-XDy;!=DR}FVeJ^c3XuX4 z1l9c2S&qu@_^uOE8(w|&_?}ej#;`x832nMiETdh+B)QasK1T8mg1|m~f1>8j%)g0( z`X(tOwN4TeCs&?(_L@?;KGoHF#*e4m_WZeQp`u)Li>-u{HEDrq_ht>(tI6qct+mvUr6XRsQ{ET&c0Jr8otzb8UIp{CjsA+c) z&!%@vXdZEN^izB?<3(AM!B!u~DonEMOXWqqshT58Lcv7e$+=S0rk1Mwt@WN4ehT{? zI)=y1P8N{Q4wH9>pWY91q{H+NDRmt^_?}1TlxHYG=OyzbIyoGLf`R{%StI`i#)hovOTW+z+F?&WsPOaOTibB z+1{ubeo-2~BVG1%h9|UBHR@*lYI?gxc$n?x;8e59up48ij$-#>xSZ`uVLR3l*RcPt z{No?CTc0s>@0(>mWc{GRC~>Ifx-@1;`gNDT4J&+PXeK6CwaZ|Ub!1$;U(jVXLl`Z5 zXz_L?V_rfR<2zFcwMie*_mdi&K1O-B%nCmju$;dO4oM$f=;NiQ_%X z^tQA%fhcXGI|&JerHFP z$bMp1I&}WZP?iBg?D`nsYWLKyKh9$1c3VEMzA8NT{ibz&MKSD;ifx{<(5{#Yn(Df^ zN0>#gPSr)CNw~7QgASNL10LF2Q}k|A3FKD`A6+#v<;*n`SBVyHG3YcG-@Dpr9JdN5 z*avFXtjqH|R-+sYI?!X-qq~@D)6YN8b3SFsDm5sFf){u6E;A=D*Ub)DGter4tFy;b zhk}Nf_W!$He>mpsU-a~nIPmv6u%@{KfCX#135U6DPOS;D%xQU}ta`Rj%hHc$K3K-t;@-MF;+~>8Mr1kC)4QpiyD_7}=ewJ&It0wuh$==yFK7#&9 z20qDpiV(3Btz0ZLho6`%ped#8{n-c0g^PHT*L%Qqo+8L)O)bz?JJ%~o#8V>YeY5A2 zpK*iwDCm6X7)@oDb3P8kOY99g>UjZ3>|sNZgv>;gnq4DTz~;`nBji#Ia_j#g>n(%g z+P1dQ01ZKs;BJjO1Pks?aCdjt;O-jS-JL*i5AFol;O_2nSN7TGykFJ*+XZw%v*sM* zQEI(p23_h*xclR>Ha(o^ z1OMQ71*x!AW7i95+16mSXhB;mo^Lyo%Ij4m!kdRs=IJcE@pU-<0PbelL>2qTS1dje`8A1FVm2TJ$up25T{9Kt;OpY+PY)v$5F^PVLMj=2LLRM+y0Y?W5fh}G z0;KwZh=9_?(54_d^e=H_n`7sjC~$2?i;;#Ah?N`<@iL~?*dOe)cM8>vP*3&u2b4US zU-4H8){9b#b6CjLw|H(6e%jJu8hG3!C))ZdvzV8N|EFBJ)$z!(Q{ zcwDsCY^UnkU)&VU%O62|n)-=Pz!)7K8OVf*DKPbBQb4Zpay3B?|B08b z6-ELcqFWD4=f|(lf{AG=@mWDqDWzCCT)V|6>#AI-G>;&_0?H_AUdOT$Gt_wElnlLD zshL>0#LLR(%`0p*h&Y8<3XjV~C$bP$xr}%mYELCk7%nlfppw{dBPR@XKs}~CMzu;y zy)-U>Wk#ESyVe*SjWqxhCkPm`oRyI#(SXlTMn*}oG#k@)74150f9G`6h;Jg~VSc#z5jvCQhX+NBjTW5q1$L**YEepn zU%~$ZFgF_~V-dnii$aB=7wF`-=qnuIE<3VhDrMyQ77ohZzseag%o5I^CYD~5dxdOi%_;Ir0)3 zC@NUUDur*6%M^SYWyGL#dF_Ph$2NTUm;vBH{~h4}oqu|f^@6H<88>mT@gUgiO~;>u zJ`?e{U49QViv;}qU&Pu0zVHMKD7lB3V*G3|^wVCYi=QU9Kv&^;Ly=MxK zsPXI$9AcW<{1?sZW}KCamY;<{9^M}n)s3f+E!^lC3uIBo)MO{5kj4=MxI0#pVs?BS zi|Bg{EG(qz_U&i{(&lLV)&(+`cEC9YIsXe|JiVlZGVJF0At}}wGXJA+}#%Li%l84YCIQL=Pf_$y4<39BzPYMB;O$t$JR4#1DIKO$2Fww(50K zHl>d|lES!F=te5*tOIPhSbl-XUA_B&2DR_y#S8x-EwKZoKk}<0B1G}%xI>N9%1bM@ z;Lg#viXq1JQv+gefrGDfyJ0Pk@%^+<v7OyOOUkuz&zgEB9x+#=|1T%~aowRy4CytPKlZDsiyaT(& zR)$(UpSh%6ozN0y^xS@?4>;){jqh3^#)BC4MtAM`IE8Kb4_gVmWLHpM^EU(+D`k5G zF?wmWFXV|ivIX>Y5s~AWJ9ukvB z6jab1rg-n=cCf-he7t|`_aTrQ7N8u^Dz@Lixy;%2cZBxq61Nb-#wCeC0j=BCICuV- zFCw|COIT4nzKQSz5h~p&9?PaOF|NJiqadNA6h{?| zR31)dD1M_rmYOij%F3ETRLKk6*;G|777jC55-Yx}XuS7%JEU3mW}1

j&Tb5(D{c z{?64E&qF@FxCJov_$zEubW=>sD_hN&;L4Bpe{r$1W$Lb6=gi();9i~80Rpd$x`aS- zfrx0Y^JkreG!YxRxa@YmWo3=`gupg&|4`za69U@=TP~N|R>CG%#C)kKB^7yo)n1u+ z4+PoEFtpDQ_X&L~&_+bO!h=YdjWd{AYnR|iI{M$(ij56{RCu{_l^=mwJ*W@No*97H z4LmKk-r_j0o&U@B+Sm8_Qzm=|TMc0nXu>x0MJk-rar4S+Wf%~u#NVT3OR!uZ*KbhQuDy=HK1RCFo^ItPL996gq*MBV3 zTO!h_eO6Wexj>w!F<(`h43DtFsr3!pkqBx+lV3{>ej!hnOh%xb)my$5V}RQFm*5~j@Y`HnU7=4MiWzCz9l9LOh?Hc1Btj~i>h^wd_5%k?htIR% z#SZ&oV@Oj5TzxR?>mAqisf^ENMO#__AS^7tFq+DTV4AR)8xBn>5{{NjqgpjMfw?!= zc=ir^XQD|C>d>t7?KQ-T1Q=*$I=r|J0{ab6Xqgr}yxv={G^N7nq7Zo-f|y_+Wr!cI zW%;C&kh_$&ZOOfiBPVvv2}Qnqw{l{B43?`2C(ag=RR4aIafZ-6)BZ&6?>|ApG}9-} zJjDHlK6qS<*Vx6iYTV>~@E^(V@NL{u@<&QOw}-exY8J9Sbpj`>CN8FI zHXomhXwg~g_uIA&*msmc%FR1X8Dwp_%AThVogS*SjoLSi!YCrs!S9wHAl5pk0o+* zhqqVy{_g58n;a#%V1{O#nLlz=tb9;!S_HMaZGU{6PKdPgf3VRl*~3X_bnsbp8ZDn=yFtP@y#F6C@{9tLr41*OEBcVrGzOFrmzH1?MQhDQCti(mBRv zsvve0QXT;!D?tHs_lH>Iy(CJ#MuU|Akfa?hW(NsTX1^8eo@Ea_V;XKBUZ^gWi)Cyh z`t)|8HG!8V1uB68W#XkOfty1fhVRysdCj5s)*9!=JafIbjC_?JASyjQFUz!BHAk}p z+IB+q3Di<~MB=O#Yln}hzRW$hRYq^nk;LGE65f7I8sfJXV*|8Ud+`D;f~OQi=ZeNt zO2@-4jn{WZK+K9_aF>-p7V)5?&rQx@PHRJ_Kq_8N;;&SI5%Nt-z~p?oqKvWe<_z$dY0p;W-lBs66WGH#TrQ_^J$_3#&+}BQV#{=DKXOi~xw*Lo zbeWa{by0%%NIc%Yw+P7m4>*wh3`zDC22Medod@j|xs3YVtk=T>RRqs=isjZ#MS^tpt88>lNZq^06?plUFtVvoi;-^pOmMPD4 zX`C+OENuQ#dU>Pb>r3rVKZYAxqav7N$B+wP1p4&PgK*$1zaj2I{%8FCe}-XkGzbcA ztF1!vEmR(Vn$M8fNDwimIj2Ep{=lIVM~Y<`atWm1&d5aHp6DhAmU}%NGaw0Xv)9WJ z3gaTR3@6f*PrNpT?mo_G;*$x$_2OP53^dpK#Xv!+e*hH&=H*br2R1tIg>Lz(L7mV` zPRCsqgb<9GlE2WL)%${6z_C2yB)Ph7hXwSYe?tL)pp?HN*GVIX0RYICKRNbzxoPm{ zXH{X)!s2#CvR>&zJ2reeoyl&ZR>d&;uvFyxieLgr?c0 zoUZx!uCo~YWnqEVXuJYD1H)F=3lt7^;JmGv*f+=fI4BAB3|eb?UVzg*LadlY!o0pn zKFC-cT{}8sef1rFOrCdEhzpHkrn?`>82ZM-GuzM_5zB3_i=;@4d6AP9%d&ebo;o^0 z!i7GhnIRK|U%Z7GExuEo*qS_K!lT90>!u{9EvIs4r2t1OHkZND)=pL1PG1+>l(H!0 zA8@GZj$4JE61$(YYUrx)sA$9xsru|mPQf+#J_d?_0|OWGtobXWY!N&!vOdSFxY28Fk<0j7yt!%S+g-*>R}CwEuW>2uBUy!y05V z<9}?G=8|2D(S}I+rhG+Oz8tztPF%{lfE;;+Gt(d3fhOFe3bLHSOlalb?jBK&nO^nk zcsEODK_1wl!-1&X>Gk~;xq!Sc7doMN2TG|b6QRkLAHR7fXelaL+*LH zy`b~?r<*jNz(e#2s)Wa^eEi~|$Noe!4kazkS;)A?63t9YhlZ0rQv_oCgp~wV%0%WY zoGj|Ce*w#`=?Gs9;fnFkB($Vo;=<^4zlhxRZ+aT{H;V&P1naoz7mMq>P&AwLXAo0h zZFT3X0y+8tf_M4>vn!8rP5pPdd0YkD2Y$e?yw?H$gd({-x*0}s4;2IKz7YTvb)Yo zit`Ak<6k#5o6Jjm%_iV<3I+dis#8w1^YQ2FPa=A!@2++-6vF3ieZ9aVkJP{Oa>#aa09J4zROkKxEQ+hLf#N5UD+4WrR z;41L!{N>IA7Ci*dY5%u=X<1Nw&qLd53l%t*chN~4j7032HeEb1(+-?|3OesOd;Emo zUZGft;QWa8MpKj5<$?GY5)90A|8*q*pG7G~ra&rq}zK4O?XQBA-4(?Zs3_(#mD!9>#l*x@vEPJ;83)TNTBl!ox zdzd)o(-jlKqEV@BI&yNAl5-s-h^*@Hu6g?@+k`=)QiTtfD&m9C7g}CI-}!QbuXb-x z{jdZ{7f-GaO7Fx zfTC4ucguRS*Zwa;=Vx{clpBvY`c4Be1cJf}Hv+LjU-Y|;fcrRz)Max4fDX*x6XCqW zwjND6+pJGqvCs7~2BHtb=qFKwtaU?0`~7t zxxTsQOD=W;JvgEltp7ko!$B4-gims_D#k%|33>Gt4(&dR#2jW#G91d}`A(oHexIsD z0vv@bbTij>H!~;8l4wZxlnAZgVxPUX7)J7DH~TWuD%$eASa#+emF8zG$fpd_xD*}(*KI( zN5FuVx8|Z7M~Yh_^-;$mj=YXRVlFVh;xv`&a!zP*VJ6y`vfT0#U*iqcs5<*g%8<_4 zEQ9z2CS!bTh1g2I4$)DC)7qI%BUl99A1xvC6rQXK-9!2<+X5^n_OveI18Gjhv76o} zHFNDWBE`&=3gy5)l@%gKjyv0emDz+RJ#wp?E3{{8Zh+Fy<@Unykcy-H(|v|UyfVlF zeWvd9V~0$mp|p&iJ@)T3C}gLv$9FdC46U-&6M9a|C^L@Z$Q&3*oe7)C-S3R5H>%O< zze*|HOc@}=<;5Nc@xJmpCF)eBq_?doH2kKc>mRZHch4)pht&1qQGk)b;aOtwx$DQp z7e*@iXdvJ|UU$S2o0Oj?C0{B35n)UJ_4SogeBt!Zn+B!H5IkI)zRhpso{V!uK2KRf z&)@OhZ!d_*MpmV#s1Tz%-pwB?)hi$1ABX^T5CZmnFvjVl`gZZar~bm-Ze<@pf1aF@M3>(7AW5kijmsv_ zYU&vAE}MFgq9Z#uAyubHTpczKuE+Va_0o4x-_Ha!h2^pAHST1$+v8?XE3eOM8~xp# z&-0ap`{)1LYNufRy1F3aa-0EVEj+57CM$RRFl#u8u4+1(6llGp^ykQKCS z*dldJb>E)y5NAP<(53aegRVW!R(TMN8I*^{#za6VrKG!t-@Yo~%#58gr8T;IL4Ma7 z$oQ4IyuWuP(T$-^PAEHFgbbHUG!FCmJ5Yl9Uykk{vg#d43@5BnH`F%=qd>)C51Sxl zaURg&e06!Iddf_QkR~>95wQdHaSx)$a#UN{p^zWKxDyuM(FC8aCc3)SMq3$xJB%VA zvEP0%>UR(|tUdR)PFisE@cIs2p zw|n$_eL$)i)U$6Jtf0b9p5!{%nw@StXYML8<6@aqSVwQ~X62;kXTW$4 zrm%1#|9i`Tdq{kTv||*b?$Bd8tmwWCo>N?*efUgAku+UvEtZQoj4v$Mnk=Kkxv@`F zs&jT3_4RtEJGWq_3`f~aw7E7dZ&Sbz0bcFL$B@^eC&V*~(zo|t4s}}yM3KM4>IPXM zHAUiscIe7n-d28U6)Qu6D)A{AhqYq{GMG}s;J_g}qb9`5ZyugMNhLNsE8ukdE>rP{ z+25R>#t>+f3FnqG1mUC>Z&7zmKO|zh9hJ$UwdQ|Q^op>Ap8rsV-w=pga+sYdT2Cco zBM1$T;YJhPU%|`;nw@NJUr|yhu})1$auP*B!Ija zNWwGez&l0TKN4vE*{YzP%X@2)xWba}s9r{p!n0Tm;h*{VAWe7VsU@UfTE!s-B1O05~jFJ|8RoRIN!)+5X`zBkqOwfdu0PU}oNN5}YZ zJ=ikm$7}n?%Mk`Abjt4~Znl}J;>4dn%gwXfZ(h8t&IGK3NY1hT8Nf8|&?pU9ZC4eZ z8~}gNS65@Fh=>SO$6VCy&&Xy-lCl7covaCJ=kk7*Yx8xJ;3=Nz!rI<)Svw&WuNg5r zTg9KL*;;nT0`A)QD_#JLj?-9kwbCdMm`mmJ$+ZHOAXV6opGkDOaRp^misXO2o~4qB z!{(FD{?-QGGbN)z6FTY>S?#d%A^E{)95Lyr9;LVIXG+dMh)q%Lv}c4P0Cmy;vOLd7 zzBlenEp5fybZ(B5O%5UKENqmtY8_yaRaSodb@S=}8L`kHp8M&wm!6+=GfkrLbPT){ zRO-|BZ=WB&rX7=|6?6w7gzLd5Loc>{VKtM>q*kTRG{YS#)g$#Ff^{xc5V+oqU@eu; z*HG&8W`&3SjM`bb%;$DlLFxek1vJMan=J*jwbh0@J9;ZsYH%>J$@A(U*~-cy{*h9e zvCfpC-PkqphH*b%7ciIw=G?z>TqUu0odHOnEl*b-h$-h}LY6xLh6Mnt)W^*uac=M{ z0eV^ACOGOp=!P%yASJALP<0^rGt)4?8(yR@39N4$sF?M`p%M_0lsI|c@nBLn8X$;5 zTuN?YI-Y`=59G%a{W=7DmX_F?PGl8wyN#0KD-A7%8<|3Pe)v-wS_cw+0$wD0J;yo0?KEka3O*N&i%+PrJrrm+`F7 z%$i0`)bm3;#giXm4R#UoxJ#WVthNO?E$I-mFQ9!K?CVpH6W$$TrrX`0F3y&#eUcQ- z1~8ML6xuQ)mx|k^T~FX?5%&S{KMHPZ2rs1ZcvRuN6W6ulW;36ne0hKU;npnN>Ra~a zDGyi`^D6IkCJ@rPN9np@#%g)8A$*%olz=|V>B5524>oat>%tUXZ28MvL7%zj%(`f2% zg4=Eyb;i7zo$k>vZI`8B1~u=AQ@B-$AV^PtM~LB(;W>$|NpU|ZZRPsWJZZ34FP3TLn?%gs=@G9Yv!5jhke*>{aao0ttW(Y8^7=GWe$?^I$T_Wh z8kN>?rp!o7W-PzM7~ZLZll^)Ztl0ca9%r~&nQrNOe6#g78WF`cGcFeOm80s^(uV3q zQSlWHeg4=-LES>Cb<>>5H$z>!kB3sUq5V>iyc_fsFT(95CEhT z1k$(TAW9;m0HeIWFxYk^sq%WsvNEcVDN}(^RBMF?p$}Qa05VJn8%+XebS(Nd?W9>_ z0G;dqlOOa3AM=6*Wl$Q;_?^@2x2b}&$#{mFLl(9%n2R4`6d4$iaEZDw^1OV29OFwQ z5Gsv)_k}5|?b&gyZOIxx<1r8wb+OxpkBu;|56Xf8p|lnk_5(85aNt3!9MX|X_ivex z*OMFTZYO{V%5QVKDtP>%2xYjH1CK_@zvjgjKAznPeu-$B_bd3IETWk-^VqN?Zoaxd zX}E*scLpq3lID)3-?%%(-X1M8tq`eInN43whgRk8As6qT&V20D$WR1$FC<43WYK#Y zuT^pazt=jNGA|-@EG+&sMGl>(s@ZPP?C|7(oJ1*ezOPzqaZVrGgQhhS_Lac$%&gSx zOpDvN1ghZvb*`WW@SmQbU1uRupm3>-kgNVG_mkzfNxnb@Aita2Z`*hTNoyyB zP&7UyBo)@OoM7)?N$F=u^C;gBveA^EtRlOnec$2DQlk*!F#$IuO2qNNfg&y-Ot}A* zd7n4pxF>kS7{*Z$398-}_G|Zis69mp(`t4gdj$Bc>^{b@lk4L}Y0e6yS?A~bnils) z8y>nr@fLnk1txlSW(@ia3VehzX?DjSIr$c|X~h0pTyZ}NhsU!%%1bbnX&gui<>~!` zbf3UVR5dNqCuW+W{Z4>orV$yd<^rgef0k?x?jh7>FtNu(4f8iu<*ETPiLXGPaEH@E zNy|ShGX(;Ki_0B_WtZ%^*`GgB1sThYW2pC~UYuptv#J)2XW||<^ruQ?a_SNqkQ~&N z$J>2|*Y#k_(s@LhjzVKDjOpB%m$;I^HH?oVY=ybiK2&hh{q_mSf#vXiMX)^^Z1mHn zj_(!Luz5-+>P}fKE-;;TFR3J8S{+{EE*)4qSdNXGS=P#(78cJ?tI`~FT z<_iHCOk7`SlVBlLtFv3eZ`X=D@(9;K3X1@@qF*IlIS*%{|HJ1~W&SE(JH^1wv@U8N zXbbAnPC9)^NQ(pu;h)ngnh1$*JMb@$sKP**aI>e@D_`nl1X#Tz788 z);+CAw>Vu@fyLn%bm1#1<=_^!jitc*v#WwZ;>Kod=v#ZKB^d=}&2Wxi=PzH^!i zSqbytm#eHbmcv!tjqi(lF1?&KK(G=h3&@1)6bg7_mv97qVxNzqsGbza{b6D|YR*V7 zyL$<>;lw+2&6D0Y7Un)fCk~eQ=Dzy;WW8H-& zF5QAq9rw~8as~ZyYhc@AT6_FxL5+abt9!VSYj1oBhc#6C_Gd7Cd63=d1icOLJ=W0|GkJR#czCuuK*=na@Cp*H(jWC*sX% z3{f^hV$%KEf!gnzy==?(OGMv^FsLaUEnBeB zT>=S}>|5?`PbV_|YB$W4S`WpMqR}})0O=PSF*lWG>tVh5^W;x!H7!ioeh6Vl@|v=) z7ps=fd=&Ooz^Ag3rC%=dfHKesN!DZSSDB4MBk;FG_8zK+6A-BMa+a_jY3U#~rt-%P zRRJ6hg3+T7Td99by;z*~F)uvpsLU}9kJr|oy1OhH0o>OkXvPsu3`0=Y0xcs%mQN}ki@}u6B=bz ztMX8=UTs0ATki4nt;ORQwY-cb_^7hz{?}Cn&>bLBWW0M)DV?$z?nM$cLy|B`5nf?aKK2aBAxyvxN{eh^TPQ-Gp3$&}sm zKKW59_rolp-g4*54U9#@z{k&&Q$~L2(~1r)m8b`%OXN=*?6OC&PPT26GNNkFCyi@6 za>!mbFOQwVq`0yXxy4ReT^@bmd#{;=s zMiETtV6M%?=&ZVI<|>Mymm3ZXMF=vKhHX|OJMDxMu^WdOL%As(Ds|es)iTU*#);Vb zbENKo%MNyLUjaK6@x8zB-Q|ci>9`#He<+Bscf{S-M|ZJy_pfE|?*Y452~Z&Fo{efA z!9Q0)faZMk=}(iJChccCS?9#+R{J~SWp;$?o2CyI@~jcFMcNc^g}^o|f3sN+f*bzE zvRM#4N#)qhhsz)6pQq}l6$Dx=hkFRGH0+@CzsI?cbF@U(xu z_0pxZ{UtY7dswd2YNUPCv(0;c<1|7np#UI@q}f&tHFV(Nj>FGsMb%HSGP;~({qDL1 zhKD^ub-LdH=DG0cd}#M;cE>HWv=(bp)!LWX5kC=|+}|*lSpCfwcTC!RtSG9sB7>Ho zI|?mkcD64A$R)b8@9{gGB3?PZNtba&sd@<8X9H>PR&C7jPMA2 zpBd34bVu;~SNvaSvhz|R)j_+xo1u<$o@XAl&o-4a13k53F8?;&M*;eE$sxa%tdV#X zpS_4Kfc0c^qyC_tw{{6FjgYx{%2#mu6EWg#Ekuc`D`FL8yR}Wn#);yT=%x0Ad*fLT zKnCDz)gE6EIl?Y52M?--l$(-fZb;u>?~f_#X?7aXA1X0tGjd5!b)C=qjKxa7XJw#O zUj2=Y);>qjOwGrDG%Nbz7A#sH-I>E94bva>FZO7J1#;NC&F645k)JMN7-9ry3GEUk zbYyBpvTg67II;rx4;WSH7{r~jXPs->^ae}Kj*TC@3kDIxGSQUikSNW8eG!C$KKMQ* zJp)iE^Ukopg}bfG=Zl6nH}clD*>CM$UkpI?+TQN%wCw~TVD_#oQwwN3i6jwnI3xrk zzG*ckszD-D0$Ne3WgJeYAK(<$WP~+9@Nc&81KGU;?Pam{6aH$RZRd*)roQ)OqUvZT zg_EE72Lf&-`o|C^wYOIU_hOzCBt?1LGIo>bsf_?T)$0zH* zgaVW40&u2*8wWnIr{GOTg1#SI22kKitHpnFOajCcb?Nkl^6(GdJchIyyRO;?*?v{{I6Ia$t={ zcB%ZkW)jv~tEwarw|6%-M8ORGz;VI^Cw9GgCE?e7B)7L63o) z*n`?~Gy&Sp4v9dikuftR!m#7cFnyMFcKigT9DKl1vcj`qGZPy!cfDE-KO@@~%}?Kt zu=e1vU$@5`vR@;6!m4!HD$^nDDY*JxV(!ZRb zOu&Oc+`uFLFm*0h7dx!`?qU!0p{q zC`b=4-2BeX4u^9b@cw~2n|>~r5|hd2BY=rXkC!tYO%4eKmfy-0i~o_P;vRM`Dcw_#3^=TH zXqrqG;-dNQ+=D3Dxr6CpMM#hWf}idEysTwo?na0?sjNv&YwtM#JM`qN9tJjg-*8d>^GxLBc%dUOoBLnP#-9%00U-$5<(HsCIi z$y`cPGaePgLD&T{^o1fY=#oT$_lf1^rtP$p_jQvjY3Z`spg`zdo+*vr8jJ0GeYAvJ zR<9ifTH*@JhMOaI$I?+CH8z+5WR9H36>B$MU~_-rLR))2fe<*? zL&M>WN{+9Vyzwu_A#i^FmK6)DJ3c;cpl_DbCcB;m#|(3!ND;99?QcSbcUk2S@g3=V zLnK!c5@|=*H6OmD^V%bsSh+cglzs4X105tOQ>|l;w z?e!F`aUBK)1i+GEkG8~m+?{^yZYHkZQs3ai4Ty+}LbdoaKsNMiVq&`y9-f*sOVP&C znSs)O!`NEwHG!}5;bCTaIshJRkOWS@1R)Mb+*}kYnurKf0iVK<@UL;*&lCz`Gz5qc z*W|g&*(F8c@_5DosPWpW20#pfogwvyWF&!#&RdZ#AA?RqVru^FwNYS&0sHiw0#&o8`f z;*Ydgs;hAVmv|=xKqD>>R}AD{*1Q0s?MDdwaad!~klx^rZzabpi%GQVT8&S8*+rq> zIeTOPL(CQ9oD7&NgfvAPfc!4pQt{h?=xmuEyqLg8)3qhA{wv_U!7mY8at|JY`>mV9 z_>r$tX05Oy#qXUq^5ndmzX3~x0_vBGPvT&xfpxVyzlPuBOQM9|mouOt%H)Gg{M!=3 zZZnny-V5FGoDz{O@C~XyIBa7|8a1PkdSK&1P|<#u>#P;KWtx+wJ=xu)e`+j-HR1Li z>O|O~SL&0*tknWrRG4PoUJlYf{rLN30~{MGQwsJ7^PsAaS|m*>c4I#lMc)bIcm&5G zGhh-S1?nZ+t`ufBrb1%!pP0-2?4GHXc;{wnpHu)=KbTB++}$fMm}z4Bs&E3f)i#R2 zD?~UUMZw9>6jC6=HKMnC@;Wn4yOk{&wNan^zUx9Gi{PP@<7UA1aH7DXMwvQ`3Sx7n z9MoVlI8|rc`t297aBSYax_`TbpeKJ){)Oo79rksszw`s}%zr)X}__&wR^SGrS6UmuzhYnbdZ{&U` zy6fDnmK=|{UJ{RTl*Ngo$;yPyS5ls}x%5&7-E%1_1n~0~rX4!;Go?unjdd0T+4H!p zm!;Z|##hkkq^#P0sQ&_&vb2ygGH~y^T#qVm1vm1Gx%pyncptVEy{hDt)a&+Dv8^Ob z!$JOdeg%Pg3Mb2*^br*S?xkL|{jWR8som;)Dlovy;7O!Kj{#Or?C6QzdLZZSxa zA3)-lxbcS>HXKNPfsZEh^tlDJ{qbm)lX_XhQMS&R3)O7h*eU31U5I_AFQE)qw_$d!v z^Ibw{=zT%vHRpW6?bhKT&RGl)eG{?n<4l@c3>cuCp6`hyVwxRx{0F&YxV~ATdzVth zAq58ri2G9;I?!@pk^J5QGz{B!NT>F5bN}QkAc|1`bJ!;1JT=(qv^X_`Av=lE2k!pV z7`_kk7fd;)3zjUTTsZ;)m=R7~o{y@X1IH>4A1mZc1IrsSEu-xjX0 zDdsR>V*%tM{h;hTy=*Tap`je-=K8weuL1k$orSJwkBi$x)}I|_pmg8-qMB1~W!52K-X-jwg_&B|T->(lFR^=JCqIg34ux+FQLv6Pa`S@SUL zid!gTawe8K9T0a9SbH~g+HJ(05^Pl~m9i*Ts7XF!u$4w02*!4C1mLMO+9;R48q*53 zl6}R%Fl6Ghh4_R7xKwHA(H5boG`~!*e0BG<>96@mWRyh!0u~+dC>+*lO9{re7Na5C zPnqj0%~v<}NHmo4-EE(gSz|~-*u3ubZR=@z(WHKLJHh-P{plpU&T-+3`177IF8ak$ zRTdVqcp}Yv2L01uJdx=0oaPx)2HIzKCaXmtraGTqyX7mz=ZxLCSWWv6YOk*60a17y zTH-a|V$It=;y(u2$;c)?0jmef4#{TeMidsKg6N|`8nKA7<0{Rt zX`3bT_xf)1bS5;bt>`&~YtqNOvwydj!Jw;?zGpC75E;Mo5u)X0xT7Piig@esul~MC_&v=Ip+W~(ONCl5gzO$ zYo@_m?DGJa;qV!?GL7C$(O7vc8a$`B_ij*7`j^T^S0u5gd{HloyzA)Xn@T>^^#Wp8 zpr>FSG?2w36xc44DK#&#(d}oDJ4lTkwxIR~bPy_dA;^E&KwAX5b34 z@!9*ga^3~+2T7-;;A;UeK4v@t0WnI9TO9O2Z{HtO1RBX9Lc-9xC!h=}Qu;sgFlNZ6 zv+Ml}2y7A$;-%9qmD^#nwY@n)MfXUC%|q$%7UzMMBeWBtMH-Tr_8Ey454-Pkr%&;7 z$J!FSI^Hvd`iR5nJ#D{rW<3-dyo#LTCH0ge<_a2*T)b&}K6SbU1v6mLKG~>Ova(XI zUDrgC6lMl%w~9~COXtGc^GZ`Ud`9kI(&Tk4szc;m{Q`+uJ)q#UB6K-)D78u;OR@XM zgfI_x@{SD7=5X2A3W~^~Q;k4MjA1oyN4HZY1JW@S<7|ni%MX%LD+rdACFbNAbTByG zcPw1z;(A}%>hxfOhdz2By7&k6P0FT^H|M8d^B6@r!p<$qxU|Q|VtwyAxuZkwt(@cB z7BIrC^}cOmV`DKPxWv;B3+594-$XRPHcv`q2jm{q*zriwHXuf_Q6wc?0Xa-b8J09k zC3rN*Fovpf;>~B_$jC$zI%>aTQuI4+yMrPOPNx(%1EG!nih}fT{pwnZ7fw$u zw!7bewqD9bH?w{7Qc^ujQrPffB`m?reAAwi%`qa)TA}iG-_O&;Ke0ZO7@Q1@wm0Z6sCUKCTNW+Q1p9z1sc^{ z_MfP!dLWUJd+G00nB%ltzeTP0b{w_-Hw)kms^)VgCP%rcKR^hYO=*jE`ww*gSER`u z2CJ7zmQa4W8WnFuiIh6k^Vc=sXd{9;C+_Cj6wz^lTFs!_K|R-tpV$M4lnUgK8b1i; z_y1K+<#xSRuiRV?OR`$3$cbDufWQA~4dE}Ta_At^fyTv_!)|q?5JhQ=6Y~E#Nox8J zo()F!wc{U2Dyq+imAe7JCZn$SJdv-%4xr-hGS2P(nA*YtYwlgSFSx&j9p=s?KUb?grg~~l6EB1tYw9qFyMm{uW2ua(-gYH83o-e~ zVyU4<%aI0m_djtQSq2~sIvx7CKBFRkXisB1k|>&7MfGK*rgAj5;gZ@w$~UG{yEJ6iG$j6+DWQ2bg-QDzIgXIVZzzvlw?a$9*_PeWq#a6yivyqyAADYRRDQ2?Mu|8IZe4%ydM)Xp>C;$4H3{ z9i6RtO94~{bl|{lt{^cI$z>v`?=I9B5?>1Vc%2T0Y!p3?vFV11GcgRk0GJAl{p(k;$aN=U8d7kmQ+3BtH&NOJqr>H~&#>gf#(%1)Tp{-GD^ zn=-d*`2}; z2*L#Tn%{inhjU)M(5Ag1z@W@;L1G7hg@*vQpirP$myJBAQ|gr^YvBPlF-8YfYWiQJ zqvBGK7oJfZDIu}WX-nnh)3MD*)|ZT_Be@##j2;93|$wwDU# z>F@LUpQc-u2~sU4l`JB}vvALiAA;87+rTbIUY^ZSZeL&DL7g)(Ev=R*l`~VOej@*m z!vY-7LvUQpKSw~!5-dROX9A9YN;vtOqj_nCt6~}Gk;nT=-Cg9x5f!MEE*v zfMG~y23(^JWex=Y6!HRb$lZ^gg!G~rWhb=&cbfx@SMbv!=6jua6DzizP3(g3% zReT(eD^;Y3|1NupDIcK6>TxUe|FQPfVNtJJ+Y%y(hzN*)go+@of^;e&T>{debP59u zoq`IAq~w6oJ#^0iA~ke(N)0febn`uI_da`{^PczJ`<(s##dXaLzj$IjYu#(D`(7Te z%wZrAM`wesuDt5-Lr{!x>%hT7#iv7x*2K>oD8BP$tE7Z55PzNm#4uOkMnzH%&82oz zSgt~&R(&8LJjupO=PgwCB~}Au^r-}$xz8Y1jT^kS$)R6h=B}Z`pmkJ8AyG&_yyjg1 zooBxiDKdms_!@i)h*q{^@HL5hV&Tcguia?Slm5J|AaRr^5l$9~5Ibrpy)sR~00(iQHQ183 zrq{oTXTT-;Xv8Jlyw{A}Dxcf3gb5P5y7H;aVcbhjACcva(s8u)*!4Levqp}&dagaO zp)VKjS?%7xd*IkAW2xWy8vB)OT#g!J)m5htJg|4E3eE7a%v+d_W!FRk>pg~FdCWkr zm&6w!9B*8^>E^SHIW+vlR3aYngJw&Ro`B1JYUZr|6N=!1K{Z007Q36-RKfI z?EleJ$@tp}`$?**c2=4qGD|7+G_fn}cKxi@{h*D-F7~MUPgFRi`H;mguX=YMYF$`q zK04kMez@4hbatY4;b8*~X_<|;&nFo5?`3i@nKqr{y7JcWi{|q;_WVC@Af`<}{VJf< z#oX)#ZXyG&uHJ;INkx7>fwUuBHSK}T$Of_JA!b+Ali)J5Nx((&WIUo}0u%U$fCiRo zl;X}c#Y3Qop%a?eM3`Kcq}?I+5IR{5`23x{X0C$rB zvp>~f8)tbkt?*s?IP6)B1OLVMayM zmWS!Q*`iZ9A1ZDQ0cp|uA(M~3j2}_Xwah3$7Ef-`B!WavG?1xGxg4f*WpdIbg{IVM zH%{bo5>999HClSA9rUIzeZ140d&T+ing)C!eOwK=euFW*`H?7`>D_Gu+G<*-7nR5qwZ>I<5HKnx!sMX{O8}4b^wQLlf>pfp<)N_H0 zu~*u|!%C=s-N_AkE~+i5!<7GbeC?fBlk_>lgD4}#$e($Ickk+0;U%{+p&fuVaVvHU z-Pg7D5~xwK;G7%Ht2^&Z;&Y1W{@f7WUFy1d?MquC5v|ah(Q@wz{riht|3rKw)c8wY zKV3ro(qB{87jo{24(gpT$5~%hkeF_bOHWnI z?msq=qxf_s0G>`3@m(48q#9tx&u|r!9ttm!U3Mu;@o)b6^-8K1prgN?oS2%2!ab;Z zIdjX^&FyN7Fy;JfC)MUVYxie`IFzkd^;n)2oU5$lR~&pyrX#_?rc5u&FDNKdc!io; z&a5j?IZ?>x#{<<9~FOWU~Ex-Krbpn^f^N#f?0 zj!W(hbH2iT_^YF((wT<{hWjmVQ2La|he9bI)@5ocPE$^onlLL{hqZ+0x)DU=06Voh zi|YI3kNHZKMT`cpEt#*gTGX2ZIwWTqhf#>-g^8f|$qrcLX+;zfh{RIXo1R^~YbTGj zUGF9g(pJfW{6HUz+Vy~V2qQ~OoBw1UEa@oV7P-y_Nd-rNUcu&744BTqhA{TahrhmsBU9d@(238)QG3hK~10O!aUqaY7_whj(mjb%npEQ<#f^?_Y}-iZ3Do8;PsgT*kNxh#PvIi9i1lTWEF z4We@L0K4-G-zHpMP@cLBxuxmBlQWBiCpRymE z#$wG;^7Y6KHJB@XR~)r>pq89?dsWnuOC=(R9k&&Z2l2iWF06`hy@@GxvvErY!OS4~5T*ATyG;8eGno`tq^?A`nQdS`{-8Ms)SaJHwF4wSAuk4SyiCP5QS2MpipLL zC~q+N*T%*>7qOmbpdOel7{*^D{H-!9l@nW0en-}zuJTvv!n59GmnxFGD#>5_JpDYJ zm2P0udz#p{$(}J-_6DGOMm@cI>x&P~Cr$=R&@HET4f6e-ax2|uS^B1g9DzhcOY=C` zJ9y4^Zff0l38-rxNiqk0vC~cOese{@6^*M`LnRAcpNI-eMBzORO>&>SvERbaMJk@y zXf-kPB9LNKS*9`Yw^G(HLkRR)Lx$;{{ z>CehiN^)QMTQ3vBmO@pUTfaR&+gpiZedFl2 z=U!VqQ7WnA{HFm1({%slxi3oMNsqP^{h`dlK)3j;zD1fSF!F)cX`%lOa2W&HN) z8xB8Mq>ks^#y9Rv^+JhHy-u~<^xmR#t#G+GUuOBV_?ZpMlFpk1nC`QIHWIPQ%m3tX z{A)MSuT4e&`bVe~f36dg(Z$ZjX8&bqzD?8d_-KC<{fFMqEeWx_tMXkU|KlydtX{$w z!w@d(iMs}?&eTZW1r!vD1Yb12&l^_JM}E$i3Q&twephumJ^A7~4K$VvSF8ncl>uo@ zs~^c4&pA&aYa?FipZR3+`P{;6Cj&gyr`74V^X3oz?*D@d>R-Q`&XTHYZGF43(DB&F zC>pRHagk9_NON#-ICt#>*~O~%%**LqfXMFG`A)^bmfw@T5L!w2FSA0Qa`W6qban8B zsBJjC0i}(H5beMG;uoIsf4%*`{gA%&%3Zbe5(baY2+>pB$AB=Q*R=2E&6~iRtSw@b z`^Yx8vht#s_V@GO;=NdU$(qlY**{tCKYjOqd-FehNK1jOS5=c!oyfmw1}jr+kKfJd zTplT=K0_eJr8&Kz>;#B@WnZdD2F;D zx(I$-74!&_&{v$99zVm-f8AOC`*8f(FM+k$Ug1>+4Mx_N*T24v0MRX%-eA=>E4K+s z0%1_=rFXDB#NQ9da;iKJdGd5CWs!~n(r>#&=^jl~*P6jP4u7*=VpX?7(K8LNf0x+(ljp5qQOS3289pvdIk6F~9;ObWsmI&# z!*@=5dskhc*PVWg){>rJM$|53Voc7V^?dl1X+bL6w$;_uMOlaH!-bpwR-jx=1NTdV z4KgB>hgq5amI8v1)0*=|^T|!BOB(6&lu*x}WJ!gBVaW#`d*!|5>okuZkw*s-oN1l; zk}_P$uYI={;OMtC!v0fB=P${j|KTyjo?vV0kEm}o>lDQurE28G*)G5p;(6NY{RvbN zZccU)@;@a9Uw%1nT{lFqexBx6y;ZEAYHL4*8UM;>^c3g8K3HF4&+&b+7AXHyelipX z+i28OR#x^hw?f2!`t0Za^_8_q3a||JH|E<=JpDgq?S7RF{7;|t?B80jeD5g;17YIJ zExio?dZ+*JQ9~tt@A)B$?n*iRH&611(WQTl`$bh%)gjX&?(e@~kQg5&vgnJX-hca0 z8-aD%!wRk`x3{p*mIJ-c`7ii;C=Dg5$A4qo&)zmfi~b03k|&EA85uQ?<5S=I!;1YM zv;Ke0h1lA~{&!h1)q=)$;AeFN*J6YZaiR3l&UE>d$d-*LxzSa;|9B<;^UJk}(aRUR zr=_MED+j3mU(fQF9=!7A6)9)c}Ye471#yQ_XRsq~Im)Ze2(#;Cje6XV|=_z?V8G$I~+(p2dxfAhJ{ z`Q{S5dL1yrV4yV?H2R0Jp9?*+2K@aGI{x~0t;=G3IoA>fI@8w6Ced|xo|p{%r0}a1 z272p9!x$(1Q%H0$Oi@Orhd}4f{F9)i8oSt*naBpDYeauzd8f7A;9>OP^0Lr*u!s33 z&JWs+bL=;41UE?r%=3yas4Q-xJ)VgWv}Lq;t~gcBks9df*$s|_clC2^?zgAxiz-Fk z!#rI!5OK|Z?f7@i0G|Txmxsf0{>Zz39Fp_CarenLAMq~X{Ph`3z{PHkIQm+h2OV`E z?sQn}(K0J`;OAOU84?t&8je*w&KyHOU{`eJG#fGMSWTlugop^Nz+Bf~j92BA5uKdr zN-AplvP7Ytcrp2FW=qF!%W-+RezaPREY_tfZZqVKu|N2e1C#)$kKEu#NWw@)B(?U;BGU&PEZi$GvO@WPf`nld@j< z7#@C08t4obA`I96uyX(1!2bDXSJOujE#DhivHso*Ug7(J%`?6773xp>=lA@RhknH@ zE-QQS>Yx1T&u_!@tPaluV6W@AQ2&WvWw`(Q1@Vf8-$4R@Z#Ljh4!J+QLxRhhXQ_A; zAx8X9yXn7}0CIde85!|kJh{KKk?D!?Uq#HY5(^PJ{#VOD(Zbinp4H^I%&Exgl!HIU zrTfN8nA(90WMw+!Mk{TzA*P~D4YSY^R`->4l&Cykq}tS%Yh5v3fVpa-r>x|CB$@K$wyb8T`Lc7*S{&F zLh$P__LAb?uGVy8WBc#i{}2Vk`ndh(vYR^ph?Ax0<;n36W=sFOU2>z=$8=X9Cg$Z4 zQ4cnDMnxUa`kmhyJ4C%A@J^bQM$MevM~ec#>wwYvzx0tq6YCCaR(f^XAK+eja_63T z_u&R0^K3ig6hcLMtLB-UnR-6N`Lm#{<-3zxEgqlSZxj2UY_b+cU%f-9iJBa@e_a-P zft6;BaNXYCM8=Mk;5|xvif4RK$i9vpP|&N%hdu@;zv4V8FS6r0Hkn%yU7fojfpZVJegJ zK7Oe2{CP6QaoPKfgB5VY6$Ymy2ek%Jltlw{H6#Dy+EJ=Zgb5&eaMoKHT$BN&<~YlD z7#UkRYmb&Ws^`KltL8qt4;2}HwOQ5gRbo3K3mB-Vb1ehgqB-;!fqWu~0@*;(d?jd~ zNb@;}Gg|*X({PnUMGUBY+?|=3!CHysFT~y%;R9#3#o-L(`TmIDf9*^p;QQ`QohmoI zql`x9gMJGZBB}&t!1)zw1;;pPHySY9xzmR9Jk0IM*JDz`YXGV7%HzRL>4s^b6nLXw ztqZk-8MBF6Omx>?t6J$a9GIA|Jr$9)twLXedQH}7t(9=ycV2yl9^0ig)6n-mRmi_+qbEj{<yMGs<7+#^*r6S7a9 zgfb;AEpqhI7xs@7JI(`9NAzINTP2Zwwp1U^b*VUv)z(s>13Hbuox)5&_~o>_ZGmQb zR8}Yx0HuIw9KRI9ltd#C@cYsiV?_9EwySL0V>=^Qv%RXApXUqA1$M>r( zqE6cR!wCPcHn>INlW|yhQR}6za^mNFBjl!G(8)+1n@*@;-tMCHaDn()%Kxm$&8Puc zyuzpu#|BhvB0(i?6zG7d+K%OOJud)VyGx-ztl#wEw2k&FA!iMPKOTa5%Lk9h&49;t z+<0gxPepP)||1h^_mc*WrAvRZ!8fqI_2ssViFNE9y zLJqeGC1lwnNU{|ht5ox>OCniS#Dn7BsgTTsH6ui+T3mg<&OI&~Gd3Qhs@0k;%L|*2 z|JaHbk!7=kLO+1)b6b!>KI(dCFl9Z>E+V@(QuoIY>EBwTU+jITAhtS6BTAu~XQ8um zm=GJ^I9@FFK^o9TM`2;q^Ry*9g?DeD`xd1t=Rd~JbqcP31j2-40?>(V?*}iM$e1;9 zpVjfSCnR9QYc`Tg%zIGIUVGn3ct|w?17+Whc0hJDH=t<%jV8X{Ejl5VYloy<7(@^M zxJvoZ@*V8-V8yQZ#`iQVT?4QEC|9B#`>}TO*(go@HuHxoidV59NoK<`z3NqOe_wOp zEFtgC)jzzvR_d$2ezXzC#;t{rC1Yo%iF1s+P$j~+>*V@GfCnMpnLDVAl8U-B%$ifj zRDi@=Kts~IU?Q&%beAF7U3ntS2f8bed~vS>s_r4|v(WZ`U2FgN!a@I&ZK<~Ey=3Li z^*6#mpF95|w?*$WM)~VZAY)!|IDz!6zVa+0M@c+njg65}o7R2R2ugP*1_e>Q@FxI*#vFl0GIk)7U_TTf@MAU@{>0;G zO+Kd!Ca5G8a&*7X?P<#)uqPYyqzVr+Km1c@!smp`UB~1##X-rB5!~l=4k2T`en-J7 z>9!4ZNyLLjRHDEIR9FQzxtvBgM+ZCSO-#&i}`-0GO0YiZ?vAEn`u6g**5hHk0fp<tW#Juvnb!|D z5LJlg=3AWd&Nw@@ja$P_REvxW_&3|RQpNqb(zJ@xv9`-?#u%qOHeq_{z9u$fiF5^% zvHRaX^c1=Lc%B6ybM#}VnSI^2ca&Tvqb2C%R$p60>4zI49?t?VAIo1PXE8r;gSoOX zfI6%K&v+5fKyZi-ZLP>xe*fa^&_rqR;r6E=mrS`g2SCma^TYC52`Fl7-Uz|PXGEaJB8R|dv| z%rX9*#<(ZcV1H+9CYiDnR0!URd%w~|ZTFHlme0QEXrm48tdCQX=ygBVABG$9k*TRADR!@l znz7G+NmH)Jj|i$RAbZDl1;tpYFYS+TUYodSpt$$+d3kPRQDa*h`J(Qf_sLzTZDc{i zI7PP)GDmwSbd=nxO{q^B<@a#Y*x-vug8f@dth-6%J8%BDEB}4y_fmks z{3D#ky{v7yBS$f#Vc{7GA3HA44rB#f0ER`L$2K3JP4BcUu#upV(r?^z*E3nGu9p>T zg4j#fyA5QcSS&Q9B_&&fIgzUx69qIE1RjRX+di>isl|I zHsuq{pjonrGVNdoF<~0vFv_7@QE&s)htql=wfbPVZ})F@)tdYH>xb*uqDc!liYbZi z_SKbVB)ajKs}l)T?M}L#}HBT z#C^&VdEkBG$GxKOj&Ul6zu|7<(orrj6erc)F4|gkh2T3XhCAaR!4l@4^MNBhLFuo^{`kQq+9Tg_N451& zSdLWYJitw?7A5*}MI5%?R^5>&9He_lcnP~$V} z74iDfsL5m4La>vqQyv0DbJaL1Q~im)^vY7TJ5IXVNPbY0Gd4CBYs#nOG98|u^k$Ub zYZhdE(e#ceW+)bD=8YP1!qx^c7YRTugiN{6_qxZn1<^Zl#jnsQYQWOU#E+n2iRTOL zrrfdp5ZWc?wp?#vP<>V?q~n281Ca$zE8gWBY@nve(I3$%kn^@w;Phy4t&A!+U8|x6SfghHoZoASeIPZQ0f&BgRr21PD(JWU^IE-~LJ;D;=XqT5e;cc)$^#P0I0n7Ny#KInk>3wmCNDJ$0Nmf}Byu7j|1)ET%@<_3tmF&Xn5NM#`qKET(bv zM(dJw|2oCib_b)~e|d`a#r%pJbh2^ z>Wx=IGIZ@5)i-v=a1=h~x=V6BnJ-l>HYF;T+g#*y%s4aYT|%2Rf}$?p#Yl6v$}ip6 z`{=Pfu=oJFCg0O8r_D_-&!xhjrj`-Xnfi`Sv>xWn=yiyJg4F`-!E_A=C|9o0$$*%7 zyRSXs`i!LyIt+@AskoQ)B8;qRbfFUuZKK5fC!rZ!@!j+#blyiJ8hxK~L{D$9138r9 zn*D`y`{)dk2Nu1!S^9`7JyEYCgYbjvaoiThL*T&fw-t0=r5jv+O&8eazK-~|b^@f) z9WtC|VNkqLLpIo;wUwI?o#z&^=3u$4$@X1GV){x*snF>W*IGJN0iV^NHMP$Yn+K*; zlfnDssMEUc8_@8b*q=nei8C`c759O218bG1L-@K{?ycAM^;vHMR-jf89%D8@aC65j zK}A%7=30U-wh@yi6#d84vKB=*n=S#tTUC0YTB1P~z3dnXsaJAm=)`!8ZOWJ>HPv34 zjpdl@oj%Rp8HRnc8G{Xj)f>z->KggBPVXZheu(VT5&LyxBYCzSCd0`u{-p?Qu10La zvNY8_-j?Tk&hu7TY5&?HuPNEi-AG~jPy{we6x!}&#&Vg(=gMdX;YpZ0FV;N22F`hGgMoC9~z7-_zGC#bFaGhJ0I5||4K z?%Re^=x`||wREWU;f1&ZHhByL=g^4yy-v=|?zsGGOegzM|=Py6pCXt{2*X3T>u z=UR>FMo_TMofN6#I8z-W2M6pGPz|_jn=(?}-@#0^l$Jl~(5HY7CV)Z=Gh`pJPY$UFzcz zEBrk^vKi)#Mc@z{h>en_b!~x}&d!nJw|7A|XfFs$|Bgt|>-qY>4j*sV2Z(1;y*64y zC@|n`X7i^CI@VI26@F2@S5$YuBvLs3M%e8l`$as;)2Zvs8uw)L`4(9oxSJ4Tn0tau z4|<2b7Q8hW8G7Qs{60;4Wcja0l?fExb)3hajp07LE(|&B?&aHx?ql{J1wV8O*cAkD z^lf)4ExVdkiYz-HWJ+eh==9QKbAhdP9OU1eY_4$9v7vT7P6FoeE3WW%k+=la^?^!= zCTRt?Znj2Vc=}2fu(bRc0Uk&8OC#yM+%f)y;SmuNg8-|j>;tVwFEb9e&=^H`rXVur zTU6YslF93+>op5IdxsC_;V`066+C%_3Tf5KYmnC zRK-2a1uDDf!GTphGuXh_9R>f=k|c6gjh8FeSe~}Pb`+PUS3#Qxv{(Z(T=-Zvngc_d zGKlyVGS-Xh&ToU;RyUv9wfbXF$L?Ckm-%hw6lpq7hNX1SrUJof;NE-&B>ixfEe+#D z3>sd4C}{IOKvVoMJ-(QkU@3)z{ZKH$RJLz%|23W01Gv9!+292_4`Z$-bUWzPXQe8T z;@?02Wn1A>?TwH-)%C63dpEHDv1{wHI0~TaSnhA`1W|Mh8ge!(_#;a&dlQEeyXyBI zyiC24p>He1c!vo!Tb$0Bp5-eFgZ%ikD&||#UJA`_Vu?u_i zy(MA^-vOQj^(<9(#%!91A07=hH8Dd0`Te+?*h2o;Z7V243~8lw>hrgLsu>M>eA$J() zSDu%xJvoL}=|Vb)oDG1Vb#{JxRu&mJ10*e@tnTfBJml$i`bW?>6c>M8L&n3S=4qyK zPssDJ?19Rwl&!li&CJEk!0@zA*VD<46q&RWT_+x)7Jo1nxSf$+7x&Pro#@`_$nH~B z)gqupF%rU-?+rI@_Ppv=+X%=|O{HE;vX)v6T}65@}_kfXrYw} zA`dP)wgheKpv8i*FCT3_bH@DPy1CE>2BRGXa`DK5`&-@{Jx@YU7`RyZnWg<-wwG;5>ebvOpyrr#tfC(FF&DAQl;mH9F$*4CZ zQ|E8!FB`(aV4@0)3`XcPeS%z#rMjm08(S@bdjbyJg5Yg;z)5NXW3iy6=CPjU*epx) z)u#HMHV?05teDCGEx*Lo@;DizWx@vBYSDPz$2()|wsk`QsT~tIP+IJSjiZ$rx7=$J z$6jJLaStnVm6$vQZ4H=wk(Jzc-sOT=236wL*4AQm(PJ$=1QWXe_vom6-%$koacHS& zS8wv7dqVH0ddg1YGSO>ymBoNQiJjkf4{`M>{~>+%JLW#I`9rySik0ASPiXaNw#rAN z@jO6FwM7e-!DtIt*H$r>fxt09_2L#QQ&uMt()ym;PI|`v`)iep9D*I9Ott4Ik%}ja zp|^jJPeEnKjA62#PKo(JijQ%DMN3YJ4bh&%4*5pli0*yc7429$LCrIO0K~y}@^*o~`83yeCx{TL>z^d;o@ZSoFzFx@H9yVeB)52)^H&*G2J8h##) z0|WKlr?a!qeg<_dYS=O|Z`aHNE?j1q)1GqNlBcmy4Tgkq4mo>WTzz7vJXK~B|LQfx zJ>IWTLgz!?JQkyO$5re%i^H?<*qgcHy4g`a(Z#b)0#M~1-4bs}4#d{;^;tDjx1oHO zO)ak{faTSDyg9X&&TXq=(CO(IC`|lTF_s3r2z0`UlhpWMkf|JRT5cJgPogb6B zQMQejt}R=wc%Qm|9rxfFA6)L9xwXF#zqPx_9TBnag!r*CVrEcq+eh$lQw03Cngb~6 z51P!4)TiWKQ>xq<-IAsqQmF!@IS}BFxw*xUnh;)NE8(RA3gizb1O&9VNtJ|T&zV*U zu>F$m;nVO1(N-H^<;5)QZ{$T0a`0(hyw-jY1+(Z|X#M;cY1Ia3-yZO)kbZZ{?UE_L zghvp^`v^>pHoWdQ&-aVRQ)h8UxyB{ZfrzX^x#^ z46qp8vff{-w(ISXh|-+a$lJIe2(u65Trvj;y6tXqiof^kLD|Vo!yL`#sK)ao$o#n@b>>C;Oe>g@u*RviydaV{w{Pq=EIiXqQa_kdfCUd3u z5$~4W!)d-aW3}G^yXi>M>--ziX9z!pOP3n**>ji~>T%-=HdB1v?GHk>e#}UsrLxJ? zneiu|cs^#HQktF$LmHX13;h%{$I*AGc#eZX}Etp^5H=#19Vid}hvw z_A$+>TFy>fQ+VFl<36RvW!hen!ljh37Y$hM8?&x%yzn@(t=wN2Gww}oy=j+14p~Ns zcwT^_1TjWvM$#IEvXa?Z01CX8=XDP2JAgWy*PF{R6tp+XcM8JQ z#e`v6RgSSGcHZ`9UspYnt{9Au@!Fq%{Yl&mi|F1jIaMFAYv;LR%*KiSQ{yW+`OSXNoer^* zl6-_EQ&ppsG=`0xwpFT{BK58V8-N`hsFyz>qR-;CuT3;x2pk!b*!=u0 z;)-Q7%Mgcq_r=l@RnM7y-zt6FN{!uhT=Ru!hlMQ6fVPHPDsWp^4#_3@0h(no2}Rba6Fqm^ zFOPCf0c$o`eT>-nh1D&|cSa4_C!|@L39#bZ0wz|A7NA$=S95;H7f374_a+V#0hFEb zI|v3V>-F8Z8k*_6>En4CWvo{nAPvj9=z*M!v9I9UJ8lupS!d^OMBZz)ikC(J3#=aJ zv8$Xng~q+@dpup(oOp(1@TDLrX$~kxs+{~im4JM@OV6slHut^nJ<>@n4`g+96I#oL z_}l9B`M33l3|Z|8h9Ztk@_uzIuv}|Bt1;nyf*NL>jvNRf+SL_LE0s>&R?%p9Xz6g zx-8V~pHAxtM}g-d#|T33TYL^eP~kp>{zr~&v&HZEFQ|SUk|F~!94DajC`X+TslNhD zeF09SD~?}p4m3HM2tZ&Rs_Dnwo30eP-Gk0D8L;&_0T)>*dn#(4y$i*FFF>R2rk=AF z1=MTy>s!X^As{QATO1eTYn45U7I3nZ11goPTXf#32+PwuZ17=Q=fb_-z~?n?O}GB-FN?!ditzdw0orevaj9-WaC`Ud~> z*duF*%X@?1)e2F(>kQsN#D@^tKa{nELUA>$br~;Q-IdFebxH#PH~(NE<9&tskC&l% zCEj<@pK`}b9tA2K$U0-jjJyv%xG3sZ%{Vb@chgyu6p(N+Jry&!9o6=aZJ-XMP#e=o-S88oDK!s3})*cMi{Tx zH>lho9o|Tm=`Tw@T>RLGpOgrKtj;}0< zVrRUo16-sP%^Q76w^QxENv(N+O!GXZ+gz@4W~}z)FZR? zs0W2iYI=XD2ExZXLPFzt5k0Svry#X76T+6q3)oJ{M-^tl@;*IrKYcTMmWUd6%Moo+ zu}iI9$rn`c-fi>2vKxL(&D%-0l}-rc&1rT+FI@IurEe*5n3rY5-}WSxa7{9IRzAK2 z^kLxhoq~4I@*Zl`V7{K!B9QaE>wkgRk!w3ECxlNw^$AIYQ{L;m&1Slkxs$`wu8G87 z+61t0i*%-IPe01W^B~Wyw~y*0g)}bHDYoWPt^8X1K~H`D*6rIJ(6+9*k2 z))9!Mctk=l`cR`}{N$Ix5QG~Sv6N80+$N#P~nSPiZD`MB{vR7(pI zwW>0u=xd)%13_}JAd%??t(~J|NnVQo@Y3`>ZO3j_VNMd+tf#Hs-s4l=N|)jWWV>F^ zX;2C}C%7XsRZ;?b;RXx-mw>;av^5_2G0E#d(rp(hGPgEq-)yrn^ZK#z;SR=`nh0+T z?_%Ki74ppzvFr8vt_S;{A-^pgkSln_P~fmBd;c;26Ic*(Yx<^5q(am!Lb6D%oQIK% z@D)z>6_}llaDv0Lz;`bq2d!^)h5;*_45#$OC@a>~CCNEgz|3`O9mNWwi<3PHpJXY2 z@%A50e*gJ{BDy3jnvQn?#3i(L=vySX?(_3ZiO63wu5|?D&kzDTuhx=aw|#t+#H2R> z$*C`_M~uL(Ao@k5sJB<;!E#Q5R>Zc|XF*REc|PA;Bc5ykaK^9bxl=usfv92r4o>X~ z8uw{mcN{-N0y!1_!n>Nhw%OT7gaQfoX6P#SW);^u1of)*IYf`XBl@fZKk)DCpYEGY zDHsR@xfD?QS2-ivF`)aY1Ddheao9y8S?#vH+?&!ouqI&k$iIx%bIZs~<1A>7A86B> zM)0o#7rTyV$6;{g1>kSOyjc{;6Nkvi$Oy>%EEk}c#@$(0xR3Ta3lhCJ_bQQVX>9j0lmf)v>8YuyMCsm(Fkf33wQWV` zrQWA4oy|@8_R+i+vvjy^TAB6oTxOk)rW4H|tgY%h1AJPCtJ+~uMsC6}FzB=G3wtT1 zXosNPhtq6w>pwus%$|an<{(Ru2K9;xxjQ+w;}M*=LUr$x=-W?^d<9#Vhi_(YDUe@l zdNRZ`0+ELPq3-JC`9Zr6#RkLKQSY6j=XYM=5$g@@NNL?D7jve2Q$CV%Eg!~7l$~+> z0O>qNRqR!19WupW5*!^-6}2L_?RX&Kgf=GVqT^t&t(C2Dw)2z27KJm3g0j zRsAlD-0Qf6aJC$IsUr1w%_m1EF7YIJ8jS*~1I9HDvg13YSF2s4CZLew^*7(Q)bv(< zV1}#pvZI1O#yC7o=$Nnjd|YJRaJBe@y6FfB#QJ`3Hy_!%@37pLthBHv0tpOlgPdV^ zRw!hiJ0$n#D(iG++dD5?jtIcvT5o3$hZ|MBT?*>#_D#?m`T&J za<5UAYW64Y56m|y`hR=~f=w!F+6dBf4Xu5gH}xLdp$(Tc^)5wGgmn_N#aZj@#!+>el{0J7nvN)Pv+{E_c;lJBtjWS?(_v4G39ODq ze)Ni|)*7^y3&k8>mWfRcQ!Vx|vQVpze99%#tQ}H1q1EJCABZS=zKJDsugk2oml1!+ z#fdLPzRHt$-t!ZZwQM!ogKOVKikZNZht>qPcfdCJ*L)@kWTMkr2>Um_is~#l(%uz)&v8@YRqC?G%oEMC?Y5b z2GwFVoKM|`G7<-a{rfVMc(q=d#*kDI%K_QdG@CIV)f|nEe)Wm{Ux6+*-HL8J6|%cm zZW2)^GPCO>TG3KhY=<~KlFmo~VQ4NOuL0G`x3-rDiZNw2?ns14F}O&?+d088k2G0w z96y2HvBfteqHiX-^-Ii2xUenh%7gU350KEGv6#fMXIKto4^}F~Z%P(J_#{{I3~K9l zq@%M6Cs#3KG@iwl11z1nhnXV*Kt9MO;o1lrEdb*lV3KZva;rjj`@uYGMn~K}5X;9C z4zSN9K(yb`W`vaR+s_&^gEm)3bgxXO$RXR|ghYAY&i3#b{#Kj|iVCJgfOrdZ^7#IH zF)8dM?~}Bz&Ff`ag^rE`fW0R6lBmHO(yi`XEw%VODLZBSwA9_$1?%X6E;6D8w~f|j z%#&Qo34G=3r!r;~MbLG9s6an~=Q=Phu^ldHyy{C&P{n3lVcsXP=C*I1aZu>>D{@rM zUENKmLhL)W#}w`e1G;yOv&w{H`GKyLcM1K@fE#;<%jw5#S~4Zd(QyHwV{g5hT!XdI zizD8r>@O)+7Q-MIfd>yBZ54|J_jwB^*>^k?P6hg2I}mw0jQNPu)bk^J4IaDFEv;W7vg~y@*6{1ztv_B&$J`Ud?^0q2peL{--d)~ouka@RR(I;9ZExW>cnn2V~I_=F3 zfyldn0)=ZT3>u3eU4zEQeY@fp4 zU!5Aa)J~Ug8e2Z;S1ngi6tOO2wM+~ya-KqCf=zz$nEC-c;d}H{I{&Cy1%c-I8qHl54#O;CWcZmof~oydQA&Ft_Ss3|e-@)aanseBE#S?ng~ zCgvg0Sr%vad-M0Jbe3O{5~uq2VLaw%D^W52dJ74%5&)FdW;SOMDQ)f24n8e?Qv z#&JmQNZeLJmD<)(#O1+Rb~jtuXx9r*Q5ZHQfxY0wl)g>q<3JC~u3faNqHxlg9uFnY zs$jgY{Gncnxr*!259#s8nKt=ceDmKvybi)E00f}*2}3g6i!)6z5Kg5k%G?CEgUm%d zyK2m}h$xRtz45|tCL7}rrQouRA^I3G;Zn1HhFnzAR zp#H0Z2nWh5#<6#J|74+m4Eq3gHOA@ee<(^3Yyo%5vU ztwR;KI;|RAF~(}eu4S=^*Wtz}2ZPk7tzSq~8*vLfz7LK1oP;DM-B7Iq`QqCf-QVvN z*(fDXAf+n5s3sSjevQYIMr<6iPo(`@@l}o{|LD;+5 zss(qw+FDqE(u(Bo*Yvxzsm59(f(0``a znS-vr;zEC4^5D{O*VrqV*NgsT9}~LR6Ee>0wtibj$F-kqE%u#GG-56MN)w7+*oDjM z7xoeD9ay0+YgvapZgVY_O()pXM$Y@x9F3v4yVS>baQEF?6)8ntqzLt7eI#=1<7tZD z2|Ow8q|NBG>Up7Kjh*lH(AS=#pVI`pCtIeXaw#^-feq8d#L&7~n;T9fh$Gs?tu|WA z`fdKgi(`pJZ7gx~&q!hpq2hOk0zGwQyl(x3ZhUqjdKe_d7Qa2Ju!i^%#vs!-R?)!a z7bLrd8awX%Y$Jt18LWpeTv5z_^4&TcT;;aFgby4L>r^}CBM-7aVHvpfY)?Qhw1Q$( zvX|Wrfkfq-XY~iVt|mi1P68>st5f#PdON1B>nNiJ4~W}~eSnw8&79|0cb>FB(7Uc9 zh+A61MBON=`vjgZ#@k&kXg+RbN*X0hs(Jv*5xMsm5Xo2so`;h!G|?@e73+pXPvsx* zx=+E@0+jNOz7Tc+wwp;dwTu%hDR~S@cZt5(YWL@qYI)A#_cSZD`#Lxzc*G~liQXrY zrB zMt{$AbW`(2Y%-P#C=>UNU2~t8J%!#`e}5&`)}`bNs0^RzQbUla`y-I2Ua8fUT%(v0 zi-=U0A9puTYI-IOr#1KlKHu)}I@wo-M3}|)=g41KPXcKP==quG zxR5^SQNwXLjvwc(`Nx2|Qaj$3%b`J)BQte>+`*=Ga|jLNQd{|Prpk-C<6Y5`4s&JM zWgku&l7ld5TBS`&fV&}uSIou^*NIE&b*m(BEbOY#gWR>89;J<@>Tb(fOg2|yirFHY zUs!1RSJQfOgXet?9qGjNK(9x$sIy#fycxM$|Bg~^V(6_%vs=R(QbY3YnAjd_*Mn{M zCJwJ{^{I7NSZnJE|GJtdX3{Bo-4m35%dM?Ho~S*^3)4E6h!@Q7YvY!H2BcDX{gVFm z((m><@#4S%z_Y!4X%QgP`CT7QLb`HuwZ4f`Xw)K4t541{6X{e8Nh%uqZUfnTT<7Gc z6?zmKCfN+BNC!WOV=mz!L7_zZRCloTr|7;w5k`g^+`bCc9lP&|dXptzY?eE!tXoFN zI7S?g8FeKd14LMTb9YV^Lepa)dHA_r#onH}V|STx!F1x@sVrAoy+*Mq`#oOa3#QHe zhQ)b0(70n;Zk#;s`@a3Y{+iZPNI9V3YK&7}L$o#qty{Hwy&peb{Z#&%8ck$Vxw1dX zv{Tp6uM``uZfO9>K^XuBat{Y5A#82xZ7>DA#B-x;?U_5y8e%2(7Z9EA;rXrccZubv zp!QT82bpkN$#b$vYt6GCOKwYdd${nMd|+Mz;oe1Ok*P5XqV67R*@Uo~EX=wtSJOR|N4FP?X;)!#2GeYnN(XP$?^ONrDKzAa} z(DR|;viIrcg>VZ!#NcNfGQ^K2oh;stoqfC7ZN1>$z-_m{xL2x<(|~2uEq;aG-)0-+ z8W`n34mS)*Tb$!@yj@PolZIs~>~;kRnW*x>FAeq30cHVH^|(K@7STta-?=gTVkbr^ zh~hG)?YW{eT+!sT1Do187Ya=i*XZ)ttRQ$UTQnse_mw-!;SMT(8m_=&HRKRMveIzh zf9|BMH)MIU(crPQV52+_JmzAlyhff)kx@0CUQGODX#_ibVoOo%Q%tp5*DE}C#5Tmc zTA~)GG3JtyNiwQMAY#U{uak(UZvZkS!U5m%YQxJSf6K;lNQ{Zdl4F$F)j-G_%1t*$ zO_?6gl{u+=lUv<7D_Kq2lo~-_m6SzkF;=X!gptKoTYl_t+i6Xrlid#|Pjkp(DeFvp zCEV-%6=JKb#?M8|GQM05U|orUCc(|i(y+Yu?CMyxN_;x3ql}B5puLD=r&)+DyUh$m zZJ^YhxW@GA4x)63Tk?;Q!LIuq=gXHFBl>=jF-AK4Wy4Lsl8v7=^$ z69+=&T11XjXOLXYB>hyfBp27{&Q16Gs$3@MyQyw!6_b2P0~?@dt|iU?8BP@&FQ#3Q8*}4Jx3tARsY7fsq@MlNNalLQuL!N;jixV3A|=7-JjK zu`z^E8?fKaUg=mbjz|=+pA}QlWk{Wi#fPF5B-tmwub~7gJ7$XX_j-x zyF{y?_<&79ll1gfC1hn)B0*1@E4W~O&MA`MT+B&_=Vp0#{cDYFX=*Q&{mZp01}-E$ z;{#YgUVZ(x+0tpF$W4AOefuNx50})t_619eI3ABy@FF}^rehOOk6wbwZyA$yTLoD0 zZNz=zrs5^<&NrvXs5>j=S*M#Rc3Ij``(mMm{?t`wZhv!G02r;r<6|lPrOqQX0+`Vv zvWz-+_wE>q^?J3Rj1BLVCKx3h^*B!h@W|8ZC^$CS9 zGwU4ZM{kfqDg)^o^T~(kPglkF!;SqlmOb5u1{K3%;OwWNP(ERvFM3XlsPS0WB zKEz!5vx}KD>P|t-zp;|A5kqxk=<43`thmBn;7uv1S-K?knk66!y1&~5n%CH4;uM7~ zYK%VO>Bnn(a0MdcZIi@CTVRF$>PkH@lU+8of=?DnU(Ii50{&|XRHfF;*b!C0GwI*# z+Xh^8;os8dmGG=m&;H`#O6{DSE**8+m_yFjVF*>776aLm&2KYt9>l}rfvv^#f)gge z)FC_Rb;8KZ`A7MS7weY%AETHH7TdVxw^`#B_ffg4V@^|zPyBGi5IVk1D|azqYYGl_ ziv0+(f77p8ze@Fp&kz}?;|b0L!hK0%zW==wQ4Uk-5Xl{;>pzUbbq(`pN=(NvtGrf#Rh2-z8=0Gtq0fd!}b~( zT776nOcke52>f?E)fq0wl5B<53zAwpp;T%RYdwZ$Z61Cb&&jy)O;4`+!Q=N1|MYPC zLDC6czb)W%U7_!Bs)kmInggYw?RXo;V=2O>{oJ@7%jQqklT~Fh6_)+XH^**U-F|Q`SSWMPF`xDIP-K3TW_KxmwHcdX z-0v;xyl>g?F>}!@0qSJ>a#1#=glH)GP&&9=uG4Bn4_uNYtJ}CLo&MLokdIcH(s$lo zx;ziP;4t&Tdtbhx;>C$^fSM+q+UG7;A=|Dl!s;3@UlJh1lPYPq)E6q>>){>T>4i+w z_UOPYY2tv-UG(+WFmWP5;?l1*f4_{gRWv;3`5juy*hVKSYZ;!iL9X7H79>Rsg6>Mu zf_(#LWw76--o+T)>$Le;qM5o_9gUi-_oHjX3yW`dmZ^)Cz)BP5JBAPJOJwNO&~i^vd912{=++I+6+3=2`XrQlvfz{5`ll@{L{1 zK|6dD0thW`O$%w6&?L@61FhJAZ}s4+;oLB2=%Iq5UBVB*4%^%6&uFsf^7*cPYuXJ+ z^lkJ@AAA9ZgEO^!h$TW|C@c-AP4v#G%H{5Yfgg=P+1Ix{hF!-xWhD*eY2&hM?!P^U z%}!z*rbEIfa`W79u7HaF(_xQm!Tr*DQ65+kIDC2+Ze;~s`y{9>9ck?|l<&v0HTpz( zL^Pn&2(zqdD-Q7f5jYq1Oz)|Hei#vtVY`$Y!mhktMW1pp>Wq@4wd>|%RQoQRG3_|( zI?N*|b5A=QPHnr=`)Kp%5TrUqGN-v5i@Vx3l;cOX%;EDI3{VO1Np9$W^zGusb_!H6 zvJ5=Nqjo6S@{#c2_iCkDBq1YLGdyjwehZ#H#KR6~a)0l5>x4IFpq~aKW4X6VSr=+~ z(n9%y)>S!PkM`C7UjG)Gy2E%YcSpzL_)un`qNtCu7s1t0>9!v>W4TfF@5GJ|ge9rZJ$i2#*BMFYxr|;vT3$nGd$F#KIV4%de z)p2X(8ArCItiy9wMk9Kvcxb^I9?fGNM_JRJRHt#T@NS<}=5UveWVVW24NJ>gZMk7DoH8wN z4yENw6*lcbANP2E>;wX1WIr+iCx}?{N49;7259YGAjW#+w|Lb7>^M#iG6}}{)&v2) zSXg+Q%wVYn;@#SzjC5~SsDUrW*5`?+xBD-@wg3eUm*#9J{;%}Je(di0uglWi9m+fz z1r{AZq87iUaZIFh1ygK-yXSGf zeo_K6UDUtgtf|7EVlyP>o(i!AV);YSjTO>3E~mg|VD@QUR^&m@G3lFp(4`}_N3zB z+t+rIpjY6!cgBjnFhs{!UzTA&d*em{A*g9cwyU>`w)I!Tx zRYw%f>qyH_>tfS*%WzF9q*~@+1xFi_yHYXJ3j*-hJwvXf3XOb{w2Cpw>LPIzS(ki5 zP5L}J7&fkV{wD+S#!BaM@2i_x=Gx^+SJJn!2A4%ILmPI$1~lx+iF-`CTOwCj&ukBW ztX<=PyQQcL5j~@A8d35Wzak&ps)U6XpGze@!T7)Vcz;3}FQRWB*(VM}C2QYoQ<&r7 zy;hkd;}O>F;dxA!RnPc{3(Bm3t0iM&>nWq>TcJcL?*&r6Z=46`$D1lxyKx&FOX!(tHR>_ci&z*Q@BmnOA-@LyHd(9^#z`zk3T&ie_k-Ytvur_ zX{2V{q1j6(YNb${xw); zX-WM#1Mm-ABnRi8IssIz6OpY{|4u;kF&_Nxx}m8Yjzny;Qcaa++{goCx88FC*lIaw}3F_Oj&(ucvsPlb^#4XPJh zyzvgZlTFaemVfxPdwH=g%~r z_o{VRbcP}=u+a(4=aOmY6bw~c_#Oy~)d;twQ-3oCg2{EskOCD@p}ehv#%#a|GjRSZ z&rs%;a;pZg8NLF;)5RaOeo@}&iHFY!M)FTGG%Vw?^Jq6?r-=E10=6n6H~CR<*RWQo?LXn$mxC(U12`oyv>=Jk4yt`)5jkZ0!`t z2SzZb`7RAkI@m!V;f28C#~Xxq>LgJa(D8nd0k*C$6q0RL?(9?@Jj#RaOO~9K80io% z1QHPhFz<*zYg*}(8|#6_hx^ZmYhA+gG@P${dLFtxNOSBLo@|$&&`k!~mfa4wUFM$t zx_IO_oR+yT=q(=*qNo&=xoH?Ip{9gG_taA}V0wB!9kS6GQ^W|U)#>aJZ}&8~=x8p+ zo@%LOcBD5`ZmM*pD~3NSq8IQT_cwig-qwFBHOKb<7@Hh41e8OWc-#|Gg1S%IKLkJT z%P4N9WK+JX=X|*DcRFoZSJKEC>uuN2y0=;CH%X6`z|=tLmXsGtAb}~)m!AVP$7+Uz zZcIpVH2y+f_}m;bP>EkaG8LO1$Ss?GE|5*{E5ahv)GHh~Y7s;SVbSZ0qYy!pWW5A< zAS^|0{E;t0O+55Keq7Zx+pKA(UEuu|4uf^1p(%)vYPGfF(w=vOI|uj-6xRvo`7+HW_Yj8RdKr-qF~Pg{`5#`92n~%gczMT)t(NnqoC9Do^mhEic2!8bzbN% zR8e)hv>ZoHX1TNt3k{0<7J~*tbM?bN^ri}kc-(DCHZEYK&jwd!`3mhmlFlP5esVxO zb^)P+%*vl?P{3a&@-J;K#*r5` zhj*GP=w3B>ju^TC;xJ#)8vL)MxRKpa>%suI4j5eK@~LLvYCd4o-QQEOg4zyXy6Za> z710&|f_Q9<`=)(-D0y`tRT^Dh!u4WU^hcC-kHTVY6&9K#0a`E{8hYe}N}C-ByajFF z(+cct0=A8{7pRGRY&G@g#;E*4OJe^&%*H|czl~a!@?zhm9V=>?Vws^GbXpV^09|Nr z`HvA1o`wAWbDr_lPOq0f?sr*HnSYy>28E9JEWP~vv^egNXxrX#oVcT0UKz$)tlQ*u znBJ4&OH;n5d1AX&zGB&n*YjztsmH?|<~jx3`iG9{bLY9K2F+QVos%r{(&SgFCU3~* z$wwA0HACM+AhxEv=}#LmL^fg>wJ{AcZhrMZ=HMULXLyBC&Kn+?m9kMDFpzk4MZ8?D zK@7Oglz9PpSZhzu)rZ6u%L0P~Ou2WDAfQ(fA^=xuGeXpC*Mr%Y6a4(X8jnrL-VZVN zUzLiXhsR-BClaX$A;b*o+V)E636ghqm~CeyTXPBWwCt)muq+c@F%^Oq5Ex({fO@C7 z=y_b$sRX?AVR~sY*pPQ_NfA_NMekB@HkshnhXTtiB)e|{Gn9=FDU5xtRA5|;i`0Xd z+Etms0srzjGloxB+L$iy196}ZN*I7EO@6M0V_x%pI}(3@^Wjr;CfaDnQ+eyYe0G`toy4*Mum>heXbS67-spd7 zxQ?P;z_xTxf{8Vu#JZ`qN2K~ky>#fI@g|+X*JTT^ zq$giqc`{zVOj{Oddm)!R^CLLC_Z7zNf+;Y^Q{O1fLkVv~r(6c{mp#2ZQR3qmErMuV7DB>?EDuGB;ik`^)9{2wN&;_0S&Q7MNx7 zW2y*#=-XH&fRUMEP5tvR^H2JGO6rrO%pAt_#e|O#Q`3ebjv!bW5=R(F3A9Yt|1w%$ z>aaY#5)+4~&+1<-RWaUnE-2&h?dTD*6A{M3q;;`*okmCML5nxw&NuU53o$WtU}Bs) z56cta_`yQgD)-*z{F3%6yjtgqcp|h;>dE}n{AzvIV|?#czBi%|(ve)T3t2Gqf)&#B zi3ixP%`&SiP=tLYBlnS3*Wy%1V<(4z*#N?$q4QeiASSZ=VuYe=%D0w26I8M&U#bxO zsTObR0pb)?NR;&rx80kz;Xda2y9Ai05srIZn--=@I3VfYBf<4yG_;`7T%Rz{lrOur z@q^sHFKrS2oFE}NM zHAD-@8|I)e|dIS9Ic1!h4e(1oV{~sMX@VGqQCn{a|exUq| z?^X5#5{V$~Mb?nXs!n-Yt^DhynJ6X4W>Jq|R#J+TqiZwHI-po`P{X4F!!l_bdQe^t z6#DFGJd3vVVU_`(tvp`&we#O&bvZUFnC$cEuKmv*!1LrtT^d?*&Tm$`wOeACMOXme zVX#`k6+x~wpWEDl%6dOt)=l`R8vw=S>n_^!4SCJ?CK_NIrW)1s1DeLZIw$v8$=S^y-9 zzWqIf;RLIFPCMp-idi867zgVPt_1vHlbT0h`OE;3JI9`e(`69J?G;-d?7?cQHFlcP za|%Crs+Pob4~no6h_#!i}z-uErp6)O24FZ_Q^yg zGE2LRmuN=q6McDPih`}_<3xCxN_0KfKIHxf3{Hk=!>|9xk_?`THOB z*T>GDG-gnCX7uFJ^=lr>^#}zKK~wV59)!S6EXn~3C+;u(2S#(nL_IuFX4-9YJDQn& zH|@}ATU6z6?u$fHj_G|jdJ&_E+F0tKp1cA3;K%bcujW?e+#6(-5iv~I!2Is#{4lmt zZ%+x0=lx|ITVy(o1N5hw4 zOz84t$GBX;sl+|+{WNSzPA^;RbmKOvFN-}0RSIhXdtop3Y|KP&8LvBmf&Bg6#@n+& z!&&X{nfZ72%{oCoJ$psL_iJy`&kT&Tt4K$hHW0;?`Ut%3B5tgaZZ<#MP?+B<%|k-n z#=-TCXBcWL7Fj?T4nr68ay66Sgz` z%u<{cyzNiV3p>u;nv;rD?sH5Ay*SbCgZD=3d!1+p?h>*M*uBN9)$zJq`y=1D7fKd` zWvTbY!-%L_HTkJ^_S8GSq?(oscp&v+_yv!i?%R8?@DT!kVGM7u6O%V>`eN8mp=pXj zx!mGqTcK4{|-rEbj z);{UNj0U7U8=xB|1~4B>SZTDmcm`G-VoP520{MnuN~PIvO}Nph9waD`KFiqOK^pF! zUsxfuwFFiGL9)^%Z`&tNqzir4rm)4dprEDzb2k~4D zb6VSz;LEH8%N9A*NoNn(qAj+OSFtuRQ4}+2*DzLU0#Ub2mlH>|zl}?49vT4cU}ksv z1r|=eT$ZDxk1i=vaiS5?L z(wN@Eo`cmFXOOgh6iz&g!F3^@F>udy+S3o|hr+ecEAg#Dc1*UwTD30X;xXOBmniY@ z7k=@;34kVje6QlQL6n4;azzDGE_u>r|J`qaq#t7ZhZ~u!hr=JW+3t-)@)Fs^m3o>{ zp%Wb~xii-}1}|EITXyc_uI3A+D(OlltV7Ms`)HO!EIvTWu-Mw}>l5LP!;Ft|9hxVC zp$B$vmHqu}f3wv_#GaMLmg`8_sK7KrBVtSTI4y}Oc9n}ran|kT(UaV~?O7C(k0SkS zUP*gkz`V9aOF8c)UFl8MmAKmsSkO06<0AU=!*}m{3Hx!2u7y3d3!?Vvl_4=Cyv{qA z$KNKvK=%gShDHs;Nx#RI^;7!!L;m7yy-QOc(yG_kOe^Zc*oF?bP8!$cA%e#HH28o7h2UU7nWe?a@zJosw zk-48%0doQ4Ekqxy?#-FtDs8IBsnz{l?sMJW9LCG|=SwRKdX6l$S;2B+*dt?YMpFkQ zAD{%ejWsjb(YNy%P#{~nI+w+0?IFjXJ5G;$ja;mq%rI#c9~qWQIJ-?lGU)HEgSV~_ zP*d}HF^b02!kkE_WADL|8H#mtL1RXn#je)qen$m`e6G^cNkep7z(A&~TfGX}HA(cA zz`AaH>hA{PLhlYS^al4o`B_maw5128zAg>sg+v3mPPi-4e^Fdv=ELWZk55Llxb4cA zY%OJ8S)6F6?!u$v(|U%bXB~pkl?7e%B-l*Et%=u?pbE&iLLquZ*=z@fC$_`wBvAv! znrL>(*7dT74e~nb7?<26;c`!p9rX9F@h` zjaA(W9{fPB@65jRofo^-s&=u}$<060eKO1%ce$C2v4BGPJ8On(tw8d3xDT?j)~4UQ8`Rx<%Te@>-<2 zMIe`S5K-lo3qkh%tJ8BD5dA^o;l|Xd1BV3dj^AfgRJ+B(pKtp9_2Ng{t8V6=znl12WmY> z!(mJq-<-(2A!$o^$sm*sWVl4BXP??vDLl23k;@flpzK+e4$($jST?-F*)}oSb5qV~ zz+)Q`ZIRsK?k8G(oDKqakc{9pb2Y-p zeR6|#>@eCBC=q7y`W?yI(SJ$c8T~&C!urxs4IPm32y;M9vNDjG)LZ@n9^J%t8s zt+h~Ed?`B5pXd0akiRO%H}fi`JZCtB`j*4};+fT5v%fgq$*v53_Woa{qB`j860(}U zC3>)fls4!~iWqM7Z$&(tpQUZ_0A1^meE--4u^ZZaH@kRYMc4f2Iv3isks|b>$0yKs zmFw#-fw&2u7j@{y+=M;*-A=~0FK(E~6IJGAyWf}ti#3dmS>m^p%r0@v>i^uRmvWy_ z-^6}rny+~!>vnb3zQ3^L+Vv$NE6i~Cy|G@oIg!;(uDo0;N=mkc@rx-1E7{BbGatem@Yvl! z8e1i3Ds!QvqPL>0#o=4M%#M>O?HtDx^{w*GyoncDsi7|hF9>5wksADO7Qj1Q9d}Xt zcZd1?G6Q`6?Vth4?)X6BL4yN%asg_HYqsG#*kx)u{2}U2TzjV`iY!kPm*xyztr+jO zi46`ywgj#G?IQK0zLi8-2SmRJNlT-damS5pTo>`DFQvH8qZ!+ul0Q z=Y~^cC}iX8BF@M9TqVzb;yc|G_MAcAy0HiTB?Ai#dEV~Z{5xNC{%vJu{py38-yQ6E z>{huOw+V(GI0cuEi8pndbI{pk(Lofs_Ue`3k4tWvw$il8oTuW0Vp4i*ySj$)O~qfx z*ErTUuwQFZvBs9k%rimMKrF;G)@b;Ccw6QH7>?VYdZ5(nNl#`i@|0(Ol5dK5gaL2H zC}Tg>-TDAF4-x4p*O873u70Vz#~e~I)NjY3msI{BFd1xX1-GC}o)%ec2sC!l`o^E+ zA-fpyLe0qv0qzmc(?mqN^q@o&9uq5JUDrkhHDp*)oX&oyggJ$d{=55gH*^5$c8J6) zZg=*XzdUFWBX74EmfZQ7k+)lab3LF#8ie!yE|mMkVHA+qfSr zj}$g2p^8nAKC7M2JddaNKuro-AyU^zN!}0Irp*u%?S}y_(@=q$ho<8m4Nwrsn6$ z_yL=C7vG)i0Ag%8$SUAQ>aTC?37IM_kKEnoL+#xHqiO!#3n;yIvqLAki?jA?d%6y4b%c)-Z{-(Tcuj-G1Pw6|DF6 z?w_`0QR3@16$K63Iw=RI|8Yo#30(aUA<+bYS_;={vhN+e?kBZ<9HL2CQXS0VE-#;g z60h(i^#%()>)T7+T@K&)UAE(pbJl2>y`M_F+I8(^>r}`BUMQp3{epTZ$4l8F+y$jN z6i#~1)?>=yL~BLxFRvy>o06mcPn{vVDt!x{U;_r6U#PE6(i*(e7Au*1(^IL>EJ0pve#|lVGr1zpH=R*cPV-s2b(#!&*#u=<@vnNQ`LJoV z>-<5f)lQjpQ2)uZ>`_%$`BRQnlx88nQ$zEuJ$^p9#VUfUl11U?M;{DaMqMqKSK<)x zLv1Ec`m1;xUy9V5Hg|tohLihr^rBl+W%DX|BSVkl_0%!>+Fu$!5_dhr%O;+3Pf4%6 zmV*wC#Ia(f0?R3qi1D;CJ&ysx?Z6G)H*9dWHUQ_rP0;vB^_X>MqjmjKv1;@VT91;A zGdJ4a^~qzt72Irx*iW(~{G9sy6CX+*Z)W{Vsq>rf+n(+^0dX8JuGoPhUW*YQQ$=>a<&rUvWB5p00q2)E%h2r2P@nvR%$Box(^Wm3vS@0D<2you#S| zJhjz&Y&YKU(0uLd78wWY)|bc6aCY~n66vk#dqD1`#=^Wd9=I|OPaQNz6-Q+F4F4sc zvJBXTl8K>NZkRxZw&Z0@)QRo2@-s>_zpzc=2K`QdGjbFfQK2 z%ba|cLqZg`1A#m>GP096jw99Yls(i=ZdZH!Sh#K4Qu3;IZ{!tGGSWW75#4oUc>%SO z>y;j!SZa-8z7}-2#|fZ&k5lx;ZVWn{1h$s3?Ton0_92^>Uo=E4C6N2Zdl)1XA`>#( zWxF)61vqVd&@F4dYNBaOB!EJ^VFQt{6yJlzKp*Lf9+19Re>+w-=%@-0tN)D!;t{$McmX>O;(}Xomp1-1m^63cD0v&0JzcHrI`Px2`J3V5QV04&8PSs&Ywf?RoT% z*P}b69%+i2ZgXTrgw&?wp25&^Yj=>x=g-wYEW|d8=!%YGB~Ld~yI#cS_?3StC`eCl zascKzU{$57-G1I#TulSC=yWuq&ewJ;WoZE+9HloxQuN_9eN9C}0=)}DHK`SoQe zu)sC>fMY96@ycK*5~$C7XM!q9!t=i*gkUNea!Rw&h(3qvijlKJ3V#X**~@1te}$0V z{V%^-J@3MY*w{okw#AVibItoMDEgr$^S1apq4hYf;lnte-_p6Fs&#Wnx`M!%*RaNV}J}xX|*Q=!7cQ$)t?S@=Q>Qo@% z#>PTFW^QK;Ia$r3w;(Rw3?XUU>dOh%4xoUO#~LhrGFanQMinjME(PKI$JI_;P z$QBlDp82V6VfaFa=w~C0+X|lD_h8Xq{*m+QbAk1mWT^;QCAwC@`An0ylTwSm~j%MKZ%kAmFB`eJlyQj@uy9NT;k^y zN=sb+ast=Wg-i@8-sv8dm8uQ&R`?Rg@;EX!VM}Or45M4$T@npSa-J^$d38NjaX+9Z zS~yAtx(HSCqnf$;f=(OfiHxBzgb-=Be53Hm~K@dmi~5>M zQ{jl1K&;}L#zIqSTk}oPUn*G@arQL9o+@a>C60^W6T_+p!SO0dsX)gRvA7i<8d{@c zmNs3*CZ0Q=`%SUukavdUX4i~8Ecdsm`zQ5Qg&}>zmTD%qoJI{ixC@%!W;dUJBCVQD z%^(EvTjw8L0wOBM>iEqadny+usIs*DvsHofGhqv2W}CT{^kjXzROUhjO+<*lYUluM za-Z*B@cO^>^ugLA7`mHu*0s?6$J-r1z}#zj%uOx+;+I&^ILn%nkFy6tb19jU4D!pj z_Me~MzFvSuEPh~qq0q^0+S8wTP@3`b>$9e<@z6--ClG9nrt0o=o)qUd#%7j$6aJ=< zP&Xja-T(k~+V1xTM8qdi^^GBN3PyjE%bX zj*a&^aQl+SQEU1nk^pG}ugabkv{Ag|xvWW030!k}gWPafoATfGw`^~nJLqZk_x@tv z#Wrw9`TF3OlOjrmV+$F%ogzRLX}u6s$mJ)|zPoYmK<3_jujs9(jcx7nOa8O{(&#EK z1hut%5!pg%A8}w`l1u|VI-x6D)U4Vo~`onOGpE0~QfLSzkTY$*((?L4T1sxB}ov~^M z5Jb|2eWc%0A#{k4^w&n7;ugZ# z?NZY`sNDz1TtY?rDlqP}MEBkV7@3m5%*E$3`1b|6s<>qV*Q zl=A^ko_q#}V02>n@c7`OKYbpfBqVLTjGu2i z9TgRmEE+M<|}R%rwX?;{48mW50fA8!8Y6vk31T;PuTpz{V$wTImDL{RJ{! z%nJITvUergv_`z;rhr@jC*&)LcuP^IJtkVXY0#-_jV$z9u!}ECktPC3Z-{4PY`*S! zmvGAp(Ezlvw}tL}3ktOF{T*&tqt?D%x~v!sAx*W7w3|_79~8HD%;y>Fz1FYz0zuVT zltJk)oAi`RD}%=eWHfYE>q$xet2*sV!`VCsza;<@#?vgbwUxzo&>|r5U}nCg>DeVF z#_FjX-#Hbe`SyLU{w<&6_j=js;2mI4Q$mj#WZnM^ufClz?w=auxA!E>eS%zprJQ?T zVpseAH~dcDk5n(~*Woy!l*PLc9N%O4uveA^;=Q$MYuN?4=#j<~xJmU}@c65c(1x>z z8>SLmiDE0$9z(}U(x|vThdssFX||2EG9S9-5N2kRm=v_PqOyHv*3wJsH(`cR!(8)m zY3x2YOK4~-=MSZgK&X{Ty6OIRfMLaNNNpi}kNE`a})%93TCqMpwZT<<><(d7W(Jsj)d zev`rr*9%O6j#Io}8~EH1KgAgPmP~-a=QX2}CQ6tyftq@2y9>LZ%;z_e1GP&;4ET>m zoi|WBcnVa z0$b4BcaB(j&hUmBdh7P2uGf%e@&rper`WUGoYr@2V8Z4yEPBSqJwKf0`5L8l)6e_Yq8yJ;ZrIjJ{NMzZE`+O&WA?`@C0QH2-o(KDmja^!#(O8T@rv6M##JTGO$A7XHfzCn$Bn{Q z%pS|lYKPBO-M#n=4H@GOGp&=L?Xo577=?vbu*5@1&^DGaIS=fxg@uJJ2P>ZBsitqt zNvl7iO$tMnp(DNT`OShkgjJlD74&t1olEc2yt&u7MW{D}u)2zGS^B+1S47u5f6%;l zAh`$f8fWaz8XDAn?E)B{=}K$1Pk#By{nW3&L%c%4TfX$CC_)k7ySbfq1fZ7aVD_U-*5RPT*`l_c zW`TM_RePJsSRP6(#A>6>G?q_zAy_LW9j`0>W;qr%WLIkdpKK~kmyJpsfa7ql?|_Oo zhqGnSxiM~-f>TpH-se|!4=+FcZ|7g%K%ls;XW|lvieFd72w zD!M(X!f_*3B@0Mo1D~S4bUb1J5DZ2h5DlL%kKN#0~_63ZGES-4t$NQ zxL!!P`(F*_W?RPI*V+=}e5^CMr%%^}rT(fd$Y?4%5bnXe9nrhmq96)lSc1$*FwH{tAj;P3<)mMHMmpVIWZIq0kNClz;-t^0TonY@-teY)1h>)2aI>c zH@ja*kZ{Y!B?x;=M3soFU^a>6z~H+IG&sP?63zhfP(}+A@Sof_0rL_dRowHTqvVMW zQm+zFFLJwp2~P3uRmmgoNPQ8VIFoATS)$}MOANkc z`UK-rUjd}@ryS1SK9GM0Ra*XXcOy1*s>rlqNnyVp2ffG|Qy!HYCKPZ;U9&|G4G?2i zD_SNAO#6UsUE1OX@gmB74n%DQE@GA4L`F#XPJu|W+hpY-d4IVuRqoC+X~%%8z9anr zWG}?N<~wK(__}=C?hQz%kbx^%MQtT5g$N*XNCVG-&H~V>T_z&4&W_Seh4dQBrid^| zUML0t8iM?RaY!U@5(xwF#-%DFJZBBO4HzOY6_Q5CuSc%l%6#=kiS)aR-zmJ! z=PlT;^l`+8+w{Y7H;jZ33-M{Z=T@9oC}m7nI&Xy-u;_u1UWnmU%5bgYlU3sSFK@Z} znbEGTSYD<2#Di^JVGg~@PLQIXj?QUdQe4U&&U&LQmf762!TC;FrPND1evT9n&A*ky zs35e9zC&?2ELR&1mdxX7t6g$B3ltr4Oy(^pgb)k`&n^^OA+@`r9sbQ6!hW~@c{H=su91~WFM3Jw568@|7oO1#vY z6XtT_^tK$AdCTMb_cQSMs+scWrYFE8&)^3F($XfwBf0}FfF7flYA0zJ2B6B(pbWLp z9IL`Va)^4>*?&^xcP)GO?Qc#9^#pO-*lqC(dc1CiiPPU|d_zZb{gT#Y0F{CUX-fbSQ&X_;&7^U|Kz^l*^=aoJ))o zHOyY;c>CAJqFmL?cvhhsqZO^!fg=9X)oOau9@KlPSV-C|<7| z`f{=53%R8Zfq%!T(eFV3UEmIQ_(_HU8cOKBS2!mpC{|NPY)28E?-q zje5Avy-KY0zOcXl-U1ZsM#lf}6$_QnF^9GNbzeHbr9;b9P#)vZs*kgim~aKd8|_*| z?$%TKj{Eu=xSTIY3o}AH2K;gXW_O{*-V(ZU7L$QqUM^>qAITXSZDPo%7ZwBN4sws< z+-(RN%>-{T5fQ1y4jC-Msq*G67~3;-R|suva~FVGLbmnbp;aJdEA!2feq&9|w?gp` zohXIHQ#H(*%bKC6^mHDXRE(LU7Hx8@--g!AIu{t`6<^XB2^`2h^$?4NHe;X`%3%g2 z<1~qe%L-+{8?_Cqu|8q;XT4OhpIh=xN^5eZ5R`e&=ZEQSJvqk`byF!Y*`H$KKrru0 zsn!keZRhmtP>67;4Taf32E=?I7EQ-^rDjiy+9$oSH*SxSx7tK zjBIZR!KflE_R5}6-^3ceNv@-`oq(aIFqd9Xx8uJw=uM60BKElyCQd1nCfzD)_&_70HRv{w$R@IUfMg|MXfy&0ZfaTTx!B1mi!jAF-pD^ZM-4IWvF>GZR;iwl6`_`?a@|1sQfu;<_F~t_#PT{~mw(akMk3jqrl)7VuI%o<+VrU39gZn|vN@n=@)0Bo zDdC(pzw&Sz+xg|OWK$H7EX}d1EXnOO2RbO`rU)rq>1su)$~LZ2J5}`=P(u=rR{3ug z%a`S2uSWom_ER_GfRN%f)iLhuH$MZIUL$8$7N7R?g!L4V6yTFoEBt2TV&m46%F;cT z=_Di&k=^Rb%B{rP9VlUH9CbM|KyBw|53eCA2GX&MhCKb zd0ZW7@;emo7`PI!pUltCHvwXJ01XUFjEDDwewn(Am(hs0CD;o0Bdw#o;K+aZ0v?xG zhX?FuQ|)aIfd&T4{v%Eg%>K0|2n@akM%VXcbyqQG+<5SRfZ7-CFtH9s#+;ktojf5| zeavrEOwquAE9BkW+(I`$SLr+|wX)ac#(--=YWteP&fkHza#OljLL)BR9`@D-3GBUH zeB}OA+9g`UI1Q_NfFL0t%%5BVj*VH#tT_I#lTB ztQghG21fa=t=WdEfMntu3D!Sb_JQlY97}D5;p4}@3H?%k8Uz}ECB}vK|Dx{&27ONI zZP>Z+VeSv8%-mldE=VuKHW~}*2Wnj{gX5Oi{vT;y8Bo>Mtu06?iXegl(j~2QNJ&d7 z-5}i}9h+`xq*J;(q)X}U4(ZNK$2U>Wd%X9)@4e@o@6S2tmbKTKYs@i6JmY!jY1!2t zYQ>6b+iJUatKP1)L?{Jl=G3r##ZA!a#?Z*BzzM z8+2XXm{xD00H-M#%@+$enL&kM8*yVsB+35N3q zE_*5z7Xpmr$_=(GVctTRAscKpVo5{9rdV{*s`9DH5_S7bi8O*W zXP@p7(HK=!BGdBk9e}JG;d1S^;KqR>Euqs5_3O7)uGqf;jeb43lqU~JdO|-9y_Ux1M*pRi*BY`VlJm zA2IL+uanU0l2ulE2l!6(Z!dov!w^?dyJpBRt<=!A#MzF8!s6dvfx- z@oJj_etr*8TU*<297Q*gn?5Wo{XK7@jX(%DP;+O-JXlYx!Z zUq%X-!UOOzjVGngf2Y-eB~Id1H}Bv3u$hFOs@}nKYPh{pJQq|+Z!#kjU3r4DHpZ@K zU%o@yE~1($eqbH?B$gm#{*5bEoZ7k!L4iiW=5t=v*a|&i!)2u#=$G+WD5b-}@kI6E z{Z;lht{q$@>rXy~KJ4+xfd2c>j?cgQiRb-Y4=*oaFcA1&B2e+hjad=AZ@QDRbUdrq z36O)&fM`dgcr3FB0OFF8k}6)E&*}k{bsFoT^X=+t6u}J9pC$@R-mrxYt0yA)+j7F? zxgcDSkf*iXSnN>u#$v`2ciVR>WNq2A4~p@1O~eakKAc`n$!61r4-&FUAnuy!izab<1z9D{ln?I_A|N74nh3j%R`cm>o+GiGB zpxKv#vuV}MB;V2Cdb`6|?_O1{?CPOTRE zm62#*Al)DFeL?s8qWo)N|Kp1P`GFx(AwW~HU0>{N=Y#f3tiBiBuR9CiC14~W;rILa z5vN%t`j=qFZ`Sf_^Zmy)`t?Eh-BsuwP*@HFY8E}^94B*{9{~7HuId5KFAOIc480@# zU`eCOpEvcleljH81v)RCfQe%LXm3aw9mte-siyyt(I5i^YWKdtPgi|2&GvT|2l&Sq z$X(F~u~VSvGsS27-B*Z|jcxp2SJy&CqM@XGD6aU6^8O!Ozv%Ab(o(10it3`oHF%6r zhTfOWe_kIAX>?Of`^1o1^6|lsa>d`f`&nKYt_X4zkC35e5bZ(>&i|-``x?|GrqRErc4k>)Q5*Sre#r|D4qOKm6gp zH$QP@f>IFHA)OdbNYV@a1T6mhfB6>-I)IPhlSVuP&|Zp&{TLkoZ=e2!KPH*q@$m3q%)i5+{Nq;cL|CxEsMkFC|1*eN zt^{aEG_)cqvw$< znn2WuV2-A5s3%Rb&?-XF*bKD&K zI&jzrY)mpisW0$(0NpVB|F@9UT$P}FscKe?? z)1U9mwS^kh@U>O~x5YnwoqxRh7=M?5BT8CYQ+mX&u7B}3`j7iPK-T3@EdUy=HS-_; z$zS@QZxPP8K^|lfVI0pi^iRcetNFzfp%Oqv+c-UQAYwd=Q|zSf|&rPJW@ z(EWv$L@;?`oWgv~7_bR(b%K|SLu99hXF?rle;PjHUDsh}W8+5$+M$1GrG8jf-!AO8 zZ{L^_JXY!wpvAZmhdZ^knVFkks-{ni&ac@DlD{W&kA8%d@=B;pGWvdu+P?eou1Rc@ z8*KljrT;thM`>0j(lVJFV$-EY)H;*p)Z?XDj7gLfW#aW8GZn?+s3 z*4Crs^*b#s5~5_w@oChC4sh0zt2?pfb>J<0|9(?+1*J>L$dX>J5(xn6I6x*LCvWW` zrJ~B|V3V!jl^d~c@0_FpHLtww{8Ax;XYd096~YSoQTi$}`U;uiUKrR9DG95dViPGn zKz>kBUoau@>T7xbocOfv#}RP{RlO^G8B!JUG-ri%_6f$!z?k-bY_dG@cYerWa2~;p zml?^2Yo%tGeVVB~k2Hu34knOJ7c&j+Qr97ShslV#5vi^_o_N!P1p4!YK%QsM6tlE* zW3(Xh_JgOoD-{OPG56o!nP{hf0f$-$I}hiu_xewVh(zYPtvZP~Xc_hUILrU>a^Z?x z)E=l0ey=Rhn=awjt36mXE{U#+gFnce1nSINrK8q8_7Ka6vHM`S; z3qlp+)ao(wokP;2W+Sw2RX|&HQu|X!&fZg|HbaojFwN9gad2Ioq|Oixlk(lC&(s_bl&WmOFn9z`-Fa61nND=o;` zZX)D)&y`Nl(QR9bRHw+1FDNp}|MJ~1n)6)9Hz7^W@0oX|ML7g~rEkl>@l?QX6qlFbeKOq|wff-}+%J7;(X2 zP6ear$kW>^-LZ5ryyBuVGTOC0)A4W^aHyGYU0ez%ef9r!u>I{VScc}~;}Z<(KVs>U z*Dclzpg9c2Kh@|N7`FCT`&&CeWm7hma9w8>*q=eMV*velU0ulnkYvtK=^H9FQ184! z#nex>c$x|#*`M$6)Z8eP5 zJnak8GB_0i8A(*&FJX3~Q2y~c--5wd9m-0Xa=xCXZ3&lGqXosmP1^dC@5m3au-0f1 zEtdND9++oT7?0Ce+qM^O9w31LU6J%4U}tz@rM>Fa}HlT-xjs*mTq->at)K zSpN1VU|ppEh*;XeGFpc#ThrX_Ckf|Z%F?yrZty%+VZz~W)vUj1sa$X`8IwqaO;Za=pA`Xmq7mc^XDb6?6oIL?C;>gQu8-lMKDK% zz2gatlK4wO=6^l8e>qWC?7Nn$eKXV2?iF!2!&DNo36A?k^ngH&kb*)4&vs62l8l^O z$mwKWr~;xBUbQ}I(RKEu+2SR@AV^j6=!3)h(c{PRGk$shhu8gI4f(B<)Ep%V$=7Nq zz*Bz9!w2;})9Dg=?KTY?b3lqsS1b+d~zDC2VAjh8WWV2WA~)3s64g`Meql<8|zo!se4QGKyu{rHOtML$dV=3&X8X z5*FSFB{9REcU1NwI1VHDLH@aYyFvsspzBQApFv}Ebfm&$ayftSHK42Rq&`<#ovDp2 z7}gmX24Cww^z&ELtto*#1OVy(Sgwo{)grT# z%lMPL7Pn6oT(a3e&jEPg6P(TzMI>kSUwr@mU3(}qq#O?ulMI|ZMNl>ir?Bte-zgVt zIj?7{_uBn>0XHl03QF>-L4H`O^v^ip@BNfS1mm3Fd7L3Ga9L6}4-fFBh?Un@-c!CW zuTF@6Y{97vNwW$rtMy3J+VUSZuLgbLwPHJjhJ*m)+|zzln)OlZj!CBL#&?ZX^nV;e zyGardYlXE3LgP4!z=6fH+!Mb+JL|A>`9n#IEsC<*dMk9&w3<(X>(tUl3G~JN{c#;a zt8>Hm7U(P^0gt5w5UT%Jy{QN$!2qN*d?ow!M%fk%5mD0?Hw{g9o`akrhnJo@7)MJw zf}IDM{X=YQrSpXUO4IQ-e1|K9hX=g??Dx^h5awlmI*GzJH}-QlK$Q=sP{ge^lumb? z6U`%uiHWD}A+i8RO{`d|U&ImDq6CU-YQPy1h(=IbjT$Z8pizKx`_jd(`h?xmCk{w> z((80g>dso}+IidzvC;!ZKHtE=h#MB&#dfoHa57Co0DI02%y{g>rENi`Nj(KcJH5kE zLHVS^4x|Ag9dgiZQ*3vjYquDJxOFxWIM1mUftD%hdd4L*(rP;oeIX3t67l!^n{NH* zR)dRe*dLM&ji^*Bw$^D+sNvMLhd!o$WQ^$=Cz<4yPr2Tzx&yVu*f>~0+g*~0KS~Hv zs_3lxcvX;@TJrrn(WEB==9)ER$Q0V2&#>iJ8eliH1=1$xk&mfn)wgfAD`Y^X0jJhJ zAdElZ6x7%EQL&vrb*gwE(+mRR!j62fJr=={2d78%bBcPw8+2?yInmOK7#fDZgi?1eQ)3GI$lRm7u`Dbs(SM zv zD`jjDWl)Fi)Yl(wPb&wqzDq4Novs>yD3u!%n$_%Ocke^jbIjV}*y_U#xPiZC+sI{D z^kj^0YF4>wl=G6OlEz8+_HYQFAB|&;m&6dG!kd) zF4yN*|Eec9B-$NJR@WA9S&!N5;BvaVTDI%@3cuXzu2l( zshznn!fku;>h^fF^I!(XZ;g$=ep-S-S$iwQNL^d#;#-y$wZAXW6% zbv=Wu@N<)lSrHBCY6Hwqg7eX0<@sr5O1sEqjX|7r{Vd#`)$(Exnu`B(D~!DXnK z0;#WrX^!%~`Hy1&D@1zjx(+90htFej1l`V|jW8*dH#av|Jrqy;>+kaqZ}syxhN5{2 z)e8#{)l%5xFvbPug$l199pY2od0bf{HK=<`h=@( ztB`eDwy|}fZbZ3TmS3Du29bTC8NSua3<9O3qPwe=1!OB?I}6b5W{2@=2!zgi!=;fq z>r7DN+|*-ZU9Hinp2^Kt9n1>D8>n5z3=~8u|)!k_kVB!{4YBMu7c;I zE{(R9n(2GV&~bP{o)i?nZckP#nYfJ$Xwesx)~uAZK^kxYsRG!9m9DC%V^|rqt$lUP z$jHc`y_K8a`q}xnr$N=%fVu1=XECeDZC9YF&pmk~XRJW!uzxg$!vl)^6T3-L2MS{i z2ihmu@Srhkk}~aJ)1Kd@T5NiNeX6-uF&GP&s6 zcR0R5BEdd|NZj^mB7De;kC#QQwx z145+mHlJtoPE3dBEhm56_y6)#=l(nei+IKFw_q)Z)ruX5N5k?TpM=5W)RkiW0C*&E z!8OHmn~GET<#EkDx&5alyS5M{;cJ_8k5kUl#L;ro#A{|uf%!$O5etudoAya0q$EsU z%^HDRaE#9jbX2I$2RpT)19SOZ@zKm!@) zQSsm+9q!QcIH|tKL9tKo^g?}~Uuou3g!LnMPBKT5v4W_{PSys|tI*xb+m@J#FZBO& z0eG~~#!5!D1v+MEDjoJoxa*Sy2LpYOBBNG?LAfa$z|6Y6WMx!HuoQ8Y78G|n2TBD7 zD7o68}{Mb!ugAuW^0HHn0o zRd=r)s4xkpU{H@N&D$U)&B}>m)s8#d9%7l(>et-8qt7$Ddb?FPl6iWugblxQ|Gwx_ zH&#JMw09yEz-o}JQk^8w>w5gTg#YQMJ~(*6Lyj>#3|@8d-S)f`zHGJkk%InjzzN_A zk!`rP&=7a8Hmp)lN|x7B5Y3LXqqTi-XOlvE(fxDk}c`f*!IQlX<#r z-JNuR5>jQnj<^*8vh?_ou(x%d+wzH3AV7q<*V30~h+fm)UP}G!9M0@(;;tJgmg)q@ z*ifM3NOgKR`aoyxOyG#g{HX094e}9X*lBAN0DFI;3H~(YfA^DXIw?TGW*_zAo^C= zgP4C_*tO+ZQgkij7!}b=F?K7lP&t|fQcC(7L9<?`ssMU?33TaI}-*@;y%5?%#WnCXAIWLE@?u@aV9-T48LQj^I61S5FESJ)?MkaUx_ zQmwD8t*-y%-f-KUIxJOt4(b?85Q&Ja8!|YQ`6DN6YB8}tv(7GasY77woIHx7 zzCri3iSV_G$naa{0i~heUH^YND^YhPd2ZJqdcS1>{gvU~@+Gz~(7@~c_Q6VhGX4d$ zza*c7V=Eq7wOJ`K%CT|SZ&6uTSlGopy`5`;H=1TjpMrWJyX|{Z3ER94OS;14>{fbV zAdOqdb1XkTHqRb)WuDo~OBIXy``8~+Dv$M%>7?qx*Do#z4r~@fNpxEdU{<}qC^_X} zyg2kKb7y1J^oq|(iJedB8+p4gUrWe%&P<}`9Ig}tWXLvnv{f zMrrGBI3G!<$Y)I<(C@AfvDE7C6w8BgW{c6CPgcqn-H2bl4b<6{9vb6NHCHhgXtbPf zuisa6SoB@nASp-^?%_^NdD_SJS>&B#iE&QNu4*=CdH?Onw$o+~=Jtifq#uD8c0mJ} zQX@qt=hA#I2Ra9z0CDM1XCoM_pa$8J#g@XTiba}=^JN*7o)!eFJcF3}nHDiARe7%X6GH&bq63 zQOQ~3g0vgRb!uwFjJQI6nhSPs)QicZQWhO$XSz{A2Pdqge;s_g{fO z<`^0tWh*XH29?7iZuc(ye{J@px2{v1cGeCmDq?9{h9z&#M_lOiawiUDV<8p?)}5mV z^`)x!HrQ0`ZPt}zx2GV;es>pJNg1YfdS8PEo26kqb$oZwi2LUnR=^xkr|D~HFsYi) zT4%1ldD_-`+@78r0KkRM*%taN47+m*?m$c&nT{>MT;mE2bGBmMxrra{B1TlT{-xal z9l8)n2-Gqd$7Va6yk3nwhh=LY+uU1K!smXZQQ$VwB}a>ciCN6Yvq#!b!rBT^4Tigp zOLpfT8mV|U_)niMZ<{#Rk=g9f=!dqp@&3S#F`BwwT)YJM!Xm^X z2OHB`Trpl=R}ND(HIW9V+WRwb2m?6Y+Pb>0K`XM7AYTBTl?VmKwE>B7h)vu*GQq(# z^oH;5cxu^>A23ZuBI13K6b#}Tv9JouJGTh5zl64rh@t^T^0&)fSOgRl6yiPLv_9NX zm6MYTQ?>c;$+QSf1Z{|a7sLMUVRU--qOU(8t zxN;#lpD~Ec1126r#fWl+iLzCKX8V9$J(l{3#qDXDovRbwa1*VRcRJejDaM#tlsKcB z?%fh16y+o@6!f^RFFy)FeaR7X4gTuqMyQcdyRzJ3Q{lM}M40iL{xGe{0G?1(F*l zcrYHHNH({aNAKS9?OSD|`q~-}XpqqbgYJhonA%*W--`L}#=Vl+9m~-9^sFa-Tqi=2 zrvc4&zdd6qzk1smb1P+KXLNsws%y4cYcYUDErbsxYg{iU#$bCftTz~R_da1|kRfMf zWihjguPi<4JzcNj*r`#D08B7$c=+^>%OWr1GRx16$Vzhx>SnYl&%a{TO{JJBSAIxi zGpi+wXAkkMd5Q{d7MzsW{5+rW!9-LemWmnq*bOfd+FG0 zKN}9!<+H2op|KmEB11E`;kdqYIy`GF+nc;h^9q_Tc6C9Rb&9(A8zzjW8F^?acBg7{ z(v0n3ypN8`iBYkqjf^$fbelD!HQQCSN0Q%mZF-Nf&2Zf;v7?@BmKrCPr!ai> zC?NN99rNMM!~>*zY&A;I`kuH|m5o!)!2KgX-+N&=f;Qn4=m_nT%PWamRk5?xp$)R# z`<6S`a!j&b^sQy4qQm37Ex2PN(<^g$G)PAum@@wrwaFsqDwS2O3xeXgt38_SM&6Br z%l&oRc~3o^g%+99g&>S&x8ceU%h7sY4!(fOuJ-v+s94{22bsd&%2TTegA8HNsMzYq zw;Bo=$dKG2d)7!eEH?+5_~Cbssy6aDw1=~Gj*g9HYS`#?yL_#Yx_zJ(^{NEb)^>Vo z1@;IGx{h?-_)aoBK(VKEBmcY_fSF?;#x4G9#r9Bo5z%u#HHR%7n^!w^=XGK+hoRM* zGKSUHz-8n7)T@w?`?2AIQQ01jW+^8{s; zT>-CV?#}T_(Vk={@ncR>^uT&KrLSeh3%X0j;pel}(jU6wo;6Y=6`(=#R*eMJIX-zk zZkvdw+o*_uWAXI%YSYq#hG?qBR^xZ$^|A48bLT}yiI;=w3rnx6X0v2Xpk8nhaX|-K z%Y9=ix&VBFUe!LyeC~A7@GXNsf^v|NQx;kSDoJ=lB!a#q*aR3HAby^3u|%gu`ts#e zPnK$RIcW1Wf7oqo-YiB)1I@((-W6qhci_I)0q^7;pL10pqX8fqHS;mUtrt&H_K<+f zU)a_Llp-&}ruXSZ#Ka0W*sV7;V5t*Bq$N&sR7YkDM%5DmgH*=;a;)^?khG{fJrhqh zvrbRk?Be+j7~DGCniRS^t`8Ex2dOnFCFSct?kiRt%O(H4Hez%Eh7W9M<>xt#=#m$s zYZ6@77h18h&*|ykf*NP4^R<)ibcSi)=;0cG>DwJlAIbbIP9Y(V-|DwIOe=#!ppdj!Ynm%91Jv?bMoWJ z>Yhq$!DTEoq(DLlW>=+(@{1bESBI(LxbhTTV5Ds2xJ?sr;zzrUG zD+$bq)_|}pX$p?9?Nx~)8-Q&HNR+j6ojC*!G_aC)%7=ZMYcQlvauo(Dp7GP%q@)6X zfuQsQh+bEhW3T7)oiFw>v;l%@`-4t6pbK~g22y%`iPTmIR$Gq*itLV4IflX%SV`n~;> z?&7A=NQ*@I?tGHt%6QCS2LprSEk7E^Yjo;E6oXO^o>%rT*XLU=c8=7xL#rS8u-=Z0 z2hrwEwaxj2lNr~E2Eu1?Kvj$`vse=-HwoBx89#%m!%E~?y)XqS zgJQT@^7MH1GxnEW6D%9Tclv#oTIy_@%@#)+g3ii0c_X(b>ciwrucb#t{Y>~cL+#%v z1TUD>EKxc<|Ab4Kl2^@){=BoNH$7eadzSd1^$<~Znk=!E*DqzD*%>{+9E# zA4)QMC^mYs)i@~yrH_5t-Hc+s>%MQ~Unf82IVuF>Z%ysAEn}SH%^OYUJDxeIlEI%0 zXS9=-Nuf2bqqXUBXG>c1-tnXw7-GAdxS-_KpM9uuW|!jbW34p$#1I|bIKVx8v*~S2 z-Pj%hBL#bupv}j5qBHAhwTUlOLH49xgDxZDNKw?1J)gOyKj<3?!U%YrNS~(@TFUh* zKyh-+hTYwEsI1gK6Opo)qgh=`K^2m*Po-a_E*zJdm=QwCJ_OOSXQ_H1*VWXDW4zgp zQ!|%InmE@Pu{WlmOm(`xa!FI zLH4EI-iUFnnOS$6dy`e6U!jQ-5t>b{MDX!CSyGWYCushV(|`CBX09p;0XM2W-G8MBj2hd)>d3J@o4t zDww^)?&q0dKQn=5uuw6J*}vSayqf5I^%-ooRcpli>~FXe+q=3_u^71eyT7%vSP@!% z*;qK}1;;i~0JdkJPNaCTN+GMmNG@Bc`2rc(^(mM%O8Rk<>}&k5;LtHo(lU1X7F_Q? zi49>RA|{rdUfwiK^C>TJJjK78QT8b`^c8?bzS*)#4k7lImXbQ%z~#SCDAA4gdp#5x z$X!RL$>DruM@XY`5=*4VKd{=L(Qn=gEuHcAIVv&%)FC5p>uW7KXVSRcuw+M29L1bnURc`B8!M>nUdAFJ9eVWc4@Ug zg;B2I-VNLhoAv!Io2}3~=m>}3lTb-Q!bVFlrJ|%0fX*h!_ z-&u*tQz}d9>q7+?@z2xM48u(OPO|k<>XWTs`K1n)&5yF>@Qxo^@63pvAFpIOSy(v) zV8iEFtRY#=tk=v`P(GDI$yz~}tjNf+e`55xg@}YiI6k8_r>bWI*@1Hr4SH{3s)9~A zzJ4j|Ak+RV1|~{SKvw1PC5-404HZY`I@8-(fzm3|XU;nfsK9P&(MU)LB zq+|UHl^#yU_E}DDmnv@2otv|DSDpXXK^pm9dRKf9N9?$e&QdzvhHO^Kj+lHJkqu?m zA4~JEqxdNVZs0gQ3+E83Dl95wB!ljyCP?Q9{j}|L8j(ipL5JF?cCv0Tk>{gq4H66W zFmH7M-Ybc>?d0`!l0KLSr*_@PpJGCCtu7Rc?64q3Ct6h>7OjSg1oS%9LW-@9G3}RP zS04GM7RD)C2%J=%mEthEZt^&xK+5&Kj>e1V;(Ku4YqDK)j#sY@p9WSeB}{BszH1r{ z%BfGGi*!`lMo3b3_hQs+OS6m%P=S9qDP4kRjs=Ki>$9)8Q;XeE=-*WK7&Y8-!#Tp* zyVq!OZ`cKPC)&frP`<$>R>to<&2)zTpJlU)-3sN`Gz$QD6< z+F(z-=nB~|n=X{Mk0@3%tQ3c`6rWAA7l$LGWy-%|otKVwiE9acv~-bIm{)Asysd)l z-MB?;u$_HRDIe(-wPI!3;p8$TW*2&X^t7|WlSsaj)Nv_Nk&8l6fYzfx9b+aIW8SEJ z`En>(1aI8!P*cT94f^^BO?CD0&G8QKhX{DsBBY2#MktWIwH!V0+)~JZP;Lr z#?Gw-=PS|}<}Jd=??K#GGAlO_Bld%?B3hj`m&NBg9m8^#xYj2p@00GK@&I1hBT5<# zgtY}gFq;a99Tphnl6#86e=j0Cy5DUh= zL#uN-U6L;gzQnE-o>r|j7~CGz_W$-VasU9QHom(FoMgm($ky2yFF~YHm{TEm@UXFy zu3ivGbtf%pQTjyf4~X^}yp1$aFPw9*Ki{%}em|GwIt}jO*dd~NhjanBw{)sjlaXa) zf-@e?Z)rs$QB0wnIfA4<_ZgXSqzvjVhAUv!S478PF`W_ybleq0PVwLO9bgnSJ3h6m zF>M$~@GWI`Q4kzWy>Gsjoj8u5>DeGcrG;Rime|q;`uq2#N}W3fhli&LtEUV(mJaU2 z`+h~A-#A@SAF_DtLy_-M5FiKfheAhZi+w1Tza-jzHvrn{ERS9s+L|B`4soUXEoV+m zy)>F>jnl^??%IOSLeVbh|227s$F9C8v{yd zlAst^);Xm+;=CM94t=TTjHf@hg|Bq zZcGD`TfC~HDoNW4tUltoB@d5Ftq4_+1^mSkPt$Ep)VI@T`nTb%kS4Y#%07-vU&4&z zd~IQ~SYCe@-0zvXg+lSuvl1XZ6@iOk`Y5}Ysv`cCl1iG+bt)!1Q1Xtcw}v20^I0FQ z>V%x|2_*%E?8+x2rv6T2&Y<``+&ju8yx?8-CvA zHkRr|i>G~p*!CtXi(}Zz>VW{Z#lwzy_~KzdjGQ}{v9QI8f-PLbI}%o0(|olxEl^T; zhvRK|y2lDRzRJ3_H8rrq>JjX{jCuUc-V14rD8#}#osk7{+BBnjC{IL{CTRWqjdRuJ z2HLkiqK)KDCbw#r_b4pr+#~vtH$B}zn!|G`7KlkIIz6bXjx^fkeF&3 z8%0>|xaW&>Snd1!0}NR#0j#Evtjw(9j>c1o-qjv$iAL0CiCyoBiyz&U?XRh#xYm6` zWBH;@gU)V8TraBV{LWhR;2=W7y-`E0Xlry<6sq9_uG8RhhKe>{5=W^$+} z94lT6wc2$Kkqhe`qNx*ks;6dE0?OnzHq@-~Wt+$`l_%(sgM4#gbnF2W*8AJ`^qz<; za*KIy?a$9g9~CwEw!1dnK3rWnR@N@~I!1y$X7IesbV5$xF=ct1>6D&$`k4ItJAROr zda@0h<^B!sv`>@9{Bqf1JiC<(9|JJQsnpO~)8of`s+|4w#mS1YL{hwlGRpkc(}<|y z87*HX-EKFSP-$(7?l@!U7oU>XYkOqYJ6Nsw5(g)~2I1%OR2;PJPz4 zYAq1VcStF08O8n0gJZVzKK&^AEc;^`K`%xU?lQ=jpmgwxWN`gPv&3L;7>XNyo0@)# zB7ZQ3Y%YIDLc*0P2j}^gwfNDiS%NQ~@ErL5rqf}P>X~io)|G2vP|R`UW|PrUwEOy_ z9!l9hCaA%;6V;Q5u(Nl1K0Ouas5-hVqvg+O>+`DOI>PeFKUXb|LG;h4(LrF_KOn$X0a;28jB#s zZllW(A-oFAFG2zW6#Ju0RS>n8^_FY&7zWGowLI(DIq3>pbpT2oVJcr36|b|u*jeVM zuZm8trW+#9GjdDB1pE!P8!Qr~ZHldoOlk}K!V7r2D**Y65{T()(56Go(t0=zIac-a zu*yH;D=p|x>6J3OFKM0Cibc(j&t#aZ7Ce(BEhJvU#}N#8UWK(BFQF`JFOgjJBlo=b zuCI0k#fSP)_JvS0$zTl(*48V`)1VIX%Y|ml#;dH4bz`eblYi*0QI}rK-EQqPcuw18 zF&qNo^^brtdEkRMpjVHcdebv5+T8cKnWp%$k1BA1=}atyp#!NRVOg1(!WDAiY#p(h z1b5Ne)S?^&1K5X&qCRf}|0)W|ia!b*VKXdSZZ&Ta8DcJ5RJ-)q&wHX%7mrr11P+Ew z@Hj58p=?zVUrI!O2tfA5eDj62){@9I>YH1o*@oN-lzwt+4RjZWn!aBFJ0elh@YjMt zZj%MVYm|CcRT_;pwAuwCVYL0ND8`6zUkUl0wf2@2nypYx)>Fg06rO09wifLIJ~!Fa z&c=x?z$ct;zR+W#*s!@Vwhy!@#*y!T2asb9Ha3A{cWxg;`H-(I>?zrr`MZKVrnd>F zamPDj&#dvo^mP+j$1YiW(O&K;zw*diA3=0F;Ry{@GH1aXOc!6srAMvf|HD1GR=EIi zryjj<UgAjQ!{m=ducNRikm2&nj999N zs3_mk8J=qe2pqkt9UBuC7i=CQB#7Tb9DOBr)X_DSq1Ja0>8Y%taf|Q+c5?8%z+F^+ z*4u<#w4f{8S{|N0zln)q;4o><}9qQQ&TE3qT9;CdmUz7e(TZ<9k z>4g}gSaPt87|W}b>Ee6Khu6H{&&l(uT~${37-_C>E+7=@7l4`%VHr>=Vhf zDKdxg8kEmylX9nON8amF$K{JiKA&PdLNUacoS;;Wtx^)2nJBg(HW{z5QY9>B`HJgf53T~&-N>cfPZjkR)P@F9vq7dD=cWQ)`lcAy z<=c(3x361ZFl{!4k@f8+Wb{Xhat~{%6>Fm1U$sqMQqOKv&MCi6JK$7;zU5Eg z>FAl2 z){KS~6U*ho#tk>RCGFMU0IejODwHA?nl+Zx(mps*#Ha(cH z4vB@eGr2jL^J~e-37v&GF&x&sA7v`_aD1kSA0Dh+h5wpdt!F~Ue>Rbh#3L&6D8tE5 zWg)L-m#=t1N+p=%!34Bn?3?yO7KHg6^?dDr+rr>-gkJd=*><~_CmMpAMAdz{M+&sU2UT3Lc zA>P+~Y+gc?yr!?xjzY~7Y`?gPLU|Um5OH!&*)byT%;uwJA!{!|w{pzpY?6-0f`Ig4 zEX7dW=bkxN)Fm;KH(uh3Lez08QE4sv4BOS{qrJNxw8Fv8x9xdC5R|b!_%!zB2XGm) z9sK2IEgS@DVCU~0+xD>4Q3S|B*Qs!eP35_!xjS7MkenKrWCVn7vl&?_Ted@p-bg4i$+B=HR>gNN-WOfP!MJ1MF~OpkeHNS9G4@4L z1pcQbuH(UiIoVj#$|Y;g=hR9GYzGWb%+)p}oM%38pp%q7j7VfW?Rc<-**{mgqE?tZ zG`BSY0>DV7h>98efWo%Kr4ePbH&$kYRz>eG+>m=xxFGfx=4ljdSUwu?F#TKSJ1fd? zx5iL87k299mEN@Wa9_VXo4wxV3nBUjkpNue6-r_lDF+wi92`O>vzGA!vE&J?JR6`w zVM5d61ehNW6)Jmx7!cpVN^eHF$>i!Y9fGo4l~Y7bbH{h@l((2|cSZb=_Fl-Fi=fqd z5!>8*(x)!4Y0pP9V)*XVW$gWaJFyj>ty|xU1dkIBmR3}Bbk>HeRKsL|N!@Zx&Y|7? z-Riv-<-DEk0G1iKue_~gpQ?|(ks;ZByyX*tifW8%^1d$#eK@)MDfB$^A`Kg(+n|gy z!$lwA11X#ZhST6M8d;Fr6ocv1_)x8bJnU!k7cV}uciZP86AcbZa!Y7x1{z85Lx6i1 z1LKsnWV79IY@#6=>u&w_BPC>qL%zDLy8FHGEjGs~k3CfD%GSbW}EtT<(1maykv zJ}>8We|ntkG78jj-gS369Bmc_5=PC|o$AtBfzh*dXnJhE{Fj7+ik%VV9jSxq=Y~_P zDv|E1o&9-IHlQ)+=jiArd)!Wrp8}23Cq5l>gFW8} z~S ztoNjin2;HCkR;iyvvP4I>~iu+Ra8M=L>BFuxgKo4MK=mFUha`M{-b@+5b`QXB<#63 z{i`9GmpAfJ4A9m7{xpYATeCa1%q|ug)>}%IpC%c;s5P(&nVb9C`@X(swLR71X9_>r zzWFWZ{wzX9M4f9+ixAK^evW|bVFGCd1|Jl)keQ6fKt5=Ono7;c7vRl-sMrQY;cN1s;_nal$ zdHXAu+5XdxEXCINZffocd&q&;bU&W|A>AJ>oPV`kWclXi8tGMwG;jBsCFCe|%I0A7 z_3_5>%1}krm*@2viY>4{E`IDEuWX&x_Po{2kI7(Z7QtIzgKQkxN@9)cEn42wej~Yz zT#xn?f+~3l-f~*}5y%(hapV@)cm%W-c*Sz_A_+t*+-x7rKyRGcD`UsYv%XaUaeW0ZE z?I-*>ZkAH~Pr$Ws9Cxt8Q+?Umdgc2=Yr-p>L@U|^2#{1Q9cwCNsSY{vgzkys4#(J+ z-OCv3yR|+^IYs66#xtOb;$@EHQ&kqmejcYM>b z>wUBR1I|DFt1&_70)Oa}4e#scm#kP)_ulu5>|hG~II;&(n3R{mCD`7<0;OlCE1sn~ zopRGmnEAxm58zTsZ&q;T)qOWK%zi$e!(9Q;2iK`QUbl)HM!_lK!AIl0xOh5>tKbpn zqeAWDs1r$77iAD#sGs=wut0rB#eWzK{dFSVEx$cEQk1gso%wObU3#$=x6Y4rTr01R z-15LcFFVmaOMU~Gkk0rU;%yM9F8Kh(`3~()43Y5EJ_qpRH zYSVqvQmZ-~@Rcevo-B`-g$?mt@_d|NPAJ+K$hKY7iZ?>*6LC0c_Hk^QwD|EZOS{_p zroB0E?pZgsW^W4es^hTa%OXc#Cl5;Eo8aQi`S~aWJInTfbSeaME78bi$Rw)$e}Lqe(O1#h3@(+qp+6PQz~le zQl$PF{?5A(Y}CBu}t$is!gdf-it?8}vc|DZ`;6JI+ zM%-K@yHCWg_v-66qbY4_En=~v@U zar3;WA>_pA2kCP5VS>M6oeCAYvxR3O^73rA)do z$En}qoKS1UPJzk!hY}f?bnVXL)^Oxflw>(E+uV`C<8;NP1Gz4W3W!An2c|CGOG_!C z+ml8b0~uR)#%5}GCIBbRRuFUO7 z=8<#`e4qGyADL~q)MB!Lr(cVw*(90*IMmA_Wt8rixz^NCjbl5~{7DU7`48~$uk5MB zoy^K6d%No6kgdLmr~1S&eO6}}lrgd=cYm*KJwVl8`AomnY1BI}U0r-N1Od%=(g+8= zi;~G$D(KxK^NvSTFML@qAdP{-?}IPl(>#zgQTgo|QY;J>=D9B?8Hk-u3n+UNxof|hVp z4(E-HjfT`K3c7*82P=sv#gFfb4Y)34K00DtZm?c4@3)V*|#-?jXfcixxtIDF|wnq~qRlY(AbyVztw7*nA^<-`?!uR?eJC z{MbiD7n3M!JeaWV$kWc{f76%ziNNK06>bq@vKHwxA>;@*`4v8g+P#CAtt~@g)sH87 zAZq%^OECc&O%ANG%l+9*t!1N$k_n})rc_`ouF*^)@~XyOac8k1HhQtqrD6(@NCGL> zlNxX*)}29$)Tz54h_3WkOE{mUM*udG(aO^HLPmgwo$_?*o>Jn=mjBP=vkL&>9mG)@ zw|%(Ts;3S%;v7pCgez;eAnD5L z(}or1>a5r^krK7KH0fw*-87L1z1C~bdTObkm?>t@ zpW%%sFxzo;2to=~KxOs(FeSdwJvNwIh{YOp&3Hq$l@x5b7xs;aC{E3tXb~j~FJnvt z0y%X@x_OA?{r%WdRcH1x7Zz`rb^-j?nlUOd(Rk<1_iY0TXDu#VUwL`?Y&PC(2qK>~ z;w$^4ia3M8pEj4v;7rJt^#wOq&r0=sjHjQHMuvLKWPCg3C|#*{*>hkM%%E7aC9fjS z4l(B)ye6ikEV#pYeeq{gWy3^WVV50@acw?#9Qp++?Ii>W?DJ^V6qqW{pB0*Q6(B3^ z{)YbkhV+2ajBk)+0=|kPfNf06?puqM{}>1HxnCclGH$$DcG7~T}mk~GA**2HTsDjlj$0s-nEBi z7F!xKoMA50z#qDZO=Dqy1lCF}w@tPxD>i{#<5&dpqlVDmR^t>I!a{=eSJ5t$9}_zB zOhkf2eidt-9GZo|KUWw*58mIP#hDqh*g~2hZ+4^(F3t;I5ZLm?ll5FK9nQGIIw%Xa z!iy04Dlc=2jFq)dllB}ojFq-Lbex+#tXCmvt5Q~By`$#CjP0*+m@h#}3YWuZgnXG$ za6T{b;h5}OJ`RyyM&sFkZ)7>J5&9|6RJ8D#<0!f%P36P<73LV9FqEV`g(N465F2f& zC4&AOa+U5O`^o}bT;2;`H7a4Y`IJ@X+H=v`+CNw!Fh|6v8}{h zuOtmZ!knxCqJ|X<$$U(%kH>3g49sr7%z#Zs^=q0*L^&`Y3{LKav9$T{^7nw)s|?d| zf+?Y5dIJ&kASic_RwN%N|E|X;?wF1@uh)Y+)#=+?1BS^gar6oOk6Rff0F-VT!2x8J zu}(Vj;&5G)YCD~8%kPFR%Vcn0ZAjM}_G9)R02yJbXy$9hjpVRs)_hB+B7AIm^duEv zBvUoDyrtCZ)ns+DdLlUtn6hR1i1EbRr6JQzyw$y=HB&rbav9v~P@RIZ@+C-~t0&HZ zFXohqoZ0MG64d|)Kr^7g0uNL3zIFv1V~Z_=Lz1UyVou;cNGGuAPWbd{IO?sT?n`-6 zP*IUE605s6p1n0F9d-$$H5HlJU4*cOBL>vzI4FE~bjml09CoGdpe&r5& zv|}JohwR|tPJ}5f^BY^=Q>dl2-7RIXB`Li4=?Xi1n@75moLP2eu zv~R+H4!qwyy+4~Gr6>^tb;2p*83iNxdLDYSCmY^9LZ&5lavmHZHfFZsU7dbs)dUUr z4mXkpjxZ|YHC$T`zsHpjk|kyDvWsHj{wM64hOcjpesn{lh>{_qSW1D`IY%~=aZLno zHKYq5W?dGG7S?=ab73h9u>LRn(TIJ7{Y1u|WAPZxa#L{Pu!&m--8y8!LJ+o@XPks6 zMOwePX3?f9pR;ZaDpur(ubjRy{dtap=(uG6@u29j>|MyxHG6c0{ov1+6E)Fi>50l| zQ3Ny{CYm{sVxME)3v*t1jnleLqRkkRjJlk8*iBGI!b~zPwCsMdR1DS^&n4PY`3SilgSplP^<SmbPI@f5db_EzUWLKlVF~#+l@=tj47*1rvnwlY;eqm zLY?ox;UaQ5YlHI_bj-vMc<7$j(7+0wj8|M(jgE#(29U-R@znhn6 zQ423K%)d@hLj(LBJJXTGIxs*G((d{8dUJ*R^-k4&E=(qyCY|`hK@~X5v;6#=rJ)0#krvk0_8q}(_XR$_ z!Nkn}(701+Jgft~gD@N#=I7lQ4Ri=%`?FKmRJ*J^JTWX*GE<*xiZvCP-_ekf2~2W} z<>xn?&&U(bhr{brORWejCBl{kUBW)w35Bf%Zsc!@4KSL|azQfORNsm^;UmzWlTN;0 z$Ua^VS3f*D5`CYY9hLNB(^lH#Hi-6VTG9#*fZA+yrJUp5GO8~m&7Hh-$MPpu@RNzq^_{VshX78h8B&B)O${LJr6o#8pLIqu`L) zmdrvuNl5Uwl)rxcs?u46K^0RgG*DpS4%osA8`9QuefSWR;&Dk)e>qpU1Ed>g0jxE{ zi?9AS#!2*Hn?v_w?}?{?b^`wM$Ee2#h^-xN!297XUEP4cQ!obmOd3l{V&J)`D`d8FL`#(5*Srz!A&3X#afCWecQ| zm;n#{hyl}>JYK+;9jPQz7T~5__!WMA@jS< z#5x_Pw*&-6Hw0|o&37i{%WC%lpPMuQq?^jd#*+jLu)}ekFb5Nu zMF}~r7ks?8o%?BO6afmVFj=$6{BcjLL8$n{&G~q^N$+=l70#s(&0&Lzi9r+o+p(yq zhm^$b*;!d?gLuUz%GX0`K(N42!F**|*$8pP>H-ugWOqtb6b}O_LKqEWXnFYz(YzXD z7bY*ZY}rCakML*l;~ByLc%O-{im53!;2T|N4%z}2YStk0gwnn@3=BT6pUg(qDIb=H z<%23jx;Y!J3jVa|j)r^NYD0J*Qvmy5^qKCE_v1+Fi&xv(hdo6jSxiE#9X(NG((QSo zDAQO%-hR4j+d<8o7HYia^8>Dj_L08~e-JL*1WW&h-$;C*rV8&gH#7UDjx&>L0v)p0 zUg+UIhsIGzAzmWr9aOb*P7f}BYfnlP!}Gg(U^9dNRML?I*M`??m%%QY@$GDc`=$GC z{Y1}a-RO_)4jvt!-TxXxKat~~Hkq${przjY!RkR!o|qN>w90btY`vSEuw|7-HK!XE z_w`Ti&e4K^E3VKC0eq`2K^R)0R^PkITQ}hZ8&sG^{1JZEhla}|CA2|2zfu@h7}|;h zmXm{`{b{cOu)PZ3h(@((#E>u7rs}eIFBJQ?%uh74$A#V4^9JPZRaTqMM7{@)hgMtd z5{DfrA_Zcfs3loxjV2{3Y_AG}^kG$+b1?R)W}JTS1ANP!-RIl2$Zzs`8NUN1w(BkD z)^q+6eB`*{t(%Z#Rk>>{>`9(pfJkPw9W^@CSD?iytsr=}v{_=q@Ge;4k~j91tkVJD3q- z3Dks2Wn7UvSDEX83!gi?p+qx}qq4 zR?>H5?)bRj@(RD(K|rVw0!8c%q}bAMP{ND&=BY%I>niWy=7En3s$qV;#H79p`1FoT z(ze{rhjreJ0W_Xd)%_VDRV$sBxX{9s0;0K|Y$`6Tr}a)f56IkdgER=$Z+=G7RoFMY ze)~3$#J35ULYmn;z5qr85Smy*&ujU}Ug|Gc5(+;eXPRx+Md-|eLWr#Q->n=ZsVLeZ zWB^=h=5At}1^2U1zv0n0LiDIM#NJ(1cicXW5X9YYrACP>uOklbt z6B1%$w#4h3l^CzA)CQ)q<^n+YRetZWhiPY!50m}&%ZY{>MoQ=G(3_P{Kbr3D?(*!m zSnN-K-kV+@KMR)g;;J&+aQ~X!G%KB0U1-PNBQU+aO}2|i64%}#sC*u)#_@1{xVt12 zZX5AZK)|=y2pP{hbj1>*Rv!BKb84!g!au!q9u@rle2uPXyC;w!Z#q{QxDC+ZNEgUy zC<~UF!gf(%C<_o@WA#OpBU9_GqinGwy+kHfmU!P4bQ+CN@#n&Nn4shKK5pq9j@uE* zj6@&b^_^wMvu-JGr}*tTQ7jD2Kr8<>c`kz19$*r zrz>hUKj1mnU6afA$R{xdlg5dU?ppU}3 z5u28SD@Npsy(9Yw5l%bfEZgw?`LXfU=);|dii@iX4mUT1zW$`R&|zMsO>ZNdre(an zidWr8=+f2bGE>EK!5fi!F&TPIJ=X8A{z(y&05GKR{SgD!#)w_brbs9qsA(Ohr%ao= zYnkRr^096pHw`mS5Ib5&vj$Iyr`CP4vW{z+(z^ZG{PYMeqRy0~mc66ptn?mHiAVD_ zIyV_=x61oRX%tGXMYP2tk;3#(gl)~f9xotaVjJ*&A6^eO8CNPs%;PmvRd0+mPL@Q> zzJ5hKT*Ry0PkGd~`mB7qkT*x|a2<{%6D>J>NIyPE1gY5OE_(l4kREpQscyE9aKN=D z1e&zFHJ+oVU5`1>Oem2BZCUI_US`s0VfEs$AM%;ExWs{1}qU4v&X&VE>% za(=T#s99X9UeP_Kj?L-#t!f4WSe#~I=~!!tddvC3e_9d)Qoh0#Y>%3pG!KI&RzsLf z$7XQghyxDhlv7?EO1iC4!QUmK20v!H%RG zjYj2@L~SDYZJ?Mgk)_*@;4o%!@!}#gA_Zlq)zVUf^`T+TBQ2Geq-Kn}xj<_LXh6Dd z50C)7n(_$&t8@S+<>%ASqM9Siu6y{T zmK$GCjMN;zPx1%+A+h-4768IeF&StX=ONDuwMCLY1Wh@|#0tln_PA9sX;^PDNMfI2CO&I~f zWIE^h`bpL?s8mGn&(&6`>vjH3C_)=UuU;e&-E|{<9%;;PvXK66!e_SIn<=v~%Rk1Oxj-aEN48#kNo3CmnB<0W5j5Lc%w7eUX zr{*Ja2K0((wGT%ZKMU^7w?!sVtfBKQfJvjW;ez+s%h7fsUMk-ihf>}2o{M_o5qyQt z(iQIlnjtX9aoXSeM356aDTRJNhTv=JEfmayG-)@4qPrOadd!z5i(y(oO6z?`(XS?d zru8drC8b@7*z(9G+HEY^%!Y2Y147gH@7izD7#ytl+4aXBd=*@6AEq>LRi3X0NLcE{ zV=xy?ah!u!Jr5Gpm*zU7qoXn?Ae5ta}^d5S5Tv0mM$w0a5xg2v|A2K(qJY6vr4U3FZisI8;&I_CQR z_~Li8n9Q_-Q1G!nVtqz4`8VH@mF#aKu?NiE{rzP7E-M9PAOCKCDYrNkzlHv8J6b3vlC#RK_ zB3mjKAINEFLV0d}F;dbxeor{qz}Pr>q3(16;9pi3i|K+8TWJ_r*wINUoSuA5HQ~jh;hH2zrEPg?)F{g z4r=^Rh;-r@RuJ0UWO`QKPo{1OOdeVslEB{rF@&I=644C19pfW#2wi@GZF_jwGM8j| z@AW6ovOXIdYa-U6MpFP2{zn7{YxnEJ2EqjuI%;ZCJmbZ$*y+#YtBINk%=vtu5IiJ?`GPeW7QWI+jo-vXRdnh>e#25Rsf;BY&=hPK2Oen5ae>Qpo(3yTwYrE## z4aCU5`BQcR2mtcCkxWr?VHwB9pM;}zzP?Gre2v&fdg<#aPz2h3ft)F<2^YX#lQ@er z8WJpF??=mo`R0vWn3jjw;^T7DJU2U`gL<`vxbhX()Y#_WPk>jh*fj87F&S>NKD09| zNbk;>jEYKg(R`+7ur{l%?xvnQa)J;I&FBUY5O$5J|Lmud+o~&Mr~0D^stRtM$bZZP zq~Ig4DEIk3~;jiJSIQr=Nu;M+bB(7m2!+7+1(h z+wua#;05s;V%Mr53AxXu5pOc>Wo>6ERL71IW5=*UcvSo{xulPM>1Zo8M99bLp3`N( zM9*a__LoE@x1>5!mcJqX#Lu_Hp^28W4?{yHH#-lH44)oI&LzxJG=)~rX8X2R z^EoF{j(k&(hKEpK*NFDkf-K#TTfpTO`_c#;^;$wFdauFTtwxLrn#Tk=RCOc>d`6&N zs(d2Z+H+{ZInj{-?Yi@`TaSd#jG!SSR~L6I;Usgu&@VV+J3U>a`@DE47b&+!xEH32 zaW5(@1xAB|B6BkMJX$R2K(ooEZVQd%sfXN6p;KOqjmrRspq4Qt>L3>BkT5HKET}}D z<42@r8s>w&DW-&{84=N|{73u#T-rjG<=fkDnfI6YTw( z=>xDl#d35gZzqa)ujI&?tHtjVCk0BESlKtSV$LBk7NKp2`}*~3P0aQxM{H(TxB^{< za63npTDN)!I?PsVmN~pOI-+LzV)m`)<@_|;*++`@#%HQVa%L*;Lib+_+vq*3WY6^G z(QTF#=BJ*Ve_XpB@(a>WAr(2$oYD10?*@N1XSq;>;5Ww`25(<<)0sx8Dm{e8Yce8k zmkhH~j+t_ENJn7wIEGI`P6#lP_r6+HYm$}|(BNC$z_1_m?UeSXdZ-Bi%>Qnx4IZ`SZGEp*W5(+9}W2oM=v0>|!h8a>hMp}9K) z&Kz>uorqXlPc&U@=XVXy9cS1@~XE-(Z( zeQbHu;U7%svSa;$0NwKj8sI7dlVv`8Y{pIM*c)W|pt9rM$n*VK?ZH@87s`@q{LU=9 zVSG`*H@?miku)B#BntO_)|(6@#!$R-H2{6Bu~PzF=&CowkpqksF8>blTelAP$CWQv zg(fexDFBr$U)KF`NBEoBUAM&v$WeidRthi=-anf z(w+jOl)Vdex&<|1gryEnUVPnab$5lOo1=hd%{d;j0IHY)+tSLl3D$QfS@sPjZl`6S z)n>9;gSlVyh4*LoT57bij|ReORIPqGP=71w18=Sd=H?spf32ta9soWfT2ldltqDit zQQ%nKWi47)^Rx2>N@N|h)IN6t++LGRkzU(1Od>ff;fw6s3=Swc~-SLkhFP7C+N-OzI#Zc>U!6>eOS=;1Ln!<)t9zKNR`A zTZRRNndrVJO_;`T&|0c&(Spv;0AA`VoEyL~Fm=AD2wF@>tv8tG>)nZObGuP&gDHnXi^^{GQo_AAcU$SPbJ;n5Mnun=|nkiGy+Y?y&4 zi%JgFZ&Rdojg9USl8VD0F9}CBh{7&*#+CPgeDs`w0SpZ|6~KK=m2UBwPf<#}XoYS# zp#j?Ol0K~(t+nd1;YenBaV6mR8GFKCRAh!5&-+g(U`s$a}EuQHj3LL!C7w)m=5&t5Gn&Tt-nD)*epUmT6 zwjx~LfW++EIcz!BoL?HsxkDw4UshJ_)I_?Au`tt|P(KT8PDD>=NyIA54cvH$;!;sW z^$0w?#%kWo~djS@}p%BGB#Y>8YR7~*E6s% z$$I$sR=py#=DgXpwcd@91;jqeq(nTS`}-;GYVzDx{m^&2N6!aN;F859%kz0&_q}Y+ng;z2K-}E*xenbVaE& zTFRr<*l}Q;APggK5ocFKUKJ|mSN6QpB-6lcDtqfSk0X1!G&+K+Ph&tTA?jHnj}Li}9pWZ19Yp1!t(3R*Ni+4Vh`JMb8c zc)71T7^^dZKFIgzf=}6}sh=3XcXx6ytb9Qs8HFb9$&=6Bgaj5s4#R?w-+a0<`myGfFWL-n(OiI(Qiqc+zFSb)ptD&O}U1itfknZUp@n@`=Y7 z8f%`DbWUl~07$DXRz5G7-Uj#*Q*S*kXR-XkpAJXjCccho zaC)(?FLX$m|J~)mPcdo$x)~KJMx?Es;fPsvHp0T|u^!Uz1B?#_i-?`FqeMIu%u6@kO2cv-YSJl6=>Pgh`Wq;b(;v-47=AsBeD%{>f}KBcIH#4gLp? zm}w4F&#zzSI6Xi21)pe*s4&;>Df!mMWsOk}H_BFSQDMq{{d%JTL_##jXtj8L!Pt1~ znX)Nm*^#31Yq;|n1aJSRW%VFWQpT%#ZWK;uC}|wl3}TFka|A$pU%;NeHmT`nzYB3N%=vpPx;oBP1uY=$|Sl<~%;khnZnozPQS`J77jGu?O% z1NR88*wqmQah$r><_}qWO!=;Q(pp+n=KFnDXKRDSK=Sg~op4Zl^(5IdLdK90hTmL4jRrX`A0XOM;B?Dk5|?Hs2DAnl@M zkZ?Q6ljG#|a#0g4UQ=R(j!su|-K0)3#*m>{iodO)Nay!tl8IA1QA(A&wQMX=8W%F%q#_QlBT0Y$TTTG*+fvI;`?$65mz?$TZUz{*ghoLF-E zoD!P$z5|pGR_It6S9>{>67dwuH_`x{_+ZR#mE5dOb<7*)p2!K}trY@hFYLoYfyW&vw3~o-lFhtbo_sYU*x*r}O`uGl1 zlzq`K{#-$pYGR9NK7r_Hli%x5SAIx#+l|xar>3S7JVwg$Y?dGFGg-{Y-EPDZYGp)Q z&jR~U&XVOGjyBBv9pJZRR*nU+nZOW|G+l1SPb_}(*6Z|Vpc(yb$cC6fQ;`?gXATpmT?SfVu!d?v)t}m?DJgyJ z-ck4Q=cofReCW1b&u^_KM_pK{nZOJ}I5M-2TXqMqVw43kl9QDOA__)$!%6{BRZJMy z3pi@q0HTB$zz$}|pyK{Ixi_(_bm-V}~E=1<9*z(-cZ8kU&)tIz*@@OHn zlfnQ)JQ{F!Q(_uLQyDi-cF4)D7%NcD2(G;h4JPBLTL8a`BiSVnGjLy6b-lk${^TM0 z*6Z=%zP4B5B*xjwKimlnriWQ$?Vkac(0R14h2vUY^9o}omJAzuV<2`v^WBlBw898HQ4R9# zw?X+ud!GCqRrU)UVd)Sy-mphOc~Io=_`boxQWHs6CtHx(2Ll1@A>MjNQ0@@y?Y13r z)XBZqg5>o^>@xFgzb;LH|8Q>vdBItB)!F#CQ~FDqw_c?> z+S|439EIjKqEYm;g2A8{>=q+w%^bI}>H&_N4rayOzqo2t22J%ft`6}h5RraN)FrMr zZi=~EZO#Y*q*I^A7tlc&VL{WVTI30z=|rH;P!1Q%EoN4T&TW^Z3K?<}FPcUNc|NkZ ze=6)9@=VGgycW%`lDwEaJ0}*toh!4!1!%?mEk!+vHbLRPM<)(w&l;^?*4oUKPG;x`raCaXayU=L*E)rwg5*<`QmrR9PayS{Rwcu7K@{PRiW#RjYZSmcM8D(BtAX#s0sY%^z zR9W)gdjSg`(5@6?3UBOnEd~jwDEf-&Vq?co6sa=;B8neX+*PSDF(sI)7n5CT)Zy?H zOJZMLR{-u&(K2mVbD3BR!?VNq`1pihu+V~r3Tk=8OF2h!h}8m2GHQHe#K56#Q5GR$I8GUK=UCi-~ND4IgFVL(>)a%8{3r^dKM{! zj`FotPe2zT5RgfZ*F#K9OlhVNyQ=l9Wmu*7^@ZjzRe|@qj)X+PW%1C>*CrHq)u4U< z`|NT%WDCM>?_O-F&WajU`DVbFiRE%UBSSzssPs@EI=GwC@UPX&r!4}tM~zljP+Kb$ znU1QrC)UgFu*}QKs!KPAf{d)-;pVAQ?slbv@p9orek?ryB0rH*$ zmw=!k=zzN}Pb*kVFFV^A&CI)bS#GE;^qG7&0>VTEitzCdJ2+OTui`*GV+QNP?RJ?L zYvGY|>?#IGPGQY2ax)`b$Ofw`X!bH5=1ARKH_BIJB>RXPCSPMw&J| zv?%KcRNRI`A((KP*(Zzw%ccjPMuS;3A*^zpL1iLs!Pky>{sFfS+X3I$r->;T&&+j;ONTR z6iW`-+d?=9CVpf&ex`yoHyS>s0!@B5$wxqPpYe1~zPw+@V?4wDq;v5;I$CFQ7;_rY{ZVe{<}Q;`)3-%95!7&bA9sA=}2N{ ze2FIV2Xz1KWcN4T^^d>h!TSKjJ=47@rGv3LJKQILuh>nZ4;fIe7Sft8*1xYZkKLY< z{c{uU=FyaJcWzs*q{sd?u79CW))aj1k5!GQ(A*YWHs7e8v^2D`@@cX9?$0Qpgct~Y;?u0Q z$Uet!$mfet+oMvz)Zu!Y-K+DA5|%yWt4>mTcNWbQJM1a~hoAVTBvEXynQlKi7zzDy z%v_T%4l>fX_6^Q^#-%+j_Zp%VXtdw|p_BXjve_`vp!lgirfn{b=uCf9h$VWH->Yq) zOj>~5(kQw&KDGTWWoc``%P^}nu$woX#2xmAunAXY9Zpth)Rs15#rwP0`&q<@rcK&M zg(Jj463uOo=MbP4{kyaH`-}1t;rEwQ0r?<@!|sRArS&(=KlA<~G5_re@cYv~9D#gV zT9v}r8V!z!2g_dG39R9YXeM8nW}!yw6%-r`wpk(PGvIAzda!!(JTmt8-v>~Y50n@T zP}2niW)hr^QtaiiO}a&3V}Y2aqMXx99zG7J^!`f0Kzsvmcn@_)+}&hI(Yij#1U-?g zaQDw?zpqG%)uYwFl+50|2K@d=cRnoh^YbU%$tljiJNW%d0hDt-6&h;ltfC^1N|%0? zzW!lVzext>E%pp&e-?yvGHIM0cGNQ>ua8%={#$|--y9|w{SR`Ab1o9LJ5Zojv$TbN zV-bHHa!;2Uh6H1sjyj!1k?b|*eCxal;V4jaT=K-3bfb1KS=!O9iU@@c_Y`wMZF(p! zf9HWes7aqVcA4|KS7(O2%xa>u>sJc~I(E%}!!C}k_&(j9qZH}sI80*1(EgFv{=FLh z`NJ6RP%(2bPiv&p1``!4=K%`|pgRTp7@J*xN}=G>w`te?;h6(cj}H_S=}+d%5!#A7 z0REEQ*vQqS4$yTowo=>*x>?ZnKJE(@1>U`YPGThLBaLHlPAX7p>yacp{`tB6q0imIuVj$(WMFHv zZNE-v+DFt#Z4ThMIS}M%*5>7C_V6-${o3Xnj)EkQ8Rl~9DAN!ZYaHnQK2Whnar1iA0u8MAbRg+f9uNU+1Kg;*`7hC<|01RN2PKa$Spc9K!vu$gDP@%& zP$~$7A-X_?C_eH2`eRO_q9)ok-e~5s@V)qbD)1o@L$w2_Vaw*2zJLI zNK+1DoSpO!%ssN7{pa9$dIDNw{Jn=&WAcD_cPKKiHq4b}IpH&e%fKnwbvNp zxp5Mb{cpM?0ddPN^p?Q=O>PRY3B`*U-U}rq{27PcpbswyFm5MdCHZot7&arFt;MbZ=eD{iKF}At5*fuuL)C$pIS;^;)9L12RW zyD9ImbE2#kFF0t;nxnDjpv8in7K2s>iT`@=9|HNbc~hn@PNJWm>*}}Gd8+7O-Z$RD zX*51yaqsq)nF!zQ$}Vc+i;hZQu{)yna(x%4s(H*0(g~rE-1+{14>!6}(($2OK1=Hg zpHsKW;_E-J#sB95{jYyq!GI1_`V|8Z-Io3#jAM;>eK6!bxMeB~iD1bl@ zjJj%w-Sr>@?#G@_)R%q`<52@+o*7SDP}MNJi{4 z;GiZ&2<&p-!D^q@8>%qxRg{>M1bY{ql@R(1AHcEo4=4bg65l|V=Og<5*>?jt0)SeSb7dVtMKtfZzyS~*k8!A zRkP%$r?wb;vCfn;eY{(DMpR7mB61Ml76G7gK5?63ieBECgRXV3e}F~k|8(#EwS4>M zPadMR`nsS7qHb6()K=KLc44TRZUK>|rFg6T9#qN|w##{gu7(s>FzwHR)Q$tKQ^e(Z zD?aM=SK46b<^`g-uLe4%cNh_(U$r@wgjClKSky2i_X7iuw#(qLf{FY*Zh#mWW(ecF zbZm%ARbUX~GB%18`;M7c%VjvJXA*}J+a1yW>zrR{34@}A_ElCY9eSyqZwCPVno*L8PL>l9>43kf{FIMWAJq_~ zwBx*V#`F6r4%2a_$g|K7fbI!USByl=J+UxHTIB#!j>nDV*Qcd3Y}i@}<5u%Nx7;$12S zU9PPOJf#lxIs2qIYkJlN&87#r=6uQqBkTs}`)7Kzxhn=#n=(AzL6Uc{K3<5>*Y{IV zN)s{aM!Vbd0~KLWy!!?*Z2>L_EHbmHXG!HKr`OhQNvwM|b&d*Na^3BoNyfV4aE6Y& zmsd(grNa*?`&x&Rt`jeHn_sE8|F!b}t_{;};Z2CY*QdNhM99=BhHT4TXhviHzbnYU z|Igpm=fBkYKAB%y0sMjgsO9n9dor?-^PMBLUr^s(gdD}cQHn%7X_{52uxe;&`qmQw z7J#Gh`Kp#@z8PO;eZ0aS3-afUO%D@4_gzZkf8O7HZ%x?CC}Y&eaVMqcCd@M4Gcm}) zoIY(d&rHu_Du|jV4&z*s_micLrUIlWTE~4f)P08HKD#V6i_AL}VauJR)m`5-kg|1I zM^Mx60<6_{DBvx8m7e9`KB<ng#VCXp276$I?@i} z1<}F_g@-hhLtK_1ZmUu_!b|_5wV?opYP-G%2a4i;gF;ERpK1kxP@Yx}%FY%^b3Hpl zLo8W2Vf9H{H$4LtE!_Te7GgJFs?|ghp1DLjTm~jPWKri>PSN+T8r%YF_L9MEDUxu$ zFyS_xL`o)wqsXj7LH7SzUH|g~{x{x%r;p@;V92Bs_$rKtM;C!0ticJe0l1IATjK#YnNsOKv=au#40 z-qEKj+9u!`Ir4cp5tJD6ARl;EWXDNF^HIEiq7Ia0AqpYlYb7L{8AYBJWxtCEO#9|h zOR&Gd(&vI##?NN8o0F|3)&!yU-{eH@Th9h~=*VdNi{+shv8u6cpn(8TV z2)yvO&*Xi?HHz%mAr<&8WGrz)be4fVp|=ZUxm+xl{AQjbEV2B?dWqZ{wr+i%OLGUF zKc42X34*OWv3I;~ThBhJ%3qvx7>&D;hbk$+zdIjEWXjGLLl=^ZpbQG#1hm}5O%muB zFcHXOZsh5?5i+hvP2|f-E=dh%hf6i3`}2c`o2+H=j++AmM~iODZdZekVJ<^T1f{H; zA;mfdRO4)S6&zIKjoLL#Q??<4WJM@@?Ul0{ZWo1Za~d86O!vCQh=SGbCb+Ua^WA%h zKV#=$n<$g87>MThprBE`p{CRk|B)fa(@xK0az>l;5@9A%#le>m}&%Y zY1=l~t)JrL$#Us4lGBsMugSC7Uoo7poVb756-L@!wqTn2WN2h=0Dqv=`bmJM0!To4L+_T`L24spK) zi;5Na7GXT5h9R`WUd_rurL+Obtjs*FJ6$>sW!%WXa4OJg^8xI-*K?YlJgJ`eF>Jc) zEFF|%{|+>un$J@5?YW)MtN-ZQ|GH%}3NZH5C5*#&>5osTQs^GikuQ*NdL8FMTWhxw zaTN2{_8uNTjz1{6{AjVLt`5+Je4W?O5q_2aNfJ~{y|36`DFaew0|S|5c^Z2^eCN77 z3X@|@%WljqOm$B#cvUdNJF3$?aw@Bam8>@E=Hj{OVX8%-9kqY5TxlIl$eNh%IO75L z>cq7HS-oz~JU+U|;4Izd!wbZI8W4!as+oDJ{G%FACDL9;J1Vc=?5I zDXBrscrfmGZc^4tv$ zBMdPUT&BG5=A}rxaw-7+=pVRgQAv?$m2%nF{T=V zYO$0*kCywYrc}<|s}XK6dY|-7xeIYZyQnH4DcZbsE}T2hBg?_M7A743beZ@}5+m*!Cx) zgi;|)iJBOA_!%b1P|8w<)bzhUg4OM^jgbtT`41NDKRxn-MDLQsVO23Du|%me1P|bs zAaT$F`$)8AG6JepoS}n?5%{*OvOAsk%z!0knynJ?MvX(Wh-a;B?w1BZ4GGFKcqPJT z4LO}|14<>1DzP+S^Sf0PIypQ8;o1%DjkB8bwV_j*$v5SfQ&aj>H8Xw8v?B2Lo4a(1 zi3&~MjS2=PfsXor^L%`YeY{IrhDl9=hjoSF$tHrQ;|W8mcq&n*Z_K^)fG=hUo$TJP zTsk$vUEY!0>p-m;R!KG0*<@T=>g!;`N*qaHf+3P~fnKe8A6a9;;yMUUtG0oBB%IRZ zEPVR8$Okm|bMK>f)YdjMj692ZzA@vYynj!DX4%L^VPzmuKqaDXs_Z29jUV9C{%^=N;0z}JCJbu6Z^kcCdxH0&(6dy)T)sk-*|6V)Tr0D^)P&?YQIo_$AP^wz0qk(H) z3ch&-f#2(}#SNKE{NCOTsul-Vi5G;#ZW!QNNfJP#ijjZX0=b&n(qd_H9t{f4kWmyH zo}88q>`s(s(^NN8mrgTCnp=2rU`lE>#i&C*;!l~o#5vKT3z|fl96RWhIAYwu?@3&& z;m8mdks|%CHpx6H7<+zCdKlrG>#y_OXWc5(7m3c4QiV;h_-+b1{-`)g*V%1M&}LR= z%87FDMy7>VNQ=CBxP^%8WnLik&A}n}_g!@}q*aLh!K){D_K~4Z(3JXwU@XtNT$ehjxB4xV9i6iw2-CC~KcKjP2%n^u9-*2@~Z)2;i3w9Rm9DlS!w zi9@V)^nkrD^}-k=s2hWPuk_jYa(1n@#p3d2O10|Iz30pQlrRxjZh`)0^aY_6;qZLi z`bI)c3n^{|3TR&=>+;04u;SEt=}xWb_G6+mN9D_L8_q$^pm|f562t#P+IvPdxouIy z%0ZDP3IYlOR*Zp5EYT$dzIcJHH1K-(m{F&5CTf?y#@mB#=kIMRg0TGqTW0~GyU+D)&z^~?rUj^$HnomM@gCt>%GEi98691HEv`ssFI+EL zx;;8zQv%=dapJFW@4*Vb=q{VID2MMn9(AWQH|o)|vfO8I{CF6{p-NyJo!4ZZ(6(+E z<{1{+E?J|P{+;u4A&^^9n*NYp`AvKjFAc5L3f8}M-Lo7WQdOpQT+HHV>G!4|K03Z( zX2ar61u^g)lPr!HZFlCYt=&;^W0gu-V-LPS9I9|<`4rXxW(9LcVRYi*jtK|W-fk>5 zmh(1A!>nc1-Zr*gbdJ8_b|!NBiU-?Ovb*E>eKCJ)evTTC37OvlQY(BHO`=%nc^@XQ z|6zo5J#Z82ZeQ2#c;y_PKhbi@WVF|!T2PEzPf8cI?6<$-%TJSFkd`+#VPx{OpuccL z??xJgHLV}S%Gh=HLZB7VcrR>DcV0Q}^u4wDgkgKP01Lh4!|~LJRtHNI*C<~ph7ZWa z6Z%sY+?Z<%f=mlqbj1O2U2$FCgj&_AoAoL~W~iPwynOmEEr8$2Y;}G_99KIY7?J^i zRJOXY4R0%3_8Gt}a55HwQMAgwL+RZiea+gLATt}9s2up}t z9Ss#CKa`%=$HVJ=j_0%q1{tkFQ;%KkBUC$R4;d${l+rd;B>9eOyv?0}`e<}-9dtA! z3xC)@#P+{p+F#{yn2v~psH5gUQp-fsm&f{31li5l=VqTG_=YR(4Kyd7U#lC^EATyP z+hEzXBp4#vwxQ)*HI<&4;L=hjC(E)jmI(l&E)%c$#h4mOCN19%heu%zre^x5x@zD) zhPwy0xuni~#~~+54vy9pm@2DivJ*h`zbdDp-dXZkQ?P<#@tA_x=zl@v|1R#*Uf22s z_r{;AA4lGg>&tUDYG#SN>q5Vv)A4Gi__Og4o}LWBM~e28Wc{d-)~~iY}aO+=yrqPDVepK(E_KieB$IL}a) zF=CG(ZT=qIYA&|xxDF(FCxShs!dceL9LyPY60+D6d6Vc`k$B*d$j!b*?7Ld{Q>UzQ zmDO1xb4iu7Xil!M!r5aL%a_Q0p*Rzs`A@1k`O5niE*DBlXijB+>l8asUo<(&f^|Gf z5<-l8U* zE)4RCFgL@E0R+%udUvTU<@L-W6vFA?+N;b!M;=%ZXgj;<+CgLz}-Ga(|=e1NIQK)jh zvYz_k2oxo3%X+Peo$Y$FkRb~^4~jn?GjY;PxUUVbD0uaI4&C7R=u z?#fqLw1pV?-VFA#f$f_ERTLWwd~6*> z;8r@t5F(t_g=GQQDY9L~<6L-c+>AXDfykPwvunx+}E*iUN_PHyRM6*KvuDdo#i@L zMNwAhgaPxnNuBys2F0~!KmnMKU zAc9r#0BA9U$c7dkm=+xSq>L}D+^>Oq%1QRHvh(DbEVo54=9@P8DV{xg_ZwjC;uR;_ zU-5eK8qu(3Z<{3bbVu+iFU#~8 zkPw!MIl#;hYt=cFH*42Yso@ce>8Jfe40tr9pRjpdY6)`i%-^A9%8TcSIYfFBRg9U`_e zBo*-YD?8Tn;nZZYc!~xkJDKamcYtQXznoWfwLv3BQ&S9%(M{RR>qS*iVhtw%C6r?A zg&iyNF--Z4i@#(X?D?!XIp-`=n{hR$hEHwhHt)i3oI@aSGbnx;9c3d;JR=mdk?pjbrXy-!Jgq|a>whg8mpXtKVK^iIq> zx~_k#7Z?f>5V-f(RwZ!dUO&>daAhSF`tQ>CA4ZbZ1C63b>`C4!PJ9X2JHpONA)mQe zqWEhuJ1SlaxzTth=kK7qZaR1#EAg5@Y3F+y6klH!9J3y)agbvdHM2TdwGhX=?8W-V ziN%mc|G~NO1-{T(p_g)k50pwjQ8oNd+Y2BR4x)yB^tFMPJnMYpRvf~wS)Do_oDLo^ z%*>9u?=r#or$jQpM6}n7dMz7r-0V!O z+cjUFgs#lYYGPFmQo4GAO{loDZrJX`6pQc0gsIxOF3VyKz+u<@Z;=8i=r;tTlbsIMoHQUdyU?E)(r)gS710+&rZ3OJf3Rfd+wiX3<&P zZ2WpF0U#I8Lsy2?R;$O8(JJ04UF8}3Gz+_mi!)Ms0asA&4}+L~t9aa@B5F92O8ded z7ePwmZtp6|H=fGN=x1jOP&K~Q5$!hgynXReC)NHaDBp46ZK7)(S#L6ekKrn=F{N1# zka<;}o5kr9^Ok9I&$`{Wf!$?2Z{^_~`MMNT#Y$N+7T3b^Tc4MGji_z`6(M@v z_7vtR6N?k9X(n}k>%#PDul=_@t+DNd%4WUvE55%Meu6X_mC|xVtTZ&*R=Lk~k@Ya+ ziT6Xbs4^#j#Z2US6nVngp(vYMvXj>C@C0fd*rz*a-sz&69uDoZ6ld9y23Gg`0~*dSewip2Zx_BW^lR zVMUfJ|82(m``NAydQ*Xbg@5cEU0a;Fk3oGeaqoRS zmbzXk%$a*-U#tA0rMIF-w?L-s#Dn8P3ZiRce8e20!Tb?L(LxKHNp*;^WT}YV%D#4? zwfidc%?eArD&Vhr`qF=^&j0;~0X=rZ7pb@JjclKfeQIVjpHLHqlR1mip9GKyI%^D>)+>x0CM|!_)RA zF8$ZK{XHW8tBoouCHCZo#=hprI-c-5^FO^Y$STRYdz}~VA3J&{>q#ohFF5T&^P(Z~ zK>}@<>|GSOeVo9Q#j)ZJ6EA0ZZ|_V-9KZ?v#t|B}A!=Yn-;^!Nt0jz|8m2jU2W<&X zn`3=a_8r~qlz|W|G9q3(h1WOOCOM)J6Z2wcK<2T(o&V1`P}z_Fy{_nv#>I;?L^q6% zte~~4q5g{wdS7pll~h5wdq))IJUT~60PbCS{>mJ9O1A?3&2Uk)&3K*cmYfd0!cKf` zOXoV%?<9~LfnVzFX{_5$m#ci{Eext%B6jN$S4`brYLN~ZnJ{dq zTjhYjSG9gBYkho^NR$qK7FAROaD5tUR&PGhxZF3<7IFp*0j+1 zUHpXjj{Q4spv;Q_O9fqY%%Tb^*~{pAs_8rqsVScWp2fA8KX1~n4jiVpuc~oBD(hI%^MSzU35oL}Vb=6&J2J$fBn(F)-IcfXtqGr$`(d; zruO9k#s{Q!?HA)7C+!o_>CHspTpFfZ_e2NtbcPT=JRI0cq67>( z{=Uus`IksL-+Aob^>N~{N?ZMZB-6s z**;S5<1V5QhbzO>M2Z+9&TeZm8^$(74QE}%fmz%$dsXJ!mcP*v16JkVlck!3D3dB( z?hz%T!hct-?QYIR}cM~x65=LrBMP0bl$ ze97epo)`c3{G7c(t>5VGhRe9k&&d(ka1Y-_+cl#T_E6F4CH;F>1m72cE=ZLg6sgZ| z*TxYrbeHo#HkF+8XG{Ih6(PHVTEE&w)g*&qw}gnuC~k>!2=TJ$i0G3(?d|CLGC^W8 z30H?6;!?Zp+7P2+zJ78OX9iE&CYSo4|7YL+o1&!6dC{ah%7;B*&hE~RtvvY^V4m!N z70k7AgjObt{m+N>LZAh;-Ej8HC%B)EoOiQj-*3Tq)Y3e1c~B+aNr?oLqDPrl?^Bs{cgJA5s^+_)w&o_7B9(L(`gN5in{v}4#vb}~z`M|gp zhs~s`t8{@!4Cf7>|47bcB>uInI&ycQxUv#xNw@32c%P9G7Q)|G+vww)sXc=xmjr)7 z+gJ*wb5wYii2P`o(e8d+pi-lFkyRS?czsZt0vth8WH#}I5oUC%K z@3FstASt4o@Ee>>b?e*_i~`#**Nx1|_y6fGXIBw7)NQg>)AyB>F-|o&9b> zM^W*8tE0KTyZ}s~`_hm5c?!XqgW1q$-lrUNKBs?Qx&QABS#@m*Zo+a)#QHt>8ZXk{ zT1L+6BC)LbGiT}mL5F_*y~#Vj{-;Nm1GfzIDFOrs6pGa}dH0N(tsG~_za;-P0cs== z?^U0Dqa~j&kAZcQSWX?7IAa^CDVC8@6dQ=r8rK072eKVRORZsUnr7onFq49pCWRsw zc+)mpO`F>S?!?(d9R{3GJk_|$ut#aX>U2D%7sPv|;y>jsF9ym;c*jPyQ;{pZkj*|K zo^h0MsJfuiNBZa9$db0eKtcFo)pe!o;E{r)u*$!5Z`z4pQfpoG^5#pe_EWv8po9-^ zCr4mr91)Cy(F;9kFLFN!f`kDp9O2IN*6R5bbM=noTe*48y9a7ZwQ!1McocwS3bGMH zMK&}V7qiIF-mBHY6pV*~6pZJe8u{^FaPl!@5tokbD(6)-%_>TyI8b9_2L7|Dp|r`J zY_VJ1#&y!DRQ_Tfm0%H|EPT3?!y1D2bH=9OnjAWxv^>765qIT1rY2ROVueB3-plK` z)L*xJY>;??SD&LheXO)fCddL`h%$USpm*ZU&AD2&w63!z=s2L_JC{LX-S%yHunD3r z;&3<%gcVch6#Z34=8Lp@Oo-Ki!Q5xOzGrc^R+HbK>}+ArW8st+BdMCEbg%B`jziQi*oBrbP90sAY6)~qGha$oiedqZ|QA>hh+esaWq ziysm%#fl2}L6xty+Uv`5;uS_w{hwYH(5AXb+fd^?peC<&>n>2*D>BuVFA-h5XvCs} z`v#MzWI%c;i&a+ZZ5c+tmo|C$7`nmX>wRP_)nrKmiU(f(-w@D2n$ix}Ulo$w(jhU^ zE+GEDH8xsJ8g!spsYe*}8?3Zsv>(gfiu#HVlEn%;4NZo%E%chqK^$2G%?n{YRR(kw z`j7f3z~464@-1MSYhG__>~%ee?U!L!5hbkIvQiS41;W$$CRrHS)(#=|tM6Z7>(8(J zHD3OI@su`qAQZd5os;A?#M%{pJY>Dy)v9({+ve4Pa1d(~BPJqpyDPVS=@s@x?&XL) zAn6a*LWJL&UIfQpE9xdrgpEJali)WUbyaC9q|B<)c9DW8*pELt5$!qhD(3OvuyPqE zrJG6k8_qAfOFUX;vI+V*_)}YVjW#Qm3_ZLUp0W#J=}8lgk*8d3?aW{=qW}{A8u8R^_+x5taV;5o%H6shk%5}I7^s*2qV-twQUSf~ z7aa-?qxBD}Y1Rj^wS16m2DqI&x&aIExp*z; zkCTS2Z@cp|VZ0@Y&}Cwv1;!HB4GZ=Z@fg;;_&|B04_w=Rpq$7R;|yPa&;&k=1;llf z8HAkdY+B^*y#`E%x|l$d^G!`hGv|2$=TNzw@U#h~>>SG(KuaTmzxSvzYeGlQguO81 zfM6)7+JtHZTyUY^#WtRP{xJ)|@7?0_Ke}=#Y@90S$b(#~s$Q!Zx&xSqxgWOEa~pEq zSBQ)S6p@SpgTwppNH*ur8$6fOX%?8(t_&rsy z50>vVUWKS}oi4CZtEY=nx&;`_D?l%I`2ZTt#jVxmOTU6*g*8w^T_dT*toZ}v0S&84 zJRNsxH(=bTwMV}RxU9zk5`K#BF7MA5<)RXXKpIW$uNP9Jwk-$16o62h(m;FAvn$&4 zfu`$>NvjSgSFIh{zd0(4JR{?H@a3u*?M$a>ao85~>FWZO3-sDt1c`%`!A^@^3YtNU2P4n}L*923n42tWj*YOeS!f;3Xs~KlaC_c$uXXNX7 z(Sg|tt?qJHl0rJB+M2%zg%>sEek(RyE%e99A2zdge)u^<_z!DJicaFS(VkehE(|A`X4_ zO4(#+wA_ddu&c?M^qK7$sO3(7x!9XAH{l420mS0OxmZmUiFOxxKl->%t+^061%7s) zSCaYwc<>zs$r!!5VpO9Hp)zaqiJ`eF7+0VQKW!?p?oL!_Zvnz~aI7f1LvmL?-A3ab zKclcqyhkrWddh#7TdFJT{8Sb(6RNz+P}zI@mYgRR@a=h0iQ5b~HxfBN_1J}W3>T=T zoi_hbfmncrK%>Mq^bz}`jQNUjtRee`M=PbU&O>y7p9KUBh0K2nK6{8mg4D|}vb3p$ z>2niy;7yH8P7e_6tiVg*kQ%^Es4`Rb&vtCgo!F)~{r*s4-}WD4HfhD~{W4(1T>0bk zs@s@^UQnAwsG%{BgZ_x{hB!hHmKaWVK;2E zjUgPKYw-Z$*-QDU!m#?cFe<6r9PKOtnsWg=bK4@gY5fLIMb9XiO>*ix8fm0!V+h0= z79BysgdS73+(ec8`nbfHYVaPB@pj1V7%k$;UWb91k6wRh6!U&rbLFw5J%oBsxp}eE zRx7asLE@FfgSB()R<1R6 zG{gD@8bV!0#%b8(ogjX2)@%R>RgOKsI=RgVr7tdP)3JN(I&N$*-zILmUBitmT!?Dv%Nn!`7!0FQkKDHM}>J!hkFIeWp8dTeK zQ$b&U5I^1e!+p#=xL`b{7)N|CzIXwi*5bsL<12qK=@B&{kwPRNu$-UN{fF?jTjW+FWun1P7O;0URG+I9kom4Cj?s#Jz??eH{SsQ zSnB`>oPym-%l6K@!M8Ijn{>suzMu({fcuSNu^Aeg%6;q4NGuW|)>aX4pL+`5J<4vp z3^-4ey;w`odlvrB2EvFm(87VTL|MFmN)phdmg>#`O_^B3VkI@!+odFtU8l1*iAGej z`4)i%-HRSNRKvmTN0Py8t$yoDdy0x9UO%};v*9&a`;5ZfBYo+%w~J zJB4&-JARmEyjgVc-xd7=(a5uGJ~R2Mh|e4l+f}g=kd*1Kt`%!tI=ud)251@#1=Z7s z5G9|x&sLHWC79IZba|n8sbh37Pt3TNv=eP*xh1KD(B91fOS!09g|rWbuMq{jo@P{C z8>yF(IBt!Rn2+%Q#hf>wyCXN&dy(<4bwJEWJR(HUYM3JTCNV3wz7B8RS9z<-j;4o?C@XxK((2KYU%4098mANK{^uS^QP0my3bq)32MmuLbNB2SIgBoS-u zU!@4kzExJFXtB|R`_ipE90wDr&B;%SgR`A_C`$Y`8XQMP^vsNkU7%;XW+5R>p6z9T zB&-Rbp1{d(qvCB*6!09y0$w9U05Vaz{&g+D3w4^1ragRN&S(mMVMn^i&^#b06$8A< z@}=i^a54hpVPAAv>NmHyfJvQgAM&})=m!u^XTsFymU5$ZoVCTl6ZW9WlLnfOb})dpi>-h5a9wb%r&F$mzHe^Ochp#T!&Nf|DvO z(Ou)r&;G?HaVSV*n8(fL#jRb+4~=?7S0_1W!Nu8Yr@OrIm&oa?n6C(4E4oCy=098y zv`?lVn>du8G(kd|q?cRg_^!WRU74#BF6hWZEDK*;O>nx8n-EI83o%qgtMxpmUksAL z64rZ)t6o1e;`w0w;xDZJjo>dkg5B1q-=7TDm}}jd^uWwKRo$xc=)=vyY$q8AxV>4i z`422Oo<->HJ$qbPxof3QtL$<2Y(O-vi^}^{Md_&P61scI1D3&`=SjItYfTGyjn_#u zS5RhCo?RDi4OZ*a98UD&3_Hx!mKMFCN)cY$UHcog*!p>r-YcQ9ui9n=<+inqGE|Ie zy!y~}D3@@?KeNZmHTQ56}|@5xU*N=ZH;Ij@&QegSC3IW{Sgc2GaUqwuY$=BFXR333s; z@wxee?*_v5`D|<~wf)%VPyV}U3O;U$B4|LTQH~yCP3|Xw+#eOYS50r~)3*6)40w@Q z3|yb1V5rG$-1>HYZve9jL*F&?e#T6_^7vqtHM!YnzOpS_HX*I( zqw>3hLS$!%7@tcMa%+fFM)I>R_K6&7h@O0PrRN zS+Jdc`45#V*NV7-P^qr33kN$g71H}Vm&Z{pHn}vj0?nQ{VrM*L2M#ajjK9<=%rbo& zsqsP8m|7^|EF-Oxl8q{QReg;Y{j{v`bQ_E9hS*+>o%LQ_%1kvY@HAego5k&|Xb%)t z()Pc8ZR#-}3pd8nicd*U6U%7GZFca^}lL=X|fY9iudm)09S?^T?wrMhWstQ{vo2 zHXCQ)!O$G|aqX$K_0d1_TcDxLk5U*bCe)4Z#g$<%B0zjP_WFH!ynV^otF0dyU8)8_ zRBY+5{k0|C=ZYSw=6KU21F(5LQ~IF-jOaGuzBXkbC8JQDg!3utWP_*ZzDbMC&qXP; z2B1?3bc4EXiR3Tej&ue_W<`WIIuy>WDa+3Cr1e&Bbx% z2Y8bBn;dT7=38jgKdy0o$|+aoIj*&yPc(9&$BlG#~ zGx;sW3^d1j2Co1{Y+t2nS_(9ZHa}-bivL1*hdfkbYZ`}5yLtE-)}=x|ww9BidibOT zQf7m6WqPXi9RPBChdWol-V^7(-JhRwdN#J6TUe3yNiv3T0`^XvT2JeU;7uUB5;Z>{ zyS3>}vWj-r;(z$pVUTn_sY)vU*XhSgP3s2<2RcQ69M)>8No)o0%-6(Jd5%!0EWLl8 zTM!w|giJEa6Yx5_p(ka!z?H(iZsZ*eHM#ua@Ia!=i|}>qFt5h6cnv`?MY$Zz81VV; z*rH5ekr1mzQ>0>8TXA7+qGS4}SIq^KeD(*#FKv`{d1BPc#gwzuAo)hf^&Gk(I+cV@ z57uMU;cJNSBj;-)L8KYe-{#31eM)SDO<#_b)N)#_mme>xZh?Fw7Wh2 zK4hN}(_Med(&~HoK$T0g=m5qo$y5ifm3B}LS#r$3?Y-Kh@HAaCWfb@MY#U`HJ)ha> zHprauyj9C`u`K=^DsHsEW5OA+f{FVBUz_N<>|Kdd%6cdsAosBYo4o3 zBTEJBHSRSq4h5TWC;l8t40B%^K*ii1hL^7m*RCNw1b)D1lrc`xRBV8wZRGLXaVhSd zhLCcUx9Z$0j2U$luPrPdGYQ&PQ~Tll%?0bnn`>Ksjp?vsxf>@D?wpr(VhUM$*yUbv}8CkuKdwTfV`NY$XdfY%ZDsDM)aTo>y4eh8G z@X&zjkFqC8ygI)NS|=P&t5537_Zr`&xqUdYDx{<*>^krL;=FF7R%JS6vT;s~#Q89a z%I3)9=Tp#`CkUCf8tL^6ZFnyWfzWPo%@vzktlw2%=Tb?BD={E^jmC-{$&1egudUij z9Wrb*n2@8x@PDv;kB2S5b`~JG$kj#W`iv!sl*j%;&M6dGmBuJ{R8qO=rpTVx?So~U z;e@a<3KhIgu3C7+3p&;FJ;T;|5!oO5G1omqx*x`@8FP*bmh?Xv`gLzzT8G95sAtwQ z&k5mNE{h*rk6854r|#j6_?1=E+L&cjVx|Q6$n&UgFu!{)>)ihf{r)<#Y1;a3SyUmL zdgi_650r7Ao=Lf@FHJoX+Z5NoD!z4Ld8iOHDbNKof~!fMzD^Ej5LD8B{t^xS1D@L= zJr3S%I_;&7F%Klg(ats4juy)xT8URnW&!#p5Nj5eEvQnf1Pyj#=XaeDU@89rx z;B^dmL4}^Z#+4ap9dAeVg{yeF?GLF-an80y(9>R9+PKkh(gvhC-iGF&OSMBx)}G=F z@ox1-@__K33AVz9xwYZ`7|>U(JdHRIGj~EmSQZ0FM0Prw^WA25ra_+ckuP&mfUn#- z`?C*g?4s(BnPtFoj%|ISHX%3aEOD)2mFMiF%sc1I%VoA*eM^jSImZ>JlbeI#VYp3t z#p>=BEI{HBK;=g#>{t#RzhDN)wmV>W@-Ot5WVTnVk+N&V<``Gz|munmUbaVvLbOK*8@TQ;`va`2*?`Gx z>|16=zYL6sO6p$1VyPt%Z#bIi+!2LSL)fY0$(n~0FD>87NouBt;wc@s;hX_h-=-%u z;Q%@e2zR~Ew<0Wo-;&+;ayzh$lK44omH;_FgAha}0jGP9#aY>f_=W5*;h}Fm&+vtt z)xaWcS@Z%M^vG|T++-0PVFN3ql=`~$m_ASh67P#%%A2OuzlIGO=Ty`#P48jVG5bnHBq~2)ti32 zA+}?If!3b8On-XDc!=QN2ft`+TG%)JmM%hWwLOzxF+D$JR&Ar22LT_ZwR>AnAI>@p zBTlyB*wjJmo@J#HVFjv;$i9gT6KvHc{kC^1#-z_P9dI0W%d*uynzjK%t~XNZ9QE9c z*3}IhumJE;3Zv^WMjmXO$RC4A6e0h*?(`^LI#-_38rLxVOmq+YL*j69c`CRIHt=W| zU6&>Xsz~=5MNG*dz1N?E(x5BFw)c`~AqOAB`5x>^5&#R;g^fP{8Fc9iB;PVpq^rr* z7J3AiTm!t(J~V(`%^JX>X84m!c;uTYx0PdGn!H4d-;hx2c-FzS<1l)_d zlko<4H?Z(6cBA58&ht91)Qo3K7S_rcmxU5=$MeCXol=ahjcP|?^WS-Tkms^C$Z67f zUL5E{4Kz*OV=Be?yy(+)@3`tbAHhp6-NCU%_KzS7kG^pv4`%mnYv#ijb|qh+Z;2q<}NXt zlW1i;npZu8ZhXREP z8j&)**qFcC7E_g7nS% z5xCu6fy1q2IrB=ptlW(LC41pB2{3$TS73Xv#4By?JDN(p8uOi!7n-2!9fg%?w7ws3 z!dl*#^PQT_0Y6(E*VWY95I3fv)^X6$Z{Ys*lSJc%fzum&B#tNeqDwi8t;0c%r-V3k zQzj!i>&!8}?6t+0$BkR9;sa9TQlg*JZvQ0KWcUWHa~{`#?sp{D%sNaB%DG2^O}HNg zJ7%7Dg`8==eawl$?8dO3PaJ5sanJ(EK9JkSKv#h*NRELTx@JN-Yr*1tK z$8dlnxEm^zX{<;pDFHaW5!RxpXKzw7*yKq|pw<#P2h=s>-f?!ToqX=}4|s zH_5RqEReTx%ffdiq>wsotrl|)vE8GjTPKSpr4^oG6#;VrM-pd8G(!$vFY)HV5PlA#}#X@=V{E>|V>}I@{ zx`dny>i9C75BNDx!xFu@N7kt1K8XkRNnZNJOV>JLzBt2i%R!+45{a88Y{1oyy!0oI zbBNvodNZ7Ct|=Av6ZO%Kp`oq-U6f_L4xVYL+9cK47^f*Ym3+J1#JX&8 zlaf=nEW85E@j<`ZrW|maptX12#}_Ovo1N_}F8SSHD7tb8P~AIkVV@^k?gMWk079EU zL|2NzbWHJkx^+FHA}DM$tTLA#RFXk>kSgh)=cWgIdhTFWKW*S?sI&@HJTN(C^6G(C zS2vpuH`U&pf_Pt%bqf;O7+o7o;(3(B3S`rOLMjiKU+_|g9z;qUAm{6i{oTfgvTGrO zr?P0pWhac2b1r5iPEB-x_h_WCZs7PAUtT=k@_IQR?Y(JFA5VjLkHG`u04?ZIGfM(k zT_@NL8bDa3j8t4<&ha{m3OH5X>-#20Z*m7sSf7_Z(= z@{dwJkI;0wXbm^a!z5$fjiz&eLEWFy-pXGz&|`Z*@k|o)NaCzdjMuBD!*iq9l~x}+ z)J7$`bm4fsua_M8UBo#{y(X~Ab?mcwTOEgs_RHi@9*=QF&u{NTrjqJz3D~uVLv{3_ z9d}8(tNYISuti%YtpNaQ5;jrv1)cNy=x4Cs*QAN>fYvUb&c#n>Iyd(CGeYkOE?J;7 zZX3N6`^R0;Y&@yw^58&7Tq5{xA`diEz&;h+_X7Gtx}H4Q;hXoQ+X>kvvj(5jA$0}t zC%vcDz!3kb`HbMEfC|lORlYVtKr2Qv;$;$r88u(VA8CDy;%w zywMGTO^t`N4Fu)cGWn2rWp?5K0 zjL<97pT`?5Ns@oazZc9>L6xsaTT-+(8>Jvxsf(BJXX@TtuFiMH>TX=*5qlu{c($9D z4gVx)Dxy|W6VH_-FTUVE^z<-icJgve`6apTwc zgesp3J{j-hiDb^97H!;UV8jt(!MGDb^yjg{edOWsqS=xpr@vu^8u{MT1VDqDx+tu7 zoe9PDK~jwa*v6qJ-!?$3YU$s&Wu^B;@UNXHPY&!&Hq4uhtTeo`ho~X==Fta7gMTc~ z5A4pr4VLegn$EbJ(qj74QLJ;lBOmE$f*-5@tS>5dQ6F1it*)r95Y!Duw`Dg?O~_2IF{&+td(_e!Uw{8Q+`%b;izzjYpkHNW^@mv`U* zvCz_RGB0-T;U(Ii$z#fkgFWkW zRvwxsdI~*B*VQI(d@!0$p3zqidoH5NFzO*TB@$>nRK>!i^Re(=smjm3$b^ulRFR)r zCv=q0+g*O1fo$qc%DV6)OdT8G(y~5hBfQUs?ciKA^@#YViCw-ZR4z zUWk43vG7O2=W-!s+*J#|%vQPg5tDBAZyV+vh5fFw9%!PwJ_U=NX*U+hm~942B|n5e zG^T2lxp@BQe3#|XENt;(rY*-2|5=z`SrX@@*MsGo!#tcG5ge~N1b*GP(cmWbY$r3S zhatnn@k`Av+gff}Ma48g9ZUm86=aFpHw$Jikpr^{1eE?-w_}-XA<#QZ875bReda~X z>6!X`LgMT+V!qPqo%R;)5*AY(<FmMp;sUy6V3<-EyOWCY+3BPhrucPeRO{g~vOJ z46XKSvXq-s-HQ)VUyT&AP2ZkfQdj_d^t!@^fw4e4^ko%8v9uiMnLVbWd@*O1^xeWb z49H9738#C7i*gpcCeh_cuO*_>ICVABc0dhl#d{TB2X;7$uklVCkegOu@=7;5Eth({ zO0~YC@QzeOWi9`$^uFWihwWa@4OCatEp|~@w0&Pr`s)?zIq%hK3iXdsc|LOI$KQrpblwU;v*TL zz0NP@{kVEygqQVVIB%wZHtIYQX?mMBrTEH1uh?ej&UOn31U$59kaoZCxa+@p@YTNs>yMjY=E<| z2Ih*x89WxGi#fCoFzbUtF|`Fo0NtD}rItGZ?gv+W7!n@Emwrta$RRv)S@l=R8CHj0ibk zT@v?jXhy_i!EZZ*j$;-WG(L1|kExNr#rNqc$Ej1oSMdoQ?LJam2&Yy*M)O=?Z)Jo( z&Om#rSZln3jpJzWv9;3p;=9mHZ@^+u%zLl(=Tzs|-&6s^*)iej2 zTDq=Uja4p-NR<=!tHTWwj>#S!ITKfuhyXPhkwrpq(cv}}h!{0pQPbu4-gP69*KFDQ zrW!C0JCwtHDm8De>H~8WFi1h&4R;Ny7Z4#YFKa;3e(&qxzZtpJ5irQdK@;%vy`PU=~;LKC!z|vJA?}nT)Jw@ zaV0DmxaGp9x|T0CS7$#o7^Qcj6Zz*2+&`(WrD=3l`s;7oazF*BcWqcsT*_>L1rU@6 zGKRyh?*%H=S=Nyu_m~@|7zeVaVSVDeT!)Vf_6}b{o=!&JJ(0KIt;Ga$E)#^Cs0w8^ zF-)(&2v4eESdRTG&pYQORV&bOH^5FurKUtB1Bjy--g&jdH?IgoHHp_b)U&nG;!cz@ z^cR~%Tw<2A;^}$RC4wX*T}?CuTDZRqSSr(7I1joC$n>+N1j~Rf=SD24~97paNNCeW+Bs3VlTCab3QrmUUpwU#LKDY4Qxh( z>eJ}x)Fw*f{6R_1+^eljXo%n2BD*C{wkdo+WOEV=A?XpEJiy0y>@oggdaNw# znirm)NiDy8RR?tTO2K~W(SCEf5YwtR>&drucR~}ctL-+ZcqU<*xw>g@eXK=q8MMxs zzGYLD7WIKdGMOEdrGM~jC7Xx)bi+*5L~0SqR0YCTp*&Yr$pr*&MfLPnEjM>^S+f3R&IsNE+2H2cR*L1CE^h5r9@5|aOHw~8%V zir>G29$ZWSThbq!pk&n+*rt!XL6o1<5*yN{=N0xNpWCghvTWS;wLcOM;F{X+6+mo7 zGtW0X+GEh^y?*J})Xw3`MU&enrDi5G3c2L(v;21|bHvyAhW7S?`vcB)QAJb`_c`7G zU&Xy=%iQouI>Logv9~7fo%1oJ=yQV00Fyq~DISA%cMh1vmRy*L*HVj>I2gl~RJU>T z_A`|U6!ovyVoa5cfV61nzumfJhj~IvGG=k2zydLb0=C%l$asBQfE4!H1>f00oSzl5 z!~u4qL3UsF0E5-Jb_eH*#vRbkpfYa=8M!Bjg0_}|<*c~O7@_I6H#U{FT)_gkVt*7= z4D)KgLCay+A9N1*{JBnC6>M-E`xMN)yqZu*hL3&ABZLvPd>U}(Kdp9&Rme4C_joaD zmA;!D9mad+wKstS;JVt=WIRv8To&JzIVI_!Lgfdx$vRG@1mC&$rH z$4pDx&gPp!lkT!ehU=9}xeYXNJW#+5PbVN6xCPZ37GK82ToS zv*0pLVl7h4W#68l&|b6%1uRh#>1K7`#VJi#Fb&%o zt3@`ZYWn;vDkcda=6iS_RS`+l^|~Q>QD=BYs9UeuxnC0vC!tesb>joW+36y>KI5v^ zq^Iz62_bSyj(c?(dGUm1Dybjud%$uV73ecV_|PZ>IuO+q>54k81MlqfPs!6?UaqhJ z?n2(Ey(Q+Ip6)$y>+ERAR~%q4>~oqr`X746s8^isL3GY*&S})eTam#1vu^i^bv4l5 za35_0`63+Ul_yrQ5)xVt_~PJf*%#8k9a}4}uG%5Zm&c%oNY26cd3fI$dh}5(J+?U8 zxb@X`bhjYK4I7ZhH-u0Bp@zhUib{T#n*>@qOHIPTCU2`yx#onC7`pei5&dyPN zdy_{CN>w9#*e2B>R@tH5A=y%0>%)vPu5d9=I~MCg)ik>N>W7KkMyz^fgrttOx8!74 zc5Zj+e~kM}(xq2Nxf?rPfN+D;;{dIE2bkF0DK{%OYJBQtW+;_=u#V*~m&_ah2#Qd^ zx+LS|_Mpt=t7|k6)8Q)6)bSW;o{*n;Vrb1UEBn&=dEg)LBo|y4vj#u(^ah$HWkNke zw0r$a48F14H$!=a?Va=FyGwrco7*P$15+Xcmil>zRc!h)HwhCwW^rtNuaTkoP)@sP zR4rD{KN`q`dmg8bFvztL7QZD)7ngjLsc-S49$7S0f>2?VI9=}+XY}|i2rK6tbi!O~ zyzt%Nhoo&DU2f@?$}S!LaC6yPVAI9`#9~oP14|(7%ps%x*Wg}OdK0-6InS_n*24>R zd-+nK!lInf^|Z9cF2?XAANdiutOIJaQ{Ie`IG!8YA#7%?oeYCx@E2IgZL=VW=c+PN zFuVRkFvKSc=Yj8Ww!*>mw~%XmN#|hoD%Ca1s`y4{tWs1YMUKiab;uQz{nk zXh%wiWNvwhEWH(@^)uPa;+;2zFR?4G=@_~)iueTAxepzZbl8JIiPe+eDj3z4c~1@; znYf`!76RS}WXE5)`;{SrN>wismSr0rTLI#Dzm#DAeb?#^JrSdD0Ua6xOTy1&DyNmy z*y~H}_y2(#>H4;42APRtGIUO3JsA8Jh^36J6-@c%IN?tx7I z@gHxwra~o(a_L67=AJv1RBlD?x61u~8;cpC5<(^S`~7b2mkpzGzZ>Q@l#Eb4XK1~i=-^JF}pa;H;p&4BZ(?YkFN{PjAHU1Rwp&Qob8X> zSYgym4e7;yPH^3)LZt16zSqxNYAP2o-7K_(4tV9to#VBT)8T+P2hiNp`g$RtCrw6J6H_O*YpKy5pGpj~xj=1jEMQhUCrV6sN%H z(s5ZG)ONNK2m{(-`!=PGOG9M*tb71>^Iif8{j}KhhmPIfbJfT!q-=f@FGiu&ZIU$f zKF8m)T=`(HwfXhXd(17CeYKbl@Y?BLJ!q#&59kajIw5>W*Vkh|X7NtmstItL+AODB zyt$;z;frZf&1jKv@!O+}0cV!;wpH!=n*W2%mkno1lYM)VY-FaCIpFbV_acIT5OMyQ zV!hK{dPUg;KD+@@MLOdYk#x`g`bpqJnoM<)zu(+q>`7akUm0C>ACpS=6CG`_3nQeJ zs614s^#*MK3V*CL2URX{`?B43uK7tP^gkrz1;?57TrZ4~cDT4e$RSqf=S$rII8T&T zIFbget9x7;G5#?}ra5PC{4Dyianm02tv`(At|)992%y~dM%Ul`jFhzPda@!|Ttk-; zG34I`UGI0h2xWPIDzn9_5_LZcf$56OyWEB7Ru&BpBtFhwO4{y~ma^|K? zY4<w%SF)j#CzZvO4H?6YSM$rFr8_UA6fTRI>LjaFpsfr0EO z9b2p5F}X464y&YVit3(8xOKcy3+E@m_zJSEd-paAZtpr2Td;OBCw>x(I`+GA_nhL; z{q+D@$`&&Shw*IU2OYm#SXLW%>!%z4;;?F1K69?h% zMsE^6^;xsi$c?j@%CNNpvEWf$J$|4Vn*3E0C658Q-Yy+2QpEYGoDXz2sg7w)ngcH! zbAun9pXE%QEYh%e@y!xASs&iGSki9}q@#l#h)TT+1u!n4G^~60F%*pPgV_0Yaw4M% zp_(6UgmzZ0cxLIJeAD9Fd8nb1Wwe{$UHtLwP;Zb!v{6g`xpbLz(^tRUqRY!GG9>`F z_pD)HJpcTzv)`L^JdYp7FJwDx0%&)4w#t>L{vrd8m$fal;0?Z_s6IA@<;5yRBIxeG zSxu9a>)5^DKXWysMa{%BRS=u1&f*WHICe|&fIFRv`K2?S*gs?|W|4?Fmm=?J-MoF9 zb3K=0bM#mK+gGBHM-pnwRNLhd_kW<#_<1@d{I~?q=ct@lZkIoKfnjY>NYiiw7Ds(( zp$!bDFDM*sK{0CuC(c<{{E{l?TN|Zoovu_B3q0LyrBnisN5$FM4Tyfzxx}-BY)Wow zl-Hk*Tiyu=H6f!q%p1iaA%GE)<~Ztar#&T$x{JM-;QCOl8@xFsE^PQG@#8&1hbByi zA#!?s$g(xCAVl9l4}ou3Lf@33EK;3o%bjP$Z8y{|LrPwv3S%&T_iLEXJ!XCOzpI8W zr%z*^QNKtVP>6e~KyUO&3{O(GFUn>wgj42`KyzddU1J|z2YCRuNCGDM@1Ch1uG?lA zZKs?hUYw5rE|gYe@Ky(Nz%}=>uwB(Q_3scGXe{)u~p7Uut_KthbpFk^v%>p#ds7uj#Un(uhSm;SdDWs zL8T~SFrCDr8QE`!pFlh37=8u*|6$#KL!G^igu_bE+C7e)S0)S3j>}Es58q^ahmZe- zV6fUD*&|hM69&!ODX#spC?8hTl^-@B8)Th^0z_5!*_VIy_sV}a#PRklUu ziWN69*1>Hev4n(fC%JxiPrVq1+rmxoll+qv|Ia)sd7I4Dw*Gp-K6z1n=JI7kz9%&R z-enb!x|->$WZWtxRqtfn9bCYHD^9+B-UNC7nV{p8?qQlzJ>_Q6klq7(4MqcYwu}`< zYvJ_XJ9RGR$n>W=v-ru@k2Jmto0KIbTUTg26V`S@igm{ITKCTnZlpPnIo`QS=j|%P zMy|-4b$WVrg-RjQ9AU54C*aSZqX9Fqw(>2?&%_TLvdR&SW?6lW`Vr#B`LH`J}zEF%%!^Xb0GIv~1X%E8wavP#joRG6A z2_Ls5;?`FfAvQs+;c1h5KBV_It?~y15?fj4^V!@FAWgA(?t=qG$A3I>u3XW7PEOcF zGK>&g@bLYX7P@B<_aTZOptFgp;9->zFkLaJWlQJWE;W4O9*PJhB5WEjbvHQvm=yAx z2ci6eDT&2Z?H|tG71TZK0|rZMT*5kIKiPZpa)PuU%Q=xqqnwDZMF2Sy(1g-k$mJP_>F+`fH2JHM;4=fGf9N*oX z{#DTT6F`n|{_}y^CMa8924(7UDXa$*m_}cEyeE=i3f(?J9c0(xSG0fDNXATf;8N%AfquS>+Sxo8efj z&cTlMhDeeWhQ+P@{YhkDXQts>A(oFo0T=aLU-jTO@IbHvVP7DCf}tEyad5y*m=aJ? z`xVbqKqt=$y~BvXYyy_>yGDnpK+Wv=ePBn}b*gGJb8M!5n&^ln2y*G9dmP+n0~?Q9 znbm&Wdea5>53^W)Q>UR>*s+4V zSx%oy{=v@|Z8NS0U&)%}Z8ENS-dcpEJ{!)o^5v-xcATJO=a1CbPlvC9ipugAQxU@p zB@ule_Jng?X6hn23JPYNsaw#Ro08_yT)G%N`;rCIBng{8d|~l{7p(XB%H_7RmtNek zR2H>tx-A?P-CF*T(IbXO7WA{OoZJU&JzlFF?hDR(Ky2~N-Ff#n-FL_bQHETJRs&w3 zFUXI-XIJ83>#DjpknzhX`3BjD_BN<_5!N5168B$gQ15J;;DFT~FdWn3U~gKEs(Y!T z@b(2n!Ka%n6?7Av`o<#fQ%Rs$(o$ zo>>!$RPC_3Vpi{U^1q+{e>QB3_2>q95j6H6#m!3%L(T=TkmdeZTchfmp)Cw0N9s>vcK{k_tV=~t@KjdVIPBjfApRw#bucsm-3x+5arV;>inFsWBA_Z#z6(cg>OVoj~0 zz1XT>#Z~Jin~)!^HdF|=`D0^s8y?NwrUb6s+V|&r$b?b|jF6`vL7B#l4}U$lSXJ?E2H zyA&XNb7NYcIOLPby61@|Z5}Ic?_RFv3p^`#pAAB{O^o2$Z+TvR$n){^TvNZdA;kr3esm z8*@|G>H+vqdNPYCcPQDrruVg9K8rHT5u&Cw1iw|vUA6folIO)Af~5;=EqMI>bzY3T zZ2jNB@_srNvKKlBMOYMXZHVKRHs`?wCMPGaZ?;uc{e}2DJC|_0E-*s{F(PKJInQp^ zIHLq1Qj6W{^WZtNF`1EJ8%H~ep1db{4w-yECzrks(hQkl+aC)6^4e|gtrhD96@342 zYfA$Ppj*Ez=%#KYw_K|VZe0s5VtTb0}b!-VDso`plJ`M$`lF^+_9`j9n8o(na-Crx|!`UN84_tok~B z`jOHWoZ9(3JVnNJVq+qc2+z}kFx@EDj@~`is*PA#PF}!}uYkW+tH27i27~RHgAx)0 zgO#=$F>O%I$zXiDtkrOK(Az=G^z|I%$V>A|0Ofp0I_G$;iUhUXqPqe|@*$OzpeJ!0BE1cZ3(z zv!5}*e+xYgc4)IB3^|eC!-mO@$T50i(pM+mkfi;}$-I-bu_f4#>d2*xwY`+PqNVFw zXz{v3jVrmg-lk)I{78KIA@0i?LUwiWaZ0b^Z_tk$t)KcojoYlCe@qy^z)(fFO#M0^ zcO@@vfj&e=$2LlZ`o-dIg3}>cwQ3<8v$FwVi!wM9!z(H#G9R7|^FH6B^RG&(v~N?T zw%+)|wm2qGoccWI3ytkA9PhXaS*vxp&w;S?)(KH?dcUS64{1}4C0>z8lUC_aCD_w* zD6i4nrJ4G9&&exl*rfIb#`J#54@u40`1_06ckvOFSrd*cAFRuCv?=dTq@^s@i*X<5 zZCSc+Y&Ci?bM)9JeNo|DAV#E}%2LoG$FE%xQlf9z?2|~0)AdR_iP_{3Lh~xMJ2prm zD%JTLo0(Fvn=a8XJR*6;9}TAG==(-c=@Sw zsqLA3G1mGavfFTs$KY>ct5Jb>lvl?N{K`M>Qwi^$t1w~c5MZajEL>EU-Rcl0tzztT zXMpc+)Xi2iq9e@Hl9Pg*vmZ*IHf~QEf*fMk(%-|b*aUT&;laqX6&>6M0;!^LwI5jY zxAhC04B#2h2|-&?v{ID7vB19dp0SXR6_?XAVEI;HMDJZ%X$vmsdl#mD?&6upjYLMCNuNCsCb04I%q3)GxJv~ePnhj3(1I;?^}`=| zAdiik7sE(p40(zoXzz#8PXW^4Awb~M6i*xYm6wh=Si#@5A!pEKU2s0*ne7uHES7s{ zGc`<0=2nW8%>9Ojm8K<^;DzZ1vFQ@Ik(Y(CwW(GzUWM?#L+b?{_5fy8;<4voF=^So z%v<#e1u67@SL&+Xpf(5Wxs9^GiSw;#!1jUKafQnu`eK{*V5@;xyrAw*8s`vHwV()n zeJkPn-)7=;MH&qfm)eUGC!Bf#$)w~l)lGK}DJnXR2&^flBqZD+gt(I70JCQ9}JS-J3Uf9WTESGh}dCeTM|H zTza|+63OK3JStGer{dDa|GJ`urpCzlQE*>Ha|{KJVzR;#pXk1ndFP6oyexh7aV+X& zgFIVi0-mmVQ^vUoOq}IJ1S%{Vha6@Nfa4f+L3qHri9-So%wAY2qJ|476Fll>V=l8k zD88Ym@jq{T{h6b!UvWDlkK!Ign{pm%Nd1}beDN(c)IOg~7@ndzzZaBLU)w^pXsljE13|0H<=mcJ<$I=g01%$n;H zdOx^HOc}D!w9X3?`mNRTg$1+n8YM{xDf~6(=UFa!tHdP8o1`kvyKNbbU<(PgAtsNG zAOXjmIh>1e)p$7hnS}IPWyb$EMx6>RytIz0huyY!<5H3~GQ^`HYK)qYm0!oFUmmI~ zt$TM{lW7rUMz_m)#e{JolSu^*bV*X!*WbtY%F+>wW;|)4Y#uGs}%*luVo2R z>g}tz>bH$O*ZtJe4ihpmMywnTB49y&B`mKMgFYACN&`o)>EVbf{cEJF@sYTBR75YF z_n>C62xOL$jteTnm{l11WokcC}-YG@OhRT^aT;Mt$ zvO<41SwHZAnYC>CjBklcb=ti@bTTRoYV$9OXVgi8J?l+Kn>QEHPnR#9(XsQlno#M| z3J4>gjn*!+Fq-RM8f-R5%MH~a4d9FoBmL@y8mkV;Q+~1&l2cUIsO|?Qt9z}Q6H1p8 z-s!dPC(pEs&v%avGE5(*noEMob-_LZXNCuTiGBgGr|8bq`G*FO2y%H2j*$+UBR)e4 zwaaBNRnJMi8VLE-7ncfrH9f;64vvg3W+KKx7WZrcHwUZc%^Ki?Y>Gz5#wG$u;|pMP z=@UT3gO`D&azAp3TII>AykpPLkHlAfpZ(TzB0e*PV|R#c7UCi%l{Gb8PE{WgIrJXP zgI<&!9uPm@VvD!$Z%d?|fWIBBsS*2_`Gc10miTG!WHtgs^8*W}$m#t7mU-s<(@dKX_)(Z3y)cW{OyqYO4L!^JylHIyuUw}2{15-k# zcbBu^yFV&8^Bgp{7|)ddFIM?p0tTY9waz(Vba6|H7xYT0sY$7Gy(=&VHK3Y`=^3)T z>Qzw5SzqB_4Z|O{NLEIWgXiK>Lr27$o14k`!`(+mL5{%@Y;DZG-o{&!7kj9B5p3H- ziNK*P@If>was;`VeoP!;WqUgl+KguTgk4n>R66yH6;Q0O@mc<+B_k4XG8?!%Dpcwo z?yy>0OTsD?nmvJXf(0ve(;D{8J5x+vyjWy-ja^IFprifzsmu+pYfZ&U+|12IH5ul( z{^S*PW=?jkDsYgW$km9OU*M(vW6V|BcHMOWko^!!?RU zS1xbXuJS^6FRx7rS1d0@D)ne1nP2=*9^)iNH!sNruvKm`5rvc`{6Fwp_IbMrpcL}^ zBohHRC?ctMMa!=~wU}LMb9~zfyT^yyQF>-r7Y!8{F<^MONAGVnc7}QBw2Nb*z6rj3 zyslP|@*SebFRnO7k%hq$4zy80Oc3X6G${TUw@uROvt5h%vD9_@si_j)VCA0wBAS(i z?(1L3@7aB6Rk6qHM*)e8NoRUOvsR}+-}}F8>r`m=1*d^){V`_X?04aT=d0 z_n3i>5 z=-WQ+Rqks%jtd#p&x}nVtG4hXl67ADo52a!AY%aoeHdq{D7;^${O*TLkwC(K(QPsN zcdQSQ``4X5yY{hMjpyuQJ4XUeo|wExKUAD++yfMS6r}0X_vh?>1+6~>=*!1=}W}zQM>JKZ>$Y+P0diSP_PSU}9xU!7bu=$L<6*!iDc|yCp zU;9d2JzeFYf5pO6;}l3#h9KMeCA<#qaa};Go^&`;Ihb%a;PB_D)F5Y2e1e6j>)4KP zg-w!BxaBmeW~Y>PLmst>5~s%n%=xR#$3sB;TQ=iN2cYs=<9C|2Xdt11qIF0v5v z9FJD^WUNVyk<7cF;{IG*tPiT99fX|+q~2`_^xI*_U^?VVc45YMz>ZOLf`5gYfK9-P zrQ>|GM4KC3{mF`QmJ0Q);|%1cuy9}B8Sr!tm8mj5%9efTGWpK38^Co?S!)J5LxMze1n*{&&$`+6GIavq8l6cp?L zdkYHD$Hz)R%ip@~=3A&0d%FvbOsk0SgY>h>|CKIIl5~f>kX@%?N(kalh7$N|EU(Jx zBXUqkTyL+lUR6?w0Tb(nBNNYq9tItLVJ%)+GeN!Ucu!Q|Aeb5QG37P(Wgehg*R7KP zIQaf%Nah!%XWD0fYmE$!KKNq(twiKTPJDn`oFs4Sl1`V8wAV?;(m-qEwo%QydQaj3 z2H*_ZL$o5JqCl~R3*dYIvb(CYK>#edGigDqKAEF%hSj&$l^rlXiQ~Id>yWV)6w-jy zf~d_ zUo%H~f9GSJ8D`+>#o%RUZ6>pQZTR}t>lD_VzZpcwtyh^cw^6!zv4=fyj-QVq{nGY6hbM;NCfC2SfT ziynkrGeoB?7RIe$^)tUB7Fu-uiG$VTjFB8fx-wQiVaA(q5m}pgCFydn3a!n`f5lO$ z->~NUN)98Xw|>~hV*)QarM7+CMYQYP7|xhZoyPrPq$my#KUlu*ID`Jclo>-%8#1qR zn0+1qo}M-463?iHHND^q0%r!4@1G}@RdTQ^7Z}tpG4tKM_~v55s_ylmuN+s&Cp+Mk z5Roei{n6UdVnsNcriYow#Q4dh3oPGW9(S3ec$&zQ@}vqm=k_THi;(Y#FGVnQ`J%Bv zoppuWwWv(#K*9?bE+%Ja;>8v4xyMV2572dQeRh>ge8id}MaRM!+udg+odQ{)H$co<2Z z32z+;F0Z6-ZPoLO)70$T0k(J)%cgk$VtApL{tV7*&VS$23nsHMdOoO!nb-HFGzd8i zDR*K`k2lI_Kf3v0`+Pa4@1&j<{hB*%A`?Fh5LD5%f$q{+(8lT1`HjepF!$J0P5YY!g)dc&=mUM3{i;MrrH=*T+PEhQ&^+EHRwU>ic zAok8s9WrvdRt2X_JBmIrjz?QVFlL3J+y1LnfIB!U1*Wk>D6br%liu#U5}o0SyAh!y zo3Ww=zhZ%kQ{HJJ1sEx9VExK$)M)5LVb1&X|B4|2C&s|tb(fkz2;rLRqwd%W4AIu2 zF_7tdiqy&}Zbg|mflJ4JH zo8N*xVNPTPSg?v`31oGzEUa4Kx}Cic3E)(;bmB0X;zaBQD(o(WQos(p&zx3LbmCz@ z4C0bm{9W}X^YjZY@t_6IK_ZgKo!qJN+Q{%oZmIF5gN6Vy{#Bz&{{<&)x=DnQ>zTto z`3_5(m07bb&Y79~wII!R89iQ_r@Mc4cPID{qAu=hf9$$YT)NUjHvZA(=Zi`H>46^4 zYR(fciu?*R{^C^Nw|+!BYLCmD&s5g>zeZQ;BLT(In|FmIhB+>ejNq$)kTx;0$82C@ z`6~UqEO()d0B%i8jiKgQ#-te%S}`EqVNPDSb&i1^)_d!9&Yb+utPMNf7LiHXcQ@o4;;l90=(vPNewjTl#ET#@~A|SF<0-vUvDQx>ontq^I6NZ6ja9ezw*i zU3cigvKvVyFJtfM9EX7agmjWQKCp{nBq608mfZ6R%doQPMf;F>E3k51A#aWC&i&9( z!ED^vEvk|TlDy|{mPKIUNmXb|A z@`abrhrsf4VsrXpT_p1|aQpGKxZoqQxDc5rFe>=euzwy}u+tC+k%2__Ew8{-&`V2Q zpn7>2X~`>I0cPmdRNs0+4epwg-ZApOl4y#4KaM%iwcH;O0K5xuhMPBUE_YtZ@~z2I z-u@jAEEXn66W~gtZ9wzHNKtETc{34!|FqTbYbOR_YvYN)*maRX;yQHqrNb`naakL; zw4Q%hN@m~&cl^q#mTMa&1eA|HAkoCA>8ci>^DgHU!mKv62DDg_;4GroWRGo*pldVPSNm zxKh|(zHc_t?ic))1%7-$sOp9v zCWFxj$m>d5U@lfb8^ALR#bq(E(YDvxDbB9E^|e`Oh5PkHCJm4%n~k3=o;*~Yc+q(r zoNt!CVUdbUmRTqD+$u5~1VjWXn&`9Ux__jlxk4+as&8Rb5XPwK>1m$@D0}i^etFms;906)Zt+jB11XHH}%JI|YBJXSukz%(&qo{?XBIdhNBX!%`$jPb_a6v+IaEzQ%h=&Ue_h z-fgPNsKH%ZHoVy`mB`qvDqZc`b)T9DH8zfIMlS{|G~iI(b8|sus^G7XwIR-|UcZA> z*=u__2EF~WuBy?MA!lOdJjGPnfpiLX^cCF=Tm? zb;D#P?~k~mj8$x7K7F#=yyYmd7c&L4eI4&BWYA_8G6|v{Jqr%$&yRJ+_rRCbCM1=5 z7(wcG$9Xd8@7D<4zb2+dWyOx}{Ic8HnG2fSw2ojS+?8)>t~7wijNpo2TCI$;VA6+P zCm3&S=UZ6jTS`_S)8%p^TAG!06FqjnoN9ISj64GC79RNRCh^}F^fvFY zR3~U1Q(mgn{_ivc2=_cM1;oXlke3Mw>6m~*X)8d9M`lxN5vqB|7!!B~4s#G$?f%&N zh`l3(xTLRl9r*$?cje>e?d_0~-{Xi$t(2$psD06OQ0jHXoioJ2@-?28Nmb#=vr`+W`mEc( zh4w9BFf;$*a^~e`P5s`&I@ZF9J9?}4S?3i&%Q6bie{~#ZKkR$#BrTliX6`S(nNBc~ ze3)gvyFRWh^G;{>pd*TL=#W)1CuL&y`e*}IVTm&deF5P#;dfo3y!I$HQN*TvutAC* zb1=^o;4|sO@c=z^7^|@Kp08$+8pXfIcjQ#7!!!PpjeGprrN1|CPcz6v;SNP^bKg9< z-JcF8A&0KI>ADu)06R#qwjIt4SR9oR`Nu$cOSlY1itAGohJ z5sVQi-NgwSw63!kB-55fe92q!Y4WeyBY41*P|G9N#Ps{{vR%1_2}+83KKsCXG0&9j zMs=wd_Jn)iMQkj@9FvI{o(GAkwfbDiqVv6GnL|oRsU7BcYg#NN}Xt_MK_0Y!Eu4|w0ed^AWhPBIm zR5iz^eJ2eYxWGa0NF#q#HMD6tML~+H<-v$^d567^_)X@?hK!E`?e03qk$UyKtOv<&t8aIQmghuA+`k zR&aU(uWq=F%*aZzZDE?+QLp8#h*Z6*=3Mj}R)*Sspq?|~o^IC9nkT=-K>=+nj~Xb| zU*zdwisQ)*UL~dzmE*XO7HdE>>R__oDyF8UrsBQ$plU&A2WgEq8(?G6w8bm3uQSZt zO2$z;e1}_|$Qdpf{4?8H3;gr%Y})|MKu-(zarF4H^@dCf9|wW*1<>+L9pFUiFvXI0 zHftr4vx&Hhi&?G~P+wjY&;|oEFRweunuO=eUNDz_v4=yW`!XBsdXtQ`MCvDp)op^d zONP}6sj(EGq^Mno)FiI-Bjwkk))pS=&Kfr=tEt)SlD;A=gSLqkMTef|RsgR126r&+ znB|#aVcQ)mnb8?t(eBAQP!mlF*ojcHbdLo`*1rQZwSb+c;n}iO-wiy^33?HRAi%p*in5Yqw#xJK|Ekv2zNS64v-|L`qxP@;N7VeEO5@Di(EWY#s_*P8 z!1@rjQZJS|s2!d@&}~MtuJ33`VsDu52B$4#?;Q{@&Gi*EU3;=U+Tk!z*1-Xzu~(9V z2hHO0cN>{X$K7oFyCkeUlI}{s+o*a&KiHZQb^6T2 z6Z*e0Pj&h!3$X8*DjWmg2nLa-;t~=z-{S{~=MiMnepxTKv3$wN-Om@pZ%g}rl&vrZ z7RKbm2~MZXJ~wOC_PZd1`Lq8447y_33+@uFyFQMMA=FuSLEM`aBID3QLGzFA=Nrjv zQ+>mf^Q%;VPgLqI;TG=x!tJg?>sHJ3CKTaXzx&~gO`7AD+@=ON4iSBTUdh|w+NOS& zUO*=!&i^G2P@QoK_!7U7l*ngBKAQ5g zHY;Sm%b)R_jOFL(>=})@&1_He;6HfjoDfi-gcQO zT#oOPafLHwjuB5$EW$7A!be&t@(KuxecMmU-Y0iO`q7H0X6@*Nm447p+R_GS)vcZ3 zf6$G8X;3`NW6e+6M<>~^-CZ~Ae5-FbBhKC3k+OukqxIS3IV#+tsIU^k2?T88CY}rqEE!qFQ{_Xc!&)R+p=^ zU%zPv^i?7r6wh0(ZD|sDhIDK@ps~-b{(o8kF-7x#%g(xHGKCMOk|8))Rk3=F&R3(j zSd|P>ixauII@>(EH3ze3{mlJqA!TMH*>{_z@vz21Fi|$o?8>THcTsHHb4skr@(_s- ze={BymIW_k^xL_;pCCx3XHpHh-%ZLMfW;rdLyp(1$aB{gYBoYsfiV zHq}s0)x;)(Cwp(LeW|mquhq@g8yjlfF*N98x8j+~37OZV4~gX)?MykYYsUT&=Q&?9 zXh&C8*+P93SV7ljTwr`ORlHzwCDnaz7~$j(J69B_m>M7f8zkKjj5i9>NnTgKw*kUj zbFC1#r6Pv_NrtMJHD|sQ#2?JZ@tofqOS(5-Td}srKV~6AP30OS*e@_Yl|AiG2sJC` zB-0#$A>$=y!bO?K*sHwaCj9d1d^U9xGa+4sn*qVz69alYAM&Yq52l1|@rd)-+awC} zM`tSkiCuJUpHP|f%Dy=RnO8Nx_UK28R+}9CsFPXzch_SDPC{0)a#K9$zB_vCLU$E% zMp5Ou!^}<_%U_hiYpEu+v5XZS9v%BJAJjC`3ZLJ`651MdU_rH{nuUtSM1ttq^h4zlRNXd4&He z(7Za0k|ZMYry5|9kYGnYN4Sf{<0V0}BW$S=lI^@iEK37m_D z1Jh#Aa4EXZLAZ|IL{`8A*BCBd_qKItD%4>D|CIh0u&_y&Rn~H}b51b1@a=`KhnDP6 zW4=WlXk3~S<+(_75>t{TXtY4Jah!qxM4@u~q`+H|*0#eBmP8#h0B$YUIAvbu!s^E> zne~;^E)}6pz!}NBf49H&XVQ(;80gxgb>IKFF4C?Y?mri*L~cmkd%B=~=~58;2RoR_ zZ1?ZqCx!9bFK{ZBvu+`RBY{AoqDxiLcpN&3vFy%2tquqP)LBCJ_9mMvLwyd{$_7&X ztTVz|>nfM+hM~+#i!*3d7bVZ(%qWN!*&pEQ>V+z_Sii(YMfoTqvBhiinzRfYvi}jg zEWK`XU!qth#3t3d-)eWE^O|Ri17q`sLbgWkzhBj`Q0Z1it7Z6Y8U;z~Q&>wU1{sfr zXwPe^6|Eypz@w+Sk;fIezUeA7pbb|obga68%u+k*K)o3!Mv4A6GdUxCdT?u^(rSg+ z87lXJJ}LOXKBNAy!QENV&^VRjOM$fPi|0y7@*rhHKxrXE)LQMNsc=ly4~d`EvgmlN zh!^kdyd$Wton!>^Kxd2CbQq_yYyypidZu|GW=0!zE_NL2GVLh~A(9*zP-?{74kzg0 zJ0?Td1=S~qWV|!u2P~W?zfi-OkQ-~!SSZsJ58?lB+~#q*)g(Lo>onySs9n@%L1b?B zK4yn;427x)jXUCvWQ(%9a?FRY*Y14nP*PGtcEhDl*E%-JW~WI@_XvWj8pg-*Ljrf@ z=l316#FVLOwu>#-*huYDYBz0 z*xalwJ;mW|FWjwHuKzCZP6O1#zdwT_Uq|Z0n{#;INGT>f?<4E<_6>2ePVV>_A_@~X zyn$c+6 zFJ?_#GJzuIZ>4W3T&F8v%cD-3Haa!*MYb7;#HBZ|ap>*8q#r~{D zybiJ7X^-7mCO+x!nfG2jd=;Pq9b`@u$nGBI$AXbXdh6mG%*Mg|qqfSwzr2%iH|=CE zKOy5?PmHwgn6G6+V`p&1IZV@5YS3)i>=^3xQX;^$Y*9=zY;swql!h62HY5?+v=3LC zm$y_2X7#Bjm>=`O!w2i1{e60>^mfV>Y?uTeqf6&gja3I*GTGB*A0GNgay3?a6m>sn zXLvNP=zBk$VS=I8hv9;gH$Zt!u)p^{IapK7cq?m*&N|t>vUXKAZ6M9_L>t&7CJvw? zd*j&~6cdNjz)9HkkcRpJrPsZ|9$@j{qwR=_Z};#~pcBBF<`#d*Q5%+F6RYkifnInj zb8AYAUrZ)rtH`Y53|R^~F6S&44dl$#GfURSsNG(nETp(!5qPtCVno3Livt7X3QO7hK zM8ziwO3#!e%z;#(p3uLMTAfP1Q@~QuN*S!JiY(v5@B$H?DG?Y9+y|Gkh<6Bn$GRqK zMX*^wXU}LwMQ66OW5!P`2C8#1Q;_94zA+#@Tvd|{N2AcD()!qg?9+HZF~@Z8)LLxk z6`OS(X2myIuJbT$Kt^3S#z)O}^~-Z37p-mA%7bv0r_j#BAbWJ42)5@h&+g&D8f`Bi z)9GuomCV#2Vtp+^Gg`IOXMRI9R_(+z09SGFk7hYw{eJDf!01dcfN~nCmaRAEn_2Do zMjbc*oTm{moZQ{`wNTY3k6+QIGELeP3^GI_ zMGpU(G+p)=%nuzdci*N2yqjyfI98Fi2BuTW7FAZBv%AIZG7lDt49*;TOB>3iT;h^A z89GZIqlj8L9`61ca9sa22-$x{3RZgw%(vgpUs1_gGBg-V7j&hvD|^-T)+zP{U4ivT zt%}x>Ib4{`@NcE^`R(j!J`$)vt=Q{!Gt15Boa;Qv0Bh|fz22@K83)^+o4pK6L%0L? zf%@#_cZ;DB8RwS*ZAd@~Q4SLGOcSo46+hAq$ybl2wvm8LWZkWh;=8LFoZT6$Ho13g zN2L-D-=$n^>dV)=h4jAPe zjd{ldA3d=q$(M813H%OfM~}T-XeXz<{3#LQm%uH%z_I1mDH%DYdh->5=2c6&q?xuB zm!)R@cc5pG_2py{F~NdnDCrV0S;Sk&rv}bH!nek}bvzh5;IZ@H&VeqMha45_XGnz* z7#!hublhePwhKH)-e-#CG}m4HU$`;o3n_Ve3Oq}(Sl)W6)&J$0bj7C2US;xGm&;QgQo1W?1LG`$ zQ^kflTOg+19*mHZj$CQ5Rc`rteObPzD#kss3)77bcv-W0oovUVr=*P5L*gp!z&m09 z*uha5Ke4Vr4Bww_-x+u>L9g@vg@9U;i$k^UYTmF{h&bBwQU39N$2#(g%??F0js<9&*d-SF&8 z#i~;Z@?5~gc`KQ7Mt&=;6fQ-xOad|_lhZ99=V)(lhIVBAdN!ZK9T=%h)QgPR2c`$I z#>K^zT~@Y0k>ME*Z&9}Ab`Px#GvGnpv7me6;&OiEv->J9VWiZ9r{V8{?32#hA?vNQ zsG|8rj;6PqfR2pc<5Kqw!d}`^GKhA_m-g-38+*Bl*tZjY<350UhBFk}*Y{kPE2d4h z!n|xHkk7?IVsP0QwU%8|BNdcsTiLw?#};v?`29e*mP4 zS;1W6IO6-$k-5Bo|FJMYIwbSseXzsmfDx6HZpj+g0%MkYDuMgJOg!tN+VQT1YbzV?U%QQ0v}0~rLsRc+whuhc7|%1y z$+G=Z^R25C7LG-uBnnBL+@bidr1GPSz7m498=YLdGAK|%|M$g(Vm$$++1rrbdHW0z z);-=f__6G=)Ny+5!bfdwZC$RR`T9Vbd+~yUi(=-?iJpNWRFs|XH2#VVB_YAU(&dTf zeNC#}(Q(-5*o{8Q>yQrAPN|r4RB*WwWg|qdpJP`sG0xcD7zl|kfBOB{wU{q?3Uh*~ zV!rHSUUXQSuZ<8Sr7A;Oj?(M8XEgsG*4{Fpj%-;Q4h|s!f;)uZ?iSqLo#5^c!96%6 zxVvlc-~@MfhXi+b_?l#9GWWdaoI7{s``7Hv?$v8`RjsO8Pdyd8ZC~@=y(VUTmm2BJ zAdY6ruy-4(W&y6|!saOOH_s8e3KHbyKrjP{S{?CLQTpeeg=p%6ah>g+ywMHf`Y99? zjCb6q!hXViRdmAQxiAN+weBS_4=%z|DR=7I*t;0lB~nm}=2(jM!B#^_q=%I5{p>fN z9an9?$Ll3ZW^%n98tShY^8cPPuP=}`It9R6p68f=yCj9GeN|z+%3}rr2r@r>$#hk2P&~zf^TSP*2G|KC z@Ku;%eN_a)z1dEtcj{NZ71bB~yItpS51tY;~6tY`je;=pFL__l1=h}VhpN5}$=ze1IsrmCx_SIm8A5O)2J z!OLL}ea1bU)0HCu+5QN^lZc6_T~*(R#Ln=&q_LNiMaV;Lski=GwXC zNo)#Bw`_~1-^sq!*Y;?aX(QKwHmjXLKVP;SDERJj(~(+Xdy6|8oq9N6WmVy_Ejm83 zzUS-GOGCU;L;xrIJq6FPCu=h_T8C3Fg;I+>@hZ3kg;(cgljjcq?|2D>{3b6*V?jaY z1?c^1E8cIG8LG1N@hhbX#7L97AzHE3y+y@1L-F>eAp>U)m&K2j^lpN}6A!|EA0ktk z_W2lYdYloFW|u;_5Z{4#cw=W7UW~PJbE4hYZ=0oHxrA@k@%=1D_&J{U3i3=fg)qQ( zPgZ1u`H{|`@B4~5X$jvSPxG@@2|&*xZjHX-Www|ztTs6Z5NT%9xKZm_0WlcG1pKp_ zQ8^5g`Zq&0QvjP}3L)_YT%le%-IH~2hX9b=>cua{)P@1t4vK;T6I-C@SWWeL06ZQs zQ2J3-@p0OT+dSe)7gt`5_=&M#v$Qh!7C^p&98& z3-XfPuPB}MdW$M-cZVaRYQ?1zS>-=mV$3QG8h^a+5Mp}Fx5C_-lk_Jw{eO*%8^6TNih%|cxq`?$m(qx~9p5~icOmIdSOZU2Xt zqEn`cz5OYJ{Y@o?a7pwAjmD1eeqemmz+)+|#g;rD!8WbAuJu1{r8)h`MMa8JBM#b2 z{Cr*bDiC~a@S@*Wp()H0>6H`ZMYfl?VY7k-UlhGS)8QD&@s4 zCtoCeZO>iV0~y}qQS)A38G1>HAPz!UNsL!>*Nxh)S!r2QDwqrP7F)(9B!ss%+7^%* z+#kGjzTd^}j|lzx;4;ef!z}<}viII$SS)=VK~Q}I33)vLGAVb}i6`tyHV|O#w?;J;4Wz8N^$ZaBC-cLJ<8yq)030)eSnjU21-~3*4ESx zR^q-ENEbaRHAHYo$U2Q@U5*?QU>4S&0164sKqtN(N}&JN{Q8pXp;Ib@_m8{t&_4Hz zXKYean}j|zy8kBJUGK>ky5QMGyXnj?9gWdomwMA%;5ZjZP4A?}y;;Y(Y8f?@#O>tM zlrP9(ITvYIZTI9zW;QV*{^m#)K7Vo~Ki8HO8u!O%rJYxvRD2JKN$X`XLsJhsKup7j zf=?m;1{t4pXP7wV0#1La-#4u8@zG$nLkIHmKZvhzk$Y?wbu z?k`#TbrnV;qohQAd$AvNbVN%(%ZSUs1i0=9(2b7|0VlW1T5DBLfn1bXSyP`redyEO(hF?j!xj-a1rGPw@66M zuGu#KNs`2Rbwj=KOO=W(?1jk2!3)u)I!WgJ8T=;*>qD~}85PARAgSL=_boiG!xD^; zfJ2UN;PFohonO=a^VLWVI3GVhAv=4a1rDQd2mlwCTLHk=*5R%|aArF$$-+A9KtM?; zVejGMQqS>l6*W}>9F-v+DT)R?fi9kbekDXel?XElvLIv1()z80;b(%*5ai`q(2I!3 zjHVCj-Wovbu*jUAsz8E&aio7~)fTV?oxBFbEXXWY0I+Gc1JgIf`}9$mlQ@ z&agzCofEDp;_?GYF)ToDiQzc~ATQ7ffkO)Y^R>`FTioBI<`-<@_bYED8lY?PGfewxcj{}2}tawPQf!KTb=iC3j zF#ql|?+-}mY_?wriHJlsHB+ObqeWEW4=qpX7pQ^m$Dc`@f7aRJZ-MjqmI_i8^XBMZ znd+3G4+{RW-hcVZdy0_O_PfZYb@Q!d9e@%qHy$+_Dh7j#Uy=CTrhJC+`{3s%;_U4F zxw@#cDlZybi)y1fGvm*q`%9(%`_;$|csSbz>1MiRBY?z#Cnn9kg*th_b4YSma=Y2i>!Yf@o86>0B>1TWl%N>~ z1_pAPQX_I2S|8>1cEq|J|K6a!(Dr*Xyc@%hc^nrr?ews;LKjFx*7xhYg9^{cNzvJo_=0 z#%yBWSvd@^JL}h_=Jc*Co4@tuem8toy565pPHasqK(vf- zXXJ^`4@q|!PJ9n?u;xmdUTk6F*zafZ{-Y7_NA5s%N~mV~i6_&^L5s{^K2?SPzl-^o zKT9Wq_KS^)srGXm6Z*|Z`pdulmvI5T^{bhBp;ht_^X=I`e5y$pgrmtFO*uH|e=s-T z`P2$|jGdk9qJbGsT#Q@(;~7Hx`TO|=KKz7n{%zR<9xPGW>xI_f?(ot-Tc~Fs!uZj9 zn&A+?ZE*j_>Hllu##8y+Z)XYS#&l}hE9Fo7;(y;9{=>JifOYVP_}v-!5C8PPJ{Qj^ z?2~AIS}nTPf>Qgtcllj4Me@mL|Mu$qeiLwSFO+>nO-)>I$qbnPbppTt>faB`Gmnbj zq&)9&&*t*a#1fhSgkpt)kdQDiQ9%Bm$RzMv?;0`$H8r(4=7{91KZTb6qUnF_Pag?< zO2!GX6BPZyOtxQ(Wud4&9$Qu8vW3m^HzWiR6A_VMeSKZ#-!JNaU-JL)En_85JW$9x zg7#;A0c`|y#&jcEMqlRt`~9n4c}uE~`Rs`B`xY`WLjE(ug<#wc_}0~{XleX^)UN!k zck8`^h`&PdMH61l_kT?P|2#hn6)&$c=DRh!tzYl*?_43g1I>8-`n4ROMej;7nf}f# z{$vYyu#oZFm9gAL+4TRR7D)kGBwp$E|A%SEuPQE<= zaH6B4$)+J}1mJ)uhDQbP(YCaVjg95^qwfFSqL*l{Bq@p;oQ6x5Jg~CyfHy)gw%T0Z z7(`YZiX12k{tSf-*_7EJsAKCJUagXA#f=#t zqM!o@R8?73RaI|7GUZ<+;jjJ4lZ2#FYw;$bX>Ort2;>%NB%S7-h4)851^w>H(eu_T zC;l6|CN#cGRBK;J%S6@l{#VBGpm#~e@-!?^K*H)JK0=`b!rA1rNQIvX$-gdDKc-}% z$-{twf{Ie*4D}4b8g{D%roydGF#gGRD15Rvg<3fl)KpXyR!LApvVX^~-6=`Hu=A!`}w@u$`7TOQ`&T( z7V=)6SQe)aoB6MJ(k(%CGBOCSZO3Ec2Q)7|8&z###TP3R{+?fCicCsLUTlM-#FI|- z{KzVcs(A;S0Tg;du{HRDoQ9@s_oBqI!6?=|O0l=D6u8}xsCvp*#koEib;70Oj#aS#s{;>xlRmPOu0wSW^VX&GD zgs3XS$yyv4)jh2-_n)Mb>3MWW?~&O3z4{dk=^eOHD^^=oSX@ya*^G-b{yvMST3=KU71 zxRcMfT3-G*cX=Y*0>~uBN;Mi)Q7mj(eBRj1nKu-UD5cpxr2bns+yhekk{ z7jw?l4?s=@zSyG^0eJDySKe%CNn-wSw)>w=+sGXF4dGc#l}16y{%2NP@Exl3N9LdT zXKxrk{|_G^YYZtg%^rdoMHdxkf+Ifi|2m>G?gs@R2>I{R%m-%(e$R)``F{|-?YW@O zf0UtMP*^U#C(Phy0eJV~jvQAl5{f#pU2ROtzoYJb8d$`LY_v;?DX>uQQc{gM3%P4t zhr(DgipB;|iK2VVJOpiTdaovRHB~W#|924@8H4z6jzvjP`=ATCM%1q??n!0h*$#l} z1wtO?f7BO1gA*g5A|mRBos~scl$#ICP~hFgkD|h-=>1YGV=&OfNeT)Y@n)6l1h-1Z za)%C1_VY;J0I3)oFu0F?SANXtBkb_9V5jWej^z(eXVL(_Tph{y^9!|_2dvrXnx&g0 z_BH4P<_+U*-6@Nr9k@TZGHoGpX@2odnDy=nKK z%_+UTkBN=xk4m$OqSs3&qUTV!K#5ZvomW>NmNis0o(~NwTKoFq5AF4ieJ!J;N&MC^ zr`N~8s(&t8ag2!iE5Hf*$u~eUMr!|UZK!X0Of}-jGp?6+?AAwwsx=2#sx=Slsued3 zQ4o|GhPZC^Kt830oNu3`*kLA762Vvl6ewIE zXi(mD5oN;!4#GgaKNHUgj~uLhn@p(SoR137@sx*0Buqr{|#V0AY>=!TU*m5B&Tnba$vj=!rY5VY|>a#IVsH6 zCjzjPAhu&23G|J_JzYyo=TP2WkY|$IEBb(B$#AKZ^GsQ2QIyems19+t#h&dfB&C<( zzYjA8{gWB_HU9s&;@L%uXLqS^_z3P^{V<*Q=8Pu&tL8-u#G_d`fD=IAX;n`jgxgP5 z2MRW+mRH|nf1Kg%x(Ihlb(L;>)T?)EvWdGi|Lq*($+4-z_Z~=TFmTVLYSvt(d3%%vRFEG0aFFy^6=fHsJx`87|mEmz$dS^eOf*d4#@ zbLGxcZ{Rj~=Y%oGnOm1QR(LT_4AvZ332SgXN4e?GVdLhsjf-Xi+I+!&>L$5IK^-NG zY7yfqg+;EDVIO*C(82M$p5UWHFv7+`y7~uHM;$D_71tM7~GF8r!|LOOj}vx=eCIsi(yGjD@~&6_E; zo`@dD)40nMU5-Y`0COVZIcVsCg)(BtHyrl(aFyXudbU3&txGUpD;u^0e|s{m)LYsZ zj6W1dgF*7D`ff?ZeV>VDF}_^cLt^O-;IYUV3Q=y)()EcscmUNrOjZM!)u{3JCt|%6 zq^}sr!|&{duGFlCAxosShbSlvhL;dWy(2X**-3D(4pHr_$hz6L)TJ;8vRpcAxV#`a zGM(`(BDEqfRG5~W=V&n&sB%Hf^2mXTTVijZOB)}q^LM%;QJ@1@y+k5oxoBdo{Wd*N zx1l=KTw1^LyzXMIC`rF%53pNmwLEqj;YO`kK*6npY)dza&qz$5VWmlM@dBkwU3kaOOcU? z0JUh=-QDSMh2uW^_H2MRTt!;3@C0fzJ%nWM+txjVo&RZdN z#}|8-zI%Hb6}Ic-*8s*QCp}#TC{8lFKR;OPZ^CLB2l)L?0E$t4piU_=HkR1N=9pf; zN1JUcJ!q`jOu1#g{3$zNTmahOxc{lRSYyMZR3uLdC&zBHwX}AryJ&i0V&a8aYX<-d zBz&EryCQvf{$A4wgh{jU>TMAyQ!2dy-y(&c_)mp5ef`;d)@jPA_3DcCsRXxrhW@kS z?g{6ld&FvK!vpbVij$P~TRkdp9~o_JKKmG@m)k;G!Q`Y4@j4K0CYv!eau3y%l6!83 z?UDh>{E$wC=NY>f((cWYxU6P=9YRwNT{ItmiV!uNK1)nsheM?0~@u_T@@>o@?VZ?E)8~mlo%10?E zerJzS`3lQhOwm0q5o+!X1E&i&>#rQ5%Q3`Ia9k=w>}QRTtCM!$ZYBFm>;#7sWbeC0 z0!L8~vn2>KPu7H7V{44kI37$Q&BcZ<=Y%_3iH_-XY$xf0=yRQtr)^WG zgwwTwUar&g&3ZCvb2~K_N*D%rt!)+Yq3^uP6e|+f0+P6>Lzf+}I3vAz01>xRdvssT(?tkJCwM%Mw zI7bEg^3_c}V`x?)rJ$&Ul#ORO^w0`1*cg!i4%BQ!#-l&_7CeDqYytXGF*&)&VfH7& zVr4TZGSB5w`rvK85ppbSBgrP<(&?P zY?>K%-FcsbQmJa&m$9R7?_!ZrEZH9y zW9Vm3#cp~j7;sT=s&fc%UIRgC(dmWxpLQ5VP@w#4Dx9DViw3>7bbd*B96MoJb3ph8 zfT%F@D(evYjw=8;rBx3v(wSQ2hx_wguE(XT6Gi8hl!o;kqs^W$8Vw@6VwIK2&$*t7 z_~ctyVY>7E(-b#Kn}_-7iP%_=jI{0u`z@LLJ5{HS!w!5R5D9xh$UN zulCjp#2MfgE3LE4`%4#QdnzI2sbsZxhd}G@VkT_|cg-ZUCFZ{ff4gVbxEK@Ly^14I z1ZQ!f+5C;A9hxz`b>6B)uR4rpG?JOr1I0s?MIWc@A7GxqJlm;UXo3@o!1Zw)#5 zas8=cSV4vj8MV09iGqOstw*Cn_SP)&`YlCJ69i}z9#T#}+ zpwE>Q5KJ;N3Gl}hkrA@r2(p7CioAYJ2rdVWb9b0vV7P4Q7$sTp3fk_vEs4c_sF|f~ zks(h=W3JLj`YUFHF zDW!42Gk`cLh0g^A1?livI>A=Nm1`90shp;u6DAMRJ#aHS+98VOw2 zzkH@ne>DPa49*CO2@=+75!4FQ@NW;YESKZEvNdE4y_a%uOtW{#^j7z8g|#3bsUj%~ zY1w2e9%O^2Jq((*Z4pOq_E@lVyfRl`j3dAL{%$=(U-pz-c>ax?@i#go*ikm_fKowV z=s(8r62fmm=oxlhx+|WS(rn8Y9S4630 zUyb+iR);Z#{F#0cwyzx&N-Ld@9z^$xa2$(TC{Qb!w?c7ciAoIiG;)DL_Hen^?K@+j z4_M<(1ZhshYvkazOX?UluJ&q|ZDh~_sdX#SE(a50)bHw~rmIfIQ*KVTJ$j7cdC`S;|20`_G=xojw<&7H|MS@FH!xTq@BpHHh1$KdGLPQfI;y);w2 z%S-dfovmbu!UEd+kU?wo1nvU#es(~p77Rq(+dzG4dN2yV08RiLPOfa0P|=P4O3x>2 zUgD@*z3yhA?udYp^3Dzc`dRa2iA;dBVRYH^Q0A8X=X-gM32HQyoHe1)-Qu~paybr^ z@6Z_2ZXN$76<$Isr9#gR)gfQHe8`ndO0{BT{l><$%$`Rv1-(E3F7^eD_|C)*7u4ry zy>Z8KIq@P@BI`(gQxIyE@KPjetZv7=#8y**`^y*dw?=xDL`KFKf)Iglf86{@Fh`&l z5W&Mc1IBXzWLu*r!nO1Dx;owt_;en8>chKxU{?;~!ljM*;D8~uBCusK9Bo-JrK z?kq{zSG)YW4CNd8*K!{{$nNkO^@!FwSY&&gd{-(>3@4{{QHr6opn}*XnN0nRI z0fnE{s>whL$G783mv6#%aakd}qc#sLJDE#VHly1`lrw*qRquDN5l~QKifrpY0@}0U z1|B-}C>}?hd3$&$N=;3jnIV@0x&^Q$WD-kahPdYs1OC)v0ri)a^1_u+>I zT(A60$u}QyK!K8LHpUHIs^7T)O0-&d^(&Q1`bvu>9sx=el-b=;;oI_W%gE#!_0b~K zvYD(+XJfEus{v8^j;XHP%B#ho_#Z45zKH4`*w3i$|=#j3vFlt{;>=c+v`2v#&>@VwJJ z)Uq#t{_CxJ&Yyx&D2Ue<78esJFJAyOh$1mY=R4Kp#bAJ4@DfVLC;04C_Ra4kOIUj3 zd^Z>3`Z)ori^Pxbo?hUWd4yKJ*G(?x8%C8{9V71U?xzr-MjUw?;@$Q+z<=?0^Q~xx zZghqDJhoPxr3sw3SC?#v3tE+imJ-+@pf6M;tEt|%t?!;qc15v~mQ8$V!r^=A zK?GZ{I#w;ZfKOpdDWw>rZ16APCMY++0R3-s#J&``L4Cu~N|8eu^PWfazG_H4G9Y-n z6w4ic5dFuf&sjmcBhpA$-b}QQLoWb5hdMhe+Xg&FXDt`&WdIfudIxN{M|jQ&_0Gd( zPac1Vl_4Q~X6B0_TpnCk_)OS`DiiPuKJD?`K}M6Y00P)RnJnRmKJtdaDp)k?5uocy z;TVqx=!bi7K|yC^dh1;`UQ4hbTQb|z zdt|TVuBU#IgB1e&SbyIrEnengWcRJ?-dEv7gZbhwmpNXdg*!I!f+NM(wG@6P?$Sbn`nM$lSN?m{TfGibOPvrFJ!eh-#N$xX!)230N}ZuYIym znU}I*&l6IjGovzD?@5WWlL=bZ9u$aZL&>io40di~-z4?qe1v5xoDj%PVMmj8mEJ>L z=L6*{kP>k}u^pauzpBQXCOw&;wZvb%{kk5feZ6x!4LC5k<lfF*J`Yt*#_jrHc7_(UW!i6C7$RcuJn<}55_wYDBR}%OIwoh17sU0JSid$^ z?Myl-Ls~(=1{zSN<2iN6-*lQ0JR(VgQHiLzeXTi1{*2tVO@;;s$RBw ztTW$YGP0P!&_fvChGNZ@hI6)x(iyof?kKeB{EBT3D@v;Mbz*(+M_?!GJWOMmE;tgE((9?!<@r%5zHhEd|IDwrGKzgp~^!_i^%msBgnaH%;8k zDJeDw8RR(}1@7@>t&>VgTeoYTh@`>uZ|xrFuTdRxfExP56St5ui?n+OOQ(HIjPDDdQ8hI=^EKREWTx3_1 zym}nfj;vJ58slW%r8N+Rhm&X^%u>Wri?yr8kmP^IuyB&V++V-s>#jSf3Q>lDi@^vm zL}}_R%iq6VRN<=CL3-E@eT4A#bjBkVIX#^9MkA=$dkxdcWi%u^<=#ct6yq87#?6vf za-_eB*8hlZHr+=#SC5i~RqKnbFEh3{>ZZhtX|1-(K-Q`H=|1jB*=JSs=|;l`$k^B&1+lS-i9*Y649Wt)mLN(>sIu{S;jIlp zaE;Zn)O^kTAcehF9=n67e323r8DmwZfl&KW3<)Rc695#YflRqq)4w3)PM3o6r zM!t4WViCRq-Vw;vOgZ#T+@XJ=QVIEv#pDjxs&R63v;fc>3&ElN>x{_G=gAeIc`FR~ zr%XXklatcnRS5+(kmc@jJlmqnFb6j>BGuJDpI5CdxMTvoK)3?-Qc@zKn7Jww z!D`dV>`J5I(c0x9qV1!lbY6FtjfB@?iv60L^h;C8#N)Q?d0qodj(g~BJMGqIwMNz# zaj~hEHy31=b`_m>N4sT39d(crw6$&55O$S$d3lA;?K+jU+}k&6vAmyopJLl}16_@s zQ}2^T0(K^gDv>0UC{qk+(H`$F;o6en*TB0lP?cgZnM_HM%@urEz~bALN^bZE_~E(U zw*>lwBF`;W7!+NF0YB|Fn3wZ^j#3;F;x4?&ukL?*yNU@^K2Z~|;iOj>fOXQ17b#0C z&G$C)gcO6RWJW;2<7T%9wD-<8fPa$@Go8qnVr?#d`Gt^}m@f9M0^$ZY>5T~gb({Zw zE!pYpoURnG5k!2c@m^6c*A2w~RAoGxoQ`SKZ*8uf+Ko=|CIZ%NG~mNateHlkEV$h| z+^hYi`v`Qjz|b$HtI3uA%K#Av#8d^%@$oV0bXIygzF_jF{guRLx`fGVYX0| zuHv)x>Qy?Q8lv9!T5!{ntaw0mCnqHpp_>5}C!vdR~#&R)NMDa^YYn??uEeSj>$HyfPS09lsH<*f8&h~d#w}(Z7 z^j$#u$;ef8yC4rY@A_2o(hZ=;%Hj2uxU>mDqfs>2`&9iAUV;1wEeZO&GbxpCWRx+NW- zkQ39MpAXhk&Vj{}y6(?8oScyNt>0Zazd3CHQ@7Y<1+2|aPy9P72uGA=ovk9W)pRM< zU@}`+89&=8MPI3f5og|)bZi7 zQHiof_;NTD?f2Gzne_EV2(mZ|m{;Pvc|$WBtdm5yc2JoW4P=*n#R>T2`ig-}_iNW7 zw5iVLbEqj93EgPuZ!Ia^HRHqT8{-TqTG^j%Cl%e4ynFnhZ%%55x5i=yOz900o}HUd z$ANoOQoV`snB$OEKykVtJhyl-&NY?JBOEzXObfZ9K6m{{=yqS{$wW0llqz&Y-ZQ z1esL?fkG?{$M|Dt4f;)?`!qIzn?}~-* ziK1k?a76M<#BPmaY%@OA@@X)Cw#4OuQ?gtQE6-hiW6LEZwOQ#$AM7w%jNCF(y&-mC&ar5 zPL%6jnwa7!MMBmNNW9=9nZn}~XSkZ7bwqRT)TQyXc11cU>mZb2cnxDfTa$pLYka?2 zIivW28J>RBnC!Aewi8h|IkFMlN8+*UqOg(v=-8^;K*rqYqD-`NvBQNE^;mU3o3>y( zW&KlvhY@Me{h&b2_59lQ^#!kw7wK;AAiDl+HPjHoP{`JI@rj~RZuhz=y1Nf`qF5t^*bcfr$OAJ{1#6{@rVlzH-^l6CDLLC)iWpaDkK?{c+%UXq)93IQ zPU)66d6;^?GhOxKywGBPRCZ%{o0;OSmTuJcxD?!_Nj)Fpc;tQQx-Ih~n{xtp$%ID319?G=7 zy4tHOVAN@I)s42kiS>hIUFy5~_z^#8=sVEvksLly#(JdMfW>kl9f!37@y)R$PZqnB*F*$6>O zk70O^sBcl=5%4@*FAvNP~z0@U*aDoPuGi@*ROPrB0*9UE8w`#Ol#wGbLE zq-<)8fPFmA;tXJ%SK$k=sCPU-dL`brO6Ue?XS@aERdxJ>BNC37(>}oCc^kv>Ct2^s z2BV_}xd^}c2nL=jkw6?6yt=x|Xt{tTakryw)7)y~u{H7)ZqnFFihp%sfDC^b=q?I7 zTZ8jT$3yekDm}{uFv~G@tFT&Cffu zCB@TEbYLQ1hPk=lAvA{`M`D8@jsUb*1lTJ2>>h8NExhddfTtB1&l`^J)rHL*j;HJB z2s%{sG=Ky)Y_zz6VKrGoC$?V<=Z9DjgEmh*D0`K6zF&rdqiS!b+ox1#-fSV z(B)`--_B(4txJ-g;w@Rps;l1+A&izYMpPjq8py{6fYT*vd#=TN)>ak^T8nkKxK{{B z0fjEsu#og}ur80{B|m;nzW6qlBYp-{Y8{uG)-Ok%Q@{HHkimZgFPHC9wGs|@i`f{u z*IXdEI~$K+K6GEH0vt8iorOfEU2#x4P8P_D#wvjPp(lON0_Y%$yh=e#++~Q1L3X(O zIYMuIa#E4lV9w_bMh;!10N+S7iqI{4ve+c;9poC-O^w_2b6I3PP#DBhjDypP%6!t( zTNwnaYLln5z*8ivt^F)2Y7F8P?DVIe9`sZS3mQai1(0^v0Zb-x1JNs=)2mVqD2UPi zz{SpxxcHgqzF{mIxBVi?&JZ*vVtI)Hveow~v9Y|bU$0+jZbN$tGaB)7^MnTn1#NEb zuuEW8-a&#?Ob(^o#+=qu!c?g0uBlqGq@t-6v|pOUUe*HHGCleWUfzXBgU_6v51_Si z1D8HsDw*Lp<)mR`h}ji5Z!Z{B`%iGVZV<6tgUh;!-h;%MGNTQ!+LQ8~^{O;1f?zqcc&Y+JYkr$|C!&fFB1%?6SZ{hX-@_GPjd`(8?g|0< z+#n8N)mLU+hg$h}U9Ah;Mz9rVUCJS+P&ctiz4*S8xBK#r^tJXIEU_^@X~ zVjyie@0r`FjtX6&3?pp?1Uqj451s}RB5pOPu5C_r>pyp(ufVSv9X0<4H!cuey5_>Z3F-h^{b@*3)~ zk9WhQUF<@iY&qV+mapL;edid&!{O}!>+MTz>Q@o1P?ja;x^_l+eWo#&{E|eqvrhsN z>{|cA#V!d*Ysp28ASzT#$SPXCL7FI~y&jz73H+o_ROP)q-QT{T{PCh$uOhk{@FhBY z_WV73pp7YEGbfMm;0rSa-yOWV!szx9*u#2M0D%INk#~J)@ZE6|qPuIBX=yu#24mYj zos`{i;(ce?_X( zX4oM|^))w0cd0!)VUbs{zpCiqQ-Jzvb8&eyyeM>*X|H4!whlKUY8aL9^7p}(csPi; zdJi`AJ|pCtWYP~u)=SRMej%V9=qGqObKQGAOr7R-Qb6G9{TW<0-d?k-j8?ygHUm`m zPLRjmbnc96Jsyr^Z!}97W({J(QX3zmRfmm**=7x@ZxstK5uh<2#_7fjDtS1xyr2*P>yi(D^nohOe-Lu_rKqy`u3&k=_P zuUbRl_w%8MgRmp_Ao%ciVy@o6bJ=IT1XR-q9|6lXGDbaBb~B_HsXOdOs$2DT2 zvTI;VfH%PD+K-aHP}ZlZG9bkGc3CYL*w*;sortoZ}Qwo#&7`}mVx)Y7l<^hKNUc6t4R7@6ztOsD|57WA=X4%wq)Yj z>+bWohJ>2<-NS~mu=-rX0K8~II;o&f#WLYI>RD^a62fnhNSdv9FCtAcGBW5%dq$mc zq6!DTK8sFOt1-_iy=O(W-iK0!yF~x&usbCWoU0kx&Y%X}X=!efs>0W(pe(#k1C!w8 z>Zps@rFubO+j4s#@QV3iQ-qtR#&at}m=c(GT-&|y?i7`vgUn^60R{#JpgD|pxfdI$ zy;0oqE$0+vp@gIp>r=X_U!~M|yjot&E!^BDp`p=7W}6#?hlI$FcDYKUn4o+tEQ)7H zAMro_1`og_&12r4T5gXSo};}9qOuzrpj&n~Y7SrFn9ltfW0Hebn<^^uhXe-p3aCW} z-ChRt<5MI-8WwCkmz%D4m`9!s;Vy@%1`x*5f|&u4D1oXMl$@NtC?6#CY238@_~MF+ zu07!O3xSNi3UWk*^ml)C$0AoKQU^Ywf${O;Xb8~hufE-seLCeIG#cPYE71BNz^|a` zF>m0&wj~}=sNbo4YKn{;s(60G{hWm~hllMYxxP%BAMff5KU%Zf%`|@CsFL)1ET!tZ zGqinB;a}TDj}# zu8meUwp6bsjIm~6lVQtxsS)r;j{mm=b?Yne(n`dMCThW%(fg_8kfrtsG~ghz-ufDp zC@%?HgZ6_n*2eQOq_#IMO+sHmP+lQB(i*nNECmO`=LKG6A*w1 zaXBPctFicmuUvBFN_K8>oG(_15??v@okL+u6V0Xi5(`dGjwbATz=g657k5AQD~{4qWS; zsC+HAt5yBJ{en&(A(nmmENiaV5~-gs1A+Urn@&A`CGNeQGr0EzD6m!eEgi}WmWbH- zdKS@K<@i?xBt_>!?Z!qntj(T<<#a=5XMB@bn(G5k&y@hRnaC{;lT)2nyj0YGiIO1s zj7E-U&&&IaZa)Z9VPNn~2hK)VCBaVRP_4DzH8i<4Y-{TckLmu-V8#7oI5 z$E_QdL0J(uiQL&!FU}Bmv{Dy_?DolJ?oT=ex$amF59O;u)3S89&BL;$VyIGr1wkJJ znD0W+GGO49WW|*6PeWDh1zsICuW#DU9?;w(qSWOGH$8J{w82n~xq7K|Ae}Atkc#@; zj2sNA)!Vr~M^*8;$>~G*W^>|1JFg4YOdE%1FSq6`4bdA#NLXg3jDPX|hl(S>uuL^H!P8 z$fc=X(<34JhFN!dOtufJWD>>d_5Sj}H>S5GzDOe1z*QRXq6nCA*eDd5Ls<(#*O!%Qjsf+>6aFivQqfN1Ay?G+DNV~=A+|sFqg%yR5#{NW`ZwdrLPc<0 z5QWz~rn3!BXkSO!N%JFnAoKRpJQ8U_RLnEtK{G*Lgg@GC3{=SEdnXFqUZe=JAAx5K z$9~PgGeK<6&L)(F14m-B3)bNS1bQ^jl&*o>UwvxQpSCg9irRzn;e zdohD~rf|}IuPUK$GeEsYQJ*Pq{W2LeGl7uH=d-sRd!8X-C|?lF5X~46mM3{U-ox|C zMcPcMe^gGlhG4=#M~oNl{b5pln!Mk_V9d2w00j&>kk+>TQ566Hcx-*w0 z)k*W?gRsw;X~+Ut0P4q58LM*LP63YrEg8dTavk}+#QDKqH&XJ-V?5*)AbFda>_e-? zVrEECrp*-^_+C-Rt8Nd#amZFnBryxJBKJaLtIKGC7eMM=ulPp97c=q_@-HG>95h6! zY>)V1O(2}|wLJ?`Ar}R?bw1soU(E|LhI$0hhquL5OzN!nJ=-UgvRuP4TD!s2gS-`e3xf=^{P+K+wg49~V?>BTH?w!4AASBM_Z10MUWj*d+Bs3Y2dKG+rp)^+Dcw1+O3#Qs3Rd=JLx$tRd#(kV+ULDS!g7D6@x#j?2 z_E=WL1ybh`We`Ms_DdXg6*u{h!}DL3^p0__hqfn`yN_-QmM8B+C^thblnza7Z&Eri z?nfOKFu~LJVt_m$Q#kF~%5Vmi6*RK3KMiZCw!e*uhS{vg$H?uvSw}-74A$$f)LKov zAx=ryt+w)U)LFj+HGa$)Ct zUXJ-n-UQQ%XpLPY&k*_G2V(SU2EL$BPU(Hosjrl0wO&pTfs@B#ourJeGNysxHy3b? zfO?wW{hVW#YU%jFs(X8;;8a(?b3sGE86hv5N)IuBaGyuAPvn9R_q%(OdLTZsj%UoO zGs>+hhJs5vX^SOeBG1lS=NR)msbCS2$8dFgf;wpSecabxBi9pO7UlM6 zk^-0|gs^?w;PlTb#H%TKlO!rS zE>@Si{_Xe-*Fy<RuCiAs?#}wxJW7^((r{QaEL7{eoH+p6cu(}<| zC;}Ve$yp%|&tTE}H>5AX%NsF=%H8RRp+J&p^cvJ7n`As64ZX!yErqk|BBm@h4Z|x+ z^)|E&=}~)(gn*y=*k37(^SG42ZV+A2f7Vf54L!!y;mcw)t3X?WVx$pQ@e+LsDXlLF zp5qmfxhc_wki9lk^^HD>vO6~t6>nx+Rt1a}DTZVd!?cMtAv!KHD%E8lna9_Nnp3m6S_b+77LRquS}d^>$1 zd5*-xT{t!qC~#g*JcKSZ)0OHjR^Emfv%_I>dzBgTU#`{9^4g+UpP zD2kNI2>-!}WCf_og4}Z9sBo@%yzfK9?SUI50{M4G0~;||n+T+(6A2dV8rjUpROlr{ zM^fmv*OstZ*g1??5*s`TvVo3=hX-au<6k2PWN8#$AE*2KgNWwzl@B$-RMN$|G~o<_ zRzxHABb?Eq!HIOeThk|@7Uh{I`*qJ5%C~20#e|%nsoO6HaJ6;E*ij~4KaUNQ+T&H2 zNZJc^RIA-5csN8?YSk;DXQIW-z2rhrBENjWp8#K61fCc?q2BzN(jC_v3cQ6y`le;t zSeygN_8Co=8*#9DKDb@x&{BDQ~Io_zA?^xsXL>AvD%H#fBe>B`B4*c<#f6~BswgW@W!}|$sNZ&cO z?v<9|OFdlmdg#dp;m!iVI1uuk$Ah%tv4ip|Lt_ii(qX_F-OAU|jLy$)dy^21#?vR; zd5C*WU3Kl_m-&wN(6X6K)$VBC^#7np(PRp<^`9_hSw6iO;V05tx!JkYwbg<%J53%x zZ|e2!?jjd59m2)CeN5!ny!9=jLPw3@OISMW_*|a6RO93;1cJkstKrl3K*Py&5vF8A zWUUwik=el=@ zaM`?=bPf0C$(f`5+2NaAh2=%4k_+}aI93J=-{_bvHA=&nkNq$Ps(Xk?33=Sph5RjS z?qUg%p7hgd7`4zP1e+fJY?Y;c$V18c;)iyuICvXCPMRnL4J#!NUz$vK)GMV1dNl4F z_JH*9ix}o6O~5^E*C#)Oq6=B7VXS|K8ZJe`EH3aTy;*DcCUgOj+lx-uJ=rWK`dPEc z7n(`Ps8={n1FnCWH(cXZwJ3isJ~D`+Mks3NZ9jmP1+}4m#AAsfH_>bw|7Yhef)J^v zkS5&D&v0XsH)6^B)*oi&>r^X{9l5VmH!OG|6?B;Wg1iYnL1cupd4enn#=(zxaCQwK z0MAt8r>B7P*T{egH}GGN=9v@ZJ6k$OMW|=hzKJ>cKnCaKWk=ieQ64TPU*_^;#bF=U zDLlKPniHQR5^IO|UZ>9VX?yIzNW(x8v7g5Hl{yUy0h+t7KePUM(SGc};+tPv^V&cz zr44aoNjVJ3i~?5R2+k|TrD8+E8sQE23`)z@SuWOemwj;e`{ zr4(NQIjoO|f1j@D!Ru4_TjuCm3+tM%SSiu(9PHoRqHq0n3E_4PkMZ$i$cUR4ce8vit-7d};zf=PUc& zy1o}fb<>jO{0xW1dw--s3V|!oQij9-`en>8IA)c#1AI&;NRyl9PcNi8Q* z`tae2bQTI0)^W%NAYje+Dw_A2Ho^;%rZ#RZ8DLnWcrYNf^$5z$;L^_`MPqn)ls<{u7p zECK?$AsLTM)N*yy1X&Fm9@it%O6X7#?db;lH*J_ynactM0!Y#lWc=A|b(Ji#JfTQL z6ch|Y@i*t)7RaD-;KmR^D>N&VUCTNKzH*0zNBy=^1A}~|yw>6hrHDU>mXTpYgTD7c zK--oJ1D5jFuU}>CwcK7Z>;%>59-Ce7u~w?|_0tC#Sn6z7(twLZQCX#4siV5!Q6M>L z6&N>|lJRjXx_JN6NaCu(pXk%`w_sHyJL&we?zmo8qibMzW+w;C-QgdZZ-N@OjN zPFO!L9bQ5V*AbEE$$LB=CVP9YEAd@*+O4!Who&Au=ZcYgI=bWMtBm>+uRbKR`UU=N z_9`hqxNY6cRG|EDIP(4CxWi_$)3ZR4Qg1-gso3sk^-G2f8=092 zl(Z~z`efh6Zz3uNzPeJ`t-QVl%j~i<{Gi4O6%vRYT>g!UwgqC~;u00rOlUWOfU~o+ ztCW#x9b2#lYvevsGSH9Rx;J^<%x3lS) zM1_ZAXg@c4H9kB+Wr0tYSSOLpTyJj3JPsyw-8zF7>CPp*{~ij!nSF8Wu30On{`+Gy znswlxS6lu9sM~dWMDKCDN&B)dsRYjF)`{7keK#YIB((K1R}`t)RfoFY73?RyIcss+ z`~@W#mJ%;V-qiybx&&wW8gNC9=mnCR~6o$6_!iuZ#Y{a zBrkL?+%rNXeb`*dS9g|Ide(bc$bPc1RhWFiU6(r6OChIjZht2?__*x`ZohY{E$?bS}As!1ylXrfcdj<8&o{4+~?f?K?Ui$({wt z$|@90OK!Eh{BiNgusj;P1&gsf^4)Qh`hjP%Qgd6i!-;Ntdz%f3`xcklszHo#5*F#i zAK{zOkrSDX=b=9xm+F?yuJKqcOIhA3qZj?yV6^YKrUkS;F8G=} zM4y;oVpuz-X=|M_`5=YR4!%s-KW}}5YG!K0HYC-3b-kzGV&aLA>M+So3wd4|S7g>1 zSbsoa`G~}t#7ph34oy<4oIbSK<+rp&=r!Tpri$<@rWR86kRJGe2)-BDJS>K#h1Er} zpUQhk{Xp`1Y}k9LtEH1+d1FcLUt&C1$+C1dpF+|X4d@e#V=DlDh>jZH3uHbEE0tQ` zU!Z^SefA0{nX5H-4*<7$^T%TOzk`N-+3?e6fWrftt|^TeTgY>(1**J*@UN@X8T!G*|-lag?(rDl}AKNv%q+SETYJvm%B>;Ny^XnF03u(hPt4 z+n?-hZQ)@%htrhc7dLFxBZ?@&2Dr^8$ha9rXBRov33RSZ<&zs|t1ovO8`@*AL*Un^ z^SBJ-NYl*|Lwh+|tyy06>(eJRp+huwpGTQXSTd^^;x*0gGGt8oaNKg&Pe>u^pA01X zMbOY|p3abjQPl3DVq(;7Ifb1RQte?PcNxb{*{tVtp3_hR0|HdQ$&9I4wN?6^m2heu zpft0H6I#Sv`)M+Aa?{^i732#<`BM0yzPA~1QBlMKcD{a!jg`aims9MJq!@IOWJEr4)5IHiZ(7y)w*Ik( z??RAC?Z%6*oQzxcAK%G`Pf%s5hSN86DhoPJMCWGjH;f2KCdFJ@lCD5(dNU6C1{5I8;iM=yu ze|N=@296xy(`jPsduO6MGQ&=QS;FtSY zxk=@U9BwlHsyE#hBd2>h7yEg-)E1me1zFuz->5kimW^@(Nn<;X#9=^(&yg}Mo36em zciG()%6+bPI$%*u4k?F?={TTHp^!#*= z+*6&;U=0Nb$jyRn)px=@5}Q5F7H<1{Tk)nz_2TiC^PaUp2iQ|Og?t0BIEV2T_g?#- zZ}F+#hBAnT{Unw~lvo2*k=T^$K?6yr&T6nfNCh@W)g2a@|Zs%16R z?&GW}7>$nbt|8F4enTszg-)4F28}F9@i>EVe_Ae$L#9wlnXsY`wM4F1fwat?E21pB zeW{Gpm0Iv17kV`H$)on1G1#|}t_s=znLY+0g4}~6O&~%O)2!!p{9%!4^o1sTD#Dvu z*8E!E!RXUdTG{XSq_*3A@MNDP^%Z(!DG*Bxzqh^LW6J+qrbFvM<1iku5xswWJZ`34 zQI_Y+?Sab~7mdLF9l_K=G3$i}s|5Qh7Wpj*s4`1cb#Nc1%w0SfxvwYU$KDaDfY>9T+*mTrqn9?*Vmwem5; zmB&;6-&F_-N=FBQxw!>`h!3AKxYk~uv)nKl-6}rx-Ef&o>B$CcXb;C5aL~X=*pQz- zoH74a*-q9$fHwoCL%LE^nU&N-A``t4C~p|~37=y;m1!SbPq|aBfwoWY9|8Vf>Z+S zIqkLp!tOrLu-`1(T4VzHcY(xOpXiL$ex8~Zi1Le@!CaG@z%RS1Bh^;UzFL@eUn_s2 zz=ES3Mt)rJuI!TePs=9{HI|9+yP7u%UE z34@2a_c#3-Kymf^sK25`Wa?JUpj<WoCA;%)C^D>UhNJc+ZULRJSFK&2c8>tbb5S zF7ji3*mJ9?xhV3BWam#;KNH=zIb0L3xBdoP676Y5onibCx`o$7&Ee5r9XZi`(#=VV zR`Sath(PV+;#32AmH2sHatvU-i(!h^IR!C2G zBxq&Kq|#lRAZrzR%(!R$a<#ju+tc*J7y-4J?SAP)z#WqydA*m+y4Zb+JD$$Lp}j|> z8VXq`ot~||DadCwRz6@t1o%|3{ATo}|mqRCJb%{9~v=tx~Ll$TzBSY-NSWZhQ*Xsp~#vHke{9%Aly+{Vn?MsxR zb6#&EK1*KJ^zLf(%X12`gxw~R%G#zv1`C&ho64{p?gy>hmZmYG2NZ16M!qP7jTC)(^ z*r6pzfszA|8 z#7puvK$s3`Ar!DZD{uAe-$4&>yK4NqP?s)K2+G_cK;|DkmgooWrLk+bAl@gAcepGMPmM8KLZ4P`HT0V z^W!PoX}FiKZM?R6pj#(Wpkxp2vJuTIHbC z@FqnWqYspYsp=%Ib#1IyfF&^x9&sQ}rTj>vk?sMTm8;;ZKO%z0FW0AqUs6%21zQp; z3%0ugu8djnb{HMBi=+;C$H)xIny0TV*3Af`@8GmnV(hS6Nn@HBtq&xl;S4szg zQb-4$hBR8`$iuRp_ZEYLeE^_2<>CkN<{Q}{R2@ySEIgzHEgE3p7EiVd(%XMYilg)}; z76J)-Yi{(1MQvtD4zTYQl=)umPWH8;V#S4gk2?X}Q?f$bQPI%`#WOc`4qLpQ4|`i4 zC7DC$+ZVxBS!4c1hHhxI1PQrkBD*=U*HE-d{Z1J*l8zB=aLkg;h@?;^z63< zQk5Fa8bS7rT^0Ds79|hve7?{33?YS9s$ibZCQh(VY%O<^vMQbUN`+!RH{WHSalj@@ zd~3Ua$64+=3ej?e_h0tUs>qD2$Thu*Bq7+V95k^6jp!S%2`#C5x(FxeiVS{l1JH>k zyc-p@RT`HO;bn^XX$S;~CVnrjiQ$bXo2%<>OV^Bew!$CBmIZN-H~c;W#413~9j4ox zC6t$!yQ;NU{iEETAwXS3>gEH=wLVIV$?&#H-jA2#;4$jP>gr+uZYwVc#~K9-Lq?S- z7h}&h*kW4!&IuknnyrXC+1uV0o+}Sgdb%A4&hh&)pY3J3yUm1aU3-BvrOo3^$Kg55Aw8{?$ z^gl_&X3(O4jXcM)%O*a`TD61QJ#eGvo#x?v}YZFalXpz z(~t`Rgb5yqp8WEhxDGe5LM50gGR9NCh|D{5r7AINEK=-zE>Mj_OTlArDsyIZOW>Hl92ie@jPU-dNtH_bsOk0-(G}Q{B$<3$5>9sJGR+|a+R+uI0$Ly)H zukv+p1#)w&Ja#2Wa&TV|XyxiPPLE2LyhLryQ-1Fw@!)35;c=)I(SBw=3gq9%iJmAC z*xOdkiWw`wCtn(FdBr#jvc#oh)ZJl9PmfN)4h@rO5o8v{fTvdxY=}=Ye(BjpbMGp%Of&WO|7DsLsB;Zki>;@gKGX45!O}^z@E)mxQ&_>lG z-{g=GQ~;9PutC&pGOPDas_1ECskV4UcX(Ap5zsoIQ54ww_|QX@8_voBNp}!x?ji4! zgetJAT7amOaeaajvQ-*iE(ae#DV$`={31CU)4@o16oGA=J*0Xc4C)u(j>@Yvp&N>& zSYbNee6yDOA>Pjq;tuIS!lVrA0sGthX6H_-ScCu3f?M(Yl?uHz=T5B#0U7+F|?Ri}yWeEMABC*PB%X7Z&=kX5Pgs-@ zw-mX9I+=sL5aCV3PEkm-HeW*&Ok%b68qV5Z=i7gig8W;t-n(-o?7TdH_i^qg288Ds zR-D{kQ0ClG6%$6rp@l4-rWjlpdqpf9N^DSAh@yC8F#SBGUwm4&A+;KO&`)EQ$umAz zr-+1b>ssh^!Uy~YG8?EcE02P|pecsYz+ZQs>lY?>dL{)=dInQ5c%}m-e@v5KGY2+R zytNK9s2T2n>1g7)TIvPiRFaa}*lT`^dIgD8UVUaTnGMtx)S{Qh7b!O3k(GxjA9`ZA zXQhxYB@2pB${&#(s{d6Ue!hP39*Z3Y#uZnLF$e*X9-GzwI4Cu+`SswBsU0k*zY2D; z4b|9<<$BEUJF3B$n|2-c8L-|=T3+BJj1BPTF(KuD?s`6H-<7{A!L32YUzyT zk4EK!Y-#*Tdi%1^$?ds(Qa4>5Esy{wn@AKcUEJxxjG>L)KOz8rSVU|C)n+CrUe|+w2y&Zx_K)kQVS~t){*B(4fuI zRL(r=qw-g-&`&0~ekV(-G5YLFIl_)k=J8Y~5KM5_fH<34(1269nq$wAey|hGHf{o$ zNE6~;2Fieq$3i-|8$+&Ux0YykksW(~S=tbzoF3$azSPm;AtSBPe7+h~o@x~)*C7FR z&l*XD&;Uw=gO7lX^(cjf{i^@b!b!z;;-9-WU@8j~j3X2Mb6jOkcas2k9;c=Ylfql~ zM$?I|0d|juFfbCXprBwHXe4hJSwpb?%aFYLVp~Zq>QUYNe#>@fhM-X%GSPHf3tm`nMg~t=|;@Ww7}h znk^g%c+sRj1Olu4g-Bbu7^<8R)K;LE=(xGH3}CLh-d;K8OYe2tzQuj6T4vb^e{O&i zXc#fUN{)}u+h_c=pg}iku&&kaX{)9h`X%-^qwdIa#>J9(c6m(<-z}W~EcEEOcM0u? zXje%zj3_JGJ_wnXM=7q@s2>e6QGD0cun@*_YHI&L9Pi){Hn>F*+G)G*j#XD(5hrx< zc>aa5OmwBGK?2fnZy;(cg5CRe=|ie$2@_DDrDxTPAylOrEj!g_qe24#Sq%&=Fg>kt zi^eDRKs&{zDhUZr+ekOhChf+`vWcbIPHYNqEJxPZxVVpx0Z)k;`1|mOGBELf0-(*D z+ChkP2Qm0;T4!d<5XEmV=M0Zmqj>D+$t+kyLVZ_zbboFZ-o(q*UJMnjb|t_*fNLj<%1Yitj@gna#kW&9BH2D)^fvB} zfmPWm|3zRnQABd&GOc8iSomPSW{$4$nVT#|;K-gsU2v~pFCFg=kDcd&5oQXd)uB8P zZkk$K&B(mgHqSr8!<*Z%2i8oJkr~}*4hnI*(T5uuZF?{$Q}{AUG?ws{a{Er^vg>{rHn0w}Xky zgi|t_H`6y4Z6HhSTXKx~tmDpl!vmp@*Y)&l1T4vyCkCKa^MTuUb@$HX#F(Dx;*06X z7c5g9hso3pGZjcTh~^hLqhf9%AE4tRblhd}xCdO*W>Cc?Wf{1v!&Y?zu% zKd9}Q^$@xc)ZObUf0sDzha}I+#&2|)jZPsH(ogMzZ81;FDk|tFK|Cy7jLr)>af+q&?QodTz6+a?*{S zS@+r|Piyz&7R}Ao+AuX$V|wJo6bH6v~MV+AmU1#7@0H=V)=c)H)yep$)-V55lc#V zQ=%T8bjsp0`*h#9GyBU3-b!yO{aNFNCTUpK8YMF~^as+^X7vo-wONb;dhm3t;u7L+ z`8eU-f-D=YHs47fRN@4e!dpNd(Al{sXj?&@s`#dii1g7XEli!{)lHa&XpY9-&8T{= zGT$-rd7PrEGnzs<8NcJhP`F@nYACR;rqJpu;P|9qYA$K1{^#KwRVh2T5U#KK8&wkh z)4`X17Ddrzw7`HF?NRbS0J#cvll%TIvGB+=JiNMMj~`_GY#4;Q`D>aAq69?VxUzLh z_xqPUYAAcOQ){muuL$1}ltOF_Y=5CnULpwOa%HA}+1fG7{7G4vk{5BtgX(>E5sM{= zDaN&Ts`jVT7JmDk!Jf>+sp$7MwqL4Tk4Ca}Lp9+m(OV5Xtha@2I)@tD&{}mn9})tp z5CS%4sml^#%+Z|&a8GWAAZPfVex5%uQ2J#~mYnkk%mrw2JkSFI*USb7uszq^OX7H=m= zEJ_2}xW~;&E`XUEf>fcWl4m0CE^dXm@PVDPdfCXqLR|W8H#{$i8)#2H7xX8@*pDs- zOXTyvMyq#Lv!gF7py-Lse5~R`h4rH455PH(1>JE8YZWlC;7-TQeI!Z zsQp7Jhf$Yu;p>Adb-kt+tBv6(XgNuk^x9^7wmipD)K%H~BfO>xB+sY8lc+e3ncS}V zfElv7*H&6ciO1uLqC(>mF=4&~>kuf1#aZR*d!*cKcw+sbUtAJH>{D6$LDh5G}aO2JbAlW zfZ5WCZ0qRgAhhpj{0?S1f;#IWK|z&GXU7gVLMC9(0g}>mzA(G|A$eyv2z(o$z0HVFhbt&h921H-} z;I*R7S7@gnNVC#(+YO|{D{LJ8&W+$y2dwOx0C~zw>c2(!wwJsi0&LyAIQLeVhe(~G zyQO+~+)j46s{Kim0~~&Mpn=`oV77(N*HLGrnc4+OX9X?M5IBH9HziT=$j{?Dp+o=P zG;^E}q61`*jPUn+Z%=ugN%VHOYFPXi13hp>K3f8o#dJyNQkx~gRQi2oKR-X9uQVpb zVJd599cg+=q#Mxhnk`hz~hI|ZXh(FpwgO7jUIiMl@L`Sq3`Bh zAL*xY{~?$`5*?ELNqs>eWVhA=y|eUE%c_`wE1X@AHHksHdjzXO)4w;tY&@;E;5_aJ zR<^Shpo*Qhb7WN&-i4h7P#}|C_oCjJ(vQO5)B*1}f;gQ)lvfUr1-eM#bl}p~a0RLU z32J1gO10c=yQ5gMmI`#cD+dHQV_P;&TCKHEz72qFRTE5CN10HIUteIuc*(`u$W-=# zO8&s05{&;z&=aH=jFVZTU3;Hn2yaS6B!#or9%0zvDvLu-*bt}ny!th8s8ASBV-rz~ zy%PK(OdQ!Rot!0%&IUBU16+u}zWi>a6m_sQZU{Pn@C+x4-NC@GI)V#zaBYx89{cI# zk&khLFLoO!9MgtglG;etx)Mj>v8FxV`iPjkw>;VG?)A1`(L6Es?bayRY7D{vVm-Jl zek&AW1b-uh1X38n&*2}sH-aDTf9^Kl`=z0oK@t!Z{w*fTKmmcr4;>Y$q+HD{Y1l~P z!xDVFtM{*rU(tS{5c3W!Tq!sb$?w_!UX+)Wos@J%*@GTN+@;$`Ms#I~ZOu`G0n`p8 zB2I^~{XBY!yBmh?yPLbv<9DHh3QzIj`Vz_e0};h)r5HWuX3wG@e!c&QLczQUWEW^0 zuEea|U{Y}D92grv@bq%c1n`hXv)O1U?;<0X4=v1Ok|BYByoK(Fv+sg#F$&0E-==W> zT^cq!#okRed=2I;PxE;?b#&SAVVLbe`M?YHixdVMk6BAB*n@e4&+E2~;*-jV`2bUA zM(KL-j;`dl`)-+YN0n}E!Y=njU>~q)kBuoJzg&OZ_heiOY>T$n)?Z(q9*8F1W}P{* zngas^Mf9Ez#_Uy) zw-DR4+3b8GoQN+9dOlv=zcM-{+|-_0i2qvw`$r`7UnSq%*Gg%#i|>%j=9hl|o-$MH z5n>6^wdXg?a!caAUSHty!dagPIh8ljnv~G%N13D2qyxs>_0q5A2hGHq@8PuWAsy*H z?tP#$Z&n=6qfGTS(9_l1Ph82f>;JRF*te{C9V^eQPrGgOWDJCEw0(>K(kPH_ zMUG#$&!-b3evVO;D^W_(C058l+lh%#iTqx=HmP1{?|!+h3Hug1sCUAz^h25H!fHNw zBI5GBxHh&z-iIi^6CbyMPT}Fh=iGtTIx<7o(v85219~2(t5{BU1(IkiFCQm0FX(z8 zYeC%rV^CCR`+eAU6y?_SA^9AXWj+a}Yu=1OHZo=kEz zj4Vb3)+}B`cYiT;{b?b+u}JGnj{gvzEQvV3Y$K>7+|=L zysxe@EsU?DW{+YIN!QCG;!c&juWg{pT~~Q7qD^BRFwpgryFK6O0GVKrAW?wuj%7&V zs|BKZjayYkK8w$DHbMC>-qT@b8EE{3^_$<{(h41LL#R3*x%)P#?$rpA!IlA%to6J+=wiQULGe}5iJb;3_XY6_1 zLmr?I>`XxMHUIs_XR4r6ZbPzbycw6jf>u*2S{Lj9U_HP8vsQzLb^Ej* z36#Q|Msyo&xV9!O0%4GUk=o+TL~ezH(jca%0LMFrSoy_4wtNu~6jtg3^()U*L#{$&KigH06I;S4(G@=w7XVci3xfS2v#C&H z#wM{GE)uQK8!i%VCQ_KA1mv{&#cz)9Vja%Jv*0n;6Ev5a{XX&-x_{(k%12UbBl>Lc zSyYU;82BHo=mt3>)=1YttnkA_YQ|*bB{%3Vi}BZz=qC5Dn;;L^7rLz1d5?KGq(3-z z9Q?R|#-JM#_>6`@LDQ{4x8D+mIY^Ly^&wa(m!dKtHsVppB`(-Q3}f6Rqkp-xf@0s4zfQ9`Fs^9;nc%if;j)L9%b*J_ozk)0dZtLVs1CT#lyHt!16VTX zwpb=Ljl7TpO>loKm2%(40GSN`6@(16U8Y(dZV`)x!todrR_ao9rMQ!^Mwz)*p=~v5bSNcpulPX_Fa+C_x#!K^)BEf!ukD6Z+3k* z*Idb1$aNx}-?+;4B#^=#T-{lnj5JVUVz*vKgNU}tLj4c`;d{Bo; zEfbO2KbW3P?KoCYSQs8OYqGv#8_~bKy|dHD<9mGv82uJcj5>Xb`hP}-O+2$3gBG|m z7S1W=Zw_BpaNgfj*s{=Dwa4|^mOm=hPiHmS7oW#w!JkuUbAa6?-ds8UPr}<0+2()HR87{`{Rr!YJIwO_VVas8ornF&_+0A zMr^bi+@bhj&5#JMpJ)Ij3F=At-0-Zl+Ee|m{xcx~rJNaSrWmk$b%X7nz0dFL}DPlkkqGY92A@69saL0eZ?r{RV2;jw=q372VeqMD}v3E-)+1&u=hxC?Y#PHxTi*ZFVrwqrw z9b-v-MILcknoC`AiL@P1W-FD0X6mW7_>w`M5)(_DG@1-D4R6KxxqYFH=O-{5#oqa? zjhk-lp|q|??I5ID09fpR(BcQUrY4j2cLO^y0#bj04%|<(AN0IVUD+%+5twxD$yG}f zg!(`JE|4_d(%^U8hH|?;r=AAEOFQXvPs*jTXo6&D=!CsPP);r9$`Y@K$jx9qQ=>&M zbKq`Q?CBPV8|q2PhrZZMQJ1itELMwN52hsPHhJAuf{3d{OYFKO*DV%9b_6m!s{=~- zSos_IZ)P#sYnz*zLSOv=_cXR~a_UOG^(X?X^{~XJSj&9zPN}t4ZCX`>F?~Ni?bvn` z{!-xpRl#zVQu_QkY+NRd3rL@by;+$8mPDF#!L6R6C+lMy1+u_yf30+}%}!y`MrSR% zgP#QjtPlKOKJnUabV!c%&x0B8&o|y^m=}a}X^Z!dj;w0oX8rU$4@DEHGRp-SyV~9W zOR-NJh4s~#9JtxoCmlNyG)wh zOYPRU2aNJI{u~D*`%MGXezimb&)!HPriOuzSRiY3JIjFgykYDJfXWSxSfFZb275O( z$Ynm_Y0`zT*(`ns7#5~wNdILEPCW;2KwRzKukTA)(Bq_gzGwwD`+PHONIuY-JdH^k z#x)B}s|)YSJA9ttu#}DYp9g>%WGE-Gpv9zpFPqEl$svfAT{F|VM)tXqbHD-QaW4pRc@4Q+=6d`(bj91_vvM@oY0B-Vs19_pv6#w(&hwi;cTGr0h|+cC z)M;{$DFJS%09O17W`TeGzRG{(9p!Id1b1o(5}z-cG?6>)`{vm` zHq6NznI#{d6*op-C8EYNnSEV+OA|d}6fgTL zy4`wPs)h^HIrOfV+s?PEE877Lc{M|GZ|dPP-%PhBQU_idaNay%BZ%-@Q9X%t6P*fhGXYO1kl*PK!>lhh}dK?P5JWgs@44w3JO z8@03kY$tTEtzk*KGlG0&Toczgc)BAJm*Sg>p%GQq7DFJkMI*rQGVK~J)zMX^C3Ai4 zMk!CVVqzNcCYb}hA~TswWc@hRg-tarPgd@q+3B4bkV% z_~qyX&W?rK1Ca?n{sZ@k^Sh^v3jHP{ba0aOQgtIGyWgsl6jDt!vSx5^JM)*; zDmEnkYE7rny*xb#C|YTQ!RVM8&HRPII?I`wrD_49Z!T>WtIf{lN!5nd?0>AL9sQbH z40{J`6lTw!M_19wqmf4V*WC#9_)TLitdHmG9*vMLV|wtOfOK`&k{?rvdqa>3JVh=}s-xux3uSCd z?R9;g`RBQ2UZV&&M5U#r-6kA$edT0gz%MxX@#;%0UGW0<`1lj} zNlSfMpB{TB5LIoziVtP7U@p-(MwLqU9Dx1$0MmN(L)z7EW6_pQ5`NCgcJAp7%aM~r zmNlYdSED0+tFI$&PGsG6rLWg_t@a!1-WUOuyl3?bW-D-Lq=GqK(9_mQKbvX!4hjuQ zJ`BxbN?Thq18gYK;e+Y#9DmIT;st80S&%(G4Hcxb+A)! z23l5TTH{F}L4MQms2~zh%!kAl=jMCVeh(p2b2$j`SomrP8r^rO6W z{1aK<~q%=!g>2+5rM?@ZiKf3FrW z$X5!7Nj^WEznQ1&d(eol3`z|Mi0>hw9s>o%-|N5RoE;O4_;4EQq2q9dx_>NHd6~hS9QX^*{4Su2Obz`)@b7xq*ClfY$+o@@a#hi=gsei~VUxe;}u& zyPa|Ic+FLMC;5$4VBSs>6BD0m|1QjB<8y>w(E1iz#DAXidlxmtO5^z_XfHPQEQZBV zzQF%J^6xi);=2~B^QGSF+jqYB+HAZ!ChZy9WZ|6{1lRCsVvpQt7M9Rf}87Wv?TPQ1PEF?IAGqCV+)$u#LzaPXwnUI@OILrc^R`jEOor+O&ymv5lG_pc_-ZYp#o!MS4dsX#WkLpEL z@Nf(+VNQfG>3ZuD!=;=NVE;QG{+SrG+M842By?;S^V)AMb$0)~EdQA`zf-$@83q~; zL=IPbKOD6!KHkV`=6qFd4N+0YsgX4E<$ysdv32i^`unn?Aeh>(o#=J$N0nx>J@%I* z1jL!{)}LOQ9`>umWo5^wTA$_qeNwR;s_~O7GrK>CtZn*S2QU+2d433&c+-GA!(vWX5tQmc za!s-uZzo6s$$A|E3>UOOYOO*wa28|o`2ss(-|(?SMWTCKdf3KLaHN4tp7vb10)@@v z$M!Y^{@S&!Ok;QGVI!wsP%g9;!kh_`s3r{me0lv(2lV))VNB5So7uw#ks9Cn4gW+9 zr3b!5wLJ}pAX7wFMtg9%=ug6a|lNIbS7bDhG`spuYC5z>^R0?p-QG?aRlywI_rEj5rThzEwO}c;v z#JfCweQym8ewpdBN-d%yK%7fgMxWrue$Mg*c5#12`(y0kA9ZQ&r(~1;bp1ylYfHF| zgNx%su#<~RJt7NH72SJOH%)dDgifMlk$G*#=e)iP4`bGL5&fV3+&YYFvT}BmF=z#q z+05VJ3m+1B@EfdtAc>`Ul~#JbV*1BKRYv_CjvbgipA!B<+NebJMwhEi8t21 z`|8DG!xWXHVAQi{lW}%8k!*Vcq5s>;QbxcFn+&pymGiG7_SVCglJ2D350jexIPL8vXlc?evV+$-Y1<#ckQMIkxe{x%~n=tXARK zB~v6ui(pq-Oq&vDKeV+MMG+J&)|V%TB9yuJN-A_J@2Z>f7G|>Al$$tKk;%pzYb?=} z2rxhNeTDYMO}8>8=Ly7~m4>1-fC5ga(s5I$n&TM|($y0>7S+-`91gD}kuFxxBHOedfL)BIRh8og<_*(&((8iC zSTP@R@NN*;b(PNke(CzvKCNrO>^$81a?n80tkHS)%wo~(7nl7byoQ9it%^@$^$%lv zzY2lSFyumWE$WdEsd*db{3M@L!s5%TPem*h$W3_EjNO`R26q2-YlPpcRbm(FiOMFW$5_S z>7Dy700q-IkL+uLoNDKv5Zv0*)zA|;bY#`~ba~C$@piUv4cq59S0HJ}pyD%dl{-ed z?-YfPxgEK%+ay8y2(Umilhk?7qwRg9MrKcMvQSfhLX$8Z7rxsac@ z39&38*@H14Rgrr0k0$ot<(OY1};DFbai|AHl;Ebax!pmc>p5kkDgiJw~a-j+MWKvMekg3YJQ8_~!3D-}12y^8c5| zIxNtsupErrnH`h3Wij6ZIMlYfsZdp(1%S*))_yBEccB(^!EC z;UFLw!g@G|l`EhLtguAuuDX(vl9R<|cLgsS>nc!B6lyk4kBSsnp0*hfdBn+5v%AJS z*5z9*07Ens28T-m6)eS9jV}<2T7~P&=pVEVIsE_r3GWo8&GF`Js3b6-7c8cceb|k? Y?Tv9&IaZd@p8!9ziFu~p3ArRby1P|`+5E$Iu-QAtPv%Am!ef!So zIn&eA(|xOM-IDLCo)9@1v6qOrh!7AEFU3C!D?mWNrb0kK^})XYj;I?wp8;=>b_!yG z5G6zSyTAuwBQ_a=GROo1=GQ5}3m14nKtO+ogn$O#A%7kF4)xo&u&Ljn zf7^%Z`*q?KY70IDgaCxN@CPMl$b(ea6eVT6Zr#Yp7w^fkKggNDM4|4!GLdWG78Zng zFa812WcNt!!%smGu9vv6q76bfLv~l(ovE|Csf(%FY3KKcOK!61&tH>Vj@*{e*UJ$* zz9ZoCddgIMa!q6T=neA^+rvB5@nKsUQK)wU|FmVm%h|sQ@PGZ!XFZ_>Z(4nbe+!95 z{HHD09qRgsHLTljAx4qHiv2`|vVw3u1%m2Q^ z2SM*lyT}xHN58)e-kl7h{q|zEKl-6wIGV~xAq0mxuvD3WA0ZL~;WJbOA#Xe$`|%D) zVh$@U>ttZx_g_CImV(*Qc`J3JmiU)zkw!q!q>yk>h~uaG+HIu1sF8vi^@Y&USXK80 zA*RtH|3_3*OsF@hoq`cY;(yj7F&aW!j%cR;DQP*Jc{0pL;)d64%&^0lFa9GrJQ8HX zG&~Y-JlUTVLG1JK9R$&keg5kZ3UBEc0hV{(AjHQ`u}<`Uk|+oSVLT`}yCQ4O_&1?n zJ{AoiXyx9=oSe+i-qt=@(S>etsP&uR(x#>w=)e0V?*H7p`C%xz?uEV@{llySU!|aZ z-#K`L^!6`e{aM6+?LUwRqz^sG*(n;2HE1&3_G?<&!tmu=Y{HC{Na#IQ!?Yw6Mg2vq zf4S+339*3WHbmNH4{FM&NASYuZ$AI~WN#SKZxABD***k8L@;G+%LQKsYCQJe+r|8E zVTD0Z_NA}eDjU~FJR0W^jU(Q|R(4(WUBdR&V7pD0G||I_Tih$eyZn=o#Bwm7ckwBs z>Gn>irkP+&Z;XxqY`y<)AO028^V5ClN<=$5U>6?in~IidocCx=7(YDnWB$i|+6a6a zosRpuLa~G%VH-yrcgM)y>omn~3?yl~UhL!q1wZOE-}P+vCpbI=zs}km$>?GqWjpDY!*j4|Jj{PF906x^=ZBl}aq^)wUJCxF zy4m;|qkgNiVgBct@a9Du<<{EGqzIUgE4!p8kJtPk&$o(Aq_Gk5Jf0o`qThn4p*~EV zqCg!bG8(?kP+elZoz{he^(xk^jqHn~-V@|?wU7IPLH+UJ<}}Ccnoi;eEy;U@?2&s; zyRFEc_Mt)jL|S6e-Zi)?PQE2}5cx!gno>(03Mx!QW}L$< z!W=3KcYKpy?2(!R*bHr`qp~4ACtovzq0IgtDD=qAd6I({EQuYL@9mUF=_H;PZR-(51os zau_RNZMDmm(d5z^pXIklGK4BjCz)u`xcc#EY_5+MV;uHd6nyp6#SKoW?!K*{=ce*W2Xxue!NAfY) zZqk2*5q$~j!_{9WpSfN8y_(1Y2=W;FPW zMj?~(2D=ot@dVjyw#I_{V}>B?r_(jqXiE7^N;h(S_${g`t7VxqwPwvk2n*pUi_*;FAJROCU$1ZLj~3oIqe!e>-7)ywg!^2&8CNdNx|Kn$S-U< zmtmf**rW)-pk6TIGh)t zZ1znWfx~GHmLM7i24Mb(iOz@!3w1U^zl_{-pe6wUoi70v36rXDgU>UD!{sa+kWyUw zK9!8ou;F?MZaF6H>}K&bJyOHIUn2{BA&3nPo*k+`p)~fbSoj`Jo9K7euOAX|Ic>u} z4JL~$c{b*Tyt*rXopQe6q8wtnY19*`f7XSi7?(KDxD&7)O(yvLnhY?iayw$kK!pDACh=(?WaA8c$UxU`7f=KpW!#j=MnzRV;(7uEB!BH7OO)bs zHC|1-TRrq>(x0P78>`P`;q=~5U^bC3!+jwZD?v^ncX8IOQoMD9OsXYO~$l1u}_P6(~isBv!K;tpX6)6>}D0hFwD=voDzhyNUQ%d6Z@)7vlX7y5v)AMpt^};}c$cslXWErWtRZ_}@ zh-u@kcpO#S_pd(C_tcDL@mHHk)T%PHa&KtV1mw0ac6EPTZSQc|ZF?$zHLB7JEz|E5 zJsh?NQX*h3jN6qCF=>-~Dcq`uA7xe8S0_SFc$`9n@ke3pcU1x z+7}kd6cS62jwY@3cB}AvlM_RwZot=R#7&33vTouJyvof3h&) z+d&QOnLqsS5N(bHPCYsqd>y+;Fq#njl1zueY>WW1+2=x8P}mFb(32kP;ehQN5!7a% zax@OJ@!q6%IRiwIpVQ$St*%$|hc6gziVC?>Z+j~3w&}Dz9`C+Rc9!JwIP1|zcGjYw zb*9G^dJ|ze?6WD2vsLa-8Zg54P8zWEz!CXQF}R#5y;nPNIAkC?b&iauQP;RG{}^R( z7m76pMj>w+72cUTkvjTp z!zI>bb7gdu*|hvnDtBpsftp0AR=q?>FM5@-()H0X0?f90r7PRLz3oZvnQpT}A5>R>hlrjowen}9+FUpxN!W1B8i z-Ef2BVRqMMi^u(ZK|7z$58{_DnG)WUY{Kv1hr;=yzV;&ygtZ~1>Ae(n?v~6uoOdz} z1r3mg$Yg+quP>SLh7TY6&M-^Z!U?!BS%iMx>4JuzEY7#Xwwa;$pn-!sr}P$cEOP-O zBgi|?1U`H*%pjS^wF$*#9oJnlUeCII19%?D9cjfpnQ5=1s?xSv{7W-rCrOahDS}e) z7bJulY`i;Y1*E~a^?5DRn?AVs5q*btNE-~RPJLxxcHeX_K6PAH)68ORJz8J-ZR?NA zbvBB#jZQ(HjZ@WTD7Qe`G&#Rz+R*RZ8Ln*pjooT*jOm51UDp@o&FX2y-i==LIIj%Q zr`@qliGd~B-SIpWR(mNVn-tp+_PCo22uKB*cSi5{dtQ2=Cnf$`v;C(28eCb(A*B{WZSeJK1q zF69x3Bz*&kj9n^DjgG~z9oHE`L1bP}OT3qZ8vPwi%ub9ep$achdomGC9(It&ur!PURRW~!TuEOAYCmX zyno{kkExQLFi5P@9c3Lc`4jwrb)|k$lKw5S6E12N3E?;AaedYJ(H|5e83tWvu3V&h z(y^2oZOK5c`f6?s)@FM+T@{na@M4YW1St^i_U07bBJ+Hq9w|~xuFT;ZhVAQfBs(0q*r zmfE8G$p>8{kwy9KE~UP7&$*&pW4ejV%H5BTcMg{mVs-$IeCJrfK&DV_BLalI>Tk%{ zyu@lAE15F>k_mLXv@QG{bGXZ7t2NM&FHmldlHQ6rdYC^39rwbQP1Rh%dR7qed%inv zo)#Lea@$VLG(AK*X> zW`SCz<61{jC59?e%+m0dJJ@+86gomh*pl)Uqv~}U3CA}MaCv5$0MhU<-+fVW(m)dP zzQ>I*Q@eY6i_Llm%2EUl(ILeZo7_$E+AFOL@YEh_m}&JRoE@1K#eKh*xyFOr&h&kwe(JD$zr}{ zx6Xcd%p}21DA2t~t6F-h8=n99A@t7kwnSz)k(>23fc{48i!4V&JAp4v3eIK9TlAp&w7!XzVNHyL7Rd=^v3`C~o7;P`CztL_l$m$w4- z_Uz@Wmef@VsL-1LvW>xSVjil<>S`ksb_X*y%}5z|%l#`;gUb+J)zB}H$B-i0u_5W! z<7qWBKvnGocr$F-u2aO@aeI52D;%k>n3XShQN?sC-ECFfRrFnaWQU7Nfg7v}3Rgq20bwCQkR`;7# zxH%NoqI^cp@e4Bbicd8y)4IE`h$HVva=NgChG#d<2jeGHS2J185>HY8%(bRBopj3~Ch< zuTwRpH=YhSr120{FN&672-LBjHa};S)%1eEeE} zp-BPSCtcq^kCNK%O_&^}K_7isF^u?AU6{%3v+Q|4yNSB0GRS3C3;-E5OmtMBC5nB2VggHgskVrdG~Py} zqUuuZ#*%3=ABZsTOI`-i;9;9}J~MQ$0f}>34HiWt4f=_ejB?Zr1T~6{lU4qzC}F_K zRDBO~kda~tP0d&m4na%${P@;uZ$iA!)~$&tx~{m(DrTm_$gcW_f!$#!I$wcy$PPJw zEdUy28VmlM4t)z$oM-bKGf59O>#`M}dYPK*D2*pOaHC1q5VEDeiBYRQcZcU4kw-t6r2a%=*txv%;pxYY%5<2Y=Jqd#8@PfU48h1m6*8noGXmc$ zj>f}CDI0au+p=mfXtsu5s~Hzyzb{+b7mOK_BiK&Sl1OlVYkP3eUz%6PVxlwR%ZRD$ za~YiHZO3M}#bSY@U8vHdgaY4YJ*n?|o8i3<6hsA+z0V_p%f7oQyfG>Y1LBH0$_%Yeo5!g*zS#%Q8ryt8->!2|rtcF} zbHdcR997rpj%phhgow|dESOZVd__J(tD{kOYPD%EGnH<(CF(p2uoMtbTR}Bvy)hK3mI+UCW=dU? z`%3ymBL z*%EP7Gl3aDw{){zFLebk%{F>QYwF&-PpdsNgfsGGY^zoY#VmH1HXcYUn1wUs_bZnL zG8{Mw%BziT671DvzPKSQ)j$?;8c=MG?IU}-nlkn@?#aG+wIkbR(fqXS&nOiP^qzfA z=<})Tn^U2wJu=1Iu#6(96NpA9IOPaH9H57@a zGUye-JJk}cQ5CAGCw9{b0r~>Jraz@W0#Ktt5G}GD5RjG2*Z?p~n%)Lv*3}uWjq|pK z)9ICh^!z`)G@B|?JVG5(%kniK8pfm{M|9#_x}sMp0>z@L(o)`89r`y`rxx9&9e|xH z@L=3Hutd4rGV96pv{Za%8?4S?#;5Ac)mz+iG-7MRY@u1To3r6ZMZUKaW2$f)@s_p4 zp6yiLX|3lwSRzUMPmFHHlgDLPxr!?l}3X__deiyf`6cbQiX;?m<8O@QQRJaPJy4L zO$gUlH(~@0`O(`86daHSH5K^b&hzuI8*MRC75hN`rt|IL{@~Z0S~4J($1Nbn{TJ1QkI;tE zcHDZbT&dZtX->GA?zQBJ+hUj+)RE5NsKL2oQ9C zVNL+P?k$vc%+3xKBkoK3zL#Bfh#|HFPGkCNv0jgt8n^eyt*O~u5x$Xxvm_pO7Zo1& zrO_lpFG3Kf2BHS3Gw1VW4v1{N3_aP{X&|muoQ|6h>iqHL8j|Cxvi-h&|~h4YI%pazGT$_u|h3zh*$Ke!Wf%mK{#{2lx@axImB8l3-D^6y77 z>3!6a4yWBK!&yXA5~n)753*#OEE-JxGb^c?Jbwb|?CZn3OaP9RdE~oigux{FGmrV# zeRu_^_m~(VBWb)bbZIx^i)`lvMBs-X8QL*_@)W0Sd{pA_8buZf93u~ z*8>wHKg z5Rc-Cx&D79+NTT^5E|2!M)HsF1`H%h3Sw>KJU>RnmVSokPl5>uqkaT(5MdVdEjEDe z9)MT>Q%d|7ZT{Pky-5T{XCqhsZYBOcKOcz)0J93hA))@W@%{Hc18^1|+CubyEs;Op z*FOnhcNyM(g8hqH{}j9beLN6C1SI6E`S*7Jn`#))0o54$7yXwL`D5t7S8b@lHXAdu z;4SZez8oYPJdzJ~gfhG&>}dYM==%0M$=vO%@kkC#U=(mrO~VAiqr9*#DZsl{4xajqHpgnLi|4wS4_wS0M>->9-sS9lmB0e zhe`ZJr9&Gz{FAazSO7IXu%vs0r~bWk{~ib+W2T+APX*UM4c<8!LC)SYd6*9@^A~gd zfA@z3M$g$Mpib~lgXb9p>`AO`wiPH{c-(JBN^&Ye!@UvwmNlX4|7g_04!?Rec98*; z?E{y?9u+|5#N%`7#AE3=%bQO8pmn=Cn56Z5ene4dbZlm*eF9M0zS34p1Uue;wj`(z z#45y8`UF=n;XrC+)UPrT)$Dp1sjB0mZn@M%28=F_TspabC{^9HNQljDbSpnOgk9WeK=gq_Z#~img0X-C}+|0FP0Ek3_$L>iDfOCs7)}kcvO})`% z4jL^0i&9~`X{tH5HOMcS#sgdR@o{JLEe_X(;bFmBqdu0gIvey4+=ks@aVFy}kp$e1 z;;CGhMs4078Xf>%OZmRp;Yli~LNe%8>aW<%W$|z`oFkj=$z-$k4j{fFVyRVor^uZ? z5@RD=9L#Dbvs+OCsMGZI2ZpOC57NKJn%{kovmmiGd9Cc8d%^Y7%{o2rlR?+gNl52t z7C06u{96r^)A3RqGiV4AX8Ur#b<}sBec3(7{{YKqJolK)^WjFJ()i_OfnjY8#NlFN z!n===0(#90nIdNOj)%zuN#_CCvgtamR|jN^4VOw_=FPiHGbWEaDWH3y3>lA2O(FZE zrCAL3JJc|klM3UX!TM(d%)>kP5FXiGb_{9nuR{J_)q=m8s7~Un0pMBNu*vxpO65FD z?0Fa9SLTX~^Y$lPG>P&g$f9{%Y=Nr2s^8pKyS0*pq! zlh{5#L8nsacla|o9nt(E)A_de(Si|SPNHE-O!Q7uIBd|WS-Z(u zp3Bj^wCFq0ZdH}ZxSX})iwGO}K!Jh83lTyi8BA`8zjFa66R*GL*m=vk45e_ANyZQK zT_0G#SKOi%kEM(%hOO(Xv)%ksBU2-y;aJx5y%M4pYO%o~icXvB7q=BB`ZbwS73Vw~ zK-@DbT5r}uxk^-uaTN-bdgXS*h<$!Ye79PD>I=F>HtJdyzkP3or5x1m`S*=O0#y{h znv&AjIBX310sL=cqc=vOXyzM}+m+UAgTpuX+s$c(QXQf9x-DO9gI=#~b)%-Id^Qh72U2>$ygZ3GL7>K?u`cwn1-POZ0Il2U zf^s@q$a&;7^bxF^)&s`+5yG=?*{iiw+B%ni`-d~;Ea>kXt504C;KHpr<^vEh0Qi@! zzn{L91{&^FJe9KPkFJNMgm>c6eGLwU?;HV-Q9hPUWRS51=xHjYAEbcG zRPn%m*L@f?)aLaLH2^*gpHsBu#vs1NI(G#>KnB0@e@re~a7Gb45r1`-6ZXx2LMVYj zrz3pRbcyzLUl7xoPOGO-$aqL98{#P^fP}+NO-w=55&*i1f%Bar-`^!+{@Io}5S%jH}+t5;UF06uh3(M71gFGCW+uthY_aUO1 z@TC^}GRydJcE|sgp#FWJCpJY3elv=5#1a-z`IhacqO)UmhvDCu$ZxJO7#D_A3&3u8 z?6zTR?TLBb68$R^1=3-t@{;|4^X-d{%-6jyk&-NDA7U07Tol>eHda2|?q4rI?sZ(6 zP1|d$!Lw%i8hUkxt^z)0;~;4ql4$Dd{`BTv95rMq7DhuO`C^Vb_j=EC^49Q^*YhJq zoy-Hma|#cMo72%n-e-aShZd`Je16w=-yKBljaD6a-Ef1}FRRSv**NX)V)G1S#!(Iy zsVTw<9Fn)_(59mr_xYJhD^FZK>(^JUa4|cU?)ryqcb7w-R9;VPo|t!o-X6v2!Rv1l z^qkf;dM)IrbFOKCFVT0b@26<%-L5TvnDSosE4uzb#QBXT^+ans4kkO_>ZvYN)t<6` ze)3SSwhu9%KMU>Wc^!qCky**^TZzNsZ-O`+_~I92G@9C$!T%f!HOnL!WGwwaNab0l z>b&lNbN4~Fb)Ny&$?|c~jO4tdzOrE%9PS_dxiU{WDkMFOP5HKJvC%BAq#u5U595lt zvbxpB0ABy1@#X%ZD~tXGWxiHsqAqEIw#X|uTD++kDl1H<;FtHSwYpw8rM-&J4+I4j zj6y*lPn${uzc^v)Z|>79&I8oxQ7;(!PBH^ueRB}XB}Zyiu)^eVdI@v-R)t=h%J2U2 zG(RkFAc6jon!DE0A!$(k?!@QO=(Zz(uD?#wS|z>lVKol($Nuc}DTj`1GnWIZR^gL> z1e`lDH74y@{!YZVmbkqf$=*F9Ne52QwX3rhXvv;QZkXO`4pBI*aWBBAk^H!4NxKnB zKDGFjE?=v8094uf%+V8XVZ-GZo^?02!2v5oL@A5*}35q&_ zW=hCk`AyNr140NIMbwwcg8uz3$s5Iml7ahF?%rjv5TOz>5 zT55etMelkQvymygD&nXl2OBP-HS($}zv@ULR&@ZIiGf!qThn(2-XjD zu4_sJwvi^zsYf2a?A(#=pHo-Ny`*nhzp+u|2d_VeiN(4R^rOjG* z9M@Oe`7u&M3Ke0Ny@(a_J0mR{7V5-4VVi%IjH6#5id?aVQ)#6&s$Z*}wo8;44qv+y z8Uo3|ryYuQce-sg2t^-#j~yz#FO~y|J|3W5$<(y7K(a-mz@fQDYqly>jkV%2-&TR3 z_(SeH?VQS%du??NEUilSq^g4v`6U`fmD-8=>3a=-zK3buXsXL|NQ*_OnDEzc1IJy9 z7kKI&PhyX%e4fQL<{5806w>oMZT5=@z&zn#pN6!>ui$YP>w}nD@Kf0IL@J+C+{prvh+LWX8v&U{w zUXy-4bJ6DGc%kNd+`1Uso1N%-DNl$;`4HxyuTCVlqBI4-mR@aKAUkf?b`R z?C^8Maru{1myc{?*Y(JEdvx@Bq42zzTk#QL#F|VG%6~_n$decy95zJ<%W!Ge;JP&ga=CF;dBla|X?=BK+yq%Gk(1Fxq*7tU(zO^P$%w7h1IpCHkKBVp1XCIw{z8Gjxy4v@yzWUq)H$*JBPu-j@LL> z^{4xIU5DmxtzVuC-sqEhzx6Be72ELrSw@&copYVI%wUdVc4#%H*Y`gtA z6GT~y(#>AE%S_|O*o9?rZN99sqBzdz&Sd_>eWEcTT-4=+rD!!A%Do8kDUuNb+amLL zalWR;joWf?|FEUe&b+uYg}Uied)-J7Mkv;<9dzIh``z(CbKk?HS+@T8R?Qw=8VaY^ zd&QiZt|Wr8E>_S?I3bhT(Lzgcj68eG_Y4cL8^UHAbcxUj`_;NWln(;r=}9OX(4x%3 zKEY_Q=B&;G3U8Ql+;xM!EpFGo<1~7?oM#4FgbQ2TBkh>1-Yns(n$P^8y+|<*H{sVH z`{*$yyt@xS-m|zkzN95KwLhDpx&U2_%Q~|C`ucSm0lePl#C3cpvvG;*-bv?$RJeJ8 zlmm{X(w)%BR-Pk@bL7rTo2A}<5~WbL4a3U;*6EMWX^R%uJ-dp}pL4B4HuiMH2#!ja zoi5j1{O;|BF7jO)_&7A6)3mc*pj3z===7|3cH9u8>n`!s%3B_Vnbd6KryXN|L(mHx zMnXS9{^<~~{d$P^%Ik4g%;V@(s@(zfGJL!14qt@tMjc!oYS!tx_&ufYX&onIo6{IB z!^>K>+G+Y#9&kae;WTWH#^*t7Z4b+2dpl1CzJ0re$@=a~pJ8_`FG@eN$py(1lOtzY zFUDKDRJcQZUYI)mj>?x(Cph6|IQY`mUGv%Z+=Srs1LxpP>Gt_lnuh`Lzcy zpm8zy-}@MVS}5!UIdq#kfzHGOqSDb<-1+d6|!Ws+ez6@T0eDsHJh%+#^bicPhxUvskutwG>UFZh%w}F zy9+~u5_}MApoS~Q@}1@`*65FDypm`vS-ku2EC+6lWGhaQ7wkVe zoX8&uQ<4u`+^(|IXr9sYy`zAoh zWw9Q}Jv9(5v{InAB$AC|(Wrz4uOH#hGd+5N zQwlF7+B)jy9Cr)49D_T`m^!PBgOiXZc~`L&_@8|VkxHm?Ov`5(EdzvdmV4-ch^)} z{9x0p@* zA3+TmcKU1;>L~p6$E)X-(((w$^DX+7tF*H%t_q#uttJ`yc#L9h$7pp)RruVimxn}a zx`dvQBw?!$p0yqcZDdkSH>cWXc20x`5Zw6RznY+TOV;vv7>(DYD(qZN=NO*n-UUGG z6nx-$agMRtQuHNCi`z6joZLQ^DMlu3axHIDpu*gMK zr<3yTP8Yf*aTwf6pM%D3o39T=Lw28$K*LqdEPmhlwZGnejkfAz9_BH;ez3h>s8ac| zjX$J4z2xz!H({U5E2BdLpEaG)E1jbxT{jmwtq_}NuDc%0$AR@;MM_lqMoXtRX8O~l zrs}YK41%G>e7)I^{ci2&(=dP3P*8j0o}Kx|O~{`5NyRvj+m(Q1ky93*bDvB2*ro4$ zc->O?z^SQbT13r__GmPbA@@ez9b^s3#+Ro1`xw_4&Yftp{@1+6f(J^aGfkFUvzK-abwG1%uqBM%*HEG%iwP7<82Hbq7-FJVNg+S zz&=#Dfia%{RV>3t;;0c-CP_6*qCN$$i|O+@Srcr&qyi{sWfv#(IM9chSA3{%f)T3Pz)}OTNi{!I@=i$)%A|zsnB)6_uFs4JDM9`#T z&K|41W7B|l+{rS9%;#4}CA6xS8KhcysGfR@-;TPls@stHE%#N5B6Ex9`?ii-#_72b z-_T{kN~m7PvQI}H)phbW!7yCwUCuec(4(Ug=I^7eUVFINw+_^uipkgC(N}CT7sNMZ)%yqM{onRy@m>rad9j3TM^rjW=iR*`Tsz}DaxRf23rdGJGqdnkvA_XA<*Rn|3LDFR$fqrRz0&6R<=nx;3*uu z_?S>CN21tl@oSycS_NtO4R?oH?PEFp2QeU~dfk>x*qbJ4`7I6(3-9I;n}$S71SIR{ zPy7KoUul?I?q!g`x)0S%3z+e7j#DG56sYI7ZDFUBP*KMfO_a+Dc&!i8i( zpiyNB`B&p>p|xqCm(Ud?(B*i2zarw|iJkmWjVM*xz064VMKJLLgF!TFy2CQf*$YWS z^bw~AVm`OKs&L=Q9QJm@`{&wEBHF!aNJ(f&)GKP`f_!^LYgS{Q`p%SL&);ehaXk2m z-~jy_14#r5g0D_H^tv)(&$f@@HZJ&|cRs4+yP^;McvyjGpY_-3qrzETm}Pd%%oUf7 zX34KGwmVj>klv=VRYfqe*7b&1Ez+(%a^$Nc8S5~(-6rykRHTqKE#!PFmsnFYAI|G) z+TMX1v^x(JievIeL*>3HF&E2ly1H)QAAqfiZ(urF^u z^f3BX0&|ygnI?eWC+I#`?NL~R-E~{L1VTkCo{q|=D4G`zLEohssC#U#X(Q9V!`c+P ztbjA16!y4zN6Y=p%ISF#Y<^>#s#L73i8S5}WC=Ki@oVUf!q-;wIVa9PLWCYVUNDlHX4@_Jk%F@Uv|VyJ~BsufRS{ z9T%9KJ`JvJ=&N(Mv(|c9OKpP@%p$; zRs09yBQNlF-FiJ6J?M0-2PQ?6XM8A)Yg697+dQ~_Ja0FNJ(0i{Yv%ZpNUs2~+F^r$ z$}b3>nNapRz0%ZowQ@6n#l&IyiK|RkxLFGHTOIpD7$Uv(WEB}{8#H0HUJ%~c$b8q&b5)Y@EDDvd+Z$ZpRXue`nk;C7mYz(<;7)NS5soE0#8b&(oJwW3qvOQCZ3?xV)Q9Eb+fuV zN0m+pRU`lXbvWsl(`v+5i>6vzm1yqO~NX{>?_Y zVMc}CD2bXvr$W7Ex~E2uFT|dOGl@1A?Sdl!yx6eY~W)Q+-TmaXD`ZXbkT4?l1b)(@vX3W9))FS6qJrfqJ-eZuN{Y~Dw1r&!c zHtkQ!<(?^s*KliZwUjw@?55nq?@_7orhm}o^u@=m?s3V+u%)t;s1Gt~))575&iQ_X zD?BZoE{Uqz9hZztuC8LGqhU!H_(s7UXBOvZiV5M{=+^gbzXuByRa-v}Nm8wDcXzBI zfJT+xT+ibW`+*mwPS@smW9XYK*AFbRa1xO|CARck^1)fjOqMTrP&%KQbejBoamy@- z_q;UKSv$MX9vC{6JF;i(Qm=*=IoV)|4c7TOLK)1w-QeJd$+2stw`S&x8@GStaW(C> z=5a+H{jwq-c8dU36q?o7GLMh7hw5;rM8j1qdv={o!p#|4rgcblj;Fq`bb$;p*EV9-vLg!h#$S!qxs@kWFGmw8PD~9p57&{K)`Ot;RBx8HdL|y zqV)cfiz;Eliua-Bcw(K`g-&EcgEy#9cDsiU!94vJ0ppw0rdp`FcT}wqA512hP<~&i zUfYt)*UT|NYVCuIqQxLk=FN~GsLpGs@#=x@?K^Q?1F|NkYnj=spPCOd0h11aQb`v| z``o5n1?7EL6X^z4@nao_-a5S1buW=bX(9vikIL2pKVIC{$zDJOs$rW}bwa72Os?qN(QM=XEk|eUSH+QB)q-Fm76-}A(Lc4%KK)PNmYYF_qq9Ra3hd(+x zJ%FDceMKHtwulcyNiykjAxSyH!OQ2~4Y+J(`ROvH{fGoAFk8ED9CeN0-pJo!O&3Du`R<7*oIMJ+|J%(@Egkh0dNBO}T=?*0J zZjJq9ECo=7L8SDa^GUnI1R}2ya|V^L`MT|P)=I})TMzyf-1LWCH8Y!t`;xS*G(^{V zFEidDzSgGtG+xHC8sKp-^~RwymoJ^S{`Yuw1Ra+lW~j`PCsNePB`KI`@^F|hemWo% z9hMohtv<|F-qiN)3{{?DG&l?;t*@zu^z{(zK`5oq<-yv+i($`SM^@aPC5} zCVRCTtlD*vyk1L>E*5T(3$xayerIiG)^-h6_s-OA-HonmMRIX49=hj)k%OndkUdTEH>R9^z zBt+|S5N!^M+okW#99&g(+M@(bzFN@_wd(t;p(o7K?eAz1Df9Y4rjF#-?Y2x@pbl403Pqrs?7a^Yl9=;&7JcMhQN>okB>ND(any=BOzVaU zA*EG^*jurEyOC^1X>AnD_k-C-vY__yX3M_BePnRUgjFB6B_4}OK^AW9=iRfU)gye( zeX}W1-t7tI=f@!eRy>+$F1cF?ww5Qit9v=k5cUFj<)!0^5A~m2G_h*a49z^ke=Usg zTWj;;@%bmseVeP>&B4oq5TELop!=aYhxlPGKG3f767ur}vj@sLXOI~xJvo0mtLk&) z&w)h9PO-gVc`dNB3$oV&c?z$c=*o+1``a_9LRa2G5n8D_!P{*|pyL*t4$wKzMHY>2 zxfFHjR+-E?9-^Us7d6GG2){^I0b{J{OIom0DLvhnlPxfj$FKw+u{wQ7@|kZ54_ zlC#ybriUOKrFgl~N%r0-9E;!chr)>+La6#%g?5S2IvNI>48-~n0T1}Zz60zd%Jvy` zqM}=^Y810+0~ei9Qf8Xq)2->b?o$3oN`i0fallhV2`~ugyQhio`=;&|53?-5u2Do& z!({@Mh!Rt-Bkb9YNGrZ)EmytTsT{Hhv9k30DEeleDcARVDExcSI18!k0@Z$OE0Xx@ z=Wp7GrsI@*PLy7#n67N?x>ij=Q+K%a0nv{sZLHWK$-`+np8qn*wOA9Vyn5GnxtMO7 z7JX?|CLEh|Q@(=J&-LznN^7jO{oIC6)dS3ku9FR$-kUA@qLh$W9idwtIhZZZT<3U# zE0ze|xWH4cZ79bwzcpDA%ikBx_ zDjl^qFW(%8V~w2**gUwm_hZt)m|*VzY*wySfX!EHZn!!<&X)$;dvzO@V1TaE4Ih^X zvxwlQh8?Z??~;eV?f+Cvt&2FR=${0Y<()|Zlk%@D(g}v)o5^_KrSI&hO8czF)>tdn zB=Wk6>*+xho5$}Jx)!@;6>Leg+G4Q<>K4c^G8^DBLs?R%+ zO{t$dkMo_?nSmFbi!C^h8VjbSik$|m!UF?A0Nvuy20vbL2!D{&P z=Q%H}Zn&q8rL64+)}0T;v#(;0)QG|twKbn6wu@fMUdQI`_o$~Ht!b4zuo0@dEKXXD zokX`QFMHG8dlJjcUJHD$MFG>Gcz*N(#Tt6w?Y?}XA{)9;<-JWti6 zR<94%+k@LQS_?fuhYfxE@0SSZvpE~L^j3MK>H}r~-cctT6Y%2ZUO01QX1)QN$HYS5Rh(=2I<;#cO%^$|H-L)?(cfe`;NhI>;bqJd#xGYc%IL^ zy*%(4{4RAclBHiGu#D7Nff?w*Ikvb{!Z99{U6Y)GFK_tiPZ8D}W|IuhH7GPV?T*zJ z)zV=^VZTjh!G36m>Kyx|OyA3}jE$4lSazNNH$7I1Ps{4!y${2h5)Ot_7%PNm3)_od-roBI7r!B^0) zdOQ%B^N0SF`)eGID+y?MEbsmA{TZdMq1iuYZ1ey6)xW=hAi+-6w@1gCC0BK*{ae=? zjEnt5AQmiAU?TlDHCcogB~XR&VH`3M(z0LST~q5%ae7?)U7t>?*uJZ3lj@)Myvvw* zMf)9rTdUeedHiOf*;i1t@AB8p`QHRu>AxxU_?>|?BNq5I19B@o@4TZ}j4i7@=XJiO zFzIIj4ZjL-J3Pz%$bpfkQV_>(F~!s8a(RrKqgmxmz->2S;-dE45hypdfXC2CE%&YZ zKYvv3cVhPfJo$HhiKB+Vx@NQ1tFGCHp19tpNqobY}eLZ@f?mFW(Dp85;iI zOZ+(;7KQIWMD-6-F45q}hbQA(7Hq=rJa#Hx4prMCsF%MhnW=YG&2FA&etB_dcyhYX zEId@aSQ|yH1%hu&*p8m`Ph<@^uOvdSEy(OQ?P{!m zOsphUm zas$Z?^izC%cJr9&Dk~K1Bi{k7Y{)b_Fch#C>E4AJbVaF`8uw?luF@(3E12QK6hU^& zYYiYxp+QefVm0~lK^JipJ?iTCCnX_wc{DCdmc-#o*N#i$o95@_=8n`Hml{* zEzN#NX+6M@*Xadyvznd8ey=r@9?qg4x$WoP%T+c5_=uTOlVNz}jyLqLJWoblEKX+f z)oCwo&gKo*dVd~{s+y5m&U~-DWO{_?gM!_AuPu`}*&HPU+PF%)-3VaJzK3(oqP2Wg z&clA3+5#Q*-vF#Xg^CiyK8UTspB++jjc8Qp7>Bd^B7jRm^!AFel~8oG`$_B*YpJf3 zD`oY1m(aSCv7}O5BnNO{`t2|HG{=0I=A+5f8r|p4P5)koHH#EpM{S z3j|s|V(1qChjD5pdM1lpK$$p{6MY273Nu2G_fOLI{pbhuDL1g|g=&${KUCbUg@SGp zSPf$EL#oObJ~9_Owf}er8>ZM!<-YpI)R>ZzR3`2njY3Nb;DVwaK^s?j!l5D)ZaM ziimzMIfgbVpa3c|#R82d0EiNXnWEY=Z8cs_u9~B$zSrV|+mIGooXqdeO^>YG=rJ4T zINt!{@=UL^*6Y}+QJe8#sV#b}VA^E9FYF@H{{yOgGN(yA>{B8@%oy>=>WRtu48)D{ zY58=?XQp}P26B9(?Emm4i)7ycUBR2G$I@tvw%kyhD)toxi>zhB|l_Gh|E`xSW{+Vm_N{` zfT4#C?bPgjwG_f=WYS!%+sOYmhe50Rc4RHqIwwB%*Q$EK*JMCRoeaTqBO|@%)m*)+ zWLK)PwAdl7R?I}Md`E{2^puJ}2Q%VV`gPShTFwqTBU|7?uxgN*^mrwEVyH7Pql|Mu zpl-dRU3I%SoO-e~Qyo16V%-aS%RKtTw?RaPBKI+l2Usa8vtdY$6^G?aggifPcDO<%aPtC@HT^bogy1J6pdqCA z2DknKE#k?4RPle;tP8S|f=mj7Kg>w~(3Mj>JT00oA@!`*?KAR^J7#Pd-=wg8M9$TH zm=u75dNnF6=--(_EadabB=EcaR$LEjOep@DI=vzfeXj)OzVE$ou-x7~iM`;Oim*na zcxL^JYdg-b_t!uoAT`&7khW2wpzcNqvXVDl@g}CKJqr1if|vLmBJV*TI;*yx_`d`P z;792+U|K1h^p^ZVGyL_Qi0%ijjj$;BHvZq|9**d8gI2*hwIy$02}!mKDYCG7u16=NNu>SG~BP%%Fo@`cijQ|L>!Y*hakH3Z)l2NJa$1?%>BuF z_}>_eQaJK@9Uc@zaK^drX#V|)A(}!j(s1+OU+6!X zyi00a&0Zc)A(t-s7-aZr@)(mgOXJC_4}5o3)~OXoJ~qRVT_(6>1C|G$ajETpJCy$K^8zAbzr4({_o3bvLDUGxK0d0u zyvKpY(>X~?8y%A)t0gb~n@RZRW&av8B6!}`6?Tw#3h&t_H;gdCBknOnRVK85n>C>N z>m&F*7y^_hp9_*&xD^p0vM67X&DiMV|LtLup+jJQjMj^l`F#1XRGAm%OrUr@!L*vq zUgXr<@&7Tlnnj7V=u>>nzHLAJV?>DP-Xlqa8+?~L|MzcAe+<@$MYkFv0S^KQeX+|Q zPZS-5XrwmR=hW%{JN*DZloBlZ1oF+go;T!NrN;5teMtfOwE6b{QZ+>L`37O2LZ<-m z0}MKCWF>*%$J7)cQX14RRXM)Ba<_K_0b>3j)chWx;8|vyjT7;YKg^rIr*Jhes+abz zA1V|y0qDT$@lO<+?Fs68h*7%6*`)6O3^tIF5No+}i?gWkqZtE_NKG$D8CHRg{@&r3 zw)N(>#-s3?$pK;j>1!0kavsOs4HwJ#1`E~sde^h# zgOe?e?Ijp@>njI|t9VA;(`wV=joI3?0*DMjw^qIIsO@yrlUh?a0d)`)i@tz^(OJCYE+u%XsT8A)@P>ha1iVc{m8k>zvnC< zW4;^t7F2FJ%8q=>yRV(fVw|d-8G=n;!4oEj04yY`DvH@$)dBlVUtdMKQkHpXDmh^8RGdg*-fUiLa#x*UPEvfDQHJh z?69M8u{|tbagw$CY5zIANoNcC%Y~_mEuVO8)aOqbbz*?mX8H@D9#-yLn8u?&e6-Mk zn}#x3Y8XSOJ~W-5lF>ZC`8NpRAH&O=N{aZ0=(B+MXcSFd4h#oN37fO0q}{!DU^V=f{# zPo-NwK3TmINFiM=bPE7}l{LrU$Z*>lu#qFO_q_N#CJ!w)w)aMVY6P_szP zB7{M`cY5o~i%J43m&Pyq_>S@c2PFky@hI&9>{KJjWzHzLyDblXte)=FN~tx{fg~*s z1|h6d;4WD?4XR&isyt`J7=qG0#RaevA3wk?nl8_K79qOv=cWH@;-ZtlKA*|9z2T)c zST{KvbLzy3Z2?x8a?Y7*B}%@J@j5P&I(;dcYqamHZDMIEzZmw$NY>cx4Tb@(K9%3^c8Mx|1h`azS(>S}I!fy5eRU$t``z&)bPqk{a3s5!~U=!Ib zazzd6-Z%ro(u(ix&B=g2DpCGkCcDKn@}bCw2PiA|3A~H_9x!+)B6&F)T%D$r%GR^i z0IXKs^Tw;kZI1 zNYAH%6J?@l^XT1peP%jOo4}l@Jl=!E2D6q=U08*qy3~sFy76$M&LN2RS4-yu%s}hGYU@is<{UAj zNvHF~;kPl6L=hc#{)XZ5ZQsuE98>n`#8V1_*MUqKkMyF_E24cekw(pmY zFCW&`NW$}gtp*X+I2!v2ybDO=M(1^E@^sxR#4cQ{NR1&AC_dmx#)CA0s)RYzLIT|q zR3UQdln(+rljW^>SKxPg#duoF#V)bB&f=~qa^?>7JwsvE(4@&6rg=@+qVn? z0_xA1YTtt7MjjMwx+svC1kj{{LJlsI-lvfQ&1r^*>6X6mdmC*k1xUck76A-Uni+Ld z0qCd)ProQ+_-klcjO7Qp0Scz!&+8QIDUw?r|8Rc1{C-J5@I68CVKaMKYncGBs;_et zyHp-yj{@3QJOJ~dv~#>0K-Wy1{5e$-tuas>kL`=$cyah7N4GI@d#=92pu_^??xblR z++u+3XcEH0gC4_TAd%s>*}_dD8f-9C%H?tGgeh=a=8(UjN2*;jGW8r!WpMw@?dOp4 zPA+`hz_*ZJS!RAjd+DaLWNrAba%}bFETi21AQd@1UIc(RlldO&9EBPg+-dZ!(IQ5^ zSg%T%>i&)CqBQ!s?WSOhqqV*%pTSo3Ds%;6jTVv zD6r|I<3o`$2s?=dn);M2UwnI=lZZ`~#O|(IJFi}8UVRVYwb@@FxpzWdTpu0OAm%5A zE}#n4+|y?1)D`JffTL2q(sH(t-i9d}+WyNU{hg2cSfHd+;K*S<@vZe|oXZ`c3`&mX z#=@!e0~_gR`hDRm)1Yff?=b1G!8}|3?&an2h2T@~HtSHlQF6e$SOGpT?7%@nZo4=@ zMVq2?VbpD)17oT*XhFNiZbW6CQvQ}+DN6>0yw`O&9+3Gq%+bB)UAAQFb@Nmn(sM7r z8B8ZXoO2~%WU)(cY0Q$<-1uZVn%fO9fP=SR1TGAc!(bY;2Oe4<6~5suHH6P_a$YFZ<+H|KuBC31IpvQ?0uT=wn5U0Bak-QJN%$avQ9!fO`w;xzTg7RaHKaOez1!dGW)5PvtN&j^r=GvbV$w zWgDnai@;zP(=XvlJNx38vk0U?yuF%K}fRRQqx`D{&q8Wa(i zjYz}A8ou{C*sXVg-4!u=Mp*3B^L+pt6OGfoxr|MmDx;V{BbJ{%BA_W%GxE^4CjafBy zqkoQ%vJQu`_RbqmpF#VQ-Y{}TVW({X+5jxb1|#1VHF(+6S;7cmW?Y)0xBw)%TcfI! zzFNDMy<53M`Vv4FGd)5ePe+&Bg#-M{H5)zna0NW_3qoyHyQPM{O2&TXS4S#%mbLbe16g3sWCjS@+~S}jR&J$F&}4(7uT!-v zO}+~mgXT91|Bei1-xzeAWYOy!AIxaljg}mx?4E^Y7}+Qb6ewIqc$s%I-y?IE>FJXJ z`7y}G_qB5E-U}20je>^vmiy@s3RSFkXW;_d(W4yqZl&uDCW>@kH>6Kc*k}L`GJdIk z2h`{;X&Za?SE;ssr0mbXc$DbY(DK(DPU`j`%UprXUI|qbW8^3Q_8_6POq*um=%NUP z3CX$jg_<93jc>W+ z*J&QN7wd;Mg<6WGB1qoovW<|ia%X~BL_zbgO&=CW*JmLZbDuIUaS$A_)^?-q3Ao&S z(J&bC1LjSD!Vblv3`^mGs}*^QKn3#@Po)`GJsQB`u=(h-qzSofMnp~e2f;c$M?qX= z_S9uebZd-+5oJLIT4m(; z4$k#>!-$eI13ka7C!R5{$7<%hU{2$%*{V$0T1*2xWLO`5===$iZv9>gFW=Ez+}#*n zBuExr>oPQ)&CkQ>s=aZ&N=X*Y^K3D^DM1}%h(GFo@s9pTYlWJO?b*XH?cTE4FRu{> zfy~@OnE+cA-y4U_qod^qu8*y`;p#_zF%_@X(!2;ZGZn6{t@?gU`t4K-t8j*~RazIb zbp=n+ZI8>;zr7;a35I#e25X8HTz6Yj8R36Uz+tJC#Fi$xejhSBA#u*FZ{&<-wt;%5 z-MX#{%2hKQ%yyzj%E~9q-~Fir6?b_9el4ZH4 z)W?+!W(`=BFR}N830l>Sq5AWU)7({V+A7rTNav6GvmN4QvpKh*eXN!J;IP1wqDt(w z3_v&fw(={V`X`x;5>$J)@=Ags<<+VPh`D`EBr|9xP_?>Q{A zY!l-kZi*M%djpNf2zVkQ;|Na)oDX?Rz!+-;!GM&^KAkCN+%gkVgy1pBgQ|z16Qc0^ zC&kXuHe)6xbsBD6d?AmZzFRMjmoJ3WfC}oKEE~ho zSLvrqiW{LE!QHvaJz8rlNL7}z?6uHlTgC8YUc{T;Y|OVaaPla~+;R8tKzbU5=X*Nm zxOw)ETc1ZDf;BGguEddOU*Wa(s7a(Bh#?I z!YCn86U?L%&Gj0pef%@x0kt1`w_`s_nI(H|lI#RoZC7=p?!;sQht=G*@h5lNHHb5d zu}4OSeT9cdQNG8E9|C@tfcLQV#z&eLbCHBo_q(+M0w!wY_wTTi4emt*e0Ua>P_&_V zY&406gM*ZzoP^k?^V7^(=y(4&k-Sfw>Bu5X2DwnCV<>YARf|#=`jzcAN4iFzLqIRQ zQy6xk4Yl9+y8d#r=kR#Azx%1K8#S=)v;Hsz-5cKYg8|`iyk=Z%EUQL7xtnF496rTv z`KE~yM(xTCtqd{y;V}EHvAo$qF3s6OJOoz~THscHCu_7h?D3%4tZ2uOj#f(<=+lcf z7hKGGy?g)&K&C21g)eU29)L;tDp_ArR6kMcM>eQzfrjl(^br;$L&w;ulJu?9=j=Lqt;wEKh!^?@Bkt`q0TnmzkJLuK@P z8gYn5blp!vkGJBPtLzjapeJexhU>7nPCW{iubl<&%tO;YT$Jy`|0X&La z6eB#W5#~Q%AU#5F=Fgb=i5zd#-kuc*>FVlA93(JhPLhrZWR(sl3}H&>FDW@#WVlX&UgA1 zqe@||q=SeF25spR@5KrW_rl_1O?A3}`XEDurQL@(F%{6KWM95~$b7#%HB@P#Ujl1P z*TK5>7Pq@8*!Nd$=}Aei1jwXh()4fS4>Y8v44lcXbKmb;MLODm+npxc>9!Qq(drQ~ z2w*C>OivQpIcBWOEL>JPuUL65nV$F+G2sq@ZDjy;iC(eP0Lh!P-f>T-&xhUup7yxd zgdv0vc#J7{aG^H`zMLfpAU4N+4t}zzjHbZ;;)NjmLp)-oEH~5Aur%j2=jOC0=>Cgn zp-^WtaPVTS{KUI;wh^`IM(Wnq#YW2W@BB7npy1B7ynI#_3mng8g$;W@A@qF?=nSlc zzEZ8WA>T5~?GM75e{#)L>eo42Wo4!0Fq$g>I$CJG$6G~>)D~0a*u0O6iRhXRTh%G- zb02D7Dgt*m5;F2@rs>I{7-t2AHnx_U@87#y9qK9K{~9^}dC|0r@h0nN^b zxv8ejyRo#;z0`KU)Y{8c%e{bsKjuj1HPY~9(SVC^w@~+0^RWf=mzAS_f!Mb#yCuPy zmwp^9uqNe;ATct+ZFLB|iKg^?$Fl}bnNb{@$7dq6zuRvK7qf2X565MZ>hV}OXo~oN zT>Uh;0RCkR!)vO}%WnDqDPV$?6dU^D_{ma?V_=z~Z9{#eb}gE;fygH-j;I3AEd5Rg z%|yBM)pYe+PcCV#s#w-$m}#_I&;Y><<<1Rya9iFvvU=6`PL6%dT0Ns34dR$^4dZJDDVc`U5-DK|WdD1c4USD`fx2QEnGDSqEb(j5?1= zJt$MTXxIC7BNi3}%`gQ1?KCVe*wRQr{~fl7Mbu_4I#xAkXylde3#cmS^@G^uNEX8Q zxW5<@fA-42k0#}bThdwR!2eGkp6r9X`Xc)df2#8r1-ZYTIhczc(72$Lw}^UYp!=}A zPt`5UJr-m7U%PVZqW71R9`lIavwAO z^R?5SM^Fz=W}i0oW0Te>e-}x9Ql|LNf3J6)G>DKM5naXWxD5iL{xi=QpoyB+0P+ac zpwQ4*XgJ<8NQ2Wsy1GCb3TOdU#S!v44OG(0{b#@UpVnH07YCBltj_X>r#dl2e1%aU zI?Og%AIuP6-OMYBZuSl61VwR~>g-e(cIE1MPhEpG`GmuqkI(KZ6U5xrtVX_F8MgR` z=5$|e#k*gfcD?K~AmVp(qG`sxf_cx$%R5tPc5rZT*p6?7gA&#rir0l-)W{ImS!cU0 zhs$pFjn!mk;<_Fbw`~@Gz?JO+$Qe~X-&wNT^`Q7rmc7}}>8hf-BM1-kNm>62Xhy|( zJI;_$g@3vkmLIB+eww3DUqfAGKFQ3IcK2@|QBVxgN!xC&%sB1(WPBd_V3LVK&P~4F z?=D6*iCr>NDi(YpIgN;#xUUpek>a ztKA+g&qp3DaH|H8wpMW@nwPfP#?3x(?N2Y85r|$L+?s-7X~XLr4P~)VA`4ifbE)vL zpFDdt(kfe@KY(+dVu}X_juYEf|84R`_W@9lYp(HuZ+Tl8GpKVLjH89rWE zSg>>aqETT=L0VH|M1n@dI}tNqX`gpN@CEt+WKw1#*Zl6660cv!sP(*hpm*aMP0=+v zu0>kFI*qI6X<+d6F%n9&|3iG_&GOPLkUiZuZ6ZL%A#nr$Q0C@3;1^5wUu!q>OX41p z^;dl{ggoqRHBb*-u67>3tp+u-%2QCwQ6U1G=fz^cGsB}b`onJ8B2YtB{_1%*ZEmdugVTfCuEVM|5q3e`%|yQKVM+pQXJ z3fXb5Rx-k~I(MqhqQN0<*`__kZ_j|5a&s3JP-h|$*!1$ZUGHNN)pb1?Jyuz?`RBC+3R6OuSX#u`9ANsUWyY9GQ#wLj zd(3gv`@*1HgN#$1rNW*GFwE9EMgwmN4|XJ&eF~|b9{H{9?KuJmMPg2JN}c^if@&Sa z9`_PdE&J8jLr`YuP8`iMoSUg;b{ZhAKJdq1nc+Iaoh|+m7#0=>D0ey5y6sLJEsQ+% zUe=9f;|wS5a~7pZ3TSnofd-Bo%tYof{LU<+f1k`q1_>Le3Ma9uI#Hl!{0Zton)@lW zcc^dKH}x|A1Z_}7H4a%V>(A;;vTCqo_Mw!$Y%;<1OrHEIiFKhYx&}sb7cGq-sE8LF z#yo<@AtGWJR`z31EB-t@Tgu%0Hs$?tC`b4H)o!##A{QSxlL17r*(*Kq{XbpCdd*x; zn4|gFYMr}Rx+s)f7SlzC>eN|GzUe@M5`{vA;D5C_M#Lk&>CFI>axGK)w8xz<#Z4#* za=>}9+N_^(gzD|)BGflMT;609>zW(ruuEQABgzZXynlAEFhHdkbVdvs~ zFTQ{qZb?Z=8*r$>>!akt-UPCR4p=?8R>{$B1)X`{uU`$g-qQ%lrOA~(g#0`SEq;l) z@AZI)7n^~A3}cZ5^Kr~nAx-_LGf}oU)m6MML<%qHZI^=n}s789#q%6!HoNS%Fk>7QOE{v2uKUe3&&J_JArN6_lOWBZAu}m8dZ^>HbT%P!u8X>98?6l<*tI=g z^64=0?ua;rp)WQVMeMzs_)kMnqZP@6P1Dn^IJ)a=-m8d#qQ?U(`_?u}JU&uV@LAaV zw-O+!mYlRb7y4PYDu-`o!412^=nR%wZxNTr1Jkg;IvCc?S5QKNB#7qcB#cICN5lKx znTqG69mCpuT7Mnm8xhxpu`|5hj%sWsZ>yhGR$TqStj0)#zpIE_D|YggJ<3{#@xobSk>geZ)YJ*A5fmc zdREher3=)~^%W~jm5cT??Ci=xlqLZz8Fe}ww8zPUdV1-PUb-n@Gis2zI_yOPX0Bvf zgZo!&iNMEHuLMElyzXqMLzfV{p87PYEBCKEa2?YGI&9$Fv}>-h@dG7uk7;v4n_d$& zKJAa9DpXXjprIAprFh;e?kROYajbb{9OcyrD9YP=;t@Od$%Z#7W?)DNQ0iY(jcVMd z-{~SqCgWe~MMOn2HR1?$9d;+a=&k7CvKf_+b5uF>;gQB zLqI@JQ?sukz5HHC+hBuMAo7G^Pi%Bp3O8~VU(m;7SEq$C`z;kvOAn(|E<^q8sev3q zkciTHp$V$`3c^FiN+-jAcP$O@K0izKuN~Sm5evs8zjwTV3hk2m4qe zQn}yEqqie3ymRrpfv%}hWrg8ERH%&*7Ck|RQ^|A1Oq-Z|om!=6M(9lYkVKn>H{}G} zZa*lvDU;=*uqc-@wI=n#@{V|r&dGsp&ck_P;@$ml`0fU6zcm_*$7a^uhVqo0fQhBLuJuhO@%Q{-s z{=|qMvU_XuI3mu~w9J<*cNnxC8kV}8q*;C$$G zNo}OEtxAi5DKS>+>krk1M#ctbEGwP~w}kj@@QHgNL!dBmF*fb0&Yp1=T6w0XZ*0dr zGQK1Q_v+SZWWwnFUhPAB>jAh6sO-qf#?q)p`G?|ls}48Dh&D3DY|>z2GbGm>ZG4b* zsYgbvE;PrTp%)f*(HR6%g4E}pbQi)kxz<6SI2;QxK2KLz88hdQrw*|ITp>3r7bV(_|aitlXH2-_RoeeuxX~u}ge;oLj8nX}y&2aUi zgi-RPo6m6RSnty1=@$V}Yr&~6KcxKOB^t#{&N75vzs0>7Ci0xBm#L`m3WgZ=aQ3TM z&ZfupaARRH%14L?OG`CW_sCj9AsNtuTQnJ*gnz%@dw;|_UtQPzNDR(|{rQ@f^y;(< zt`P}#8R#Rxn5&7EiMR|lC#`p%S ziuQc)N8lT&S0VA1QJ8HlnGSs;RuZ@M9#yB&%Wyvqp7pTfql6jB=1MLll$Clc6G^__ zdPwKXCf?!_d(2NMar!JU4g|ZBnZcO`{i&qwV;Q1lc$n!uIAjYbutRee7ccWB{&3&p zLk0HCyYmP~P@BT7^<9`$9{BlIcvV3+KsGjrR1Tha?-0GlsB%o>XYXGsYP^tlOX}qfYyhcc)FHRmeD#Vg^xg6f4fa`0WxSU2sIt-IVP=o{ zmL?W@&D$f4uam`hwFPN*yF-)Zi_=AoOxRCwJ{r~=p_B5Qp5ESog`MWGHh2#Q{Sgd2 zDXmDLO3b0J@Zd>fPeYmIpnmbh>ZNxwsv6SJaZ{K?svu0z+a+3Xt}C5Ts;zPDs_P zN9~N$k!-2+Fok-x-fE`G^_llkhw>!yDy_sQ4fQ&Fm`R6R3c&m^9#)u*B_d$$KkTS{ z|7ht8%wLf(u@#nD*_wQ{**>9-Yoq4Jw)SrrXHrQjeKWUx=cikB59yz7^X-C@%lJ&M zc-&S5LaI?rT~hLU2s899FcW2zULj0Cz#-wp!-;TSm?8P?~_ zbx~Ct%&kDp_)$Vrz3fZD_shh*OuGbT#WEGyXef6zQK62B8pDuDc-UodICfJ0NL+yi zuD~0EFX`^+kKWosX?{?#&`6?*h^@1i4!*OgBAQj+W?+oN+5Y};i)V8)=L+^cfgT6* z>w*Wq7By%wWBQ$y}BKhXakL%e2jl3 zPM%hYkkG?`YB{+e*9s;%n2-G6vI$nbbKl(o)zL6gi15A1f;exomnTQQ_E?c7rPD*~ zg#FHZ2F*&X?mLveK;yqc&J_#j=H?Hwo;YKA-czc9L;Q$y5A4q3btvrSC^nzDddhuR zt-lJJx^>8VkfI~4z$=YqWPlrcj}6cL_?_x*FZtJrmN*7AtYkWbM_nAmvvT@Tlf z8-&Hp>mCEO&LA)wDi%nYbQ$-pP$Hc_fNGdtfI%RkOdP0FWJ02S{pxnYSq8EdT@uD7 zC8c-htlqHY-{h(2owmXJipF-Z`lodYU%5lCCm=#UA9F9L> z)RmyC!@PT18F1=~w_nj-SqxlkqUL!d`uKXQKw3+yD|7XuSKOZi8h0+tcm9LF|7P79 zh41Ntw{I52s4pq$@S4&UiMRz<0W>5hGto@Zf%^MJ+Bqc|Yb)<{ao=}VjO@unMEUM? z0(iz&E*l+z9ntM6d(&y13{fulzoM==vRB!1+835<;aR#k*eW7K&c{J@NYBG}*yvtp zRDE-vbamIDXG1q;i(J|myn{EQ!^BQDjW|qSB#E!5R}q9(7XtNTl~*Ul5H@)&l4ftX zm1e8ks7ZVVM$%l13QU{R8Mq5u`Eqeh&njIOBqSQD@w$2mJ-M{lpgS|8F{|U5exd>^ z-Ho8UEy*65HiPaV&y@<@stLwY*)vNmx%N}bcMaj!Hle-KZWEOsu|N(`h@|GbNRm++ zV6^z$7fWx~zP?C)mDW7gR$J*(`c=oZ^O3BO0h8_sf?^;zq;~?|)VGmIgq;>9LuE%p z%99?v1%1jtLzScz6T|JXiXi80O0_eGfZ3k?5swk&<7FP~AV;Utu!I`P@ zJS?3BxtSEt7vaa*MQ&aZv-)I?3S?OqQ=T$+woCoU`T^B`MAI~sW(Wu{ad{pZjCO2X zgm@A9-}s^$PggJ}@ByXd!5zjrE>W=E&RCy%Z1QicmirVaA^<6wKjproY#xOVKkr=C zK>uCxg;7xLH|5&OIL6gN#Q0SV=(lgFVE{BY`0<3*3yG$A;K+tFlg0^nc88$ll50EE zjTcoD@Y-t>;xz7;ZgmGEUsmOq=Q&u{<~~lbVC577cX|7E{TX54E?Tv_pr_^+2JPB! zj^^2~p{bc|NJP%+58ySqb{43C z{br#0ISnT%zVovG!z^yZIrQte$%~h&3iwg0G{}sf1m+Q&uFm#2REWnO_@!1ZM+CR; zf8I^^eVWd9`d-2L?dO*hNfXB28K`ueZ=8K(w(;0zjXCak;5LXqn_{ERMNu!#?@DdO7*8Ob{&JJWZ7Cc zArAvSdp^f=)&gb4#nq?3=bMa@Pch$r3E6fGPgU*Y!I~SZI=Qv$c{{R!uo9=K z1W)UrIUtTrk$ls?Mp92<_|@FSezkoSDsjMC>?TQHu2ou5u{0(uI70Bm+27dq)f*w% zKx#S!G|??J_MoBi_uXow)sZk~)Mwztr(~2c!@(ckip5@Lt2JK1)5Qb(4o(_Y-;7?5 zQ>lyS-bt7U)t4?}e$^3`Oib9J8_MITUxjS0)NPYmizm_8Xy!@TtZH(9PE6^K8THW> zw~zaociK(ab6aARc|nIsK+NJ_8UKRMQKO!fW7Nj6NAXE7oGzwvr)b;(Dq(NGb`xgP zVX?g`L?do5YWQiZso8+Qgh3NNUTXV(ZAH5Ld;_!bsX5DcyfvY^4+RJ!?_l#8BKU$Y z;@%)L;iR)%r$m0)p*dW&<Em^Kl+1PbGe*95Qz0{h)%M&}N!R{FO{dx>Q|5L< zzbs$p=CXYaMzr zU;%a*F*%Ln+XFu1QvzV2>F?z=C|>S^>X0a++iY(MSD)`=J&9}3_bNA?okGR?E;x_b z1VdoZyIkk(Nc#7{=G|EShjQ~t4L)b#zVB%6cAw3Rt$HSvOsDb_ZdB9KJRIA8Pj(s}zc(H{(jGcn2q6tnQ-H#-7Dk z?V3<32M2UBCOzt^c-Vv7I_l1ZWHWpvP0r4wF6K}`?K`DB7~<@~m2unijBbvaC#=0k z+8qzsPn)2Nj4dIpaW(KWBq>QXhH2I;*U{EX9sX{OL`gM){rbYG|Me+e57E!mZk-IP z=)=SPSbLdz^hd^pvyA=MpQ5zYxOvsGW+ye$kFoUFE7jG~YN|`e1#1KB@+qdnTO~gS z_r;FfInUG;91cc3PU{m}B{kSw7(2YGBsIFDrS(OrVNtss^RYO5(?4b7n%B)ND%y>o z6!$c6d*TjbcpOK5vsBdAu)9e`vGUzp!dYc;OTJWMNB2spM=4S=ZArSN0S_RV4SP3> zQ38;pJ^#vRcE*0&sn4Aef(d--(SCXRA8l)Phs!KhXXwkGNEt76c*|x2F^8R$p*d3_ zp*jW<5>k6R)Jqi?s4qCrtyJKqyn5w&N}uOdE~_z`GZQb7_)ah_2s|vAnPk2$Z?@v7 zo!*)d(>>q)d6BBTUc&gIc*^StX|cCjza;w^^2szge=$ zPSX$Ks`sN$)Q*NRKWCppdyD(>gy5vc|6Q2OZtavR+jOe~3f$ueq)p*jHNJ0);@S-9 z#U|2PLtHuOF!*ER=BB}r-7u*!dSQyg!S5^#9M&@NUp|&KRquxwz0^cg*zWnRX{5`* zAxo-Mmg1XcEw_`#(!ad@E`;a(K#Dz-h=Ajkk@$4=!+BCri2k9i&bw`mjYAOq-&NNH za<3~K@n&56=G0gpTcaGC`sC-pGnw64J6RaZgc@mYccw8^tfgS0z}2RE^4Vzb)WbNa z3%1gnLMO3IU1!96{f1J}m78?h`Q}!MLK6>~l{u|;JV;8_&O?MH8AFAKcmqN>t8Qtb zpuql&+Yol$_R>_QR&}lCXW9BnUhTA$yG2Hspo(o!F)^u!XT3`rtZ5uObDDy2&hrl| z65F0jWX!odjSYf&n2>IHQtrh3b)Hyn!xktgg4EH@II%2t5edYVRZ^wilV_KwR?!!z z-grCuE2vOCHH*8CMnycI4!3?4C`ZQz^L|^e*h7| zugk9y%dpA#rfW`RhYm26gkfwCRJOy|)0z`UYY)?6Ow=T=Pez_F-^OM6T^dco)QJlu1L5H;(|ZRe{| zC0VpBtrjF3+0Xt&5vs@28oQ4k(w6j_(M(WgdI)78z-I$5AIOtB+RZ zaVIIHZp^eF{e*e3Y6pTHRBI@wx*+q%mJL#c|N8Par)-j0Hy7W%fTy2E%`f@6K#j}e z8r_umT;wLn^UVm%XPN`yh)vn5N6iU&f1 z=O<(}V>E`r&0))-NqE^BtKBY{s|n8(-O`ol2N+dSOJmuRj4m>val|(v@~YjgRcxx# zq3IO9c+*@(w`H~*#-aU%`kLpnw$R01Z~w}{{?CgQOF)yk**KTetQOxNuQsAy);BjK z)2w|XU_B_zeNL2*RB1YP?A6ti>1%}3=%8;pIIhuufJHP=+&F=i@&@ZeWC8LQ+&Ks$ zUDXfeQ#*u;1}||oc(~+~agV(37u&Pn>kdpU6-l0tx^1DrKNY#QR5# z*5fVxW_9r<=K$)~?v+`Nc1@s`LJ=xBlab2xPQ7@wxUN9`yx7CpYB7xU6c3Bd7nhyp zVUH+cH}hW=^#Ak1=GlG0)<$Nr?KD&iYte3 zL}fRp*<1PwnPz8IwP$L?m$_9eVU!S3$DZWTHs@bYw|gxV5VKA8&s2)`w7EvDf%E}6=$GGe0Jz?caKNLh?zM`e51*| zHk=YCOOo4nR*to zKYBx}UfUAnWh0ko4rbD=p``?dN8e2tc5A|rEuk={C#ig7oo*5ID#p4{MG!BC#wMAl zLXITCbfi#+&nbY1?H#7!S5<(*A0sttQ~u_MmsM4@qS1Xry-}sjeV-uJZ&!6nQ~WikyT&zrN1fy zCA!C$h;4(W-itV*Cl%My^x86_>)wz21}Cy0(99oX}uegNouqkg22?f zUHN|JO@vnw=KitUy7P9P_zU}5UcS_v@g?v$vO9) z``i=v{r?@~3`b_6;G=GVToUR={60RSRY0sef%!cRuD!Nu;-q1MX6g@`wd z@98(&Rc0Gr+k$U1%>T-E&d4G6O|%KIhVW$abF+YZ*h*$?2OO} z7qp=DvgLcR$Hp11Wg%c&`0Ju(t9r)rzChhVZnpjKfeGbg9q(o((U^DUTP2|yyi!^LlNuGf(FJjPOkmkqV7+=zhSie zvCAMNcblsd3y%2zPKE#Sb+tb*KAf?oucrN{gXHe#Ae%YdM2&xJTZhL#b=)c3a^)XW;@XSz)Y3B1R+}iU6DXo6`cJ@)U5P3v0w*|OnF0QqkOa0Z)cs4zK z96j9%xeS*OiJTDV{eO7GP5Qt=-A(1JuF)nxmQDZDXJbVGa&6Un{Ys-u0x%P3Za)Nl z)~1`o2ha$=2c&f7(-my5VRg<&Kjczg+cbW*0VEqA6?ZV2ILtA4cMFs*3{=J~W>-A$ zw!@1tELRN^Jw5^^uHlD$JS8N5^T?^62l4Rp(BIjIXDU4oyteXg^1Eg+TJuYfYGENHY zGs$QM^R^XWtK0Rma)zqhWSkwIIq$)qqAEhbh-KY@AN_kFx4O@5hLK-_t%B_ZlDJ1v zA+o#&zBuLY_5;5Y1Xi<#FVOYL)EjnTQ|mNln%_;svPN4%^?Ned_ zi@|l$6s)ZBQCrR*0kQ=F9zlZ&j4Ji{Z4Z;~LZdtPo7b<=-#A5JyKj3roO3zzR+;~8 z;5bDD8Z#7t&ykB~;q8$asS}~Sr_{CZ{&PPe;@a*~*P;1j>Zfe{m|n~J>x!Qz?HChg zckmwnlU?aG#x=@XTL7LGv+Fp$xxVZHq@%Dmgj^vEhlO1(5b?7E2EIuWEbI)&U=g)!=&kEL;i zwR_x#3RW6q)Zu_j6Su(ozH})f{T2|c;_}wxMIac4sQoxN+K=LF4+X8J|MsLJ!xd~% zlamWKv4P9M>DV+BDm36_Astv2j$lKIV>PFnuCR;-oNa;^Xs!`s-79L1+CD#N#Kf$B zpbtYmD&SwoHVq17uOHAm;7AT=yc7VcR{NFl)d3 zPqf8`17z7B()H0(vHNSbsBtpUdVoZ;LT12gOW``YRXTUVpZ%o|gA}ksa^kXRnxBBcK zZZ(GT9v?yt^6>*pWR`^bH!P9%&BCh|<*{c#>j&xNvB2$NkVrP4->SA-;YY)Xpw0sJ zQh-OGR*P1^S`~DE4|hOFWu>ev>B3tQi<3os)2plL_Ac?g=K7s3Pol@x^Uaa$NLJ&a zHU(J4IndR4ggS6itbrmZ;!s-t@>0J)Bcji3Z-y)GTYxSh1~;b&lC`okM)jq|xnybX z{+O)T+*7MFsP<%)b(-@tNS@QxHMAA0#BB4uE<)r7y@f>#sRw^d<^DUTIHQKs<4NNE zwlJD;8%?u4YNDbdhDM=#4nF2=sk^9sul>eZM6{GGnjRu}Gb68GDx<9VNSGnzv9p`d z90P{I%2T`u9H^HVJFCdT`iKUCN_)|klTv*oF`LN~06pRuLnJ7|uD~bw`TzolOxoJ5 z2*B5kdLigdT?Tu(8iUwf0_Q8ZTu#vBw;#eb0IFZXqW0RMb5z~KKLKS+kp1W#EMu-< za*n_VJBnx`Nu|`_r*rwe;wfZI@VQ<9YD)&t-s&yOP+NrceGp*N{V*G1BCQXWL=Cvs zSKt;Z{+2n!5Ol93A;r>(-8=KRv_j zs7-3xlx*)ia#g2ist{(!&18@I(Q!fq1dj}aGwtN^t}cm~oMEWcUfvR{C`C9u*5GlP zhuP^_v2Mr5v-OrtYcI*pb@0_psJMxOxL*mRIaa1+jgu?YAc0 zX^cZKEbC#4)w1S{ybsQVW#yU)Z+`8Ld;mlILUwkvu9lAE&tSI{j40$j*kKW|yWn<} zWIv5+b-vBGX>>YE@&DnF|8ecgU5q?uK?wbiF~A?N$lt$caztJEfHz&sT(Q5S>Ze*_ zda4~b(%j_6#E41(?{ld#SZS$goZ~dK(Zm><^-P<3w|%Ii7G za=F9t)RP4v@qzcz?@M)8m1(il^4+ME_8rEOn2r5|Txo2V3<4lhkp3_XsT7f7u>Nm4m?l*d1krudsOaV2zxVHH-opCb6`aHA z9sRGjZHfkOdy<~kT=A!L{J*~SO2SRfEKMR8WCy-6O}D5|XpYz zBpN@8q?!qNu$YMSlQ~sQt}I+ zzF%mzPU_tKS?D|Xx`K-h$j|h?rSm8$tUUi((ZNY!Ir`sV<8u`Eq(X{*X@%v!R>_Nu zk&uuGZ)=NxoJYx7s9M>7WjZfO`5%)A5_9z+cR% zU*=>6AMNZR1n?Lo&CJYVX%>kZfJhYUQK<{EN2}uPd1jtUsTjbF#gE46UV~@oA=#wv z**#mbGo#MSt6JhzEPhR|W;+XuQOZ|)4hF{q@<;9mHJ^1?UUWYHAa`w-zN57lv>um4 z#?WZaE^64wXJ-a9fxQGCHigx`kOE#6J|%>^*k-dOq6M`lAG1|6Lq`e}dfwiG6ro~E zDNmV_iHWIVe^VN0C8`6-;|L9=%pOWk;ojh|uxOCV_dpO(^nxm0y%LRPP}l3-7?g3W zRvFG?tu_D@dr-18~2!vt->WpvM$ z87$H*t(U3rs^m94Ku9unSX+(O_~K%}oe`6S%krzS=K5s%DFXw;Y+vKyVGpzZpE~j zjB^j#k6xO;;G)e%`!&p!i&pA!w?DeX;DM9@v(aop$6)+|i?O0OXK`SB|Yk;HPkW7aVl zPeDO1+4ATR&`f~xLo$At8KWxqc^S;q}|A#K5XHtc;mW{BeuRvqYqUu0w-%{Sx z?sVGb;@G&^9<`A$k;+R3fw_6^eQ~mAPgKTkKC5mYdce@&;NaLeYf{(S{v-jI6eG}V zU`e%&ZQ1Pg;=I>f9r!sKJ02%penLdh33F_REnw35DaFpns9BsrUu=49Pk*Rz%?tga zdm25y3&HF{R$>dBi*Rry_knJhR;W61uD&%`F##$s6d&w(lzHdOJ9=tGoa>dxjN4J) z`yUb!7`xIg;|!Op1s_ z`vj`#L+Mhk2+jJV5pzs+dEK^J`gM@c^EZ^jeqEPzQ0jM^lzj}27@bEm*44TDH&zYR zCOqq|NrEQ&&6luJvAcao0Wo_bS7oJLT0YNKN*L2|QVh6ZguG5gF-UO7C({ zjf}F~SpZ&?^i=es#u&Y+KKo@>qNp_4B&dKY<3hKHx$$DD+n z7{_7CfY+@g!Iq>6LY@sdBs0b=TVE!>50k!*4XU0jPrxC{Y1YTE0r zf*rcN*zPO8-vd@%KZBURbtP^T;_9cH%*D zuS>YG>Am0h{}iO~Rb=)?^BNxKtB=p;^DASw2k#2-C?wL0R&YAkRd*_xErn4^h*24<>VXd^t|U@&j( zMms(EWufxtlDGbT{bj+f2NFKn9jVux1zYF96$a|#@6MbBK(FN+FSH3^jiBLTE7zcb z&ousik~%j7r{^6)ydR4MXUREdJTI>uV>0-YG~LhB^N01>lW!lrP<&fD_+G@yG!aIKgF~sU ztvxobc1xK0R$wG93b;&s4~;8rzEIpsW+Z6aW~qNJ)X~fgqlstK_SW`+K`FFu8*ho` z@>%Z}TPE=zR${UqwT20x*IkFthAs!}cxzvf5(XE&Yi4R`(!$yf336ZHtSwPS8>4So zdV1I|4Cl%aPXnnFxi=ojexbS;7;p(BM$mb;471ebfTC^hgJY0y_CB}@wru=1J^J_| z7B6LQ@DPf5m2o=^)pEY+V-}yq8O*OP(BKu%rFrpsXfL}saM~eD?}3Mh&o8|CElUYQ zU2yT`pw}SbQQRB$*t;cU5ZB0%<(5l3U)7EC@ zs)aO#llbN2hVbZ4ACYRgP$@$m%LzeR7%lA018@mEaQfC#RlXJ9_oB4r;iC3 z@mtnRU2eVSiOaa^JzjcP(q$Kg@iTeoG9urDcV7}R;d1&$W4=(iiJ6cHs@S)6Bb6P( zJ{!xO<^j;6dyPs^N->hrc}CP>q~iy2B(0_jBmOWHWykF~^{7oQ9kjt`w*`r~xN{z= zWFKyz`xg0x)7PV|#0a&GX)4na6V1-B`p^_PS@T_Z1lv8w9bCK^YfGhf?FVs|)$L{0 z1vee42l0tL6Sq(4ng+fz344sY28!VQ)OP%)+RtICc^(4;8Lc6ouElRsmnGktUQE67 zdG!$sw%!)GT`*;Q`Ce3eLSViJ)sQ5C;^DWA> z%V>Tc`q;Cu{&~>8d%ON4(m@fEjQ3e*c`GuLOGCe570tc=E-yjav!|pJ9ZW7KJI`Nj zHZgTAwdU@QtJ#JWR~5bDc+E3bZf7OYL+k=g7P=!?RZCfVVe^y;*Q%l*wMoARC~yF; zjbZJJ<#;?(*QD|3H_QP(oSp;T*gUeVPWYVB>E7(Ln$O+{1|uSU0tKe9*Jc`4i&hL` zE@m4z#rtS)noVm@=NyyNoL9d+%*J|>a9uHhZtHzV2`>q6(v7XhxR0VY96E@I5fFy` zHEi1uNG9}Y8t--Ta}7hESPbe|7<=jDY)il z&;zt`bEPYuk+r3S5?j{%%;|8e`8ZDJdl4?-y}jk`a^2S2EV|XWO|Y>{J&2&2o;-lU zgzMwD`~cVUGw8bA|3XLcNLbI`D_EjX(^Y1^x6Nzf845CAnLtRBFd~VpvV_+n#V(5` zfcCF7dp%!h7I0F&IDAp~-9LN7(}xXF_sKd%OlI{-VLs$+Zv3QTsra;%W)%?2QcJvT$F z(@1qpd7rFoCF*Fmgu-SO14rVz|D&IxzV`1iH29$)3JiGRTy)#;hbfAJ9DYy`pXerh z*D4zQUKc@?XuF=$K^nikcn7@*JZe9xxGScqx*jD3W0OB#mrFsRhS>=u6dxI46D8!o z!?~j*cKv#H`?PcOgp~Vxux_yAoN_7B4nhnbR7o{!64CW^k8Kiv1CcwZNQysqV}dH2 z521ggfr5pI<87Cb7O1^eG~k`OJ`w*4 zzEJo$Zn2&JV1xuuRrW-!F5#uzfn=l?k)I^ZgHDY|Q-;um?Cq zfrKY;lxM2ay@5eNKz_ic#wCO(d#@FGi7YhF1kIpgj*Y;voImYA_!#d=Egr%gNKr*A zyg*4m$5~!kWRu5|+aNp6A&(>Rwk0kHb$ezuqw`+i8z-mWx9&T#btNs+-=o%TEx6`; zLywZoD8VpImC^RM5 z&~?AwP@}lCdl5N*{`SU@dmw0}HXIxh;jUwC0J_rtwJi14@)%-1VWUm ztV^+iXwH(BXlhbgg(WTzH>H;qw$v}~9cz~3dfzs>vlHy3h7bD9<9+Vmj99UG*hP%k zovlDZRyPpCBJQ%u29jdYRTA9dB)?WO#1_fYWvO!4HxdQ! zWR*0tM=6V9y28Rf-n^tIVl|Xq;B3LiI7%0JPQ+b?ua(kex$@x&-x*N4!kX^ioUv!hw^Xoy>^EVCK7h5b}nOf_*sdz?hqJgnL&xMHfMHA+F38 zQpC)?z=o{JY}a)lPaH#BG~SeqKlZ`WG;TwrS(czsXHmh#?hAB;Om^ddG=_-W$N;rM zpSPm*yxYH4B`k zB?$u0G$atI6*|QWHMf88M1<;rD*3oelBl81opQ9nx}-CZ(qbs zff^_7gQ}-0Bg4JlI(CBhmKK-ks%}6Ro<@q0-D=}>CeHzX17Wc_*4-^FmH2`SiYeBD zyiI_O{SH&tbwL{Yc>4ewJMmiaY}g(q(^t~IkA^%a zte9Wx@v`kW%<$Kb)?{n`eLEd`5fd!?`~Rl6DT_@k=FZCpW@{JdSw3o%eHKVTqG znP6#6N8e-De%OjyyZpkcmCxyg_)4=L250;^8v6DA?= z=E76|UXD63cQwrepF$Si2?JAh34MPv>>0%50=YgKFKBSHYWQNX3@4)T|y>A={!DVcp^L|bqBU7C2DZUkA7TWp{%xuSaEwlt3l(gb8eyURI9ccuG%n# zRVsanUeBhgZc&Ng82uc&Ek4xU?;Z-VH(hMqK|W>{`n-#p5&}GYZ>#HZHe&^PN%&x; zu$JoHm?+_KN(2&*7+>1pZHGM+w_FQwAK!JLAD1tB26HG{k?v)Czciy@+{kf1+p=eC z+n-nzM-1Nbn6I?|+AS9tyb>;e3>uW8XBn51rQ zl#;4PJ3Y(gd{=6mp=D+vP_s$ri9%gzYGFi`ai^^?B`hXvlvXY{yTpU;r=dO^@SS*_ zMC*{;rW1?NP#U-6@EFYI$-$)Q(VBQ*AQN5->L3UPQ>SS?t!toCob?09#FBBN$8JeB$2@p&1-2ds3fdMI~}IAw4laS~sWN%R+4Qq+cjj1dMo)n-_>` zyiNWng}F`BZX2f55lt#uwFOb>l?+?9l?}@$a^x4Mdj+jGZtC`)n&t$WNuJGFzBCUFl}xny0AKrc1W^LuG?OFVWUeCDl^s zBNmqxmj5mJ{Du!6Mxv3Zg}{8?b+2iXf0&4?!mE@GGe>0o$_=x^Qy$z;JF#oSkySsN zkmi(LB|5bP2NQc5>K<8#(39ewltX&dJ=b>vT;0 zy@xG|S*Of%SKNh`pA`n-E@~WhK^hnshIsf8?n#=UIHUsJ6r)YxU$rEAC+Ure>9aVJa3w10UjwQ{Las`k0xX*G5KX_&xS zdrR2Huf^7mw#H~o3uwf}SDlgh_<-k;v{Irl$r2I6;DXO^9^YIzSdI<#?tcMk+cI)pFS17Ab$0sIvl%f0V#flUwU_o*v!1r0H?3 za5w&c@mUD-Vv_=MAcyH@pz-QU2NpJ!w!urz`21}%GBGN@4Kq=x3hp1LZKtR|$WG=?r=r(C`o3%2MJQyQ z$)<*m{fe+ttu%QGuq2EP+|LlGU4q#|&qIjW9tQ8B58^Fa@O_PA*8eB1S)~M%u+e>62ySs4$NO>pSFPP2Fcof6Y5f7E=Vo=%%IJG{9gkD1DW26g%VJ{uwQ`zi=ghZYgasuL5-bxP-gbgFm*Mp0Eu5RI%S=>dV8$^ z=PCXdGsTbvExaC&e`^5*vU_oieKPOlCnfy8$OVUyqjj6yVl5pU8pK=x?|sxV?-@O9 zH=_9uQ|WLo%e%PV+KH6rpi9AzT0Wd9%R#kmUO8*<@zXg+HkNgphcC)++Xvt6N%zB*7tF0{*l4YlrsXyzl7n1-Od!} zK{;ZOj7sm=xmJmEf5lz@8ZuV=e%d3wV%nokH*dg7wuy+>_KN{;V=e*?=M7gVbX%F2 z41b{tOo67XaT@;~4g_WisBlxJD^SQpkw<-59jg|3+iE3f4;73AYa*JlGfI#%+hdV( z>#Ye%s3$KO0!yA?lw%Yiau~v@N~o>xNyRfU>Vklb!KlxaH3wSIh8f!W(B&|J?uL5T zkWq1%+FpN=`fSw-_Tb4kenZGLBSHlx?>u%LR0H zopN{3t1*ayVfkK8U!F!=%+|!Hgz;WvX$hhQ?B^?#iC5{^YOo~WY{R~PE0k;Q80cLQ z*nIfCkiVZ(iISc=ZEo;2f;T@I$-+d6S>@jB@JQfM(r^8s{~R@cK=T%+?|`Dv1LL8x z?4Mwy$!;;jiKY~0_~K55fM(osLaXnK1fDTv!AB}q-XPM}S(i}#gL;VwDg%d-(4jaD zWrSn%54Gr~Qy!!NodH`W0@|XV)#4BHjRsQ<;G+moFiFB0XHQZ^gYr^`8iY}@%{ey6 zw}9sKBX4~a=K9Cm+^z~w#PLg41I=^W+7ZV>LPPOg4YG(QfylVZL@7j$?;}eV5Ggcr z%XK~3F-Ek$)LqNN>^}h46&;-_!F$CGh?>#hi?v4s%`X5E6(jIHFCUT&fZIlF4Wj>6G7_I3{?I7 z{H9DGnum9Z8a>05kzYxva;-ytjJnt^PL6y&-MajShkR)WUkJ(w%fLX=5&@u_`>2^?}zNY zm>$k(>%W$%3r5d?O1?Fkq^qWAP{vCx}8i^U3mga&*JrIlh zQQHZ8jyMqDT4Le(2cq0j6n&u=B`&P3kx{t;H7yyzYQryPDRt=+3x6enRGWDy%D&9ITYDY95+9w36~ z3=m8|d`j%`Pt2BOM#TzLnL{YCQO6|E`y@ZR8i@KJYN~aQM3z}uhoo|?F z`EAVQ7#t({@$1^z3J_>H)gEA3s6-w6PVt#Gc(Kk$?niA*RJIk!gfUD(_#P4 z`V7#>Wv0Us% zU6V%%M<)mCbN>{*?|#)w2@L>*=wyHt zOx1@yBl_Y%vkrc~ zLUc!0u<2{C`UhX(rpIWE!;_E0(5FTI*JXN0g7Z0vjFUa?e+lclMF2{JCNG^C?mu9~ ze?v5$J-=h^xhzbW{nsh?Ta)8IKlwfG9b^^#gW})6uv(dSSglQnZt34I>%X9MkMEY^ zUx=qamhsPDcqM^Mb|(`hwC^821HWIKCUD38|9D`xhWoq=dNoswH#)GA?ws6wpa4DS zDrF~>iu>|4DrLk1HI8~f6h$iHn}COuXhKg!yf^aZTvh2$cm`^#BPS;(O&t0P)^{u& z_TpW)Ze`r}T$6->EwM1Ti_jJX$J0IagQKIM7BUeszQbq$h^j6N13|X9@zcl|@Ge*d zwrP~R2K@iL22J=lry#_sLmXS0}j3;dG|liL3tgZb%eI87)g5(Fq(W zq5%rD$8kRYEAVXZ1{N+rU^yur%mNtp@2nq*HsgWqMs&rUn+2FBSMWL?iU5JTr$_6a zlnS|H;j#h=G=+6TYL_NcWyOJZ4U0n_lLTm-50#5`zNyu_DAYLaZ&d|_{nI{}2?u-g zG5I4+O-%r0^X`r3Qtyt&3Wf*T%CCR8K-xv)Ijvvks{&(j+&AhkMwlZeV_qmR0M*Gd z#dcl|kLqf>4QMO|5vz#FNESo(`}D7H2p6Imn@0J#WPXF(6b|^>@OKi_KnObv%4;_9 z3w7KO=|8*qzcx2yu=B>O{+E09q)fk8Z8DCA_==euan(n?@!0os!0N@Z5X`@vlM`Y=^d^Zm$;py8&4kM*_u*T+pZ5K(#R&# z4QIILu;T$cCHZM|)YMvs-Eg3llx4|`I6PPH`Z?1OUDx`ZR9aBunNG^*1|!54AhCb> zLouJI#Cn+~E-Tnwz1ATbU@f{^J{>(3_QNRgxW=lPpg`O`+2!fJ+z$%}c74Pt0Dm-b zeb8z4zRUy+GilYtbB7}8eROznM$?diVp4J z6YPKm`)zhs9T$C;F?$n^5{F%GJVF56PKgKUDII|Iuu)yS2k7(CJmuoIM66k~z&nRE z^@R8fzq?ER=|N{C>n+$Y?+Z1kjVFp400&3m>Y6>uGv-M1!5On9mGZ7FC3O+%WT)Uu^5h$5mePLy(b$UriM`p>XH#W_H_)f0^O`}YuR{CA>fPn z-1%^YUB^aKNaQR}#kTiMg9F}%6gNL!Qw+>mb%7#p1dtvTL9!6BrM^DwQN$bPvEQQD z9y9;No~z{fGvMd?>fvfG{C!;19Yt@>2CK#ODH%W#`QdzIFm(bByE0U&K^!$s z92tYF@3ZM*UGbh~AJ_Dc<#ZkR3!XGfXAz&%1C0DO0*OU*P>qd;eiXw(B-AcPD$GsY z1CT~Rajxc!aM?@wED8tz7uth@X9|y> z$x$eu3;7_M$e-jEIso5Mn+><(fThXOb$MPtlrs0jqoWVSvmOQ5By{r6UP0Uap3PR< z(oz=R|XDPGc1-K}4@a;KQfPgS}5#a|l}uGu{#c)6<6?WLgqMi39Omxb#?rAiRuqt%KVz zQ5Ru){6djcS;f-Qvd_mTC`;$^D~}^Xy&BDQ8^vBy6pb=2J z|5MgW67_mrO7)0n%BW@Cai_$ zowbci>lQM9?BCs{^Xb_N@`J7Hi3Aoy%xtyl)QTW>oXMF?Spi%;_xIB+sSqvFkKW?! zJFHp*a5C7pF*8Z`+%$?A)1PwI#w8sAZ!V+k#T!}bP)6j3MS1Kx3%|JZ{v3pz7SR}o zCfjA<0=l8>WE^|Ccyfbog&KTsSM~*W(eBUAHhOA4E*C~*Om)|E&G&f%nv^3EkLZ;J zA9wf|sa9I3XX7ywQh@uv8wnkN5R?NRDY^+Ygl7}o9dFbb;Bs4y#zvGg1k zd!AqkEUe!iJJ11_k}yE9`i0ueS4IXLM5cCH%k3$`c~3CQLU>pG-k`Wb)v-`3-40bh$SNliW8hB z_*8H#e*-bSz2T>|*q@JY>>#u@rgy$@#ZDeLu~XLbL0^Vxg?+bt6$zpqVoM~vq(|PV zw3v-r`57ttGyNPI(h+9w)W@9xQV4>^UJ)8Pt~3755*+tnF5O}wDT<0htO(L22sKtw zQv-O(^kb}X_PUe^t#O=0R)-xYYURQ&z`nctQ%(y)?}P3ty@gAmbpy8mP1q%Rf#To;Y6?pWkqYhZd-u%qxb|;RE|E=xw`DQ(BM|k zkqcmej~YcT2-W^;ch1Talw`BF1lGO`R93*Rm=O5ua;l;ZimDe8{+|6lqw;EZD$aU| zzpei_FSopV`Q@3F9mA7wN?{k{!6p626*Y~NB_X?IkJPQ0gFgW?@@~ApXSyBZ5%Y%Bhy}w2yD>hKe70`5_{L!XJjra2R_kZ&CJ7f2yHp+jl@85k| z9NMN&h}8YTY=U+z{a9yOHXBb90mOctztcHx4m++9a`V)ZW(*-bup_Uf4hM z%jWPpcRQoig4Ov!r)K<~u0b1`AfiU8fqBvAI}eWMsS%wg-+)9kWoKAY z(SS?FZmr|KWTi#@UFJlibKyn8TcwnvkbC&nd`igy=CnJFX?!^>Yxwg5Cg58(y?cnG zLN~je@!o+-sga;P(=&Sv~y1>&$!(tR7c7LgHjl?AQC% zV+3xcoR9jnhbs56V;Hq-W*XeZdv1;fD4kDdnLv{nc~(HL>#_rVF$*}~N?yQ-b1L9` z^?elb3`KL7N#GXl{+9a$)NEf|U_?L1@*7QtZw>Of4tj#O7q^yE-Kg1s2l6Pe7@*v>Yk!a=P~dR0yT7 zbf#}sqw@h(M$4VoWW;Fm*CN|A|7FMnV)naI-TvwuokHY(gR1#-h;=!r%uZ7V?kX+d zug!;FaFCh;=Fn0;$kJsY@6)^E*2hTBH#0R6r%!C%jyEDkvfg!)6uuhO`C+@hSK;wn zm1nyiN`Vzc_6$L+C%W)gu^+3+W*_P7YLsu z>0=#$!BWV??tEkBN>{{e8H+dt1s2)NIDLT9U_c2^@P?!Er-kef0+Amw`z22I3V(J* z__Pn~H}odf3)Z%}PnBsf8}!yrg+(iw^fh|U%idhs7KZNjakvr>R%Gu?!J^IP>O@a1 z=WlBDdZI-AFg9s{DOdQs=e)Uv=T-xFgqd?AU7okslpwRScRqtgpwE(f@=61Si^Ud< zL&sirvf4JRkNGbvAlNe81c5WK9| zmvpw@o9XLy52IIRlm)~wIuKRAz#+_`zwdXEt1ttP(bat-R|$(+5Ua>xa<3A!1D33Z zGeYdIsKqgrv`_aNPjjI62T3~bx#z1@%Y(v-{%Fm;K=;0Bog(dbM=<>wnbWC4f*UoUL|+QsLXl36q7Z#xOm_yDdP#t@ zJ}ax%avqNQ$r!ffe(+F{HYx6EjY3*P@omc|srSV?DtI0PiS=6ebv@asj8p;IQr4^8 z3V07}SG%>TTuUcwBw|?u%S=Y!l7kxOjmI^N1Juz;IJUXDsOET}k>TTZdyUM}z`|{S zItQw?A>wXu)PD?mT_oly`uP!SL@NjDE7ub}TcB~|j;>Ohk05ezab;KWD$ zxdyaW;1@{;tMz-L6b6YEACr4kGmBT$t@M@NI?Q*K%+ zoFZkVFRl~yOyCWO4{pfnFXqoz z6D5x%!YLpX5fnmhfy5jI=#~KiV&3{~^Pc;|=2t$+*T=?QVjP~ZQS=z*RhB^Vd0`Fb z^g#J6IkBFU2bW(#@2A-9OQA-+0lx6e6Y((Q3&P7w0d}f2+>rhbhmPRQ-Q2Ac*fvCw z3bg6Uc8`wVT2R>`v}=oGbJI)+HTiHE_6ur{Ti*iZj*#6>D%|>7B~i;A&nwPDon_E6 zD!VVTXEF7N01^_+F}IPf6@a% zv-!@4e<@|^jpLXOI3dp(McoP`y-W!dv^0|;Dr59MH^SxO(*!t%lz06g>JDb0JRmYk zox5HcRpQyyMI8a3sIm1>UEt-2c%kd>81GatSB2xG181K8Hs-ykX{STl7E@}1wRdZY zMPQD{1jC=J;&3lpumlOV+Q0oDk^2xD>8)%SlCS0^tNR5B9tRHG1LFHT0&ZvD-6O2b zGo_*xdxRwXx^}4%GBh^~+?dumo|B*hP55mCfKU2m=Xrk_CqM?@TkLl?EypD`P|Y7pu?%KHVeu<)-t3pe3+F?q>?h1~noD5b(ORRxM|1@|}xT1?63wz~g)LEL=0{ zrK*`3qlJ;Y!*~H-@T>$MjMGoO1Gw9V6kS(x{d}hm6mD{7f5;?A0*;p!Z$;<#6YSwMddN$@Si&sQoez)`|AWi51956F?=alBzrhGIPjlDBmNHxudS z*iUzHMPR_IE;e9Z+u+L6PPQ$F#X|N6tSLcM$~s%hOb#CLcNeG3uH>6wAd16k%R2JoN(f$7p{zg^g2TkUVL zOpgEm82bvSEVJ!>K~xZsl9KN3mhJ{Yq!Ezr?nV%lZje$!y1Tnex}+PVB|qYSzPU5= zyLV>pUH`Sz^)UmB_dV}<_u2c|&+}|HFc;GbR$ox7y4CblB@gz>us>EQGouWLxEphd z+bXPnR$?qmdcjf*A1IxFTkt>sZN!1Y*|~X#Z!#PW1f*dItxq2yA_7Tz-zL9yjkSCQ z@%#%ixw|67LrmJ(C0EQR5$9Fus$j0+PolZG-O)9UtDDo3&_IbV_jUkHlY4GSpc8y} za}`n@coTVlz2_IQ`juqHLWuqY$CK(6T%B@5mi>ooeo~=$0e1Ap@Gt~<(lL)I+kZ9h zIFt#1Hbjz!Wl5X_7chkq-5k-S&y@7ZfarC6FV;a^5OCbi4VNaGx!s#SM6NP7o#%YT z7f5sxfUqXtX)U00Q*67kstH2A0O#>@TrglV8jSCGp}S(-okkW^sMDZHEatM~{|HlZ z=bc;dGiSN+Z}O~!y&Z#|4{w7>THBpTvkYe=)lX~sH6m7M!n$t3&`bS{Pl8hm!6L)4 zG%*rfCF*4p^g`U~{jqspAfRnyd>J}s72F%X<`gRCeR=e?jECo&2q&$6V}*%N{@F2; z)9%EJGo)jj5Jb(LlMTADk|m+!{YUgX^gg?U{PlU*>;XFfSlq)A!ONNacH7kT$PEh- zaywcU=8bmjd4G4iy&dlL=TrLg!;LI)_{Yen#9>0PJzh*Q3h79lfT;sOgxYJTgWdC= zqXsK4)isEp&SE0mRfD7n$=C|!P>cSv$r8#>K2#lkkji}O|})%I*^X zosl$y#F&@TRfTN!P*lT{ye(!*)^{BILV|aJKOm@Rd8ft4CbU& z%gCIB4`3ak)a(boVXB0Hz>?^V!9zfI6BmWQ71VeXirs@fx`Ud(k8!y^r1c7ltutsg zTDHj6pk=3#ire#->9t^t2x3SUMSVZN`WiOgoWg6h=JtMzvUw!+f!IW3z(g<7GuQ$)CL^(|ImF>`s~~dPjxo~80Ox&iBS`u1iT*yC=E>0! z>JR)Fqs)~=8-C~KDN!~I&8Bg7&JoS+dlf$mn=2XtRKhzj#b@%a;te<7TGz4D^AshY zHvd5Ln$aw2vVuC|i{afbLQ*45-@9?M^ts$06riQRwMpau9S88sr9!=#_L#WnBmCD< z{Ub#viIpO3QsfyI5k(L-AuOo7S<`+X`is*CTg1MgI!4_$7+A)+ysUbRRmC$paiD+-&^Y z5U`PoAztHk|CLy2v!rzT0ST9qL9-G|-HzDm$7SZ6EwqaWZP|kQ7Q@HKXMqcJ7ja)Y zCd#GX<$*bMDg*i?SxIbyG4>m@($M-YY4$J4Xiu#bL!u1aaNR_r4yZM3kZM1RVx)=NjzoOw_q(Sk19 zR3pFzX}}(c1eOo|!>RLGz%oQaFPRjq<7hdkhN5{KHU|Lw(VNIZ)Z1{_Oa?N2%n3Zf zJD-yQretz}qJ4X-$l!CdEW9&)D38nhr38whfV7Jd3Y3G+ZW1^&M0Y1G4BLk1}yAY1jBMQrsBm~Ztu8#NEUR~=3y=8ydDz#Jq z7*n#<2KfjvD50W3Pd;B=`>O~hrZc#3dN50Hg79=}gbMhoMLwrd?rjg$l{sGRS`XuL zmk!4lkl;HY1r1~7u4yQi3x{+*+3QFZVdx{DveP=TA5r6~GCT(xs&^mTdy-0Wp zHlF+*huN4^V`F0_gCW=(T425qF(Avu?M~`O1FMt)fH*%oCqk`El4?ywSPqaKNn3d1 zD)CG3x42g8|3DyFv^>{d9Af!5lJr|KSfs;`8JTa3wKWX9lvE|cJ=H*qF6N`_U3%G+ z>0V_Gfbc0m3MYIHbd_@P^cu9_$xM0L9LhzrW}8H^7N~mBfxlqfG=3F>9Q=G3aCXQG zUdVsLOD3Z>#R^ypv7l8w076h@7{A9|dDSERdNB03y5|Qmj0+Vim-Q=M2Nxoy9)Mvk zFT$0UE`ve#KRhDw3I3WjbQ1rzu}X=r+e2`pUQ4Ox=8AnpFZa3kL-ja0?qftv+aFK& zxuXcSmLRXJV0St2ygKSAql|X{1}cfS-nUN4nvP%SNvjW*T1u2gQ40XGHcN#4+-M|? zzy)A34~~C1E>>eL3!>Yy!5%iA77wQJtAU0MS(C>T&A!@MR33cbIe{bhp#8MTB z61U^OVPU_Km~4rD>sFN|zI3W*Jb!{>B!)qzc@?8bi3jS8wYb-55GY^;v|}?Nq=M@geuQ+EA-5FP-5A?fQ?l zcdFIa3*RmPapJ4ec$N92%0L*PM}90h1PNR#Y#U z9&lv%;V3+yvMj>rX7QxO{~LdV&jmKr(fOEUd$FlNyTN&Z-t)ZdShYF7=wf$L6wH;( zoiFY6P2{s*rw%iOHZxT6RYotl6xk5rnyCPJVB!X#XT4fBO}MMudXvXz({x?)yvd(> zkLqs$V&*SC4RSk1&?<^iEz;}8G+JA@SgU>L|vI-qo*pi`yih#Gzmil3)*0ykNJ z`+)gQ_lGd-NK7j_L!P?RVmBEq+YBb;Mj>f?nF0Fe4_4 ziX+7PzYZ4EKs($9OFLPwfYou^Hq0B09!X*t85vQm!JRb{ZAa!JFSXy`0)1u7HUt7S za5V>%C#&pIpKLS!*R zeLJBZl?r3zovEUnR^x|gBf*|`2Mv>8loXfnCuPfL{_jzK#0s5m$}cz?;$!{w&G)Ly@nMU@VyaW!?8Xv{nVyl5@HoqOXxIK|`7I4_SU^h04FY1MKcVZtd{{mJ zsrkjWAj z;#=EUL(TvGAOHH9I3A2m#UDUn&iS+D@s}I;?MrZ784iwP#(>cE-)|Ll07|;rc#=5& zS77^3Mk4s&w@to`mYQ0|^w*dD_oT!xQGU61cFq3sMybyE;xiwz>x&913{eRpE(LAr z82YgFp;)aG!(m)ei6Q;wUXZ@D^h%~XK!?8m{f{3!>Wuf13yC+~l$a+8cH$KvglB|4*yqSVV!-=nHk;p!=mWIj=PBv;$DJ&#WqPDAF3?6% zYQ(di|3X-_7I_f=LheA=x2K&y{GlWoD>&guDpm;p=^~+P;)BrIk<`Zzf23a9W4BB# zLMf!U6*+5*0^OLMFJQGIEaUid&Vvszb?fX7B?`5EJ`6F>lKCv-Id&~|Y}u7aJ7t%?1ePVX%JsW9BpEsKX{t7u_G*!$*w6Y_2|_m3<6=(CyVMqZVDbMm>U2JU zbz|Fzrwc0S^o{DiBUx2vj`HQj2-f*(eIWPQ0J^*UOvxX#;YPI_a(FOJAr23hiWv6% zXnR1P_?HcymMWAs$U~v~t#M=#Rm+tUmisX`mK@VFKOe>g>>uxx0lY8wQWKvJc!w1d zA02&d`BCepb^zgz1|-28hff$(;pEaOLdw~4lwhK{iza23oVq!2J8p)BWyL7G+3@fQ z%SCe)q~D`p5rf%nQDB7YhHxOe;VycHteE^0ky>N4t5jpHT?%rl+o;g;cT7RI8+M_m z*^21MO=XDaAhQE@jPW3V@0ch@lS`9plpC(@B(*m^AsCRX0o;RVo{Ad7zUVG1lk1}u zQD~EMnFm8vqz)8nGX1e>`k0fP9a@}&-R;!2_jg`(PJ7jcy^(LB)D`Ji>aSpuykMwi zo6F(ssamd6$K2rzX*1Dk!xu06^VHF@P%k&@9!pq&pkoTQJlU+<*@(x;i);yXrBEab z8X=k_Mp0j25$A`wY4&SEAWcaZx9#2%STuQ^ErYxJCAA4VP?IDe725XN7)UsCUqvJVS&dpSl;Y~R8okC0GI)Xf7ZxCPy=#V8BY^~ln>h2Ncd7pK&eXURnO#}kc) zEl{}(lrJUp)yA)pYI2BdJn`mu^-^`0TD<%@LKz`WCBu@c@h$sa-N)gJ+w}g{L&aSU zGg(9Lcj1Q_s&y0={Q)H5{CvE{iyrhn#aGgGg?$~b`Q`?Ga(hXhxKqSWNa(rLutP3n z?N8ebk|6fQCNJiq3cS&KZZ^(ke#z~ZvLf&?!QyePof=+bzahhFHD}ltOJh)4CSpk_=02nyv+KaJO&eZM2f4 z2D=lu;M5P&bm$2$I%#`iKyEQb4@wK4rLgvSOLg$XZI(thhXkbyRQC(ll+LED5d; zb=mYU<=j8BNoecmcfXN3;H$-;Uz)_-Ui*6A!JPaEkr^g=D{AwwzR>?P;PI@H!?gd2 z(yb*UUN=*7jp637EThH9Bytm^!;Hsn&95NYso;F`&Q61quwh5lU{z0wxDk$+UDUQ% zx1|_O4<*<4O_65Ykt#}sb^;^+`sHzJZVEG^q=Vm3vQIqd=}9`2j4tV@;J=^NJ){l( zal4sZVsv}W@uF#}(G4-|m2=9$l%;>km&@ zgx4!8fck6jjLm*`m&U;4NIgWm$>EJPWZ{|e&Dg$d^*ISOQIjisqN~^83O|qMif!o) zF*1+a14_M9zOg0j1L^RIk6DhJhLnU;RXaEPM}l16D-cSbu>_XWb-w(%f8>Ks95KjH zo#TMU_xPMogqQGqqgEbPNqiaLAIOL;{`V%lK=k_>CWvmFBj zK8(6~k<7&$xuo2422gb9>#C3{Pk~gp@{QPVI?4?pde&E40l*W8jW5(~N#hwkBozE; z*9e+ej2z}F*kS?mIhm3X(u<95fNcA@p2&#Q;NiO^W6K|lHHW69W zG2vHrX{Vj%g%aKhGBoISNB}ChKVVvuYddKGYDH@k!g7eARQ!u!iSTl?tCJm%E;V}- z*Xn`C`jRX6ow|2C7ZK;T$Mq3LM`LX#S0(AP>49GBKf)YdPPjCCOD^7TdR;BgqZt0& zEo1fUvL!RW!;X6|!ga8KI-?h=!=@_X#Vd2oxLa`MbF(GMU^9ek^-PmhikP5|Q45sypG84q zW>+j%qtasZjcGy2!ONc=?xGTm?=w~Lrw^WdI>lkyt-L%bRY|JS{Y=kIzC=|2bv&_r z-`~??xjv;Hcji1XT?FeDCqV;65f)LDdHR0B%hPAQ`98(-uYSICQJXI@pXCtQ9Mp-bnp! z(l1pX+4;6By(&2zHchU*c)YF$C0-R6Fuq^PF}l6I9YR^XfU{a_;FuHkp^kVyH^WR6 zyEmFyGsUD?ndN!0U|z(f-!7KK?~w+G3^~<2pr{^lxp~sE1XvvdfW@7yoNfMcBoMJB zcCug^e(oWLSoUI_gXDM0?q|mnGB`xLqPb4-%r5GD%Qdib`D!ImPwT^tAQwc`pb)P# z$`t$+VGs=3;x%(9bGbSV&6`1vNca%TxnG!CrHGp$&Lo6nL_H7B>1y?nX71;0c&kQ0 z6L^>Z4wF$^3Y@FPjLCOH@j=LYS&svB=qRKjg+ME|4*YmbT=oST4PI8p!b7-ycGK@- z8veZW{3#T+9$Tp{PHHvQ{AWD2J7W}Hp10RdfbS!Go#Iz&rQ;u-`jvmFRIsvsWj119 z1f+O2X|iide8D-VZSR9ZvCWP7RZ9c?s5_s>3RPPs#SVPLxc4GDx$v=62u_J&H&d2r zbiJ1*0>L{vmG|Pa)UEE>`2bTxsE_@!#l_9lz{y$!?;vD`=4vHqzubC3wd&CIlKDu? z$J9yx%&+>D$?bK~=2_!>qw!t*c+Nw`$ds2(Z|A$cE3E{l=+ugny;^o$OAj}Pa$C%q zsf7jH(cpozZks2gbCvwrYF8`#77{M&%!!BxQ~6Wz^;0ybqpOe$Bl3cSY2A{Ekr#Uv z1J`N37s{U1q(p}uHZ8Z|Q=|P%mx4ExZ48vz_ls@@W4Q*c>UNaZK}1t8%3S?a@|0&U z*X2+>cfw8EXLDXUneQaj1y32dp$8+wsTQhJ0PaCJ^6QWBJVNVTtLP(Oe!Ze0R=q6w zmQ7j$Lr_ib<&9a7;zmb;VC-C=`M_AJtkn?qfTrBH%5>87$}6$1bwR~Dv-zN~E?%q< zlXnN3cNBkk0VpP&@3JRNn#CI`#A$5auuAS?=23ASE~$8+#A?;Jq`I>SdY`D@ehK0t zWX#mXWq7}f5?!aYnGrnrgYR|zW&!OuuUtZemX9UY3gW$yxE?I$XzF8?erlSqEiBSh z$eTfGaW+b1)_@16x%cL}e#E@RZ#l2}>7Uwdtzh6*le`iOEaf#H*T_rd&8D|VR=Za1 zrC#&qq4Ho_Opv&G{V~D}8xcKYU+pQc;K7~5Pi>>lop|xFUTg+?=|Iaqqt%kFja334 zhiGD<$GB~rHglcj8D4MQD(or!P#n%x5S;8jeeXVBw)15St-ZQrz}2BD2+fTWw-VFi zTCu{aF6|y~d}U6MUXyd$#mKz0pK~C!f+TGyLq_EH#95N;yNPU)&~3Z}o}wxI?#H3k zkiapjcpe|^a)eq`&zj4{_&K)}Cb_eo*@pg-Pl`{k^5qF}&ALsC#h=OQjzdP)A5i$x07W6Iheiw!Pohv^`)UQ$?rNs;)%)Jiqq?uygd` zwqe>fKN5MPij03dLw8+VwZ8-OivrXjj0}LA#t7d3Fkl={&4GYMyAf&b;#iJGgP5?7iAKG#X688K%i0Z>1@ZV(Wv;Q+~~@37S}lg7$@0Qymz8mOr-DBimoLx z-Jr@Fe{#6x5yA9=rPE_k_u&+`Im%A^*eZ0fku2#LDKLbiu#os-{M#eoT~+L+TEGTyHTS?Bq!=TF4DZy z-p%Jjj(gG*4+(FFJl4$l^(|82(}Cd0%?f{NBe2i_fNJ&2%Y9o zvE6sNM@I%0Go@e4+=~xbd4lbONfnaFv+?U~rL5RKcoDdc4UQ}+MpMaHl6d>=thlYF$>0)SD|YvzUU{)O(TsDCmH50Hk6IEkingLkU+G0(9+O** zT`Kdv{<0j}Ye<*MjMf%RZEYDK8Jwp6yfnZ?S>tB<4cp-Zjp~cf6uY#Ewwsp}U##6j+H-`sj(7(@l;f$e3@kX80Ho(aFALic>(n3T;*emA25nE>@F!Z_*hAK4M`Ky^KMdc5BsvHN1Be8 zSjRBuAiiv-%Ab?-lM`)T_u%SK`A$G0xW|>bL_nfY(jVtpa!fEKbG?b!_QQk&StByN z8d~()Xiqc;^fr9LzC=FZNS+M7e*HKz^3uzVP6nfh9&QAdYHQAf`JyjYl<4qGexOG) z>uHIW_nD`{r8FP4ZyBQ9bS(?(BT24KTc~^gepC1Xv?KFT=!8uWH9`us2_~ty-twKM zy~_O(-y`B*swdPQ=h1RkFJH5k$mO>)o|70n_LFwm{M!{E)#B|;7DRk1x%?T#9g2tE z4Rbu+L)EYt#17gd^XEslqa%1MFUYpi@)iNyGsts6?`6eTDYdPq z4`}#|k~zI*#X{4{INmh5TUG70I^ZJil6=Bj!UIvQ__Uox)V_Q1#MasK0H9+sU}kxc z?03M$r2!$QLZGF?y*W^&2550jhqYOj8?Bg1*xln=XUd53x2mw5FN0$66$d}M;d6;0 zobN-vwQ50H{aQFizFs0iO4Z96H`gbLXb(2~pyJw7 zG4*BO$9K&|QPZF+%63?k;OM!zp{GE(&UW^CyA&{X^AHg<4c7S)YNH+;rDh`mJ-$Iix0E{eLyy}N1jS-BvJX4h8a*p10$!RgILwWkvzR8R5yVWu zG$_+HTxu~9(0&^g)BeSEr^`Q>&~|ri)NTGSfe5tmziU@>jrOndBXn}ZUPiqS#<~d> z%{aopCXtI{kJE1OkRPK&d443qwC{On(*w&CF%&}*ky7t0Ll(J|e-VG$e!nS_E79_i z5B(8Mkg4H74=(RA0s)u8vN&g02v>Ymfkc154qX>rQo{OBq?+DW7#25?WCY>4GAv5D zc;;1qk{9hWt=$V_8y0GG_tv8O6b<3DAznu1<0ZJuW+$!XpbFBtM$IVUXpa2Z8=V}N6osB-N<_ZL5}+-HBifl} zf@Knri#Q*4U^Je*rGk&4WG%+nP)Eh#!0R)=BqsOd_G@04#1Ro`9}$iok)=QZhh6jo zrIq1LUwC`+5TfdFq1YNcJh3gIq(>g0iS31;U5n}}&5adSfv#HL^UgM&0EYAvnx9!V zl%iRfbY#HkDzZ+qOWIY{p!w(=H5gUEem&P}Mfhf0Ozb2Sw_<{{W1ctWW9gj;R1v!u z#L3C9d^9r7_NrI7VHn+Cq_9li2f!5mnD2!GsNcc+sLG_itU}{`sCxlmPG+SUWR!|B~`~vObtJZceLwfyE*dICN7YWvY-zKKAy||5)8@v2pff(Syj;QD8=t zyRGk`tRl;on`cd2I)p6XqpT7Jgmud@SYnNOBZI99B(ZG5x1r&m58d{wnlWz zoM8NToXiyoo(#9B`&Se_;F2Q#1iu`Bw@9|+?GahGOVv_FnV*y1p$}kr_LNcqBGG)4 zjT|{#*D3@BiDxg^UoCCvYlQ^F%mbb*XGuEtd@e~*LDU(Dw{moPrEWv4`QY7)n;tOFq`{k~$_Cb3r*?3texlf7`e0M^SK$>p ztL}2cd#MwjXgrqknAMJ7)6aOIkenO!C^Wh{sBa%f`hlPnprsfnOm$`+ z;fIrL$4p6LFNXwgdmfJR*FlzxKdv|CWE@5>#Y+{5RI%IFiB+Ss9zg8uS5FZ7q8Nj& zNy%1gzqshZ;bCD9rn9u%cy617NioLOMKZoHMaDeynYn*I_pY_X?bL6mx*o@3ie1C# zw)t$VPR67tn%B!Z%zClZ=KTbXc8_tJAN&?MLbU1aIp#c~B_HYPPN+D-XnI3-VVa-6 zsi;953?h6_EXNyI9yf@!EM0HP80R#J(vpTxv zqa(E*sU691JoD%bW<}2T?cLIDyhY}c(RDD+$e87l#3WXVb)RF64J_*#Tw1+>|w%sb_z{amdjBL zaj>=It^w)jYa9zqO7!49xN?(`;*OxR4-|8nr)?KXS(`)2{jyANs>(&1N|dvs>k9dp z^ZRJIe`juVXT19+fklR14~z(=tebpxvdymz9M-y>s<(fB@5aiq=O$W)RAQ1?y=jX$ z3?^4sB1XRfI5nQ|-WLRTT)l>NG^OHjgm&r-`wp2)YZQx+Nac3S+NVFGuX#a=rkNj8^ThuX+fDUk~v?^9h%{?iXZk7t{8*f@n)U^VpMR_XgQA_ywR`Vi5V^F(7wx+2~km#kO z#k#H6{K^*KLtASEwE;bdi)v3S(0l?#&QFbHCSk354`D{vZsmGvp+J1*m*e5$fal`y z7~KcvdeF4n#U#6wJ6vcm30Mlrc=v%@n#XJmZt}sGOp-)kSMYhW>NPEGeTb4(H+k7C ztnBD4>B_2y=W#nMeytpgNoQH@W7WM*?1Xfm#dpo9UPcgf7H3O$9eUfL&sF}D9ilRq zB0=@21w{jufZ!q@LM8%pP5>y}7}}q?eC}ZP0qn6$!qMZ29;^h1IvYTw!z~>{8kqAo z{6!`us{DI~w4&M@?^TzoGWdc4?)z>{g?qdDB5Hb8Xd7+vh))s_a5o~!Hwn@vsXUHMeIYOctkuE!3$2a5>#wnRIk@!B7 z*sBe`Rw^KuPgHq4flJKBITT63n_&9(>}GOOH4`GcVAS7DQ+}KtMyo9;rv4-*T7aU8 z-{tyAx`Eh1_>#Q>nR^8enmc4?zPr0k@q@}~e0*S2R{F7Lnk80-h0cU5_IXFUS7|)8 zaUlV!Fyx}kLqgq)xF%H3d{%vC;aG|4iae!)HIo zK|c8wZP`7|Q&~1!vto&7MY7MLG<8YxCmzocI|R0z9PJ8=-_YMb?Mgpvrq7EujPCdVlaag96IR(xzX%_(c|r;M z13ivJjLhvbyhZ4v<{!&i9qL|kOLoGKOL)z~^^Gy=h$OLn#ICSNF0Cy@ZzN%@r5=dj z1dIamQ6J=xY>w6M=?CCRFjcTuN|Y8^+SeP;P@utXkz9xGoL=W|Q+uq69BO&H7NN7d z1mDtY*yo>~+qP=z!-7$Dm8Ay$kZh=4D?6nm9O2eYLRu1BDn22F0CNfKh0RM>@TY21F3z$cu`4(pwV|Re_|H9%kt13$qVCcVY`iYNZ z*T;*+WeJQQ?!5UNw<8%#XX~A09YXovPpmyun*S6{f%w9DT3*akB1fv!RIfj_Z-|9M z4gT$Wu1kiT)yj(guaixn+xD~vXfioVkWmaG?B-LprA_?18s!{)unfxVS}!LES*bM2 z&DPnmcmi%EyF<-}J_ejpy5IY{^BX7$yYk;t3Gw0~oTkMIfs1Ocl16v|U=;vzjFtN1eS|7t*w%98m7rVY7w#0~r0OtVN$ zLcMgcW8DOL#|x9Xlnpp8a#yB~&kz0Cyiqe0A;0F2m$FpbG*{6sT5d=+KJ^YNuvN7L z9AnJ=6VuUEyjFB zMZLxau1^hiU?P5+NzfnE{>)uAd=PM9l>^J5Sd4=gi=Z`9z#Q??^dT0m)cz;8K9ve) zy^A+J9Q}>2`y5%T?4G$D_OOk$RR+RE;rB#+1Z-Phr@Z{LJFBn}_t5Q4OuG2b+rw=y zi2ZJZ9SQi|W3f^>t)dxYb!x0dK@`{2h7EyZL25%o&j{q^g7_*(`c zEDe-=;C&7no2n<9LzzmA>RG5!jlpl5>2TX??>r|M$Br9n-R=08*s!nt@R_)_1m zMI^_u?UG!(Zhx<-LNMuhF!}@j)6Tew?^KsM)J1~P6&`|YVg}R`Kr<*&^~6uA3^>GG zroC_R6I_oc72`vdh2@GvZxu6y&W1cUxX-!CF64=fOyC*X}Cd=RTkRsh*` z&*)lLiBkpD!!Su^q|UC zoNzJbSl~$;PnIFb^(&VImfUTsMi57;z4+B%ob7SF5@dUY%}E@O;^R8^smQ3bSq_rz z*TR5R)o%si-#S0#Abl|20vDcIyNr&tKj#FWtJ_jGUOkxb^#M~!C`>Zfz2*Gj-d=$l zl+)p6d>s3r!o1R2YXc~oeKDwD2fzegiG{688^}4qT=;P_LT?(si|>`lj(R|ZG;udN z&P&Hyffir{Gsrg7_NK(a0u{~bu)S*!hRbH5B0tD2qC6KPs&eBf-q%H~5l=5*F<2$U zc2=Q+_Ypp~3vv5d;Zu|1R0LP2sREekLvc%Q)!U;V?_tz^KQ>VLV3>Oj9NGnUG~O=T zwURlw&$A?%!?+NA@G2}>xMtD+D^0|-f_|8I1Rq{r7DpUjtjH(&NLlXBGq*RemX1_Zhhgdl zJJ>lR4U#Iu7$0})4HljMJZ$R|W1ctJsXop{J~}-`j0a0+kS=0QMryP_k7$NB!ZEm~ z5mRxcY4zdE6S0VK4&I_=GGfhZd2ikQ0bqtyV6-}P75Y5S`;aopp)>>oc+m*8PJ1mE z&ntTKH+5=lDWn8l_i=2tiQQa%4fYO+t|3OHGK0a)FtP@2Q%iAZ2Qy)`%U(Z$OO`cz z#ZiJrC?C5fTs@ zFBYjQn7i0Hq_}ibILu)-_rFqTKl9rT1a7yA*z-pxGMRKPYxa%#Z|L@9CV~ZkPKQ~y z2I~gCNdABf(Af1BJJ~<=r^JrNO&DB@_~$88#yDUX)19yPp$Fj{TQ)oNr#5)o?_U!f z4=2792|^ehrYcE^r4f{i0(87N(m=8aDek8uyXN9%6q)o>q4n-Dp1ixubaP!;*o) zp`GN*SSbswUX+cF7s+19;q&T+-{W>7DqJ?&QzcKli-L6?LWGZcQe9D&$Vv37oRjM zxPGi7OXwBocAzL%d&FCi%;$z~Wz!ShA{SegQ`bJCt>k?BO@cK?@qS4p6~|`Tg6gvO zxIQae!j`dkuN>QwkKZ0VJGGs}VWm_g9#3BXzR8-@ zHESUA6f!R_m-G=Y3_~~8)*=2#_+-|EZ4mDVGuiX$@1&*O>diNFIR%FEHGcKLZi2mi zUMNqs=-WZQQfB>en1vbLRJjr2S>(Y?SrbD99yw|ZAj>jW!w+*m1Ds4Xw5#r+23l%S z6_@xUcg1LKzj*P~;BRVl&9sO$46zrgO;lC`HOS-UWEuOJp0E)nkkSymo<_CLS}Nq~ z=JbnY>W@rH_3Rah6Es|H+~yn0cP{05d>~Qo+%EJop!X(r zM-U1we%n--!s8$;S6T7&JAikT6t}hs5IhjWT0?Q!jDRhU`w5jnccD2Gi(#+cSr$qW z;RRs5qWTWKlasYWeM&I?nBdJC|AB{+{k36m{^t9t5Te$xf z+55)Cl4kJ6xHDc7DGf~@yp74kj@T9XbYyG&Hs38Y*f!jp^Dnw};1UDCan8lot6!bV zP$ru;W|T4*pINl04=5mWMu`2*+bKNviSn(J*N??b8n)gStjuu`FeC$!tu>aWS$;vu zCLk|pUK>)81B&v$l#dyos5-a)kLdhC2ue#v8_$dWhMrz2;Q#1}fq$xmOL z?yZ+vHAjn@ofK-^lu84EX+k! zi2fG_{BPX-;3nv;FB%La{ZIKrB~-Go-#h!Cr18Hj6}YbFsRoB-8-ssgg#X8v#B)%| zg7f;%$p3uif86Q6zWE&!pzoJm%-9?M^Gg0p6M?!9u3nPY-udr#M*sST-~KI20E;{0 zVadbxKUcyTmT+{Dj2CJ<<)<#O3}!W!SxTh*P5Aw2tq+0!eMeGw|&;NO^jAhOXYXW0hKeIbwxur0I2fdj5# zB!JHLTLSJetaRhW*UP>m{34@5m3IoI*LT*0AvMcm@JJJBYf1qQ~G0&(f9 z`7q!O(3@=YEE<@AS>UQ00oEw6oq%Z4zR5Qx{mhnhow~6(q*Z_4aHtBb7zlyCnUe8H z8dZbyEe%lJ#z&D!nkC_JS@$oui9WK*^xm7=-vCCu^@n%25MTu>4Rps;W`JKOoi0#e z3FNuZj^gP(AlSz50fVO`o>R6RK>rKJaQa>or`G|a6$Rj|Y~ZiMYWf|uNhzQj{#bw& z?nu-9ccJamktmqnm;b!!QHP-KEZPykYhUvM!UcG30|0G+th0Cbbx7oPaBO8Fe zCs$jD>l+Elz?8_YQs6#H$Pj+{ip}~5&dyvFTi{mj14Dv;jyu7|AmaR3LY&kAeo2$l zxTD>GR01_{O8_R5Nv0d0B-r0t7?gS6K0b53+s?EDIu#M96Kt@+0Vv%igtQ(BUYi!W zy1C``ur|g6QvooTZ(*xFn%H@U#LqXX+BZ4+8QDeG!#9@PF2IG6Aeil=O zacXbPiZ_5+1MMy3V$|wJ)Unb4h}*+He(~0*024qMkLJ(L&L)q^Dx_m1B={65p>kiq zF-G+K3R;_(aL|q-0>`!q< z`vGEJ%9Jq=+Wbl^xc(J!pRgD*lD9_EU0%?n(7rLpaPw@VCEUFQR;^Ax)s`Ao8vr>g z;P%`c#ML6q$Rvv{JQnc2QI|4ApVfSylN2B<*D#>fYvg=*nD!v?mm zZ2jJm{PQz#eFil}so&)jY&SrSx0LogeEL63(zgO;k(XePX!U*=MZO91X04-`3f#WV~V5zStRa1HV)YuKEQ~h^i!qeZr*c^*9V;4S`d@ z5EK-&BI3j;h1iPwAF^SIYFF)QRb1+!8QhjF4XzQLIVwc0w!mAf{p#X;OAo6aj9!9# znb~poh?80FpI={Kk|zrlOxjukpAZ_G#!=ZoBa?-;_imH<8?8izpvT<{GC32L)%;*YrI89+UK;NHDxyYBHb0akL$3T79yi3-ygk;UFsJ zgOmv`4+B_MBeXPIqm#Ktqwy#&^aaNpJv}$IwpAG_LVy_5GW2 zZB`l>|8xH6n~YxTd6p*Yq%>zyJL~5hhZ9O|DA|VlI`B(aa>47N&m6!tAPqJdS&WbD z7yf9bi;X*ooCXRB|C}4Vg4@ z?1m8xGKLY8q=M?tD*Ce z(0i5Thv>Fsu-r-rDFW7kp;txa|K*meM*)XlYVoECX zKxst16^lx7c?jh=>Ek~v2C1xX+He#_k2`eV>cIo^ZuOup-XtmFZy3IpgBa8-x77AG zzwhZIpYvh3;cq8lYl@*>T+T6Gy0jJ=bfizkNusNyC}hM`Xl0`eWkqDN`F);8i=8u+ zvz>b_bqgfkpL%?A04CCh^nbBBOiu3ZqVaC%;tq-yEc*h~Glhsn~^ue-vHl z0x;@U;4PqBK?xxHyQH@^8ywh6%0Dbae_wTUEEq9913TfrySM-?5_Eb7pf`B_zS5Cm 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�B0%Inlq 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

bZ9$G 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%0ArX;7 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

{J(URh#8-+ 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

K`M!x9h*VosN-m&}YZnwRS#bGwlqiA)oWB^zw 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 z�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

i=2@Pyus_vs#(3c0ZNhB`iyE? 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 literal 0 HcmV?d00001 diff --git a/Documentation/installation/images/rancher_cluster_created.png b/Documentation/installation/images/rancher_cluster_created.png new file mode 100644 index 0000000000000000000000000000000000000000..02c8c1887cdfd6aa15b586833cfac9e762d0b32f GIT binary patch literal 291462 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 z z+>x&ju%B&uyk+`hHOZ)<-Fa$#;YOj-vRbvlJl?R7?#!_$GJ?GSmYkwwaB zH;q*HJV%kK+4Gzq8gicr>s7>rj!`v;aI6{syb|`~Kk9~$KY`?XVZ5N!=Bzfo(J!tq zBs2==foWjf89Ndex7M(!vN1Q=Hk~jGz`UZw?Q?<8LtwJV=U0;FzRuYf$?!pxMujRT zl(GipR8@ir7El1XGHKzt%0Z?j&A;qbcf3fdaOwxdl8-JUDNj*XAM@Z~`b0eDc~2BV z$(kWT>SPGy{EGPva-p0zxTS^5ffi+ix1Fd&Qh+|xBpzJ8Hrm=V`?;=&PQ``bs?HVCSi~!f5_2+ z-A{jJ#FEPf0fM}o>~HYgJch2`SjaBv60Uo?GvROZB_a;qCqw8%rJN>zdG!dTrg-U%YLbYsoO4?gCCxOPRK zxed;Vy1#;MgE-+MdAdb4t`6`1cBAU}-3JmeD$nhQzAzq)REvV&i{y9n7@|JVTQCE_ zyn#_omeyWsb+arzds&}{Ki4YZT7|_BXi|jY1}&ze+bZG2W?zpig~Eq4XdCKy960r@v;%^Y`hyV3kyQzDpIZl2*E5;(I7jsOG^D zW9Tl76SnJK`hf9EPk~6JU)k(+{JRTX5(v`4OnJf<16f~@x64j8ikoBDL%}=rB_)+8 z&Ogd&hU7HeyQ+3xbG-3|AYPa#%^!ayvAkIMf26&2Sd?qKHw+^n4bsv`NrQyaBZwd^ z9Rh<0NJ}@vD4{4JO1IKAbi<4wpma#LbfYxPz;~n1-urvs_gTxedHz`k>kwwH>&)Mo zS20!-V|4dcHT#1P5A`j9hVnZfz!a+sU%}8F>XL*GOrY~?UCZ4DljM9dbmQstdPE(M zs43J{mdfoHQk;DXNV8n0xD2$*)o1f*Xnvo{p)U(&i5!zTPMiXaxq+>K4sj#=WWuuc zEK-C}HJS5uJJ)OfTfqqWi<(dC3;DEvfH}3O`gpdLcUr%B46IGb4q_O5xLdV3{m!L! zm&njgnl0s1*0;8{kZa&sA6S#AIP~p=dS@JYd%G_MIoelRO3LipzZ1*wV^y~E@4Y2VTI z6#u&t>eF&74??ukKgd~sSYqaV=jPQXAJH$d9tu?Ymzo0|WtB)s$t-3`N+8B)kr|_u zuqCX_1khniA+w8aVL-_ibdk!X^H5XsG3VNOyW?)vs;$>|hV;oUfUI z-u$`M+&~J(W=j4lRmFeS1S+rhJ@tLz+UTjWNOskfuN=Q;6N_C@Xr^$D$U&9CH6Vq5 z4RvmY@X$nNBrfvope<@I z4OQ^Y1?8~~o>p2;9Smb9T@m-sNl~hO{Ca)7m6rbFUErBP=gFAL&6&7FD56m0oNEZ_ z@~q2hN};oiEsT{ru$wj&{SRPymmzbVCkKPz;IU7m>`=keb8E$MGnzxo#?vUACXv0N zvskQ$hf3?^fG z%Ki%MA$DEk)l6A0Ep=XWg-!>Y!Cf@g7z1wos*BTJ}v&qvW1Pt~2~ zJwBnS`MnQ20;6luO&E>GX_CMm4@Ic28tP2ucuYU`5FtLB`cdJ-O)Osw&4{$H8;xHS z1l|YqJ|XmQ#c4VGLQfSS+i?16?(DtZ6}nA- z?@#emjx|fDzJ@sQrO(3+T)n#s?sI$B0p|P(=_4OuMSH2SHA$8GA3l#|qut^*jG;TY zz7iBsd2l7D$uVjU6YD1{>H30FqWam;gZ0}@oh&bqz|b*0{EiFIw6*%C%2^C40elZq z7lw??93fdu?_G!8OC;{&jnJ#lTRDxy3-11qP@->kg{tX6-!lmzf}g6JtORM!9H{-b zGe(2Y7G%07rYGLVHC9!fBQX!@b22dnO&hL~Qhv{y(##j{IhGneA@1)##Q7; zv!?3BXR$=NU#P7S(T0$CDXKSXqmg@kDhn!1`g_R64rgEk^k<91Ob6=MZ(nP#83cDz zs34`(c1KX9qBTNFdh@xp(G6Wb~x*I>>&xn*w=p zS&z5+0J8?e!@5Dl;VJsavMJ)*-tHvRJ){0xv?0h2O35KoTQhl^D~%6V?J_@Ve+lN* zj(!@ksW%7T4(J^C(m2j1)%CcP?WNsIp$7~v&i?)KY2+Wjct83#EneN&s_o*gvpeA-MhA{h;Fw_LW31$IcufM z=j3?x6$7;qGa>od*pIB~ozL#IN8k(+kGnV{TmBD$B+cSyp(326rVq>?AJZt33vyP! zBAh8zCHqH>j-uqR6@WZcG0aH7#YdBB5y|eB@cY(!O?o6&{f(#+K?~B-u46a9H=2j^0UNm zr8n0##EtLV>a1usvkKj%ZTa%T@-EhWQo-&0AQ#2J$8S}EUgfGnM^v4C<+(w@%aDW> z@|5_Lz*<3=cpCi~rR}&rSNxRVDEU8O&qqAAAKF^cKRA?B$sArrN7uZwhg8g!0uP0D z-3@#NuV2v#jBj}j$EbfaoNp#z#;@X@YN?4o`vs^eLG+m;JPPc>b&uCMUS>?)rC=(5ux4NH446l{2N|Cr|NgF>C2nI-)`ehouZ`?a|Y@<9a_NVrKdiR)H zK*Pz_O(AH5agF-3;+eN##WPj__I?G%aQLA}M$l7)lPQjONmq zW!huKd%n`=&r}tdrz%FH+LY3A(6W1cE#BS3c6<(=u_vWve=PoaPec(!n-%3~?E{;k zCrT+^G61RtKx5i@))4YcwR}6-V&O?TTMV2%0^DBO-=P#E)|=e$-xlH~o9Q&W}4P<0l;lusLV!1h_c1WMaMwccp` zr$cZFc!C^*KF$kZib_?9hp;PibhX;__P4yMd1zbW4I(UpZ0Mt(O$sRu(&a3fWM_$n z+hf;2<<|u7P9Zt(3DY?o+~UJ@4FFm}lrQoHSaZQP4zZh0^pMGtPbo|8s4r*UE}ze~ z_y^n|;L;51?RJ>7Ou`tQ+!+%BapA`k2-K@fkb4P0-I3#pHa5 zzL%23AA9m5qUF?h?F;rO?3kKWP1Dw^q@-w`q&z6bNl^zs*}yEl z0dyUyA&0{54>|@&Mh{!OBGe-v^AV&X$LX})mCA=&?gPX0W|l?oJx8<*W4(%=ECO%- z0L>W?ZhJMdK3Z(nopyl=(oCHM`}YCmsvg)~3RrD6z0yN*opHqvTp3EP?Uw&25;)Mp zgEEvDr^+!`1I;HM-MvIaFsX})PhhSxrm|>eVAlI~q=2 zqw_xzEfDTUKSiyXk@!{eLHDjo-jH~(JtbRyL%>&U^UKGuchLsXO1wbrMe--HAuwTW z#i7}+sZuTZ0KC^$EJ3Nlt1%;tnmQyT$Ki?b6Fm^HCmFNeh>ObSvpM}n3kXUMh3b&uI^-eja}&7aw=-+lYYO6 zq-@kawIi@t+k$olXe0ptz~Ww9J-0Vjf8cn^qHle$;kzl7*sTod>|8{vyO6+mKt_8i zrUTCw-G8*F;+VV~%ww&tG`o5EK)9OztAUk&oy0$%bN;BD6bdi;GpC5UWv#VdraD@T!ka<{E z)i~Ca_lqAg>7Qj_!hngr`K!o|MRdN&SIiN8{~ZF!pG>kP986~;af`>Cj)Y-D4EYNb z`}?gmRK`emcaS>1wo`r%eeHaT(f7GTha_dlI?1He6N$)=5TJihWC7^IFoFS7!6qt} zHZ^`*ChN`qSfomd%wk!jR(%KD+zgib^M$VOH_JC3;{mfV1^QR%6G%s$9KQ-{?89ZM zJaZ<7J4#1%QaMnSoGtoT#MCc2bC0}^h7CcmF+8^DFCM3GQQQMKdzgn+wZ*~v#6a;y zhLDRIPofarKWK{udR!V3Z8aDNc1HY}Y)q!wk2yWzJpucejoMa>s7m@t#dJZ?()Z3G zTM5}&;AOdkvjw0*$70M&kdCE9xx2Qw?w&a@_m%6~%x}qc6-~$8T1yXF1}z-l3|&C4 zw^&vWF}vKJBrBT=cVveze3m<=K9YpOxn|BI&>aPLnSWkIl(Hn>_UDeH1S9}LmcpW~+{=d$$wRh(-Ydp~ zIY^Us9?VOud-iNDyh1BexNhOsr>WFYPGBf4shH-J6Dz(lEPNQy#v zJ8o5?a)Jn!BZr`RdY}C=6Y8_GcYEZjK(c<~cHF`XL=~4n@(cpwfjpE_G{#I77F7-( zCwa43BwPf4sH$aU6l>2Z3Ca?hUN0Z?^?8o$21XV+<8DJ$s>Y!o(ujX_Q-AO8B8VUC zxEbd0`g0P`wSQD!zZnfC-Cvj-wqCI7Z8Q@YL%i$gV?1+NuiMc#EGOMYA8Wg8do0Z1hezeP+$o7E;i6dyfAPgphDw7 z;TF`&s7KN2V`{UFgA9|_x&J$6{U1C1Z+U~!bV(WMw4N1U*qK|r0qUWn;q)0#Q)yO|E#DGoW$KzFXFNJ^VwIN=yVi7E# zF;;8Zl=`6C+{E_XDSLOz)jq56T_i3_b(dz@!I*=pBJQAXgo2aFieM+nrtZTxg1{Dwc6EIO^oR^Hp~mzV%WPSny&9 z%L?HsN&!QM2iHH~!BV_)c&KHrhpn8eO%!cCL#t1aaDJCvCrsOxihp@{u%5;wBlHQX zY=pPim4JTGPHrEj>&guY^G|VjpQRcTl+1XyE*$KP)rHd6w&YR&ab?tfv-Fdc$?cs7 z9dC#X`Y2yK{png>jhY?MTo#aNI6Z~q!O&aq;?6?3(7VX>x^#iwV1`&cy-}SClhJvE z(iM$pSfSH-6XA2k1%vsVJtzEnsH6egi-ri%{#_H`scKUaCiI_8A7H*CjeyhwyLh!X z+zltr@ztFAaboU#5aK|>dMN^@f7j+Rl#0YwE>V1QnMzp$jvW z?&R#Nwp4{rT8&sdwr^n0J08#Ocd7W0?tG9jcxAoIF{_LFX<;+If95L|&~ny^Jg-VN z2uQ2xad_wOrc#^wVo*(XHgsDjn*y~p6sR>LAo-U7`~UY3kQ=c5EqRxKbyt_#{U~*N zNhvka?lrcgf($9=^I6+-#XOX|yLqE_zcSZg&G>2M#DWa)2)!btc2%i>K}jSypZIEc zzRP6npi|`HfVEu8T7mYn&~iToiAcMn^@Md!a(y#%j^#v~x1fukf`M^&dW%(8E(T z+(I_!9*cH{kpMpFHV1L{b^!SFFVhfR(DDTLA7Lp?;0ZEUM}7avNsclF}QhXn;*E9 zoyJ7pI3u`mwtM<1`Lptq)zcf!`i^I*VvdNdJKE&rppSg9flG0V_AT$iT1w3dS$m&e z`|>I<;7rdhLQgi)ky21)29f6uGKCt9udagQe1tiHkbL^rr$&{!wy6H*! zCG`0Ui7I=^)S4N`Ic2s^7SEdls6f*#wkGB%J6OKy0wlV`srahKGPNo5Tkvr8dHB&B z2~eVLtfx*e^orTQymvBY=NmJH4{0#B+{Wl<{bN24(hub6#0uS;Sg5PEV!{tB^yP^a z-JL@+3XI{Ds|)or$1$RY#^H5 z4HVN!K>PWuDYiGKOi#!y4yWU~e82Gmfxip-EBTNVJenHk&uCo0Idr!Fn{b>a61-wpRL$8cNT-iW;F!csEzda-XK+X;zCy2?r;dr*{#l0C`UAOcRkLsZ)EJF{`k^;Ka-=*g7*td=aXFG0rl0@ zU%r@;5PS@8U;!d&m?}Z?9aF0I_o|6^g@+gpoR=^K`mF~`+!Z*HI?A3@2Zw$&RF7yN6adDEzp^Oqxrv_)&Kjy1k9vu{^AI<;c-X#d6M7i>bXLXgP%HQ z%zpN*pDiE=r+Tf+=@=R+DSN2Oi#UXduA1S&+>K7jcX=Cc?nR!X9*7IwKk6j3y6+v8 zS5tZo*wAQ()KQjj{~&dSbN`WW|EoqTmu*uO9+YJjG!AHo>f^1=`az&LD}hJb`e$2YTEg zLRcL>qQ~<*ig1cM`ReprIEaIMD7#U3#<8b`vv%&@vy-YsUK@6b@yEDcCx-4o%$|sK zMl~NOtc-NhQ@QRZouA*>6dz(a1eyJ?q-p_EI>#uk$m%o;wCzij57Q=frkX)A3ZcS9X)P%G%5 zQvf=bi8_E6eqB1*66xRVZT)$d2qqd=#G}6|@SwKNjLSYbLb%H#2Q-L9V zn7gJ<%~eay;OxXw@80ERsd?YBrSEuqI5W{I>xi2$4@f3xUYq(kX4nglvo<*7Kx@AK&%ZRCJB6aNqWq5GENXd*B3? za~{9?Ir$Tbd@gPC?N4mG5;qO6Lxoi7V4FZ5A{*#}G~q8kFH1H!6Ua0=+fqHO{E{NP z{4nC2-wCOX4`PYt~L?=(wDH=7px~{6O;=aRoq5`cSde%FfW%v)=SBQCl zZO8=k!%vo&`x>hqy_vEaV%DAMF<9)Ez}-{2Sk|zy*q!J2F5FTZ`2??5Oe(Ld0J)2%LI-rQ$hs_ZJMH$+koSy4{#<5f z91vdJ(ZI0RdH@VI{;}{HcDl&e);yav)Gmp)Xh$m1o$${B$!JR=^9Z{;6r*9G2Y5X=OP>XK~z z*|%J5+Twg$ScTwUu9o3RO3C3E9~RLkZm&s1IpS^vp@0bF>&fC&UmTDNC{h#S66)v4 z0eUYX&e*iH70#m1%Ik)E7ubxn!{>|RM6)u6(x0|c-!Uy+)Df*8x*rC`qG7qpY20O!&Q#p_&JM~81ii9f=3cn7hxwbTeUo!S+mkbJJL-_3y zsfBJI13ywf&(%wzOPd9}E|}RG^l&nIDBNr$aA(A2co*d{QpVdDrFjp#1jQ)lb1@Y7 z_Z;iehZOAwCJ)-0trsa)6zh6$U!p=wDy3>`aL=^3=$J3ze z2D)|eJ|*Dl3-RL9{b=r!9qmfqPRw~F&hF^ zYD>`K;s|f}-t%t4{f%K0!|hexI*aOnvl8n^)tT=qy0q9!MJj|I)PGxCTYYy_$`4W? z7kro8JNfXfBj@|>6fmb$FF%{D9ofpBgQ&QFUH-PC>OH=3yLGGiA8y}&q|olU?(zKB zP4T}~;E$>cMm_P!QAqgka&KhB2_E9IRKwT4UJj?R>mhr7mwB_e78l>a2$WsNu)Cj= z_0Hx8BP7?#8M#lBK7v~+7l{2+40TfC=O02weu>pb-1y_Jn0%f_N5PKo z!6r-1_t_fn-ta6O6+T6ID8Jg+I5O(CygTU0)tE>xP2#%$Yne+Jci&-J)X=_J>^mM= zfe8PG+?M3i8fA8(z-woTr_Skro>c=|VOO1Mbd=MjMRiKfyuWuIH*(OWeiJUc+EaNN z=c{v`xQ+=~#$5oXk3DOhY`*z6waMDe_bt%fnoah(rYLhLRW+;BXX@=>PQK5~bx-ZW zIBgh^WL4L@vn4L==LT$0AT?0J>@63;sEU$DIQAu_7>uJ08|P)-w%JN=GVo#F?`*^)qrd8qybMh3J_ALV z(BgbjrRfrp?PE5GQX>6K7F2rAD2AoKBVifYp! ze#JobTMkrA+j@6H>_zGYc?0+J12etbKw}An~I1ix*f}P)6 zEJIE<{ydKVB^gXXve10s{}Z*8lerGJE{4AISefhAoc0=zDZ}Bh8Ur>bOE(I~FY*Jq zYhX+YiB;D?O)0c7B6nQ1fv9d+i%}`_3n|h6M2sG75n^)p6zdc|@1m=3Dg51PjC_rC z(PmLXEnS10IS@ge7XoxE_RX^*;(0#QshD=^Fx*FbgY0R{SW!fF=hHm=_?cn6s+>Hc760YoB$eex+=3gKU! zJag1wx?i8xd-qM>dXqXM>cm!%5aun64@>y!-do`(bejDeLkSYV!qnqsjSoLp#Xr4G z;B@dSGZ_^TXqhyVjeE1vU_=MY*r~N8iHp~g`?;u(%&QK^QY9Gplir zWw%7OuTP(3P&&=fkNs4X!1Cf#3@M&^%EDPns23J~_S%-_+fvoXm&?R_>!)h>>m$eL z94q};|Hm64DX=_FdOKW`pnL_AGf{W?AD9#L`Otno8D9jOdN#k!w&S449#LI{FHbbN zy+Gr6t!{?%{dTkI?~u|eKq36G&_sM3u$>GbPY?DHuOtd10q^e z692O5*Kyfg%GNqwg$cj#FD3X5@vWGn+5~KcSH$YUvl5tRH=i+FodGoCJ6=$Kb_g;+ z0jPWohQ-X3dSPhOm5K`ugrzyt+i{h+!EMDVWy)FpL7Y&E^_?w>VB*krXI&eZfeWt; zzfnZ7&Q{1-eM5Za)q?$0tmIm34Y_H;#6XRHW;L}0tisRAn{su(+2BHad4ax}G+`o* zwc?aT$AR0wzc7N0G|6oIDel4}W_2%yWfbWEP(O=*4s4@!@!q`+%ulyx8J=cv**go} zHZL>N!7%Q!=*|68)C{?ch00|Ga35E%!z3$gI>$r+k`I&4xLcC5=h0vk&E6Yr+3PpN zlg~(o%d;A+-<^31KL623e&3~(LB$WfbPOywy*RNBwmq7+uH5i#*?+AKN(Y1RFiSuT z-K`Ax@cCBhgE#cRW?PC;TmO3>yyPQ91HQL$dM}V(Y~Ea*DNtDw82AUB;V?P8z2~Cd z9`o>p;7$07Y~g7ztugHjp-)AXrXQ+T)|R>-`LvT6GClHF@_ESC>xuLIYH1MO`E-*& zi}bH^8WO~J#CVD|zTz?Hshim#`F;9_SRi!D>k#lX_J^C-w7Yv$$ANvFfaQN#A(8e@ z@KGFj=XuO~Wt~#SebI;9tCn9Xax>qpK!InQ_Ta<+~rZp$)r>Yve-Dw_&j6<>VV>YSM% z;0cUB=pwTVJC^`P{krd8{s(rQ07z110E_d!SS{yW-%gmiAj7$=?;)mvzV10DYQfUY zslzmDgT?nH?u{?cVBf(Ml++(y-Z?8ipW&-P1_y?{d`@?-74z1;gZGU#Tou8@601F4 z$7!yEp1T7a4$&N|c0a}An@+c+4qe-Qiw={RFhN)+T9Bs>EcQZ$Vlp>5-%Q4BRVf5w zV1oQPOCBrOSuQnAYb_}@ zXqoyEQ+7{1m&j-H@ZWb>IS0*$dK8`X%2FL#+Lqi zK@I+o!`^v2I4cRKPE)E^mtW4K?njr^}!ck$)O6KaFuoyT4t)3VJ31Y5-2-D>Lyd7po=d+!zagl{H^ z2u{Rm8;m%?n!JA@3Xn#;%$82U0fuDni|FX zhHk%D&}}DxZpC!Zv|76#euU7}=51p$$msJmF0=Xr_f}%T_yN+w%f04H&8Kp%C=J%% zXTpg9`+TtLyykAM6mDIQ)AO)82VfwL7pS|t+kC97O%ow^WH-xzhE=z7VO2eS=uab4 z$WM{4{mty+17LcvB|*o=D@;9G18`$3?s z=JRe~7ZM$G|L^1q1Gdi@_1x^;@)>(qz-q=Qo(8fA!D`<5>-Z2f-Z#qpvJSJ#AG*Np zkzlHuZQNJ$24INm`;q0$44nW+c&X&&<%Kdy-`s~V6MP$?w!kfuk!fLiOj9VK(>e=f zY5Lj(I%q-4*L@#s%IcEKkZW4b)`+J7^Z5^FI%Zi!F}#QQxr}>)D49#1jG6q9Y-tvB z{1*D1-OvP6IzNcNkT6hJPJa*f7uMrn#J-{n=?}9p@0dj31rU8BM+W?oT38I|g$4G@ zqL7g)DKF(<;3KZ6GGjNfWOZsyM zzgOO=k@KkxsO$gsjUs;?r&K#9uSgjglUu{=O`3 zvza;wgoRTG_M?#vW{Tx=dbD{Lg=zP=9gmc`FA`g8rN~@?(7Y&@WJt(f)a|K5ZUkkY zPyJAPZ{p&Qat`bWN!vVXuAt9Mpc-2OYmO-h3SB8XGN(_S)RKN7`=s5AkLHrNU8 zTV^QfJgaPXo&i|bmF8B*u56>_6!kg-Ef15u5CCbLN~(xJSllYi(m{wP&hmcgx~=dI ziCaGMfOa)qdm47PK;gAs5R1HROZwf$UC%_FeLEXe;aBbecgyO>>h{NFZG{qxB|2Hv zebqx9bpyJ)WGlU({cwSxv0Vg{JcNm0DEJ!MTVHar+U-2AIAREI>ZOFptv?8mG&i6G zdEZAG*fsW7e2U&&Z~!M2tmdHWHD(+diakiz{6)=HZmMM3+rVY^>j9dPBytYkZE;kP zudEAe8mU$QVGZYieO919zMn*Ke|q}MDFkAFUq+T?2@%rEQirr{w@QyCYV~TpXzH5H!z0h`*{h@eKR^ zH_B!!`Cx?DBx~+67OtB1 zwk=~$Opx8Rr?y5VWn`o6@@m~jm0eQ^jvQ`?G)3g5nc%@Mbn(|RzkZ{n!Caj%z=YC@ zw}!K=DQvxryOZp^K(4`aA}OYH9dEWSB!6w$Y3=%dnSVEZ$j0oNpp4$x0B}P= zP3%}cJDS{jM+9I@!0F^5u7)Af7tQYOQzV9buVX&@NT77rPJSMV>*?#iR6zRJ5oGas zvxC!FVUL|36k;8`01StsoXO@eL-(*#o4zh(*;*}k;C_<4t>Rx35a6hR8E9Yab#wXd z*|pR(sLE4rv0}L6DF1J4s5u9k4;>CFeIZq*I~V%k5KsvPSXfoY8Kr7Mm z=`4ENYmOL&G(3xYR#{(bPNHObZSCrrG}oCFznYR7AV954mgWbj-7?bA^l`lPYT?GF zeJ?XRdmYTekrV)8{QjAEEeAEV+y}Q?x2EZD`+BOl$fPALQVTsY{(cK?D zCd`X!$)Ll+EmVYMw;6~j{KiBnq)%;aiA6Ldp`!4AZvN>5?Ed^PcBvq0S%GiRG_u52jG+?A>a8To^|48ak9|>X9SzSYbP*=Wovj zPQQwsDDN77JiuW7^EH&Hla6X{HnGT7o-~(E3s;g++(mvRU*Z)UO)`9HmQ-|!p7@{rwa4deHJr^vxu%4oP$~&1D<|Pz6Y<~Iw%^Ew7P;si?3hk-}$y78^q3I zwckfu^snEi!38y&U75Q%p$NjN<7SQ+&=uMxUr9td!s*Gj5CMiX^)@W_m4mazeD;nY zN{+s%-ZyfOO7h|k6%Ibc!HQCWF)ZL4>y8Fg$D44dtpd1 zNfNwOMb?P3A*AH%MOErUw{$lDm zdG6Md{+gVcs`b!ev0_#D^i)tKIdh3R2$IFrOws()RIi|D)k>l$?$mN03->*NNT@ggKi<3| zl$nsR!tOYT$nlOYhMl7$vF?w^Z*peuB_?OzyWOFVm$JMsCgt30b$sW_Z=U?6g8n6S z_lm)Hj|x0tMJfOLzx@{=pQ5~(3xElU3o!B5CgSh@Dcutrzx8pcXEkK=viAT0k0tCq zS_`wV)1K^tb_C>Hc|(p;LUsn^`&Y11sl*|y`zHk6Me_Wmt*n8 zUs1ANM35}|_i+m!N4$#o>&yS)qRda`;0D;d1c5&;L)m{h_>OBgKkw+<2EWJB#w>Ip zev^9X;{YyRT>j-v%D>gsw^1b`g(Bln(P>O8-`-vy>~ z#Dnt*{}}hu#*UO(^E${7yW~Ac<;ri^aVY`Pi2&OOK_T4W0F=IqjHz>E*@I1gh<_3|fS z#|M0Os2n%;@Z{v9SLi{`OWR;V1K9ghZo<*V>iJ7kHx~kv!idcew7K*rFl&l~g5_8! z!df3IJ@}8jfl7K*J~R(Q&+w{()1?hV6jm7q4gRHRN}9_HTUuJuR5IbFdL1()+{kiS z!+^w~{&EGPtE+n@x%nclznpzZFS~%2H!~^XF$^pjXfA&oFxgF9sQ9%@(^WG86#Tf< zAVGSN=hDO_g#1D;_84gx9+!n;unx+b6!;)WjIY<;udLQ3ZUlqzYd!^#W*$ZSe`4HN zqFl`Kh5)+~y!Y|aurLs8iTfS|Jdvr}_M?yB(xhFu&_N!Qt|pr2w$LSI4e(`Q*KSh1 z&WQ41#nKaMzxVfLQpI=((BTuHW0jsOY!)Kr&3P&IbamTuin?V1gn30 zB><`>vwUWbzX4IddTA2tM1#3cV#0uCez+EGVYEc9z@=>_%?hXkO0*}8JiDx6&~yeF z0xR`1vOoshSF`^k=>v#d0H8aH#Kc7IkBUBbFK4JO{;C$tjiP)33HA&6cVOTjQVU4Z z6oL$tVOf~}No1kO3_O3`Y-R)gPk`MoWzZC#>Lu5# z`T1r1fEw5+-iKaV4M?#89_wJZa$No-WZ3xy1@bI0ARtmN{(QDderZkvWuOj!N}P@9 z3Fk{wSEmHbh@qm3{8Q!oZ%kD#Jq*YI0+G2;Cfk4H4cIl6h7dpyTKM9_?SClh|L?Js zK!zBE*q5d$u1+lYA`r>sr+nSov6e7>X+}c=2^KJc%uzn3y7}QnM*UJ&LDTRTG}OXZ z#V9NzeslTbFym1KA(C+~P1jsim|UqrVOQ!Z<)w*>Qv&V?$iol|)WE1$zZ5xuIAjt3 zSMH@lTFU3L&;tpk&b0y1%PMEqrwhTie+hCz?3{^uoSt%SmbI;N{HucVzaSQjt>ifO z6Em*P8*qmo09k_*_Y_b1FKuVQ>9?@7FnBBFXaO`4)6dg*N$~-M4yJjNqO92rdkB$C z^uM^!|H$<_|Ke6zIP%%a< z?4JO8(QqYG@v=7~d~^}4*e_dbx<(PnJu6z!P(i_9V>55FKfsE&E=26 zhqf{surQflQui;iLO{k7z$IFc{}7ja;SS8&(WmXZtRw>^G#4x&V85xO?ztCq`E(V4 zh*7#XDX{*dq@V~4a5IG}Km;`Ywx8*;0*rePmYvN(i3DC%x-3<4@4?pA)-;u}kcml2 zJf+Z+dza-j43h_l4TCZ34?U7EO(qL{9EGYIf}gj{(4QILQ~p|vkS ziR4~SUm^NGZR`KSv`2%fFy#M(@FIr&qU3;|rvj8w%6zgfkFscHLEadJ`T4ei+N1uL z7B~QFWoY6CzXy>6pzq4Z%O6Jxggqy~3A!|0xwX@QngdU{wa>5i*2~C043jsi%uJL! zkZ4vIS^TSTID$euW#r{?eH$JMW;Jzn%Pr0`&Dl4M2O2-t^uLAbGn6=qt#=+w^Pm>u z;@quDF-3cug9%znLm8ttcdscjF*Kc}xDKzMIc z9?m=)6W}MdXb&gI@kf!HZ;X~6|CANqR-7A1Gkf2N*b9>l-t-(5N)xji?t1o#q=_k( z-;iwjaBi@fzkVxLW4!}u2CtEte71>b-tyg|oQAI1Q0_ODiKLlxZR+&-Lv0Qj!cqdUv8eI?`Mj{a1xGhj-%*x>0^e@S*FxL1#(e;#$z(<{ z>7hd-T4B{q@Hy{L&7Z65kpUCFE=z-LPO14b2Nu5{9XZX>lxoh8bnh&GP8q3-Xi87UL+Ghee@$PXbabQ?@5{}#@lQgs#q9={DD524_Gq3OYOU7lLtt7^P`=)W8W)SKH886eqW?27dvAQ zm#lmorc~m1iBw{Fi9aevzQXJn=XbLH^c*`QqecIp$qR1mpX5MyB!4g+ciGs))LI!t1Wwc9Omaod(<<6pejZzCE8EEIGmy` zZrnc*8yrlkG>OxY{&DYUU|A-K&vOuQ&QLY#(z#PdLsR^IIKh7-ys5|gM=Kyz2&S{W z)0yh}6F@8l{SH*j@FX`XwCe{Yg>MB{AkJC^f(nWoZY81nT1ZHiH$9!Lsk)bsTb%d_ ztf9x9$EP1Tq~DRy{lRX+&R8|+$PGuNQIDJCTaO47NoH#Isk@fQJ8;f^A`72QyxT1o zB2hD;kn!)TveedRN=AJzdp1_oyG%};dWQoC`Mvx(QEMMPxyX-RKO-}uZ@0xlgF9)P z`|8%Bo;z(;LS^nq@)}N4w1wwVV%U-7lF#!udHckd=gK7QeoxBYH|*Q~ab2a^Y1>PN zH=-ThAbrc>;n9e^KuD1V#>UiDr)zCQ+b89zS^HV8E1@IObf)n$KfBiB%_~ia15KQ_ zyPi#G^Nna3!GSj3W3JQToo877`C{*Itb@M&b#l zH2dSngCRfA?9xcnX{uIc*!}cstl`CzwIUfq0hls%F5K+x)dnpy>aMhrRsP;oap5#i zJ$m(_Og#s?dj91un^SQiXu!IxUQu1~{*NZ%)6qe+az-slDyoOL#mvU{aME4ht9N3W z%&I58zozt_=8&*eTEf6R7`BqAt!h!Q~#_e z1#vzW_tQHyt(up>Ws!CKdX1~gy6}~cp+iA$<;O`LRhB=6hoAf)>J2VG7ZXRVB8qyI z_Qu!1r7)WUT?H66maGFU=t>ISLW zI-boOO=L=;hKAhPUhkeuSE>O=Ul){xoiSfzqg$1ubW2eSMr#@eq0&_(zg+>+huWaZ z-cX6;i)Xc(?^f*=f8BJf@07C>zD0ZGdpengl9uKO$*qRzlgBM+V~7bHepY0$jqAoM z_++JTXPP8HFm3MhyP0<+aEIAOCX}X3=W5!CPHq@tv!KC!sczC5fo_>T-AdxC`kI{- z!Wt=Fh@8xhhO2;6z-g!=)njpeuyw6|1NyT6PU1JWG!x4Jb!o6t5Y`?nXwDaIg zc2-eVPDiQ=^5qxR-3>hlKUPUDwu*NFJ z1W&*Fg;w9beRIBP<&)gxreK%L$>+5!Oz?AYg3b#S+cK*5K>TUYznr)5@ zA4^)^ly*e@Y4AW{N_#Z(hQp`U!W1CNQFpuK& zJEu&}Vh!(~jL&))gyQX`BROSGkDqnq$Q*(+8p}Wy_AAc#UTlg zyxCPdyU^yX*x*u63SH09>}fMAiF9(f2Ftd$bMl{(9B8xIMRLVZIwrg0^OxE}v7u%L z6bEa}x$e8#MMDkBw>)Lb1uvXlR<(oaGM^2uN^CVw8*#)$eo$3m;VoVEy&S~B+{={q z;5ZE$a$1Ylf~H)Qhejb}q~;d#j^jOtqb{L|)(>)gbwfkCb30zC#6XXd?4&p=-SIuc zJEg+yvvbSTp(>84R9ATTTu0j6#R^#jYu6-}KhMq`7AKHt;qq2e+_&Q{vL8xlK7CdHeLCGoM+L&C28lU2rrR}(OMbdJ$tQDw`VRy> z+3#o}5ojdRklnv0(~u3DaB5_4*zIm#o`ZihJssaE?+hrjkrHlltpPN>9#1t zVs)t-d^?)`zD3o^jkm0%S;PaN0sjicpX*cv+w>!;mb*d%7qS$Vgkf2*!~ z!%xy2(fxBrzjo&CM0ii{l-snJh{vNJ#eTIDoC3IrnmkdIXuuPbqt8O*9oB~PI|KxJ zK~89N0?H__fa~*OHPNart6&s15TWKiz|hUoh=CQF&s+=%w1Wn-WvChJ&d+u}TSNlZ zB0B_cLhTJnTJQMAm{XKATXb}E5(z^f;Hfmfol@i5 zPjttE+f$n@XzK!;fW49I@zGr+=>DDu1K=A$TW?V4PTIUP=2SJ=45Y0Klg6P8xoc=} zxtB}v?xcIU_j)PXLQp6c$Dj@tp4JGsu%G4ID4MLgwwR(Q6;5LWx=-a^jTMcktsQO5 zTCdo?_BltM_Vi<)K7XF&BVqgAlv6^`oezU~8%vkC+8ezpf<7Y(3fPoahc{c$%lvh! zR24o%>Xk^|c4yc4jkjuCUBxv)VQcJJVi%o~mqpE`miZ^W$$;js5$E{_Td1i{%Sm-R zysCYgh#ZzyF4ZkL%993vNMY@I#lQoQD))NbV%i3-j?j7MSm0`1oVWAL-+AZHrxqSsJSfpZ7*VyggK42 zS_K^oY^2ZDD2h&aV~aLXUS@nUJ}x(JOo4oHHhp`1xkLu@%N+V5pw0=OF{i~1xZn99 zh__CW_#y~y5nG&kdlMMgj0JTAS@im+QGTwuczc~iSKnfU7aiv}Sviwf4T_w7mUgnQ z=M9!{vM<6Y;&V%Qu~QXB8@~c5Y}hVSPM68<`=}ulaD7Tym?PN@=|5&io}68rkane_ z6BP>5xR!%sN0TSgUoURACA;w;Xp?h_)Y^w;M%Wp#A-Rw1GRvNjL4A;Y`uAlEPmg-E z3x5G0%v1@tAJ95Kj-4d=ncQ6BM*OMsbel@>3rY)^ed7ml*w^Sox#_*qJ*E_;^1J`u2bVwmI%VLsIp#Ck23a_C;TEt zk|E5tT08&R1H@jPCC@|zK4dRU{b&Z7$0j25wsiFkf5WbNUtN>;U?WrSuPiypeFnPD zrF4NI74UVi%>$ak_+Cw~iCk$Bk(NN>d0JYM;NfzuoqFW}UCqN|jaS6^%ioXp zCUbE`td~&B&*uLz{%VM4eln%5T3Y3Fff5X3$aM4`shOpb1*Ee?x?{Fu-Xhj2S>}8Q z>9v1$2j>F=qusU#UbTGF2@iiI66L1gSFxhB?}h6wRKlF9i()hTwstLw#%S7!Z=RF# z3T6x`ElN3=tS63ZwRH2{(4FY$6s$wttn=P71k2_Uu3Kl0q%Z5F z#p9G^!apT7rjiZZ;iA` z4;!P3f-=Qfp3ZuH%Ps6;u!8ZDjW?X- z1B`Wce>}pr+KiACTYY$CKi*R1xj%#0NwK2&jtAGz`TUGVoymnOY#{);*Y1EKt|!M;`Pq}*Nks6u!CE6%Rmwn2 zbB!v>s_0;5#l(*??`T1VYbl;2h1tVvpoN0HuKD-~R}t;wMtk&?_swRxD4MxHINT+t z0MTnP6)^ZSJfk-&}tKB3fJ7Mbccv$T>xuHg3ESyG*k!MRxvPpLNJ4+ zIgznFK5|HDQZAXhMIn28?prKq{rUk?WcuFaz}J9O&+G$ZG?3D>O8VXkFA!&6)!Vqs zJM+H9V#NM&Kcw&4Y3 z&Kuj76wRBP<^;EL?SO4P_CUzCxFxF-YRhL$m66z>^Epo{mDp1EVmHI+5rN z{h98*;A{1C4n)ks*0@Hi9M~QW*UEn z-}(~SoIFKEZou4w#rNj7RKum9`<|{oS3?`^7yHmCdaB3733n4aQ*v+m6)oOHG`iof z2Vr~)8u{I*anOEJFty6O0ToQyj%+435_{zF*BZtzAA_O1M#tAIBD4K95tB6$u=Myz zddh>_O){!`pZU6jDu!Wu#Af0B>r;4TPN#X9IF3*0T+mvo<;trTkSxrV* zo5wu!T?Z`JuJ@8t>xZ6MJz!6OlDcEU1{baI6efm%NaZWLV4Nzg`$v$0hBYH79Cnzt4!yOzjJOtw z<9aLIP45JYB8c?rU31bGONPj?4I#Gn`gM*1NV_SXwfk2Aa)J7$F45@T!&bz1t=9pD zM9huwkDb^aP)`?5NcNcl-(xKQfjaTN${Q7Ay#%xB`Y97~f(``Ra@$(i(6NiMrd0r4IHZ?5XbgqHQt zhgZ%1OtvXb;p{fBf$x>~RVzO;6#|fydD`#!Wt(%Y?3>{xzK6I z49U#xyYH2w5A|9R5yC;&Rb-s>Nc|K>(CW@cU$UDU`Sbi0t+>!_6jYZBBN>60sr4Fsu}fkXl!kpTgpmY`h`X+^rBm+~ z@{Q{GUwVgCHtf{|$K?QNE~wR`s=L94f~$LxQdcEM7b?r;CjmaL^2n{8hSEbrG*EyB z@G8Ksad9dzf=Z=&(B;s!bNXYBPYTm^W@1u5^cex)zqHA1sLF0OGzEfHk~jCZDJ?Ts z9dAk;`(kL067BA!4J6KZMFV(a9{7j+naao?e2|~5DY8~si>X~rxb_;>+Zhj99Ke{C zN%-e%KZ!RMlnhfJl#9hE*c@<4r*k^$pK#fnZJm)s07TfpS^k61BLtt_4ay64Eadcb z_Yur--W(>UoZsJxaW-Ug%d)E-3Yeq*Nt}B{2yk$VFaBU~Pkd5YGff!6pfz(ds%t03 zp60WHSrb1kNEUfAUF1$R*ww-eXxE$10@`N=ub?Yma zoptZolY8qXxDG@A5tvbE43sL9JyPXQ_hh$*VNQr54H>3r=NrW326w0#a-~8Q+sbNO z_3fbxe>zg}S-aqthm(@89<0Uykngo0v|OJ4U5t?R_Eq-inMIKQ%^RuEe5wH)Zircj zFS;5PBhLDWaX}l_QVCJ%x0Ap1WjH+X?r5}Kgs?6MJ|8R4tQ%f;22HfoZY#`sKhQ;MrpUxLv3Pu(W!@$m!)(R+By^R0bBho zGZW<~p_b9bDw84MU{4cvLx`diOJ-1hjOZxet#t}xu5vGfjY89ynY*W^1sc*W#qjjRpG zoRCc{TB}q>?_fs92X@Zt*3XS%%f2rInP9-oOBVlhP8nWXg^3c38UqF^XsP~cYXrOY z3j+?g{4qVvuL*Te?ja=GT`78blwP*68JE&XmlX`IVQpO9GaL?Yx3>{;m72?IeII8p~o#L zL0Z{)>8Xr4`GX|}bU0IPT#Ots^}2PG2J$i0Mz8R(S6c)y0Wchl*HLJ_&_6QMVH4ex z8_!kPV{aa9PVv!fS^m1AcVLChl5To)R!(Daq(=l4pmgkfbgzBGMuh6|e0W#C^&0ep z4h{14N@KTpbXM5Upi~%wj$_z&S@Mh1v)~u9JBZ0yuN~r zq7`{_jBHAQp{NCn3(6Nosg?-+Fg4*pGp`v>GW>W*7FRbd>hGQJ)e{7ue!6onf2Gr8 zF-Xd?wNFY#l?!~i4ivQD>EC~~=Toz^B@HKKJJZ^At>$JuVVG;Ns~CR^WFb5cVMcyt zG=$EfPLa#Ku4VO)E&`va{|Qc^&EHdXoqK4yj|yD>eoWtEwMeu<=DgpA_-uofHG64A zI5~K;oNar?-Ru4`<3D9IR5oBaJB=T)Tl|gRx&}UZ` z4EXkeq9Vw#GYlv!NSA5c{T}9jOFYa9MSLY(d17;Kv#Rk;`kSKm%*=gXS>Vyo-o0*z za++H$IZNJd>xakQ0OEW2ki)LV6Jxh#AFLh0GU_5iZ&y53E8b!=S3XC0w_{m4FYr03 zCXwphQNYML*>Zwb;pU=Q7zz`6m5pp2yXY@h?D_;&;P9j}e|Y`%*Nm+dErz*? ztC)^i(_#T=&Kj(O`HjwJh)y>HWc5x%^_vZ3coCwKoGBwRPnR!QpAO}2O zI#j*8>e%%q_6fANald9&hqVayQrCULdG39%Tg*u3wMJ)kc?iK(BivVbVpGb|Ty76` z$R5;V{82Lbkf$ZkEkgca>36AXY@lxA^U+hTnQ^^dTYbgrj7aGphOE$RJCO2|WcjaO z6eIC1z6`}H%Jyj0ttWo>3Q_V;9d*X!!(;ToMZ@b5H|v`&?W0dkbXpgTKRBBt3*mrH z`%e#+M0CRQikvUNE0`4!u@2378_|d5yTom-bO~FMUF5Y`x3fL33zEH^BID%37%EfG zb+d`*8$n$%UHCFx<`EwKkQZn7JKsXH!CA6@&uVUv^5`9Rm=~Y~uq(b3nxr08(YZg9 zJ)}zc?vi$vqSsSUsDe*tQ@!^t2ICEYu1R-;u5I+=GaHR$Z1clIlNZkDp zS5Q>IK~P=GbT!-zLj(i3pxGzd(>IVMJ)tMYRr0AiHflCNhHv90F=*Ee$GFXe$4T$u zGFhA1q|}>G&%N2nM`p1-wddLZ^%KH)pCmF!UMA{^WGnN*WONx`&Fotc`VR$6W?jE zO1-eWL7G`wk`X_<6b|K$iYN3d1)+Z+`(Au{sqXakuxNB=yu17KoQ5lw*^>pu0P-fK zF#jo-RSt$xZ^1WLP1SntlCZw4i1BQuS;@)Ow82KX)8}`F7Nn#kk-Z2R3)2q>o6HZd zeo8phfQa{&5=f6o*h)m-=pUgo)>0)8A}cWHwue|aIQwHCmUBWD`}D2BgmUHlx!SEc z4@;9Ix1`>}~a6 ztFLqov^?Fa%sDVtTe0(L&0j%9K(Al2(sfR;Y$!*vFUR)M-tCa4fHRH|Oi+XO*Kj7` zef|0oy^`6QtNLZBfSrw&@)d=(HGg=q{!@LUUdsSW_*-y*Wq>63uofZx9au%_sW5FP zw}n%AeQe-|{G2Z{CZduD2F`FJRAiyb^cvEu2Nd=Kc4o+J4%`-6LPTO0=JYyjN2c$C zKZ~taY%?n%%Q&FkbBOkxJ+37Q?!4;TrCz)@XBW68=mRy;0+*Obt6ZnGn#{*;&&ZAM zd@JozFpy_@z`E91B#e);OL|OjFtsA6I>@Sh>Ep|wwaT-ze^xH01AC0!E$)8XCtUAbaC)3C7_?+PZdIG3f2A(X5x|T| zVbTv<1bfucZUoQ0Ybl6P5=*CtE#@w^%pZ1uf#=1A)5FsxWVF8KKgz@~SY9i%Pe0C| z^ju8M{`wHO|JJy{Z6prPABVvk9eWtKm2{r>uu=i?#2Jx=OwyDuV`M#SIn7K7Dgq!H z0Np{Us^$RqZBDNzR&{G;BuTKn(qgiM9ZXQU)VQv^5dSwk5(C(=nu?K2bsiZhVkCT! z>i_;i(03|(QjrTnJVn`MqO(}qdX2I$1AfUA9y))?kaM+$45Z{ah*Sl+ahy|?Xw#?jDSg`<5aW1~Y}*6Fbzn9Nc4WQkR(V%wk!mO0=jDf)bQ~MZ6 zb=#IT`iC5M88>35uD2Z6daq-2QNzBC7+)pZpahH@x4=H{&IsCxI$HF(D9BcUMPBF; za*9uahNqX`QM2g^_VI)zf{e(Fu(F3(Yvm|c-=V-(8~vw43&_xE(iEKN2M})OHsdss z$F9Zl*dpXg%f>&~RTRpAA<6Oxxm&*E@}k9W7TAj7#){N+R8GG|plg++SzmG@8+z@g z#Reh&BKWkH>r%#w2WDnXH5X%{8pS+j#`otD2BkqZBrn_l*aditz^bBxW*QWo?PM1$=wuQ2M6m=19RKfx6zH&ffYDUXo{+`ECV4 z(Nt=56|Ao!?uE6QS&O1T`*qDg*SkR_HN%?L$@zUiGyajBCl7#SE>=|lQn&D@bRIS5 zWS7A$EPto{3ForqcQ!_-wXK=6E{OnV!vsYebztph)S6}6)(L06KUH<5wB1h-cPhsD z=fcj1wow#I#R$&cy(eiWtOpVd1uDS4!7&cgt9{t~;-6+A10G`!ko+ZMjK?67F=Z zK=*W2Ca+F8xb&?_V9M)G^-nHA5y}h~+@bnUK5Gv{pJ%3DyfqR+wq1B6YM2iGV1^Df zrqB!aJndJ8^Zj{8y^7~$h|^7mcIXGop2+;tt185Au@pnnq+NSZb>@q$_df6_Blr_9 zY>&b``Gdf|w+_;eRZ4j0t>@gW~(cH+tgbq@DQr*3W`d0QuoSeUOP?ulKq3oLdT z)z!i0_vKek26ieBjS!UQyNZ?ST?@sS97A7{;wAPNu!49EjHUJ`Yl6m%Y*7Mf0hZ1V zhQ0j*a+BlpTHBMsc*&V=u5{A?f#85;JAb*(psZhJANR8y+B~;cGNP{5TrPF32N@@J zR}eWjc3lw#x}7nM@l~Fx^PW<^KU0W;R&z>qUyRY}z zVX>mzO!PbT;rY+0)LoScj4Aw~obw|{Ayrv)KDS9eD8lagXDl|d2UcDv|kZT7hME6~*mSaka^U%wW3 zL@2%H@+y*2B5_>a&ag{*;-X=zl5K?aOk4YcJ-)$paL;4*V6t5cS(U7ZDl&3W6%k%9 zdeNi7)oV04_GT`?|tBP=EvIzY{9IxG7d1s1?+EiW z2ybIZRt)ut3^Uh`@8qF!8)E*Jyw61SR@EA(do6{>wJkTI*S&rnTyGo8dOStl4B2s&X&Yh?6Nh6KQ6C61s{2&*`(V8>!kKhhkY5)T zS86&^9<%^H7JwH*cG{O!4dwdmKX!JfqzNfN_v_^g9%Jc$^wjGVY8pSy)_l1Pp|amc z-)2>}fa+)+SRGS1AKw$ujmPo5vd3{SZ9l}g%pn3Kl3Piv`Pm#*Ac6#`4-8 zEYV1J&*zKdnSj7Z;S(Hf^5Ps#A?KAytz~q2LL!(3IONj%d4z|d$ zTgLq4w|x8j%7yY#e0pb?@Qpo2+wANe_K<8%2N_-oP`T|;8wa8%T$~=GV3}ORuerbRW4GZ!V74rLDOGh&w7E5Fn6XUTWoT@Q91;&-;Wc??Vq<U+q5Gv|R{hhR3g4))^ z8PKlIsOJ6rg~#JoaG!B*%{}|Px#T?+g4B#s;B0Zp=RjOCrZ9Svy=Hvkb62iK@I7@Q z6{R0kzE#e7cQRz?{%kR;8F5_w&PxKc$#?jZeL!`9L(F5?!}U{!r}!5eL?ua;kD zw!Mo@;7gB`)6Zs9BL?nxM&U6@R6ZkLg3}7l_qitomox&D_6TdNC9!or4!(=oP^QUmp8k9Nqr+gX}MySj9G^*3)9i zUE>YhU$*Q9juAWq7tTS(r6$RbVGZ9Q+9L&3%{R2Uc}wBmb}m?_qYKZFcGp&eWd^sS@;V@q0n(R?S{t-;VDmAQZ`ayfu@qSLYO1kaKKum=mHba&m7)EehJkB2^ zL~fYg~cE8kN==t0t-*%~ zUl^qyBP!Um1US?bi#R^Sjh6emJA8+c!R{wUdTXK2%+E)OHUr6X0{n$+>w4(TjeD1d_X*xBr~s#4O)dKsv z63qBn9pSia(JdNj?VcJJCMTF)xun+X?J9$!_2wUcPNp;Bw2JFBCq75k7Uy2+iH}=g zJETn`nKAhmt)|H?8CVH0{YGoz==%^Yo9NVXYxFG>lf-(;R@W#WWOondi;Gv|1ZY3O zQ1{z=H`D>9JYEV=bZk7n*PZ|Mqn86&@!)1JWr9bR&_T9tmTH)$rf$I zXPVIuTlrkSmx@Z*dQ|ziabKmqCWa_*J)<*7R7Yj<9C^H5_=rP7zlU}|t2z<9p03G7td z`Rzi?(omnkfuRvy=H`L`1bwjZ<-HLWF&YdnZe*z+@`bg79w2 z>XKo`3?fp5A_k?C6CHXWPhBpJc6|9|?HlGu9Wk;>PeX}WCgvo?Ppa=YxpNu%1M(2= zrXao*vLCn$`Qk;7!PC8gXMm(Xqo}rbKmyi6=HsB^Wo0;+uOTcg0g5wk}^Ekt! z!veUAjG$u|8WEdejm0Wr=CxP+)!a$@n{N*s`h4-Bg~heN^>so1V>^eK=6tN^5U)jW zSa|~rffDiQtP#BxEL=OvD$K^)?Ym%J{uCyo;<0hkVN582K~oukD;DL4X@qtuLIJq( zc?TgH;!`|KnXvYPH!XNj=u@ny?x%zVzC{S+7=OU(A=gU^3g{EfjzomKYY^_xm+g31 z-1lxL{lk(g3U14@t!2+!pEo|Es`s%d4`+UEVdhPbCgqmeU;Qqa;%euHx!e`!C;X*K zW2J^R1{LxW8yTOQL||Cz>V1#R!kjjR8YyK5msc7+lAw{pnLCl-c3;)lVu$zFSX%?)~;dx6&_Y3WCtN`9Z@_A|*- zoUQ-OQ0oh1N|Rm`9nCJw%v$kG6*_DsaJk}Lp8fK4 z6wu!BZTXizXy3;k3aUR<<}3SNDG-z+mCt`txyd^!-hJy>T}9d0`)kkETkZUO2{LYG z+gd4_9%{8C41bkInEa*y2eik0jSXrZY+IWpie5WsMhw`itK6FEOU}yjLO&S&Mzp?;&iw+{UNOjP%Mc`pDo6^PdvFL6s< zYQf`2i(!%4e-=6rfO?M~OF(-WY8HW;M@?!b1Xd_dM_mTqiZ;+l-YS*>B&V9WDO%x$ zA*3tzM~g4+gT_9jQKmtTF{o2A5BN7hGD6@d!>Ji zbklr)HCCj9qiRw_jfBBUSYB)Frle0m$>t=9=i_o{O_!9at(0h&s6^2To8GxI^FuMf zvQcQ4H@d@H0Vg7;$PURiu1P46afTElSj(b5nSnv13ofDm|pEuA>~O> zw?WQS=B_pIb|D4eG_p5g2l^aO+($2eFYdHj5BvKxADaRA?+^PxD&IMYJLum0N{y;n zdMjQ?W15uIyJ~+B8tFOUR6R0-ncK-)mK!Z_7Mb-$!^6yP6n!dav0O&nMxt6*f+ zUN_m^TT7e|%vpNgzxyU-lQynfCHHW=Qcn(8l$6VTiAZLt6ZBub8CcS0#BpKLt3CDk zexif%_9O&bRQ7aUQ}OA<%?Heif3@nCkbRQ^E~*KI5@m9_(B?5N5L6P38}PLCG>l7m z-j*1L#mG7T$aYBMp~+|#Ky}zp-Yq&+_Tmh4N2N1uV(7qXkMGo#s!5NAkyquQvKFF)yQB8*OhM*2oT(r0MgE|gxmBWUFYuuQ5Bt_Vigar2VCz%Fnna|< z%j5(*(2J*;h|ps%l!-o5n_u2}bjeqlzWQLjs>~a2_$;D-dpn5nzG3RI4YZdGIiXg+ zNk~guuL|1iePV(fRy|^Ag>+URZv{w=gvk5_E0kf!`mH@wi#B$A-2SDm4?gMarAMcV ze|!R1qYDgYH9=0|1?3Q^b9Bs`_dYr&Lp9|`5VDTh7fX8lTW|QT`HW+az+{WJ>rMnW zs5-=+U6m*pR>PV365$+XZ-3y!6i=U7{*ce6&=m^NzgOT7MvuCVU*v++Xg2GxaGp!J z9Km%T3Ac4RfNwPsNU_3%$TBW~z46XVyE7slWF5U|+k}0`>9zFq!uQgLKW14zO;OYp zGKtl{j7y$I8ya0HE2YP#^t9gf&$6le^Lr=pXgf8lO>_Q|N*U-&w?*xUi7tzJ;jW)R2cfsY;^X>D_89df$FK&7>43-m5+oZ}!^*na(LH;o$@OH>)9ogz< zUk#s~C+wJC3h0#_n=aDM?fRw>VRRymJNe=GpgA6iHgn58*K?e_#or+?Hcn0{1gIj8 zS6qHkVxDhu$VzfKuT1Lrg_8CoJ2UG^n6EZ%#s^FCeS4d%?jAuG9;jrtz``)M&Xcussdox4~Q4@$+p3 z#T9T}9VU()Nbl5v>=QRGeVKU?jtm#7TS5BvQg}OtV)oHVLF-PrR6&rS|JWl9MeC@Q z(SfUSBN&3RJ4$g{;!K~CnV9O%gmJl6aV_RVh*MZ$q)uMPBy+8cLsmG}97?QC3Bkm~+mJt{cvM77agMv61=Octlg zo6EWPpkfL|8{U1d82R##nF;>w9jc7r2v7GR%3&~In0SnqR5*bSN8w@@L9S?YsJ>{Y z{F$JB(&}7{nJSE|uWBYMVPMAA1}H?j9!UzGYK`w$O_V9>dq`&=z8+h*tSGbfUiu)p z2Vi+Uf?!e}!DPTR;1=YvewPqTg^it6G+fXW6bM)1GfM=W@Pq;cD0f*I&gkXmPo_8 z*MD_C6JV}GnLgb342Ju$IB#;Wq&~OtXuZ> z#i{L&j*puJZ;x$b5bN{AguRVAsfYG`E#ki{=@@dW>(p4+5xBhsW_GpzHL%iXYtVn< zV2Sl)0hgYlxZ8A-)tN!ll52gY)DeP0hqEA><;zGNt{k#c9lOUxx_cOGxOE{{>y>MAEgAtNW;ZJ z_5m-?`kmb8L$}5boLPrYkYq;2f$4ZG`NP5JXQnjyL8MOg*>%?8d&wEha>FZZS_V^X z>p_UGg_cJ1RM#6&jl?C8&Kk|mtmuI86z5MV^-Zj^wU2i(D*iA+nY?#xBnFObFNd8& zNj0zAuI}TiErPdg=ht?U+ugtT&skV_N^_-3muyMYYh<*Z_ymJJAX={BW_{uX?=b0} zm*N>*Uh-K^+%dkY6zyxWBR)F^=R4Qlt8u|ZErTBHQ>I%Cn{MakdM#b(Ly^Ky++p{z zM@Lv!a>Z)DU&=%@!q~3WH7D_$8mJhb$|>|Zdyad4H9fEi0Q_SR%BY}rvRDR7I;4}0 z9uUTd8WO<7xr*}Mk6evZb-ghQFQCfAuaE=s6V*u7>BtkG)xet*2`%uLKW~EVA9|@ew)#vz}ld# z$qF&-u+=NW%l_*l3O{}fHGu7BXAAa0PQ3bG@iU_7Wy}RQxAJB0_+lzSh}&bgBQplZ zG!LEbNfscU>SVFyOx-!?{7L!=4gljTYxgia*$rf z)-navy)k%g_F~E8j*u5B--Em-;2vo>T$X!J{T`-VmdQPC-!g*3)@2`hF)0M(`V34V zi%e8ruR%{BR6pvb?h!j0&Ud#NGTpN-Hf0$ z2U7Y@6?9p$2&9~oWy1gBu38tfg8R#hDMG3M5{cp}RWLGB0Z+GR`HH~O?)u7wc@peN!Gpo7!K0~ zl$1~S1PKq6e3XyL&-&puW1qShvuq#MG%;tR)0*R{;p-g(zfs8DSgcqZ;dTFY89b!M zp&xEV6Hu5$8oINp7q~IJC*R~~Vg=`D9oDZt7QHu|U(0WG)aPC;J^{H>X`b8}YiA3> zNsszRWPu^_dc6E2Xd^|Jha4jVaF+|mFRjcOD>i}AJsPV@hJth0*Wu(-6yDSgX z)l>H7p}kn-KV>>_x65-*{ej%))STk=M>rearR!%25^)>?qgo~=`6tZ13dx7*Bqgo4 zTDEkm_h7b`k?2iFP{CT|XM1Iz)%V`cXw7!r)GYHl3?p}BGNx?s#`g|mcl!Q7jVG_D z$8=h5j`f-+vW9c#>+0}uuZ~5SxPpSwb9o1?J9m@|ZlnXFgjd$^QowkD;+l*jYYa9|40%Bi29--Vti;@{qyKarqfQOigif6=U6~}Ncdzc zcG<_VpK`J=&{%CkT)XC3(etwcyy)pb2Q{P__Qnc=>`iAW{qf_I2txv1r1~NUukgaf zxN)jXtN83#p$Zfd^Q>eY@RbS?6&D}ET;ag1eK$no%Zef0-4mC?j)obAAg-l%ya zwl(nCy$5ih?bKanOOx(o)Sgt=cZu}=gUL@K50Hh-UK;(CPW-)}j>U(LG$r9bIM>jx zNlEdF7i$s`ae?p0W&Zjj{!j99OgkhLqoI;?Xh_fMFVxKa1#!`T`gQ*bv&b=9(W^V| z|2aM{+E_1Nu86g6i7+d8psDM&x?(KEd`@2M0dks>wDg%@n;a%dc;P3f`|}s^bjcwr zqUp=Tf7DREV`23z@6i|4pY6BuW%VG8r(#^#{&iFT*Q*(F#|;b&UTgSP)YsR`txD1U zUh4dx-}{di{FP6#0tZD8@bK`Ax+v*r{G+A+DU$#7?Y~gt7o!)ZH~qe4UcG+Es%XZe zJm#-7;J@VczunwFaYQAwF$sGyv+;ks_MbxjOBec0kEqPg&llNQj)Q(r32$YLA9o~0 zGHawQcnm!Hy=OV+?%fM>yn3DgpA_&f$>zTc@|NRq z$8{~UyT--|OI&}!`~KG|aY6RT>H$9PraNMJ{@&mh?@#^7G)^(3@RPCOe@p8B{Pxe6 zrln`3T!nOAJ~}Aj#mNr1{jX*G%d28yViHHr9LYS+mwWg()#Ie*A=4eLNT|uOlrjg8 zreGG6BKR*E{5zj+IrC=h89A#S9)tegY&x!Zuz(uhK38-gXTHhtH(T{Hn!+3e#M`&5 zn@q1NOg(1l=x<6cB;-;?SflpI?zt$dUyj(Xl$$xN3R$g~OX0!apYKb@jk%j-_p<*U z8~-2K`~P~Hz0oVM4q;x;%imzAeu)e3(%D$x+= zQ|xM(bLscA?){Ox13Z`S8!{{3|CXv8(a$I>)IJ_^RR5Fr--5Zn(eK-*k8^SHf|!Pv zxxycDf)yV7Z}R;g|9OG$P!jFSA>-?pO;~=fpBGNrGGRgv`2WSsy7Utx=rd!LNk=k& zS7ygU<3cnFpiDzq!O7b2yN1%Bi8bW*i{Dg<3nxtvadUIe4qSu9$440UEphy&==(d5 zrW`P4{)p#Vk$)GV^`B-gqO${M`3{!!D_!6DT@`zHkZVRt_sH*=?pqgRkN(7GpT}ha z!hTcw6;BTK1V1`h$en&*Rq6KxA6gvJK6mi|Pi;g*+VANpbCKKliQ3~1{XbCn@Q?*m z#l6t5us8etzgj1LxzOBEYvK%H&K}ulmWKb6)Ac|3-}!?v?Ka%|TMy}7($>Fx^Dmly z{M?JJt>>GL?#Ew*bxVJ~^jlW?LP&`5jFkS-Zq|^Q-=E$}hlI}T4=xN`{)uZBoBGfE zruJui`O!@KN=J=6+vVui=8NPkJMb8_@ zm;1SY`ahs0pP1h?ZU+t(>EB{w4z17|$JDw$i~k`qyXAVwKs8V2_3}Svxa7SMv1-Zr z`^ZB2aW=McpVzEblKAQ}g@4@f?|kaNbELDgGxUHln_|N1v40ZEzwxjNi5D9i9-EF= zOWwYH8&~PD`rB)K_fc8$y`v@e!6%o2zu7kJ|Gy%&TcL&wCK`1VJR9(@aCe}E)n?A2 zMC45k9{V2;4Ba-<2qyu@;kVj-9^Lr!|6}dF!JNn3yh{3tPj)uW@GzSo=NMK$FrwR+b945^|}^z6hfRKQVFVB)>~Srl4T?1bg)T za`|ocku-2kOe+4|?A++8O!>as7FR@5(@XX#buJc`oHk>LO_|@e&GMyhclX_|Uqd6$ z&T2_#Su64Dz8C&0-rB?WPuKvV6?#_N-UwoG0&S~vk9Lp^i6W0e{;f^Ja zJk49)y6>Tp)jH|hRE`l?3!_OTwHM1qScAmcjEtOjY7!lFQb+ZRxiZCMfrnu|ECv#;9`JV^srZC zwuNG~|K|h^fock-bSSey4J5E%zeQFuEza!oRpnvOa_Hiv!20#o;^=ba+mzE8>k*;~ zM;!fpp8z)D)wu5Mt`8-(KV=NdW~Yo+Wtv5`0~7d#mS3w!)Kywux_%&~qqkDqVuPb`*p z!3z?BWRKC~T8+hZg7|AL*$7Qd!P4>ENZZ6?q2u%WTgKpJ01;GH&R+?^L&q$_Zano$ zcF#kuJVTEGbCiGjW5z}5zB}PjKi7AhT6*f*+%@{I=*N=dHuuHy-(Y#}WAozASgBm6@8Z5?4VM17 zLRryU;nMN9!8@tPg5#JW&+Sg?z1RLaeC)arZTk7nr)Hvwz~B3~+yhtOZtkhG?ermm z?C$aZ;Mo%uTV>9Q3M};i|G`KJu=!dAI~DJQ(#%C*ZcG++c(GO#(0Wu4t{U=VES}Ko z9P3OZ2bVHS$cO4EWTdBj*JAL@qu zM7cCp^@QwEdaICx2N<0@D@M+*tyx@U=h0ypLT-r}OLq3y)Ifgs-j5xgzQ6fd|9BrS z`?}p@rU{A0f3c}Qv2eucNp6=@IM5<-|J_h9W4xOwjfpMqBYqSn21{$wpH>E~WJ*gt zu$27owMh!IJlwHz5_MHMhm1CbJ#PNnqLke_Jz4SCS`+!Feeg3GM;sITX6F3=!4oj0 zHvnuOTo5sP5-M2IK6L-zBKLeBx?5RTk5>QJ9O!!tZ{Nj%Ue37C`9eqauk-$YO-w!d zTcneZ!^Asy=Rd5|znHr}K4o;qDc*}Kz%s{eeVJ!)g!6B=;Qz}PT20zPQ{ot&2I~>q zUvcDrI%)sT4c-_1O^X06l<$9g{5Hc$cMboaw$A_cv@tRQhXLHzW;yUJfk(XmUqF?2*v+;(#mm)H$e1ZuhwAY<-EEW6W~k1U2cPP)GMD?>*?u<;5MjL3?ydf zbC|!ijwnlGW?`AA-(5|ERw$>44kWI&TwXKfrAb!&I8XRrr1k`Wzn2a(-=yk5AnU@y zLWmK=-z)|bTl#5ToUywsy~h@QPxqv*?TvS~b;prq!J^DUV z+;OyCGSa$M3XB9o76XYw^o&yCW;LfvobDL>{Ptks-3UNXHNZ7Es)f#kg=6Lkr!Zx2 z8qI-O+l4qg2M_p#M_=ids_!vPWlnki4iq*9z}uM?8(9DKD`%70LMiooZAk1p8TX*B z#miswdQxb1vz$36r!A(AWV1(qJX*JWC7z_;v`}U!{4K}!a|9IybZOO3m=m@Vyudr0ari9meAw4Y8_e?58~=r0s$p!*mio0Bm!PJyfw+^o#WuJ_(? zy~X9>RBAI-J?@AECIk9(Y{I?0V4|wa%YrDWV?nSGD~oPTH3>Uy z94A%*Ki^$=8aE*&Po=xQzP{qEVk%nx#y=gdpQ1Rml(D^ehgD1U8OKFjM`P74s%J$m zuPfs2;>gb@D9A9+FsG-cRseIk`|$@Ai}aMZ&%ap59x$Xl++;|8Z9}slC4)VuB3fTW zZr(So$4c3BCf_QEnM!QC{FqSjcPLfIi)*V~Qq%2QR@<4&`&D>-mvGzY9w(vk7U{bK zA5cA4B|g(lF4M~`YC8UJhSn5qv1Db%uFTna3P9mD$OEFth=?Z-9xOQSz1~F`Uje&m z{_HXC7W!!4{+aS&Un+icZH#_+Z4*;<@C5q~aXzUlHxEy2Pn1-&fn9^q z!QmkbcS#j3Wa)v&N5BUBe7p!T0cDE)H%DRi@!m-omE&0J!>>VmV^$uVRl&;I8QU(2 zaS50_E!%xcI=jzsPZMe(Eo;TySrIcx31Qg~d$CLEl=;WqxDa5>Qz8OelsZN9hTVFP zEqJ;ZGezK8OU{Ia3loo?Yl*4z?d{$H*-8O^&`Q}*6qhCwUx`=sw~eT$m$_`ZtHty; zS$H`Duv@y0$xxqR`#eaM0j{WvV)S5vf}kD$h=0vi?1YFOuxudmfKPM1&r{FAy-xKc zTeNv4X#?~>K<$6QG|Uxo%PR)!)Hmdgurjy}KE_4ntEXcMhDsYZsNoR1=Hr_lavekS z7B8N?Z5|E|#lhz$nY3O<5eGZ4-M;u|fv;h%_}-hA#P+~aLnLjZ0>i(?j(?j>%NQ&c zGxCEVd|#vIjo_4%oBaath5!RUlaCKvdWg8@P8vGyF1j@Hr77|Ux|PgN{6vlHZsO65 z_Z?-`b=nQOO)gXR0&T(#10?l_T!S}za_AL7T z3bJG`e;PSQH{B~GY2{5`J@smWdvb<=_=+CYxwiJ&3dK`9c=fZ_C`+CwqP;z3M2NMp zH_mdRHWOp{!AYP0!pZ#Azuss5uR$7-HzGk>)O6Pu$eS#^YL*sZq> zx1_L$Nbdq~6~Cad|NfGiln8jH1RLgI-HZFBz4N}j&H!>%vfbRJrQW!cZ#-y6857+n z3mA%fPli=gN=_cv*PJ$HY+Ks6e7baoF^k_H@?;5`+?MdJu$>mLBvDlCrLLwW{Bxuz zeTCcJ50?TLO~bDd&?~Or@N*03J6@#ImlY^kH3O ztaT`FaE-wQ8Y3kA?bUO`=)`_#(a;!~&23NDB`KOlnPD1-Rhsr_SdHd}+@lwNjYmw& z*hTO0jhVI9Eq0hM6p2Junh)qBn;=#E-h;^?W>(fINE*gQdR?A;n48AN#l__VPuS>{ zzxC};I)yE*QoatOU*|LJzF+iMzs}AV9x^#cvOPVn1A13WZi2g;3Rw|3UycK@V3c(i zN9(q@8*<;C|C~!c#x#PJ>KQ8-E%ur&XX@BMwEAK%`(U3$`4Lku2m}7Eiuxz4Xo-(? zd2G!FFYb?V)Kp)q*q!L6>(aTZ6Fv2o z+(>wqRwJ`q-`qOBWB)v{Hbu|0IxAqnm`(iweS-5F9V>9*Q1NV~jJIKfwl^q=O-%W1 zhJ2tU)igjaz$K)tvPt4G!e$lIT*s^cxl_3HxC%->@+7B(R+Ld8z)h*#qUfNpru>!U z8Mh`dX+zk6Fet}1>F#CcO>IthdqEBl; zqzUR+(ub!HQlfT4F04o1r(@c^s#E})Qgpx3{Jd7~%RW-3X`q*)$*j3z-b1P*TU3D^ zwcP!JJ@O$9`)9E}(;9rbmSfETo53Re;hcj;vH`xp_{AoWyT^L`eRjQRCDZGG?St!N zl?lk36mZ&@F4cHm^U?YvHo9L=SlHmNfTolm!`1^@$7{E2)j*LZg)FvFq1%~DpJW;p zPO~3@`8g{Immg>vDU_9!_B^XpJ9Qmgxy<{~qv|9%y&b3BAc*&2>l`CPZkybRd~aAi zpkFI%4w$8O5X6)`$6V7jle^E|xI}RYBf^Y>5%ja81S4F+mxtH1D9TwRr#fuELrf8I zGE8b)itL|xuh-DhoR6gIXJ~vzLTxuQVmv4Av!n0?Q}3(EhAS$*u)Id9Y&t z)PPWN8Cq1=ljp>rGv+_1uP=6$J~$yUK3B%3EZCLU4m$DlHQqK!KV6cC>)9F^bZyTn z5O1b2?>~!JsgLW1!ELHb2~Q97)oqF!YVWv(MmamFtXX`gb}BYcvNjR)O7%}#bjsJW zd!t``r2O^STQZv9I)o@pG zp1y=lM=f1ttKp5i>Y9u4bTgJxY)KrQm?HDc3}?W-4fVVbO3Jw26AX67} zxeWz}+CAAOEd-j(#2PT_A*W3*PhKMR3?DxmRwrd(cp}m07TMih7*@h%*aQ?Xjh!lJ zcHW48Dl6MrX?pI?{&Wwh_$@5B;-VOu_BVj@S4;c12<0dBZ{qr{PfY;!faGJ$vzAM{ zM3mk2Cg`U6lY;k?r1=oMa(XCQ!D2uV7o+4j!k|$7! zqs73*oc_v$!ESgUy}Puk_=hITAh(h1!=<9KmJhYIB*~7wuRMObODy>BAD|D_E<-N2 z>lz$~W#ba|CaK~3RTejIo8jjx2Fq=CcH^7|Mfx}>*HhO68N447d03791a^h8J9aY# z!YnGVjIS2!ZPyf+d+2 zy2Fr$#IvGOQTIplHj#l_FI)vRJ3VnV0tG-9nleaD+L?D;^BcU6y6o%+d&0w@1Jx+J zW5FSur=bEFqPEm_!+XKTfjh3{_4kPMW{bPo@QzsyCN9!$XlpS;@kc!K$wMG-L;j7hmWHFH>?!$Fo*f&E zvl*=DhPw69xyZLzak!2vzE&eh9Pb$wzg+i0aVfA-jK^z5&uH{!^legxZP@8rrF*|e zf|t0-&ET)W3vqsv5@mz;2$cD$}$o9;XTt&Ta z=!2wP&k-sYFY<{L|6B14w10HZ`o+>8Kh~eqd_B+la-Bu0ug_YDiRBP@EAh{+wQ?6PG+q=e(q{xGudCqFMNZU+BEXh zTE5LK;B($IMPZ*uWw1TxzXK z&U@)Y>C;j>)^7oxaAV`dbwa3>R88UVEi#{q4(UdKK2aX#(zbouN;Ab3_The11rn6#{LvdAaHTLG%LX`!zoaiks1J? z&B|QA7F<{g6V1)p4T_1ObH?dc?Yqf{-mkl4s&u%y(={Xktzb@`Ak1f`$-09kHRfS% zmajJxv)rEt+wzgG9lf~-&2@{sG@Mr7fVI?E&o5dKxnelSw48*`6RW`|nn~WkYm=8! z@FB)s{d4=L_?9k!sK$~CCHk=4)4M7AT_V9(?I2r|ES6`_=Flllh~xKmSbeb;-4nLg zpl~bu?CNZ-mFt!n@6D!wgiFxJ99t1Gs=sf)zs4fzxCE9veW!?eih92-Qmnhx^uEh| zI?u(DQd3(D3ZWu2_u5;rNzh$-!2vB8M9r?Cc;GDqR#5ordA_W3uu)Xj*Tbg9OJ3JR z5-g71!*(21LG(@4fHB=(hg@URM32FT@==zn&2)^T4`_t#B8$qdllWB-dD?Z6QOzjj zLb5scO}ZleIAW9=3U1c!PnKgbM89G*?mDVcr~AZ(21D6Z9Bm>Ho|yh8oQ6WKTaUnr z0n?J#AA_p)lmHTJU390Et5=OKn@dOwP`GvxutyMKxc<%Jk68%c*vAe(Zl}n0XzAN3 z6#>2M3r*>4ID{Ie!BS?=$HUy?rDO2kd+TX>`A8R4TK;?mU)vqS7VE=jHO*}!v?WyO zOod4v0DI3MokBhQFVa8iNOv?F5qZvUD zRVXj?>r4zh21tn;oow$EDIcxSmb|L&Njwc<5bmDzRv2`&zZs$&ypYn=?k6r;yQlwd zZP4gS#gc|;NSXTAR^N}Al!Ifm4OpTPUYC&G{+0|~nS}Sw&eNh|i?>$aXe<8(J1~aH z!yW87?$9~FN?SkZZ&w{c7tb7*D4mf?=O@~wznGe`UNkkv#H2_s=@m|n4&v=*OZXXq zmskjn;j~IAw`UVM^br8N5(Qb3XX0))wY4oOk7p8_Ckqh;qEDyCficg){^vt`M>q{_ zT3jRB*0NcnB#KdWMlW7_wA8B4N&5zLnR5+9lu<0b4k~!6RnPg#bvr4zSZ|l_cI54q zsh<<^g&Newjpy}q6Yf}777_U4Yv(I=ZeC5wsm~3Dj4H4+7f;ujHN6jkw6Np)mI=uX zH1+%lfrpD#*S!<%?+v?$;FR)(n*TCOFD?VT{nU@TcVT1)UNagsYdwb6tq`(;c8xP(!b(B`OchNjrp z+TRI3qCZAe;UzML<444wjF4tS9&s*P#{q7LiWlnF@`W7(<~F5^!qyvNbhJ2z65du^uN`|0-rcQ{vY&Nr*wsX#Hj2r& zE{0Ib4q9dGw)&s9c2~U1+Eidhj=GK7C2G6ai1^lptK3SKl54Eqg4638DQ(?t<6F zQK`_a(=h1FX7T&)U$B?IveA=s-&wb_NPae~MK#TJ(nKP01cGc;1kP5S5rNOZEByr{ zB?db1{gWifp?BS#WdKxU0)WmT!`J}xT9-V2672sGN&F5css(O)<$I0fmrh_GHrfN? z_XfJ>wo}5RfYRsYI^7C+AUpbivJw}*+d(=!lYQ>_bKd21#&R-}USeH6l_7K1)SOj> zrWnL?V!A3g<&Q-#>`PwK^j_Eqp>Ubq3vDs93hABF9`8=|w!C33N{piGuISn7p%4#`J3|)Wj zQtx2n2H8p)2e!WE%t|TOVM`gao*uX7j;7UY>#`fAw2j~=R(5(RLfu-<311gSP6sa& zlD(mY7ik#TlSvnsO1$IH84%cXs>8tC=m!#HB^xhAjf=>+F}L<4E+1WqiB+|{f9Wfg zu$KiJFsL$0O=tk}ptSex(B+{ArT8+|y2Xy8y{~kdTBHx$wD0v!jyP*)^;>atz_gpq zwq z_@S6I9lNT4%?k!1f$7^q5|le<4qs6s8JojbBTnptI5C1~WpKQ->Y(dz+J^p1m@d)+ zV4q&r2>B%8J)n<5*`HERjbe7-^v2jTbs=-R7+ZtGoa$_40s=Qh8v}dku`<94B-W4k z(LB!NdzJW*KZ*dQ!DPP$%9xbCF!VLyo=)^cZrk-^AL%NJ?xE8wrh(G%aYHxDYxKFw zh>M{6ZgbCI<8I?-D8~Z8v8(%1}97>JYT%)<1&vTBIr80v$N$65e2~bv8=4h zsr-af4aGmS&7Fvxb+iPcD9$ zw5KS(KJmOroZ{J&ESoi4>pzLhpi6mo+Ip9)ykff7D5h`gv}9ZR=GQ7Q6nP0388Yyd zMFG0^fUA{x>zkSPQ1A-3N$r##38O%l*_aN{i8#aHv3AEs`KGv9Xjmo3E6ie}&qn;Q zu?3CtfI%a#Co1uN! zhGB$8tNKb8p(ALz>kP!C(L(cET9T5bldWpO@lxy8i2#8d?ItWiqHU{5U4uJLwv9=1 ztJ_12ryuEzR|yi2x8{jHX=BQNPd$=`1YiS#zI>P8gOGb^Jt-SvBkZ$$=sN ztx5GQ@xaWOF4A9KFVr!ObvNcO@1bf-Hddnsr|aA-*wD+yvG4wv1<_B!D9%C)3?*`F zn94CFgg?=^ctq4seLJW;GE-0SP>FQ((j zIni+KYD{^D_xUnH9|6Zuw(RWe6&w-TsgSY!2)+-$3S#6hn;C>`@(+zK9r~Yj^{5EX zGRo6_sDCAUPLKD&{QaNN7X^nyLc!K?SXi8aN1k?6sPK4bEqP4u5N8v)w!qSdf&%mL z_*x8^DP%Lvlu+7hq#scvsUq`ySbZV$g`ll|O_!#OhD@GCV!2KLvXpLVcv;bKdK>u+ z7@HVmI!&NB;CGG7$0!K2s7O44$eQ~K&dlK`IA2ax{~9IMxwXAzv8uNSz8DH9nNu_o z92lj}Bd72P%h~Zz^#$BBH&{wM{Aowsns4uPXZM#YE(kCCJam7>6GizMSHBMUrK;%O zvGD4TL>tha+A5-ceC)G`FNJO72WpLizHI+P=r>mJh z>NHq-j%lCb+El=?S}K&cIQaah4!NCiPNBJIb3<*(O5;d+ve)^&HBvSdP4HU*7lMcF zRfySVZ931^3p+f%T#t=SC0=^ia(DWFZ%kmU5W7G1!#{L$`l6nLfF8q0HaV@&)s$wc z<>{U~dCfDvDIu);MfGdZgqexSp<7XJiskz@Fr{SLv+Y-8q(*||VVHhhS{%cf5;H72 zXRMKn|BpI43_VwjDe0V4Kfx$?^lMw^+x(JmO@6{9Oqv}ub{f!Dy`?O6vzDc%E9J2( zVW=vy%q+71eSc)K*PNQesqVw#4;X6Vd6Sie)@Fpp4Tp^HL_^*W@^}uVG;{+Ur zvuZ+YcT;q4r2jZ_Qb>b%YrQCZbXdz$%mt+-(uwXjY?Mt+ZOr}Q@W!Z)y!d<~A?O|T z#+bL89YQWu((OyXaf^0PU+;1&{dSI0X5AFXw*fRDa2gRiR=fN3!_LB0f3qZ}mC@9< z8Eq;sK@f72eUf~q2DQ2Qo6+|EC_n5i%)GX29OvYkO71>-&oqarM2KCjdhu{1_AZrA1EL!!_r;FX=3X(P&S| zVn|&v15u;|de5)&=K4}(^xp)(EChy-kBx?hxu;6S<^bfz*86Py0cFu{N^eJ2E&g=h z$V<2`J4Uc^F)++J@&t1WXK=uq4TJMOd)e`(9{x68nmHq8gF~-2!IF=otbB&QGCMF0 z3a|)|eBgMxJfhVwaWUHxL9dleZaz(P2g9QB*?jr!7HII+qg6uU?};w(k8|bL?wxBA z-1lj0uX=_z0s?4imK$G!+>Iy3-uIuI)Xh9bHJF8gRm-Tg#NET|tm9_wL%th%ziJe} zIJWlCN&zukIL2hx+CRzLM(Ld>*t0!@ak-?JT(BrKRlskm$X$$4JMsHdbrijtQ33j1 zwY zlsK8}aO@%H7ni*-YJf%y1@M3amvO$#h#EA3m(Uj~q%`lyEfEZO2#k>>pMjknDw zO<9)KO{~XXY(vwflkPg`D?!|-ymRcZR}}NaJ+OzO6S9c+zmEvOZC(byX^Qg-D@`>(M#chJ1 zAl)}F*a6Q-{9nE>|95c+gZ<1s|v0cGw0ho zTU&z?r)$>@S!Vb$J85L|8RWr|58}4LH9e}U(T^dE*x!?_=E7tTIxSiZV4Mq^T^`6c z4BnY4W*_+YWRnoKzD~X(aX{|JqkVEcz1trW_B0%6VZ^D?!nyX9MOvIOYVL;WZ7qS$ zFHNEv6j0v2Sb%MU)df(}Mdz$^4Uu{m3&<`Evbz#K8>rUX&KL*YTx>BJY0@wZ4ABnCEA{J;o;K58BYemajVf8%C(E1p zt-t*fJYjUfN<8YzQh!^3&-{9pNAGuciq{Ojxhgc5HXrxq<2?DS&in5zJQ&y+Z}AdK z;CHM9#Uqg{<27C`V+OK36q#633!M zG5NMkY`3Yy0`Ww?Wr2V2?jO&Do_adW>J28+R~`Olv`rJ|EEnZDc27x3sLSknr2n1C zZUGx&f_n!K%F^Jg#Z&GnUrmG7uJ~w7Qh)ZgIs8yeD6KBzV>* zc4mKE8hz(A?$pkC{6zly7Y*r-hULL{rpGt#G3W*%$x$QJX5mHCsitO^3oKM|_bcae zIX=&5rbVR2=Oz8>??hoD$%J@su{FVX-}Rhi(mR zAO$-{D#GG@0-WY_jRh?R6F%3@$4so@Y>y@LFOLfNNxhanei;wn_#0L+mGe#Dw@4Ta zy{Uv^T#nK{6Z+~@>Y)3HL=N=E!tC;-o>)<%DZ;e)4a^n0z_20U%AnC%k8k4bgMV^u zj1VmPPw>b)of>x;?@wW|C`N~`rZLO|54t0s@LB$R<0dYGJv=~;ys5v0R`976fw7G6f}*eGpO^lG=AzpFDYv8Qr0u-?p2Qrz%BEnUB{c=S zN4qX$G;@}G=g)KG6i_HRmy6W3sLD~!`)ztahEs-+q3dUFN2sX;O{zR=9OBTGj%ocu zNNb@4+ce1{krvOs?SVxeiK^}X5Y?%wM1N@P)uh5AmYfVdS2^MJ3cJH$Ve+fC;7~v&Uh}>3 zYMN>f_+*tFyrHa$=;9@d-q@LnOi_%w2IJX);C#7?mkKT`9as(N21 z&#oFt;NrHi=Q(YC@TMrJ^sAfT5gN5zS;<%LMbz*EXP>yaCiis9lmzT5yQ+uaGKibt zB6TpLu{6gD7X)X={=)5;9ZK!!8tUHHY}u6{;&NA^Xf_73^w(m=k^Ukl#XstSn_reb2x0L;(+Sn5YUIz3(m9d>u0-RjQi6HXXpUmP+Rtekqc9}psD zc1n-x&mZ)p|1Y(a1I}+yv^_P;K_@!%?uLTLaH(H$VsWBmS~;-4u7?uj$+Fvgn&G_l z(XDbqY2c;0I%`&;Rb4jJV(`0*e`Mlz`9FKudBA-N6FXu{4qgI`l?g}U(tGZCpD#t> zvpP-Sc|0X!^|bR=7U3vsKB;^qhu4D4A>0W0te*9wn-FkMNQ$B+rVd5VBI5L87OmKu z?RoAf8O&wWsHI6g<%#V-?}@pzLJyc&51L9oOq?A^y<|w2}tVm4;lhd z@z7x_OlB>kKUJb@@B)5A!>pO7Dzck)yTkxw_USlaQuO@J*f|6C;vdO6Q*vMM#=|J3 z!iN>eHwOWETaqE>N+YdUAuhwMVS1Y+y`9>G(|D6k%Dm$+sEx|#J)Tg=G3ovb5VUxT z4KdEiNwNiRHh&n<@EOc;`5qlt-EI&G=|A|_4DKq)wMejS! z`HJs`ZA_9>7$fk$NL;TIG_= zr;N~2Nk)0K)QA<A&^`d|Jow$sp;!0j(X^T!usM0^)J?ylalWRuS>QX3DlAT1NS zBIei+~#GpiRIk<&Q7R_cL0gs#)?ywvU`)xN-+c~mDckf>88UjNOjVGjTGIv+u2s+-|j_U>t zH&?l*XQ5YJ%SE`brP|#6wj!O0Zx1Ez(2IKO*Crx<<&hsZ{+tp>%WmT-J+xxO*>kakV@W*VdXW^%kHs9{J(&`H&6rD*)*ume)^D)Clv zY)x?QJ+kPcG(a38D7rK*@$Iui(R;w!onR6I9;2r(MU6Coq46g56)zO1gq@1eCWB=9 za@UpWc<#;Ds4YWzZ+!|Dntn+7s|<&RV*LkJZ%Wg>25R|^TUKW~?ZTbPz4))t1WSBr zaJy%xdN)Rm!_MYfmM!ejcf|BI`*K zzFzr`p?j7v+D-DS{inLa?xlKFz((f=gCNS&?HAgk6E}xL%5LKrHod+>^i8_-%z%x> zFBJ5KTX@zvi*C05LzGtjn>mS&% zwGtWGM}BAr6YQcpO}LjPx2?r(D@Ldg<@8kYDM!uazHyoR*Cq{K`*>POS2@*$^fKeL zGH2}Jq};A2j>zqgX#?qT-57mE+tso<8nZ-SIFo zgIrJ72qi_9@|z9YU9J`{id(Z*|6u*%6WM~L!ugO-&zFE@vgZZa4Bt|qi{z*vuUT== z$;tdOxlMX79=A(l`L`iH(afPu`KsE!P)4dH(&GE3?PaVVbF@n`T}$yyT$<~PVM~i8 zoPDkKK-l6}qBU@Jiw>~rZ6CelhaY%8MjFjuU`=?Q&1YBoY1#sWBaya&ISUO4i!^Z2 z>pGGf!Q1z#y~*me1aHStx8~%iu6rI#+18M9<%3C5NfGR+r~TZlyz5hK$R=pMP{=93UnZ`&JJ4@h}Ykf~*OiU172hW_NZfbKz zqJ*S`kQc}C@h;8|grQ6_Y|-2~(cUB~JaeTP>%Wis&R&LHaD6~o-mbcJHK!=0n-K7CarmoP`@)!{ZM*SnTzOQ6?*&3fCSB$Of z@cY&y8f!SagJKM90+Xkt&4TesN2P8e#U97$vArwLzj6HbUlrKl`o5wro@II9iQ*TS zn_Qpik^EJIF&ON_dj0s;R@2WaO$@*X_+t3amy+l`2~3KK&4$BeHY^tiU5ZHE;n^H3 zu;p{4BU2&S1-T!s@uY}$-U&Y+A`!SA(`?SxDa+gDB4UQ24~mvT#Y895i!k@z_I;y* z;^_~h)H*IJu1}P}=okd8i=B6`eK38JWh14al6o-LlBVm6*B~@{0{^`5K(P zZa_)4eT%OQJGmo^Z+t^v@|hi@e|2deeGC!;-_ZJ!mAR>qbyPf|8l6-vrHZ(lA^ zbunw7p*!e1cshJfeoi*5;d2kQlg{CYD{SttvbP*h?|G-#bQC`~OIV)D{Z!~Mmz}D} zqIkiezf+jL-#b)dQNIhm8y>#N(;4~QZv0XE|Z@{ zs77_}#H3A3-;#nG<$iQd>2Ww7$TS*h`M{pW7@NXMI1-N{nof1Z=c=i550+x#ogA!;in)aboIZxp6tP@)<$U ztIt+!{OSbc9F|iLB$8v3EDZh$HcAKFUE*!#>P&o0O(ge%F~0R8vk+#>KZrv`of@cBSs49O(o{4)p}1`cy??KM|z-Q8iJu9ZDM(LLsBKZ^rvc@ zWmkqk^Abplv&>)~frK8>df)d(usIVxn`WChy&CHp{0sNz!}s1bzO8uQ*}tz`Mb+gg zWG80~S#}|NDl`MF6l*c-b04-b(^pLqW$6gKQ41iVSr{Y{dQDg1)~h^&ZDaC z9sBoTKd2f}H+wI7e{g=MwETSADr zxmUf5W(A`zPbccCDC{M;04jP6me0htqwdfk)0refVLyJPc=+)ocYmvv1m&%I)JUiD z7QDkM5lTAL(Q=+Lx4idCYq)9XV0DlkrgF)QfF1^VrB;Yk+_J4W-aF>8czHW00 z9#;O6a2q&t*_u>vV&JPgSGu5HI$E#FmFYFf^aUlda9KQV+bMWvPKVjS^PU8zorg{C z0lgor*oFoYjkY8^r($zlHj8HW-%vj_7MI-oZPuTL&wIxu&r}S`!W#p*mXQ{heZnZuchHX`J{&h1ML-pr z$>R|v8LaEItm&=UON9hsd-K+L!0a5RR)PZ~!AQT!-Im1YsQZYnM{wIaI&whpJeAlo zhT;&s*mKGO0U^gF-YA7FlC*ii%`z6`43On(#BXuUzCBe_^TOu(5Ky1qpqy~P-3Gem z{clJ8H<9;0{)FH2ongJ7C)d-YQKxJekYHLI$r}8S_l5XzA4U14D#tCQDu4*fh3TG8 z+UKOj%7pdG0Zs}>pu%3hp0hx3xcPlWYZN}v{AJ?ZWIo@(#0-v{Hc+F}z>;%jD>Q7xpFoOuCM#Gl(8s7deZAo{LRqV!p^~zt#)YR7$7izWawA^bI z2YACs(gtEWwb5Yu`wsXAYVmzT{__^^6`>Q}T`a=!ydZZbA8Bh`fz}$YOV^WKOd$&? zIXMf4*diO4B&X7Q6-2?!flKi4wc{ZQD#hMo*52WiAYJBtVvo7ir4pmAE6}S7P@9jz z%NaB z_f$}TxhG=E6py%zaWdb2pW#IUSdWxYmuOtj6) zraY0R@%iym;gsw$*5P#+;SK4z^GT?(lc(0hzt1nD6QSn`@)ZWZl}LQS=zM{R!uBgp z()P`QQ`MYP_IaD0++aj$l!((xZ?Rt0c6lvsp-x%p%!jV+9_yjSD(td|C^og;I}G3W zw}Vfn3NS}Gy4KeIK>wxkbfOBM)kt0KAdQesG$~6^k{5y>>asKiF3V^R38VOHb1zfd z+iY{3%Gk^TcfbAaU1e%^o5&x-Ej$0br*8$>x^a=BzOP-PKdz!~w8xdhDK96N z=u_MsT^d`s9Q=@-OEySAb-c0I|Ig?yK`mWoRHJgz)LpM`Gk@TR04B^ChD+yQLSiaM zr4Z?=c#JM3L3;k!iY8~sMcc+F&K$>MEr{SYxWp}wtslvBC`5bjdD_>%INt15zB9;TQfv9m|}W=IIAo1R;gQ#)hOml z<0$^j6kU|ZE;gUn1;BM5eSVnaQ@QH}^uiQvEFU8RFO^3lFgSPG%4K6r$c2U#GpmZ_ z_sIUbbr`_}-@kwVq5{i&@%G^#j?Lc}7=tB7^rd%S5?O&{uJxeOEvaw=S32=`RX8G- zJu&=&54rF2xEbln@f2!ICiI(pxl4;-FAhEj_E<$BzkZU|z#nYvv>U6u;WeD+QAzXe-gcfCOd^j$S%c zg-M?C&Wtt%S3LKWo|9uAvdRJ@cx9WJ2N>CpWCL=5C5bz%KSF4B$%=P-PWS8_S4oi&F*+ zij(Lu@;+E9%Tdn?*r~_+(!AIH)~(56NIu&hB}q!3+NUb!c~nBx+#z&-IJ{z5O$o!-Z#_un;b>o^eK}KHT^uEqd4TSN&|D zDk(aKxYmaB@7sg%3Woz&{1oFhWp-L%Q5Xj&@%i)Tge{}6*VDDa4PvR!7D?Qm7x-q# zfNF1>3_6mrev4D$X_%y{38Vh#y43wZEExkRAt%UdyS+G7F5U9u0CFTMId)u!xrb>mlj>fys9%MM05k z05)na8V`rHzYg;c-}{#z@wZpQ2XMtxXeRn|9S=Kh)3Zke;M;Sp>dhaL#DosJ87p3=3fKWw2M2a9aG^O|6OF)z& zy@no?5+Fc;1VZP#xVzswZFgs0-}%dsNq#r?o_p$Zo`akiX23IM0l~&+m01q8n39XR zt%dhE%l%qVnW3k{4{t#wG4uj|S`+*COG}exzIN@C+2UuSMp5S~88V7}Dag*@!Cu=W z1mf6wZ~_>=cD^2*3!ByDB1x}Zh0Ue%bSD%iP|L<5-uqQz$^Tyrj%BTlkw|barj;s& zP;tQT@vm3-8%g}PZ}jUMu1@SYZY_`A69Ua%VeP(zJ-=w00tm~-w7*1}a$>;7s2LSi zry0?&f2Oe>Vc4m|{%$t$2VNiAYDnlo>-z6^`+p83{1J2UR4o-}*ZaI{;YmGE<=y9< zH@T=nSzeO#&v->Kj-S0+a$7H|6E~5LLMcUiM~Dc6b7y`@DqI=37U`6fD`-8E+h2)M zv*qwU*c1YR&-qoi6hfPk9kAf9Z!Reqw}n%uJIu&Q23tHWN|H!^e@^lWiZAgu#jv(9 zqWJ9&PlGk%mDJgVf4d*x4L{?P?{8eRjTyV*a*alz^!`&S`y>d;B|N%SBhPTPY=V9q zFb1)NGh%XaBdjVAp_3knT;3YMY9vYSJY{ zA)AWCkOH9dc!rk-^VF*p6L(9+7_C#>*1xmPAPzRLJyKsky>jv*YIjZqTIr#pqGHid zT#VhsU#>HmQ&40>G@sE@DyLe`hU9GVIi>NtZ*N?fx3-`s=i52>n ziGLh3*+`$8AGu6)@`@kM%^*PB~GwJA<+@11*XlPa1){7+#O7CpUSu>A@NqM6E`Tpnl z!N0V08chiXrokNDe=jBAe;d`B{;Dmz^6jX~EzEjEVP<(5r`?OvNrrHAqnSCv;OhC$ zEviK-0Q0OIv&59fVzE+E-rMtSXM6Pgh}=0^nq=f>XS4Zeh@16)oNvFLbkCxPE#i9u zdcZ4lnR(z8;9_kbw+nm6Yx1zx1v60{d{17!cBY-ie5x*PwkH{>#}BS1!*2(010`-s zuw}d=^IxQ9_SE3bC>8DD&@)7IJYK|i4BL%5a0(V{F_K7a+ztY9M>{5dtNc>jFw6vc z(pbkYx|~H8sbQh#R+v$4-eS#FuYb-$Z}0U)b=q__bJ1iio{A)TxY7DJ7btv=h;~06 z<;>v`ig1!3^)n=T_fB@Uv`5mxtk3{{$75^x`j{VFtvgBLmR%jsL&5&DL_~jWntqkyIKF)MKQuZCsYmkg zRkXd0+OxLr4GYGn*`K+cG)lsc)$kzm5n&{@8$=A7V#nTeT$olw0R&q zDc2O3Ls{zWkvCAWqQr_tzy;S7Dy7`k9$ECJH0Zj|T~f`{QB54%2l2&zmAp& zR6YpIFSfjK8Yoasm#-I#dYtlAcX;#O(AM?mJmuN3QGcH|;qc@mMe_U7Vwwu5>r3g3 z3vCt`xGvv{)v=6eH$w^uxEGq{pt$mZZ8bP&;dPt##-m1(v-e=kMKf&5?TZ6u{T|dm zq(GXPfz)yCbfozCZ(F*I@5D4jSA&#}H2lQfH%KP#f&Us8yFX7`x6O ze0%+RqC2GrB%HlWP~CbPfNEiU5mc#sL8bUn0sK%~tIEFMER&>ahRTuba3ONKRR7DH zOLL2v&i93G05cUnm@n=-yb%eUWi~R@}5zy)g1bo9$6~f z@gMcw?`@{>bHcH=iAXlg_WDf8vu3$@i ze#w93so|=GU1yhrf`ZP6kfi>V5B$d`9`neT`n&@?@<|shf5)WvA3ykKPtNisC-6TW z!Tq}%{P$immytX-GWwFL{w65sRDS&9e?#^2m%o%5cBYEZP{eVzZT=$tPm;_YliVLq zW1=OMBhWOL;2HeWCjP&%1As`r$)Jw%=XQ+1ulM2_h=pI8c4b}qPrl<{IMMJBQvR*r zvxcMFq>Uf`Ca3YQeJdc^(hH~E#2JYi@8TCfnEr1>{ePAlK1nKGTwMGyyYa@)eG&M| z4_8wh475K1dAPbO{~uhwzjlfz$qCsA-kvr5u@?E_*$$qcZBb{<6qVb|0bln`#?I<+hT)@?qKeo|0`9}>@z=mqb5o3A4N?X z5YkKi+&8^U@a;OBTmNiAFyQ=OGhYAoko1`8O!rf3xR*_F%vz52BnKfJ^?*<@r+Wb3LSgQ=d6|SEqKpi9j`s`WmJ+h)lP}8h)KPPC+h9n@=Q6S^i zKlPK^R{F;2+0HmM@%YoX1qB5!qU96+?5O|7-~6m^0qvb+4aLz5|KyLP{6u6+5Nk^K zf8a!gf{7{TRTLH9g5>0nK>u&Z`5%5f@PEYP4}b~&u$lJgXPqBuQfq=M7k}~;fz7;5 zNk?~!F<%vAQOt+lj{WSF9Mx?kC+Gl?u3+Z$+P^&U|E693uv7nxu>LvQ=LR=$HPAsH z1b_0^`ksDye*eoE!oRs3qEmUuD!yLhjNhfDjZ=KtSXo(#A*}`f<_G-s2Su;|l%O$z zLg>Z67YZ?llam5CL?U@uyv+YV3ED!5jNx6OJs$JIreUotN%SI)#-U@X3P0<=!%n#Y z2VPd~f0IG|-4@-Ik)CNNduc(&UE=$yCGzf1o2X0n#Es6*D;o!~Vz1`|^IkC#iLzIw^Od$l2L+;P0>KH=mGxL(0Dx z!+KQGXQ0fl`KI#I>EFElntiDNT}{}0Si zfNv{_&zF{#Hz?40^x-j!<kE9`%9r+&RbV0Mupajcx*BEip_ zNM{mjGHy_*BRuYI_^FjiFZ>9T*qn1@l>Ss6|4uydM4IY&AP`Zbo5;_t3Rqm$a29zA zo$I{5ug3Ufync3REcRQ=TD-pN5C6{3`Ll=KeasAMz2Ezu7=n2GgQnEdzrh>)zn zyocZRn`sT}=ubcTIwoLcGLxaC`tjbWYygx1IBz|GuYl#*6j2hz$xiQKSQRu2?6VEv z4exJhaB2-nx-7j1rRH<4qYp3LdYIax6j9FjgV}lUYSFW1vK>6~I-yV^mw|V-dAHi7 zn@_@Dzkco8VH_P~;LYgopU;XV0Fo=XeC_*hNL%(s!fEc zpZ<^!NcK64go+1S$10yM;VE}yq(D{q?NqtBi zfbzetp7Z40M70x}ZoA@ogYt#}b2Sq0y}QU(3a0|F5}ktTdD?ahNw&zFQ^`R9;1;8%=nhf43^Ezd0jGZwA?H4wHJA{xFL7dF3+k zAAO;=4I)PD9v`8h)}h5b!FlOv_(^mBYVU*Hb^!b*w#@)!*Sv<)1Osk0nlE=F7UxVAxW#;ok*mL$8)MC=XW))Q5a0SJQyJX11R{TcG;@pN&k z#~6pXbYod^<^zB|ik$e^Fr4hRf2vkDhEwk(ff!rHyDfleivm4)V`Pe8OvVH45^!ht zA%1a3`z*v{XYV`8jD^>$BulF1x~}{ZLtak$G_El}GkMi0ce8^FKH@vMwPN?+u|TCA z(zZ}dwXEM=I~Kd>{=%#hrPR15K3orlEFN|8-9dj0Nyn^=shf5uSj1S26n(HLa#QM^ zQ{$Z(TvS_i|K1r_%C04#!vXCj(X^mc4Z3h$X0^(!CyB$TLr~?r#aKV}mxnP#cWsHSEmO zWm6D{IedSar(geY1J?Z@=Slue=ibLzdbpdxT0G03VTrv3U;s+G2~!s=G9A$1LtZ2|egsT+6? z1)uS*tWV`n>1nr-t-W#v5;j3?0je2#4dL*EU9eKeD1WF#K z_5o**<4QT=>(QYQZ@ud~+wsX-NMTRKCZBNbwDWfRJT;!=rth71sf`DfajkV^lXow|PVum6BnUnr+>BOZZv) zf!&qK((&vJueYI+%l~YW2TodNERRfqwYy0KfY;6hQL#PDy`>Z6>h>=F!W$$$lu3&7 z%;nqM3?3_yN-!Z9@^MViR5I|WrOi*BWfIhNT{%5*)vzdj3F3FhpX>yz3wQRyw7xpo zol=-0OA5oqDP%sZ9+Akfy6KP~WuYJcD|G0;!a`N{=?RSu^K<_3r+)x6nJKwa$Y+x1 zwiCoYsG+(yItt-mmjtZtK_!_4Jl?~2(hQqk2x0?ji)eb8;;7EhWAz2go9TuNRaSB= zDw0f@_wdMcNx#olZ~H(yUcWVy^}_xsbJids-e-oNcc_BLOQ+TljXgjc)T)bk;9_s{ z*FUt1rU34)ae{PfD1%ARsg^-FDJvy5kjaNz>+Tfg%E2HzOF&q-R_S+Ml<>gagW?@h z>ieapUDg5$F`OI-J%~+~hKTy+jA#5!!KYv4h`7iZ0KinSSU!QvK$7NYy_JxU%8VuA ztkfV-k|x`dY9-A;$0-C~=9o}#I9$2~5ia&KY7MQ{Qg*IZP87RdvF)CSm@;M`SpK4| zU14p(he<-5E_OQ39{BkZVd}7<&H@ZJ7J)L#)jj<88F?IEf=NH>^PPz-NR^!_Q>S5! zu(tDPkJMhLmUxqq>25{gye`I&cQF3w^24cS?Q9X?X7e#ls4y z)hZ;Ck@n3Y6~*a-s&4pt$aReZT}fjx*I(dfF3FeFxJ%rzJLDx}wU97S{q7|5nd9E% zG@>%F{w(Z<|LEl$VQKlgVH8_Lh?(z%tHvr6+ zxtSCUwK)Sz=MoVcrho@fc(IEFmne#!vM;=uXgF$}LD{=E+>Jp3B~^?sDR;Vf&}BZ| z=(oya&Sp+~Bks}}gtpeY)?Dl#LKx<7U)Fx^jI%rGCJBWhYt1TeV^1IE=w((67O2Tv4(H5~`Q__WDtDVPP>HiE z-Y;)73X{C4!#6FExO6(8?TvELCxCjl2|0bajSE1R-?1vi*W58|RiqptqAL2vzkBLk zjv6^hNusZJz&S?V5eZvz-C_N^d}@6d2Y``?Nf2=|&9G$4El5y_{POwksHSwO@jepU zQ%i)YKWgCTMbN*0OWk%hF08O->86lOw5jS2faOHK+;!V;UF99S`Y`LrH7glSyP)*L zbv`LU*tIlXXlGFQJidKV?KRY_o)B+m=*FTEQU3 z4{XyD?-B8`E91$_r!D(3Y>Qkqt7=wc5Z7xP5e3`&sWET|*Ry&M*UnjGraOlu5hT z^Od>Gmz<%Thc;A2E-q-n2sRZ)v*KTvAebo=54i5Lf%}#x9rDM@CpuZWy)_E8uNRw6 z?QWu19D#4F>{xpnzyM+l99|`GH&Hq%+3m)Y7q-frYeyhGjY_A}D>B&K6VZ~ap1axf zqR#inDy+;526jFA$#SuZiAzG}%m{sG{*ye-zWh+Kr%DGFIo9J9O4oufM`;UK#k-7; zO`V&3wNC~b$4tVGrJ=-gl(*evD%VAkd*&6jz9Ap!4hN(2Ala?k+BZ&|W2opj&c9J@ zr-y`=nN!9#9DyLr@`a-E$g{)@El&`<+Iy3{q2_ufWtZ5p2VnUSB))qm^UEBEbqd~( zcyDe%MY1@KtGq%fUNFjbvZfm2fI5jQ)%9=Fi0i>-W!=cuPptuNzYZtp;JGJv+2t}H zs=|MsUZ^QlBTMrRf2sL%lm0Y2V??*!yyw&VqOMEE)CcphLKA$!WW;!a{3@RimiW@j zkjrpqT#5Pm1*q5KfduN!{l&zC+r1v$W$*RHj!pa1c&tTKj{1ruf5+Qlr{PYmEl>Sa zIr2qUAEC#4hOe*|+%%w*k1Yks$G9{#Id?_WIZM}Tb7-{+@2d|z0R1bj{VoUtCT^LL zZ_R<7J1c6nZ%xH*Co@9uteydz^1n#*aOhUGnHImkt$L4^-@~0GO~wa{ zo6+7#nxj59p2zZz<2DS|MY;MXythWpN}9wiE5fV_Yn2Q5e6$msDxA8qP$N57>b8A% ztaac;fzIkGE#PE*-{`2%jWQIzjuMw(?b@vaQ|};R3SE#A`i#o!9N)fGckRHV#d>IZ zdm?wR^Bo(PI!rcmhEz+8AMAN8opxGbxD889qW0m@QjLyVW(Lh7Wyz%FmIy&aObD^7 z9H4-9A4K;-YbIF6#w(*$x&$h=$QbkTc#(6LIkacHfye5)TEtgm-2U8YrEY@$h?sF!=XpuR0_3$coJX|hv7?lRnq%j#mQm@qFD+w9-Tw6fn_{2tV!fWF@4OvWPC_8W1Tlo+D%TXc4H?025px4tZ@oh}0pusa{p%XTKRY$Th@FW%N{ zbEX|^^PK0b7!^tVxD}+YFlg8Ns0=R$e47L&!UJ0;0I7#g#ano*^r6=bk(FfuC(bd3 zgJT{4I^PkavMM+V0S*w%cuox}vEqq(5Qc2utnmP`;k;0O)V$=-!yp0V5e^zSB~#OD zY>aDYouf~2&BAry79-f~^s7-x(B&O8SLB!V%w+EpWDKqjk?q75Ct+2QAn7%B7~q0R zggn$Q^(^{`bVqfC)WV00)mrcQjHC3`xn+OIAmSpmuG@zNsCuxZzQ-#Kep4mW!rgC5o<%+s0MhrRX$7rk3(#j5tV&TvVWTau zZhlOwEgs3GBC+`-f-u6vNtf;gqbT)0X!eza8g&AEz0Evt(%~J$<2Yd;{+DVmj3^IC zZCKn&2~kP-zW&*)e?#&JheoOtz*jx`^4OK*1a0EU37lFs#f28W+&PX8g(JT+`n-nr z%1JkOZoYKF)=K-m5DafRC7F8wO-xCSR8aCiVoP@Gw_OOJvjwThDR-3K_zih8lG6k* zF|&#ZD8_4xo>Ak>JEZqs7e$46-?hG}Y&Gc08t6Lv+B(x3%!rBbIf{ZRHnZ7q&t07K zK?~;l>#I3Px}>??V=nR)+(0|3P(uKiR`Poi)kKg!v6B+PAYd?fp815Ikh2?dx=>be zO}VUA5d?MqWWE+G_q$H-HJ?K%TkF&H$$2q(Zhsh08MTTgFFRIxs~y=8W8?Ge8U>y& zFw%Q?41~C`u4fc7GL9ka5bH^X}E+;@`SSUX+9Q+Rnz1L z9noBTT83w;25|IQ0b|v7Q#Lkkadj|2CKjor)9)zIu4N*=`#qG$P8Qk08-fJi3~t); zwXTx*Djn^ZVQGq3%o|5z47?Xtmt3(2753k*fv%vl6!hG^2L;QWy;e>fv;|LBE@H*H>m)a86^r^oJnp{zP5uJOFK#{sN=GI& z;@ge>gvr4UOrep*c46d}wASz+W0gz%eaS+_=4`3xr%9wm2Kuo)AQym}$Shp}*(@9T z7_xI#?CLqjFN{(TcMK_5!cH1j`A!M@xHgvd7ue{sodmNNi}8+iKB&!t z!Pq{d3G`m8$JYCzUrNd{zic{t>?=3)IX@ghx3hVPzF3n~CMOv{jvk0rYnGap?@g{a z4t#3?i6oRa#(o&Fr$Xzz5wfVO9GnEJg}PXN2N2sao>Xtt5Jqu#TonPuY$mPnb=Kcx zqL8CJd6Uwpfl5ra$6;#j+(4X0p?nd{@BqVLSkl9RlLjMm_QT68Dmm4yfJKeG5H_Ec^g{hSl>vi1H{<`qku02VjHnE+MDL4KtwQO*U*>>+MoLrQ$(_sQx;NF(( z1G-4Bj#JuwbNno=9F-H_ZDpW3%UImNYQq~jxv{C|2l#K+I!wW_N!#_of>q8h;Lc2X zHO}uEy!O84Gl-6SDO=yMVX!T&pMe&lq?Wy8lu$$5TK5tRxsFU+YRCfTgoR}6n3tHY zJDqxeTk9*y)dtkl-N-Ph%UyRPBO>Av)kj-wO7XK~K6;Mr*Cpeu$i&5@r?!#z@m_=d zBpMZbG|dV4*Hh9SpGcI=ANfK0^q=bJxu=i&s?p_2j-ns9Z@&vn_t;!=?ZYFXD*B$^ zNHIef&RY5R%d%o)sP?0{4D>Dfs~$AMbd)J$$zEHCINas)<0uO|CD;kl%=aOLHv0`u zC}oJ$F3qYz1xS+7qNSpzP0Iv59cYitRZ@j?ef;UbY>;vf&VD&8h@VPfg8{e3e2)Md zK*h|iNnUPs(8_zDX3x+&nZ~vTQO%$x=cq|m%VT>|wkkXUBT!XH_)Qq|a_wqO2bq+4 zN(;yg&6U<2wfWS$_RcVD?V=?C)q*6E2wJ>5Gn6vyB+2DotMzVH;uI?JG{lCA#HAyN zt83a8Lh3!wl-FYP!z@xlk}zcp)n(23m1D~RQ&7cVbpCZ#|8M^1#HZ`E#PVo#4ubXh zED54$7t5zXB>Gi0Bhw?((}W1d>U~(vwB?3J

*{3#6qv@W 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 z

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%0Ay6sn{GwT@0>tscckecIblw=p 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 z z`pa#VbZXqTm-L8hEt$XM8;Dksle**)Cm@uQp9u9jdeURsJ9zXzeR)v_8{Bq~ICpUtoZy;ec0vwFpD z_v@?1gwSKfYS?7h@6Mk$hO}+(4HX;~H6)@pfj6TQfq_Rz>9ce`;quEjq1gAp99|G3 zxa{0NmlHF`-^2OVze0KH-#f>2h);CdZ{|TvoW(~jy`Fizb>SSj&iuuOby_*mfvzl* z%yPW<+zX$ccFb=-Nf}uix|_mW`tz*ByMY8?M-RF9D!dASB94Gd~>#k2j$5;)}|ORasKAuOt3EXbX}`0`V9 zk%{&)YftebKA=6%H^>)n?M$f{9Fg_KGpzLzW`k?!`tXI2!PVm`xK$gaTyOB1Z04wU zyft(ge9Ip*o^Rcinos|xP3J5(t_slAsk1YAR~Q*Hr;HBp!oY?a1Z-{Yxc8iK^`!ru zn@vlvWV9J4mB=7>gIv+-PU~sqnc|D)QTf1^V=fo&Y;Yf?gcK$N&PR26=FEIMae)g{ z?FOb5D9N*TA}b6p^E*Aa=_d7?u{0H#ard|(E{WU_x%jPKk9GB*)61lO%l|oXeQDa8 zmt-;MfZ5g86|1iu@NRiCbgRe0E`NxG-Fx53fetQv$F%VF(nyw*Xh}_iWfRrtG+lM% z_PBS9)d->zaM3aOj>)Un+^M@oeyzqaVB$*yLNBad$x3@C+!J%S-9CHISA72%i{~1^E7M(wSr$%I3`>VrQjCi+9mg<02R9_3`_Tl_?JzWOVZ6FVJ@RC386OzsaxIkQY z@dk!r0xs)2YB=ulC7;_sgpjbc+-8(LvCY@E{q+-cs@jdrC#jmX6$5St<>(ic{rT+_ zMKjNK7_pck{`phJ9mIf-9G;=1g{~-TmpAhmR*&4^UwVNl?KUCd2varCEw?crn4z?NnDwL-fEUFN;R!jri(l$q7&>6J5|U%q3u`ae zeFv?L0CSL8f|M50!zJndhD*cV*JAHoRZ(odH-~~s-o?UEcdEUlSWL1G+{yX=TLKzJ1zH6Jet3UJqC z_6h_#_^}r347lC|t1|xit-aW5h`m}>E~Y2ExTcA$GE(Q4?Ikzm3RR6t#|%G}G8(s$ zZ}HB~oHxX%?FesK=q(8clKEMkQf+h)nbfjh2$vXnfv6FmC3%Gqaj{#vA~G=W{D! znJtKtaFZ&tP&@h>`lWy4<56A1bU?Is1)@1}9Yyw0_1yk#u>&3w3w3q8qp0ir^Ev9p{o4q+{T76rw>{79_-E+*mSw|~;pZ-@+m!+iNdivEz?ZEX%`9nvkoK&g?erJ@qfUi$s`tuq!R;S+`Xure#*N@#_y@|73O|)=h}7!O9~xuG zQI5ahIw~3&{%nvQPdRpTVL++0JB4rZ21IatAnQZODVJGqeah3W%9%FPeVErg`mfpb znHzDZj5)&!Ub?wkgGffcD+0TVcu}=6+y;s}YYWi>c8eZ$MD?WB>iPOQn@Ms1+VA>* zK7D~7Qf`H!)+u++5O-5lv=Yu&Q>(Z(j&EGmQ0u*GIy(F{B0PNDZmI2;>;4A4ZZ-28 z;nqg+MBzF3fPC_*GiIn{suehNE!gE@_+zVF=I-2|aD$6k1%g@~GuhXxcG5yKg?5+NXwaeDrsc_@9(2HBJOVSfYe&IoLmlr{~Z9h(l>0 zpMIoef*OJfDK0KHO{Bf((HPinceZs%2Xo76nr8GJ<7e=6cJCB~i%rjzkFMyJT0WI! z%vrh+{?p~h3#$*E8Y1f=<$6*`N1HbMf4<5|$k)TelGL}|G8TkTSA2e0BTsnL83w&b z3^+MyRCsm1$)fAb5bDTQwfFy=#0zig!LmKG#iW;uMZnQ&vg1{PFmUU@-I07n1%=zl zubU1+t!j`qjFV^eM&5M+fz6*HByZB6q*gpgt(XU=2(W^$bHo&s_hn&I^Gj`p+Ol+$ z3r4FpC2L*3z-uOjAP91vvORTFZv5)-+yJP)H8NVd4VRJYWI|O5F*=t5)Lov^{u2^T zO&Fyz;T7iTp-g{&m|Sc?SJ-ovX+W!%R!RLT=@Mwk0|0kNM=SsF&vzF_QlE%hb$`gJ z*7;uxaLj$`<vHCN;-tC(qhvLQjeR4UI=n?uSPGCf==8 zrKsFbQ5ij;!{7%tx?1V;SB~pi|Bs}9?%zj480kN4aH>4fREG`|uo)_9%6*WQ;5^^U zJ@C_0uDFN1+IfKq81EJBPTYW$+sr5qm0AUlsBI27UW>nGb?H)m_!EA7W55FoA1a|9 z%#LAygu8FF&%&VSUY!qkBJczOdrrW`C|q^lf6Wh>Dx2v?Mm_{1Ub*h>Q+^k}G0DAr z{6DBI(fRN85F0=W*wFdrEMglrPTv9k%6?zp#yvmIs;?{m)*jn=^?3g!qO-5x_z68uC;4T4_wgeiN~cMf zl)YuH$9i^87C2Y#KKRCU3x_HQwUnO>2&dQ$jXd2)o5&8!{r&>%O|bPa8h{alE+@CK z05TZUu4mR9adG1gaHWbcsd6b^ZIA@5*j3#aRq(q7ksTGMM(^?R^3KcaxXkv(0It)} zx(7E}v{rRzci*rH7RhU-G4DCu0iTFY zaB6pRe*s^UQM|X;$j4M>znNMhfiCa(f4-Ph>N0*fDBs_AgGTs%3Q3Ye3Wo>dfC2xN zNw_1ZhAgN%N*=ai%q0q@!6x<9XI^$>ZF{GV#*6icD`x(G1qM;b(@78IMqx;2uYkqaEoe~z&-dxI%+*`zW(PKyR zw?By51$h8PDk-pW^|iVBE=4^_7Ts8q93y_8&2r3v1F}IiXGEYs5xJjL z6BPWxk|()-q;W#%$3<$`G->XoN@DvtZ^mJQ16-c(n16XSbbLPZeG%9%OZ@hmpv4CM z5YjUg04_Q2u4{qP0Ym5WX=jdN$CZdY3oKT_E*ixFYO1W77Yw!x? z$+C5FsunEorU>6v0oBCnG*<+eAiqR^1)O4CfDPL()DFhhYvz)+0d-4hntK7aK&a!I;XgMGKe(vY_-urrf@B5$flX1>{?!DJq$2!(=IQ1LHUAW#Z z1;$!4qRA|(C5ITREvZ>CG6k03edAA!;Y=-73>9kO;_jhC!=)rRwU(+4^2&Lw9**|P z&pCEYVf8`o(SwFK0J1PnrVEJa@IHrUVSGb&Y~0x|czUu%=AziK?Xy>Z!`NqU&-?W4 zQFiwWuW{T8O*l>bEG5ri>PAqHoIG?|fq==9y({H^1Z^5^Y_1y_f?v(geLH&7r)T3a z{*IlN_RC<#Ybq2|p}q-is}BGLKsUVNN}6xM?Kt}ez-fvPt7aVU)zC(c&Qd<4G3Mp^EEJi6KrrZ?0sgMzjd0w zv-$V6w2qxIhWI=UEkLth1sz<)`CL%1Xr)e*X1 z^K_8s>S<{zUN(A`(Rlt&Q`kMHg$FPETblF74*sh&{Nrch&oPDZ8V4V??F2?dW$!1d z?40J0sm78Lr>P=w`R|~?v?Aa$`)^MV zxx;+>SIN^;=f?88NOW_jkmviiB=^7j=70Q*<~#Ng01i4;6cnz~deKc%k)~a<{ncN% z!v5_P_I`%_duQaGx5Op%{_`9DkrMw;4{@Gm<^q7pjBtK{&cNqNT&!e&a?nNyg2iw zx1s&LZa)^HQ&az=2l->8i9ANPWQ-t~0~oP!Yu38>x4I?1K0SRb`dZ>s#0!+0zZ2ox z)l?7uxt)CD29^hb7oU&E*pim~I?){W_(;TC-Shl^hvr|%5)^U3Ky@>efISGBpd`53#{j2e(IVt=64Bhgqb*w+vq5m5@k2!N=rXqKJER?*e&zSCFwF7x+$4p>mi`j`9i zKYP)&zmBv&HVRKBpInBi~6@@`M>O- zfBWkXS#-non>5E0Z$mmdx^Gm>*ICt1cT}pwqRHtw16|p(maFJ?jv~pQq4IyeM*i3r zBHF*evn!3AL`iQht7^xT7!*38Z!M;=Jxt>e^tM6cYp3yyxqgGw?AOo!_=NxC&ia~w zF5S%9&g=ekgj`p2PeM11-!EfXtDe5#RGQ!SN2+!4y+3%N|F$Ck{h_4MLq`wbeFB>D zKbX`$^V1UcpMU=(FP(F`YHDiXk&#a^nAg{{^>T`SrNj5N zFbGdM03yVHoor%O9?}13>HlTno-(8FT{|oZqZ>ucGOzFdleFT0zLox5!K*T0I~8?y zN{eAgl~J%NFV3Q|1`?(h?Pv3yh|^^vb;S?3#OURE(h( zFd4(IwSN<8cDD9wzt>h;5JKFzbz5n%;5c_$-CW`6fh*g!ZelPq{#rtC=)}tY8_CiGa z*&|5*euU)`o3p#`Kl}E-p4a=vMX-HxsW6$Fafwqfu)t?u^NLkG3#kidpRMQN{oo&O z950dL^M7qkTU*=W8SCEtE9k8$96or;y!QU_tKf&Ns<^2H)Bedq`_KNjuL@^p>$b!K z1Z;l=W`er{nAk^dvYQHS<;l{5UdhhW17rNQdf10FXV2Oe#<(TJ)&EDlj$G|{}iRbrD1+xLx z`g29H?sU)Jl|;vTWSxhobN++>MI`RS-!G@iHL4E}4}Wu|@%_5?yH(nQU9n*E=VviX zHS5UNYsp|FF@$?aIZU<3zZKt0l-dEMo>8nSf&TSY)BE>(+UcFAR zk5L2a2c~_FCrW|jqM|cz9J%Lfu8~7Bm@nL`^-7s2zKX$gw99gz4(trp`=s92PV<}( zp=WRILR-)JfBM9y|L!UCW-n=nVbfuqBXR&b9DU4UE?%lWe+SSQe{hWU>R|D|8pyH0 zn~#|nn9Cj0u$brP%47CC(UX^im<-BbKz)xe-sT!rH^WCxc6+u7OXm4ct zI$*Ki0zHV5!YkJ=e;2#PAR7({gk$+3f)!a@KqLFJU|Qu^??=)OU}9(C4Xk=YL5Cz& z-lEH{^m?M0Ae3h)tJsiynpqGgTwtO96SO_4k?FfFv%Fq)4ktY?B zi@Br-?M+_fu${ZB0sJQ#ZUHHYwh^1#WBb6XBmC_}QXs?5ZFsmN5w`Z3=kHBGr>P5c z9~YpzZn&lXWY##|N0oMF3N0`tfBOp}&6t4CUxz1@LafAceKedRB_J z$FCks7Ok!dQW1Cu?VA*9?ac7yXIMUJ~o!zz$$vT@&3WXM3~jwgF6}R zryofCt9b>|v)c{2l&3iR*()&sKF1set#3=LU_!a~9oKFw55r@z+DvE`0R0)r2pw?G z9Y68Yrtv&MPKC$EliSwu_||UJk-_mX(*ubH`fL<=5mrU6y*0LK_m zxyJFI+yz{+R=F$kV~7yXhY)(XWW5e`sN>s6wvCWvx^gEdkiivSuUWmhH@%r`4cxk< zTUW@)9$0%h*)$%h=(y__?D>=!b;WzlcT?0wgHc-drynbiCbLeC7CE=RUOOrC14FQT zhK*jw-M7*Z;~7#;6gLN5jfZm9gb5+}))yZCb*YJqdxKvxMAoJ=ICZe_#veehtv|%O zbi+VEviF*l)I_ZHVhjGiY)C!)2Wg&3)8!SKj+%WZL3fL}P@X(ivg0&5UDNG%b%m;) zdsw!ZK`=Ol?Mv#i4jTg)_n$ZR@RrE6WuL|8`m?NN5qeSb?H>_U+}ayRA3iRq`VsF{ z%4~x1a;#*&Kda{_rlIMBX8dSACYPNh)-;G`IPFdvt?%xJaPL@Wz3;@yc8_paWaR6R z$Xy`J+VPfDd*$Y8gq#q2%lcwHTRRy*Z!GI}9i11GPA+~h0mcEr>?1&Ok1j^jR=&~k zZ~^>N-~eAOr0bl$>O31X(gD1qDT=f<6ON{{up3|FIR9O|&fsBU>3URM7(B&Jeushw zjMf9tiw3Lf_Ahn{)9C#lE(T&LL(RyXk3SRoyXDji^EOoK8)CD=V2_WpKftUEJnzb% z<-bS2@Xv;k9+*nZ_#f*Ws*1&b7!~~b`orsYFrt%_SzD+*Q_+4nBu>L>#^Yi2Kz5Hg zE-r2h2ynG`@t!CF{VJmo;5vn}opONq7^BUUJW#kb-&27Q2V}i^k=1lCJB(7uO|>3r znRv8Y=v0M-+4Y>S-W^VOoqMwn2`&Z+SpB(4-EkkHW32)p`}qzL^i9m;l9&6zyb7=$ zk3!gUmvNg7a@vlYW=SshX8?PpCtEAIg$cdGPgq+ft2r~Y>uT1KGwd^3PE)s3v>e`o z**4J~^@iQyiG{=Csi|XdCxq(~v66~Nm?gz087doh!I>$xV9mysh>idfyF4OvTzj(Nc4`wEusah;Q!5~nb% zwf=P~$LaarS3M1ODIshuN`JNmUSNY(@!UFeBZ7DORfizMMyoVn&7$^aUy*Ul^;Fa< z%91f#)gQ!1GAgyR=oou|RX7+(@f|hv!ArTbQSZ95KiiC=0T;l_ktCaD)2(rHHYtGI zx^EnTxlx_@NxRa$k)lvv-z@>t*tNXU?kHdjGp5Czjo9iqVI3A;Ik=B83=U@BheTN* z0FYt7G2PYe>RG$hZqA|i6w#{Hl=eyxF&eSe$w>=eAbMz>GHLzAVOk4*1jLfOLpfsa__a2Bg_Sq3GnIZ z=m3GL#p1__`u?sMqJfh8H0Nm)J`2}Jc66Wq9Io-d_u*r_6e}4$c~!rJkB(K{ZoJzG zifF6Qv(6v}>{K4TuYz0cOobDumLLiybm-Zhrarv5z0fr=8U}i`IdlOeT@ETRn-(og z8n_>IeUxkxf6ZzwCot%6gshKO*#xDhr@vBJyx0~n!)vuS_k=i+NC0dU% zq=;#K-_>D&s&FWA2cjDzxp#kkIzsTlT;{`%;Cx#5?3FzpvzyW3~Qff z47js=(nUo7JInomjlVWtJ`tF=E9}|~;%FFW&yjwC@d;2gn~+Zgaz%_WT8{oxXrCk7 zCLGdspe4k-yE+mPBIKe2RD&a_RmL>foJD z@;@~<0@Mqj26zcfuX_Wr+UCOwFit5exNC4vr`|32%iMJg0WdL9yEl!OI-BrM)*xB_f(Z z_Qk-rm{^(tLe{Ol7q|Yp!9?8769ZaC61#NbgE2Qeox4EUmKZfXS??}@qyh@%v+2@t z9MzAPO4~c*O1qr84iHcya6;gF{T`@8Nw7|~Yq>DE!;S$enBQvJZLGo~VXQuXXJu%> zBc{99M{VXI?NUuySrNB8%e$jkh}Ch24DBpRNP!>PT*_vKx16@-3$;!ubi_*B!2SPQtk&w{}Nh zt)^K?w?WJ)>ZrpkdL4+dK$6@M$n)&s_csx1Bu%tJ^CbyTMnOR>axN1y7+wg?f+ew$ zQAadOKh(+7X{X3(+F4On$k{qJ|6+ye$&JlIPZZ>)%Tib<4p8m;8fd$lNa^~r&}+9E zr_ugv#fvWmT(nW{#(ULs;Q^iJjpS-z-a2kSVOx#oi0~p8Yx}%l=(NEHH))Ca{gMO7 z4(Vs?Gp7*19Jr$8Vx@iz>y*WL$&tlMo5kG1dRC_?hY*%S;BgXmk&TkvIu=~ifbt9W z@a+^2es!QM7vQzE8$@1*Tt7*F;)mcH2A-v3gUbqg$v-WvKjXJdT+U#pc@JaK7~H;Rdc@3yT`I>N< z4o3)ObOnJxtAv(pSY~;GL|kMEy=DwCHG>$-ZwSKs@%g9Yy4L%fSB!`=dEsI9k%gG& zN+9YNoR(Da8qtp0BigP$=!8b=VzvZs%8Q*)4L{1 zz1uQuhr6BPDjo3i+TE6lS+bYT|9k^zVqpBpvPQ}N4sTMKcLvWA@KY{xKLOKVZK9-F zMvJ>GMK59`z(fJORUPQJg=u*-lVy$dhC=1BImw@z^`+)dDV$S?U^rRvjjV;r#j?wH z3n3pu#lKh#WXWw65DFANYQC>u9}Xlg#x2uc)T@@L z_0Xy}&fb&Ym@ckcgsU@)mSG80l%-pX!aBMzB69op8U@jxPK=n8^X>{CZAL)dH>O+K zNp;*-h&%qCaui9#e|q?k)J>iLaM+(Ad5v{=qZibS_j_^v)H8*0z%C4?5@han-UAw&y@R@x-rxYLQV3r23u_4Jdfw zx+DJ+3}!DM-rx5RdN+b@{bv!O29f*OH%A`gX5-xL?}4jYtamgw0H)IC6FF`wl;Yw#oWX9Wj$ZhCuhK2ki!XzI>TC#NWc#zHQ> zQ;l0OlR4?`L|3h>`#3@9HGYEd_$agfWik8Md%sP0-I$B?TL^)9S6co@->1>cYBYxJ z*p944z)8t;x;6-S+^v8~wMU?@YA2X0?!#S8a=?zRkWS&!O|2= z?|$+;@wOD97sf0}@jO=Q7IYGS2DhyTo*#If?_^@2n7N4>Z*;ambu`hJYJbt<-2q5e z6Z(d7paQQT1{4oAu@7c^z@E!Tl{N>Xl)2Ux0=E|O0_Jvswm9#{>@i10Du*@dlUEODK4dJ~EoXe0T>Ut)WTIa! z!~Y{Dn03M8Lrzon39_N`9F|RW)Rkp-a!L#+kXW0ac7?ZoZPEp%x}zgky_6L3m) z_v{g*og3D$D%mEl9T3ZPfvwnYck#A@N1y{nswEo(1Dtb+3BQDAFeJj=8sjC9$IG-? zv$1Sk177n{Oa(WLDu<{6+*0A)2(&XMa7z!Z6btu2jJA4hdQEiIwu@V(<|A|px`*}- zrM*bXT4ES@6ID!*R*l2)H#hGxFM5*B6z{@eC%eN6muoUmrksUo0eV2E`Xr0ur(aLUn-pqy){Pl zFg+tV>{tW)o9TY3DQq6a%nvXKu7`?mQZF<5TfI8v_1d{Tp=4(s}4g-Nt`A!O1eb zPf;jZbahdxtDXFaUpClc0FtAUC;u>t5fd_1?dd12#?gn}MBj#}Gwm;U0pVL6wac*F zbqP<5be&ze+W6((>7novd3|xxe!#+Ve-7wDh6x{i-|^z~03|l(i|7e>iQml{odW23 zyw~o>>8Ip*_~lkrh9Es7a$c_{#Zrbj!360IxH|(sKfk5xY-zJdK@B% zFtLPIt%BOjV5YIjG8Up@lGXx-21aKl1IbD!`=acpSSlw?UO#qPeOaFg(){YQgk=*2 zG@ep?0)&x`Uq6={oxe!h9X2?)7JU0LPUB72HHmB4-d_~PGigsxg})Z5C=1Bhj0yTIBm}k2SwO^9Bv`mU#YsNc*($qJ?ci{g zZK63nY*?@#ISA5ejF@Ssrh%Ph&bhLIV-wQc@2R48@Y-PFEZXMfbXwX#GR|>O)GY~) zq05yGY`jL0eq3=rKJXmt;(nFc^jVx9r5`?BC@bCt?O9CmeDT;|>?GLdoZ&S551#L4 zrN|>JT>v;m9eB882o_tz=sN%Xz#_38zATozrM zUrkMy$+muBU9m$*Cl-H^Mk45hhy~ke=bQo}r=6qP>=mcYXTEDw$OOsYFO(!;&s0H+` zRp0NNXVz|b)+|lUvRaWJ<;zXc);r4iFQ`k*H zJm2#X0r)$oc05L>wDsp3`uxaZV?T*>XR5RoP|c_#zOyTGmGabRd< zkSY8g5ev&v5`g*#4`v9i_{GJ10gS1)#9&gkAW z^EhgbFoy)U6|}1TLc@GH|^cq0*#QHQ?}T!`ok59>hHb@Q(<|Dwy$+S zQH|OqZ3?if_1tR9GTfTGM}N2SGZmjSFaO@8oxxzX@sxSEKBNb0qmKO)m%Pz4o>mId zO9*wH)#sO}kb<2~XCGJK#&*9aB??~mfxyneWj07fMg-2)a}#2mgrRMX(Me&Sz-N~O z!uIBpEKcG!?$*{dMy8qXqXd6pGBjf7`_Eb6Mk^e-OeB1CmsHa_EdKzcC2?WUo1C6m z_>@#G?U6c9aBH?)YYsb8X-QUzDH&-oqIF~{{^Z_x{~)Hh^gQwKo88L-=bu%0)aBXZ z#kkbG{d*Fbi((WQ0rq$mOmXP;s?>tg_q@}@tu+PRIS)wnFr9GhxOwgP{lfEaZyFWM zm4b}I-m*%$y1~lq(rN{cWyWgF)5^>T<&Q_f=&M$_?8lBwuOs}IQ+1;Cv4~I1>byED z%DHT$gjLcjN`-QGln43-=4W;FJ5Fy8l&tj=B~Byh=;k1b3C`Z+DQ=9+fzVrv{)nTS zZNy+pg_k_GC)#$`mN6wPaGk#$YZ2cx>QW}x=>grs5X^+ ziKt(QUDGh&Z2%tS^UV~6J$57F8;Tq55gHh4KLXeyiuD^xTYw8%O1ezKFo*rpHxA25 zBFC}8PuDU)3h5}c56K4Og$%<5Q;nA7l$S0}3y1H4`MgljD(C=C@ACi?EQLM@a;6=@OZ9ry%92)RZZ$7@xe`07U+$s+;nSIZfs z7jaU1@PM>Lc!<#9sQr&ntzon%q;ZOSrUok}d(3OH-_Qse%zk$cBy~2{VX2y;1&nK2KwxA(lfu|`tVQQx9-Xm$zmz|0!;Kd8c3MBnsyu$@swx^?0ki&r2N-J~3YcXuFmcuxxP>nhfNrwHM3S8t#ME z1&8u@91(%Zoc(V0S_1Jpq}l$GH{N=L6kFY>`^|x85y4m_X8rPG=wSaW*OnPNAKefy z-#uO00ffwfvw`3I=&epH0&wx#Bx+HZsxtN?x%x3iftNb#M(ws|1tG|wyeU21gf$o# z-c%ZO*?xNV@o_6Bs4;*uUP76943+Od-vl_A6t*zyiw-A!X$_%PKrR%LJWJ6NbE!1-eZ-ELMRR6L&y;_+`fpfuu`teo_6LWtTFN|hy zDn`&uCEX14y{=P@9ROR<>+qL%1_9eF@N7Q?5!C6#1+tgNqn~-q; z4qvGhm8llP4y-tpfg~YZZz{N)y?nSLmj}a03^M{Wm_J8;tH)gmgKTkuJhbRos0cNFA%Mgx17$G_L?%2Ni^Q&F0W^y3%98AOSrF}ndq`Yy_VW= zysJ!h|F%Hv;uL+QvlYe~KyD*Xj`yyEglTQ2cczJ<4g9SJVCjr6uK-`V%BBJU)JkW{ zCXo~+@oWzICilgI!0TSUoH_B*hMXL^4lT3;$_**{09#kHOah81k>;Z^9YH%nL0lM_ zK`+YX^MJqBPM!Ty?=jgbGqC{;$0q1o_rf4E zw(2=H%+>Nsi}fk&FH*H2pfr522v)A^+>@=W| zdz9-;pGX6Ik?W`S*gUJBC%Z82ylZTFH{L5DFx$Jxv60>r2LRU?w3{QCb%HZu>1yBl zS6z;2>>q-ch^?kQvaKHKY}es&&ev2fNQfCBMxWoy2%q~VB_KIu+h>}k7CFKY4OhMB zdNUqbg2|qMEtR@=@cA|U)-j;QT^ma}(~zTyN9Xq;N+`mc?V$t|m1^z21PW;+$F>DQ zzKz3H;-yv;gM|Q-%Y2ag{zwUMtfs0|kGH$F70UG-sz1O)`zu}`Zx`a>U1BMEg?j9K zGU8;gcbsI~^@&$v_0VGK3en?@CWYUZER6>a2pqS7K4_+(w-d}=3IHCKpM}Q0Q(BB> z5ggr4x=k?rhSBO^>-yGGT1W@b4KoA{r}b9lj}^PPcIY_8Hy@dZSp=8~V_Wth6MW#f z7Sms4<0yyt*bWpCGGYkrzC2Ih$&c#KcyfaIbwagY087=#);i+|<+liTL!D=`BWU0GKY2*P5(sMo&He@)D#!{_RdbK;wDL zI#SW^=WL6=Z{uqqZcS}satJodjss%KsYtZCF4f#Riz zjK%81V1d>It45tm`Oex{OZPPlyTQNbS$@cYIahYL*CPSFUI|F-P?*sZ8K7DkQSXj7 zs$`se0CCc32{j#w0GE8j(GR)l zkH_AB)5^H&aAYnm$LZ=J@REY8!Bu9YN^tKfUr1FQ#`9mAFf_NlowpYfLR;G$C+xcU zq`;u@QgCLO+kxIE^>WFl^Gjl3xaNQps(eJ71thy7t?gg9efj*dPU=2VnJ;TXMq!@3*L&CRxYB-XK)9 zvSgn)Awk+#P1{*>(Z^_~I^VFv5ux_9AxkcHGa`~jgGZMMOBa)}_R%j+0nK-u{(%9* z{`7k#ZU?pl-}~qX{1vX74&`KkrUmWVQaXM}I1R%C(0S<##s(+Y_@o|IVt8@lyH`Dl z(HZMRZpR8w-EkmO26SdBGVNY>TV`Q}MS3E}7TZ923E-dh1qZP^&>{k?1Cn>jH%ySn z_6Ht)2sf$*sV|KEz=W#8^l-5<*Pyvwt73XDc}$XjurRXF?p;eznnPE>?Bt@=Bok4H z_D$<0WRE2aeD(Tn)*5(v`#!FCzr6h3^4CWmdS z4q3qux!QngTJa53#|tMhO!PEq5CuuW&s0St4;_#flH|oPoRA@F2lKUc3WQN4pR|j` zJOcb*A(N0!t&>WnaD>b%R}B3p8QN)Ha*E*Ot>V1#8inp9kIb?h7(KZti3HgSqOdSI zqDz3cojYst4pqE;_?>Ox%+xDYYf*f*?6dC#M}f^4?-ENqEoASmzwOOFrH@>{u4>^6 zCLhd(^VT*3Wl{EXY=F5cteD;uk0w?Cnh9eIHB3iVkXyhlv*o96Y(dS+1&R-Vkrb(c zWAQ5cQ67-B9%mhxQQ4$^nc}*R<2)C(RuqbB3m`znflc-jVXmG;J}IuR8J^aR z*wJ}W@<%4my4m|R9L--K<6JO@ZbY-J((&<)b(7Bd1&e25(gCTZPhFryxHG-F%A)c` zk43%Af%NT#M`$}N@UZ-Lvaks_Ypr!Qup;GL7y52=yH2hSlf90b+Ig-C!zVEClHHNH z7Om9>nN|DmZ)3(8O?*aDJPx~kYZLiRePUJ%pl!S734c){=(!v-rfLB@X{(D@-&QjX zz>Eo=5XGlH3FOgWED*Q?6!tltTHzXnnqX|I;a#al77HE3g3xsYuGFpR!-qyip9HQ_L^s9}&&KTRd#f&Uw*17JrHF}>j0C;DA zg$0AgG4-*vFPX#PyqCVI@p;h3NSpA+r1iqt{5>}G=2|bzL2$G2i)G8RCWh<=73kp# z(-f=)w{Wpe7^lpR4}RYK^BezLOxX?k4ajwY3_vToHR7j{-5_-g;Ec5mjwD#6YvoYG z#X!n~K-BcI)=kTLNXYD39qIaB=68fXAJ)MY^eJo}pW2#>jXK~fOB}qfRIuV%HW2Iv zr_2bVKGLgZ)@&Gw<~iC~=&zHQf%T@^-_W^!E#F*QlVSHL#N432KMAqvuC5Y8fyZ;N zAcuIRs@SYWJzLV*QI^AVw2QHmT2;{SenR6f{&j4!;wg`V#_TNrNwiJi%{O<&c~735 zMS~LUYadF0hm&-zI1dv~}^&`6Z+LNFz(ML{e0gldNktJI@^JCk5JUh#;(cLPxEO(0 zpfUI5fdRH*Gdf9YM)~eERV!S=Uxs7P?qD6Z3{qHD@y)0LU*hsQdtByAE@=KiA58$~ z@;eA9c|N%#_h&SJ~_Zbb9kt_B)_Ol3)6cZ{lv@k))RJewJJo^01;y$Q1Vgn0kO=fW&y>Dmt+9c z(s)TD`Q@ohLWQl0IjXQqFBW+WK=Td_pa=~!FIuzmgm&S6vu`Rh<($0od8f|z?eWhL zKL;M22zA6VXQRdWzG^#$gH;`?sNsAKHDiM1PsP4&_VI$QH3YAh-GKU4!GQY?(NBKU z*d^eLT72sxs7tS@Q@reeq7W0(Gph=#86VlHygSAqUrfjw89R3XGoHGXr9=9RiJpN_s4F;LRZ^JOw&7-@m?m1A`bGnDx zRIJdotET>dBtRq6hOaIu23r4Aq`bK++Xa=X<^UXP#X?*MnChT28SwBcUMw zOTfKEjr)f63Aa#hvS|`h>xsc0%rk@xo|i`X@Ks}ACnBwSQEa@qn%~7I_=h#ToVV)a z7{JC?swV>zGd&git$zR(72B_Z)$-5>Fh-jGVvJmN!kWeaGY2CZt=}`#)9-9c+XSHM zSK!u<8$6Fu8+-4B?3SIxsMKD3eTSUfj1lq+ym5b$#c{D)t3O|Z%?b745kov7K|%4Y z5HPXg68E#+!jD~Opzcj&xt!1b48Y9{PLfefK$J58!QGWxYofJX8+@%} z7fNU_`Xe`rXf2QGiv_QHLPkhExbE_`nQ7U>3|KW zQ}mS9<;T{lQ~6~#ZIbp}3D?3P(+w&Ll2KtAJvE97xnC{slzf2@cEAg#Y2qNkJg=xc z*4_K7ly_X$j(Pi#(k8O|3>X0qIotn1WMA$*y+Zb-O_^ZE$j zV)1%Kj5J@P53GDdPhg`3a>4ZltJR9S z0kCzXxN(`hHxKJ*nQ1A0EfqnYmR*;U<5z~PM4{HyTM0SjeJtd$i399zu zTM&3ZE&*T*RO1J-T$mnm2Vye9MwnYtWKo7j&=pM7XGQMRVd`cXWUD9fCUT|Vp1*tIKu_+FpRUpsww{tTBXuhuLkLtkcT06_#2wCGwZ z(E7f$_q8REjHS+H*B-_>E9VWAx+NPt&P|C#9~Y<><~z=1($;zGO+6UEZ=zb?NJ=8i zyUj;I#bP;H#01YgMA-mLy>la44iukK9l&Tz8e&+8H_2(Y*d6JzyRx9pg;}KOtV%}b zZSvL|C{}P}M9eppYAmXK!5!+5R4cWxkqyL9PCTSTj((dWmp!jiO-Ie%^vFRIu&Q{N8kHp(-ZBhwT1pyrQK&Nz2?W=q}Ht`9oZt zM||wf#<|T}rce{C)r+2xAMMl~r`$ zYSB$;Y<4W9*1Yn+nkX5$eK%*d+vXRd^8@Z2sLX3sK;|zDa{gqq)j7qt_0Jak!*Wby?675bu-ci}vsN3_Vl4p7lIRM=& zb|j{U<2MvV9Al!!j3IH`CybCKlg*h3=}n7R_&jXl#pJ;v5qGrk#FIiT=xvC;jKwpX zKGB%!#l@ZA8lahs?zt|%bqGY_xn>=cUnLhhauiSpq~V6bWuwUZ1iE~;I0@jUuh@hm zc(~lxiW#uPI{Q)FuN?YBpU8M^h<#G$b~7fxsg^503ZqSlfl#|ka~*MmR?4+CihI=V zJN^_dgR?32{rO(AsMOu%I=bUq12pzGZcQ(ZjPHi4 zkGfWkJx`Lh<~`uhnNw;Stm2;RI^*s4v}4m_ad7ct09!r#44(qUi4Xw!;M=~HG*mcx z`H0m_`T#wO3JNqf z<@uXYUCB&2v)I%l&L>T8oD4sI{<+nn?HL|XllX%lwwV38lGKR~( zqC9!KJM(OkWSqBEUSt7MQu{^y$gizxHO-SlZPm%4d-q%9 zB4?hbCPMtHe?E{$7hgchwwJvhbRsR@bx>&I7kK%W*c*Ti>^P?VklXrNhXlpl0`+or z1w}=Rklku3CR*Aj%7xncpLq>|u&(cYWL=$lzD~mq%6j@aIJuO}7imG$MyI;{Ea?^ROxYCJWyQ^r{f< z4-4Hzrg_M9ZR~lXwDVwn6kORUtJ|R-o+FEwP_lVc4A@Q>;p`t0f2%^wUEajC0=)({ z!}htCX+^*@mot74-x210PA-&4=oK%7k9jku5#S1RAf!g;4-yHxF#*`(l3J5dmpYV+ z@a1F`{Rqs|4D*!S>o__esfY`_OB%>ZG*Q}WV40u=fUC6C#z6gMvRiGbjtJk2kFi!v z!wX~7R;|jT(2&Z*#cp{z-K@;tT}8XBpn5}=xtsC%BwXZ+&GLrk&K`3h28ryuc}y%Y zAAOFo?aV&ma;p-W`&gW#lh;nr%zCzEI+qv>EXK{M*UJ(zWPBXEe`GgUjuva*L~deg zta}Cfq`RjDZ*3H&ly3Aa3qHkl;Nu(7w}e4uqF<^q=T_u}zMp55*yd+hJFhKk%`8)7TU7Bc`TeimP`P!rI2}B1pLb*y0hKcBEJEtGaGhv)d~FC^?lgpKh3R!3ajK(6G`cPn@W36hAAYSu90jHO1B9 znNE|X1GNmpKxP+E$s-xvHtSFKuXdV{0@S^i#!lUi(<5NKX6nrhA|d#)LRYrw*y4g# z;Wo^DuZ|4mSghsNMn@_UL_P$sbsR;kdW0O zVXkPILNY{GuFxI2Iqeg-b@;|1RpvA6lA7Ggb5`?-wOV0|h?isT;_Vrc;j9 zyYaS91YU7u*KqZ*i$s!7j5mZZ(z1trLxd&7A1_^gd{NN;(**?_V%E{R=v+;K=zzNV z%2DJuZL7ZAQPDL$$mI-C_>CEs<(G3=B*Jgpaq7}_wv z&^rina`GWpkX6pG(L9YBj}1}K$yFz?pzuD-Sah5vtCadO9%LUA%1VZGYNyp-k7D#! znlJ81CN!PkB2oR2-uMYtaWgUumKS*r_*Hub9A8FwW|c?Eei{lH&GXhgIW|p_MmmgK znMizH8dAtcy7zL9fJxKT!;So4myu#;e(t`MO~JyT=Q5kvLi`hw{6twdH~!8! z{)az_h+gXzN#*Q*(2|V!MoJU`>=!FiuRNVUFe4cq99%$50*?+Rz_(`p`Ovs4o&{tf z75Pq}Aa4gmX)@~+RxR1kot-X609Gwyt}f%kFwm6jC#=wyRlJ;W8^PosGFqg?-|ewf zklE?DJ48-8!F=Afy9*!9QhP>eSXM8;V>Z5bFZn*RsVNJn@-q+De`qzpD+B1MN*&EI@9&hzQ^k2r|_JVn&AW+r>KXynY zLZ_#ipgL0kmJM0&_AXy|!+2v!6|1qCb(As96LGY6*%+%ryQa+NjtUFqb8fq?o6ZXY za$ah+`0o!lt|z6t=q0-GTLrjn1}rvwLiU)lQ1?vVmg05haJg<+ljEsRrfv{E7Y?k< z6Lbs1=!-1!-~cZ)u@6PL+*gyO#YT=%!E0AI350?jHDX9wI?A6|Zm!L3=RC4? zC0vh=jNhI2ei1Upa&ol)NCH;fS5V15)(Z3|Y4N0KraG?=SY#G`-GA!*Io3?)Nwq=3 znxUubwsKoXPXuX!Ghd|4fbxB;Z#c4Dup$*PkMeeC<*~IA%wVlQPO&16+Oxz?hOr11 zqv6XHQ*V?>1Di+O@3`YWa?47-ygf>KQ`hjCbhKjj(RaIvQL;e#ljvI~$=g&&_+ z?lHL7!QHc{;Yf|B7@*CMK7xgkO!w3%OgaM-^uZq>EGL zLp*C6hX}pW;J?&XjZ3qi72_3+5-hhU{iX7GD%g9lu9ll@-h<{vb4@n-D6`c z|AI`brY6Q{{g-N6ltw_UzB5;MwqyCLPuhIbMnAU*23JN3f+yWDuHAKpb&MQaM_383 zhhOVl9O5QAe)lo=Qh@hSk%THQB}y9%7lre(w~)%6t!uw5MPj8JJfsYH#|OF*iR%QRjV#goh>obZ}| zyJVU)-rSk2&@y~ror8Z@gQHIX^+p(y~D~Qn_PVed;7X# z_@xF*j~ha6qB8}lbIW}qrTRkQl)11ueUZG11L9cxzRiKG^E}`?Cmd(nfBCRrtFZbSqgV^CbiVu^ zg>?MEor6*d>cWm;cfa|Hz36e|k(?lqcJ^C|J7Im;qEU0;^>F9lf`*)qHfKx!SXd%m zuk(Wm=f66Ze^PS(<$y7!Hl~UOfO^4qRB>b`5=_HOg35>Kw&?SuQe0b8_V9?0=Kbl^ z=qZ~=Nq~Qym4MW(&vzX&jA;d+y7)&|y{6Z1Z4c(Z)LED(f#y-pXodT^Mle!G4@`1P zOp2mQO)ye%Z?7nDX^e#k%Z6WM+rg$=;UU;u>CY%F&1Kd(&ee2Tjw-R7;@3a`e!_cP z9X_dStj0tHYwac$AO~#AQ1g#{C|u}D0J$Ug9B9l&0j^7cKw~mPdf$(|I z=ZXNysRR`UAd zvf)|a8D6d+eqc4;JaH`V)PO>AC4v~E=D;w$c-@LWqO^YBh;^VxPHRv*e)y*w={`8Q zJX$-WS&ountn{1aPnvI;#)aQ05C0*ft6Hy#YQD``UCppPB3eh@?mR{Q%8{dxeBW_n zv7xO7RvJ2GME`1CE3nY11%v5h%>rgTk@?T`>ttIg)DKUf^OQ@zkGc#*D0*IrWHDcz z?r^0vp`m41j_JY>!%(H6Z>PenoNkppd3ClEyu)!OkKJz;9KX$-O8sHzkeJ%yAQU5t zTZDw1XmKFmT$svHb86RgGrX0%w?-jEtqXxN6>Fcqvq`+h7qcT_=!hO3xn$`7^V><4 zOBtrF)G%B4i3jqv;9APz|Hs)|heh3O?c+m>h@gl{V-S)`HyD6OD&0tTcOxn)NOvpU zJ#;8Y4+uyODbk$-4Ds6|cpjeLd*1Ut=gVJnUBfjqpS{;!d#!uj>t0$+7<|_cD|RQW zv`dGZ-I2%heu$1p%>_?n?#CML1?HGK_YWM;ESa3N*OM){6UiW{{0R zT^t;y&UE$o+K4XQVFN?z-kG2=GH2h)eDbpIakEFgby>DbbFVrbJjo7f<-9KRQVnjO zd|)}i=&_1Jz<*YEKMP~|Xy%-Q$wy#?rS!jA`=2*_F47jdAt*@%_7topJC_PhWV`s5 zIxnUZdSvA2jiSaolko52x!DeCuxp3~x--oa0kA0M(#`v=>e}o+_!N9in7oQnX_8SL zdmBVGaQhiRC`3n9p`5rGe_^n{0g`x@T(oa2S;7EvTcF76+}84-ayT z9u0}KfKpIkyyJ)}RC;CYaKEJXz1AZVh~x48Tzdzr8?8MQXUhdtp-$s98qky!qLkO` z4lP!@j{fN)_9i}rF>50B%2E<-boTt_bOFic<`Y@#pg^1bHDU^bA2tq=Ed zez6~a;|4P!@}9UfW4_$C9Mm%(*Q1rCto`9u5hYDlmeU09_CaspTH(9v6reimL}m3! z)y3wgTFmYei~5gIeHOQ$h)x4hjD{C5{jP2;1w!Xpc(c(~ImpQupqZK}rkme+^E|lW z4*0><$&2K@U&(21L12Dm(U8Kz&FiKDwA|d>!dzTXxm#3(^bB(27_t7l ze%)umvz#khxmS{3j@OiF`8+ZGS%j77blly^Wh=5uwww7QD{}do-?E2%vlz*Kk1w>A zNG*ZB5$7mP4lc}^#E?Q)YtqrhIb4h#ldIZgJGaCgYd`3hCVIqCxfSHZ`weX(hzlY` zb_kCvzv<^2s&Pk@@?h(!TL4p-fh00n_~NcPT$zQ8XEc)ksJEfia7S%~Z6Yect-K@A zw_3U(cK^yxh7)1u{Q*{(Yx8l!W^1%t+B026m*wIN$r46~poi3QlRr|l^Fl?*1cqx_ z7Qz^e;>ZVk`3F@iy!M6B6~#H-_|-v->65^gg&~br4?8F zyqR^}5c)Rqy`+2l!-OY3=OfPz`w72Krx@dB;GD`{wt@2yxiH z;x8f)iTKS3pSTQPwO{jmg^P)Na`o!fXQH6qKGBAPU6BYk+L!pHB~Z{Zr;RZbCno+fd|63=G9VA&arOy@Tt8K6 zg)bt&p4@dy19^NMKW2Ae7?tyV*1&Tw@hHnw7Uf!Q4JZHT%GS|}H!_^7y4$$MT8F0d zSjsUk2g$iRwyat2vVCKL4jx9~SD1enSGC?FPs3}3xtEJ`d!b+aqnGMzUZMqoa=Dmb zmSWyIfk>qbZ?RzqLv^iE|H$Tink=toSe#a6bH0<+n0&s#jGC28a)cf(1gSflv3XQu zW!{I-+J488*)P}JeInD`wKo(gXumNXsxcP!c632G*^_5RktnB)NLgsj{ZbpUATBb- z+<^62U-+zT3$GV}L>$M9Vv*#AEV6M;UC(zLhtbt`=8n;ej@J#rw4oOe2`(A zzzqDzfu>(|jhivJe)lk9fj}ghmHTjSx=H|k%{5qt=B=(3Ksk$`OI(-Aj*A?4QFrW`dzX%m zs=v}~y&t5`v>=g=0!83wpy-kYf*2sGaHI^TVZMaN-=E?Kf*W@4S8#|RyF+?G9e^HV z4DaA-?J8aaJ z`MdyA;Ml4@kE3N-+Zfs4b0mu3-|A#fbzD(<1Kqf_edd^R$f?ZexP)TIDLdQ4u2?aL z=Em1Ns!py+I|_3>^jfI%T171 z_gralyvTAi;ojD@gPB$9VR1tu_ZnlJo)-uEFrL@yq=N9zG2CT7-N)YOus|-?*L2^R zL?U$k9|Mk-;M1Gjri4SK5sA5G9_sypt&^-Xs1)~`=I5Fkfg&^=84eYjh+(B7tWozn z%FB$6!>8hSgf-sq`tHX5dh0TEg}U58`R$6XIf9IjktULKZK`yMbiUP>96mhWOw@Z- zy-Mzo@@sYmdu)87t6nyCV5jrYZtEn!Y`C0{bB*@S+i?|LvX-l01dzjbeYEO+%I-FW z^x+6M|20p&*1_X%GzFdI@OUbVI+a4{aimKa^U`SP+fh5Q*a;5| zVwN#?kvgpk#Ypo}))>{}6S6xHreMmM{{^J^mlmL02o}el+1|RD!QmcmBcTvOlAMCtlW9EKsvu=9LfWkmcM`E=Wv6?(0 zJOU}~79wNx+V9xez3DV+6F2HGIDt+n>)XQdPAUq(KuRoi&e58zIgtB;L#Yz-zarHw z!vNH?J5L3tYjKpL{B#l0S90intmNY5T7`Jc=^JS{(EETxG)f1f zLF>RKK}vHKcb;^FS2TZdsqNZzddTvsta5919?tSqKE;p%b~yq0HNKxKqQyv&z&zx< zi$$8l5kuNVNcD0**0?vf*PP0ByaU@p6zh^oDbIX2h%g^g1%L3wYIg%YnleXPPa!Hc zeCCXICuhkj<;3^@NJyfcizC0E#gW~roRZ@QQ;NL#szyZm4q@`-p$G|ox^{8e2B|1Z z=4webjFYSq0z-;mD?_iBOZ(Vvyl5&rrkue@R@WbvtgABsN-7<@QSU0I6n#nErYPbU zwB&@L+g+%a(sD1k{vGxk-j1V`6M*zNJ~JJowH@3i;Q3~-dE8#%)fVc2H}m1)U^}jf zVEeCV^1IfMq4hy9Jhm}$GAD{dq$YfIthyzTu*Y9gfVt+uVj`$7D2c7ro))m5sma7yXZW z8C=-GpTB4Wse{{AwVcnc5*?k?-Y9Op;tV*L2ESVAEd0ngO^w;SJZ^m?%XqtuLhD5= z>-HVthM>JrnsBN-G&q>>$AdsFi22VZs+rIJEJZChAN*8v+3tBI5#Ud`SJWaFdr6md z_$Sabfa#C%jpaufK%yzvQIbMOh-vBF(r%c;-oWk`m!6YZu^>-%T|K>o+vAVvK}M7; zhvhvJD-kAMQ>(IT;EJ9dFHbT0Kr~;lji_`ce8CNPraSeTG+TqKW!0CL#-4VqEaGlo zx(4CeB$M|_$T+6)crmlgk{Ix^uElY{qXnbZxEZ6Ld)g*)?M2)NZg>PW zUQx@V)nf;OcK!7B|mbTh>~3nY=%!QpcMN#xC~llYk(+=5mOBA$#6VHRf*QaWxM zt~Wa#)kW@}%S5!_oFhlg(0`iV?Z2?JVO%3ZEr(rL?{S!u3-|o4bXeUs=}^=5YsN~| zu-HLxZ~tO-n*>JvgX!SW{V#0lK;EjR#@)r5eP3Xe=rBT`Ef9aHUrxqUvn9^Me7h6I z<`_8VrF;Rh<-|#UPIc*TdHcUInGX!X5fLPt09l+rBA`PPwtG(2A7wtNWf&DJ7bGt$K6f-DCTM0TVHNL85otcLD#R#V#jz`#*s65l zi)3cL%Y~{JpW>{W<01!nzW-czh&Ppzk&*G#&~Q$<;=hCmzx}uY#%-&Aq4%uQtzEle zWnyk>apK@3oQ9uYoHQf-sqUk+LXCHgs=UQEeU9&g3hqji`LV2Lb0qY8jRwW87c+6G zrgbfEh?9&O7@If}s5ouq+q*0`B3E{yANgBhMx$2>^DXy0kIOf|1<0Bw*tu!b`|=Tl zShzvk8}(L;3>2^Cw64q@J|-Qo)E8!j7d{!^oATkqD$K^*R>{+JrxFawP7F=&NbN9^X{CuSId=>Fzh z)SO$6ki&B~6Sa&zVTSqKr%}gNbw?rhgjmG1$i`K{@KWtM|1|<7Oz-{n!c&JJ;*1I8 zo!U|**e#|x&6J|XYX!Y9FU}e-EWm$FKJ2DSUmPr81W*mWA-5I9QTbskCz+^`Ma~PF zw!L!^=(X!y`}7&d`_Q-(-vN!_@ejf#drwN)p|ECoN$RLnWTVYD}sgea0kY% z9qkpz#hvu1+?cTMUdE*eaL|UufYyjmKB`QOsJP`W*)Wd$Oc2UPpUts#N4mZ(OuO6 zMHC~$j(6OGVIRyM7ibJWH>LRo=fc49hN+aOCmvaT%#;77|I4*ee|EE6YTqL2(Cn*P zwFHtIfH2isv5>;@bgNLSPM5{rTV+)O){czTl=;8i`cA>;QnGxT+)tbS54;q*2$X4G z%Q=KPq7DhS?LJ=5+0?*M*3*KC6*5q;*lFTnmSRcl-N7u%NW3z3y`<&w642{eaQmKv z+1r_$G@P-l`^EZWw_OZIC3_n%mB*|P@?KP%CWJaN+8{GGSUYO^ODt;DyAFj-!qnC= z!s-(UjHp6S+@=kY;<~W99gr0bn zBkd`3Wf22Ac->N^mPYA^(3Tot{YGGpp#-A*2aoSopG8uYBn1D*5P@(f5S%VB&&?FTQ@A6IXSm-iAD}QdP|lAmjcf zbz9f)h^zZkM&d|469KH~^b(?X@&WM&Y_m%BOPv#r0ptIJjvx2zA zYs41+_+Yc6yCxk+0dw#k z&|@hI=L%`>0r=@d6i;z~%}X$*JipSg0@vBCN#^UM+cQv-jIP=HS#Qx}5T$v$TWE>I zEd>h@FW+$QZM4yex35pVp_4uaodnXuW#h9TOo_(MG0@k4TI(t{aWGdBKy=hTzt>Nuk4ce_4{lO-X(J-o;%4*!`Qn3kDnUYwP{NC#b= zxkj;tbh4`l5?CI0Oz`2Y)^X{6@XZxxR zJKak}yT+v6ozp4@fs$OB_&g_^q1eGHGG@m( zCwJ7gL8*S90G6hmGeTlI zNq;nop0QeUpy@0PW^{zoFxKKMjaKHRrn?@mEHN{^6ve3LfOM)}fY{yr1I_;i`h1G7 zQ$v_|HX;}Y!H~H;_AlDFpt1N968X?t9P#5eB$q?&$8S~WceH5uPkTDGf$Tw-n;Hr& z(HxvK_5v!J6g`(@^>MZ`rW4sF0$z+T!WIXTA9}R4ZD7VWeIyaC{0hD}v)$!kM!?34IzkHS z8OiWlWNNs~%s{~`t~i6vXo6pWl365}sgxJn8P6*X)beWtNd;X40K14{e1#Nqpv>%s zYOU)>+)GHUahEwkD@{#akS5ok99g;??QqY;+jT_(%B$iC)WVGRR%@6<7%iNdZ>1i4 zky+(FT#7P8Za&)m!bjA>bjN7mc&uDL%lT|s=Y-24)d;Wq30&5zUd%9W!~!9aqpf)C zqD8iL+yPUG#t~AVIy!t8V_gYbBVqvsR1+-NR|g;5CR4qUrxPA3&9OE-WS#n*U2L1O zE2#!!ucQJ&WLa8gb^ZR)=(m71lJC&KyUNnR5%9~cEhSKAjDhWng4j;oB0fkfQyMO$ z?;ypxwlJ z;lhKQ(?|0!xJCyWr9+xtKfCpyf3hG?om~o=Icf_#o{0~TSuVWoQCYJ&Ci$XIf1)aL zf~Gg$2FIwxY`g@3rz^BW&oCN)PJbYXh8Me)C=_UDW-H|@(H>1e#eLm3Qvst#;=XG8 zqe`ZU3I(C)gT!UtLP@cB*OF3`AA#?A9^sNdQ3tF5imo=I1Xbg2v#%hcUea9b4>bv5 z!&eor{=8_BSZJOR5L-GAC=LZ7df1RaLzIL9*QhB19NDMNJC#5P%eljVZl3|B$g6qXD5ge4)0>% zz(qsT`O^CQkM{TPE9mPj5r~R)w%r`d123`>3GiCu$5}j=iVkj(HyUm$4r!KKfDswK zIwniM*dpPU>jrLO;`1pFd{TsIfD z@BL*aYszFduo6O7uWI3xqmK=(aTldy56oG2j+tvN2+>w@MQ_TEwK!pSD7EZ?6#fkK zFqu%`&9R#@xBG_WZK7@^J#lxUb3#d@#87vYr*bWKpqDL;x-b{i>|ADpd}Q6LLHT)0 zp8?NagaTnVt<#r7Cd#dX`lVTQ78>p6C0lA;iLlwCePGFSYG49Jd?#*-* zlCJiGh8Lb{%6i}%R+3b=6!b*at6T}XETk_##t+Yq^N?MTQ)UtB36s(4u#+l{!uEk_ ztMB35K62R#_9XwH$n9e)~(jpPl*mSw)7L$EOz*g{6vxkN5mR zeGlH8qnLA>F5!n@1;&wt&_bL!8A+Tudmlo(lcq}K@{y`A{a5)mu@O7`kDksVY@Bp z?BTK8q?J#XDzk9kg5Bs%5uch^-a#CqSYu%P=MW!CYz;IW8fOJ9EE7sWhJdC7qpZM2 z>DbItK}-94x?O9>@->j&gaHc_YYs}H&QWqfH@AOWVhA&bfab3wP1C_$eI16Ox4 za)4~2xqv2w+Bi}acJ<>j$Ba`O;DyeBrn{mY_mX&v;o^QN!$H`p-5FBuj9{$_jf-Pk ztK%OrL}Mg1=K`F0+mj>2Q-E^$uQt#9CXX3UHG6ChMZLkWd$u^6rMcL)E|m3?UuXt; zi#fHt%~R37jg5#!`=smYuor!cC0}1aUS+Ow$|E$;Vf8e!Hinn$9RmU}9OA$vGe(MQ zJJw(bdP(olVYA+YND)A7;Scu_O%BBl-BXXI?L#|LyIRUKZ*fOMId8(8?pc85fC57b zH@!tM_6;YflR${2e~^Djm$X@H1ns*#t(_+s2hVH$7GtUUzXaK2uwFM0LwJrWWJdTS zIYRBKt_3(Tl=gfBL&yVnjAb=X>d5tuGr>CdTvRGN8g;#+T-edDa4Pp^ErlYyu=*eK z#xw-t7PoeBW-Et;S8@7>M^3c3w?!o&9oxm_#XCSPMj~TY^Vg`BS20Omdx0`BvK2*Y zG^%&M>p#E}49!}Zkv(FG{I%GoOWDG}70}VG73N~ze&0u9cB<0E_C;1fM=nuvu*Fe?v1|?ep?w~W=;%U=?FdYvr7{l>kayL zFVF^rZf!$JcVN=hq~XL}27URDZK)Y$Uu3sPt}txe;#at92O;&QdLL?J@o4xoeSPJM)BuXZ=Zx zfXnV0n$8BBv-O%T!syOvh;o)t5?=NJte9<8)5f><$mQ_JfldM0nWwG?T*%RkC7|(m zALAj}kP+_+e5z5E*8hv^mO#be4_JwpY|mVk*vCbRo}JGYW^V!l1b2rmS^_n9NeW~V zVs~#IT)JW0V-AbswkqlV1V&|Z_iwJSYp;xO0&vB3yl#JWO~Bt&b!h;$Qj)f7G}G7bl_&yEG9p@ zmw9TOQigtF-!8}ZSDDt>%~@{MIJXMP)6orvgW16yhzVKF?r(fs<*iv6yR5EHg-+{c zXQQC5U3g-9KX?=8BEVuqC#p;s#{XbzAGRsT$-Fs6yP>czwzv)|Q0L&8@qFdSL-Ehk@p!l@DWo zSTGpb3yY6%uF3`0W~=yV)!AgZ3%cc+gBA;bQHQ)dVhs~>cp=S|IrIVR%b5(Tx5yi! z?>>$tMyyxyJ2%UXsZ|QJH1P~zy*>_Mblt`M4utWScl&ZRL~r0%JmUzvFBQi%xc2%o zF78HehAcO~alw3@WK=%KL%ju2{}m&A>b@@yRhXbKbxCtXoCt0hb(x~K)4Nuo+mBk? z1OD#8ogM5;^Dlu+VJ{PU!z+$d((^|0S{z*4VA?ZxYe9W}5zZ<|i{`f?WU{BK=bupe zV(%28NrFIbSBQUq07!?w1u`&c-w1&vyd+x!^U@^3-in)#lo%y-#+D6X zn@|+>Tr;K~#HF+6Ao9D`g*}C28Ywm)BGaFdI+!X=Aqpuq>HEr0@=jiBTa%7}T%aPT zT!l^y$XdN=`!z{&I6JnEd}eN*YYb8K#dh$wEG9|0!K5-fD2KFbm9ovmL(>ue{`^nn z3z)jdj|)#+?-Qcwq}3DOIf{)s4j8NSgSQklM^lm8-`k%4z<+N+(dA;rkr<0CS>VUh z_%`(dsC1039QlVYEyHE;(c#5rB>@Q=@0s8gDxo%bwL)IRh)%mur?T9RFIl?8%%qux zLS>E#pDg|9VE#%%kYgMXWcJ#k2$VrF)I2!~&~wAXjlDVshPxfI)D(>ZJ6L}}yHdxi zos_G`T!4^VRzl49ey)!$>AUojUNgB!q918+034c}#M@=QNGtx46J>7na`0gwz-NgP zU|L8rV;H!( zyRR?V_3o~a%#tup=sWM43%m2ck>sfnBc&#^v7()-Ak!f-B{vI)q`!`aUprWByP)5 zU5u9a?t{*(?krc01bR_+FJ6DBB=&uAU#D|ahR>4Jy}mvdAdE*xHx~wLwvCp%1V;q| z6}`x)A)N_`k4vsIvt+{#D)tvnZ^tNL5hx3=TQFcQQa=bf29hT2vi_dINm0_pJ7H$v zSW+$Y{&bdju*CG~%21tCHIoYaAg1RL6F;nq#bbmZ*e3y7!nW+!Bd-gWVOLE4+~$PV zN#2G%u^cAp3n~Gn7H|z9iLrd-^gUnG4KV*_-T3p^Qg(n-Rp3 z{`Esq5k$KLD)xx2tbFXJ1kE5lzQbQyD5=rl1 z{*u2H&=%rG>4x$_8Bf_eh!l{mFF4Qha<+m$1_v7**9tAnlB zZtELRMV7$_T3=&L>+d(yT)m+#kxi=wt2mgVD+5#O8h{di<{Z$o~? ze5vX&a+le{I%aGiabp6?SsiUi(r3^dfE5}t#hY%pz<0cNxqj{Wdb;nNy~rmPzz5s* z+r}kIcf*-9p`g%@ijFq!E}1vq-dS9LfK(4wz1KCFKbPT)j7NK~_8xMdm6-7?==klJ z+r(i4Psg^vCWYxCt-%$mErQvwZ=Y2_TR*A774<>e^5%G4$n4 z;&gPgnFGB8^5*MgXgZ>b`vL!Ao_LFFUm(16O>mHHhM zc0T5x^KP2J$4!VSCs%`xLW9w$c}R_l@Mnfc!XXB&Y;+j78;nwEV-(wg_9vHXYn zK(BwxkglVn1Mq0Q!tlwU^M=*N!7&4UqTLql;i_ED(l~PqQai4fCf-2qYvT``CqyO- zV7|hKn2ihcOSOk6W%~OO7`-?A*(*v{{T)*9x#L$`32dw9q55d~+6HZ(5@+=)8DzG= zA|s(K%xHLy@n|$foGwef918oKHe71I;n7@*CBzDb5k!9T_bQG2V>dig5Ha9iY%bk|+l*kRYXt}$qC#TE&-C6Fo4 z+}-~nk3^a!{*Cwc&Km8N&+S8WN>N1Rthmqhx0<6uft<~qTBaBcU#(X;NJP;s>qAoB z#mb+lftjPyMklwEuZ}Ofesqr5K^BPdhO!QMLeT(2lEPEJ%ViZeKmS_D{+o z4y_dx&t5PWfkNBUkYKa_$ceKjJUD^j;r%NN^HvtYX;^6BqZlgpaC^&a z)z_?_B5h_m=z%ka1;V;7uSWt|y!IYzXDQt40*w}6a7@^QCy)_@8uzGxo4^EP$HCBE z)Bb8Hn5Wd1f5YP*3&ebPSv0*n5$#QEkraE>zWQN*ADYV_h(xngcBK3>h@(VB_s&^9 z1l@qy8g#+L^16&xWI;Q8*p#J{gk(|K&yq1D5?goSDu@}@*p>Y*n*jD`_ThG)R9mNj zK765X&N)l9k4V7~&t1zsiI>wZ+K{mCTe-mZl1y3lt5T3?E1jsdx^H=)we$%9m0xxl zz2&8nO)vi07HAwL>5*g}}C6FkhFDc<%}S9<%Hq=B62s7UX}UfIgfgSF4uK z6VVT0Kg!bb{qf?3DV&dwzDTcy%X3NobUetPAOBjdVFgVG@5V6$ko_&oSkb@Om&}eY z)F+yR*skoJ_}s02OpAjn4jBR^bN&5I&T-3mJJ2A73Z`wQvAN!{L~q@KYi;hdU`T)IdL=@Q29g(_11a7!+q#Czn=9c+ zWtA}5^ZuFeDJc5Ud}dEXve?+zI8tjlIzrocmPq22ucPVsU8dk7sW2SMH*UTUBcHVb z=F~|dm#McaBUn~nKUQndo`aL)Ty->8*-n70z19O3IaW&hQ7k9w7M)jHA0J_8gn z;qRH_v7fc~DqbgPnC(=(4TriUa>79XQ_RR6f=lEHRjn*d!oW#1rd`flwy*qNE#xl~ zeSa+S+qZAAMtPo&g5;nvOME4VWoL=51B^s48uWD`5%!FYc|tR&B)I=e>qVvQtBEmi z)ptDlYg`co{W*=ueK`fqu4I|FW|Y_DhZrke$a9X5b=kd#pB7RZ#^Y9B$Fa`yj}sbyyV?z+!dA~c(Bw0;iOB*m@K6E{h5b%*RfoKg7J0cEmE*g$Ag$UK>7o{+ zqwk>7utC!aqlJa~;;^q+W+b|X!g^;4@F&pT$Y2+O1h?aGzr(_j)eFgEAcGuf0V+%C z02Jn27%8ije{(*X1%{i8-c=Gt+4K=j=QlR#*q0_ABmUAGoK5taZN-h<_vUvAU3mj zZfncTyV2BD7w50(guVZ*rA575m$Br^AF%5;Aa=pmI}W4aGF4aTdm_Pyimr?Mpo37tl->JHl=nc&Lli}WFCz|bG9yYTY0;ua>-(X=-s zR0*6yAe*yF$WwRvfbFyJ8O;I%dpo$P2@^T&(nB%_dX1MTCNpBHNx7tKxT5xCAS&;l zD4gd_`rOB>0L}-9Q}&jx;ezhsskSHXNlQSAk;UV{8M|>|YZR4)u&L$4J#N5A)4MYS=OiK2iyC_ZU`-Pn&yB)vyswI#)6tqtM2=A z<$d`}k|rfy3qqLQS?GV=|G;{}GrY-w7da%l`ZLX8$?!#v5Y z{=XC26Ndq0S9ggh_noDiO zwel&ehdiIYqMwz#Xffb)9Xl9t*T-8k*odvSc$AJ3ZZ+5ZTB6GRy%`{}vNH7xA0-(}?3#JwLL0H)M6G%omc4QmG&yquK6Uvp!D*v7y&;7w zzZ{kiJ&{V?jJLr0@I^NzP){!QSN~-nzpSlx_`T91RnzyCgzN`}89kB<6{x^R;@+`a z=oZ`eNy00Ple=WRx-S=aPWQrq{`B4|xWr2Acka=sb+J0#^#HLH4kgxa>J57z6vWN` zsXQ3ea^H0sg2Y=-xEvs|iDvhGS7~JqML7s1qi#JuaKULAM&ANsd9hXN+&>--Wh=_F zOS;+_g?VU$Qwyex4UqE>dJasM0t_ovF~<<)sfi{zl>sZk3a4*pp)c=yT^G)nHr!^! zy4~TeE50%4TKy!ikd3$}Z`g5sgtH=r0N5f+f1Sda#KqZ?Ji0X*H*C5-Iljx=W#Y86 zh`+g1kT{n&3zJXtKyrZZA0)|a`50$9NJK>R3-}7+k$ft5jEsX_!EybKY{R8JXkNEM zEU#M9y@V;LgJl4%-A&*t3*mDxrR>R3F{iPgyM#R~(_#{Lt*Yl~R* z0HRY@*VqeJQ}Pd%vsIft&jJE+Zn3wQ1=~zQ|8}3hV?(3EQ>l%`MRm14>j+P!=YK3C z?pvQoR<8zKX}gV#lC;Dr57H|mY1kGgI(qO5%SQxt-D2#-{Sk$tCp?ShsN4RA;fCK$ zW-nZWJBip6CS$8A=EuwRvKT9X+*KnvXv9QPhRe9SVE9Bok4gU=U zB7Dby2AXpxCW`^E$JM9!ku)u7UxRMwdy!nMCZmQw_A4;eveob~TVptEC#OQsdlhc=Dt${Jhd=XugV)X90TBcfP;TFA{Y!zquBt}Ocw z^P|Sw#Vbi3_QOIsn;x9(Tf|^cCJW91z+g5OWh<~CR zbFR_P0W#iPI_c@tJM&4*88lB{O~FI)2OastH9emMB#&aDV|hoowaot&rJ!C-UPYrL zik7T;%>9Vzejz9|3m2NaQ%|c*0SYWUN(sq7u)Sl5i7ts@7pBxU5E}@C?p@+kkoxe%T#0P0 z7vd{~%WyVD?hA@q0MHJ_b+}*Oe{5=h#8PO|r=$usFSFog&MN}dpS!p#{K_$prWuLb|7uWpMpz@}BUHaDBFy?J|du1reY=#W6+ zlDr|-DyQpt`_BqBXpy5xLoZhBi_Km<3yDOm&kXC8eEQko z^MCY-r)wsXii=tqY_D(4&8}?TqNEH*%x2?Em2r^zkY{dJ2OWYS~|T z)o>drhUc_4=6=TyIch@n+oAXvqj+Z^m%qV`K$|<4ZT%Z-|98(Pr-FKdHi*)m>&88A z6m$X^OTT&MtK83Qe_yWn!$17IzrKSIKxJV0qoU|Ay+wOq*Sq9xwmy<~ZKa?2pwAL# zCzoRkFaB>)??2jN5g%{$mZI6YIY}w0OK3V+Q6I{FVuG`EW6%it$3S16+0Pr!{n!8f z?`KB&hG*D?#+7|v-6?@jZFE04qXLL1{HYUui1Q9RpC$bpFaK|D9v)CTm{zf~vulGm zHW8;Z6rk{idW!TvX?Nh+mF|Q|kM%!{?yn{OUtT@GHMwh(`(Qs&6hO`i~g}s>2>^$b>lA-46Ll(M3Czm4yKCwXhtGXGOJ%7+%hLGI{uG;elSZTOiN1}k6lWEg^KA?yrbk# z?IBs}PX((@^e6SdKS%#*Ukq4IJ(1x(JL1bX!F^mGa_4gR<6wnl8suSrw(ZoXDgI;wnD`qpivK<1h7;z4UgwyyoIp8ejjo6s^Y5o7OK6fVvY;s*(ToNJoOLSj- zX@w|>As#nTHs^8MHofY#IbD=?01Ez&ad|b^F2Db;kD44d>KFik(S$?A+}xbR+WOs7 zVwA0Bqjnl8#yn6N( zT7w^_|9f}+TDc)_S|uS>n+xM6n$A=$?&nVqAXx0t>EJze#d1o2tZ9+YhWx*`red%p zJOk0AqoapILqo-iQ^r^5P-x0ek%jwb&f=`VUqH@6;&+^0~hw^z{&hs zqJ?6cv+UqMIEZr(=W~(Cdfpnk40n=aBQTI~bd1Gm1e$6kB8XC5cNkvqJ`m!Q zVR+W{6$Cc85dYA)TqYS*Ym;icaLehzq9*;5N;L{LobB3wavtZ7)04o4T?#k-0^DQW z_cA`Dv=^AtEMfBkl@|mUL4F8YEQW?uWU&h`*r#ET zGzGhDygL`TV^ogpMhE_cSy=K9U-Q^Lxd0NTzzZULr>E8%?`#DsC$IKm{Wmu1bCG%y zc9>@Kh-)&3S|<}d-V=*gl&IAR{cBTA2yQ1u)F>(t0C|Y}ZILmXl8VY3z}1eKi%*>H zueJZFBNQ&z5I;DVBmntSl@h}|skq&egtqljyY3JmoR27N{lb9ZPEoKk9mA`FBqfLWeSA^JfzqZY`Yf8(*|ToQQo_Y`*MBTPP?q&^6;! z-`V*Jl0utY(1YmG^M=FwWyN04k5mwq7~9TjoG#{tjI&$CT8nJtZ$RY>d$eKfi(V8-kl$}>b~7lMK%9x*tX3SgIPWB z@y7&XtlXp4nomd4ubeZ+QKtJgKZ9oXXNB0&8W+9Cet7u{BbVh-dirQf;r-YYh*A%v zBVZk9E&j;TRPvkQId@V4?{WyUX1M;VBPOY13PiP`{UjU2z>Fl|1?Bs9lz?s-c;U&} zc@W`62}=O79phX_%hWmUNTxNqw);jJm{#}h(VPe9hp9h;_UeCF)Xrqa&$UJGh{qqR zPSPnB^kBfnePcAx7x0oU!M<1?R);fk;?F7+vA6dXd1IvLHNkX?Y%mxSFsi-;dMh|u zR_Bg1v>0cARuJ66sT~YF(Vj0o8V;g7f*wv0_~P~RM-l*yqOh&5>Zgv&)`o-EZb6n+ zo(!K}VJKfgeHD{qdJuy^;BJa|5N=g<<6BL7FhBq`5Rq}-DyWyhzP!vz z<#Ek@;_(>4$a&lo4f7FAq35(?TUXZu7_q+JMMZe&v=~~qL*Q?P0%THd@5kD}W+70P zHq+8d1SI~CPMSBn+JGy)DHBC|hKxKri@l$_$XmZSxBL|fA|=`;*KIMcy;j_!KJjp_~MAsQH`FM6)?K?vQ=_-BZ06E_T}rCi4=VHPeF}U6^Jt$RokKD z?F12rj{#ZnHb73;zn0m$EwIKU+apovN5o@PBn4fQcfNYq8ZyWtIY-v5q#BY!&$7r2%CWOQ2!^6Y2 zs3B&cD{V#a%7nSBIMA+|4hs7Prc#^3$@sPjHV4!TP!!2>56u`hgY33l`%lb$OfO=k z+f_aHUVgqr=9qQl+)R?u1}ugF6c@S-kwPw;3cM%o-N$_M&vAq!9eZ?&!H`I8!>)J( zr+$$#W$h!YtmDiK64+|xoM-ikH1`-aP}E|u;6@){1(o!NzHdQifWLVXt<;`OmHmQ7 zrWa`gqD5GXy8e)@G16;q3JF?OF)sGsTfu?ZTQB7~IXi9Do&c6aap7NtNWwSh2WvVL zo!W>or=U^m#tZytzV&^Yz){6iOeX?5V&v3#k;)RENcP9;0@wHTzU!IQ7PE5L}yg0fV1f2E1=Sm zp1+s_ys?2A+^}_zH=`!U`Yh1Gi^3(MZ3hy<#mxLb1_6u<71wfG!LL3c5Dp0IO5h)M zn7EPf0L*cOa&0Mrk*Nm5#c#%8UPnv9HE1S8be^nWF2lCvmZnM1=a1ZW%B}}|paO;% z)A(7%u2-vM4u^i6uLP10Wlcx!jQaZe(H??FWc<5C3w;^oYqNT4tV@tW>9}4n7-<#S zP3nx8jY~P)1rmJ|5&Ub1abxKi3gCQ+)$hEz=YA$9RIA82$;iws%~HF4QC$oY9rc#@ zUk(=(`_>b#J(jiTjCPXN8N7GJF7ol)c$TeM7#)O3H~%KZDG+@cwD^Q##uwSs^y|58 z<5qC4(;uWBC53EFB$5^Q$^=S4qED8@Os=5vbkVAI@w2Z0^^DU92x8WBeJ(DMsO#AgLqhWL~JYrkn$9m%$I>gVQWh# z9E6pRgAws&2&<9O_Zl7!lSls_V_yMPh1PX@C@Dc22|+-lLqfU*l$4YPDe3N3K)Or1 zLAsF!>5}g5?rz@3>%IT|-h2Q5-WX>%4i06USbMLz=9+6R=hH2UJjH^_>jL#_)toOs zUP{K1;;LDM&3=HHXL%34Z=5+^*jm{s2xGmz(=Ll~^rLn?-5sX!LsRAACQQh9{WX|B zvvn_Fz5_OMS&Be0S2}y!Lj33*7> z5FWGhaS6+Z)isE%1p6ou=Zi)7m8)%0hv`rMYP10g_rNu2aJ^b4U4vswj^OluClOvt za-6usUH2VnxG%bPt3U9A_oo&M7{V7GG^!X?ye?AoiQfC1MycRjo++}c?u@D3?vE~j zfv9}bzt4SMv%gvp7&C)Ae|&#lZ{5$E>|7LcJ$IS39~i4`9mr0tR+VBQ_nLeC+iNhL zQf84q`|+lNm?q%BPFR|e)D~td zAyhYwo2zY0BULCUDET^vSEovT#lwtz=U!jG4uKIOu&53#SE(dz;!XPJr{Zpz-v(=s zTm}nNKTNKHPuMqkbt0@vB*+LzeMFH^Q5Cm$W@|$f^Ob~g88p(M;h^7KV|yK+lpS#> z(Rm>tctHN+q4Yc@KeH?}XoXOMKcqRGFpz6>B+^;BXq_ZxVloou!5DdTAq)bI1XZuu z+0A~43jG}N`=J%efP!*9f!G(_x{|AmH(tP}HMM^>m9h3mKQb zvwC-?`d6Bk5AI}z;jl(Dv$|3zbjE1jJ$Ar(k}U45A)MBxC8P}g>~J|%JNx2wsX+)) z|6s;DzG*p0x|XG^loTyTldb1jIHhRSZnvDQ1_Sc8PvW`G?Ty9@3%rNMB8I6Ud2-pQ z+@JdS<`a4E9LmwYR78EDF=gUTTc$?8fQ!9)|Z(GB`LyS zC}qJ_(miXu4SRzfd7#b_ zIr2ri{amO{vlnsZw;oC%LW5)m@ZN>N|4cPRFLCUGbvm1*XE7SN_ewuakiWdCV>h4M zVKFxe&n0>B@0SUluQ)(=tJDzk$w)9_L)9aN$fB_Lyreu&BI@@Xaea4*3#-L(a@132 zxOpkqSErmt{`>2MLhGD_J-Kr%JU`^P9{pLUft$8Bm<(Sy`1yEH8wSC1L7W@u>C$_5 zj!~-U_5H!>2o*;3B8Bdlno*>TaHynKvyTXWLJb65=qM~$?;-+VV%Ti((^qP(_n+(# zz;rIuuY}9mUY(c+vuvvQ zu7ndT5Z~A-x6WX&}&Bi2$IqDY){viaWO0V>L z4Gsg(bB6+5J|r=e`vE+g>T>DQ$~<5c+iQx7$Mmh?dJo=lrpA_L^P)}aRQOd5dzyR~_zvnRwFww0DKhFpruWp6M zCl$*0a>`S^z2sJ3d=$Oh$Mh2R&+oZdhq=ntu zhUlS_WjZ`;S700FK#BmvwA%CUJn*2P$rK5~S0SjW@vN8qu2Ekz(&(;9)m>{%p~7yp znhMfgkBK-mqg}7lYShQl$NTMI0};}aJ?ahFo9na041~atPrcu$aiV!!WbhnP*E+-Y z{orDeR}XU)dNLPwWh#IDz+=|Wt=)^S>9W)thKn0p`;^0s&_o+1!1-TShX=nDNfUw1 zfygt$iTbT^O^QzjMtJBR^%vTFo6S8i6P2bBGgv}+kGVvOl*<&&62kc0-N<8=Ca?+B zq=Lp(c{>s=_Jxk%4lbsCpQ&x#fF;ZQMZToITQZH);~8` zMtl>f2QvK~0q6&t`FQNymPFS35~a->IAkmDfg_W_L@~+hYb!5^$<71=-~nFZpWY6N z5+j9;LXM7(n8beA9lXCeWOX=TqeJL9T9@Q!ue{WtoWwqx%tfLN-XFswCrP{i7zzgwf;s%F$tw$J~ z<8-AdRvLq}DK@K_6a(S}_A=bxlzq`~yTo?vg|4(*ZqIcT zd%?;1)oA3qkp2D~HZA;6jHX+muCgni%Z0CnxG_Tynl;EFHbm9o;BJMmq2O?mkpQ(i zH@xlGNp80g30+LF>ZO&mNd_W=!?jG1?oVhrlp<{09&_il+w+n5f${Lox!X5lVq#L` z!V7C_Vo8oOT^$_(M-ET9@H6rR;N`UsKj@l3OHMh2NvYQ(k2AnCj#)?0!Xi_J$7mQU zd_lT$;D^mxkMJ(}{8xJBM7>H@O)A1_JZn2(mSjlH4ayv#sLqi81{d&eO z2x&*&$Dvh{05FRML+g-!?|8jm=2?DkkZ63?GgTmo^F}ktK{Ky54p0h=-=psjpq+Qx zMyYVKvMROcje7@jnauP6r!L4iLI{SKp!16}!Sb{7Inh__* zc5g-!M+a&Q+!5ck+x$gFd2elKB@-?JBvfndut)QiTPQU-w9xSax|GTv&`P9k!2Wu_ zPtWYB`CJ`U&&^>6?IOziE(wSK* z0uh>$+#7IB=js&B`bnwXq>fI1eX`{~LugX^)&@<7D)jYnR*4QD>-0-5k{Fs#4uy-7 zV3opjPPAMS!^P$L&83`C4aOkv{kIxo>sU+*srP^v)w7hdj2(J3Cjf!v|M!ER1VB)^ z;KREWw1K>XjdvU{-Syey$D!go@4JnK(D|FFAF!t)e2Bz9ulODRe)78VtA@__K`gRX z%~-r6M0BN}&<(MZx?iW4_zos7jhnwB+guqDW-dtIJ!ZCTf28KsV_i);cjB}iZUJrG zj_Lc#^RF-40~6C=D8rjNcdF4HH;Ph5uYroKBAJAZ#_K)EM3W`ri1&B3 zUyR1x>f#&13lVA~byWB3dhY!&Me}iLZ8l3SqPI!ap{f?Z;yEg{_N(}Ui0I2$Q~no% z5PiSLL;wD8t&lzo2Sg7T7uAzw>+BzgR#bm_1F3X4lyy2C9S@3gzq{N!>19rAJ=PVs zZFy`8qI3_AE@@9Z>(uRKGuD14K&W&2mFuK0MeHYHlZ{4NP$V z6ZON0H)cR2syt-CM0|3j^%uu1Pmd&q6&ne7g+CFp;P)csyx&?hgkebq3tTsp{q@P_ z8r|{Z5i_%Dlrd;s8RQ4VgMRO*v`dzGYA{We4mLJ7rG#Njxo|TwlLI4z8e$}dD>c$? z*Y}$)X~>>i^Q+rI=c#vxJYu7fYDg;N&=UCu{r9W&U`G4KXn~Lg;5^TxZU222-w@Z|6YBz(g#pM zO+9Q%r!}HDhSXHPNeE=XtfSv$W?5nZqc8ZWKPh69cCQpWSFs?xn^j7+L;mLUup@o* zbX;>3=aql9o|_0ZD?FNqq1JPxztPnLawbD0WVZ-Sa@sQFU~_)0R}4o&2F+;Z3<^>a zsZKF>+PbTih>-8*^SD87(BLG4$j; z6HW~SycB|vXe1hp|2W4G*rB%|(Z{qKQ6|A4Y{)q1J{gl6UpBm4+%7d(-}0u)0D~H% zHXlT)&rckPl+MZFv}6&Z+r5iw$bz6aBEdJW>mx-N^ygUeqXIYpzWHEj%R4J;+tg<7 z;|L$;HH42C7!jLSr>c>W34%_R(Bfi_Z^fUer8l0dlPTSg$bIzF8Rz^wQm^>D zx;jJh;M-?28SKBWoCU;}XqcEndfoD&unva{gX!=az~NUuSKe2GMw8d8(tO^8Ej1s_ z<4~*NYD;y~s_n4a+C3YL{#vmpT-;p~8_rY}={XIi341*^=D?=GiOfwXfK?5EuQ-i@ zi;T95`_Qc)1p&)R87Qf##a7$a9k0(Ma|j2@QMDEqv%99JRq>4C<{2~_1f}_Am2K~w z?r-hA2M*}+b~C(7GQa-cay7q=P2dEi<=}CL_0{!0`AC&zx{b87qua;q74_Q6c+>S? zY@+__g_lhIGmi*w>JHE6dp7&|?z4ED&+sb_0g@R4t8=rmCdnYzO97TA%ORM$iJ)fi z{S<&|-qqzHcYMo=|d^ z3NxL#A)&;(Mmp@0!fT|z&N0V6`W3;k&0>0*9DDia3jf|jlr?(#oEa*WZvFWKyyKwM zj{NhBL+c;P!@ci^v(j(VXwccnZ?pyAm?dvA6C`myt2ba!J@NF%N#Q0k6H|O96*A3r$b}=@aKT9%tcPk8-O0 ziaoBKfa0rw>~s*jNAFsa(K>+~00$C8vv&L#)79BCet?a_gbOw5-xe0GxkIX*&kL!O zh67+G!pV`z#qFGQI@nM_Q5CkQKILf8KfCs8JI88OtkgtBvrx@1CHPsgOq(X{jW*P` z0xjduSp`=KPoTc>M81FYcc_9K*))l0z-GQ6$@SV)Mbyk}^Sa)X?S5hX=^W$o!Q!p{ z-~@(;Ar08m^Nzb;QubM$gHE9Jdb2z(Be=-{hmr*rPeKxR9Pb($E_ck-X-NN0)q6D* z(q9oj%8Dx|;l3(Gct`VI7GLb$JM>`9XPceqE$b8vvMX)=Q%$vP$AyQ4N;efoqgEun zNI0UK$jcq>LUsJ1Ev0(mz&PluKEc&?k)F2Y5@Rfz%?8a0s0hE&b@(Z-Lb4E=FfcK5 z#AEi#&67XMtp7n!qldp@nM3A)6{Mqy@s1IB1cD~lOoulzt}g2SNk7-!G^PpNKzTL_ zLeoyF7t_BFTA!2$Tff1?!QodtGLgsGPk5gS)6>)AWS<=@3aON6lY4u4q4Akhr3!ey zv^m@1aI7+)m!eiK%?QtI$QFiV$q)IDl=rCtoOThLDdh7>SB}+qETzKu1Jy75`u&;e z08ab8m%|eO1cBJ!LBJo425ifTp79Zhfzed-c>&E-e{7of4>UrpAzq$)hi=!xz`HE8 zg~ropx@#Y=Nkmq|A>S{ao&}Z8$7_;@Tuq93dh8KJQ72|f`el|_kk1mN5BG(E_2J>6 z4Ol9|!YWs8ATx@>A&JdgaDztOo!R@$afubCp~jijf&ePt$A)J$eP5-i+0wBFPA z6dP}t)r%VY@U@urSC~H~f!l=JH!e0D2xm)MWTMWy3#)VQ*4Z(X$g!1>)}97oplB~h`4z12S}yMC11JmI1!i!q^dACM@zQk z1I@VnxASzhgxn4(SnmySUmZQ^sC&N;irWai-d)-IVQEZ5P{Hc)1~h_}BSW<>|H}yn z4vU57CB8K5RWD9=uhVJ*8tkA*8KTunwDB%4FYznv?p&&{h7R{G39IHGp==RE4HD^A zKmxBD>~=XTOePhp>hKa`vL)jM0g8!k@edA8#b@2>oW1Ax8SW8ce{#Rys9u`n)3Mx$ z{Xm(t#rR*)6p%8hBD1VMH?0F%1O~12KLF`tC_8EWaUF6Nvl(A73gzdIjVv2Ja^4eD zG_Wy9Jlq|X=a*OtKy?8x*>5f*qsP1P&WRA^>40=W2Rcp=%2P%q$?0nAc$FAjONtjS zvYcKoH3P$z$Xm;stJ9t(dxRDhibA=xH+WLf1dfE9<5irJOf;MH?q2I-! zZ)UBNd0j_?rosA49e|-z6+3cg-~Un(xGPxbVc`3r2)9HD@80ACH(S z=gau=q2O*`CA|7gvclXKCW_Z__eKT8K$CiS=s`O*gwloJbNq8}s6ad2bK8$xMB0hN z!)IOnlw(c|%awrDnP}zQfxn z>L`-{(%fX+ajIi(+ z1Mv{rn>8N%iiv~$pEs$jlxz(?77LT2!w+vJg%~;jhc0zo!@0$PpWtOo z{E4k6l*JI`vTnr0WA4bGbcEc43aKztSH>G@l}b8^dq{m}GrRWtCIMSvCeU_tE`y;& zx#`MhBXwXbZ5V7|%mBpPa9aRwCcAM*@cqcmL-m5LjCty?)T+5LEZvdYQHQ|9Sjz|F7tP(PbomFMbj2x zS;yHebWNSG@%~PfUJBI4mDOD71#p3-siF+?Zr41nr=vfP-daNBjw-ZYOHJ3T1?4x~^{TdTt`cTqI{|^e!y@hwrYq0@_sZ$Miv)iC1}cyK#cL3SYE!_A$(@Qt3bqXBfx4Zm-Y^U=uX{ zt0mLPM*%HLu!`v-wjh1fp?xjLkRz&cNvuh5Y_BRnhO;lNG=FNwx#-9S?#`i@UJO$VSLq zMc~7Upp??vgK{)(o$z)!g-%HzJ!lOkc`oZoA9Wo0q<@$Y2#Ihh?$z(8z#AFgRJUp? zXwZPc4aEo0Q_1O|`{l3u8-nom&+#K1E!@wgmPgn@o;5&VEks3663cYWa6=&g zIa7%bAIVp9n{wI0k({#-_?g=vjSJ04Oo8iBGS@!c66Llh=T|q2qW#+Ti|-0Mv=gR> zDLbBUqgf3lhY%!snVwAo;o(D|#aIw_ilSEd;BK=n>}fn+SgNGa1&HX^CC3pwA3K8S zut1m5ze>Y#wdCN_SU%p#$#96UCNd6f25A5G=tnHK2W1L)YAE)oS7VSo%O8Q|A|rO^ zRyjGRRYLISQqZ}Pp*mc`ke zGx7K4VtMa^7jHyFzE=Z&Qg-v9e3|{cPUE9Ef0-`T0G#M|giwUS{pz>~NY+t;h$HR3JXDnB$!Uev* zW{4(}rIPF=Sva3S!6i3i;7C>jc4rOk5W>K~{HmFWqYHe4)+qwoY2|^a0yL0iNo?l{ z61UzM2IA_P8vXL^$D=+FTA_>g95Ao|YX1O@1jsUjMS1O*u2#eMIHBKwJ9XmK-$ZDq z{J&zat1H({;#wj2+)H%$Jg+~D%+B5c16E6?HY(f7yPg)QsT;RT9L9TkB52~xmF2FZ zn3N@~;i?Jep1MKP#x81Rjz)3OGN(XK&GQsCsEK{9qJdl?wig5lO*WQ(T4)a!bf_Ne z1ji;=t=@U}kiMPHT;}xWyVE%1;ewaK~IbGS~ zl&45XG51-6;Ntoc4jBiXD>0Tn)MOxqxBhZ%Tl-L##xzPIfF?io=jCyBeq|4IAw$Dc zik@$r9#q(l zYu*c)wg$fyfz#S=xNcB8FcSTsT{uBLMkGZE^RGBuaDlzJG@Pru1g3B3oS^GBIDfE{ z+Z(I_A~O^9SrQW$hu!=_+xXNk>p47i4u>6ND zjF!seidVKc-+sInkuAOQf7_hV^#-_d21LD>G{di2CH*c}txnH#a9w4eawa$hWpdte~dnGyF|eJ)>m*%zRuLdK03E5qlEOxr%aAKn|0Q)cX*6XO)R2T+!hbe8{o1F`A z@O4eaT0g%Gq4%g@0>fS`BDc@n+%s*c8EsZO?WQ|{IG|xVd42iO8rpaq_UJzduIIIg z2hi!_G4wLp+8A)~F)TE}r7Z1{kyw`r?fnJ<0>X6I%<+B5t_&J=FJ@|w#5))?R&;5K z(P){NWI5d)^dNccvkk7IH}>)VxC|m@W@fK@(*I5(9{gt*>^2+46TNw!gs=hiz|isI z8JGMWZ>2`PNGV}$2oZOc&&25?fqB>l05eFYu2i1AKyCn5g+e=9Z9k(Sw4f=}9bNFe z$L)Ie!${G*I8!h#nuX%;t0tHjx;PM{_v*?ClSq%}^Ukge;Na|tF4)YdAf7NvXByA@ zhH5n!bU!WnSpG?C9z+iH-8xph9|gJ z6`BfG)?LCr^lby?)AT(z*YBvXo+Z;R>mfPIRbcQ&M&5)f64n)t6;ZTftt9*0@nF0= z$B_H3#cOXQ-=`Tk98W*nAU!QTo7E$8K5{hm_SLKGERs8U!Co?wO{l~gbW!6F5zZ0y zKzE`dw8$9VO*JX5ND5LSn!anG2k)F^Wji%hl2Eg+HaM>~n6f;3tzK=LycKCfaHLO!TU;pK-xEU!g@-|IcUXRvLSa#v-+GypK*tkr%A7iU9D+!V`UK&B^r>S99^q%q9G578HeCWaiZSM9L?2rCB=l`!i2Pi&2T-7sz6rDeTyeaw-iqqs0zw@b6*lUvs%HtSX<+lI~S194& zT|IA-D&86C1}=u~pzl0A9LKsX4>j>AISAdXK!_IA4s`IFQ_t{X8@1c!%Wk8O|k@=@pMen-D?{>U$kamDO(S9H&#GA?)#~wMTw_ zehEV=Jq40G|C68LUMc$DJMrKk7!LUtBDdp3JB zD59p?Y%*cV_uhOR{z%c{HC*Uyg%e&HT?8KIr8G7jf}}g z=Q-4m5A-j*j@J8=jpEKYJ%r!9L5L|ss3B2{SzYtg7HV()?43!&!j%;J6-Y^@%A9|^ z?Gt7-9*vaptPAV>e0xnry%jx?G3ZGxpZ|PsvRg#Kv84mtdjqT`U5miUud|Ju4V#|u z?a$0FZC@jV1H1K4_|2Qs1N%BAw`d;P?w&Rf9ag2inH*df4g!9Z)#;n-Xau82$={XT_POfz!yLQ+w_D~qf*uc%eC>tiMcb(?|8B~ z(QkRb*I=c@Mlb8oPk-7XiDj)4Ml_Op#oz8M#Y;JVx#}|)_5FJh{Ij~JWNr3YOBk

Z!6B@RD8(xdDP>KV&3lBG_A_LX(Zf3{5g;kE2_)QtO@Nhvk`-vr>h?!HK_RJ z#MQ}o4v}N5QUM9yOIW|vG1;C*xIIFPewO5=&P}O_5j;a#iGerCU@YNA#xy=g~>a`=gVwwONn92;wlJnqx|! zh!N~z8$%bP9}8{9p~+fZ$f&glx3Zex;}{f9O9`Hw$$ECw9-9GR&s?b{Tcj{t!`=Av zml#6Hv=Bbyagt#9gn!@TIF$yk3locl*MMlI4v<=-`M5ul0w#ZW9#bT+ziJ#2>%r70enny z(y3Oa04>^A|5)^)1P<%yua6xS{M&mKfIdAcU$y+ZfJu1LVXQH(;nj}1ciqM- zt7UuC`YyeuTcATqTFw{ki=iiw_uXEf`}HL7*=wju29>?elB}&1ELMIex%^flaDvd~ z>T&E?xg+xtCUk{+G#wjt%U&46nd>{rT0BQN1cCds+7kOw7E>=cor3A|E|yP*KoVDO z{Tg?@!me9nDyZ${RQIFlweBqr$={u>4CHUcM(d$s==q<%KUE#W960t)IAs|i`>@=1Omn8%PFo!p?yzi@=5Z4*W4dAqB7d~b) zqS9g@H{wbEgi3p|DA@k_nct&ccG5N)S}dv;YPC1swP^5r%VuAGo(8n>nKLjVd^JIA z(p?ojWkC9j8sHgu=g?5p&m$G~%C8jc3=z%|KW%2}qZixRkY`VZkHXclb6lZqd(yh@ zRTfT4AMVY(>Fq6Ot&tPSf;-N1+Z=O(Jx*td?|Tl-&u&CVakc2C z?CxqY&lVeY^e>hStJY?Cy?*M zd9u^6g5HCEIt#cqb+_2hIjSO9&B>G=?7e{DNU*#(-w*H~cba@*sri1WVBcUq+ z!}>j~n20AS{au7x)=8kWDIt0`5DtT5sl`kRSq6agm;vd@lb99+dTa^xWLL%ZOL8hI zKYfXKDcbg>1GSKK@2Zk-fyN;8h;+gz;BnL(R}NDsNe1MH*l)dg>%G&XKk{G`t73YT z$Pu0Qm}w9y?X;Z-+H06whKS%JR&4n?H@+KwSxVRlqF1jwIt-c#XVd^Dpna;sUF@Yg z`aKS!n5;6y99tBw7EV^8(!BLaHc|q8qZk=?NR4WAM&G<<$xm%Xjj*HiC zF3w#L!S->mM4@2oNz`{a2?QZ_@QzqLT{l->3Y_#Wz9l2^Q*32*JcgTcS&Gi@VL-+bmCMa(xqb!VyZF{ z3f9t7a(Seq)K`fpT#=Gk6p2I&YphuT!Ny!aX#RCAU#r_7zr>tL z`+vxc{w+EB*Ygv}6u?X>1Y+XheY7q9OW%lse2D!sa1^O?g#2?kLKE=W7XUK79~>cm znC@vwJjp+l&47G@#p&d!^4@x~dkU_`M$Xtf35hg!?_;#u0fl@e8OeJvw6L+BOwqLr zO6=4SzPo`=^oI5vvZ#Qv)I?QMZ6J@)XiZo7EXOIpeA%8}2XWbbm17*jpJ4SJElus0f2QfSla>PPrkW8EDbU&9n*0 z#Ueuw1M4;<9d!HEDt%e)8^7gOJ6G7gGa?F~Pui-XPM>jh;(1ct>U|!n5Q6YrE68Jx zLDyJEl<4n!)#LM@2D4~|v6H%<0$j2+O$JY#rnmNfrGF&|FVz9 zSBAC;^zC?sbpwZZEhCja&FE_h1oL2IsNmP-=u*6%-sw*ODwR+bAz+A`k8s;i7I;~J zSpTlkv^qnd<_l%Pd+}db=&FE(JHlr?KWt(mOg`&-5C6OWwun7 z5BsFVYNz{WvJkhMS5wC%`{f~HB_bqSBJK``66Q!tP}#(OPqJ5u%n!i;TUxJ|ixaD8SvZIFxxV@;`0gJruprO+<9jf?w*4kt7g zxg+FRwyp7aH!V)PtxJtgt~PDxwQaY&wtd!7ngl$vo~%M?SjvaRu!@gD5d9#jwH2x? z%^@gS>$o>G9I+lpBujz!DJv_-U#kCBo~rzdb=fJ)B_4K*TE=zfdGn5nR=DdXbP~Gw zU9+okUc0L}UI}Sn4VrDpoT^QDJMuZX9h^?U2Cv)`sjYep2tw1Nc!Z{^xf7_-P71IDtZdK=mqw0+*q+n=n8>yG;stKR z&+(q9tg}4oXZ>!oPJXWm8*_B^wz!acl?=`@;0hqL1O1+EPN}lgu(T`M_Ee~AUW&|> znu_YHHDibwxLY`3dh0vEDekCG?OqJ|<8d4>6yFht=XUN0Tzlek^6^Hdn}!E2K=VJ}^AQ zIAQ}dE-H8aPi0LPWZqow3wV~gfwdK~OrkUpoxTXT^^POnVMU9_{~~Y!fBoM*79?Q9 zK`-Ggx@Vr)XK1*MR>Wl#70Gq0Bi*O0rc<&nfv5Tx9J;tqDzF_={Lks28I6ZOW|QDZ zfRLBRDO-=b*v$50vD=9$bs5f*-0&f82%{H>zETF-D&W&8t?zy|`4s=PiSJ|@SlS_& z?8d3Mre1CJ8I&rzd^5y8T@e&R*8R2-mc|T*&yp)DL$js-V(t3mA^OzKLzTp&USYdj zHUlqnEDNSTc+k}R=#N~RGvz~_Fy%d`L>1lF{`@R;tsmT=`^=@i)v=y zAED$ayf}1maWSI`-OK^I{P*{tr|enyG;mO*6S;+>j}Hz~J{HweFRMU3EqnT+)kH%> zgQ@>SZ@1Cdcea(Cdp;c=4)J47HKTc-S`F|_FX5UOzkRGNWxcv1X)RL!sA%2MSm1k& zfE|gZeF>fmdG))R`r|Qi4j|W9cGOBu#qyvsVyx$HVLuV&@5e2@Gx+%C&v%d_{jbJ_ za^HVY3{OTMpw;-}v&?g@$mm}MfNvUptyw-%p6zTF$2y>eU1(cR{ow^e(5_MOedP;C z{GkW!-Sk2EuCbY~iNvRY0%47bM#o%94}OPBLTqC4QhoGEdV;oO$7erB@YuMYOOi z(pYyf5zH+|Fm9;>6gH2L_g)=#S>cpDQlOAtT*^X0K3C7=JJ*PKr{a@y(F)IU@S|hz zBKYysq~v7WUSCg0Dq!&0o5Q6W#x~S^8Zzqu){;yeb9~}M+NTSEZc<{y}HwtyRA~< zgkYzYsHQuQR9AB?CVD3=)KlrpzC?pu z%NA$vEts>Ayt{J~aa8#jBl9&1rcF8D{r+>g)vA%Q)$b0awvwh!CUvH*%h;4)5-(5( z4>ECb7C?HZr{f-uq(ptVE`-k^-a+D>iSnj2o4t3oBnea7saOvE;cC$ zwY{sc;yU&$dlcycA!EoTm;Zc6YlJDD{HuY_iz5O5&w5u7kM|#F5JKSH~k=iNp*4M0IPn7Q8nx#F&i! z+OKEBSX1T~?IJ84$ak7~JGqV>yv4#wQqB zzLX`QWN;mtJd5#;9m|ozx5|J7W?%e@vo7CPD^D;@9BMczv^WsMS}(f~B$M4~8(-cR zly8@^A-vGIogZS{w4lJ0(D+(GNtIY}F~>`?XNn3Fhn;>Fg#yhKv6O@Qj2yBY{5mNx z4NsLm_L+00Ht$KL#j5r?muWFMq!vGd-@K1?C$9ArOKR%1#By)!^%4Z?8`U$y|F1yg z?;~ycLXTr-$!@pv9GhNkVhJ{e_EL_W5hdmlw5a1W+-DbVv`e6wY~DR*hSTB}*kuI< zB~p388ftEUayn@zFwbokl9Gewasd;*Z@c5!iX^TUJO^1^ugt|>m&henH1%l$g-BGe zfMi^GN-<-LNdBk3gcq9gE@Qd5j)r*2Dv0QR<7{SeNc%E7V1x@)%M_nsa2eF|E}?Ws z^%UcX{6a%_hSQpEYuvs*+lx{lU^A4k-5!mw1Q#uK&wVQMr@l_6#3V=1jbYB0i$HwI z;C{m!pO%)UyCv>=EzAEIA{GEK>1K#f_(>2@YXax)?!I+A6j13u**l(o(7Bdk{r+JD zX4+Bf5O>}hpauBDc6q`#{6)B>o>>9Kbc z6-Hjm+GixR)~eVTz4k@hEZe>mYnC`iuKdWsYV_D@~YF~vD0XN4DW!E~aJHO#{AUGXPYwApSnN^N` z@z$9;d~H84bl6;h%Ht~wLzq663Vg}>7Ix~oF~Q8T3G2#RsHf+y44Y67qk!>JGxEFB zQLjpRW?FfpsD4-t`aK4iynrn32U^JOOG3yn#&d``GF{}KHsk+3W`VmWO=#;y;z2j#X^$BIa1f^#n?fPDMmCK^eN(M|*d4N4ar$clwbJg`OG;0c+Y7 z$`*~!R&70WG0OJ%@F1C}UVY{6l*}r1l-^7@#N@W-R8UQya=!3ZPCiGLyh3^yfh)SL z9sl(r(Mh)!)r3Rz`*sq71-{s)G7$YK5!T-oKSoa_TTW@NFJvX@V`try32TSe?BB~QP&t`hbO&!rDG!v(?-ObxKNCO-(vBEn^fhI*PS0-l9Fl#Oyf)G~rn zzs@S?W;y)U6z7;tByNYOqn9r&*y0ZsVzE*$Qv|rwu5s`3*o#up&(H5F#cf5h1a5*h zp$!RB5`N@q`VS%wXv4&aNdIH6(4e-D(Xd+6-YBPDwu@qxr>+(O7$aHQ9^88zmnm^~ zLi=L!@>TwA2m&(;u{rA9S!YFpZb@b~tSVImznH5Cf}Cm|k5Y$8BaMjAa|-}6)5tkE zxVUN0^jEcwjk}YPCd~lS$#F`u#@kysv;YE~rHIwyPl!M0rGLzb$SFNEA*#nMitO{l zRDe8YDZ=J(jYm0Kb(UYn{U&QF$%^hNt3k)laF}s}!@ayx-E^xvmNd!YXBECX*d9Tc zf;~fm28Q@JzSVc928D@6I9W0HN_Sr_`|4lBF|=1*wk}^^rPJ%>hz)ko+gHMB&A2yi z`fN6!MO!K{=4WAfb;EFJfPn!R4FCU*X#9`A2Xju}m{vbr0XA{v@t?%rw_^g7vS5e3 zQ?BvwUjp@!#wYOwfp65&J58XJ5;;*eo4t{(g2xNh)5;5zKP`6NTp}9+>Rtq}fWX0V8y0vBd>!`ns4XVBq$Cb@mi%dK%TL$HppxsRGAk!a)VTJGyE~VE9 z&dA8nrN)sD<(@HBeU-f)Nb%z3@G4Ch@HiDC_s5oy#>6YcjQJ*L-iv}QCEInDQK>1f?H{ZZykjyAe^MK>17(NqSyBk(Zj5@bJH z?Jl#qDgEdZg(Ilc*7p{q&qDQEZv?LjJ(V!jZ1w!F zH%94RO@1xqrZI-~7L-e&AF51T$0`WnF4x04vY?A6n^}8>dc(YFi*79w#ITQWn(00$ z*hI%d7rRM*`K~i6XhnF_EXb)JPWi^V{QtN8H!PrLKx1EW(7%$?757-!%jp0~Z ztE)c@x@U?AO=p^cSw$a`BDj?dzWctQLHJN7?aig()ciT%)k##9Ci{UayRjB4m3H}P zG+>cLmozwSPYX@bj1&2tQq8s)zT@m*Lo-@FvjR9F!n?J{OA^=Mx=Z!wJUAL0UIm@gcmS;g$c}vQ5jAUr>-#y+(J!S4=gs@k3t}4I2=K z$uzh)b`1{;#V1l1nsy8`hgi@vn%qR^ro3F-8hz^@5D-HJ1$DQwZ+@|Nf42M7-@m4S z%8*N?&H?@CfU%Lx+2%yO#_>3M;+98>9>Y$lHMIvv{tqc!8ql;mZBO}P zr6hEFXEI{RJhEf^QKY5mL~)qYsgn%RYansHyL0vn_qL}XOTkufz1r+J*~$|d=J8DA zvX=qd({yhiH5Y6oyWfe~tNvXVjwN$gbAlblVN%JwLV$daFa%1!3^2|+MaOu3I=*?b z=tJC7^E^-oV-peBL`+Y^yO{r6_KAS6htT5go;qJ>ig@2e%TNlEryjVq#)^ zc85?EO#(zdVk!4~y{djkms?Gu=VimBkm*KqKGW$Mg|WQnUP%visoi36m4>${YJ71Y zzT$86ya{=!!TxmCf>XzLal_+bwCmZz&%afiO;mqKj(|Em$yX(ZE9>zw&_{fB>0P}M zIJPv=d%nb|$CnN=zXv+YXH83R$1@}s%gJ^sv7{%}U!lO!;2wu9QR9dyBNIrA430?R z2Kj^JBK9aCsnxtA_nY_nLAu5K6uDYeBx8-WaxVVKMV%#HVauYO3&y2$bypQB;C4FS zAfQJDJT)UBexe-Wtw+nkjO|fR_D08+m?MG8_29aAvSY(e4MQ&r5(sC)hjdP*M`Q*4 zl7YJ~BqlLyIOGlI%gIf!@t%!-U%IH`apjbK4Zi&sF=Y~n&SRKQM47ecDD>J$(bCB% zsYstg;KIdfc=lbAA7hz0`7}C2QfKXLvAkU zc|J0PM5iZwXhlmJ-Co2lzO&NtAQn7)GbfordMV3ra$&noKJ{F!pWS63=kX}z-9-lu z9jz_4S`(!$Qb!|;#wFe#(xu6%$l&i3iegv2RTDOgq-(H6d2NB2|eQVQ4!5_g&qir#V z?g&oANMmVvsbB<00AfGaPksG1P^_(EKD)(7dMJ_WmB?l{6mmPL58qxMf9l`o>SjOq zXT)EN_(2OI%6G>ufMYgYiSp~)D+S*Xp8v(#TZcu}t?%Q2A|@CJA}!ql(j^EgjdX)_ zcXtS=ba#k!3P^W%NY4-hQj#MbL;Mzk?|I{VzUQ3l`u#U>4V%5!e%7<@r|x^C3jp)< zjVb4>4Gqw6m8#bpmv#7_9UB<{?{D82pS^7o%#r$p!hB;nwQ1;u0`pPT8^6<`7-b_aBSb{)~~LG&nnS6U6i({d#S zs?}McoT~Xqd0#3GYJn^9va#F zdT(D4w3UoF;R%a~gn5-tl;1HPP%bkQ8p&0N)&(^}ZBJ;SOh%WuV8s?VY%;-+c&FW0 zhRJ@PpSQH|qPkj@3#FH_tWer&}80dG}ALB*d18icBN>G2-)$t_KfD`It}jRl#>K+2ZYIG ztmMhV?&MdTes^MR#f0TynLD{pgp3q??ymPbewv4`gXE5^(8qz8=BBB8m@{({bxo#u z?==W=CbxblA^Ac(_>K=cbI<{jihRrn94y~n=fU5 zygf#h&XJ?g77Uf6ClZQu?t3*fUE<5I6oI0QJZ>;c(ALzF+9V#Fc%W#}=GA&f;DAGP zQX5Zyza+LPTMS{|(ji2#Y!%TsMe};noM+|Q;HXS_OKq~4hTW|al%k3p7rr z&M|EV`Qv9hx78}{ekywd#^Q^R$~>GBKr{Wx(MaGsRbk;yE#wWe@2LKxDE|F%&$3@Q zZaXQ__;UYIU%*vIbM3PG{J8-(wS9 z0UjCYWG2b0pg}<6B)e+6aU6h&o^u21$>l6JmhJLj?8_iLVpai41|cGqG851d@7uK+ zfZ%g+Agrv$RW(rZ82|ECrc?+kc6SZpEfPUVKWX~eV0F|~AZyP*uN$SXH-0Sl8a>Q) z|4Ja?S)j80@d3lT&x%)OedmP{`-CBmv^pRVJg*^-5@OVd5gvfvInJffN+N1VmZ|US*2KzuG{)16`=sgT%tqM;ULTbbRIT`DD-)K0GKfOERQ_b|WR`Y?uO&$UfeTn2K$ir6G6IsNb$Tyq% zRXGP8V}S>(YAK1Cx6gdpZf<7I(uqQIQoCJ##g7g@XOQ`kGP=88x_b|9`{eN{Ke~4b zpnrt_s?c%pwxafkudymsSh#HgNE{K~^1X0%%>0eCl}K5YJ5~7Gx5JXF&C8k&Uz=4M zBI*tjTQwKnDK1ytWt(y#?HE`z207_*(plcGaupbkRZCb;?n`nqT&2Zm*`O^$xh1hd zmht+Ne|~X7|ALamLrX;6lFmba#T+CyclY`a$wU$`D8FWC zN@jbEcbYe1E-S%aQ%X%G6gmnD@PWbaLRKSiiZTY>$YyJ>LH3P+8s%xy(2UY6Ds|QR z(IzQI->8Lc+=qwTGq%bVtD9QrriHCZv12Yjyv9Y&x9DyqE4LuYqQG?^s(Vml59e)dX&F4+j$S@JX@^Y! zxG2U>8^OBrdLoDgS<&G@m(#Lormo?RY@TAAmv^B3o3Wb>F0QUwB9T@vU1JI6?^Dwg z5}JRW$LHGfFT!O_n)3-7$%(|Se}LM-#AZI7@xo8yed28Rf@Ko-21sjM`FzCwN1YHf za&9j*FZ*Dt%T6Wq1Oh!i{bf-6V6j4DRzNpAdh)xpXLn}>(29PFR$n3MrdO?q@x>r~ zTQUvEtL~1q+6(AttvxnY4xK9Hv|AHHBmAH)wjHT$jc(l?efEOnWq_>Ddl99feZYKk zlNi!%v;`)he(a9HQbCtlu3<(fAXgq7&JNF#%Z*wlNH&aTA7ucU6}6YIvL1RsCa}01 zi$0G<(kK{gHVG9!uC~A9r2Ev-!Ql~0iETF)Cz0Ssysg6{X?NoJu0$?2&=e6s9gD|3 za!Qq>m>u>e2aLC1PhOzik*uI)&){GTo{8G{amxA4$5EijHg0Lsd~`>P_my}&8|Na2 zJr=rNV`JmXobwi@0z_OsEF{&J4d|ttMQVNd?i`=lsaNFY1ki9y1j;fgj`bmW(+HT?+X|AkUiGO{GFVSQcJB>`rr_ zOcm0fc*I8a^5GR%gAVvBsyEj~lOI~IgB%HWA*8xsU~z!5ieYl|tLIdoZyBZV$h#M@ zhBNNTpy4KHFVSDVq@vze;45pI;|JNM7DwkN1}B^GnD#J5lSMkgIPq?@*L$=mGALIy zZ{Dc+KeN)$p*O~9CZQ!u?=9#nNVuL-{4CB)Tpj!Tqrr1-g-A4t7O2!l$^}Qhmq(KS zlEOEVEhE=iyvjpN916ldvhGDJjhAHxZ!~CSpRqGj-uY5t+8xD1T1OxGNj%=S#s4v& z9lk6l>_`%^vPPX#P0Xfz^=WF7$i8AmboCaPILe6D*hpU7B{Cv;uY>Dp4|7ch7}!+d z46rXfuXWm$?N+aMOLRN2<)l;Eq7V{Pl^f!aE>u@@+U_08Hl1L7xjc$KE@ao2;5dj1 zPV0AXzJamYZ-B~x@-!&lAff$G2`(RM|NC`rgK&W#!LG!DMsN z_@YTH9={iFLodTLK9cvg`5Fj4;kU*no0vFA=47C))ph5bE=-(VU;^!%m*d_In#j7i zXQl$SE2HU#GVbXW?9CaEr;=9bC)Y$Mg@*0xu+9!#S*I$s9pp`*H8>*$Y7?)Ksb zR51t!wFeVYU@2N@Hp&8?k1V;>QBbHPF6AN90>-g0u4F#s8`xqk3tiZ$;dN~FC3~3l zX0EN6P(nsP8H9a2cKF&wxci;-Vj`OScwASDHTzU1=VI^ekaHL7OLSwvQYz2X7^$Jv zZ{Dm(PyIBHdgI%N@r%a*8RcoB#&ai}B+zA2Yth7h`C6X$pA%CgJ)DzCXkgmrUfAAD z^+F}^r)Mfz-}xFDu@w?UQ1R0J*6hG%7|qa-SjLzqQjf=1L1f9JmCBnfP1xw?g&kiD zPOFC+Mwpw{(R~^TZgLelwLE;X4;L+zovzroYNdmMV>%I4?RrX*>(zr(m9G;&b*-v% zPz_V=%IMl@-WzqCm5%No^0|4Vy(++$rim@%}KGULe;W|owEEl;t zAKIr~meWeXoARD(KfR*B;gp*d^#g6zEo|!r%ZGcm6z2BWDr!W8mj?HT<^Age2>jOW znOTOfMU}dpxErmmLs`hNquXH+h!F)RXO!Irch=2%`7Ny+wM}F`ioRXVc)r|5kDATRc8=F^HQ^c7~R`3H+0NIr1p0Zk)qU)rjqyy=q z(b=y&HWBZ_G80j89K~qCVOwbm-^#5 z46O;f=7yLPAkJ!KpqKlAv$XW}KgLg6qS0AKy04lN{<`f-2oI9VHg1DVw((9d_05*u|5supI>({IE z{VjFdiKuVcrzxmJrJy(l+CK)vn}<-V6|58TK0<$ErpJl~^3@T9cg*AyTzC@Uo}8bz z`&W)!s&|v!6m8p%Y@f?z9zP+;t^CCIcg*m|VU6UuMy4rRk&ZuAe`fXog}yl$qc?8k z-mU4HVH4x^FB7Aq`H11fL06ZWY|A-iEbKWwStKkRM^W0CTF_!u>xAm>Zv)VV7`GX^ zT(0kX)F#grm%GS+E4Fy9{bGG6IAw+wk|8U;oN&FrvU<)0wEqVakpAp(EAE?LW!Bmx zKh^J|IOtgQQkE}&JhEN{RR^DhL*|$Mmv$7geV!>&h0j@M(0IAq1y;qse!!}lGNdp^ zx$q662*QDe{Yh|ZpY{EM*_8Nw0gC3}W(Y^d+D5fUFjpkQcX7~A42FaR^vzqo3C-HH zY)Hi3Q+=l`&GGGYHD6TP<8C|z4nSNjU#zJKH;&MGGh=um=KKq7&S+OAe$CN8toffG zB!n8`EJV3N=jU~l%QuRyC<30Jz)@T!BfrFEKyUontY>LI5n4mf(P>|IM>7;g4tAjYeGT(|G3~@nGu2~XZy4;CEo}O{)8A2PMEz&R z)jnG}-DZPb7h?S@=r+G?QQ{XdniFAiNuo{EU78U)DoYe=)}TI4b-UA> ze`38mjufJ(@V+Vcn+w3|$C|bc7rpQvYnh58^->xaMCTs8&7Y?rfA8Q2DN7-I^u1!NF@1b?4{cNYT^6M{`4R@KVS<7pB`yfVz%G5zAuS8Cl1Tg^E|!uYYj?ZRQ8wUv~3r#d-g&tefAQoN!-4YUT;j; z6wG+r1E_bbOF7d|vfSs0*xl1T)n58fS4InxU?-&ceRp3w-Ib`8#xcFW`+p|P&U0p> z*JB=-8FER8h@{T7_YaKZh8kHVa>`|E^1JWGkU;GY*xlVUK7Oba?d+s-d0p8WJq~iY z88wcz^F^iDpx(dU$+MCh+uJnxiGk)fV{Y&iL1FLJqHfZK6}>ou8Yd90|DgpH zPc)T`mwJ}Qp#02yc{QDTIX3>ZZPj-~0E*v*DwjC)RY*HE15 zLlQlS+kR6BLB!8pwiBU-U2=WEUNWg$S}ka#JLR?rL{A8gGSkevqFqjT$`}p1m*D4N z)pwwFtdUf&obHmXlK-3H`{PCbll0@_y1c^M(j53^ysD7Ypu{)w{;2%`m z=gb{t?^Hy@?KVK}QjB_ufeiK)A4~p2V0Nqhc(D7sFJp$?vPf+(Kb4yc-O&<5+uFav zx9H~ukfqVCN z2ZA4s!snCYcG7u|STEyr9jfyXW7X9~$*CA`80Ty@Ip)}-Z~A>^;9E8jmD9FPNxG#G z-GA}~ZP#CqIojhmFkYkO#&+MF26^1%r!~)r-EX3X9)g8vn5vhNO3K9R2s! zxuV*X7yX?b9i_JyZF}{f{K3HX8~Q#c8oC~Hv;6pEJ9Jz!4v=`ZAg(|#sPHd8{*x^*zY?r@8R z(`hF{xzKLC3!q02r+|OFfd9){K(|knn=tYtccpMH`;E2F?~-gK&)d~DX5V^TJ{RzF z7n{V!>M^tFBig->l476c?%6N5j8xn3G9{U{kV=WUFcqmh@;bc^NK<(k6sRNmy+t1G zq<$3Ik_P?jo!wKYsSGEH^a0l|p;(e4ilybI&4EQsjCHDV8uPPM|ID(pMVIyh6rvA;v!{}qMDqD=H`ee%0;#GO?Yb>4p{q0&R zL3cf3Kh}dH>~kT1tYY?SI)8T~&+WiS_n@xA*$+0vIbUCd>$BoI{R_A=6^-d3OcujZ zxRbZ!OJMu*d_DT4-m?E*50&5R;jG2@^#8^jzmK*KBxI16Gh?D&L0^Yh3!2u7#oouf ze?O1Fm}C?x{Q7kooyy)#Mx~E=O}KI;tJX=}1W@u}2fbSj1*(-2uY!L1lKD!N8eIp3 zds%qj@&ArxZG-?4%*^F~`&3EboW-6twnBpQ&4n8fK;3(a-J-!+sk*~;8zi`o$oxWo zcR9FSqKl#a*p}D-0>pn<=-)mNZC_V>U}nki>68ACCZFr2&DZW2h19$A0=oWjqos{0 z2WXuu-{#8^JTOr1b3KosvSMC7P71~>1G+d*bEMPp9x|v4uHU-%_vISE1sRLP={BED z_M~$!7L;7c>vTR)pME@^Hws*Muw?Z_ZFcuf5Lt3@bp*YrMhzSrp~_EY0D&4_S&*NcRA{$7|XfMIi3KYG4uhr~D zIezzE<58Ur|6MBT)H?XdQtX)0;$Cf)!gOUd%#GK|Sw&C3j*H8gbo=L@B%?h3rKR?q z7?latth1EVd8`~(@HE==TdL2>bZxk@X(`r?k&cW6A^$pQ^V(fE3&4q%|C!T%n(V+# z;pRgmEcDZr@uFIz2|H_N9Nr5#p5MZO45(|WoQG)7UhmB<&`}$tPa@WgXWsDRu35g_ zgKY2ew%8c$R;0=4^Aja{!0|cMrXYTocNBq2vjja&P|E8N zX6a6c3vAwNYGKG?OrDjZtP35RCHn3K84@R??6%!>Y;Vr?-6v3Cy6Ja;R^Ch@zMVlP zv~+@Lmeb`zz2o;~T`*%<^gkVe60Pls)=_;MZ5QuoIOju=luh1plgc=#k$>P#Im!jW zyFVQXj9;T!wu+6D^x&^+@`ujJ#ghc1 z7T=kSV}sw?1Z$}`K6O3PH);#0O1RQQ0`3rFWyBPa}(5GKm21@sRcMs8VKWSf_M$RGBH8Xx59Ix$&TXy<+eQQ$=$& zHQflZW$y2a)3qKZYSVE_0;O;1*6(u6pB+v6}4?g@+Xoy?TUVj zM_(8KWp;x-jk}cf63gk7KdmNNy1B1^e%Dsnp`PjRf+}`u zMskMY*R{#OA(VsNiY5IVrf}GudrE{*AXfVvy|BtHe+ZM(a>66JqPXL%BBy@@4b5F4 zAGj1X+`{~M;=18{vNgYC^EdnZ4?h-T#ju@;mTI-`_iZxbGYo5@@FxW3MTI`sCJH7s zSAIB9z8IH3tQT*h_%c6hGUtdhxb)Mf%}R(w_}0>BiOA2JT$!5vl;B*!r7uidoVw$?Zl=9>UKQ#RCQJ6%&Q1 zHtYu_)Qp<^RtHjO*x#>&?^@F-T}YGu-r|4vA%A_@cb}(VqQLTx`RO!H^OZNJ_E-D} z-Dq3MDqr41RW4H%&#!z*Q`*OAoXsL{uGB*F#-;#;w_lq@slnzZhtlgSF{_FB#dEG3 z9ddRw2A7Ikp{N&j*6}mp{hy!dzgmEqQjfxIMbklsaO41_r-g_R?8xm>5@*jBWS3jv z0Wu7>R5w;AX2v}7ziV)IylL2X%qu!NI&u&f7Z2+F{?q8e&sq|NiIbGti~AG2cVRlI zG1lmRRuKEo?+pCC#~DgppLVHmz1X#^u%5H^33T=9mbAXU?Sue}Qwbyx1f3jA04{x^gB_3&=D4!DCO zk)GBgf)q-(D@mMDg>)~L{iou^b+->jrCI*N7W${bd2(NMNo=QX)L>y@3B+mGG9b*9 z|KL%GUnz26NPe-%sF%xr)9L}`)xVs1f4A3vXV(o}$jM7ZZF80n&&3eu=#;6J2lrZ@<)%OU^sTaWQU;FU!^7bn)Z~t&T z-RXb7{d=gufdDc4_iSZQiS7SiO&&M|Qv(C3s~(3iznZL1{rHeuMAR1|qt9`!ADr^; z*ShIi_-8-)pZC-AtH>G`@72HcI+DMIWbPKG2A7rG^zFxizg)|6!3%f5@PsQ9%(DNF z|G)wGXKr~W565Xwm+T}sJ_MU$<>J0Q`Y(2Ba{qo*)&G8BLF{w94 zO{!+^HF~*8)h;(FeShr#{vvsAo!cRnxvDHJ);1)xilyZIoR4*^;J$czUE&KfjBFLp z2>ahJ&vEVp9hXngR)4GVZaz|9zT76Brp8qYx+-=I{W#i z@|gPy!T%YjyY6)xSH<$`gkOpP%j7r)$4Y@-z3CEoX1_|NY1q zz&k&#BL^6O++B%Bc3fQC;?LPQ-6y~?(mxQ$xlkp3UUKVVS$f^BWdE;w2q54$S6!0Y zsVz0gk$MEZTD63bQwF;3{;VWX@O_$p@!%;3mj~Y_{I0@(u@-;(iUIn?%3~^Wzx=6S zy%Shml>ux%?`byeh0XVpUf4X#kZEpAcUL_xqwNaXIpkDOF{>0xvl|)dm7j(zjP>|Ba@A$cV=;R%|b%)xvN-n zK*M4*9G;Qoy0@HD2FY+G{%9)wGP_`CzRBb@%@>_c>D_}l$rx=;TWAUG^b14WG<&y$ z*;gyOV-zvX=zPadOB=7P>T{;&?MWt|eu{hgHZ^-Y^wp_)J`k?dl{;I^Ga=ivU*#|v zzrL+f{K5}k7O4HK>G766=Q!yzE5O|w6fHE!vQYcC8{kh?OquEd z-&PdA_T@=gaw?4=uqRdGo@ZBnS+!^C&5QRfRLg-%c|7BdAp>SW6>!ZeK0W3=Zv5JK z<9@<60!C;W#CLXVEtkx@l#$;!Wse~Zw1UGq7Rx5g-uU5JSwQE)*K6j(x`$o&@32(A z3~+dD3!kQgyrnAV*=z}4*%|5wG@>$Q?2P4{9$ASQt8;eedl8;_9L7wp$w!SvHd80 zc$0nyNcj#mK2a0DrK=jgnLiorM@Uf6$9E<$6mTv!gpPlVQP9__>J^IEsq9GD>Y~x6 zd1Am2y|-ljYn{IpOxZ26#T`fCGwFm(sqQ8({N$SOi{Dw|OU`^5W_<+}DF zGV98JI#4hHE^^FcVD* zd=TARCFwrtFo(pV*}&&b4Ri_HhHZzlUU{1?d<|PpN;4AWxaI+Pjl>eI`wls;^j$NW zX^59$30&_by<5tFRa}*Rvxj=b_NL(wp01i@D{L5)<5M@PR`K>z4dbW2NXe)BhSj%!k-Vi$fVrQk z)z(>V_{=-Jq`IPIm8U%4d;`f}OktBEDyN>Uy+jO2ace`R0|wc1Rr*k$y$1W#ffQ9k zSoH9pC(@tYq^HQ;^V3i4%>Q&##3SQQ>qCG}vCDTOE)pWobuWQf-M$y-Ey|%QGr*SJ z1~Z3m;!Vp8e@+zu9!~)@^3rmR-X+WSUFoxcjXt263*#JL;VcpMDj+?e?%D$S ztvMjx&tWxXl?AHN2GT7X)%NmWfKUtviJYQle;RWa2;t`N>`%TpjA{kKN*Yq_`1Uo1 zV;!N*vgKw7RzvMd(~iX?QezpgaDZG(!xn0&pCgixm#{_A7S`@PW^#L?p45i^F zRlKv3SpyxiW+ei`d>yIezKbua$U~%2ynZH-*Q%~vasK3{udroKjnW{$i#_@$|M%ym z`Mq#ivggMLfY|r1EKXeQ5?Q~y0Hp^2p|VQa{KC*gs4lV7mby@FRJ^V+*bQ><=|G&u z$*m-}BOKeN8x+;?5yv!pgl-3Q%77&ML0NY+0S~&|{R5(IpaWe1Ek*dK)2uydd>d~D zjiIBFyY{6?z36B9ly(2zk#hJ##*8#7DQ4ZnT#=roqzG-Km^(J4NG5WGKXvJnfz7bq zMUsErd)x(5j^!h8x3M8i>730nS!Bk;&UrglunvxLL*LR@;Jur)0E8STsdm<9Uq_;G zJDa`vAE4f|^7Fu&Y>@`bpNh$Y#U6tyd=&u=?S2<*bb(4|d@kdQR`DLG4`-+LUpW^d zn0wyvIN_!FqT>(F-^L{!%@D`69g&O91p?^}c-udlUyLB59h1)yhjxr8P5A=M)9Wdx{L_eS&}@^ zNS5)#x66V$%mt2sF)y1h(0HToEo{A;(#f!s0>2|j|0oNr+1+J#pE`l)l+XC33E3gFIQRMV?C$n6H7kMojvViALpMt3S$B zcUsmhJv~}oeO|9FT#{3XDttFk>}!-W`M$s@Q^i~meqc9wyvZ7Y(QVROf*H>g7dgKh zz;i2T6@U6veg9Z*xRfb2T7yPd!&i}aU{=(+*tjoC1Kdt+pT)j!WhSuP(B&5(&H5Q? zTCQf(R@*l7a$j|sZL0=+7wd@NSYDWiT+&T)f1=z5hcH%52Z*)E*PrfgY#82H4eN#X zvcX1!WNeX^+B1^yxi(Tjdhlc<&bT1f!X$%%38GQJ;QAs7xpQ#8TVunZc%6((A!(m& z+CdZ+ZU{2GN=B>s?w=5rudI)qR!{Oeslv%?jZuX6$LGdY6zZW$bQ*P&JFl|q1DLG} zxXst0Cr@T4P1?~^>H@G48xwM_XD1kXH8{+RIJKv>oCh-m;%()s6CuV(F|KCo6<;l8 z1$fA7KdHOBre+TnRBxoh5xRdEMl#s90zo+f6mhfcYx0{jgHGIeKJQl79%R$ zCWKR>YX}-oaY%ZjlTW|Q1@4$0N(O}%nFA?kmUWBZNZU>(DtL}?IC*YW73Yci#PrT8 zIKy89X}l4C$QiSC+C=})}m|3FMgsjPw(K$}54Tl;R z>Q295ih{zjXRWN)ac8#|oC{9KR#L`^hpX zNd3du*x2eBLoBN2FiP@hpMSSI?WOCLs{5VZn{>o~glRscH#Eb?Q^fWO>a?Zz1rB$w z=Pd9J_JS`Z3{lJ~9x`dQkTjkG{=BOQ+Xh+HAp63F0t`F{6^lHz%Js4d@42O3#H5Ma zM&**X>Biy45l}emEpjS$u~>T`$!+M*lKcwaHVp^X~w~|{?%9&EtfQb zLW98FMfMoGew=lg!>VpA{LF5AHrf(DZD{^Dx3G?Nq0;KqtlIWw-#1Un&3Lmaj)l#s zYQjfnAd2ytTmLx0%fnyUd1yar8O`%-IWwu{G2e^_fp}lZy7OjhwD-1EB}Jp~r-!R< zon+BIdo6QLO%BJB?wpLeYV)T)(Ud2qP47M|CPAtylE3F&;qTGanVP~@ub=VqZyqt+ zQtN{1CvQ-7SMH8Z%<&!ne9`3SBw%MzgI?ypYVxwtz8rlkfm~(h-O@plvz@S0&<+O` zU%b%K{O;Jkq;k;kXM6bET(Uba-zQ3Z+Sskw&?UhmDTi;6=RGWGeVo_H7HS>0I?t|U zE)HT(ZDBK7;^^txwswd?DAo8 zw1*J2&}o^n6V5Meyaod^GgWrg=&ConFbd}p0WWd-)6frh_EnQ6ESwjdBlMNp*j8~) zxe;sDb6YCJ@vVEUz-CyMYr~2cl!hBi#XtIQ;bsUEJ9+23v!0N3u|(6WJ?7i$(Dqs# zUxi3AemT2Cz}+ItI8~jgSf6cmLN^!Ww{?3ppiLb5<5a%C)WtL8ELqU4T#061rp=7Y z&7bhre~Of3GcE$srys86W@l%I#BjyExs9wrg5&>9zUv~9pCWx(Ij~yBu5~(j6NryU z&EEJqi$SjQE|gZm2_+xG1{9zZ8THr}2>6`s^21ET>_Sbn!qQ(yVXHf|9k1?lBJu0H zLBxd@(UeGyM+ltP3Ya}>3)S5m6CmX7+$THk4~nr*5HR~Jx0A=rWn!^R!lqTrXM38$Ma={M@Nqtf4+FAub)-zTMf_BD+9O3bjFWDa_Q(=O*rSa{+{S0qg& z`U-QbbQ)zj?B%jKC(>*EeaO)G>xn+@ZJUv@^{ADS{*?&y>rdV6rw`3-=R@liIFST3 z_Ia#Lvy*8Hbo-P1vVfIMn@H}pBjA#9obPGJZ3p<#VwQAfn}jk5A-u#&@N4Kb9PAR3 zUq|=dm|*9Abp zX1|fPwoM9Kr~}|l2>kXjGqRBBiz>#~EBNYb*2d+cYC5W60UlwkFC}%#t8MlgmpP3! zwHLqIj1}SFEwq%GPOLC)5+&ZV_|W;>;8r;8$EC!5eT1A+yr#E$r;d5>h$r$&aW_4i z#)1RmXlhOpaYIJh(7Z=eD<3RVuKl?8;NP7faafa7MD;Is| zO7|`k+oP8Ga!O)!?J17CjZ`+(%cJIdukiGWZ+F^po!YFHCA;krltnYeHl+qVEUeke zAy^8!(G{jI-GpYzk20_3Zdcd>eV*@ zVJEna!$jHfRc_7x`wI|abaJKY_mhbE5@si#@Q|*~x`p>Ti}aPic^uoJF!ACk`Y@{3 z8;-?f$@*B2UYN)^Yc$HuTHR0mYQQXq&TRIfH6N zht5G9hqa#6Lq~P**Pg14bhXtuZxvon*PO{7LJ zQ0&3oORAPL+F-_mY+#>=nAROGW@x-F)2Qy?W%5wE^SAboeY)?)x~!r-tqX~KH!=V%4AMg%c4Ou}Nzl!ebczb7+9plGfy$TKvNHN{dYW>WoBkL0 z9H~;}ee_Wc(p%BHgW<-_)pMNVMB}jP{mo6#;75V?nIZrU(G2-Gxkh6Z=*ig(1w`1r zhp|lRKai-yiTO8PnVKeYygCg*Q0;#kD44aQ`Tc~?J1i|oQ}FRcIQ=X zW^ZBns7RW647(*Lj1>1{zW0u>edrnsyp9Vpr8Ameq?6TUckcxo&A=^&0C9G?jX-p# z>nq>)c-Z`XhFR7=UBUL=ChZPWo3A`sH^;cKH{w%_3bg*>6Th1z-XojZTFIUBwn|G1 zyX9Q{fJ^13n^PoL6Qkddae<|TCsaQnE%GZ(`Em48EL{w{f!dp{mrfJ!kbW9 z*Gc;20uo39sqqv@hTegaE_K$HD48}X39H7du3^(E-W`@?67pf@t8`^oTI8Kbl1)C0 zD7>QQRprAx3|XyoUFo7ZOPV2Te|<7#VymDw!azAxOK6pcEHa%CgQ7;aWet;;k)%*!M-z9Mk! z3Gm!X3R%lrj>_sc;MKMoKHZpx3k2MPaCe(Ui8vOl!xb1KVGd?0P4Hly4ZFMu=kzP- z_ub4v66p!C@r;aQ;Ej*(p=@3#36UlU(FkL=Y-U2}mhPk#wqdeqeSDx~knrvXRhxNE zR=sZ1+$ZktE%gXk$X2qeq!67(n~*U@y>*i|1c<=m9QeRW3z%2`Lvn*iYWi2<{mh*M zS#x2kUPRs*lnFbLD(+sul7~c>c^y&gkQr(&$2VS2b+(FVnIMy9@GLGkL z$TVIoCsKG~R!HCFW>BbRs+efbsa-$M{6I*Ecw%sA5J1Odl>Fpg6e?SW-YUVWC=EJd5vPRe zq?9en%RLT_8>)rck~UW&NMAS87l_mE0YdHTD-?~iol!#)Ttj#y{Fs&WhY`tC27+El zdHDfsozu6>T*(x_5ismG)v--!PwI0RA;qYuJ51eai}JWtEr?H3?C94$u04@Rk0iFD z1$#S~tVWm^+8aTvo#}ek{b-He3S*v=BEiDy3nYqS!hcudHkya9W;NGFWh0Mtk;}Bq z=o{Ww!EV$B`m8i>lD}omDe<20BrmbX3T5aYg52AUBZC}$8Q|_Eq0S*|`##R52(!qB zNgZwP$9AxF1*gEvJ|HPDdLZ;UF<7PbdiaCxw zH)gekN7UCBQCSNxi)Qi0TFG6!3D`=kn>NenJHG!^m`uStFSX~GkScO~mtGn?uLp=y zG)7(|Cn+^9>j4QHHStqTdbJ@Qs9dwM#&AKP!1f@pFgm-iq6&zIKfm`iG*iS99~vto zri{JUDYk}7Xr4hyuY^~0nSROZpT5IFeWEOl(|2ktuT%ol>m-jbDRO00O*T17RjG?N zq;pAhfzFJQL?eB%am@iCoj1Y|Zdou^WQxb@q9YZBd+-A~uVv1>)yWgR#CTlOW$!Fj z#R@(0;ajhK)76jp>`9}Tbipx2yPh)0RWYzn-%+*cr?Ep)RGZ4#kKkUi`@ktbX*=fb z#afBnTBdr~Lx$9I2c@W;eG!VQ%s zoiM+%iGiSMg@uf=D~bV9)a0+DA9=E2P2Ha6w2wK*CN~UY+Hi=WpHLaznqqu10>?v4 zh#lSgZz3p=!Cjwx5{{h5v}`CxjOw!9;bTIgdr@JLTK=7V*u}6H$QPrHYL&o@BJ%&q zhqC#zx!JojRg&){fMZ(1E%HVXjRJXp28nyN!~RsK_V^nm6DQcBF}0M5_MZ;84I^#;hMbOgBhX|6{yvGXgeupvbaW1 zh6~lRWN?C0$|A)izGqmEG6^WwaZUsr=cM$mOXt|zlZ|yis>|w%TXB)Fo_YS@E<-g# zm*9a*mp#m~v-p*;9)(KzHzghIFvdOtKE0ljMc#L3lr~5)HPNI$@^vN7l*A($ppY;-?(?{FcXNV zq(;H3ggH8~P#VIrzx=h)^dD6d&#wERlO^}qy`m_&LXH+ohW2{e{e!#>>ylj8YH=C- zCc8__`xCSyp0^)vAMcUN!aoP|%7gGD8B&JWsLq~kCX}8qDe*o8xh(zM+=8knvkp8T zRF+fjl&oX8vkUAlTPFej!uUhCoo}yl0NFgt>;XusNGz{CS!qP`qe?U+ew&QYoo#Y# zRN%Rxy1Qy0c*v{UMOwO?5q}k7(?&4zx&6~3Vy4kPH;D&#%=^mDN9Udte*5fZ3^>jj z@6nIBVNr(KJZL#gSv-NAcic>2N6@BpE~uVKgQ32r&ds2&D+1B736s@tb3`mQKSDI? zR})u~uA=$LvqBA+OBO&vSn33!VLocx5Wsn|Q_^!}n3hgPb*FIK zFPtYhmQ67Ah5)gFF*Kb*nFjxhc3Jw0Hs@2(Ne^;U54|#J_jH_ zA7RRlDs^T^syQyedKIZNL2Z)DsHB%woNKhxve_?K>dLj-VqAMc_=r5HVWvjcEH!St z&R#Wq8lw85t(B(WhjEw4ZhOCbT`1>_2P_SmXyeSg0JEFGUm-j*a7iB5@2Y+ODA9QX zRd49B6j@arpND~CRX>OpU9vqhRr-9Y?G+w$Bg+ldc-;q;F1G{(d&d^KTjI2 zxa&^`Z&hpc#C$VqdH-sdV=18!j0fc+)~}MmhfT}Z4cb1anAZy7JFhXWoHt?&E}rbe z3lJOL88yE{m6=xH{KE4CzQsF${G$<0e0aJubS4M9oRd_o4ZK3&EaT&m z3VHmd)MLz2mkG9c`|nwA0^NbGxtsFgc5*+nySc$sRcTHxg1sgl{vXjh@_7%y$eBkK z6Hdcgy^V%ak^R?<5ER~5OjyN<5k42Keq@(jN(-ZGYxP%@vj z77mKeLt^D>{2{d$0YcSw46ZedMz_vUW`lv+O`y-ra|)&$TKn1O)-;oy@d=qdgilCG zB205nA_6eN=!^!_?5D`n)a(OorBs`WK$+6iBJdV{1v~IOLQGlXoIjANHKS|U-hdYD zD5CgK;jSpeXNvXs+p?vlwwCeB`QtbZq%sMnD)cz5se9!}l7(XNtaNU3fmgn>uKEo( z_kJO7f5})k>l^RI3e-0zYIT~b;>9ISA7UxlJQuVuqX&OJ5pF9Mbx1keWLWoFo=+u6 zr=&yg8?x~t-ZJwtmWmmCx*g3=sMmr7wIfEiTWrL>m`bCoEAx&S&rXXA75#dcc(N7q z$np%1jC#&$$C=qsA#B7`D4HJ82H1V>x`WL99FtuKyGi2BP-L-<D&ah656H!C?}1?Sd!>Xqdl#x3+nTFo+-&Syr^z?7$M159DL zHNWq5)WJ?3dv}U##aX25%Q~&@wJ*P+{Ag*}YHX4&n|36+R(U4NVFYc#9zlnzMEN)j zh3Pay*+gD2UJbzb(6z^91Sr zhr8usto4a$YHzxu5p?p))6QG*!a+rl*`^?u->r53$k|+;fu38~KWzze6Ycd-8oH8W zu`pE{KyUw=oeb|qNEvzAau%tgQLz}e8YgxfabszZ0cCct;z8rO;G09$G83hyPn_0* zQf9@Pw_^v)`t2om7?H&EeQ&N%ha=n%X8jHnH0UgI6L+1eke*VtTvP5$847LrB@#zgl%s>BlhXrmpNP6Z-D8^^z)7YP6ywJy4inu+j4+-+f(5Y~(H~ zpLCVKgPCZTeLkf50s056V-TBOH5GaIYzrh#(Z<%MPa0<8AYxi}$z&7yX&Q>{HV?jf z-%3|1dN7%8E&}WSs_HOH)>sOvPTb40_pchQW->oRZP$5_qPt4MpT6;3LPU~vv7-nQ z!O*@ibgi5KGOoWObN`(_;`3E&2-%2jhIl-|_{y4v_y*+1x3gP&*iQiFW*t(xYPx%K zFIMs}*6ZcGQu)cx1nVQ6yzK}oI9fZ*W~f&Z1Sd<0YtS=sKktdYCSueUtvY zA=5#d>h8rCZa%yiLg>m@sR$=s*LfLR5pNVK_GphCL50KJ)UBkSs2wD_#{d%z`Phq2 ztXm;khO7yahd+|A@-pLN;;06i5*6LM>HfdYt~?&^>5t=&K*%$9BcMpKPIR}Tt?U&OMe z&TSHtt@c%cpqCZ)KI&CM2uaMR%8y_z;v0%ys=PH$HyuAxj8HLndxw!Z_9hK%U|b45 zXN-oN{Z_hSunt3up42mf_QoqFx>at@7u#3+2h z8-eh5nb9MTdcZ*mzVoCP0Z)3{?J;HugqvIKvWme{Ge1NlqZB~}MIOeQRtEFpy$7sW zp;s8hXO0^HkCM5cq~WJs*1Y}9z|1W9tfjg~*7=r&c(+K?8sJzlL5m-nG{tzAkXf>m zBK0+&RBuc1S6pU=dX+Wdwg52HuHn1BrOj;Bju=N1+{P+gsOz#1t(>@^{f^uBu#wyq!emSDDNFTl zT3(s#ScpBFjGXDJuWrIhLV|O@DGu__n7Ce*31Xsu?to&l=xT3pSwsEc%&V!_)0s$a z*t)ad&4_`4Qbng>`egB8%(S>}iDRfX?z~XF4zQrWy)zbvjPrdTbj#pvLgk3-_XWVfLdyutx;35`FCpIe}bvPaYq5ftNo%D z;xJxnmqQ&9fZwI5LstrZawg1v6h8qGU~isMOg%3`<)VD@i0*!g;J5tyG8R%Y=NIbYHNd#48cd;g+8c1DM3>a}d<6&v)qRYNl zolY-KR14;x(`k=~C}3lG`Wrup%^c^ZI?<_(D2&&Z;b?;jK625P$RyC-;BWEZ6$I5g z%;{l6At#Q`7?m=Yl`h3{8=)1onHc%m`)r}dk|T-BCvgfMG=Jz>j5o4bF}1I))Xvh2 z@vjV}zZ4^~@<24ixCpi`3U)!sA>17Wv=4B%1V&#?B~P~SumVzGU-ljE59rlqzwg2>In)=X>mS00N%uzCG8~2oY@21$=Jq*ThOEKAm>_*$ zMOQETV>YB>yvsOeQUu2>eFtNFjOP67>Dc!7B--+!Z2e9*%1OW>DZN$U=iKb;g=SAX zrg@9nK~l_RNPeuZYFo}dRV?>(^TU2I$vFQlrp{<+TD(@iJ^I|dM)h1nFISw!Ont)X z0`!O9OYCZ^Ivz%M9l0#r@pzL4;C(@J8$_TGtfZ_#>X~e}{f5T4DXV zasNWeQ+&%TRZ)#LQFP%3)S38TH=kGT<&OE6{^GA@?7nt0hKI88T~y~uH5+#x1_LU+ zE`ZIM;Jdr|6bz+FVdD6_4%Pbal>F+=%{dFhp|EV2UB3^3Xr#VBT1a8yqYG-* zGg|ZjTf0=|{9Ptvovn2X+ZyfN_IJIaLcJkSaE4FRJ-1G?@L&D(m=s16@^mO=&DAP0V!JeJP`QZQ^djt>&lG0a8Ks?W2iscf7#B%z zEWj#Osbo}>YXhW#O4MNX;$`QY2!~c*g74SIcWF1KqL^HCWrbRTEM8b^%}wDJ1n$hg z$u;}Fm^b897se5>faENYY9@Ef`3Yhe&GlAtvw!`rOPs?ZfZ!McG`_Zf>_9C@)MY-g z_n26AANzq&@t9#~pO=cefJ*X`wR@sj% zVm|dft1onWroPyq=YvULcShh$k=F~<1;h1kfJJ>Qx_qWrB-n7hSd`G4jqYI?_TD~! zZuGc6fH8b6T|AycBedx4d#)!@>0LB?kUhdIAY0(9HRajkS(Y zw=%U%)N-CFViQ#(oTQf=!K^4h5qPaVdF5SQczNm*1VHF(CV_5zfmayHWcH)0(mBtu zxAqEzQ=yxqP!ho*Q>IF~-$nmbBdgi7zCPJo+TgQ=&hPB~mCOUDmAWVLGM!>u918um zmZ0kUG5iHl1fTW`4r#uaAa)tILel%kmvFYzOq{gOUi(bj*FOCAVfkE@?*6uk?{il- z;M~IFH@V2s>=%NUp=<^OKls9g@Sn>hh^4`by__!UjWO{l|3X!$YCj4n(}}4i~On^ z<_vxZT=Qfz32QI^k}+DZ=20NXqw;IFx17v08uFsM0%z8o721{Z$5wO!Pz}1VcKb)< zoJ8)CEi$1EZa;SYu^I6epY7v*^<5&ULH;hGJ$CD&ByVphw#KTqKuWrPD|wb51Is5y z3T9|DS8(;jjW#_9J)`J5^Je7X%$i%$(Mm19RQa{))g8cCq9i}&J^~uw*rqW@ZZUZT zfV4DiLC+3?D!lShMSJSkadps@}W}*>zCkZeIW-!gDSJt=yo+hV zT5CMs37i(_Qh-_ruR4`*vpXQqAXTsRjoE*SyTxY~!(<#inU()rmnWzx+haFvq&9ok zo5vH4zAJpypHW@B{HcN|0p@|6I)!xPOCy#xWn63iEYO4e&Y$YxRcC?X@rpxuoZ*!J zh^TdmQ*@Zjn3|pLP~0#_Ipe-Ho#^UEsH&OXK*nSS%|FL_j14hkQ@lU|@ou~|wSO!c zAnM6Uwl&(6u#V01Q}f}%hOt_Dg(2Q2tu2h-^-Y^y4pA%1nL|Dox7V*RvrmxD=7<<`9@u| z!~{f1N)fBbxyt@1bJm!fU6ib0YY+rGO4}~JCKbY+E0<&7 z4#lRJrH-=NF;7kQOc%4EpoKFF(PBM>PQJIPi)+{4-r3)gcS5i>(2m?^UUtt1Ut0pT z?_xbS^Ol^Tz~bmNpGPdb?1BKcF8*cZQ3_6aBJfWX=ilN$by9b@bQjztQVUg&SFKA#!{W`BH@ukF5M6O1CPc^@$YvoVvddF42^)f?1FUsugrTA>kSeEIXfpoKO# zfGN+5iCa*~3SA|ak<1-Xn$lW?ArJP(8o`BeaUBt(kUYNrcK~6_Sras;;1r7T>3DPj z2AF2DxtaFsRV7UH9|)Q?I+G=}HBp^;{AT!pN&w)PEUt3X*|sUZ*9Pz$iwm844v!t5 z0%F{;2~W?GoSDf&jN3=o1y`6bO=<6Y{R z@&QS32Wto*U)hsEUzyki^L*7p#DM!?fa|MIcQ|rSlrt$T(kl$L>H*|;>U;{qyS)tT z2-8Jf*{t`A!7>HegR>za0Op+=+H#YOey=LPz78f=y-|hhub4s%Wpy+hy4I6rzoa~U zn7}ra6(Qke@g-HFq<2;}(3O)9Q8+&xSoX#yC}}=D1-69=)+XxNm&O9OBlZoy^#&*- z#!T_yTmDHzze>T<6enbk;j*d;A8%na*q|0W$Jm~w0P&%?*9s3qjXdXvWk`UUxu~EWqJ7s*h*Y)C;$YA zKAD>zQe6`?vJ;6`+v|C37ds9fdK|GcF3yXg|iJNos~$Iyq{--fHpXfLLN z`iHuMrBwY&S8jFB*zpy=k3VXEL&AZiLhwluDr@{lUf!~vmDm%dCXen=YPj%S0xleH zlAl$Iap=$m6v(@dj*}mY@L0jjEFXd$Tl#4y3x)V?k)=LomTu4ma99S-AU6_dMB1mH zD_~f?0eIwyL(kqp&SF1f2==b{?;E~G%nDwiT7+6jkASKT@KVl)iB)OHr%5IRH<><3$S=m>dH+VkdWr+@20*O9 ze8M{q1cAdL`*vDY;H^=9K{;UbZI&etSNt%1fw&e)UDIJ3)5yVg?0(}B=XM#|6M!F$ z)`uJZnZ)l>fRb+~w%Lhsu{(q4Lp52$|)Dv2T+$p?e@pVs6u=E8bxi>*P=$Nm=jKw>1E$u=UM_wRMY^v3-Esg!k!p zEeKdVe~lbU;KG+MKeqJZPK)5NRTSjK;>v?+CFtrveC4iI4_6$JQzEMmC8tYX{Q=+b zzl8UMv|U||Uuf!ZjEU<>mSjfu{RI2KARQMlyld!E0mcK?06+TqlT7PGk>qfVs_nr%)cb%gxc^WDCCx>n|E&K``h z`+#lZ9$An#gl+*ApX`B@{O8XdnNAg(2v95fj!AN7Kco!!YZb*TJySAq4F8w>%D+92 zkE)Ur?ISC8)O8ws#-fHtAq+(a$$A5J^j!>;6-0?sU}49$nQqeU*)-u_D2&UiKoNvC z^xV~9p#taiq4*XC6pq5Ed#|yJ$dDS87Q6p%lly;`ql4I`E2>IotupM0jX)$cDJA8s zue(Eka6iQM->b}jzooQ?Zm|C4lR%QC?e<&M79hP4Yp#gwKDzUN;a_&W=HYDnO}o9D z#)bi?NC0IdmBz(W-+=KoXmG_4vhnHWI%z4xsq^e&^2P*i9^U&eASp5!Juoc1!kRz^ zS+y`FFi_&|`-6WPen3);qH(Yn>+4Ye#S=9ItZr&1G2LRa)PtvY&Je{l6ZCe4Du~se zP518pIV|MX(jP&MHWI4)UUV+~j;=wL06hcU=ersn{H&BSs~%KUaboWgCz33;)A#=U z`{R&YBd@c^+3VE1PvMp&YkbDgbUB}Qk5|O*@j6%@4Wl^hzeKGc+ABes%zPK1Nx2*W zictw+5wL^;vJi>6#d8_TjB|EHxYYeiDp>cvhzYW)gcCYUZC$)N#mhR!_LDkMfZQgL zfsrVON%n{0=~$TNx}9X$VaOMJ^*6Mn&&4u#P6A9+n9_6( z%OiV|>y|w6=}+u4(EoBC&>#zvkktV`ZT>25MJ31G-xK@Ded9d1IYEg%-09FruqC5! zs`TEsz#xh;cewh~8&|*4rku5uH&dtRv}74jzv+PSw|W0(75{(5g`G$u6s-)D{y=D! z{-yA2qn>qdG(I!TDT)`1=lqC1_+O5a&cW~$Ejrc*;EO;)X_6w> z!l0wayrdi%$kSBDgK)){5j;FmL~+ZRDzl}-%svVw2LUG{s}GKw%xxF_q49nGl3 z1y0fHgQ;gNFS>~B0zKks{W960Nj7_5{~@8<%JL_TN{yo-FL-(l5ujyS(%i59bmtW0 zYlN-%Ck}c%{E1j`m>K~oxYuvIc?Gz@>N|6C+5`@-%>iK1va`gWv8XXnpa}p*O?v4G zvu*Gr4w;$mBuP37WTTE-cIoZisJO%TD6f0rJowA(5o(R&;^$A(Q6h_uCpZlJg5$UM zeqYg#@n>DC1yFeZ!-gGLVAG61P1w%v2pa*L{x$Wz+#g(^oWjV+7y}-y1bI{VH7bE< zHa!%Y60dHY1aoa0ZHNDa3p8KlGPJTf1d2$4^T)E%(6T@;*msVJ2DRZH~h*Ho}%C$hX zP3M=n5&Ga6_nspcgt|EFw~$nTpP{?@l`Gr5MZDucC}x#M8Vj}MAxUCd-nvm zDA!*)PjC&DE-4UiE=uVIhV~3=qUo>ju9oJWQ0ga$O+suc2Wc;k^q~hAFdz8wUpm zzsb$b#WG2Ajey&60B`-Lf03t}u@YnY6H_fAU%O<1-BRPifMYlO4S^9lq9P+GM`F$t n*tVzqE^hDnEmxeu$Trn6??Ovg`k^xr@TaD#b-DPW_3eKEAmM9{ literal 67467 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°G^?v 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

ypD+F0vM7@6G#292suC`~zKs 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

osh?23c#CZUmw<9ZzKHKsbUh65 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 P0WV2WIgt_}J@5YmoPtn? diff --git a/Documentation/installation/images/rancher_edit_as_yaml.png b/Documentation/installation/images/rancher_edit_as_yaml.png deleted file mode 100644 index cbf51984b9f7cd84ddbc78db162177c2a8d3a56e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146868 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

j9+2oncN)MOJ_o<2>QA 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 TKSWNE055F~ef3f`tH=KZy|_;7 diff --git a/Documentation/installation/images/rancher_network_plugin_none.png b/Documentation/installation/images/rancher_network_plugin_none.png deleted file mode 100644 index 1b9f762aef2e84c2a7e3fd1143296a6ffa673bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233277 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 z⩔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%0DlU5b>uY|WM~co= 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�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 RYuW`|PL8e)PwfH{{{o_*Q!W4i diff --git a/Documentation/installation/images/rancher_node_not_ready.png b/Documentation/installation/images/rancher_node_not_ready.png deleted file mode 100644 index 95afc5ea3c92f700dd798fd3f8a5a39cdf953507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85505 zcmd43byOVRwk?c9AS6H_xNCw1clThyA-KD{LvXj??!n!mad&rjcek(dyZ4;;z4LDJ z=NoT~>d{SgQB}S7+Dqn~tAf5si6Fvb!GnQ;A&Q9#%7TGGXM%x&U%rf_(B$;76&jZgSJ;z3;R2f3~pvRL?sibhV76CUOl5 zrXZpqsPDd366^}17#tS9S#j-KDKeuNt33DgU}=ubF;1@C&v*(?XS7^$Jau0sNqAau zZjIUFLDcTcBsR?P@??%C07v=Dc1GmgrEwIZ9tHL$@-Lg$2k_uADb{*^2ol~uZ)=he zsF^KdG46jq8!K`K+_A3@<=;-l3$a4Ni@cD`IFJ5+^TtFEs(aA>HeLkYP9j>GQLP;* za(TwFq{betUv5S8dzU-gZ8A3-zr3feEVEB|RCE0DVIdZ7R?G`Z^v_$fuoqGF?6*qd zzg`er2^duMAgk2Bol3OL6pDi16_J#K=&#dlMG6e+|8qAcN&!WqR!`vcB}>|i$nFZW z686s{;teIJb$!4j+i2%}sa#`X55Znl&xRH}X5E>Z9sOqu?vjH*K&OdYtg}q+-RKtI z+^51%H6{(~FQ_${o}pY;D)}y?;c6bK^bkBOb+Xbz>FsSu;(B8i%~-&2usx{sRa7*P z(PHTfb3W>J#mRCLc@PR|bXQPktHt@M=j)q=#x%>Hushy=v}mM3s5IvtW0lG-GH%C% zDY`fjX{Sy$%4`j8o}3b%@bgg~gsnl^)@Vd*<^}23e)6J$a&3WJe!mNYMRZNKPrD2_lCpV2A2v2Ob@69a5ug!Z5=v*vG)Yw|^{f}E1#ihDzxU0QEM6_m2DW-~ z*B#f7C$<&H!CL@7FjgWCMJeW$UXwI^%`vT(gC0 z#fzO`>}iV*u9JuB!;29P{9kP^Jaxx;5{U*-Ms*wwbP^Ew9(NT63FOhVpgXD|<|V#A z+!`-L#Aj~|w9KgIN7n9o>s1VJto;Xkx3kh5(WnlO2in%BXtTvyYGEj&w-Cte%n%T+ zyCc%#xnI#z{hRFeD?@SaYbTjYorKrc+I?i}tq4c4s?h%EQaE*>I#}-9yQIiy@?8&S zsGT2=9dmiTpXgn#9;F}{ceW1?iP0z(tvI?bcSptVFBG=oHOV-RPv@)3t`4S0LFP9{ zY_e4b>isEf0rI74lHB)O4DI!+o;-Xj?zirfC)@F`MWRazJHyGAGwWi{PnVF@(S~d_ zy%bcb?DkPyt~U#hICMHc4J_Z&L5nUv;TGlb}J)eRI zh21ECo&;TGin2)(kiH@jdU`S!AdvmMcl z?zBR;cYYp+%Vi43hpqW;V-N-D+W_Z^%b|LM?QVDqt93^+GwUrh!pFo}#4aZP(SH)o#Jvhd@cFTr0`{!sT_`&gin6x58~$=-6cCa&hwRM!d|%aTMB4R zny7&z*&?1gR00b%ro`>-?LVCBOmC~thfc;aQ{A4gSuQ#dXvGR-N#&~%BLg3JVIF$% zJqr~Hv*oX-$vt20<3sUZOR6nb6>WBg*69KOCn5)Z&Q5PKWtGTri_dT>kx2jPGJGOi zLoNiJK>bqt(b9o-5v>I z`Q71Uk?!NTfk(0X<2oJ^PY+MDgJePFyYV+PN`Hz+I=*dPL9M?Ouk%_?x!qmn;~S8i zApkcZfN>?v315pxE}cf7pTuA&Wtn30i<_z`?6bmW(;mxDmqshiiN;DTE==BVFSn}< z@}d?7x4th=m$cg*eh3$rqdW@;L>|xA%4nP+aFwYg18IF)X`Iekj7Hyhrs_+v2`UAC zxj$d8PZX=j^(Qffyv1dgAeaF?U4W@n_sy5LI2

`MIe@lhw3L7b=$M2+jiQui$K{ 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%0A&g0g->Y~19(cl<}dFOn1ybK~n<^nIb1 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®CKg4pmkjMLp3Lii}qBC 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

=pqaG{`uX85Jbe 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�S@qm%- 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 OcS}wCdf_$ep#KAb!50<) literal 0 HcmV?d00001 diff --git a/Documentation/installation/images/rancher_repositories_list_success.png b/Documentation/installation/images/rancher_repositories_list_success.png deleted file mode 100644 index de12558b5127be2ea6266d9ae145eef29d3c5114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100270 zcma%jcUY58w=Gprlp@kg5JaU5iu5MZ6_DPGh&1VhP=kPgN=J%FReJA)UPO8?p#=y? z34{__D1pEY-~G;ap649>-TOzLgk;`#X7sR8;Ov3;AOmNj3-V+rwTyL^?D$nI~yzsZ?N#r7W&}57eO-46 z|Di7;TvzKBDwWKCAMu^t+ZK4U;lY6aJ(>UX#b!XT7pzO!|NT!>{`ZJ`sHT&S$zVa_ ze7szH?)R%$Skv(#7j@h=jF+z^>=yjd@4}Kv%89EDgHc@n%WVJMlPzviB$08%ul{D? zJDKkdarUda2G{<36WI|W`uF6FoMb=#K4SbTJi?K;w_5W4-Xt*dY8jrW(mwx(Wq6B! zEpw33Pvak&$WdG1iQC5We*DX>x#OitG?XgFabiU$h`SrdT6e+UY!pcHVlgk{sp|J< zormzyTQX7>YIHT>9e5rSKJHHcG2{QRjOxjI+*%Mz1%@zANKZ}kPhZ}iHX z<}q?yEgl~gqi}k7A9ska8N?Z$ zDC+uKd9H4#)o`xaSN~BdYCqJsD>ddXvwOw6+s7l&U#M#th`9ffQE6`uP(0(Uq!8Tn z&bIL4k*8V`|CdkH5BhUorbvaG=f1FGc$8UoN5JgGvF|1JlN)lPAd@(g>SVsjJNyp+ zdG$Tzn6}4oi{{=mi41<^l(~p<=uHORaD}$!w}W(V&W>2@XGBz$d#nAN=tY1lm%0o$t+6I?Wf_CLaes9ap|3D`2>P8oahzCuw^MD>2qEtlQP@ zjpM9py6|ym@A5%T*d@yZ1dwQH;5)grG5H$}_8K3`N{Tx<`HdoaAbqqt`9mo4&9fneymztw2abCB*O_Sl@^>ASj>z65Q> zNS|(=lZXb+7hh%5y>siVg*7sy`8q!*#Cab`?=dbk0FAx3Ydq7zaPV20rGl?>_d zcwR%jt_W|9M{tJ6Z~J$bQ0sdQAXE;)uff$Y0C*xJHn_p6n;-cpO+i;RLUJryPXva(&Jf0lW zW?z#VVJxY78SyKF~!QPBBJZNep!o<_r6Xuf4Q_K%Kz+$%q=;~BrD^U-~<`^1Jk=#D3vd{Uhkrq z#eU?;v513q_)qs~CIaNc$dgh;ocl(zl+X?Bl>)}K&&ouK-97(o*-@VNUtwW@p^*Tu zVg7T1*jWNbxpoVnAolKuvtz(WxKY(xpi2D1SF+)_0kE7N49l$k?hH2@XORJ$$c#`( zQIR^%>;vT}y?%ah-JdcK=tV*u(7R3EfT=)KngmECEJg`K$fR>hXv(ocl~oq})K zstH<{!;PHrK(=F#!EXZVIxNwW`yW%KeDz3*S}{nb0`0uocs^sJbT9U3eW?fvF0E`$ zzD9WB+Msc-5@1lbeNWG4q|~$#NZF*FM;<2=0JieLHoP4aXYtz}&&#{v0iq>JRf=TH z8vpRbb~nzX*+*9sb?uhfq*x`Busxf09+)jn9GDP9OqT!NQF>4Rno)W*tCU_23BwP9 z76t3Q-vV!Dt0{6UJ1}v=4zyF`8UD2f#2q}nF?R`9&rnH7pFFiB^<3N!>auM=~#b(%42Kg0-Sq=XKdIwPt1LO_8y{Q$Z`mUVU@_lHdt3w>SEM z+v0tV5xho+^(zAmKY|X0vC=D}WJ!Msa_kBgL#f`}dg$D|t*4G=2Th2SHlnMOmuc~+ zVLGO78PyuSp)mMO*x?cFX^T+A9i|-B1RXwqGGyy)jl;%XUjh#g>HC1wRekP{CjDOs zea=rlxvdQ_Buju25ldm(dFop2Lrp~&EoWzG~t(^T2pQ_h(a zh3KX?17GDZM=Wfl6P~CA1-;^3^&zv0-&KX^J@eZ#;OShw1`jS47gLB+@D1_S6|Re_ zVcPXYL7z80F=i0)i`Ar;;v<`75ie7osw^~lXPY)YZD=|_&6vPjQ=1dNr;%kvvAM@PAIM4&7GJiEc4B!HN%c@8O+10T z&}Nvm)=Y3~ue)RaiFt#E3ONggu-RktUH0T7aia6lkkC-Z<|dOkPPN>rPn<6b^T^kZ)6@Nyjo7pZM+BuDLmfEjIM|OLH8F4^>7MIAFv3klAJ1v$i)7FJXT_MG%Bz}AkJl7d+ z?|-$JXYaf*ro;w8s|hsQiggAOlB`1YjeBG+Q?&|Y3d6-R9mE2WpDe2C5A+oqJ#|XviU{i?G20P5to-}>7T4u2G7Lr}Y54fh?ktw) z{hh`aja1B5o9jj{ec*i6c11A@Ss5|#`3H3kS1bltw%Y1ph;WdNWZetx*F8&i|m=PYTMHz13=xuWqDa^T6B-}<#|Gd*Iv>r&Vddh z+ra_(VZ1v!rMSj4NpL^1{FwJ#A@T6QQV+|R1@p6tdma|)N2JiR! znep33Mu5ra_{Tb8hpdja>ML!A&A3cX?4AN36^E8LHUYcwKKj{Q~5VA*ULngVcLVCpp z1%PMMH4ZlO_UDHitZIq7() z^VkNQpMHz>XrK}=d}&>kElPEU((d?zga;3YZ@ALjMTMrOzjr*~)c**2B>dx`5x0If zK8D_4wMEoQfOeYL;8kLxj_I`4X7z5+r-Ov7F=46QT^)xJcFyw+IRIo>!wK0(#&M!e zG;RgmjkWUp&3O~FV>3ZU!5^XQCt_b_$SH>38wZ#qJdO;gNPB{6@u}??AiO$fahw?`2=qv^Qs4D+;<3|y zK*au7ZjHcW>%REJDtXyi^O;2IYu_IPZ7>ME`KYPlY0Wl&%_x|H1yh?U=B_7X-Iu*D z3xJZ4N-|S%X$+XY5hL2?2(Fjz@|_58w~-Gn`_nS8`4AWCmGF+|4NoNGo7BHP)VrTJ zEQNE_6?37`Xkr4=9s%Q{v=_-jFW(NOmKYgje3`3v?{z4vq0R15j$xDIHMpS{`$xXR zcK@j@CPqDIX^ja)>!GFAT5uegxQB0Ia(8=Yq zCD)&Z{U2WEj9>fy=;$wu=3lEMsNS}5H`w*|wbnGjK96sC#+jlZU4-WfiFcEHn1*U; z%nOQrcDI?oxIo!J18$eS-<|Zj2Ra2>^@SR{^2?=f`(yvs9M|Qd9GwLoM$Wv$MEZ|B z>tCZ9z1N24@uc0o_V2S}^}tbJz@hNKYSv$wIps^7OrS(9X`}YX9eJfM{C^IIQs&!Q z|BTju4Ew)^{$4Hc$^y)f-$r)PjtDyVmp}c7vD06T{i|*-@!zEq$|{^T5oNd;T=Vxf zyKSV8@UU&gs{EvXgcw(b3H-{5v*myhp!m-)$_6mi>+?%e&PCihp_623FZGX(tj`1M?nJDokISuiTjK^ZtJ@$y)TY~e~2^WCNXQy>2p+=x_gHer*i zr2mI$;D&=Y3k%NpyG1nFl&_?!>v5fb6$5cn6$Ga-EwG;dlYS(38z&Aa$MA;!(I@=h zjoCy@|Nl7dcSz%KUC9Mi^Q_^hzuV>{Us?MD_0;$phbdq5GRfbkO7RVMU2M4`4h3`K z2;~>Q(;KP_O{bjhYg<|nC;yp>DlT4PP#JTndGsm#4%qZ&o&vn_Wn(*~W9 zzBh7rJ{Ax>(752ZLcyNfvwS!5D&hFP7-K6 zSH;omhp<{Kw@Tc-Pl@8Lxqm+E7sOwKI$C2l1##j4dw)_{j9K%-?hWZIJR;xmY!ydC zz1}!$pzI)h9S&k~>E!2=8^G(`l@`FhAJh@C(*CqKkWggru`5AIg{@K2Aca-VM)=ZVp^si6a+2*bIS89d#e(y7_5~G*%fcB=>ovPRS zlw{WOo=y^(TYYZBkpOFW3s&guz{C090lSNVL3f^nQ2;)1>AsQrv)y=!f~J_Ke(Z*o zOr=Y;ZYuB_*S?Sq2d|F+xLEO6SGym z^o0vd>TXEZZnBxcTbelyE8hg^{U|Yp#D>!e^v%^*-7~IzH&$iiys^-nhmkbKQL%@Q z-wq_=SX7S$s)=)BOp3ine?Ir6FN2iNO0y6|wJ)Aa61c>4;}=n2s+jy6)IwUEq_>-C z+Q^6|_8U%h{HiH68TiM8(uVVNwoG4l4_kcDh3ULsx$tosSV{j}tz)B;?tEsu8pb{J zCi|5TGS}oS|CyHW$JyP>Cq^2e%}Iq)Q!*%@qFVgJyB(pol9)uCkgk+%DIzEi6&y9Z zh-hk9kI_G#vFTUKQKdoKTx7|s5F0>ARK-C>q9 z5%J!aELDRwpFuJcjItDg8}Qa>RjEhn`)h*&e8w%M+U^E}ix~kwgL+B1%S`H3FVm#` zjl_Y-Od}=u=$AKx-#V%N6r*v7q;G5Hu?}~1$v%z_18+pZ!7wXb$+K5%v&18P0Ga$n zk}r1S_mzD84gL}uZE(=R^XR&*ZHwROJ^j*DZkq$;0OdVWVOOP*5p z&_b@0v*qZHu~Jhd262x%UL2!v@;J(qttOpo@i)fOKUS`FhTp|)kA2KtP9yGL$$t*L zCo~phwyn>1l$5_d3Ve|&YIbpcpuuHa8#IvoSObg&e(^h=rx?qBMeV&)Z^Uh_Xuy5b zy7solOfygFF|ODAE<)c_=ZW|I%~s0_HomqXsF zwirs>epO&p^BFv{h-=~jww1J?Q%rM~HnGsKCH`N5+&a-Pti zB+&1RicE@PXr>cSUcXvDK)ZX9}#0LIpjR>bJwQ;{c zG9r3(-{>NE-s}LI?P|cyT9$tP$K1{90@+%fPwYAeqTG4NdD4X4_b>eZ9sKjv2xoE2 zU9U>>-c`V~q1c$sSeGDh{rRWcWJZQ564^(jw{9ii=9uhTL^}>y!TI0XRqx1R=}b

=%@~bYk&_75QPo*)TV@%sU-!Nr;>*KV?EP+j-ODzAJhuNjJWj+v_=vlYmi2Qs zMZ$nmpwv2UzRz!Cei}9z?=_f`Mk)Q}h+W-LP=n3LNH!&Sm`zZ6If3OL@Q5Tm!7JAH zihZ}TR;vW=Vjh!j7yTUm!z}-eGhXM(#$U^%@=I@qiXk2cjZnCmtxwk{mrwrv5(2u9 zm3Y-Di&d}ui3%7#JbiNVXC`;Gwrrj^o~z)A$1GO0_pnvpZP)+1c`CHo#t282u1hn; z-+ab&+b`$8Vc`GBZBm|H$*Cm=VrRXlThTY=Y#YO9F)4{1f6H=RjRQl(&WG2GJ<;_R zcNelVd?H_$RO*sgzVV8@&+4BHU!lYXexpm%Zgu`0=K9;djJVfR_i(!A4+duTz z)+(D#oQWM|Y`3d^_q5?7Q9-28KbQ%(z)EamS}rHX&(qT7Yn&9xY|fK|M=x?$U9Jp9 z@vUvX5!BJFoWySypCM9wl`#lyjF^^O8kM<>|9GO{F{6QX*D4JQRjmGcmJ2evpJ&-Z z>oKXg6r~5f-ZcFE<2F3w8%$vg};f2KYxE#khW?aMV=x`(dTaJyi=+iVw z@Z7=7#w`;U$qq1$>3kXt(osB=`l*uJ!n*<-!Cx806Ie`^#V@#lUTpE-KTC(R*Qf?E zn{(8#KMj#^WO`MxeQom_M`5iuPuIwZ1BRZOW^=Zw#V={5&`Gfs?zwa49m>7#HW+A1M}ugVowSQ*pB=b)UvElN5GWSmz}cvu(s|PdWr1>*E3=>^`*m^L z>S)Yi!rsEPRMq4q))vo+=c(vPPi4hl&TR)~u z+B_RU1w~625$HhsSR^gfV zyttIcfPg_a4UY{RNTu6vBa$I|3>O=hiRrcKo~EH&y0B4C8#`Ntn1h$NHb(-n``zt? z>BFO^UGQ2e2G~xbdBENc17h4lHNpIzPj#nK$ixU~tWF_zWGDbp6VQ#umVy2)=Pqi+ z=(tnBU@Z&ZG~y^${#x(v5VCg&x^(;{L;aR1VBo+M2>i-*f$UA1IA6H)d|KD7;YTLE z9=3ahcly7manlI=D3iK|_LFxRkf)j31xcjAg2i`O{>le9L&IUnhEipfa<983k zZ#iRbvT|#z3=8;zP>I8c0QSMnsV}H0?7ig5H=k}nDe|K_RpWK|GNV;yJvI(KUNvW2 z)0v@vBr*e@w|)JV>kGC65zOhpRbNxO zo*$t$;J|o5^0MOF`6U12lEdv;LqJDp1S8)}B_hTu0FaQZeZTjYAgXT!6nvaz_9%%1 z`0a_%X;wY!k(^Y6TB)RWjsncH!5o)2mFjpsmSVy9D|^)^W^=zBP?Y61FNDXEFq=wu z6>k9ebBTu=P4#2v=%+$9n6Q1QO?bBUu$iX`sjNTcEL;g`VO2Cf8{IlBEq{FbinEeT%wv*h(K~$mcuIfEj@A3-KEJ@6O(bw`3&}EQN>j*AY4o ziX5{{a#Vw4vclKF_VLR)6jrIS=8@PjxW~mBOYG8;SSdaFDL|t*)qg6ab@k?&3lDW3 zcFI2ar!k;td(6?W`vRjzk~tsYTocjdK~)g^Ds;To(u-mF8ZKdAJfbR9DUr9jp9W&v zT)wc2Mw-zS>bW=3x*0{cSbvi_Q%88#M*wXW0tQ#RvX5K(*NsIEc6W<;;G5#`{WR$? z8?gGS!fN@)iTRD`AQS_NoQYjS%G4lt@XR3Y-gUBBT7EN=!pVGw!#kesCQ;8nQL7bH zUe50&-m?>;ksRKE3J6Wce#t|f55O7)dD*WiGI*Bh9XyWSbguI@fge*P(^@Nd_`oql z7%}z(khq>w_MB|ek|n*2TfmV&JyCtcRUBt$E8jXp9Zm=|&pl@paVQNMbzkXfy);Vv z*c7ge*35Y>=)XC~v_0EXkrm+Gg~c2UXM@r9TK7O757$T3A4!X^{A3jNC{HJcELe(X zyUK=55J%cWN9rrhij7p@$RqUcVe5fi$l-1jU&_V=TU`Qd?t27hhCjDF=5P#huvF{h zQ3u?I`T#vxG?P|k{7}g^$9XYcrHhHJ`x-Jio5AlJN0(?3rDc%G{!nXX>C6m7t@%pP z=6HP;KV63+IaoWUgNjeoKAw+L*{afKCOQ$VIFA@i6vOyz^IA{xxI;{Qm~zQ)=YZX` zq|>?}%QaxIKTEfkhi5mngv~+2qg;r@4r4!&`4&%Ci|xW&56%ghyzQZ(0lQ0}Z-mF} zRP3ee7OVp;MhxS0lIebW+PjskSi@o-tHFR^$f`aP4PD>QYf>D~X?b!*kykL_M<}J2PF>nhubRzlL=Q0ubiQ=guHA z;kEF1vFWgpNJjDJ0Bc@=8vRqQNVWqGSZRojPA(Xgy;MM=A^&*%ZW*;er@%qjk^uxl5yEY zG(g>)%yQn6g&*@KU2wfc|3L8PF{WR#(p&PNf@pb>C`##=K-MAn;JnnSaA)4=-3GW@S zM$OdpyT1&v>Yg-j9-mEy_#aes)+v@Z?g$POqPB;8>DN%cNnZfzjzR9iQ80t4x}p&X z+2I`0gJs9~sSL?|N=|$n?=5$sMYZNZZQwgCt`i7LNIMV}EfT%W!cZ9$U47dGW z(!5A{;u|%9O9_)J4t|wMzR~j@pdtQoj^AD3Y>=Q61KXx%J>arx$#AN11n?C^^MoDW*SNSO(*-g}_Y?3c7! zZ&b5NmOw_;Zs<{$|Gcempo-=mjs>`|CcN1Ve5;p_aigAG3Yo(xjnpWh69gVGNk zd^Wy&K;xy#bm-&$u|?F(it4bF=qvzUB=FJo)w^@Py+`#FJ^ zGff8%iz_fm_hxj~)G*0j6EM)s#bs2dO3h*$bh!(w1)_TqYDsn-tlKc;VvFD{vy$2` zPwd7&k2eY4VzocqrVF?3=>b_E{TPNKE_>H~@$vG|LE$QX*Spg29Uxc@$6#mW{X1M9 z2}2nYo7Z1kNv#SPD6?vpe3I}$eXlLRfFU`!L?e>+!q(N~$2&s?DZ9^2)A<#14c_w7 z>1cBY3=OyK=f#eygrcupzX}%UNA2Oe+=~k&#bmq>2;$|>4il@RC4Z}|{&vm?+5AS+ z&vy)(pn!Y@AxG6vVK0qa?@vJ+9yI`q^pqR<=idw=%=58pp@=YAKf@|mK*_+3J3g}y zwOXUR9ln|!IZqaUG0Xt-GfkDoYS!HP0fh=f3Hnbe2ApKj+%NoPUC4l!uV++yQ#p$~ zyi0PVrP*UXI2Kxt>s$AJhH7opBZV~Q6UjhCQoGid*o~?;&^1Sl!G}q+lQH-+;$q8) z{oFz9^F&^we3W#%pDUA4kdC7`C^iI+&2-uuTsCIG&e$zH`Y9B}B=*c~bL186Wt|D@ zD=wu5h`%XH=HiG1&hRaoN22!K=;qo?pDyrQVmrqII>HGgS>gV)j4Ytr)G9ew;~QHU z2ed7)=I z=e3vZo#GkyA}vWZNuVrRP(fFm!5!h;{92~lRNXW}6Si>g?2|28iiHtya25Qc>M*6+w5aH)j}6sC{-F9iBj>`|{noQD@=Y5x*jk{f2+Qv0DH$y^SrfdM3YcZDA!DTTPwMVSr zI&S@nIB|1_hu*Q2qtqdCQ~a>I!hiO}6@%%An00wv z96@(ek0UDgki&!YbO@b^`8my{zSaKpFr?A8yCj|+I}fniN$nFXrP?a>jle9^AUGNi zSix+rn1v9%bI&Q4hma(n$y+S~OJ@(GsIF6U3Jn{z9)p;>mDj9l#(^jPAyrDU1h3+P zvaBm^f_YZoGPj1f5M7B470P(#?38{Ak4R0^{Z2h_0;Y)z`%_TQEo^`2E$(t5Z4!@1 z#iK=ohY!1>u_fjtP3T(kayEd_KKtbb%()?;(|-8+MMSCnppiJLc#okhSoi(z#*a?P zW=cw>Ft#uAeBU{Bcb!HgI3zo$h@QQFFifq{2OuFw;t9IF{gJ~(P`bWry?fdqfIKGU z1|PORna7AHH0;XlHeZ%61xcDj7tnquHTxcdtI4M*oV*6nq1;GynlaWQUZ5&I-ey(F zFeBL?g`1#=k$0sdQ)*&v=>BYJY8?%Df4+;pjV({JQB4}{JmFV6ilI!-4Dupd8=zf5 zV(qq#SWJWl{1J|Ric(b77n?nnEcC)|+DsjLv!xE8VI`uXyeK9fk|S&>p zld!z;uJ=}(|GhCi+R6!0pd128xPF5O!sSpA6M>?BUD3>_XvVu7I%>Lk=rQ+2HYqWq z_~o#~vDFTvVMc4lvR!$$^V}P(O!%*=3qiAq5qLMW=Bw?e+8?SK)u8f?@3Hs93A(?f ziAd){>y#77J$FawI5%$hN;dDY(hVqvp?8n!_Aq34nEDwTs(bAhYmKd0;6Ye*LLby& z{kLm4pZM2IdAwq;f-#JLS`uT=S4hW>r)>F<)8!!R?a61bsTXu^D7YP(Ei2BtPi0c6 zYD0SZzIL8U(Z$$TCF(}(gu^{FzDzznWWf_TW6U_|r+$?yR{gHzXgqpl zw>=mW#(sF|h#&{@_S_fVoPcI6DbexD)N)8pkg^bbA`N|FH>xH5YLl_sgve_|ShLin2sfBx*~;N&-bSmNw-Yvhnqz@t#(=HFuY8Y=>9Wx$(iGQn+& z*r8_x&59M)5VA- zR=}|OVJ3o?%{EvsC|Ss6kJ&2XG{rn^l80b=Irru97F_A#L_T9U7B-P@jJhd*NC+H_ zyNO_UCqkP0n?4GiA*g+y<^AJfYE)XSsiXx3{_!Mo+EePVL0W*0U(e)HHUuxZ^?=(* zam{~UMM~}bp%t@Lr1-R{yJ#9+@sNt5_nLlV!>KXA+^<14<#)H5$8_s4YMuiyoO;(0 zT9fDsxgM3$vJn-7vD}KcOShkJoL0W93z1D67ypz8&M${`job9Ba}6USTOF|>Nl4#P z&~C?M69b^op%9q9DVy~oZyDl>4RKA2;-p{5w&odjt+FecL>g`IVBg(-m*?4U%Y5cH zOfe1dKTexJX06@yjp%AhYY?|LrSEo!`!I|fIx1y8l^~fLS?`2Yo)uKh)s8} zZbUtdmf8F8DisVA*E4VoQ{Sw#A1rrxlDBD^=RmPczkDXuH3$;oy~!wLDYLOq);dHL z1+Ke>JFkpQGp5>X^;9k&zXdssdo(T5dFA^w_VE39FEHbwsmk?%+0oH)8w|#jK<-lC61027*?vBhTmmHdsmj{yZn!I4f9(;64v-H~#?(4fS z__#NTb{OhD@Cq9Ky8gkZhd!vgOMwit^!lzwOSwS#33K;h8=(50V%z5V%wvp7r&shw z*m4DK(YUNQuyqLm} z*&epz^+irO5qP?ZN&w;e6@LDp-**_w2#QHrExdh-Xoqa6oOUSjI=*Z}94~Y)XQMF5 z#+51E3gLW2tAi{~8HyNU58Ip|GNo!4;YJZh^f&UYuX$BI&L+(F_3&vudQqqF2DEv< z&w>&OyRzT~)`Ea+!KrSf6gbB9 z$|-p$51E*KnJU!RFh2(u8l@zaXug7^dOHjll)3(Fl=7x=Lv>Ww1Jsmv=JwsT5opht zqu5J=d8Z>o_vEgNC?LTUGm_+vh-u$M0ovA9?)TeEwD99$LUSagPIv7`fhJq2Aie3O z?E&*d?HqE4oR8M>VE`1Zz*hm^0PT{LC{`$TS>uaiy9d8#b5elh_^slUPj8qu#=owg{ZCeG6u zT6O!8srJSdNCL6+6LplQxuAy4!rKVzJ;?m&!jk^_#$%%8&zTf_=~;=CGfjyZ$gF)5@#q1h6=TbYDs9z&4^~c!R$&iJvQLrSXG6r)5Q{bH~lP{(<$81|ieX zn{Gz~c3DXX=-?g`hXjk7WXQa)l}R+i6yZhU=*GE4ydx;$DGJb4=ULW*u4Ec6Z9S!@ zWpMI5P`H$>b;vtN6r_M#g^$9|KcjA|NjDajVfWw?Jwuov%95(m&qJA}_x{1T@)WjU`gh=eCMlG*Z5H^#GX!IWs;VNb%&Ribi#K}Nq zDp@D4>WSyLO6^*s0a8AGl0t$0lbR;P`*OX^_2^0cbxK*q%|+P;{6cG?edZ&kqeRK{ z^I&*vO=~jJ zB*wngi#}ohl$vPGqc?#~TMHq3X=1RXmQ>%tXMI7SZXlvO9|%i`CG^<&U7lH1&kR4d zy|By>7AIOM5zq5Bj*Qk5 zTi0|Z!uOZ33V0Od-O>>`9R0Sx)aVuJv9ymFhmYiSRLk#zwq_A^m}%zQK;ADf496f% zP@yvF&id&%$Z+282x3NcQwg+%$`ZGxUf{6dJ$js-A{W;9Y9#0uNb!5XwhtN@a3Hg6 z`Pvg!O0@_sJt9kQygo2)B~v3__IoLRY5P2lZZ6RQG<2*lLbUHX^a!Mk{csT3ioI!9 zdOr%RpONC~Uv6mn;BH#j=uF8MS%_;^lWZ;UMewF5Gt68QRC?m6-tBx)=h=PxKvWOa z(HPNUJ;Rb^TT z7rj16(2gvTsAjoycOz#<{N}CV1NB7^QjI86b#ND`v!7cxCaRj>e*v+LHJnLCeR1uadn77Ei4ti}WQkDOyi{CyvYLuv$0zb*$NG z&pR-DY65k2zy~@?7M4AA&!0t4hLP50(ulCqhn;^>gm`w|Xz$>UNpjq3HooN1Eh^pL z(u0~)?(GV!=*ch0uhjl3gNgwHO!7k7lG=&5+Y-@ck9toM<{vVZ>7f;8N#*C-w&m|EbCiZB$FoA&C8?GDf|EhWdZJx+`5Egn#}wmQ zHd>nHG=iOA;YwO2MUwESo&^vU^6Uq4c5{y6X5tjk1*=oRXOj@ zvz;yT$+B^ZuqQ1aPtkYahM{*o>9{@Wso^NCAq4pl4 zwTnA=)wa(viCJoyR-SZjE-px+(gM$jHp|Z%_gchPCdXt~prpJ%18Vz}A}1KuQpY^cf(4tQJY%#=qJd%ROXQ^4Z@oa%l+fGz5zBkOGTfgZ z(ZGFX9YGfZe#daxsMrf+0CMFzwv+Mnm+QreDz-d4wb6@`v6fo0uGcReZF+y%{TiC% z;d!i3zaJt(khv_dSby%j=8K&73^MyHrfW{<^J|hPbaG>=$79yIuL|6Ez4xaD$95C+ zn~gM65S!K8?6T30fMKsTNf)qek<`jZr7)6#Q;D+N7c`zpzlOG99;_xs?{PKTUZ}OE zMTtn1O%foZ?7yPNy z3)C6%t?{Kd)~H!>`X~bNK&NQcU!SHA=zCr(k@(d(5Hm@gapeIv`*1>m@bK>8L0U$u zP|)_bVmT>yjAxboU?&I9@K8)(>Ty#~Ks9Bs%q- z>P7H3s1z*0``fw+xx3VPGeuWLmm~!a7O%PPF2E~(f+ReQlAKCG9aWe0^R*dVEQxWB zapF^pVIw(kKR)-|fOW$+BC98jJ93szL%yEy#?O`=<_yDln{qI9<+BEklJXn!7d z?T9)tDzrxS;9P^@`4(RrUNuBXQ#ws6@cU3&qe_b(F{kswd7PNLXMr)KWow#>_Jd)w zPvk@y{NclcO785dhZ~(29_R(*5{y<8Wf@n`Y{tY$#_<`eU)53h?RDPn-|K*l7mx=g zo}Qu3-rx!c(|gs6!k*Ib8a($oT;JZXIbNHtSRN~1>c1+NYJ4@FK`_d`ThLHL3kh2$ z`{8{2I;%X4s??-m;xQ>iB+@J3hbn&TOU9{EE~skK2wjY4N&NuCk==RmXTAF&^%BX^ z)=qE87T4VG!N=Ug+(E6lCh%)S@@3;H z1s$E&SNil9kzqH$yL*2AYFuu_xDNzrsCvB+H}OZ5aXgTSWFcM1WShMBf~MPZ9lQVf zUjQ2-pQY2a#cOSIwT%t<8g-kEYaPm3{f@TBRAgLGOp!_yQ9|G%%J-)@~9Vyw{vMd3GflP{qyZF+( zc)9{P2nex_piv0dwT9tu$H$3|u%cANAh5srbLZ!E5(ReX2VI*M=)&NIgKp?3#YS+9 zO|$K%+ddf!6~Llu`w3Z+=?K>d{UYoHy{9vE{Fc}=51-pxDAFeyUj>b0g7ED8DJMDw zb9Dm!>|vw{#m7N|`ei1Q6f3;30?`u>^^G8zWd$a#bIIZeE0*#S?fM|r+VeAKsRGr8 zf~G-bfnbt5KwK$-dV7$-la{l<@uo=3au{lsrq3aONIzD4a_b#LhJM_*nVs#aX3p*Q z4n-arZ5lwXdWwx*$t zFNg9El;NdmQX9s*%fD-Q7D~==S>vYE9I`$Pc_YB)IfAO`=bgn7YPN%H{IAbOt#SGm#Bu{YCH-0msQ<16Xm zeR>SvIJ7*_+1cwFH1aB>>hau0HLY?TE-;yhlo;2HRlXu5sQL2NKRdvsgD~B-G)2(5 zvf+La7dG_f0iP({&B5E8=+0rCP+KR5R^n zo6VX7{4|-&BJQW<7IIE^@4B-!`M(OtL#0mgKqywNOj&UK4}K>^et2JVq3+;hNo(H^ zg$y;^Lu@@8ze84t|=bdH;Zd2*W6Q7yP4-krTMumx5`Mm`eP??%PHB1S1qT| zLci3V7zg2GpUP$!`361s1mj>>`8t6dT%Wvyi66>5zOby6{q3&y{iTBS zUg-YP)2aNe;4FZ1;H-gK53O9Cs6^3*qpVSM|}824x4itpep%VLgddeXLn5t)1h z^j(C}#a;3;c|Ne0)XJB;J5^nhBR{rt#myN{$s;eE%u0^T^EO5>%rba>Rd3TChz3n2 zl6nmqog^ayy<4mew)56pE&Q-P`SbZ;z=2Dn%vXdJnzet;_vQgeat{%4O4Lwh0KJ9Xs+Hh*oOQDZ zI|UbF7-z)c!|tPF#mm5Se})6Qe4}${zP6H4p@+m2bgy#|(Ed~qz>+pi4ps-0%yCn*TOEGYJnnW<$@IP2w$xA&Bv{;CE-?|yz8K6yS!P@1~+4+BJq<= z8)2D%af>>bc)e?f=Ld(|jhhHr$Q8}@o+(ee_o@JqS{fV6ziAHKswzsUZ(27ZcW0Sv zx`GPZpgUR87g02xuSj;jj3PseXkeKVha`S~FY-K6@1 z)MTW-J5h!V#x_^-($64<`M~dJ#%-)!s%h%ZJV(RlU6?q_LkN|l_U-pW_TL~4AD;&w5(O0H$z}MsRPAF<^laH#uP=EtknZj zbkqAZ?l4hs-SdX)L}nxQ%$q&in69P)nOw{e?1VWTZI7^y-#CK8D=nmPoyOx(t|bH@ z4jqPjx7!(6eKnn*D~^_h+#R4+ucN*%nKu4(M<+eSr(q^6(z}j}V!453_#s`{lA&S| zkS5(bWpn9p!5*x>%+xVA**oYp9hEw1mFT4Y z_Q5j?W`}_T*X4DTfhB}xwnR;2s&Q%NvfRX})-Yg-@1oE3akJ%3iK0zy5%~Y%?k&Hv z>bm!DL68s$0THA@ke2R{MkGYKySqCjlx`3O1w^{LPD&b1y1TnOpT!mT@BZGGUVp$d z1}_-Ex!JMyT64{L9G_XUbtPL4IsD4#RZ)OZhw8+g(*Cr-G<0=%8Xc1Lpx}qTuWR|M z)#N%Jr~xAakO;meeI);>AaiTSDxNUb&Z}X?L3sIEz24m)b>)*ERQV15)4_D4uC$e! zu~n#6#7y1gdJF*=w~?)(Nu9~OZXjF8s*x%C_SLv3yXTcKZ`eLAUAAN#Ee$R+U-l&t zzh~3arDHA~-|FEEQ|yAd5=LJP_nFFlBkYL$+(U}AZWP?&PTW{MbVwXv0Ej>l9E4v- zYSi4Aov#<5^50adXDj4ndHQ#xzVmdyc2M@DzLN8|CrPAhs| zn50Ql4Sap2cfM8fv%2%?s-D9pAJ-XRO9)&xepM-nvsEmsE#9cVI-ud@*W-&!44yQ- z*%I>!RQW2knlD$UxUDQ?y*;6DJl8tE;ltnSq}uWc{^P>OmEI&J{=L>7e|IdU9!JOa z=$o4(mD4iY(l6fkOYhMS@T(k@*>4XjA%qMXh%+?HS2LuiG~k2=ev?c`+4H7MM=09R zUA)mQ!!ODrB9uR$K^Qz1B911PN|jTsr4I(495H#*7;Ojjg2pI)&O7B;stj?thu8UhvJcN!$_9U@q zL)qbAmVsx+wG;T-qwx4?+e7Y|0_Rft7uSf+S{JF~W&|L9UdA1D_VcEN?ZB4T6#Ri& z@sQ*!*xRx#Z2P%FcFaML>7$bww?%`2^eiTa4RR{Y+RW}`Ua{{GV^X#9tK6G%&Jmbb z+W-*M)%VTn&RC={=NivqGVn$*x1FTQb~%QBSO_m79_(5onXI+>zf9tufAKn-e-Q9`_Z2K2#!*q^RA&qz1c2bplXpuou8W$+IycL#h8Ln+H)rRc}6059XRL3^& z!kM6o*35WqMd%G*a24eF>>6i<#=eQ*9ym`r6xnzcs>O{B5QXwbU_SMV9JZ+wjic?l z6U?JKz!q(DzaHusgLce1gkQ&u2%Xh+O+2sl2qiuOGSH2=!xqLg1;4RU+qF5*bA~hg zlQ%(oy<|LtjQ0o#S(8j65D*A#8LGAcutI1g^Ye$`Cv*`_{wX8Tp-&^<0%lLC`{nlO z!O@^Uez0nx_P5@=4|DXEI_>~@v;pHGGtD0Qmc62a;!VO!>EUmcKk(sFBx9+w;w?^h zc;(W?b#PftLoDI93s8--K1*LCM*|ql^~=Wh)Pd@NF=DTc3uA2WH`JU32q-zT>?Q-s z@TtuQN_yv*ISgeg!`pR^oS!45TRzLBhq+dc15@<7c!L|KRcYmFyV5Dolko$tz)}~E z-;unC*&d!f_|}ii#pMSr)JF~@wtVYy@SfM*{B&nlJ>GRodCU*dZmE4Ik%D}QkwBi$ z^(ga4%Jj1(v3&KaD7_t{H!Cc1&R?IXiv8iQA~Bu;j-+X> z2`z#?Rb0BPP?Px24?1A43qk!6_|h{~ zEupe>%qn1XbSz_3e%1;_(2ImpEiwmO# z7a9t85Rbj2|auhOT*(fNHm ziN8l;R=*3sC4BQVHn`V^MVCgdbz^%E;0^ElG$IwOXW%Gxj>$I#}1o&YrW`eSUTpBttcu5C!k*LpEQsE0B$qQ;RVhnOWu##CE73yWS87|T z-Eqv5dqPl9wm`uj(?W>ak7xuKu#RenXKHzGE%v-E8C(I7}eI$!fXf#WGg8qHEuO<&Bf)4J?ppszNF80OnNezTy6fB}<{u zwXD>1SkSOLfsUbWNOoh?DxF9@2;l~ou8`M1X{OZV@Dl)MyyL|xtT8oEm*p2mH(>?- z&W#Gx_Guos6Z_+c78&`7%EA~1EeQbhVZcT~GrP9<6zUl~GO>b+rrhF(IA3DBY(t(xgNrc2aiGamiB_f4dM z`t0**2j$Opq%Vr!mpI%`N}r;=2kEfxwL? znJWANKJVxKb<3&BEKx{KhNLkk?g{~(>vSw@tG`jPeg|!rE)+qDnCay3fN1Lk_7XVh z=$#9a*@z1H=fz&+^qM5>o=vh@MZHNZ5s!1Ln(+t}J36%Dc6u#$toKelKhsOjQh2j> z{hwn8&95Oom@k%`pM?y%Uyg(q|VOfK=b%SAguV-FXT{B?}Dj1^~*luW7iiG_tZbM}vlqBr#* zK%UD$Z4V|e-orJ}!>a+|msQ0`CZ!)#Ru5+y7G$mBzCFp?gXY*XiV#7mI9w{%U7a?F zY2t3?42P^knQhyNRcftYRc4eWt^H+dar7Hc`RAkaxd&Hl*hP_8q8~fT?SwHq$NZ5| zRggc!7s@GU`#{#VMa*GVoo(Sz7wHd|+Z>s-vkZOce!^1scKy#Y zKhwtLe?kO=<>wORzQcP-6ZrN`-#0$rl2;^d9)smVrwjWNAyE$Nv@=yi5CF3>-zHD! z{41Ip&lxCR@}F%cNQ%QCx7hkjR#p#!RVqgu?iFbRmI2An}^ z$er3A_f9Krq6ta9^W~sj-sC)YRW@E@y>?lwF01Z+S`QS-8u4_H8&aS;k>x6NR(Q$h zJ9y_tqJI8y{oLst8sGJ00YC5I+_PV}_jG>%vwV?VT@i2$HryvIygjYs>I>E`*so}z zJUz_KdZ*vI^x*;qhKAiDR`^6#$79hc1p38q@b`NfL)) z1Hskv@~5uJ*pULra+Jxt=2xR^^=n9{T!_KP?soE1%De{YjCA4gVkXxCEZ*A{i-~of zt?ym&@u<^o;{A`GJ7~L(lu{jlu)5gvkS*)Poh}xWKTC<=>=!<9pE1e?{JtWqFGa0) z*G_J|y}`;^=>-{m?0*3lw<>)rfZ%~iDNTBLx)TfQkK9pu3hk_)^^9)%8SEw%jMkoW zHP9txe>-uk83nv?F>%}6YhQP}dek;Xy4u2S=&BBv_TOACr}`fV-@qQIwn(Mjs-Fl8GSxv zPofmJxtv=iqS^AuUw>9+GU!c>dv5-Dn!9{+9V5k^0!TAQL@)XcU%?pB)DWC)Vx4@wxh5N>~S5yJvDR<<}eba z0?pXX(Sj}+vr*?(vxyDXSHz=Q@j$S{`&t)!Pb8klU~E;bq86ZnPWvJ9b6gdKZL<(8 zK7%c}#>JlxSGs0q9lQ1c8*!<^a{2%ZGc~zzvmi&g?32BFTA(|Jjc*7(lQOkZ0SVBc zkWjt*e!xx@_zRLNx*t4j*jPZoOhgj(-e+IN3hjSzj0gzCQb#)jJvL z&h-Vx>ri z_$z*&@p;Ic-Nz*fpa6I7Cv<*y)HWNBcb2 zP9-W2LcrGL`PH=5!sp`++b3S*69?^| z-WdOg>mWESEB41<5|aB+(5Xt)W z7QcH*=#tK!uSRp{JSw;=B^=WKRY~CQF3dpwm~wV$b#Bo7fYarw(hB41%|G4L0<`Es zVAZzVbh&9#koZEa5`rS2hg(RFL$4Xjk`-O0K@N5P3(L%tat;V8&Urr>`!-!(i;_4iwd~qh$aDnPzoL0gcp%YoJ#asaZ6NkmGtpszrYlr^Z1x&Jr>C3QydU!D+%2|vC+WYne*;z#6}kx(hvR3&uG^5g zqJF8H^YqcDs2d`XUgmw$bBQmGKJKJGTdW&GNF(^4U;h(~QVtvW#M_h0uK1FW z&sgnYAPgd3#fwjkIw+|B3@rZhqKq_>A%^&QSki}ojo`3y= zAe*}nxx~g$D@X&<#K!qUqzkAJh3yTeS;qMLAj z)jJRrbDXAD%q8Y^a~!4nCIb-BlJPe$0J;QBAuQ4TX<}Tx^_J5(@(;nP4dH}*#u``_aLjK?{W$3X*zMG^~_DH>65H*Ft6Hz{?R z;JEf`4Z5CaTmu5nhW63G_b&OawF-Rz!mYj?FELt9@sgGRjBI(D4PCAVbK2ehG_Or! z$56asgT>aA?$loONy-5BgK=029%9k4bJKfi3IIk(y!ZmEv?}Z$Gbp$@{ zIB=?NPZ(SdmVg97jB9Lb-Nbb;TjAjy(DCY^t3a+;AL;yT@f_?E4YSm%QUOgyqe8bg zg&%@Uy{qK2BwUSs1oF1e0iC8g1|%#bDlEV7J_l?_$=+n%AFv}e4%!!Be}00p_^bH# zuNS)UNzlMO`w!+F2By=Wi?13)x|TCPbI0<;t~W{{_{igejr1X{+eog8xgYdt7C<`6 zRqhQ|f4Bc82*2EnW+a}%$NSv#>dbef572R90JqAeGeL8m4Pc0|Qr_0@W+^w4fQtW3|@i}eR_JL1bkDCwS?}_Yx#yl8D zK|ulnbYC%_hcJ8_waO&6ib5>&4HNg@&Jfu&8ltmFg>y_3R=FL{8AZJ5`wqy^5q$U2 zU~?5VU8Wf#yqv|gK@wSiD3fuZ*uV~&E)x8t-vIULUIt+R43u9>XgR2N0k`e62kh|` zUe*R$N`&g%5!3p8?aPVEJp!T@^qomU}la$0Vu5W*>KVAAD~WgiZ&bFjfTI{0t#J*PK~Dk2YZLLO1R|A$d?_V8GzG0 z^dvNSL7VWaCnTJDcQ4+e!8tEZS3V!Tt)r^Q*9>pTu42G5VedQO{AT*?`lTZPb|V@W zg|ZOBNVP=%GcWM>+yeIkJwJ#Jwhqm#kX=A4?4NPP-^a6~H zcCY}7$ED3A{m)1E_kp}&EdkunF|EbspR4NMXC+Il4S0k1DHh@W^OOG@?c5z~?vCcg z{u)2<|8J+WP=otn@n7BrI@rtJ_nn{fei$6iDlN^bIq6E4=?U{<{tT!2NhC$z6PyuW zyB;N6DGm6S2@&wWJrbkHy~b5(Eds+i&d)S(Fqe6)k93osZlR6d0-4^n!#^bUa ztd;B>l9;`63oReW07^6(aDg`<)=!!{{?FL(xh-)b+>?s2!uJ|;i>ae>^D~d2D;BmU z*;9IT@)#ZaRGZ^%BMh~W3M@5oX1kn#4{Y)2jN9(p*SNQoGCRZ@+>(U^S8Y_S^%uMZZ3{ z2;gJ-f0y^4>-?{87LvV{U|Fu>?lWGFHwD%IJWdZXo^@5ew)G6l4L_O8b^V<3WwUv6 zZ_ipOMN>(L-j5RCqW8)l%msSCeGu7j6bXq>K+FvZU70 z(K%=%DltD+K30LEa&H6!{G#f?64i^%Q7h}2r9Ib`?pe?yfFg?Bst~AdD?*AYPXRY2)kNQ6#}k0h36)LOX>hg<;m zcVB?vWPQz|YuU}HY4_prPlK~PhUKM>cg4>8y5~#L&^vhK!Oi7;3yax$kI8bBMxYtu z?iepwT>_PYIDmy6FZVc|M(hBd-0iYDc;qe784stgA-IQrlvZi^Du4w?R zJRX54*Cc0mzfH~b!I8_P89f}IkCxXLs>+1EI=4~p-K`K@NCznL5L_hEsxSdwT{IRo z7VRB38PrBO%w@zG_GVm9r(tZ5HxzJR&S@~O2s|a?GYdpHpHlz2Ia3#``QGgXdi77f zUkr7DR1yIgt_P^Ba6dj`6TM_*x0q1&pE+i7+HpsKnJ|5Ff(M>gw)uFm!b&X~4XV?T+mq}+4G+zO|DH4c>s@-x3nMm6|A}KH zPmL0+<+ThC(T6o_9HpMnsiu=I%T?L0M^RN6_TU9RA;HtVCE#{!2X*RhCQUsEC|o4G z5f3C-=m;M8E?Kp`zM6u@oZ9mqN$Uo&X|-?)*ve9Q~smo$Dsje zw~7&s*MNC0u|9zPrsl=T>Fh(6v>N}V?nLO=hp$$M%E_R}s0dI10ipEweU%QIipQ||yWY;APUqXPtBn~6nt}j? zXBkFJ?CW1mSIj{ zQHZBB>)lo8Sf6w)b?_&4>s?yzOjgVy)`BXiO8vEC3SLfRtk}sE;@T0^`nD-sEu7 z1I9iU;!29g$%op*-lT(0nu0_GrV0cU=e9E?vYP(KEhHxZWja{OX)=IC#&&x=ijV!( zP8{ONkQB16S?Ah*b?!CI{vc?gknWXwwSB+7^=Rf>z^$lHW>D#=+CPL2rt7t>DkR*f zR)og_!A*{`x@5BRf=#qTnB8V5yJkt~C7APDSKu6OPG?_}m8Z>;iFtwz1#L_?|IN^u z4&-ElrnTf*@;4im0te`C^AhK!b)(@zi^M=i&mf@IDg-j^U&9MKjUmkMHr(E<8n62y36M0jiGU2n zYtM6oV)L0=1^#Ec?3Y~htzB#q|MeRF`RsKA1>}Zl4-DT>1u_Kul=j=N#D*aEJqf%^ zSc4j`y>2a!AvVt|k_QuF{>a$mJxKHm zI)#o6Mmx-WvG9lDj9~OpuQQ#PQuFbqZ(Z70gr0-BYCutMxWTtvIPF^Gc1mbBS$%wQ zvaMGAlte&nGu1T!J(g`QA7!ki`sP31Nx2>{*>|CX{Xtd zMQoBd{=+wF*r{Z+yu=5@$T;-5nAZwSU6sz-@L~Ms60~MffrO^o@6QGOee*~o`N-11 z>ewc^(tR4nTd4|AtL%&Zb!MZMWGh0YXlM|f&0vLI*MPn7deGsZD|cfgFBl`U{?al= zz`J|_Oss4;;&)wXq&~3>bYJz1Q1G>p!l*lY-*O7Cfma%IX~Jluds2g*mw}9pJo1o$ z>}bl|c*BQIS`hQAjr(5W9Ca8W?}n*EZeH{1BSMs4#3e!WK7ql8ah_#%lCAO`Zxo!4 zZZYGn+SLxxI%Y~n)70v^uGM0@sAj8820eQOpqE`x~FflfAt%#~`e zr3!@55jvp$!PI~5b-Ddwy?+tDBZ)m6WOf?$nI}ha#+gova8lkn_IxU1(rF^s8}+>* zvz$R;hrYcI%-z@h`H>4NM}8e zT3^igfn_TZ-yXDhSn zXbZcovhCqrT8$OHwf1>aX7isX+uXS#%=xq`I~tiy53DW%J`nZqM9c75QaHm^fKV>6 zLliWWp#@xQMvKN|$|ljw;;>^+NpkhdiAtO3D!uzot1tF{B;L(En)TD~4H zeat~@G?bkAaZZ`>pHuK-HlKR5l_x=s^A$VoTLh~HqlvO$N-Sfc!5}AMqbIiTn!qNz z=Q`R=$8JfOcF&^UKOqvRh@$)5&-Qep^H8{vgJS3B=UXQlr~w2QH@Y9i>`_ocyQ5?B z8_V09Yr|)>=)~GMFJv1gc)zCfkJfv*J&VMeY3z!lQ+&mD>fzC9vH3$Lg-y_5rgl%% z@e7j2Y?x-Q^Faq?y4$Jdr&l~+4xixMLYhYggUe8#O32+`1X*`5gKlM90n+n;=*Ev1 zA&jv$hpv%AQyH7vT z7?2K@s1a&1!e-bXuVXt~4M8EG_X*CUXMFlw23rhMbG^YNLVWQUWc6jk29Uk^K)<_u z2Wm=lA^OJX?u-VEqRY|4UH(nxhbek%n5iI274^P3gpQj=4-QZKWCvNq@^G^)a1(GfW0ckNiGfqGy6E`VAy* z*ZTZmnYF|!@BXu?Vhym7>S>y^VCo?zk466^?+SweLn&wfGEJB z&u$-(s*5qI#8TGstV;RVX9SY2d{Hz?(n&wzTYc1y0n6Ut*<%j*0?nRU(UWO_R5y?2 zOGOP*S1B>X2&z`(*>BN1n6!dO-rf`>(emp*5VXJ9g(w*6vOB+MmcjEKcxF|bhj~*+ z0r2I~4E1N7i0T~4?H9q)0_45|CxbGO%%0aU%q}EMxoYL^LqQ6e&q!sv;(81~$Dh^> zSlqZBSlsR)!=6vsb>etE`Go7TEMj5iKne0VTFPa<37#4C61EW8dEvtkgS)&{?K#<9 zXE(Ev3v=vQ(w3K(#p+?)u$3?U?QFNk_C?)M?Qe~o(qE!pN?>gcWi88M5w2L(pNFXg zo^CFN^JfSeG97Aqzr1dG=-~hh)sEgbhmh^S8V_fOdWJn2>A*{2clt7SU1Dz%B)w2A zzRPsh64Wxn$56YMdbQt1d-zzT6HEuJDFq<(8VuI&8rHhxU97m>$ieVsrj4TA$9=-G zJ;7_VlPN(7-+2Y zf#GW^H5tw5WXN{3Dm-)hv*SaFjG+$sm?z`TSJ|~(tKL(6<{O{jnc6px4_?boAZ9s^ zuFJ0T*`>($#7ob3yntj?p88d#s~vwn7>`OTcAkB{uFe`*N|hodM=4{*pEBNWD&|Jh)fXk3GWar*`L;P|y#0MZ9)hI<>QcklejzOE z&q|xwu6HtJkurR^q`P&eVdIus4-ELvv?D%ttbX^nl;)zEHCH1@P=<0!r|=mn`oE`* zF1JW2v9O%w6XXGnBH`r#BYe^|Xk_g^lQ;<;2_~M8T0i8%G=Z)JG@CP_@GFx0zG3JF zIw8r|UbKwhlnm_fUoskFQuM`PCvfy4t4DYn9|A>Wf*mZZ?Pxx)eK*lFALPWjcDa@` zi^&ny{Hh}Tq7x_2fE1ed8Me#RpQPGD{Jko%+b>!zPFc-H7;h#|Jo{hxbs#fV&DHFp zvha?&O&MsQ3<&8o#$XND2QA9QGYUG;)1qVs#izMIOTD)NJSr@_YvwhBP3?P?!wLodAwIUOyaRkMF-@Tp0Q`1K4^c@ ztI*(dp+u*_+o@ZGX7y$a(yD=)P-@@wp2&g?-+3Fq{-~!OHK<|krG9&xrG@ZTmmV%= zi|WE*5QbJFqng1U=W#n3-R{S(*-sxBDl8@~yWEpOx4CUgeEm<0mN=}5wwEd!=wzWDVPAUMmC}Y^nR-XZcrK60O(EPR1~TS zmRNirgnb{L*{NLf^@fnQIuW5bG13Fvi`Ql)E}nBf$e&m_XYrZME1;)g0igNQH3ilGhqpL%_em`DVK^hKUn zX3J;ce*^*W00p1k{h3XWm6=5BbAA*|rrwvxVe?oMkA~PN*%`9fi-6dN=uAUK#=*n0 z;7B^vXnnSa5$$h*yyoRRdrsrNp5!sP_HZU;yx5>bi(tK&RdLHN*Y5Hjn)-{ik-Q&O z@8BjaXF{}n49<)uCtq=T8Gb|Y`{(khgCYKf^n>w2u~-~lJPTR%G((M42J?$r75;(@ zx(~Gc_A1Cm5}^vV7p9f+-O;_Yr#E^KmsT&cFwMw}pUjeppG}q*j@60+3ViV)LImOC8A2?v_b4UA)WCEOG@DpI$3>^dw{ zDc%0KXWgMKXuSJbY2U#cyPyZ(6}CG934jVnlDut z8T}KG1k%7`{bWd=$$PaY)C5I;#zz0YIW7U;=iVp=`b_cN$)b*#BBJ^>2d^uo+(oO@ zaY>^Dx>i57r?zqh4b}9jx248(Mv7|Ye-T4|@I5N#6Tu^fHLN(2QmXkgtpNFs<+uqC zzTEKv#Vvj>4YnL{f*>1+Ek>y32xwa~PzRQ5yV;Xmm6GgR>%q&BX4hsu;!kWQ11+A| z@rxKRZxm0)^yr2LUHw4g<#*TlHP75&R?T~zS;!q@;nW{zzD=v{{=_S+MGUM3Z^469y^_bDLMs3)B&UilVYZ^i{&IWkLpi)@{tJ&PQ5x$ zcBYN88XEtrnHL$lPm3li}Ib?#NoHoo#Zki&K5I$ZV2yfguv(WaFnd54ySOO zNHWv$eyro_qUP6<4FD|mG1-U zlwU3w7*JXanal0b>X3gvq<^A*xHJhGVc z#9zPVU@__)b1wH9`G-OFlvtOE0)dCU*-wnc-d}_B5`PItobP#k{4$9bjslz4l|}dQ zTeFBgH?aoH=^3N3iJh(zk7xc5ahMe3Gi7IZfS5k=d{cdwpw7YQ@?_hP)%|q)KIzFJ zwBnuBS{7I0oUPul&o-G@SUJPWp{@PJidh=iw6N4zPUA5e%53_~+8wU+=pU`^4rS}t z@PG_R$)?wB9u`f`#9*~@*gxk)PYi(vhY1Rl&#R~#W!8ng3r2cq&{K52_d5h!n(GI( z-+zK1#X=Q@*Z)+|{(J4Z{$!R}@wI%Wc9Y;4&+TMhNTT;%_i$3H6`p-qIU@A>Zx(=7 zz0Ug`RcZl}T%=eyPHj47o5=g~RHDQk{fS5og5 z)Q_JsXB%|Wyaf66^TlwLVlySLB6>LCvXtu+(1E6dd$*SAUB;EUqMqQpf0ma7nke=b zF9vi!KtCSHTs65LTtuDybn~2s5z<&JXwxy=E+ESuJPk7YAC? znoD`3I2~-OY!~CcqAb+hN+%%Xauo8hT$L+mH1IOt=bA%B;ueM_kLW`j%25*2bT6vF z9l1-Luk|rl2))k}0{if8GiN%`7QES+O%I+ab+tQ@@_2)F=vu3MTMx1~Wk;|Cs_ll@ z#R)&8zvLf#>1cw0O4QfSug4b1Cqf<}XqH;dzD337&>mTYIBbqcp6=9jZ$5th5%l2X zF^mH#VuPy`r>!v)%|-qrlbtD-6$j8fnfGx@9-lVl8v$etJi^Xz-!P)t&IZ^AeT=V0 ztLzZe3@@0WrR*rV8^Fj-4r(xpAilA}jK6Dg=5cXUa?Yn_VB?;9kNX$5a)J2Xvqwhz zi73iUhf7^j(eRFv&8Mq}l{p$R?uV0#Aag5o!NJ3K zgg%>(VlqGulxEPtBL!J7R^1KI(#K*3I!1KUstAM_A|Opapigf#QL2)y=+Q^f&@_k( zlVTiGR9wP;bM`KpH8jNZ4QM~G4nlO?UHurZ-MWf>ECZf1?MF!ntW1q`{H8$%yS0aL zX9E>4o`t5~qret6bPYuP(&G#oKU-eJG8>^H?A#@5SwXf?#Ph}_+eN?_SaU*loWxyn zStl98fIdg0pPKy_HBo^DvN?qZ_F!*&wel7ZGcz(V@Xy*LaXAv$&6A+0L3_7_I0%_n zxRaiXf=!17ZbL%Q9w?tFng!zkP3DxLQkP7n{kq)2xKWC+;bF{WixJjm7875L91_yz z*86cp2^@O`kd?8G;)?^Yd3lPq3O3eHi?A=}d^{rP>I{33lOW6|i99a8h61Oo#|?{T zqgqCIMNd>FfpaPbO!6uUVizbByAb|9#Ru2#S;awJ&3vaSd z%|oX(1Poop+aU*FJ+?@#{87s;kiZEM(FD*yBQ2 zKZ3iWarB?dA9=(W5_x~_JmMlcn)p-%Y9DO< zoZX6M>+B@BCJss}RZ`sf{>F&VcK6o2)k+HF{8q&X~7*LDB-1^y-xnVhYZK?BUc$U(qSBTgb8-I6ynL#|n&=l>aypP!gBD zt9%p3f&SpfB%$r^MKcm`kcJpx@nJd4+1-2G!y=`NY_`#%TTg*SdF6lWvY&BEt3 zPc4J=?|;pYvB!0PLT0-d@6W#@LSnI+dBbL<$siF;!FU7ZQ*568XBPDCC&aBtvfg1f zE#`leEv_W*DT+J4{LP>CA(1~iLM`_C#n}0;a`k@nJ@~aVm#Hzce>rCyIJxIPmeyf| zWpb_>qr{pikEXyp^pDcXUq2y6M*^u1KJ*%FhRY?iIIORW%ioNC{Ik;Xp9834IM>@c z?u)JD=Tu`3a=nD>T6+M$w)S}G=3mYoM(C?>ISbQ5k)Rwm2bsSyQ5f=jqr&?_g&~&Y zRcRR0uOBzvxSgg%(7wWb+$78K09+nBT<;eMtqAh6E#Qg&?tHGKym9+(C^|3xb9%r0 z1_cJWkI|Xb`IEXQ=!6Lr0ac(?FvSD6MMyRct+F(^ale0B-f*z-UJX9_ynUi;PMn+Y`$G{cB7)Hg(`~of%~)1`J$sw3ad{#dg8J}bNf{O) zA-xd)t-9$*CP^%{V$7@i2ovR@c${*{t{YT745ipLj@wZIXuRY#pd-{71L*2Gwxw1q zjI=&n^5ZkNQ!f?)vtbAd{!4*?N6!q)mE7lG2E(4)rb)+`OjQ~dSrICH($>888kW6+?rJCBP^FnvPwK& zO_5WtOU*M*U)WobN?J-03C>kuav30(NTUCOr3B+V+!<@T*!t*PXG=Me$KYeGEX?_& zRXw8tXj@1A&Rzo)ci}zO#&hCL5Dd`uM8o5teAn`tF3Z?RD&=puviXl4uv?)i{8lY% zV7J$K1-Xd=(%^QMGW5jsZNaV0!5`t~N-~=m6TMK#6)Dh^G9B;pKMtaT1v7Un2AOF4 z+$+BwGuX|-M+Q%S_h$J>dBc{bghRn?*8lOb45ZIkS>tI{@CR~Ln6tDX^|Z=`4M9r| z3M`W{J1yb&Tq+^_+lO|-Nlu6YxvuEG%5}}1V0vSd?#x1pfbA8#h{_cnV*9r6(S;;URp}M=(9cj;PB1#6Y?a-;uzW*1Q77K;mfOX<<_pWW<#(+8ctTEXXWu49Ap` z=Wt^geEd7*)>+Cucw>I1>&4SqDT_M!c2L7E5b6O=>$t3qJDVGWBmfD(C4L@u5QG4o z@h7C)t%qcGRnZsBXw{oulhsnsCRYe1D`xxo-qNy_$|afew^vKiGI%x@p})?=9udb^>!L{ro`aj5d0B&_4|Bm>H(#pZL0Cs%KO zZZ2%>Pu&hHEzbu$vY1q-OBau9Dz8>M-5JRDa9hvd>l+^8$5Z*f+!@EJ0$pqiXJ4=- z>zT?|s>tt7874nK*CFHaZw$!I%x`wW@B*5xtK(!R;pg3u@K82Y=` z+=3?+LTL{o_?<~?!a+o(N%!qtk5FrPq!tVxyHy6sNWrRwOb0f}Ur(GL!tc>>EbJvT zdp5_5$5O}6&6_nWG{-iCTukM)v1wffd*J?V4gx>_5Z=HG4Qyd|4EvY$<}M(5a2F80 zs?7cL>udgNon;2=?1%F;yRCoum*nVvcQZY)x}wytujtRuen2oP#~4EVHWB7HGK8h+vg`&=JX7LN4`*93$kD&>M3&u<(<`7re)-YfhT&+2QE-Z6?6Y z|094#LnJ;-RDlwDBR7z8SaNtKKL{`Tk*-W%es|_{14V;j6>ZFpu0Iw36Z?Ednsb6_ zS$%^$DCh1N&^(G1aF0HB4!^Bxr)SsD>D~*08nWi&yBj3Z>9Dq!`yu_LiVCdFGeIw#xXLX3v0o$%dEtgja0 zRe!{|Gnhb^d)f_ag7(MZ?wf>cNj6c;^|-7{jlY+ovleU9!>Vix;3fMjnh(BrqdDl< zoZ7hhUi#i@HGh4YoVWCv5ptW@zYPf+VQ*M_d>^Bde;Zv9ePEHGX_J zNI?V_)=;AItKa^;=MY~5BbD-qtb6}=bMM_mCV-Fe^&WxP+&JyOiG|7SfdC%!0%PUu zKM(5{-w=l(l82``{>tKsb=_C8G=@ia%V1N_NU;kz38wMu80!+NojDnfTnna@S)J z@PTgKAHt`NQhpI@gJ#;WrH|lo?*13?9^%$)h0M+Ms#cZreyY$a@f$YhOrIqN*#;e6 zEpilCv(enUw!{*_adeoi-WIaXs-(0y|#6TJ;EQ7%;I z>ayVEsKvtZW9!^b+PiU?LlHsnL0FZpYcSvBujc@osA@!kp!rT-cRgZhY@CU!^{vUD z99)2B4tu?V{pE>86)2#(Z#u?Y^ST_QPt`j}+OBqB8mL%31QiBhxpe|qV3j&`REj&r zg!x=?*VSCjHN-24^Ig7X6*Z^rN=#h1h`P8$GS5!EBjK2r0I*w=zk2n`6OS(Ee^R-7 zF#=Q9kM~LgkxKC`vnoh||6?Q-3T+Pq^oSA=Y6?wVH`G|q`|1PDX|FKBl(gr?kx9p* z(L4+-uTBtA3)m;bEc^_XEH@voHGDKruGbpEr$&U&<1CA8T%Jwoaa?UTMbd~Nu)+*p zNML2o8Ih3$Rx)$F_kHSluB?g2mqf+Zje>{CR(pLy<=b!R+&Q-%29lnsXUgSegN$vX zPF)QS&T+}o4=R4#Z&a1Cg*-Pcm^&X`>u%cT$qc77Y8+zi*9YC|_?;@nw0l!Z41kyI zRB=sir91JvF>pa0HXpKS`lu8dLmXsc{Ip#3zlIhNqC= zr|n!k!b=FIzNJ+spRBMrG`=;UCQS|3sBt>XIoo=>NV|j$quUrz8pKy|0?5tdASy#OR+cWERz1(;CXp_DDd7brSy2`srkwyoz(L|~Le8qc6Bwr=-rk(`K2rjAew`p*-WS|E*7DQ9W< zQEyB6|6YD;G3|~4x`W-Qo>N{nE8Z7M1^ykM9NhGKE_e-3)7pAFXFS?06m%{l(~K+% zz=E(JdXM?*;$9FoovJ)2ERq@>i)}(~ugIDM(MHi?(hR>qs>_^qHP;7gDoQN}MO7;- z=_qABM--G1!$6Sy3*^XT=T;?OGh ztyYsxVkAQ8R7?B1vnC?3?P~JGBS{Y;3^U{CH6|=@ErUKc0O9V^-PTVKtr)*%Qv_eX zgtDdKyU2Vp(}@nik9( zc33#!)+k#g#oL#y%MB#==6i4KiiA5J%PI4Rd#0Qxb)5KXKP7@)t*NOIBb|KUmJoo( z4s4_=U4+=!k=FznPcXU!1<5%$#^UCY-5w~5$piFvbYpPw&yP4YXgySQ&St}U7A@1P z!N^32Sn-sARQX=F5uo|62g(d<8x(b)?G{ zrag(K(&Liid;M)TQBFLLc+|;CMAN_Tgc zNH<8Qba#B)xpQak{J%T1mJ9VP);as^{l@eD>N)>nd7{;W!QonIdTCMpvBM7<)7ipv zdHHFt%tmomYh46(xTdE&+=yOEnlAQG@K-+>zz{K?0g{%qgLO4s_g<5PU2!KE%Dyp! zZm%*Jn6ZKPd0xxHmB)~c(1T0BNFw{JruP~bZM5E&CE}tBK&d}s5oZE>TN;}rS0{N7 zu{!(>)x&lNNDBW4kVRUlFee$jr>Bc;k@YxY+=@*SeT=|m6N*VqOB&A~KjTyxWx zRwB3$kM)@8`Z;k@*II2>DVpR~Z2PSChIzD6Gyq{5z>j5T`S`wd7h#dyO=!`V3#hl3 zjg2?Tz@KezZ;X)6)V2CC(!~=Q6FkuNh?ZwO1iI0oRIx6dCuFsGAT}MUP&>FKSd7pf zJ0lt2yf0wqF9-C!D^!^r)zC|5Qn@Svu^}#-eD~E>$J66P;af8*dNFI)~;k_n&ZL?Xmc(f4w%pLvM9`VHHI!rz!tahYr`ax>H3$ZHs zS*x-uU5nRYGj=~`R;SKCf_}f2aYR1dj3Tu&#z)X=M-h}>54K>K(18a#HWW{eA7Q1XSlM`*QIV7!c3>OQ`tPqv{PsIu;k6P zc7#1wmyIg4QMGSxJ5dwHONO`hQ`oMVQCrK5;H?sX#1S&(btTX$)~aZwEB<{hd`-z zIC|{v0DUM_Cdj%25zuS6Qp_R`59^oNW5QD}XLR>FFy7kry0J-ta8(5^rL**znwBQ!h(x)k z-t>#vBh7HKJ-I(li@crH^<7F=I>D8Pyq8z`A>irjL!{JqoR)_2ez8x>~gT z3F4+?W%d#U_1(kIXF(q6nMcw%W{vg5je}ky@B16k;|fomP*A~{4JS^|xst!VH@%Tp z!dqrhncB;LzaiDv?moCq1EU2y=hab`C(;RXwqNt>H$0}%WE_TB#qYBB@??7WD`j=7 zui%2kcvWx**Ls6#Q29ICru}GC@cS8*4jN5kM%lcj5r>C-h9%fV0nRYWA(gJ-6lN-1!9v`t)=Of~qGz0^$ z4CEP**HziWv9QS%6kWYzh{?5Pc~Y;;TvmUaw+$~h>AaZ|kU2>mv0MmmK#--wQxCp5 z;Ilsq68MJK&9}QVb6K&^{`Ogc?}p>sl(TztKtV-|+hYQZ~R} zi}Kz+#8j9n4?!c~QP*o6)R-q7llV&b(fEz{Nl@iFASaeKj)ffVv|N z+O#cZuGqEB5*+3B&FO}il?=O@@RqY|BY%a=K zTl@4UVgh_Qs-)nO5vaT;V_7pS(B>~X<@WN+y3~ud7 zy6oQFd_SA`J+G{aH7E0H?x-rhM0fJi7OiSaOX|oST-QXyUM`~at$5#;MoyG$EL(`O zzom0@th4kR1JZ;!8gU_9fZE6g7&t^2})XU)fOT@OHf(YNQj z;?K-VQslZcn|=coVv?i`lRvP2DiyLOf?+9FfC?{i6~zE`C#cyE9Ew8tand6R3B7%X zE$`yoWWpFnMdACT#W<|5evb!E6a~W0kAxveuDTR1Co>Gd<))mYt?LNk5T7pBsGtOh7m1OBjD4xt+`B22po4;DIDKBJhwe=^BAyecukX@uulM=TV%uS;Uo#ce4KxgY>DW<(I6t}?fP`4R&l|$Hb3vfJQU=+!%Umb! zmK2Mubx81Z#mHt3a)$n)l+7Uhgrj%6C%)9I`v7DU)VDu33zAR>rPTnQ_I0zV!P5*x-xp4wUV#z^C+J{*{DF7sT__wSgI+3E-J+#kk?%nYB`~)Tc}xBaJ$st zGbuF5*p|1-J?jrkcX=;IJ6Il1@J)VSlbfCY1VG#k0Pv^5N0kf-8d5W0*ZPe>d0?O` z29P}>a_(EEAh#LyM^$S$iFox;yZ9EqLuD~B)@v=F&mQO#6PPYa(618R@zX~%@aznL z-}C2H6uLVRzug;Rfe&EtfrvXvnliJaVitJjEbBhBERcxA9u;XM0~HI~V(KrZIndA4 zJz1}_)BX>#z9-Gdpl~pp+>A*uavi0)(HB!C;j)ym!ruNDOdppQ!@p(nRX$ z@Sk!GcL;El*o}YaFOuMWCf_8lo(>P_gpVS(Zgsg#KP+qKucIKs>AGd|t}E|9t1T@IJL711xvbjtpIRjWwo?R6}@KI)F-F)iQj2+YtT$)J3Sx%|(B8_3G+UB)zv0 zaN#`aeaW-HJNB$;wmlY#w~so9UuT2C(;*LNJ`b)t4y=v*VXAH|kWElJ18=TO3S&8LW^fQ1}z6-H5^S=)vT1 z*!eBHiCi&Zr!}wZT9L6#medY@bID5UF%2sYQ>ygYw#!4=aS>V>m47lVu=syNlKvp< zb0TilVJvt<5k zoGq1_#b;zk9+Xw3rbI?+8EYY0*2R?jTfMf;tJaLF`A~_YVWP#^jGmiE53R?7D!BQohfQ+Zq*yn4L5bQ~b9y?SdtivPTm9FOQ7#$L*(NVB9%v-XIm@g zV!%c9ubC7M+GftGN2*1H@o}%ZLSZNIR<~_>I|lw`z5UtJN!hi;CD)w(X(1$Mk`ZfS zajz#4yC>^DImdpuL<%{o683QuzXN$t!HH8Juiq#hr1Q%DVD9~SO2E@<9IvCP<0)pY z69B=a$yz;6ggxRiYa6>bzBb76_AX1zv$#&m@|l_MDF3xm_HBC|@qmMIKi}zlPZM@m z(S5Y3n*?t7ti%UPQN7MCgf5rYtv9JO`>ib7Ny@8Ii5vn&r6`fAOMt|l^>H*;QVPtX zm(x-kHtLF`-GXl~)VU6CAh@!0kVFTpq?4meib84W{P>?~)};ZVsrB^6*nkw=FSyJYl!mJUMKnOzWiSMvZYr%z?6xMf_ToN9`8mVG zaA6E&JE23`2g;nHH|fo(N+QX34#(Z2tPG6}e2clT2kb(;5hNJzMYb0Knp%FlytQIl ziX+7!icJUpSN*cj;(>!GM{ucK|G>i0Fo%`A4?h3QLqUi<65MKE>Z>E0R_~?vBzpH% zWr-AU-Z$gYXPF*BRL$NUp2xDlxcT}i6pvbant*I(4L28qbDs=Pj$G*8h`mmP)YZC` zW34ZWRRh?hDhEYyg_fUXKhd(ySAs`QQv75e1x~|VxK$x(F@+#BHX?%30*oE3W$BZ- zU=?T~X|4hi=#tk5Ea?r!lbRUE$`@qw^A#n$rS+BFZ}E?{jBCHWO;TkIGkEtd=mc@p z!wp1Nr(UEx4_+rKXy<~-nmtxbUl&3Ep>Goo@;o=a9ARCq&EM+2z>e zY38j4d~-%bi=I4ge`IF3Sf}ezg_KqN^t%kfQSbX=-Ius})cal=zc(E!d2B2Rb+urj zSBJGB7Ks5@9lz72@6Pj`viIE@RdnU%P}*p^nwzj2QL+`-DButxXgLLI8SQL2vrH#q zL?mGbTJ5bN8@V@V##xQIF7oc!L$Icu8c5;D*JTv8Xj5DD>b^#4>GRO*jz6DE8!a6W zN;^rxx9@x|NFPVB=NY+K270$+q_JqnA|Zb-i8ne@LjjsNa!k(J+YA32-#JMT2|>k_ zrEhdJ!Blr*l_CEPp`&+D!HpA89>h|JQ+w7~^|=!G^xcR~$q0s1h=|FAB=nJAYV=`H zgB;6XT(FX+>+v1dggnc7tZ_mMQYJKV>k`hVIdm0*`^Z*WHTLiTw z9bbY}idEtfogAuq`6zHo$n+8Y@yl`XSXv*dFv<134NR1q_d<)E=bfwuu0o>VB}{7k zcZ+f zrnSge2>9_h*EbRrdS}1Z)ATOb`;?`~FBtXco5(gj9Q7OXbIR$^)!Y|#==~Rg_;g_*`O7}r#a(4J6U_0Low^?kx_`Wc#0v&BqfpPQ9J2buko2Zev(j@*BX*1aQw8ysl^h6*; z&(Szb>*_J=pc-k*j&80jquCgMX@;*OAFR*P1`*kK8JI^X?AYLT(EnndFbotyp2jIF zUO8_(SG!Ocv>VKLyR-dX&)iKQ|4oYa@sGC*{n1&|?!{tX9eOD%$7$+BVRSKNat%}W zr!>lo!k&ZwU{{aav->U}9);wQS|3W05Hc3KOTPvpqE+4UQB~t+jwZ^WV3->(Q8J(k z^({5ICe7-4Ps@dyWf6pv?Vg~AAacTpee`8A3mX_<5AlYR_y`9VT>sh=KSd&$6@v@A zVqYYiaPIJI==acp6?fwPm(W0kT7Cm##QV zYe=n1hmy3vHY2*HVCTPIb)Q=1`%EM8`rIFKJNod)oNg!zRb~v0ENZugD5?VFv$pk_ zJBbj#Ar*N5iLi_IA&iX-Ee<9{orWt{kMX?$ee`-+=x$vwqnI%|ABy+UO#fzb`u^2L zI;7AD4fDl}XeJz-xm-A|lK+OaJT1PGbwkmtPV)e2sANbre3S}e-9{GzX&CSN9WgrR z)v}jO<2`EEtWmn>$oykNfgg(HjX*@<$%R{=@_os_vVh1PU~Y6)hgSA`-`0Z!vX(UL z9-57-mrpZAzbBz3k~BvToMP{M6kXR(Zwzi|1B<6Y;ZF9`))zudN;%{BAQR6bBc)`F$XG zp1nu?Va)z|gQ&hw>nZ#FG;HU@cYP=32r_+;+F`>!>`b>WZpz0t1fPK%^n11-b6it^ zb1?BYmDc2>83YIT=5B^ zjKxJoEapmgOtQqV(TGTwU;j*l>)9X^5eVJrpI`rF_Td2^&GS!|1S!T(xQ9otKth|m z{VU!8$#E5s{ukYW!dHttiHZe5f_dWEAsJmr-lf@(#Dz8{X~GIFeRCMBWtmZIHnpMP zC3QQnU^k0c5)*wB=|Yjo7h`a-J5EcrK(@}YU{^-A|A2|#UVRhku~h0h{f)n_>^on% z<8+-PK^yI#MCo7ijv&u)v1@>M!$?`yIg>nm^z`|L_5$-CoGedf6b3=(NmfWZ+h3M} ze}gLkNBNtk^uY%B)b<#?fPF#s05ac)Q#fvBbjW`d9$-=V_Xt`l8ValvbNnv`77&*p zk5$5@4*$Ed|5JDJ?^i?&sesbFlEgmxUxV$BtNPEMhGBp@K^(MSE&U5t`2r|D25 z&c0sKU!h1w72#a6fO~F(^hG|N-G;woCQq^>ZDU7%-rPByKi&@ycz>4GSNoE9>Qgar zZjle5c$I&W;UcJ*9V`1oYGOtOE~;-~{3ZWn^3h8+zApo}w1)!*&|KVaS?CK8xdiMo zm#wegxDyJ@WPUPioTKb;S5_Cov+aj17B%09}s` z9|jO7^F})^{T4_-0kYFI8zV!_cGqX5L9EXdY-lM)H2xCOt3PjtK74t{+#bWv$f!M{ z*FZTdW(yMj@EARNj3c($iKG31DW5>?im~rYy^QCUBibVlAe~@aqD}Z^e_IN z+5_f6Cw5oS9}c5qW##=VkrhD`KnHMhjgBY-gQWz+IsQ+j$p1Hd8fZmO&}X$9{-+L9 zhCCIh+@-O}UH?`k{ja%X_gf-p$*lc92M;w^9-wsckYbzvM$`Y7>jSO~df_!*+5fK) z|JUaM|A5c}Q)C=&VCip^1b-RX+Q0-oOhuXfZ@1x(=_K)6@@x)s;d~89aUho`wdnVc zze8I8soA}sMjrzDmc?q-+whh|4C4XG5r9jct)25@Wp_18rR9#oe4TZg_3Upa;)a11 zW)%E=Tcc*Q)U@tllgFh6FVG`K?Y@Hbzs~p@;N#7GCoXc!G6g+k!q$6-^V}*8CmQUH z2%auy9RT8l#iCKo2{?*O6dFkbF!1-*1lOeP(JYqNmQ%47D#dRKKhbRUws`|NV)54r z5x;Q$Ne>SKtE-&SZ>=Ywx4fOQa=P_?e!OP4nq!^3%9V`xGTx0b1RR*W_aYt@fUw$n z61DxC1!3Wz6*=Cg_&P_6`7uAz_-FIDT#lESfXI~70!EboDlY+`hfkiGv0D#{*?^oA zNd5)$dLE@e+>Z*gd)?Ua<`NXE@08CqyOv-4TGG<2|48*)_7_j5FfhA-J_Go7CiRBh zlof$kfUO2o5wqdc>CbviPK6Ioi?%?9&+C{gSLRI?A0RCwE|kz69GF^}hk6c+h`iUix#q-9-Gp^>G(DnZG04 z8_%|eGXeTNNhx1p5YU8d24V=s0y(vA${UA^^)w$pT!$T4PK7|T>38@+_-b3FQmskS zpozkPB~B&~0qsY(1%HzZ@zZK(+Y3hZcT&-WCe93+qrVfGfL;cRdw#3h*&@)P&UH~f zx)nUqDy7Aa+b3(?Qhw1EdVlXj_{WI11vRKKw-yGQJc?xlK9p~n0Fj9#kbziaj=GPk z?)2Lz<8m}-V7UW4%Dy*w#$j0BetaH`w_ZHJoA^205G-6%>~{&XCq-nAqA{1K$eGz6 zNnms!TG4trsW{}zpbC13-=8U@3PmTWQsK4Olu^P^?NH4FLQVVP31=uPvi+9&v}*&+ z3sU+ZKn8@APdd+gE~`0m5`L#xMWNfC63_M1ei}x`AD=sYcge2i4Y*wvrSjoDeRl8X z$b2d;NiLrrXY~|3C0Ya=HX#Ht(+G3z_eaek(!GeJvATku$Z!jQ%01=sD&c|4@teRz zNlM4cLcE>n!cpUnmF^S}m1SBI@AEJ|6}G{4nWSe7#5RBPIU;)sg+N7MU zjk&wGQG4$agxn}xERzCQHj}767G!qQOkFoNYl?`x1Tt`2(v^lV;1+@kP~S%0(vJYG ziA2B2XVCwqLKgeY7qh(Y3R{3gF03l66enfqtETX7ZkwO6*cMv`EKNW@*!(tw_v4*2 zRiZfY;Y4G#*VpA4{7Jwe5EUEo9f*}<2EJ>2mxb^6@z*4|l?wFST|gfqe}9AF{RWVn zf1YBKz`c54CA}aqyt6ECrS&aRM^1~u({&S7Z2-SvLyzpoYU?BoIB=ye8qMU8CiOZI z<(S!y5u$H@c&H}kvFmVx&t+aHC~lj{G%bml;%lEay1LshAM#z0a>hxauF{ zWnF?Aq5r0fhC<@`z5dHlLyC(KnczlD=x^FCuNM1q^8lM3?Kv*Y zkskev!VgnARP|is?J@sHW!Yr?c%G1m~pNiFr82wA4ke3;3;s}NB zaspmV%4wE}Yd~tiMx*JxMpX{YuE#d*#n$sA!Y@Qt7He%;F!nbCdS7o`M{%!kirur& z&q(6}k!_Ls&of$Qe!wUkjF--|oK*l4y%=MPpwR3+*L9%X0QMJ)n71i7*wjbr0*j6C=S-4DR8e)26Bg8>oeukxEHTRb72_ZWQ}>n@q;^l zS?Yh_2XN#C|C$e?LK1W@f96v1!s&rl%eqK})itt@^-ba7?2JXl^`jZdd#DbsYrp5q zrA&a%Do}ovV)J*c!{!1aMfcyyXMwMnDaj+efXLXossYA+^>oA|D zZH~-RnKF|D*u^-4V|x8G|AR9@K4_XAGq|b-onD|x*sz7#4g#|j`8nzQN|f?yD9=-l zrmsZ8*P|kmvj3*;l=+8`WbJggOiULbNRIbK0SVm(u!LVeFp)!l2`1eKg<&kp960!krJ-<8aK!whM zuBWT!~deEZy>~<$>NKMb1MkN9IZdty1 zaY<5n2Z80GKTk-~=G0{7z2h4*A@kf&_~wB6=Uvr z@}`5Sr3ApL7~h&2h4L2jVlcdHPYo>s6I2EE@dnFW=bed{iv)#$*_>25;lzx zH2WrjVF-xwH)dpCb$tLbKo_beD5knU!Cuk4L>xl4%?(sI$%d&zW-mth!j}6jD4@&r zA%)=2Yqh8h!5({C{L*xdC~axZOY*HrYk84!^A>wr0&iMVh7y=8ttj606K7;&+*6$6 zY_&v5J6l0$Q)T%_m_32MeVVj^jer*M(<>#~q-m)>4E_#oLNPYl0n3uyN5EIUg^iQ5 zrbevcM>f~R(){(RJQ2ALh-!5l2nk6*%8dyBnHluR=B^9B+qOUld3x;(BUTZNQP(;g z;+SzXg8jK$GVFbx)L=K?JT)^+2X~8TAi{_WelZ^C)MRRV>wU(-IMzsMoAbMwlbXKU zI^`@Xer`L1RXv=mVvBFi@WbjDDr6t!bO-)pRQ?A#U z>SQdyjP*;qDid}wQLhrMMkx0DLgN;Ya{SB!ERn`_D z{+R_3BtwTIfwyZ6NyG^%zudU!YnaSeJa)#}RXf`p9PaknVYyuI06biqKgNR$?TqLpQU*KRwps#~_N2E-<%R98aN_OU9ms!wY$8ttiRit_ zpbw^%|E6+C?_8tx715~%v(E}1jI0yZrCOXB?px3gq%1X2T6XJ@RS59`z>6ep^*O#& z45>A(Tx8izI7GIortnfQQD`CpYE$y>mG=G$P)Ol25JBJ5 z@Sr77Qi(=xQq5avzOfiL%6&3+i!84**$saZh`97OpfP0NmoUw&9_MU~!~`krYnsZs zm>*`4QPC8R4{i!2bkO~OXYfFZguB6`&)Fzb&Tkt zhr+FY_G@S2i6#-wPdR%v9O{sc9vSub$6FCpupj(B(A$?<@rY4qc0?BBE!9r~JO(U& zXg48#Pg6P>L@1&gqV4R$G?e%^eG~}T&Wg3`*|BFQtDGtgBW0!0k z2{^n3sPv;Omx{1Xc(k#Nzt|BWpDc{uv(D-xl=5qWoPqwPPip8pU1u>trPmxvIe z{{=Sr!R3krIMN?q5MWk@qJ8vl4NKUcV}ZrktEmN{6sxXge+)4tL16SXY0O3{l?%+`dmaRFqL z%oO%CfA_&6E#x95RJz2pE}sC*iURC+<8|~vGnh&fxH&>V4Y<1Pc}o`Sj|a9GavZLH z(g5gC9A(YhH-FWW|NCo$$v|TPR6@iwS8>3biGu$S>Jv;h;bgJB15LgRteT^1>j#dg zTR_=->Wz=o^bBkwaR6RHyURwq*%=%hJP4$#0G=3F7b~x0xPu&n{y(0OVOR&Civ{|L zJUyF+(P&%sMMJfBFLcVlMF19%PSI^JFm_-9p{%&szbJ0lo4v!mzrg~UwV^>+0>D|n zH*QjXmxB|Nm!}?Nu3QZG%EpU^j$=S%OFSA8*8orxZf(nlk7ZW%pGE*)O2KiaP%PbdN>_3mjce`Hd4J7w{hYuKysR94IJlOcywlH-7LPS?+igD_4 zA4J*W70H=ju2{e`iA6bJziACQZUlx+Ol9;Lzg1)o+HUwSXp*te(2Rf7tfNRlp`mX9 zQ^9c3Z*}^2Yn+z;C=!N<=SMZ5DU&(9M~)f`fuLz55E#;%7v4Tw1;ih-!+e$I|H%Ys zV3_7Xry3lU48>!qKuq=TNNgauy%)0g^-ThnTwOB0VP7P{hc$o1O?RATm{&j-8YbX` z^U1+v=uLDwFAbotk^0dS6AE}@3$NY6MfPk&E@@;|gaNT?Ua2Agg~emhypb8r6dZ1< z@o4LJ(r$Jcei-Y%--8xx2U`5l-hKP@+ogJ~o+;pN*n|SDBrIer5G4vo2sH$EC}e;b z3)xJ!2YZb+!{E8|uHNc_fa8pTT|1(G%w@lNxD!G5a9WyG1x_zD(%U81iMwC)XEs1Jib5g@1vT%MhC6~qq82xQ z1~ZKJ#>M3gr%RzRccjClpZqbVLu2N zT_E>?+6MYT*X`dQcLkqkx=_4NV9=~7;2q_6+9d}!w-$~5niXL2#|&r)^P zhGBSmUgO5GuE#U-3K@J`4s*#O=>6~l_QXvthx9u~x{T_D{ZRcTk*0Y@{Lwg7Z$r>X zEJ{@MX-;}84C*}I&jQ)5*53_@7)45&O2kq)%(yg80jRc0HN^~6s8Xz)0CS7NQ?i3H zisa|K#OG{$SMw2_e=YgqcttPv(*F=pvc{V|T?;$5q;XmA>BCn7D1%W};I(>QC>gH0 z_#EO9>C0R(`Xeiu%%7*GTo2%$VEFy6m`5LN7wUHnGMN21q%G^7{jf5OV*evwZX6eo{B*Mqoi zeww-zpl>4!_u>iJcA^LZS6vS2gJ}f@X#4A>O&^xUwHa9=NT)>Io=RrXcEjO;{A33J z)1rm)R2du8g$*9uGU8wUn7NIoQ%pUtj5U?qaFsg7(`9Yv2YMG6e?Q?bLBqk*1_LDr z%p0qcv&-1G#c>Evc``L8y9h0l0&ilqd^HcPsV@@Rpp=Y~|2aYWzG z`?Y>D`MFR<;m4_T=?4VYX;v`EH{cxukMvE(@oam0@Jh>uKr>4BCw7%L?$nN5zsN!G zw8%m?`?Y#kh55!cE@1VYyO$#wA)bC?k&Z!e@MNfD%uAQebzZ&5gC#3;J)S*{QlYSk z`!mIK`jt-L_wpXPz;A$3Sn@0g#C z_#1N$C!t{x)YE?O^R4RzpnAE(6EZbo7F_HRvmAd4oA{GeQ0%IB)VJn z4A{3XRZwjNQX@3JjuOsJHNvc|&V|&zJY6CI_@tu&iSs+nS_|3N8R_4b(~O0wB{DzV z(e!Qd#Z|(i;PQkdH+|3liu_(>I*pkg)tO$oB6}nF%yoB6G;uGArO4`Vp| zxO2Lfa>51J$hq-lAGW>+3<|RP8w0kbVOWq@#TbwYAl-URF@;KcrSFyvBy!ZBa#p=z zeJ7X;_-$E0NT*FMptUt@QmLCZu@{o*PU-Cc=|qI#(c_RWnb~2vP^qdaZI(@imSNZa za98{V$Y?tw;P^A41_B2iRK8g2S#Q-&hJbcxRkOudT#%P9M99|VWSS?qE5B%;?BZgi ztPJFreQEL#>&}7Zl867r>>*sD(_E+Tw2s0zfsSpaHKRv@Hzw67!{8>iNOw>>aU%GH z+2Jmw^@0!+)%tx z9t5x|1acRa$Z%~HBf}8E*RPs3c&EqH&_gVx6W03X1A`7;3IxbhEFzhlTlK z6)5to&BSRQbQkh z_xAB}D;-epI;ix9&QMrO(C&G@X=OPL*r5)ph@*eQtz?SHni?@?O^DR6X7X_rN_14tH8!*jgiN&rk1W;+Wo9MtRnce z(Bou>SsQ#XaE88asMgg)v$hc5Z=rM!!Pn|`b``uVYlHD0|2V2*aY6r#SiQB<(AUpy zd6yrJ83Qz1GFQcWC(YuyNFiV?Z5%6_C9Y_3k3n@brhqY!G|HFW@5+D*$~-RJFbcxU z99~Udw=%cQ%?Ptr_1NKjI7oxrwje?ZsUX5%L+&=$&}M0_b%axpJG`97%D6Q@*Ph|R zAU_N&Z)f5 z)@NV&7Sh5ITiJ~IlGl1nrmG}wM*0 zaU<|-8jYM76at5vas!7GvItlb5y_+C`EH-(<7{1N^QI{eF4ww%8&>REt-Wq9=L6{+ zJh_{kt;#7OX=mn@tCk;68}u@*|DN{*&`!_qu*HTERNU1EqWcDk;N=Pl0Ox@M@xM;9=#9p$$1MrKy z4Zp56+hX}CQFcL5rW>J=$XaSRdNX&_hTv}=?|HqhuZ=>MMv-I0piB07y!)8%C1WPE zSb_Vxt(gk^n*Lk!&&FjcXb>0-S)Kk^4`7ceeov|`s+L48IjnHsD#EdoJ9ZH-HEU2a zBS5aueVxZnlQPuv~glRA9&A``3 z#k){q;%(W>E8{2qV40rF5IT;wypwP-ZQCI`5>frO!uYP$d#m15uJvjk7K*06T1=qM z?7CkDsK5=A={M42tC`Vt6EdyRsMDS{R5-~Q?Ut%fUlUeFf{?=jpwkSTMZa#WM@~26DX)8#F^p*XpW}ax0!kF`kgLUxY~N!=_6IW@ z-ws|%oe=<_%bWAmh@NPNhxO$bItJ8-aQOgqmOM|J&UI}7;<{snOLWq=n*$~}GFe0> z*pOIX(5zvr#Z&>suoEYLCgy1gq>eTd#rM55Yfbzr&qu-dYP5YSy2;Q8QD{C~Mf8ww z7#{c5DW$sRo}4apsCv2rCFm1#v9eYiiyLbWmEncS0;m+I8 z30(6>HKY%Leayi&2AoKEltnmizf(J$Vyxi;dqQut7_qXzNlyKNElJgB4RQs^_WM;B5K#81QU@!9(mbllW=8fK6_qgg}fl28l#@gnV5i1dN;vj zep;yE+XwMR))aAc90>Uf%Fl2DsCeclKB%RAyy2s!&K}uE@yb^AKJ%g9_#HcH0}T!u z`V7o3IxMlf-f9D@(Wh|VJ|~CU@6NnVo1YJa@i)(ctz`oLvBdL`_1J|-lL_drOd-{g zdtDwaEgJjt#pR9xaH!p{74*S0Zxz+RN zv-5GTvM%!Y(AhC}RY@pN8I-h~q#>}KOOog)X|@^(->kxNVD)B_@d@vYJW8z^z$z}8 zyiH0`5Dt3opyqioeo)h*Rd=(f#62-0i+{8<65^@bi;VLF0xKs5@kEs3Ui0M8IF4W0 zecbzq_EqWa@wN2jz0q}@q;B$Nbxj|8pEqH9a6^8!5@@A7i1QYMN8bs}C&G@b-MPdz13gQ~y8wWQycR$?#n?or$tnIcrbII-#KQd8GGB7vK^RKT6XC81#A1E>lJ9eZ z{2r>%hb0^QarsIpYK25ZW8Gv0)7MBqm@k(3`<1~V_hk~hs<(p`gLd`(#4k;5*z}_ij#=L$ai3jK(`O#o(Evtrq4n>c~)7` zL}os6!ZV2PP*(A4}Dhq)=ukIvM*#zY1!w zqX}P24NkTVd%8jIx+iWYo8j|J0i#3JBkw3+xjlBK3-TY{uX{q-TDh%vIgSa*jb=s< z8Pb03wT(YNc9WQ2ZCTg$M0O6?cs(mc<6|~n341!f1S=yk6c>BlE#V5jUAwd)II0D$ zKy?x<(|}`_yhB+%pjK2Ab7|W`cQ+f$md8%ArHLqW2#>Z__kX3vyy3#%3c_ovPA(WE zMW&&T>2CQaP11qmPvmhNBe#fYE$Mk9q}C6zBw4sI-`^mGnCaBeeFP#|7X$zdDXz8% zNyFgT?rH4=rnHaLCc%2{#vKhVLxAX&V6W$F)6F2ujAbxsZ~gQl0VxkScuf}NSW*qa zAByxn{uPn|q03ua!d>Sex(x1I_#PV6toFiyPuz*3WJUVmEOHN{Dl#`w%@F*&vULW{ z#nS6izBCpa8Mm>%ZVJ-RhqofJL9=xxVI}b1^<4<$aDhv#(AcQCi6-t-o?u4SO0Zb6 zvTEFuByVQcTS91h2o%jpJ|LFgm=32E`e`tFAsSfJ z!-2OE^0a$+T>;w7OJZo;rCv37< zT!nd`n9lzQMFXXY7%xVfGpyqf1lGNik~Us*?^H^oW$#~YYZHZ99tT;6+#2rf7PvV* zJb$4wu>1vbbn01*vR3CuW7dMBytXvj>bjP}dw5ngK=QDNI)UxJS)yR6&R z^gUV#Oy@$HM(N+ZuG(YbmIda?ry z_}5W7$v?ypzuwC^c>!h^-{4Yi?ZVtAP?g!xQk-p=cCmfivnpYZ{bQLhk!D6fCncY~ z`Hd~cxxZt?+ywaDd$n{1xz!N$nZ$l>S`SnZ$Sy&pMI$uR-sw$48ZipCMbo}u|8069 zw%C=5qDv1`e=SCIVgs2ic_rn)S<%0e&)`vz9ah&p9p^VXipX7OxN;*%@{xowC>0-h zZ6uyEx8HerG%fpVQ#2pu**%&eW0Uo%FG_)W#f_h zf84!gR9)HH{h1IFBm@b;T>`;EaF^h&0fJj__k(M2cP9jQcbDK2Jh;2NhyS8()$RA~ zTXnm?^%y-yeK=J$#>vUvXRou?e13Dz@hC1LNxrRtkiQGJ1NW1V7@8GMTOjwxvg@29 zld6IjD<0~Gq|9|`-_wY>C>Saq6^pMz4n`02wIiKq_~?Sik{y&4IqVJjK{+?heN^ww zy-W8*)$GY7IHo4hgn_6b@%LN==@Jg~>sukZ&+xBdi986;2*PkF!W#UOuuz03CUEX5 zDC9G>()m!PQ*Qs~eE|Llh%O#MB$@)trO5C{kmk>%B)|8{eEp$@>^wHNl?{qKJyu^{-nWFA=={4NdMx$;0JuW~7cmY%4~RiNK~PWeoZo+WB=8^KPMo{~P;qia z#tL;-tG@lOL43KC825Fi?e^UCy1j+c`_HAk3vRb&HN9Z$O#wD~Rt;Rhh;%sfHUx)- zdEM>109-|*UO#$C`J;hiZ?^js~MZ> zB>6mrm54^QGCUq$Z#7>+?Vr+Gk(oU+waK*uw}?Tzy+Z8W&xCf?j{YwY95aW6ZE#=u!se|p~wW?*rN^7 z1QoBo&u@)n=(XKlTZ0jw5y)_9EatQNE)cNRfy5K774q!fvzf%)W*$Q$T%*ak|IVT% z<}vos>Q&Zp+tG41XOAhs_=P?%RNEDBg0e0lt>Pk$aZtv?*sXGUdngCOfk6gnz_sbU zw+E|alj^1k7Ghp2q9=B{LptEN?P$nD&mV~vkhl1j7D(rPJo*Ee^7^o63QTIffQBOl zS4%P0B}^9@*@Dw#vd~;S<*hjSM{K3)gD@UwZ6nK+o9k=QGT=nI)XmU1+&cQ^NLFe; ztTOEaslerQl^N1xqjfkGJnVrV&Vp-VvijZ`NoOYn*Mm#=_B1*=@Hv&QRIBvApU?mK z!Yc96j>zfyXo~rWorVQvYID8;lHI@Y%BWV`<_&Y>rbgfH zZeyU+=7BUH?65I}SQ?lte48&*8;>`VPKG!Rz;S^E)gf~Os&Ytmp&5db!V|e zo-sB0tX@)NSJxkezG+P^iWe{TV_v~9$Dc4$j`{OdmLwC#{+(TwShUsQlfQ@}Y4L$Z zjuak+LVabh%%L7^>yb#YY(+Lo?7p2?B4eHlyLobBZo4^P;@_K;$d(HaBi^LA9X$a-z7SVI~H{loivq|?Kw7+pUi+|lT0M-+7yVn8|l!lU| zuq9iMS+dK-f&)ID$W;+FXq%3;`0k-jwn`_uPjo%z@oa5|n5MHgxdgXG{Tl#IatctVZ z3DrJ~ceDv(`WF<(SXo~&L#@+Y-jVkOS!dk+@2&Qqw4i6LG;lAJxgdg7h}y!$FhFSM znnSDg$w$MWM-P-<9wD@Q29(9O!0PUUZi(is)Dc+qrxrT^F=?0^Zhj3#D6p1fPUcmS z^TXQr*0J6Byf)C)Xe=vgk!iqJ4{d^~s%JG!l^_dTu#Jft3r)u&P`QBt;pZo8aa$G2 zbtU?Kdwa`qQAPWhH+qw6z}i^0C~vW+LaC25CPTO|K9Y(QxBB8~zv`m8k$jezUNOP# z1&$L})^K=RGo=*uVy%@paG6pomCW1XbYOGJWl6lpV#t&&v6!N(;8H+ep=k{CW5ivt z0Uyv>S9N*st7Kg_4W5C(*5q(Cq6x;|nbSO>#R-qr6yz_zE6ZO~KZF0tZE3vpH24V3 zKWr{fo*Z~0hWWE*nq3AsIP^T4dMsO6m?|5~eG5a5UQ`F{e*n-@y0} zcS|QnN&Gf?E53mc$!aAMkGpBT*yJqjMXSkRWTStH6bBnpisLMO5E8Xg@#Cq+2$#u4 zG*OUW{0HJ=y7y;A9G7e3F{+Ua>ell6EnzQ`*44J}2R8XPEksg--Bxbk%S4X3nBmkw z@e#Ad0`V}ns>Y$s^5MI{!Se1L-BsLgsLcTE;Z~rrodZrxrxc8gOcIxI@B=K_&9QOm zZPGRT@8ikf1lweaWK zimU|3d+Aw0s&Rl|mQsq_JGb9|E-Stya3r~XasM=GJ6Zqv+wOaVfm|-JH5(guCP8kC z4P-0+^75sgeK22iS2AsAtd9KOz!vQ-d_&sKe&lA=ubD#utnTsk4=};;r>;>GDsH zQ&TjNbBY*;stR+W%vNSPn5@K`E>ZY#r`Y*^b-wl91XcV~-L#Ij3*@ zFil?-Y~1Flmpgh-CDT|V_rMPm47`O|07gc-EnY-rY=$~DwXnbu@nzuWO1o4>n1qU- z);WJ!oZiiLvY=%nZaHYyij6yLAT(>9r&=`ULM14`x7hK)JOkUMsa|>h1KncEYV-Lt zeJF+7YV`*D{)2hvy@Fa?IH>!ZSJ4R!E%r$r0RCDV=6Qgx!b4Kvxjz%nwUfQq-X2{a z%@8ISs|#!#d8~v@-0ndt7)b4-*KYrU#eGL2ElOOq57rB8vZCn5V_ssDZTXyJbI_%tE+djD1)_jE)aZvwl=T<^HM-R3eHA9yQJp)7=%qT3Kn4Y$7 zqNKWgnHw?Of{~aU<`5)-r|gZL-zm8G#BH~Jw!!umBYMhU0GnqFJo|_i+x1*AZZ#3m7603$`a3*#aT-_Bp5oh4qX+l0C zCt<7{7nsdr(;ir*xf!nrT`JKvfu5gHbzSKW4cVvI8pWSArO2f^*S>C#X4^p|bloKc zK7$@URQVea3oq3AK7W}@CMOZw>zUOzBda)G_E(G6pdqCOt+j(~w3fc}A(hQ0+vR)I z=as}O>zz+FgWXl()UXW^%#vbC3bu8KMrC0&FAfbr3dslb1?0_F$80*9hl5`!>E zm1>LQ{n}`iIN3he2oFY-m{W`_W`GRRILvvV#l@%MN;zU@ShiX%I1`?t$b-eMD;HZzmYAVcQFCcHiCkOM21y8dCKJkTc}p2(iMEo_-O-{VzS!I z&+vA?y$$pP*GrYp4K1^Q{w}CjIbgpcyCnC zUF_F^m;KGg2yH0h2Kw8hr3BoIu9xb<+k^u&iig9%kBAw8O?(0h<(GeHfUV-kRM;P$ zkh)lMiqT(V+I~zX1paJ571-{1*75OjZ+`bG__=?x{W3;b{IM7B-sa}!(cZ@yPwakd zS_o4{qas%6DEMOkLMqw(M&qf7v!tknuNxO&S&2$L!i`6hx53zfk={fnU2+0 zQBR37s4MR(7J*X&7FkzkRnQQIggzF=tErlXQk>!)@5*Hq2Nr?_YOty4Q&2RYDw->k zyOX~a&#p}PvVD;?nl9%jV;Lh)kr`@DlpdQ{kp z!V!7vF9Spd@6%9PGTkDX1yzLcKVo>3>h1*VbDh*f&cCnqMfbbdlb)1%+?aA!%C4wl zhVF!AVKk~Kd-yI~HOjgvCDp!1M5%Q=jcvW1oCYh>cYKoTWF-!6T|OP@4m>=#x+S!y zw$U83?hh%J8s|R^?k;9#>5$$Ym98wc@k0$S4|6AJ$t^!M-x;U1(+Gw!dymx6y+c;n z#(iu0y`LU3vtjKATO15-b17u*FX;r_W{c(o10jo7*o>`3m#4s`pQThXmE~}VFV|pS z1nDIzR;0``hG{lG^SC%?So_2cVRAmv^7Y3Zfg#J`cf5mrI<3yORJT%$@HuQBIWy(e zwem_u)!>*_A)`we4)llZOpaqLrdH-mxc-&=D_q5e__V=!5~%!jMr+MOMhm+12} zD(lCoRpcl4)eWHaqo1$z=V}UzE;_pEbl^CVj#G|#T&_9&#&~s>{Kk^AM3Vxq?OJ9ic=k9qMH&t)OQ+qAZ}94z zc8hxrx>|BF+XmD(Fm0-n>8?q_HnUCR4tQ{*mvD-?FmV&CiQ1tz21aB*qEU)(46rfI zeRAG^*Zd9;!cmGv8gz~qhdd&}uuM_=v(G@!{g78FE^rky?`{lhf>3ykiC*XagmB~# zY^In(Wdf#jY-aO2mUcZcLk_+#2jkmJaIo)kPo<+{3EZwm2r;>wf?bY(Fs6v>L@jec zj$|I&kk|KXV3PJ>(?=_fUZSGw-d%~ZcmE*7V%kBakjwPJQVg`+67gswf!&1LtkWN4 zXV0@1G5B3;h5Ec3K;qLjnE(Y04Tx1L`8{u1{Ars_nBGB82+GIEXtFSd4ZV-vdd*N? zsC(!VqtFC2G;MES3#h260`@&>*`s_V@g*Xn{lbLora@|+RwzjI59L+8^%M2GalJoJ z_Pc0X`-d@XV=_$}CjNw=4SI~3a7{uZSqr_gFB3i)Q_w`T zW57GOOEq@!L1A}Z#0*^oLUUj#?Zo3rgasPjXBzv>&!*B7a^;J+r}G#1Bwu=d7O z&HyHRhL$+%^;9}2a(o?ZW*1qpSQk0?H;{oN^MyM-3f1b$z+5H-Xim=a-OKD_R$*!j z*t+OeRraS=OK2#uTtC`k2mOCG8)roJ*hwkU(@52 z!vUsWHHSFt)2FIJT4{8v;wiM+*(j@^f>(ck1(NnbJ8}qvUSbR}+-#P47dBHWba#Ji zL|30NiKNV|t@#zn4B@-kSLxNQ_%E_642GFDpGeT-qY}q+9QF_YTXR?@Ke}2K%yheVGItO# zIGQY)9Uz^XW)fm#_XRN&etx4Q<8!~tRwX&UTpsMR&onh-Wf3Ui-z1RZ;zQ%5Qf6>GakY((xU3A`nfM{@AuwUx44A2>OBcC0^AzI7;+{fbb${kO=gpF>!?K zdMjgDznRW<9F%naVAY7Gke{(yYq*(%nXNRc05Ej-h!B4c<4jZW467yS=O(8Rl%k?W zc3VS}lj$aoHRTC5o{ETvl{bJlx7x8SD}DT?E~P%v0iE+Mlbw3@X_Q}Hk`c_gnF8Nw zq^9D5nvr7mu{epR0o3|dT}C9MsGKlsXz5A0g?sbWDZTyn=SSI%A}S|(r7p1lA@sMj z*cv5~#iZL<>Ue?P<2EpSmw__P#tJsIxfwz zu>%=M@{=ytPy^goeuwal-$3Wx*5_`}UJR^A1<;Y?(%CjtUk5zbiV;QlNj!g%B4c72 zB8FX47doGC93n7Aq3A5U6lWA7ww*)5{Ux2k*k#!LoA9Fn%Zy~|3~M|gHaharlADF% z7LUWVUJr7$cXW)fi~Hr2Z1rg(2IE9$c}e17?0`~0nc5$BD+8MF=HS)LZp@P=<4sD@ z7|xi+*`;|Id=LNY#xJw4DN<@GwY=KF@k8W5qE2tMEkusc%AwiS;j+g-fU%*sfI(loH_4IHd?P6<7wPfrpwfr+(r~gdoWUXN!23TeB_J-Xo2L(q#f5b;nM_bO@oitp?GOIZM)mBn+~B9E-CNHU_>< z+Y*NhdZLY4kK88r2RGVF%M=6~ht?>#^WgVZ&^qiJ&)96YEOYtpz(z>O2eB%W;BjD0 zi1-?ii^90nOhL&%VYS}VW4601`AuGW&s z^t+%JZ!C3K50HA8>`&cNf{!$#qFUU0>e?L3$WS|d=Nm5LdkN`ehf1{xFo$P>T?k$W zo%n!A2M0ua4Z?Q#k087Z$l&}%J)C%6)kS8Wq0vLsehhXJ&{6yys#B^R$e;W>xSY=D zr(oJGC6ZZ{xq=&mk`A|7<3FLSf2}gR4b+O{RkHxU^DI_{bkWS5z8~Ix=;VT7h(;wc zB-Vko@aknhZn6aOM}5y`nsf{rm0}{|6aPoA@d(U}{*dT(!e5gxLN92-_b|^>7-?Z2 zqtib0$Dd(dy7=7ejBQG$aOgCEN^^0ii#@ZMnyqg&v#~S}V^TNI^)+7kEP15QuYqmk zk)bq~g5rXsfj`_wKeo3Y^5|xa4o)fvqWZrN?_3V_$0^HrT&!1gl!HLBPAaH8IkLE= z{;9@d)KMJ*iz1!2Kw0W7k#sfKCq94>or7FbDNF*YC*MZo-SqP4Jtxqm0Fkamn+A}YX)EYX$f4FZQb`HD;i zcdn8eqXa8!xfDK|?eBWVDL5i_>X{N$uE49sFqnO_lpCc!BQoqgAiQlq%xdSUk_vE+ z{YI$qmBFoyCl41OPp(Ah0MR<;M@#9T+m>ofrn?$AWb+L6DMQ|>Nj|SqP_$0*-%sqK za1#P)9vLBL174zQ$-ba|VED8n|zu@kKN$znq4CYgG zoTWAf^Ev2{MKz6V$y+hOt;+$QuSX~9%`RD8i`3tvL^oJAjaxn3$Y?n+X*8SLIX$#r zcK{A1@%)O#^+qCOc8+`C)R2~;F%{!|GI@@4+6YY93AR&4uvFkxh7Y-#FBgxnwypO0 z&LZBFT8YNIq?(?Z1u*``Nb}$wD#Rl>yP;8Xn(W;EzU_F$Fkl*{U48WFq^l57Ci=1` zB7^K=wM@4gf2PV{7=NQ-Je?ndAz=AY<5;LGKH`-e{a4)8fe7Ay)jfuxvS7HFgV9xTf>=+_sp|i zG)gG@*`hiQjF}g0^OeM`a$T17`VMjsOEzZ2A-w4rP)of}Jg)M5xu&DvFfO=K@m z5y+&J6NH;0CIXl(cN!N4HCx54i5lzSYID(ig<`CkCK*3AqHNizCnmaHOlW%W!9oKS zKRQwbIKy-*Kb;BPDQAY4BbWaEdl`jcF4wzcF~XLj5!Ig9{>=dz9`q8^%H}49STuhR zRD?5jHDMjf`)5$_*lpk>YGTalos_O~B_y2iS|#;p>m#)`gk<&=k`i)?c88yPE|RSH zS{RRFKe#{xru(tH#``v)Q0IK34v&%`nU*nYSudp5#_4R!IFjTLG(zXK-e<33DsnG0 zXAFFBmN2lmw2MJp7f!L9SN6S`tGA<)>*i%6VxK*&Izbw~1-nVyh1KGVX9kv%Nnnbk z77vE%!F#+V$e!OPk?BG&9saWi;(iqtm$5`P8^kT*g>A z(+_MC(cbuYfokxQ-^*&gJcGA5Yg5rX@ z>^}vBAmK4SE%ERxs<=YHjlJ3n?ov?6{3r~iVP7FI1@_H(aWZt>WNY`oZ~1Z4NXn5X zro3#XWyv6nY|_n`3*|xzY(+oc9)yNDll(Anu&qt~>o4u=QE=f?K;m3);B3tCISP$q zbDM%^vl4FK=AyD!PsiIOduHS|>LOz3j?ALs4{p#&0h36GT z&!e8Sd)Erqq06y4FI#S+sB#eQbtSiKU>;+ge~aLCA@>lv>kL?hrb{y_6Mm9T0us#7 zoS!d6{4eGLEWv^LuD`b5dMOLenj^GX5zz2k3d}Nf1&g*Cz;@chhQ`0}w8RZ!ejmx1 zU@Pb6A}#7^`dp$=UlV@tsl{eR+;HE*wh-`a|jy5P-Xi{MJ|80T^ z@^ffRFA{h{`j?LzydyoRSmgbFy)V=MUK;-AixqOu&f^M|LbSgFVg7N1ui8AS=gxj>qz zT6UgBQ6gaoc}I^Y2w3U$fkWkdyUP4ew}{{|HzroP6Vy_zgGiBdF{`7cj|p_TLb-Mq zNU{`SEt6FR2$-xtQ@P?q2~}VvCZ%GgZ8k&zD5JK)BhH~4-j%XkPrz&%AB@K!WPdQX z{T}Nd392h(&rI%5vCvA<2lEa6bD+M!EAXecAA;4mJE(7!%eB;|P$WBa|8Kd z^hPTJAfYViOMk57g3B&Vo@Pt)bhE`GH#mBRt%08%&@B2!4opzC=X1iQ?XOStu(+Hm zspEMxAIrLnRH`CD-#I@B$RGs*W;(P9?iSM7J&tYGHdcXbzPDV2fr1JoBf(+B0`@vtASEeL?S?~oSHYvzRVb)vXdCl8+ z4D8JH&m;ceMu5q)q+_B$5j4jZJ%-R8MEk#~TBm7(FlZvtu`8}uBS_Xw=6`1g_6&2L z247uY_lipO`M+q8u0(DJ_t$*>J+Lpm zj$ZIDI!iA=P9+^dJmtWyDq1Xy=`SrExy!@FMM(a^uQGmiyS;Y+2Kh)CEq%Sm00fY9 z&O|DZGF2fYmn~t0mUc)=IN6y5OKUUrgEU!v0%tL5qEK0$edqjQHH_yb`bi28VN#Bc z&A$Rg{{6K7^`g@VD#ET=7dG@W_r2ZDc!XS*ct7m9hVK)Eur+MT%8#F`RYx;L*T<|@ z*M4AVMmIX1ip|>Z4{QJ=qfzGvJSy$YV>GRY$CKVPo)%ljeI~yrrkpX(XW>x5R0#5S z2HhGQ_R9?jjIU|XQqw4uq*BL4k%3dsl(RVEiN;6*y4-C9M_)OsEifu>ozk1 zI3W&*ovbh?>kj7|uJhDlg@Rawv2eJB=-vn{3{Z#JugcQ~rS;=~{W$)6aU)E9jK6vY zs#T6xPDaIPdtF}HjQl6RF!u+)&`_?|7jFyFRzBeW#Gus(R%~NQb5bOE1M6e0#p0i#^QUr&0HF{ClBHpF(p2$J(Z8lPIVJSMjr4j|{w-?) zewIA1K7xq9u;lLM`x{Z-W|z@MN1M2}>@Hj3%9>41b_~5sU2SBs4+x z4$;}o?QMS?rO4rU?NAJ(dWP?-5W-|4{ufHhSkm%wIBJCwnM8cl{4NUsId?Be9egLO zj+PXL$DzM+0zz$-$w14zAQLW3pNu@eB_SeX2sAa+Hls^F;7E$Xkebp!(-2s2i!_>4 z;Ei!lBM970$#yzVhI#JS-n0GlvirnS0DJZ_6)BozGRR{Z_nsj;&tg0@Lo|5an;)=-+RB1r4?=+*a71 zVgK8^`MW=UtQMO-?0@<){IO$|e)Pwq=6HVnhrjV(AB@oGuHd!Fzla4b^8W+~=c_D2 zC)PUyUW<2)W4$G`@rWLfm!m{4#4K1}Zu{Hk^?NM92XohZ=N@+@U>nN|(WtbFSnG`z zPVKvlW^~W4`yv)4N_cY<_z{7}`MPlL)eIF5qUncqvrpM5Ukx?cK2pQ{&1DjZd}N!U z)(-xV_ky7HfiedepqL>Ac5y&Mxt957OCWbJtiOzoQzy6Y1>5nS^fA9ouw8ep zo}kG(Woct*$TQ%4Qt(-1^rmgp!q1Cg+>znu;1UPo=ZktkvKe zW+J*mY3 zwNRt4$NpVAbLK~tJyd-DU#}qC-3rH8c3+hk`@)>Qaa&FQ>@aCsvF7@GafHfhMJxhh zOwoVi)d|5$+GlGN`0_F=g!sp-?!_*POsZ3UAp*`tYCk)GU%Ft&LA|t% zX}9;7MGH*~$aZ0!6g+Pq&Fa_t`OQIrQO%&-7owUc$28qI-Q>^ea^>gLJBCbBBNmIHIT}MFcYpA`Mh?i=PN+0K4-CfRP*JHiJvet0`BkVa zzCGWN^X9$UJGI-dF|1_8VWoXbjjltr~yl+p#_POJj5{-^@OS1}2Y|!Hg#3lYoyE%|nMt5Hm(_9=+F3|+T!E~UW zV(FY9CAo)BG${5*R0ub+e*%zCuvSRtyrBTnHMS;8w$^fF1?HGyv_R0rkd)I0rPT>6QnNRR#GI5QQYW32D?~nYODalc2WuWTfd}pi z-qZhg>W$d7GU6g(DdhMP1i~1BfiY^n41qhRSo6KT=Rh)>`ef0qdcI;&;eKAI7m8@* zFVM#4_&Q;+Jls)xS_ur=OH#2OFCyUriigb0Lw$=^Mja#v=G=|Sk1J)(bdoKVL*bi; z@!xWUs!x^cUAOsfQxUn%__Wnp?B-1y{s(PSb1+9A1@i}Oqd!0aXq$+o-L~`-*m_J- z7IQy@kHQ+aQU^9Jh%rA0VIJpA{jp+PDQP{aD*5@Fr?*Vj{j17yeK#3#F^k?5nC=7BHt5vtHxG@#c745Kn9TTDa{vWAA608o4EiZFSV1m+etft+?Bw4~ zR$@()-`r2-)`dL-TwDkY=jgwnn{%Rlv~Kg_6ObM63qK`K%I|wdmQqm8L2s#I$s{p3 z!Jad(bC+S000ni@2O>+dNL~c`6;Nxso>x_xTm}wBEnyh*Y~JnTaG6!4Az2h7IX5pW zR}+wP-hL%7q8(@8T-Q?p+cAF>%iqN?&;omxj5@-b8pjc>EQf%3_kB2zCB_hE{la)NAYTq4pvp>^mWJj*TP*Sf@yln34jfJpkL_krbn>{|fx?a_H&$L=Q??%|BEAX4%5ZTgx+RnOz zmbSNjo6hiFqlLtISS{{7z#%4Rp$2!o6}mfLdzQH^OfrmK#&yVDpYGFJ4_aZ>9Qe4j ztR~|&Tk>n9v`B~J`&P<7uu-_Wv6Ct=mZ*%`_eeJkag^?}*+@R(KEsmJ?$BxLn3;_us>_+b*IyU*)U*jf_9eo9%q(&Xi{?O2GqN$aw^MC!4Sa2$6fgeu8 zp=UCgl+`v11)A=#4`yrM?|Ya8TmR=0LF`b-#>cHbHpiW)S?hiTZj1?G_*_EGS2~HN zbG5ye1e}oEySvkplZ#pJL3;#RkdX3~@J-v*anzSqkB{`mDtL;qaB~2h zHE8#21be-UPOG@jocY&pkVB`aKb%ShrYRACAVTvw;*}5@f99x*H=4}lJh^ucXx9YY z4(B|+uYK9?OPXgi-mBFbR;%KsI%a!KD>m43DK}gob)%qo*J?ERBEGoT#pG{kd+rim zV~6+w0b}#adY{6{N|2;PLM)ByLC+}|7U?@{Y4vna^?7_CRm1|%fZkAoE{r-W5M7pt z>cE)?yO=an>Jbrwv+`oEF&q(+N=3kWyAt4MH$*O#OdZDa+lQhhXE(!Q@oC=`NeBAW z3>YJ^vIkhMx2VoFufBOfZw+=6gvM}74mVNKU5U4E-1v`Gy%v>rS36)hC)3)02#18Y(1cJ1Vo|-jTu@=p`_^~kvgDS<X+7oL@l3)o=TG{WvkIQ9$Qwp3XGx9=emiM)F`Jv7{4hXINy6)LXr?Gw5pp^zPbR4j_uSq}q!AtfYtrgS+- zu6!+uES0{N#o~8)G>xhX0mL}I@b=tU{N~(w%%`{3cKf>%h4hr)Eyv0I+}{#%kG}%zOo~vAMtS2-$2l!u#V&dX_u<2HlGL4tkD$Ly<9d@~cFW z2I$?K<&EZ!1PO&VS*>OxMxIEAN(}bZ}XmNqVd1YpU z`1`V@NFOTW;Wq~nZOfb-|0rk9`W+uQQyS?}AYYZuvm^F>_!CqDxyA4w_ssp*OeQ&z z+uLv)pF^)P-KI+cL&MaN2c6TaJFOj7%cX|U^14;+6r0Xx4@=&cRs2TZx_6&#jttY* z*$WM@;A=rX3)TJ9o^5s|p9aVYqIha{lyouE;yt(P0;8U#9d1S2HUT?Ss(W*BrpPjR zf9$<+afdK|@0Vg6(&yyC#g^RM)yud7)u~``%Y?^PTx^5u4X8h4F6blG(4o;{bxnrF zLy&ivfLMjkRlno%oTnEIdMb5~&1@_yX@389ZgROh7N+bf3I{4g;vo$)`$H=6;^Xj0 zMEyMdR`+b&r>@HmDvU>?(+A2%DGZmbJn0shJ!E8ix^!8*>t(&+NVodIO7Xmh31-R< z;Cp-YzHKwjX>597<`9i_CAfSr{>g29RP5BXgb&$Q>1kvyp5dvD18RW=kf!qRm}j#- zdf!A+#%wyqsiCun7I!ji^xIs<$I%A;6kUC%iJtU_d`%b$?KXWAgi`2`_RGw=FM`hR zu6my(PcAcXkG-tlzk6FQn_+e|2OjJ7!FKrn3oHu|#{Q61ik7Q#ns-;Rm5DV<{9$u3 zQE?Vn$BqK~oY_vUlxvosP}}Jn;~i4#DTgrzv?e#l>!b)>=E;Vm*D#hnzLYV>fXGC z2AX_ss&0s+Mm#leqW!Q261R;x2qVqJXJX;E8ct$ayY;j2?EOU3pT?7h5_gQnFHU6K zUQuJeAI{n_TWzK!yToQwT;xiKnEQLH6y(AU`uBpBgKn1)oiJ=9gNOP1J~){$nOm8i z5A_!6=+Z=y0gz;u?)cWgN2oR{DS( zOq&@shPB{3EHxbP70BA|-QR&#e}CXeqp%%X1X)*q=uRcox!4P(l4!i~Qp3O1bpPcG z#l1biEo@zAC)$^5Yp1b}Bs}`~4gIam8vbxVzWdlkR=k z#7U8kM?T(}F!5~z9#peVmwxYsYu2N9e8w%jf-9j$KLeJ}VOR_*^!f;OFiY%}2;J_x zMJ)L2Zdqbz8JVe&Z+><4LxV4VgFJ12W~g|U?_x1xWbOk5o|yYU=VwZz`~Ct?qtwHr z(F;zSrem#0z2U;rc13x&$idXX!M$?yC8=TF-3O9Y|;s9jeDV^;!mt(a%uc-yF*D02~?X$RR`AuKj87P z_#VRx)Ry(V^$N20HlJbI*Su%L%;N5pPx|{(s3cDq-Hb?&B);KtIedyF6WxLBMp4wb z*dNAl*XVkWNA)z}8L8e$v>d0B)%D`YgJ^)-+qJh^qsh~gCMBmt95=D;B9v_$mGfp z`CSFOF5^KY@FqIO*q#< zxUq5vS@Aq9MzfjSTU+N*qe7l1`k=bZO}I3JwbXXA(9}RCytzs$ohp&)ast;q0t8JR z{1u{4sw)+`89~o)kIO)OGOB zI66N@L~#1Xi%l0ecr64;tul{gq?i@>F(x4QUr{<$-)K=aCuB{fuq`EE@RHsXGvQNT zlapR0)AWO62j4^cVWF29&`QUJ3eR>3X5CFJX9zA=vV zZGfB;EfdUA-<}S)NOEtFW-%;t5Vv>q^(S3|*<;d|5bUO{BP|4zmhn9K-SAb!^hlt- z_4`Y}{yC@6rW3rm$S9eOno@A8xFfn9o>?l>)oM@7vTt>mo*t&8f6lo{2c*^LyJ zjYZN=EaXrWDc!Xa5(0K~=uMR$e7-Rx|C{?84JdC6-VMI_rg1!i?2Ls!JZwC-Av|U> zARW@+awFznQ=W6v?u?brxRj1Cyj@zT^82jow*IihZ!KI37@c>AS(2l#XNT(N?FxJs zKG)tC!p%R`#*L*=FqD?A;UEuxbwvHO_63p>=MzBHDmC98z@QShVtw>QAkw&t_b><6 z!F0}qnN*lePMD!a2}WvZg2gPk&<7U@Zp%Yl7htVv!H~^7pRSGI5m!^ z+4`d#62UOqAHa;FYnH`kLs&wCh%SoXXG*!ES+T7mq{|QSxLu?CO8~E7WvBd}M{NM> z#>sktgkflJ6psUkXsFG!x3{-sp&q2Au3~@I0drUdLf*!KNc6F>s@hDGE{aY^hmiA% zX!7Juh&NuWwm-|SQ0(&nCwUXh^pu9Rd51*?x(N0CAW>vGPh{UccARztm*3Z)Rz(rY z2>5u0`1@lA*E$0T8S1nv^l3Q`v-w9260gFMbKP&Y4Q%kk-w|`psS_aKo&63}tHWoa z>p?*}U36zjI9b76o`DS`3T1SJA+_~f)_*2c#@rAr>!4y{A{ ziC!$5p;8;@@j=6oZm3;yZD=a zrnO~JLVMUuP!SLO#iut*Kn-cE0`Ula%N2f-cN?V_3FG>aC|^^?6yB>TXFJ53bEc@q znouyX4}}lUx|x$9Rg$spUGnjCvv*pjP8;dx_9Ed#8*5EYuX0Y&Dr;uj#gn1VN-*9k zzQcSiJbrz3G3?JD0=~so6R&rN)pgL;)s>}Qb<1)~t6UqNTjkwd+biQjhJ5Nh{11C~ z&=FCFA7!29IY^(L-0d)RV`}%*a1Igofe6ldt$8u(C*HlGO#))-hCafp4fTZL^pE+H zuNb%c*Cc3O1zk6YC2CE9Wo^Jm+M`@Dqn*mInQW&VfNLOSwW(=$nmH z$FMAatK%o3453$&T|n9x|K*jIqzA!^qmWlwHDMlK&Ul8a!HoRS6_WHVwRc@oBu2Yq zfdLhLW!d=pBt}0T$e-7e$%{{)-6S;fb*`apJT(QbsL^^mabdx1=`QsJFH!xr{TO$01IGlZ^PCp?HV1tZ{fzZ-5bb0HtD@jf=bGw-fETRHDAVho4d* zTFZ=rN?`}IZ!Fl7&39^o({YH#tRU0I)|HGlaiJ}wX2(abbF^#C%YXZGBSbW0LQNqQ zmyMXsn$zDZ%r=&2gOQBSb{%iN!T{-1efwv65a<0_1v~DgD%y|k_}W=5g$8??xF`si z@raT;P#4i9-Wv5pIfY_IF0Xsi*Eet%o~RzeW@u0Q!0BcI7Fhpv8?m4mfQk7faji@m zSPo(Fph|99TY1+tgb21wOvtTt%Al<_IrqB50-gAvEge!g2$CK{r@qH|+_Ov`P><#- zyj*2VWH7+LFUrr4s*k0AUY28}MDLt>Fly=APUdk-f3OPC#wzPBLoj#=c{`kPTebZ~ z_%=^2%NVLV5R|;m1lPg`CEwo^$Sf-}V9}GkqE;?19LhWL+-9xbP&Qm_F7oB1GMO2u zGH%j3$id8t!9-FtM@TtKbD>w<)a%hbNH{P`-a9=xFj=pUrB-*^}}Une36a z$own>X1GlBrZ4p9GnbL~_Z$hSeX7z*%vuVp82qU5iJ1Z?{KudwS=78O=IHQj@}ivG zo6lZHnA9BX`1mdydY5YveD3?Quqx zf2AVv8GoaAg_JT;FcmL)7fx`3Pp1!SQ_ns_a+yg7iO@^ z({+DC&3-MYe460@u=kcxRlaSzFCZYDN;iVi(jAI4h@eP!H;9yUcb7CGh;(;%cTBpw zyJKDWU(bHuwO^lStg%0D#vJp*1m>Lgef4?%&f{3!-6{_Lq5&e0v)V*?&KU1k0QBn_ zj<>|l2X%dwIaEZkf1vuvYrd^Z{&`~E^vo6{a`JUYL50@Wl6sy;K)tgDK&0KhOqFBr zlk=$=s<=AWLSLcZoGo!_;UR0;gK@n=MJg&EmS}BuXx#wMzxPbx?5l0E6Axo0*zdK` zL*EXNy|(}bZc{1#%BOtOE-*$Pmw3t+eo`Vm-GeV{SDQPqO4d!x;s`sjt~d7MI>06s z(EUoE6s!f{P_`2^5wZG~TsN*b^6fdb|Tx4Uuz6fT)QgH?XU2^ul>3gJ9Rc2lZe^xc@rU&L=8ob?|FQM z92ZixTkwF+spTNxr|1k%^zYEpl8e$xT+`_rZ1``9BwLG67#c_TH;#0ClnnF~`p8qP z_YZ!CA`1;q`Y>8R*+l|ZEu?T^=mT{B+-H&&a)x!p#pd>yN#lUQ0je)CIL1Sc?s0Q@ zm;E62_L1p_PN+=R&E16`mw@gM;PyaE04vq%%M`Eg@Qz94G17>-&OBdm`jZY~-JS1MpbX-ygU}_fpK)Q1IrtU2r4lbL>}*~@LsF&B zhRwTBVuiC{BY~xC(orBf_AUv^)$sO?o0ef2w%Sk+@m+@3^c-{Y!P)uO&*H2%HAS)f zYq%2)){aj9qF0f=pUx|WkPKZ6N}D+f3Em8|aJ!xT8lz26@2DeU@rF<7jK$d9^ND&l z?$2u#5Cqek${j)^U@u}}YBqvG8~iZU=u0#_i1|D%zhvpIxX)PsqFYMtgQP*k2gGOH zDen!+nO^!0Xhcv)Js{xvPM*7?DQZ*3<3&O3^H(dXM4OWPl;Vc!Suj`fwpjFCnTBGf zstV5VtfTc&MhI~srab`_lY;C6dpLkntB7|m0xn_bh|x=ZvE8}>O%L~#<82tC{(hTm zZLFersBLF1s}a)F0%dbQFCO+DjbIdT+nJJwgfk%SKm6T4iM&hrBm#?ROz}z~V>62) z-7}Cv2J?9)0);qcn=f2Ag-mAP*S7}@-jU(qu;)%21*K*ji78Zxt97>=ysU)}hIT#i zH~S}gb6dq`mp)+JC4({@%1Gb`b2=$<{^unA4_R5~3B{0BufzGG5mU-OnM0VX9fcpG zn$jNadD_W(AMI$(0-ZwO24rcOExvjwoKG${8mWD$!^Cl@ zj-h0~$d$D@Ezg%7wE$v z^bCc9Y9bt@^{;I1c_@C)C_+v%oo#w2I8}NMoCbR6f+{3x38>b_KihL3TMA;*yBJzV znqtc7l$*C4^N(ya^N!ctoE<#G{E7+e@_LTcoALZcZ+hB`+H&`fPOeGJ;Ji*&@>v%Z z$BBKLQsBkCiEd8KONo081H^8saCRx`_^B0v?il{uX9K-Y`>Pz@*7@*;(&YXU$8Thj zuT)b#gTwT;hEiLh9h2Y2_eB?4b3YV27h1w31PaAF%+6ajFnl zzk|`2Oh^t8obfvJsSb|dGfI(O)93*Uvk~RON#g%PU&P&DBRLuv@2thoNb1MxN&*Lq zbOfyKb1F7w?ol%`EEzqDoUgxBT`okZ8eHVOyr{2~_R;jWt|yF!IAk=xa3i(PW?-Mc zR}kg@EHe$E&s_6X3mcJuTD85)$E`6A4brG-mG^&>bb!^ZYp z^>JKgR;a-W!8Tx#(8RS;tU^bf&)L~&^Yn3XT`)VE#CO9rZmDXLTwS7z&G=T-^){dB z9kO?CM9K6H+%3TRS)UzXj{=@EvKXz=WLk4TNnep6A{D00%cw)mofnTtjPt0%ms|tJ zO49?~d$V7Rqqju{nTm^T^04#(AIynMK=NMgd+oxp)VgqyLx+k`gP}zZ10gB@1Xt-;zaw=f50{~F#Y>c_ zT)Vv2^x_5?b}7_WvUhddgH}Lzcc0DHE3nS! ziJAqMAN$Q<_ok*@uTuxowKrxs11?b`ibY2E1YAm-Kq;pr&FH{_FWcvcD*0jOPzo|E zfr~SPs||;uriYW0P&`)MZ+v%j3PbxZPhvzKev4Gro^wC%Y)27Vv_5$Yhpl75K%d z*6sDjmbkp5%l=&A-Z7`|yr{CYSdF0`{F;&Dy#~_g8qd9}i7^W0aQjT?P6b?I=oV*B ztu{qCN$kLmA4k-c%eK@NuSGvg0piM~B3tU*Su+Kt86^?t@+p-re#i&Nm^mDR4@Pl* z_tX5n%g{nMF|PvS$*PTTv|>5G?IakvEl4kZ-nqAx)Rbqqy@edrt}5F_IWGA- z7muh@hVJCM_(pBY+#kci{~DkFfMwz)cNpjTQaS$Vp^!q%N2KpKW2RvCpM%*Ih zT4mnzyi}S}a;dDVt)icCp>9aWPens);^fvy`&zhBSYL|PX+Qlr=J`4t>XX0sCqRNd zVy196aLdQ0qTctvKQfeyx>lK3UpaQtRO1nl!`T?dHTts038JfqJ4s#zYVH#qPiC1C z<@+{n1jtTAONyrXtl9jIFG6pK=Ooa+)L21#vd?apRHsLMSXz59X|?DXdzE{%f>P|z zI~>&Uw0us7;H@p9uK6xeI4<<^In2iih#RRKCwXB-ja1E?AvG#%x^28?wZd+Pw}%@+ zC1HN>2O>=+w?*fqyPKv{#7NG(){{hu4Gg=~hP;K_xFdwwhx=or@X8W^*Pk956iOL`nNo-JXho^CQ!>KqEYKs z;d2M931~+(jxjp&)Ba6|VK>3n>K?DH_6?@K(JT3ABR~#WLyn*JFHpcamq=X5t##v`HlOtY!gW`$ts`5o`(R4_${UX7=K_BB&r@P>8>ez8 zUeo`Y^U=9-8CxhdRTI!vPGU0T;MS(b3}$-vx*>ZhjDU3GLtE860#ZGr9A~5}UiA*? zc9-^bNQG{suvDF0L1OQVa3vVQvplM`yN?5wYy*Te${IR1t*3vz|1TDeVYFy+_n&B1A%d4e zq(jEePfM=A&CHfsTwG$!o`ITp|M$MF@o2t|dqBhiL`<4)5Th@cw(mmpkpKQY$O2#^ zO`XMXi6meL&Hmn0{~ABmkM&8Mq#ci1!2ka7A_C0kFFbYsZB@%ZLDMS4p{HfosdJWs zyJa0BAW(KHN>(ipG(w1e{%^!;`DEO2hEk~ej{klk|M2o;USJkWeq+y9`!~Pr|L6Kr zsD+@XN4=E={?nD{eE?0!x*2L%`JXQ2+MZBRWdk-tm}$3tOB9mVOlsDA|LiELUi-7^NPZ`l(%J-yJQuAlm3j9 z0Jnw(nuYiA&NxtdOzjv-Elvq-%~TbBqW#=WnE2b=6HnunCHdVfsa4}Hf4$=RJ-1?L zk|2fbxLc3uOuz46$Igpj&=0+>b!Z>^n>Z#6q)<%qFcYI12Zx*^vEMxYvA{%4V5+@R zh@?A$GI55@+T8mRC3iVuPxM<%xs956#WGp!&$*~r8LU$;iZT)3g}<~2MpRQlDdeke z3`Mn$=(ld11AM2urIryL1~y;M4!9B_HZUf>_nsY~RgOdU7|j|KS5o@k`?=s3 zn}_+#eZ<|(laDo%dU1ZZ!EX0gaom2I_R-})76h;+dAf79&U{i;`0cRu zFD-x`1#DnbMnQ>vZf3JJq95SzFJ9fFET4|>PDBK;AafsPxrj*@xemTlw8LgbRx>0V zT99aDFq>}vruGNaUbU_})gS#CHkcykbGq+}#~Zy=Kz=X~2N*|I`>QAMts^%reC`hz~Dg*YB8@@;O|wQQ|N_2s_SX+@$B>{vwca11KJ>g1XsI zTgD6&j~~LCQH2c&*rwW`_CFkz@IDwP>}eL2lxsi*L#ARZ!;LyTn)90y{n9WU4~Ll| z?T>Hfihb-Ch#A;T#v+=Uo+PxX&*=8`|rUzs#=hja?C6YTF%v3IzC(r&FT9rXftb?bZMnvsPZH|;3zu;ZjJ5VY^{hW4| zsy!$!LQw2~rZt`;n4wfW0yv2>qnPDP zp8Z-3KbHWP8olnp;SsI&kB~*Y=hj|cLJdU9ZIG9_uE!gF%ai-&$j{R1&BKcLL3?k- zLd{yN_OC=O-jg#NzhG-p!NW$Q?f{~dtE828uW~O6Vs+niVtpDPf)ieooO~{0%6eX3 zT#Y61LEHMp+sDpo0T+_!5k`6z$C(fvU6Xm-m7e^D#iBo(>)XKZviD?e_qWHFD|;Eh zH#)T7bbDMDjf8JiX`^M2ya)(@TphNCr7PG05yh>k(zwn6_20WeOa_t%^Ml{xLe5q9 z0Nf)Hgwvk^-0_B|m+RykUHKhPhdJayetT}WU~gb+wDpS*5_C_d$#^aHcrpO^yFl4~ zrtMB_Ku_FkTdE6(2#_mR{t~3^`ZyT7Uc=h$PSRlX0W)|l4TQo7kY9=g-LM^l6B_od zO{E2Y25{c)>upFjIPFKex;Y4W)L=Hi)5xA12I`;9ySW3?!63-_&U66O39Kbr;>6=V zu!0Ij!33jk#F{&3RGa@iA!uJt`euwlPPnEZd zC*oP#&kUPC1`i-Q%W9g{PMOd8)IY!k!grMOQp9OLN%FUYoTcFLEjqd7ycdrSYmx*E~lnq5(aI0x=r-!m{{S0 z-T2IJ#j_*yY3_ArA82SIUnZJy5hP<@+haHI)X_U=N7V&~*K-#%j)Kb4UciFppsR{Q z(~&Bbvdp@|04Yo&L@SWMa3EZ+kzMIujD}*Q0s`?2pt7#YqW#G%K;FLlm1PlU&&Dj& zIkHl!$wt7y9h>slo7+EIELpVpo>yzmIAw8@W14t-*V~iCUE1gGkrQCjo2P6OoOVXJzrmuo75!@xn!C#Gz!jYWfJ|h$XL%*YsAq zID-{VlE0aoP3)3WYFYS4m;>8VEG#SvFL-_?&|{)&_jBlF`NtLJgxbaXP-)(4-QU8Q zSPM8`zOG&g<<*H6wBLtuT=Hpt%s=Qt6O&oiF{_R4&e!vbPS2E+mxu1mj5oH8MU5Lh zy>zev$Dw{FKl8_PpT|24F6a9qq;AB1n4Pt?+Sp!U1(L{hg@oSgrZX51eCXw_OU=$+ zI%JIqCWtG|lLmq`oDt!5wBbw4AhE8=)K1CGvk#8u!=_k71oU)v`QZ@@A!81=y!g)Y zCzK&S^K3PHnx>wx4@A5Ug+o}`RQ!gtcK1beXCUxN+*)__P3G`e@`z4{#g#?eoJ?zZ zSK@ZblbtynSR^$EzN0gNDVzOR&7~&frQ_Yorx{0O>c>N;>c{7S*jT{Y@&KBXbY&uG zY|o$cq*LNdETqS)HGTC=zmv%N;pWO8R=utQTFo|VC_ho%!TD@_DFLm)9bY~a%3B3x zxV_=GMtv-P>}?c|fOd-?i}^GP5LL?kLdv{s-t2X_Qy4bnpmYg}6GY~80Hvpg&tX;- zO#0w~M#G?3kp8RG7onBnx82^i4xZ{Nt%a7CEG=EX0 zvdFlux#rDwr-XgXZ1`9BkB0=ZAF#8@y%C%hCpooWRwM~$s?pZk?95xsVK3OY3YVsN zw3^5|%iGFb)m~cd@mMXUQ6e=YTHpIRWj>}NPcG3tB_{GQ@bSq(jgGU&=7HwtC?fuE zpBj(Q*XDsDD_9L3LWO{r@u|pVIQf&g&m}tT@>`I?O3M8{{Mt2};dBw=nIzoh8p|eY z<2la7OHkh}OLX7thjNv=qJg@mUjI#@aCD+Ru66;%+i3Rb()V_D{EK<9P$FxK_cfXg zMk#BDN84KO;NgWAn|_S0f_+B#0Aj}J0blVN6$ihan9eaD|C#YjNFpaz9j-mmg0_=M z&qt1x_pLa#ls)Htr-o)76e=f$bCnYlx+>^1Yo>9wck-K5GcqUk%&Y0^%{(y2>A^sR zb<*>#=hv&DYGDGyTgjPu&Ep31vy^d_&r0vUTWD5U|1fVU#Qw_N;PyB>eilBkM4#m8 zn=(a43MnH-MXT(e|28nOctTuZOgLy1M`1Br7LQ127G$SZM2v(~8ghI0y(6^&OS|?P zzhoTg{g+Dfxd^(7{FlOJVJ_vJ6GuBP37lN?BL?qGRT~e`rqL4WZkW8M1g5N}aR{ti zInKkd6E0e9v&?P=G)rafPs$1kxt*tWMH2IGJnt&bOE0E5Qmaga)r|}n+MkxG(OJeh z-k1ySqK(wBdp@LNeg`^*GsO1KO3eX=Xh0oWiceZy;dGF1$@_J)=vVHi?3}$QS?ZZ! zJbl&%boM<^0B+u4>%Moae{&#-eXLo6z-BrjIYl5hZa{Bk=5iyDwX?o7WuTTa$z$)@ zaaSJyCpbt~0hdb+p4*%wwIi*)Kq9Na8D?>>5Ck&i#r*W9>H6X>Q5l?TXQSd9` zmzp2R$8A@!)D^o`5OYv+nYy(4))#OO zS)2myTZ6#zor1bpDrRslmU`!riSOvN>*bQz4B#Hj*PCT4S1vV54f0WENt}xU^7VVg z*iwsiMlS)1B7H)RzJ0Zkx))lfBzE;`CK!Im`O@%K-Be|l6gC685x}A{H@X@)Ms<#x zU^ZrDay-58UCXGL@~7lreKA|1)%;c;Rn&;`+WZVs-fz$%WuAzse_F-ucpQzom#f+M zBjri(cMDdgWV7|PX9*pD&TNPji~DLM5Xa{}Di?T4p>*bI8#R*!=AvDt<)#~|%B=meObz$p#8&qJeGJe8P@N~cBbc^*=?Pk{INjY)V`QmlI zl@p>?s_X4hmId8hwN2dKxT5Chou2m!o^jrek=X^R0hSCu{0D)3``|)j2GhRpM=Cg> zoU?<<&=(q2)S%)~er|Q2Qx^q=4Ryb_KggbNAK5zCFxuTvMmIQvl-`NPjqTCkkzL|IiABR)n zIgL}SG)tK_qGMHLVSyoQYlZ;x{g3=Z>Ae=1pv@<5w7@NiTcPC}Yj|4Rc^MR}Kff$=Jm6gTf<+Zh&3yp=&H+%M9E)TWmI9**` zJJP8s2rfXUG^(G(9l%k>qqyD9Wilo5jU}*_XBbi`FS)_@C6!WQ*40#9s$7Wuj!8L@ z;E(yfKSQD&NK8!E99u{I^@C%8Fr^zHYq%dCHlwOZ#}hx(y! z0#;V8&<*6WM+2Pudj*-((?8{W8s?^n`xpUL&`uG5n&9t*5PbWn)fJ4>Znxkb@vh3x z_5NyuO*U1azR$W!>h)j?UEwX0DEB@`)x810n62^v*4|;Qxyi^>nMndl*t0uR*#De( z1F;VK_vkv1lR-6yMEl(mezkt?`iQWNyb#QR*!biLdS z`s1-I)>H2uGhYHzE*U1-IVE?OcG;hE66(gbsWvhYRYcu}3d@KjR|gqwcoo9C-BKdp z9yG$88CkI{`SEE_Lb!;GyceaG&btMIFHkCfxQDsOBW|i^6}&_6)M!2sZQ)xx0b>+PH)DA1*Tv+f6Pt}xf{mU!dCnO|!xRQB8C#-N$z--W^M&X#7%sV= zs-;LnlXtF`k);JL^K?h+9Fa53XT(Ah{U~Zsb*{q6nIwUh9}tmYpdI5d`mhioP>c+g zmaqPUU8eL!A&pz{I(f+o-h#HJ5tHdiE;(S zHNcH>9S{0mGkFMOO-y8JFih#acp_LA+4* z^oBxi*X2luT|v;^G^iG%Vz};$FC8A(!9X^zNbF#;p{o9}mh+27xg^7NCG!QWQ5}@; zW(W^}PW9R48tn-$bV03K24;$Cr++CHqw;a7hJB^^%<6aaA9i~x+XdUeuSw2&MzZ%{ zjM5!9IlWrR1^zlzi|ZQ3PBc7g5flr z%zs;Fp8sH`#w%drvMMy_&&5(d&wA9jUdz#Gk10*5gPQPgF)c zL099`v@3USct%16_l5fQiv~~Q+{Qd*jLX^^w_2sRiK|}*H{fWVp)-2C*4UG5Pc2<1 z)qh^H?~UnRR0Bc{D?yhU{q9c^tQ}tO z^dQj|+37^CeJZFFn^uy5$Oq{t?ih+Kzo0)oc&GzalkYo1eMs9R*E73rXs0_ApG`y2 zt$RJSygCeK3VR;rCysDm^w|zI_N;8j&VC1v0jjr}QY=(7h@;@$C+`l?m5z=}o&6<@ z`>1IHC7;#@R<7m*0tgG=yO$i#=r`$rZ%;V0?mX*_i^sLJ`TQ-pADpvJukIf+I4F;* zf!qS`Wl6$?>Vdg(R7yLH=}I?g0#1ufm1Gr;T8lPskMHytloGFN5YmtMFFx77@KT^{ z17j9kIc5v*ty?vUcd=82 zXZyy=!n)E$iCfK)jEui+)85rtte2p^O*&einn7Az2uzQs7{Qn&!Nv-r3=w{}U*FBC z6IJ6CsGHguLLYUqBUz)SkAhOv@jH0mkZC_EQCYP#_qjk)?4i56 z3sFBQug&bLbwn5+*GrThFT-v#-3%@gIX;w48;*}XtqJOUK9A(NzF#4@VWf^edpf7YaL_xXp7gT_L6 z2oZ>Hu}?^RQJb-Frrplq`OZdLQDn1W;j-yxi#03JL?!-KcrZnF=Y{uoJOp&t?|Orm z`oWyMv+v#aE{{m@Ot(vQoNap&EgLe0f6eK4yzu`ngdl9E{>0Z>catM8oBUjO(@)_m zq#(KNl6<@yl{s$)Ny419N7TI?n1cwg=ypiwc5yW_zaVN2A&*qT7F)hRhb9$v#dLPr z>r_mFV~%`8HI~W3zn_?>8L#j_wBIV)Ln`DmB_&G@(6_uRIy6gDysYOukVC6lN(ax! zc3x4Fc&k#<389z`FKe@6{Vp0SbZf*DZ1`qgQqVX6@%|-4h)hj(yXY0LuD`9!4+$k; zSFzehMJTF8DehUb@4;^3r!QE!^!D>hyh)L&3Ep9!jnjt3qGsw4Xty2e39p^$wm43a0SMniIE3q+bJ-E%KB< zA!f=)%lfT9T(;IN$C326)&*tYX))a8k3VZa0U3`WM|$1!MaCx-Y_nR@N=}jlF}+Ma zUksx{Z7w8EnCzsgj_Mt_OISc8vs!LLv`vND`2lqI0^*H2t28#V za1sipw7b0$w=pT_Ibwz9KBd{nw4OziFY?g-1jVu{R`uUdgDso0YfuC`iUv$ZeG28qb?!@6Lsu%7YrY+;PIo^Sz9Aq*HtgRv{=#yeZym0~Syy{PjlnVp zg)(0#0#%2j_T~;AW8VQNbW@{VH(Rre+IBeG0JY+j_6io3n`(=Wqf^@VA*tytm2KDEl5kixL*3X932Y{%Cc z`mPrn{Q?IxKFD$5KssV4Trbqy>PcuK7%NyJWXv1mRU;j?1+Cm%6{a&UQ>DjjGUCl9 zf`4UGQ;Ib(#13vw^1uvZ{PcazlBq9sGm9wB>wKA*04MN`TtndQl=Yf9igU+q!}RUw zFPY#=zV|M73oiDktOsvDg8Y^rCeB7YuFDh~|AS*FR4Afa=TY;q7^zEo@9PS8g<~Mz zbxOs%pIT(8rNr!ZPeg3}Tr)T6fDlB-8meF3v;~u0PgWu3QXbTuq;PZ8^hz<+|88H@ z7X`9mrz!YMOjf%~RXw|>^eZY0U=M%RE)syH-&ZeXPFz0mL)ZzTw`Dgc{gz4AxnA}$ zFdp7*;91GBZ&$IisC{y{=Vp5RYet!K2iTZb@x#hr+owz(7ifk>M`bYuYBtwJa)!y~ z;mRoiM`W}b2L;JzbVe3+Sgx(*b`L7b4K~%mW}GAb5tZIPGs0YJCe_BZG?a~mH2wP) zvA;k95DO74D3VXqVZh*)?Io4>cS2MINI-u`d$;?Z@!8;T+9vA1{SDRsxUY|>OShi zB2i;{=OQYxt3orfThXB+KjP1udeZ*FQwALNo!-)u@VQ0Ix*gqu4`z1Js6nY9Cq#&x z*80tiEZN4&oVQ10CW&-4X;c?~4+R-HjKh11T}EwZQ&&$fqlrpX=Lrdv&1x5Z)(0z~ ziu-&ynY(7<$*)b*`MOH#yyVwQ!mQ0Yrj^)oROS6eryb1Uc-l`26yBMcoSBsqP8@+f za)?c%lJP%laR7OE_(_g}hS}qsTwPnCytXt;K=4gQ>|SX`{+hSK6vi2Pqi-wf_lb>U zWyo6fOLr$)BEkWP(FM)QLZB`VL>nSk-4&n<-vt&Wn*{x@}0%pi_MPlY=$DWtf#~fy0X(Y=Aok ziNA^-&j)?!dCuQgX>2rag`HE%%pz431Qi}=a#e4sp$jPvk9!MyfS_B*xbD;EDX+Pw zuTF4-{jYR`l^5!Bmdt`xVFqBzW?*TGm|q{d7yq`%$7Tce465o*^cuJI1DErSZVS(T zdx-pZZb9!IOzpt5dZGeNWUua=Y~cOUEFRL(!>~A`xZ!U#kXt`|4?}auE4y_pA4%|T zv#Hc$BvS)7`%|90B+lM&$)cU^eyWXai*Vo|iAaA-lmrw`!VbjpwX4NL1R-boSD3d| zrtUth!qb%Q0SSu`LPiok{KY{BV6q0B!)REO#$@k=6~W;%N}Kc+y+<8OW6LF>f8-V(`eSS6J$;3d>1R5XqZ|qks z8#Xu7d#v6wA<^>yq5TUs$@hk=`daL>EL))dKQu>%0JQYH-~T~lDv@1(lXAz~Pn=P_ zMZS_^cu-->;nR;_ z|C~hY?(e_<6IFZ>{{E4@$l{Hi`%kybV+?RDJmnWqJO2?z`T7W>@XQtO{znPnj7JIK z?E0rl|B;-^_z0ssYTP)<@Ys-546tY<0ye7K+EjnPm~foO%LsA`F@GFi1TbrNLEmIl zCo%rs3&a5<#@_G~IW&5n@~_?azZypfyzjclKlke2JuhN{?!@mIZCh$hg|L!gR zdHw%?qyMXWq|7f*i%j)rgoCCwy(oP2zv^B(@dK#0lEt*eH<=k0!yfvEYM1uL@W!!M zAB71%87;D#>k9u@yZ*P)7by#R?J<4{>|m^ zbb1yG#mx8Wg*eP0Y)^+UVR=13@v|`Y7a?WWKmPs^WqdPiL8&WDjDh-3DSPH^RC;o~0g7+m&knwWlLef`O== z^gZx#f{^!aI@^iBa;AA#;3MMSZ(yTp0Gyj&#L3znF@%eKS?yZqkWnKf7ii6K(5sEm z(BC6cOw8xOG7Y^SmOK(H`ex|XlIvwPAOBo;CqBdNxM^rwi6--#~;Xw zPXy4b-J`heoiF{O8Pt_}Zg6dH-VlwD0oH@MX%C)0^(i}P^m?0NZfa4W=*=+t=}U&E zbvi`?#b>Q|rU*_Z8(g_W5KG7xVM+^0rHqTqD?4*dQDs4w>tJsmAN}b4Un+u?<~L#> z(koqlt(%L-g!gcJ!eoQixG!Gv{|QBU6aN@Xn5pu%KtV;7Ik%it4IA`k(R!2wC=(&e z-WV+#m#R3o!|)Fb#8P{hgKL9(s`&*sbB51l0mHN%pKJMa90C8ZmHaNL25YJO1%UGQ z3bb3n?H?h8RuZ^*-bZ(JvKHAF&)PoC-$srK4s1Fw&I0z?5GuLllXRINy^aKY#DeuN zllp#2R{K5N_}Bd(xLuDNJWpP}ApcM7(Qj4Gui~S&u3w=UxacLPUCR|gYB9^$ZJu!V zRVVG>b;ac_H!d~U{0@#4tE%)(GVtS&V9W-;2AsuzCzO63pY3pVf!H+hj+!_=42bzr zYr3$%oM-{MTx5hCxA+Vs=n4M^Kzjw-ZUe|gsEA|EvH zs+f%Zru6W5$`(*t(HRSgngNkqYGNKf8sK&(abyC*35*~-%Ve`LAp3PHna4JU-|4)j z{{ko*i7zw^R)+*xQffQ{-k>Tyv8drdzp)ov_G{$FtoNO9{pQZjomn%|M`qreKFxYAJ)<={tgA>N8HUez=J!^dcDmMgWsx8g+ z9WQkdBg$>|{Ab>Ltx6~yvD60zVO*3LI&DR^{Qk*{j&;cwZ+zM#5blKBMrxk3S-=ap zj%m&t$;)rY_D}}d!FN}&XQiLr{+gDU;e3XO+^#)jm8 zO2FMJs3Zod^jQ)Zps)~&E_nM&MIZRRM}wWdpb-I5S>^Noga0jFo#er)I zHI-DX{{+rP%=Ot$_s_732;dC1WdH!0_o*bYbe|ADFe>EEC;#4m)Gr06MMj_>Fa4?E z5=(ci1?YFvT%BwH2qCT;UC=of=UmwLmZ>4HlHtB|@K+a5;H))2E2elHIdA@qoMGOI zV>`^t{aVrt-Od4(IiMw(t^iOdhpY8Ok@fZmY30Uybl{sBQJuQYfEUpgUITlGQdMLs za;G(=+M1uGVrfqPPqcW;8_IjSiau4nHlQp3)4q~;jvBz9whYt*XEC*klFhSlRB1-; z^fUM;9_P2?C)-Grd@O3c0sevErkIdm1&gY8^ZsMqPoA<9zMyiJ>hcLk{=$B1Qg%I{ zCO`@Kxhp&*H{ntGlxSxdtE0s8K26h@d$lJ;IS03wp&tgROBFpPlESg1+xO=%H&85g zLiO*+3SK*YDeBCaz*&QS=oGjX=@jB`?gFxX`O2KBC=vdI9FCPD#vTiWH}!MppM3 zRwq1)heo+cd2y19+DD-4czw#$Cp4`ax zII~KZ@p75_dwuRyO5D79$EGq$~w1@k93Eor+rYDH* zO+b+>LpJrE(RP_o*SMtL|>$#(O_E5_i2sXSR=DK4_%E3<2&XdhTuKq z=(xvIakaNxv&X#<{mis9xPO$qe_2VHs+7aYhVN!@NGkW;~dIiADZ7Yr(e>M*>cia)Z9 z*E^JKBsc;<8$hlS4=9)_`=Syuu5`Mk2}?ej7;POMLqX%bDK~|%PIR}A^FMK>pp;HH z%}yiPI6Q;cWPZ#Fl`qnIGgk+wr0f4lC0Wf1m5J8MJ@u@uF!dg71a{m&=X3C*BB@AV z^s}l%cUjTXC;GaCBd~CA#*9@I&DMxJnNLZKGF-NXSCp&2Zk2Sj@*{A~+AlmIfaE9; zDuY7JpTN$7QzDULj|e3xOc&)&bZXJ7B;UndyK3?!n1LcYNp{lART^&X#o|F_;pnA$ z?JjzuQR`}VD)00V@PnN*3`H@3E-*U`pUqcQv@L{zP~$NM+j-^I#_^x5GYmPD;RiPn z1zYt2G5oG(z;ik2-<&hZr@ylni`d^cvAy0#T>3fJ9z z1v8$bFp9e*?2Gbs#`8H{Y{E+RU#O+CL7oolgOg#gRD}I}%-7ppHHxj*k1;9&<2k45 z+6NDeSHo_XAUl3@ZZ#+$VxDXUPRr7a=u;Lnyf_QB)^^0{#s z;|Jzp{mv@m)$bj#V+%j~HLn3uahgW?{&fxN~!Q# z(`zIHXiHWu(HM40vjn5$!onig?K$J%+?a|=+OIPanB6oo}H}N z&-l>fYHkQq=ueLPESap@z>{zM&i8>M_4)I?n?&L_Eaof9oiC3CBe(%dAy0q6aC9Z_ z5FI-XQX4;RiBPoz^M%wpyyk#0(>IPXF`^5&B{WS@EE;}r=aLe3Ej0<2Dig~k3Sx7guxT9jQ2FaqWQ zZZJIj1NXPn-|IFIJ28(32CcWkd>Q)PkyB&L>W`T)xTzfoWpEcC#J?#h#Jz6be+rxZ z>9nuJk?Wmpw)6SaOVPTN%w@(npMC2PmdXiUPkmqZQJV2c8u`Pcea zZoeVy2)Pjw4R#O)c9K7Ex-hySdDT?jUYtG07fiWVWMe{KNnfWm3IG9rkw&zZ#?!Pn zOkJD92Lurnk;bZ|Q#H1U_;2}IrJq%QcFSU_JB+MA{D~Wg%d~Dp8cKP%HNF$Cq`Cf> zVA^v7nl-2kGVA2mPsCj5+w7c|-#Fdh`k3H9TrBK7f*^$JgFEkH9K!9^fQT!@Ny!p7 za3}~vbLyxD7PB|w#GP#cq=~v)bd>UY(G}*TF>2LcL`033XEEb$3FRF52<30$z>OI=M|sSIvH=-05w88ejr?&0{C`39V4IOa3JIU;iO2&k$Q|hynw>m2WX`%q3~JI%OlOS`%7ZfTEb4G! zVkC}AqphUuFw?>AKPpfO_|kg+;fa>?QF?OaGXqt&{vA$);lx~ryYvVX;dup6lR6(l zKYvt0Jex>-SSxaqNjUux-&gd$%v`ZREe7cDC)O;m>C?ZyDe!Rgu=-BCyCJu$XDLBUE7^qCKKyj=j*K(#9L6f6if|9 zq~xDU^bo5r=2iELmU#r0zO*A@+-Aw#ymfgG$ukx#toqW*9KmY%-X=K4if9z50*_OW z1~9@0hR7Jwl(t(64^VnovykA~cc13nn^n>)~+NzwS*> zAwZrGGacpaO>i#j)(WT?U&_D)P-)paMMxBiRrxjjCbnl1(5dPOoTDELt4QnD!E z@+}^BvbL}Hh~_$-mweB<{-JnXd8zz0`Kde;DhN614kkR-qLGOpUap_VfEuf_ULwur z@6J{m0mhBGOM|D1S=nd)^f<Z*NwHkUF zp#EE_I9=FTR72@$bEH#yU<_?bYv9B;iRA(_%>~bn<@2)Qq@WL`KabaXYo%~>RXt$f zz7o!|ztMYYKV}T)e>xF_Yle(aH5wRrMrhs{MC^a?*}V%{u+QO#J8(dN_jo;9cP0E8 z>&|XKS44;_mFEn(+{kyFyJf1>@QiTcNcNUw&?|y8uT+WLEn!{Jda?fr5%xb`?hKcuG_Q_ zm3?1VfQ{*cFR}*N;$@k0058%C4A8nuAY0r~ZK^`5VZTP-P~8zBc3!aB47VoS`l9KMTWD1X z7xdr_3%N-Rc4eUdPM1r+srF`AdrH;oqM}bVpjiDeytSAK?1bS{5T(O`o$w$n(8GwU zn>z0|T848LV45rbWD>(Jz}pY&)9D#1Vca-Ua&>5c_zEkng{{VoYSz_eaT~kz{{V!{ zY*;1wS=jaa26a~fvMpa=#cez65rCr2K&<%)aFmg-#G{=y7XCKloanb?6tsZdayMdR z&AYd)-atdF!O4DWYrQg9tsdj~`BUA(8-q=SLQ8b<_mn(t!%OeGH}q(TEe)u}Svc5_oIq`Q9*_$8u=#?Vk(5%h2@Js5bxO*zL`eXR9jgLS*#$z z+@o#uC*~(=%OPJ7j{b647l;3WYw@-xmLY#%NJ}nwDUas)V$0I*l#PJ{hck>K3zNva z;xI?U@i4p+Gmv|K-H^e&{6`3JqNku)naw)HM!nMrx+=~+ZHH)a8D#ET0H+;-974kE z?bcQekMbO7OD_axUbXVPBW9$PjAP922K$;mZS&0pbb->D%7fqL%4J3k)|EPL*&bhu zS~@zpo6<>c1d5?!w+$NHo*Fre)RT)+q-#k(~>X* zKf~NT8cEf-32X6Fv_5O1>Jj*nH~_#;o=(tnx}1pyAEY@C`iCp&3gp87&HM1e_5vAe zNuX3myi7CFYDuvToTwGH6IMV}rvrqOO=k)<>T?==weN6LC#!8LRW@6Aj34fWRxVB| zCnGy1=Sw$6c@W8|;aj{&of%}~Sr|llAgFlDs1=Wg+54c2-6=YtofdnoY$p?BEA8oz z=>1v`!j6JBBs*u&#DlLR=% zl#0K5z|blO0jn^45#~|#Bj$=XN}b_`{vhc{$}F&1N%!%R$qyL~cIPrUBA)OuYRl$P z?{u;CDgxNOZ5mZ-kAn9m1S`}?4$`I;DX3b08v0? z5kxj2257@(w?G3L5F(8Tb_Z<@f*}aBNB~LL1IVf(1_2dF00~h928c+rbQB{3O4#={ z2*$awN2aGH^L47GYF@n$w^HxD+?;z~-Q072=YRa;*q|=Kg;IrCOr9Q`NYy$i(=ENb zM0I$yo3QPxAB1rJhz9V@)07o-SC@3oVl_&S6vQP+ZdGm{=}zj$N0gn)80k7dTMMdN zNZxG*WLM||Q@iu$rta}64=^;dt|;yk2OTTpA@7$jPaKZwAK&A0?o+7m1M2XoiW+s{ z&cpH-NTwF*Ch^?`d(m}wby>^Z4nDtsI-?6utt%sN^VruGJ?B?C?rJT|98GDDdvtrO zAF0zdmipp1jTwr|(Qk%A8Xr$*qr%Xf#$8oe5RaE;_a-jaMbX~nRe#%D{aI&K9OMEQJ(&&In$#hwsk<`!`Zs`T*&3`x z`RTlr&JMkQfIO29pzwpFW%Z`0S>~jYA{`Wza2+n;WudS1UJr;q6w<3_>7kzKm>hXj z&%o-J>1=tT*CgM;o~NvK;Ow3EglwXeF$!f7ZRv+L=%3*M@lP+y>XiOlN!#~Mim9&S zm`zd%-ay_Pt;d1FhGyD>4eM)FXMUicr&W_=_bGlx*tYrLPDcG)1yfru4(Wuo1leyk z2U2DJN7{JL#1lM~ta!LEGR8&9mNkE3#>hL`UL`6d5ZeN@fBK;Jt7Na-0pFC;sw6U^ z53~Q>~)dq?VjmaV$>tTY2i9|x6m z?~)tvu58KKIh0;#eZ1l&x`ydktE18IKH}sYK!Fz04x(Bwq3(HCpNc8R7w5#i;G9%J zt6Dz1$YNrEyVexRSoM2*)}WW_yS?dF#x4)!bF=IZ!yr8~Ilz6SvVn!6CygIaU|e9+ zbqSJDsiRB$wYl6Ej@B#jM!GAlpA_wJ5prf<0G_g)BfRmbb?bS%=zQ2}vN`f@J@K+p zBLhECw*8TK-=oMC<%zy>3dcM!MZ(Y5WVA>>GbU?!$EuGK@Qc$8rN6g~D1hABN4QBze+Y`zNbpf^A>Tw>n^WccC5a3 z3K95As#pLRK^6jXcM{9U9g_0Ymb3XC5wDK=>Aevn77lXD!sGQXPS6Z7(*AE4ky{7a zSt4>im$--jN#;mkP`5_cds0mY@1wmcJjb!a$HeM-t9n|V^fCy~HOsHx4tz#5=gXt9 zeFW(AGvbb515b0{X>4_SUeJ^*(Gy^O!1Tdywu7}L-9J*6uI7D*J%Kp%gvlgNiz#I` zq@|^aW+^4gUV?O`X$L>-SoiC!4>;`?kI67`95nU6{`h_Ob1UzV;^v6fe;z}MFjM3?ahl1%SbgF&!+XiT;H_A`roObx*uKB|c|>@xDH zFNu@cXK*uGX3ROAcQ!-fb7ywrIrpW*A;;npc)9yL)*ukc9%sbi@2x`E@P*D%J%RGV ze!S_EH!`^6zU*us)Iz3b;kK*Kb&xjy zteF1D-@XxSOe;cDTa%gxcf1K`{WEb&@IUj*>8x2bb?^0~A2PI{JHztQElI_Ai$Mo~ z6Db3n2$sr+If>m{d!gEZ5eH)L`D zBIuxGwkfCqyemJZ3b%ARoa$}O-jtbdEWS@uWj(U)OurW98)DfOo=L*aWU`)H&fC%} zlj@db29bf~B#L0iwQ*{&#Yq)-_Za@U?eOhEH6P$If@rh_A)TLp`#erx7BXuwtVk!K zca-~9R*G+tb+0&e4%;mf8tfe^RRHaSZh5;zi=O%8d_!8Vlvt+_O(_Cg!Ksqp;w(*; zF8ERvhVcr@xM*y%x!7EtZ6ITAm_FR&PvA}&iu_e0t!x4+)fBHU6wTovfF6wbjBIVZ z;CEQr0W!zh-82a`i)_-T2-I0u)rv%rSlL9snYn-Uk75d5R$w3U!p{|&p3 zI*`|5A04rx65O$#z>{FLfVpU(Ieyqx>@I4d$+8E7B?N5(s1;-?n5))fOH!=S)iYTV zz%O=4-5Yvtt~51yeLXh`XZ|`36s^eXP|GBx;cDiDcDmdR!Zb0sscEyu8{5oP?|_2g zcSywn^BG%-G{@p};Bbl`Ez*UBuD1{6!tjXA8|L{-qclu(eic@?Q(|%4xt0f001`=m zEHDNHkpK~qMks3bmEB&hBybQ2?SsB+j7{NpD*7_Qr|#GJ3<0yrYSYFX6xy(|2k(Sq zRgL=>AL7?L|80VT2T2OOf8)ddKj?qcM#GzC8=~b3?bdk zFfe?Fd++<+`~R=+TkC^6tXXq7=j?rUJn?&e``PESqP+AC0!ji92z2AsODQGb#~TE? zvVHXmaE2|cSQrGlE@vhwsrX7#l3vly#@Ni#2n2fhIRb*Oru>U6QB&z2?o}yqnMJvq zUv7)bTxHu0p=Z8#?WRo7wP#HsthrO8&vDxVa+OHN2!0w!YC9UeS@q0M`ko!QVgQ-^ z0IFDJLB(yv37wuSw2Ljo3)yebfEKkqGP%hIaOoAkas=MkH<6Q<*Z<-Mx;y24r3e(k z5hg3p(=!cq<)S3w1WFpf4{@f70iY@BD0`jZ<> zeZr+4M~biF=PT$;Ucc8ENMGW^`%b<>36_A3ke^3!_epc3kK1o$2N>mrU2e29V~2L0 z#)O<|Z`+YJ*sC=l5+4$N1~*^d*?(;EBKmfg7|mPwa)(O2oT@IIqYN^eV1p;Xm9&-VN$ETY#8m>VzQ%{0FJ z#6utQZK2Wc#z-oeu`PqY)!P6yBUZATZBk$Lpb?^~iT4NtXbO;R;lwQ=G+noM?)z`T zkFyVNf^+kvaj;3JPsp+r9!x*DzVhjJc!R&;tpFSxaQ^JuFAwg?H_f{BdYq~asEy0V zQi;3`#RS^Im$;$y3|N0@4>i0eAGOpXPEHf)jBB4z z|NKDA88CfUeOF)BfS%KvLgM=U(U~h{#Or?k4Ow*Ao%~b>6d|*LBGa77;hWy?BD$ZK z3219QpqewnU3`D^OcMR-R8XvpwBMoW#MUN*D8lxUHHi8hIX^M}fge|;M5NH~(x)uh zZ$_bkQ(27MZ>4R&Cw=225ew*8{6gtOnajZ3ss&A;i$E?hpyxw&gA!pF@V;N(4Jxb8 zo`E!toqCLU_G&DHxN5_k*>^2kLLP7Z3~=WzoB3!GNVCg`zZ|5)rJI=jG~6!TEuA(! z6j9^Rv+6Nt{JS%(^UG(h!fkcx!={`0F1LMV`6CO%3t2#|8==d4`^?6hmG7U7)xMMU zx?G1DuB)q4&@JmW1g$#zBR@3g@>B617iC;}x1T3|k44e8Y+J(HhDdPS^Qev@`Z5(o zDA&8oI(5Xj?-g(2%{+S=eWkkV{fgEVV;@&N&c~OG^hni+nSZF}(e!(ZOo2>sa;9(( z@5bYk{{X+E%1yN1q~7%zn!5a+{=tWjPi}fP;^s@O-ZJ?Rd`R!}lK*z#0|v8~kM2Js z`6>MNn$pMYXUt!$Ua}R?2?WK9civ0*Dfe5n*Z25yl{BXc&A_u@MHUC)))xY%6qKRz z&$)VHOz&v~<%+X(n>+B0eo7SYN`dsS?+T2DUV44Q&>$`Pa&vQ;8cF1PBfY1VmsA5H z3! zUcHuxORN9%UigzhMTy6Zs}HE}$A5IsjN6QT`QYj2K`G}l^6<|ijpdDVjUA2EjkAsN zGm-{kpQU;kN5ZRKy?G$Y1XGb1eK{&8_@Y8;`BC-5tS@puJAc#L5vWVB-;WAk`6>M? z>Zig_y2r63vH^?_1Ma7`CugUwCKV~ND^@VkWoW2aAozF^W9778=OpneDkyI#>SktU z#$>u?G-Z4qAj<@2tSJj+Iq9w?RFqUC2tq`_+Q~H%o>51(dvVK1Q|?&Oj?hSnw)C8& zfnNFE^`1%dC*0ILE|e0%ew1L!V9F?Noo*%vSwVl%V4as7>2#^ONeAXi+&SFku^t_G zvEW#L9;C&-1!vJC)8}S$W^6-d|UaYVCy?rDaC1^51G2t6S#@8={+AN11<_XM)2Alr2Oo5*?ErtM_QA zVuO(#uj9<)SW2WcORPfHjK>0OVCQNOK{?!NK6vB=OEGZA@Ukja7=(O zJ}VyiI#up^Y}q@5oyI8keL$et*!i^X=HAMc)gIFlD=)A7HBLG1HqJKQH_lhCYqFA; zGSW6;B65`$OG_xCAu{P&;X3b5yLsHu_JgG*t8-=P!OE-euY?|n?DFo+yW8xnZ|kE| z(Hjx44C_)FFJ$h=eHSO;Ft_TTFkM-U=@DzXY53g`VL;m=|0#jo{ZYs* zK9OAZb;l~`aqHpOHQs9hA4;U$49pFzX5v!4Q+Zx#hqovsilIFUo)z$y3;2Ee8ePBz zhssQS+f%Mk)>f8PLdq2<3c4?sn_cO%OQ(sEhjqfdo&<+Qep8Lw|3cSE(kT zTq}Ej%zCP13QbY$_W_iLm<%FOd7;@WH2v>K@tDOEeq z%%R>K)C?-1c1?}fcBI(|ChG^U{U#6*5#_1Hu7+)MzEhKRXs!3WIUpp$nx!=Re(u-o zijq-h#}3LI9zP4(++ek_vXJ6jhY8)4bfg$$U8%iv^PLxg!CAas+3kob zjXB+7=kVz?qqs>+GV7Y6CL7rX)s!3~O%#*^i)}8MvI-th9he*YJVsa|HuO-8*fXvEUSs0CydLO|v(L@P&uux@Hm+GhysEtF zULt07T6|d_f0U?znD^KeJ)0&OBnc0GIUCa(`z3H+K`;j5RGM1AAF$2d}L3o#LgDwL{ zmw-ReB}x$9AIBh&%q6P-9xGjX{MS7=AdtTq2=}jhG=Sf;PZ;n8O8@nH`RhjzKJedd z;QJv7=RbGf@J_n?pW`drz%|e_Wyx2sfL~=pJ0l}&ds7>S-6I|s;Ka3eFV*cqAhL&N z-%GEQ9&Ca@I1^?nY7T00uLTWltl0J6+87wIyI8$Ds|O_PA_yE>89C_FyI5IT+Y7pg z-2dYaLE!l8G{=4VKW=fb5V@}=r${epV`oIq%l?G@$$e1*dU|?cySK)IN>VTWDh~W7 za^KX!;hi7{hqJRYyE7NNjhzVxr+|O}$CIZVPoJ^@cd*&JT07{wuvyzP{8`C=>X9x&?HQ$IOC{82f!Yx^Qq-bhx9-u<-`l3VX4f0vO`LZ0@ zzYI*&{c7$D5A4khA|EBtYrMSWL*do;7w(afk3@19IhHvC3+C;)cRum>@7Q{a4_qY) zYzrgMeyS)cR3W;!7}r(D!3gzfapFQmy=Wn08%p;Gp*%c1&y(}>^G{TZZ(qdR{5gX~ zf#S@^5qLic)(WDZ{|hNN!QCd%W5SCRq`Y`rR6@mdF0uO6DoOtveZTdXEbvW6;@a@F zi?`%~kIG?|;^V9TN)ShJ0i(0c255y9Ea>FI0!@F%)Y4MrQahi|h0V^uV?|9(DnAv1 zY=DlTJTOtXs5swLGr&_?&&q2Qt;T1(u=ye-{B~I{lOX!Ve~rkw4+a<%ACr8~RbzcY z;C;;p+=Xw*c)>nJ;`*eS2C$Bhyn+0rEj7DDClJS18QpP&q9o+6EWD1qgI#8&i}1XC zPG|mCj}~Qc)ZekNSPt~71vS4?W)M=#^S3Y$7}cr%p2kZUYII`hgBOQ-^to_qmh z?7;=cG^y=szf``yQ$JfDUnFMV=}kN@*L}b8(cXe?wPfc5mz}RYoR}P@HyK$LZQ1gC zX-tGAa|)`g#>85t4D#vjuc;ng^uf!x1@E=x)N?aSbVJpghUC5vA5LNhsz&pARCux# z$G9eIj;2jr?6)yZwMw`0*aurL<*6{sU0A=x{jdG@$%%cbpWFO#sb_O=HzN~i)wdQ$ zNtxmmljdQah+Td^jl}&D;57gzi3X{~)sSDgb+M_V@7BSA$EvE^W=W78BQjZ}?ztDk zNef@A#D?RgOwuJzR+wLXeVE0jd(H5|cC&j6$Il>tc+1&Q`r^#ghRauEg{t_`VMSEH1bm6`c@cbQPE>GC^uo@z*beB~*Ot#%yZuRIV0iw#N%_ zp*qE|w#vr~V#Li)+gO!vj1~Gne3|s^pq0fNKrFJ|JMR7Lk2jmCY#M!uMX8rOXBt2E z6q~_5`jJM$OyHHW9M!^|f-CV_Mp4>M0kGrW(%OoP4eqIoFc0QQ4|{_e zp8<$2+o>>_5g$-G1fSOBiE)Sd&nR`1gj<~Nrs|%n_iCMA=)wrK>^q9*HX(vv-s?eh zJ*}vnhLb;Bbtn_hR|~3e7>bRJC8{l_x^2qgqiItu(kZYo?(+MK^g_j3n5d^g8=Kgz z^h7ti>okHz17)wmCqHK@r_V2>%O?yjSKJAFls9JWK9^ioBtu{>vRSwI685XUgzjXK zajStYQ8y9mFQ#>C%&OE1t>%Az`C`qk`}t+1IJRP|nW|WD2(I9u(*Jm30eZkp7WaJ# ziYysU%QussjLqqbEKe|cO#p>6>$!rm3oYHeFj~$NjthLL4M@mrq9C8MnYqci74@%Tlk~fn2&{YU9&DBy^wFeRb<_o-g#1$o_Cn zbyO+sIl&D0aUOa;u4&SJgLFvS*|Vl{!WqRQx}P7aIxSC*ilj8*Wvyw7L&oEk1{4}U z@5>%h@6Och-%BL*J1UtI3Ao|sAs-tz_;c)ZTd%{WCkDfG9HF7jbZsz(F0JUGuv4(Q ze{Zr0Z@pq=o&RtO8I>i&10BD?H%>pO3w^u0GQ_9jzP4937dghQ&2zU&%7w6v6 zRu8|Caesdeom(vG4mS^3O3B7=OY2k9*49s?6~%1)ytR&5OK!@_`)_%8-ausDgZt)J z{pzZ4CtYTP50@bap(+De{a1*nDa1~eLT8j=qk_xJ%!Ffb4h)U+c*Mz!NHKNNs0j@D zEzK$RfLzxjvv0MSjYKvf8!4^xDhlx2LurzLA);*HL=nCgJdA@Z6$*?9MLf&ATG z*^V!ao+G8>+jq7$pr;JT`NGu#Uqjy;gRt3Qb5V3Xp>`Hd56{psXV#3<6pklZI?T(M z2P(Bc*o3R&g^pm~m!dtl`dZzI=CRcnyTU$`k!GOGy=VQC1v;?58V=rFzN`K<%PMO= zqCR%Jyf9rZaHNm&dzxZjNqHbY;-GFlu&n;Q9FjGnNY6g_QTH?sAId}acu66p^rvg}PM|5$rB;>Q_!HId6?U_5M#qND{ zSxokyjWJ35Rj=4*(D2*ARz6TbIp$keB zasL(?rQ^1w=D9b}+5(r46?5Aa**ct6XoO;S)Pm?v%~=6Imp|#Y(#$BD|J<^u=Oa9s zbVETDt)j!mc4B_m8&wm%u~dC98Q8{gYDHV`wgitd06cq;w)2UE$5x;_xIF>&Ltr8P zmNd1kis&j}!2)YfPw4VzLtqIDMQ@$9f1y}HN8C563rz0PIZwJm(BtERW+=cyJ0Bm^ zDi{-;c62~=T<0hR?5c;&(rFA690wC;`-_lg9xxI>68ux%C*N~(+0PXCrF+f6Bxd#p zK3xE*s+y?of<0`Eb5PB2Pas!Wusjd*xC17Po+vw7w%A^9!J;{PvLIcHLrAD)+4NEV zLSkjh)DK@-$%Uhu43z)+L}klRjng|FE1T6}^4UR6o3dy=JQEAoxA(B=s+Na|imX>|_>`Su@n;g<*MpCaDvs?j zzZu11Ao!N$KD+90SOfq|*mT{{b5T3!xjX8NC)9hZG4M8?^E>lA3S6Z_0BA9p7wA1# zwz6tT-6jJvfeL(an}ZU!YFZkC9znW?jhYeYcX%H?A+!h4Y>- zO!*QAh07nw?*gMd(+YSR3e1|bp4WP`VMr^Erhn7^*haKpdSVVm>90prEx~-);+gSy zq8C9F>O^@Ht_wL^XYLlF?dT}VEf7rW>F%&HXeF<_V{c~3#2qOwe6;90vQ-KMCt}Cb z0mIgnR+=3OmvWKNlTWPTe7OU~y`RGsM41lQX`&`;F%ug`19R-Zh))k&vJ6|lIUAmy z5VLDr?_mpJCoZ}AWzR>XEB-KmA!67@ySXA&zApLHR`ZUr0m!MS=uuDTH-+M%gXv+z z(9VXBx|mV@x#Boy>&i8h>(7;5S&q;<^8A@-xE*w=&d0Wiv^FHv<8AnM`Fz6usKwFx zdO@4~)&O!{Y-pqI89vR;^o0HDRSX1Xa}V!f>BK%)M=95k*AaWVV%#~yYw@8wrlzK! z-lR;Px}$fUf9>sUoOaj_x%Uc)_5A)7zTlCZ(3M7@=UBaB*m?)qLWr+(tJu@c2wXR+ zb}75$5oNl3D41i6@hG>_vORIITc5P<=m6&Y=9`moK*cxQ6=o{{rsiY}E8XZS29Sxd z*ya$VK~?aCRzuZ2R(UEtmTnt>C|0CWuPz}}s#iu#U@Z75O2zpq3CmnCv;!HAX4$d? zQ{y(eYeVN2g@*guEl$hf?w8;gnP<7O?B%S9UPm!y>lIlG8n4*E^g_!ShHdt-RLIJ8 z!4BfF@zYM{5Ej6C@~`mKmft55_?;xssW1>NFSM4uU2NmI@{{7}Z(ng8v_xPhfRFEp zp?`I;bf$%=5DfAl)0~>`n#_@QIt}ZuC&LUw&`#)`SA>!Es>gUcUqOkkd z)EC#o0yZISoMy+O80s+ak4nC*w~;3;hpz~H__BJY8yGTU`{3>3ZZ>pgf8GHAmjF3 z2_xkuh0KEa(-IHR>1~f^FY3&Z|&_(!o(-U0=K-%&d_gD!%zz5rG3&5eH?ntXY<`e2PLd;sJLQ|JkMa?pz zVOs!uPTY}XaV@n~7rqH`E9mC{UtZBrST+;%1qcLyFHu`I#YJdO1@ld256^73aX@Uf z*6@i%4;5VlTWH-?1d@~mV-P;tZcEMZhU01*RLvJ1Hs}lG!yJlTb+Zz6QgZ)h-}cdaS~{oUA>d)q zIR8qeJp>>^>7MT-c4UrbE%2VyZJkw`vguBG2EV6HpM6qG4AHW6 z_1G^Qi`vLIJ6+^I!vRHGh+6M1 zy0hST1{xw;sO?qAc!dR#(W;~4u@ng0L9n4<4osKU!J*E@ItlH0cEwhGHdo2jHfIrmA z@V!oK@JDJ029fI?CmCp=Q;E(QGRvmc0XT-F;o}W9G56(kdrF@WvX_3f1bz}8ifL&n z&UqB;eCGXof%;%s)xbJLmedD9I zY0QrH=4P)mBM@=$*^o(#iiPfENe0gi<+vx)#m5t3=kzc)U#k06Zq$gp2tKk1`BJZ& zz*IYRXH^gfe*IY#fwyBqXiIqeE4>b$p$vWz>v37m(y&)eb<6^XGvo(BDs#->F`2bL zSd>hH0RZ~aR<4y;WET&{1{RHN&9Y=E&;XQ(mCgn{N{1bSYaza^Fd(nmmHB+?1IZ_oo6H@2B5Jke&Yfz_(jyAdV_yP`9qRE;av+Lr z8wO&KnX@njB8vX4Jc~hzu@JXJSUZlIrT>0NDBEJ?si2=dW?jjEta3WpgN6WHU8keD z=6g;11YsCqU_q!PvB(2J=RX}2wa^?S2-BAisA|r)5R2@-Q{`N9o~t}vlwOFyWcJ0> z5GR-+Nq-WZlfVIp`#J-XjGUa{3KarYzdJGye~`_du*&Iu!PQX395vA81}H$?DxYf< zrZA>68}p4nVO}p^m@L~LUD>t^>yUhvi8Bb8SDI7offyNLc`)oAi;A!kvw(nJT`%bZ zVr#0XPo5n>g~eGkPQ&F@9RQYK=N+@`+qTsd3TLdP0$jJ^xa)#;PFkwoxC~1UMVH9I zv9P3m&Lj55&(9|Sr??u4Dkj0f^ub;{cPq9$qw`iPRu)*~ozpfXO-3#73ND{FDsy<| zV<2hhFAP@BX98$AQ*+iAssfL`^SVDDw2_rHEEF)a9<^~BATb|(TBscSsvKD%Uu+ns z{T=Vhb&8t|(z)bJ^xsC$;-gZOmx*Qh9HU^r(HoZMqy@U{nwI&l*rOlBH85~Sg$NSs z2*fSFyEv`K%MNGhkfFXrqfj3h3;6CzU%G-oKeyBBu>36$6{mp|AW{%!gn9%m7T`gc z9mkGE&3b0F+4f_*x&HIvuQ zN%41s@hWbtPTUJsWhEZljfqgA;$kPb2;Y&8QHZki&jYMV#bk9#+CnxfaU{-L z?W~B)dVvgw-NhNga>Z8xdTV5Bq-$MevU95i7KWFBr4e!4eGH3(n9R4wpo#50Jx{7W z7FP@ktLy<^oh zbOC^?9&bP}VgT;v%)!w+!*QtyGs02piY3_G<`8pM_HBSep)+hE^=Dmt8Yo;NvTr-> zN8WPgQfi`Da?6A=IQO4%L7WUb}M~ zP)@H?49gBa4cENiuos4Aww@4rD>I}N(=x-&@cs(A*;%4_Kpgx1Rng*`T^527s&En2@Z z&DjQ~^wDBo-m6h^2e6#MP6uBg_5>3l-*He4$R)xR3EVsBk#pmmD~d@gSE+3q-`Gw# z4lNKD0U)@!%WHo&cjujz%hwn~6me~_{^Iu=ukdP(J6e~$c%H+GKT6FOWxmO<(G1HP z?xrZN#z-}M_{F)?G*k#uD`g$eHyz6y9C2hijL^|e24)EGcTRrNTi17P@-L-sG-kYk z24^ZOo7Mhg5%Js(A8Q0)bQrjI^eK`8jJV3{zQ5|Sn%^>8(8eBWk&8AI745+6mnyV( zYJa0Eor9^wWRR>^OuY{@=n`=bRZ&OuEAju1LkSCFchld%m2)PQ->se@T)@(i8vx{5 zZdu~{Xuk2ygYEJ!3_~mce6vA`lC}WB9b~nrZ(-Zsu%(6qKv;`C9f@mv zoVGKK$48Lb3aFMt58j#fAD8WR6`A$Te3fNy%hjgzr}HxPn5FWMVD~iL0JuOGU|E5K z)@^axLkxhE(Sbr6RV=7c z1?W-WOQg?b{AR$4N8|rE+FOA^u>f489JAcXRP#d5G1I1;&9D`+L#$S%V-0W&zpVPY zI=?X~8|v4>Na@1PYseAudO!d$10X^6jTHcUbq0=jtQyj>!B&&6KEPIlgEfU1#a`=2_bd73MOtO$h~5R(pe<$2LufNw>9___YKK`e$;~kn*vaewgz;@AO1JrJ$q0rSCqf?&=|UOU zYYuzuegY)8=vGXZM}azY>jHbG_ z8g_j6MVdA^)XQN9;JGHYna!9s&_EpCLWg|^cJ1hs7vge4d6p83bbn<|rg53VqO+>X z{T73$1qy^&z=4`Z5fMA@R0w{--;LmrYw@>iyl_<#avU|JJ2RWKI;?oKeS=D6NRmy9 z@&UkciJjrUmywx{fZr`%b3ELfHk#b6{JjH1iSSOkG_0B|EJt%1zBr50g@Yipsgmc* zI1!J!`O?o+qhz;qQC10*Ey-eb!chc%{PuY+_P~5eEPa-nx8s+lM#^q%-;}%uJ89Lg zJ2;s~iph$LjiClBvaxlaZZXWjPLJKm9FFv9GtAM)_5@yVPR97nwQQxKTXW{>YzrN0 z{9usK_Rj{E^#}>64oyU>!w)>ME`+aVK60fEk3??)J1q_?n$9rn!2wb=r8@ zkNDGK&CAoD3jj#cIYbw`4cThv>Y8th_uMc4qSK*Ca19_DJ8iLOF*C0UZA@TAsLBs^ z@F}xj?Vy%@a8>;fl}**%@JDjYP*|+Z(HU!bPx7ORio*)voXi29@))rG7^Bn54O*Hd zusOh)(#>e11PdG%6VAD+#eP3;AICWg+2Rz-mT`f!2<%>qHj1Eb;_E zrhv|T1Mdj3=<_xO8De5JOSYL2ey7JMR8vC(f5DN{b zksm#Su!g0+^p-Y`+OJ}LXYgvG0(|BD{Qf1l>lp&2La`yA4Aw$x%WteHEhv|*0Fh;g ziXR)EGoa!*gKO9FlQ1t)UjX)f$8K{G9@Sh#faXEzB3|zS9CRW~CbPhFW z=V9JKEaGhq5P7%`6#HC``V82~(rt%xrwVJonwsqBT8nP^Wv;=~Y58fr;Y!mdi-SP* zJL%7pz1Hz`Vr>urBAB?cACkU*DA!JnG46Nj+9s9jkY=sHrlo}HdIWaq&s7jJT;=rl z6tH?YYv(%Ou`7TBR`HmcI>$wmCHU$-PPzG1mf721C?Y&a90bY zh{3aT$D=LJqutDa1)Xlsv&BDZtjv$%$cS1EuO}R}$9Cv`M$xS;JE(QSUp?>bCB*Cq z@I=L;@^lCTP%AOiYMTJSmVc-l5ldCQPy>QEUzXOrLjUA{JCN%;1YX zDekma-GQVP!{z==qtEu80$e4-20PpN=OvWR=#y^OKNH~>P7YV&K|ZUtU&UrJ z(-UdW2%L@dItUOsoG_MsvUVY4uNyx`ak=ZFRrbutegsw@ijYpvZ6K)6K)CM zXq#(KJ!Qw8Q74=LN~RFQ4x9zlXEYo@B2lhn7s^|fPVl|~SW)e`QmXTYt3Z&ZmyD-0 zpOuz2e?p*_nR1qGC+%w-=dn&h%#y=n#wpP$DkoQ!@bm5X9+># zV&2vvJCIL_^5ig9h@%5+YG@xOE$A#+|o z(F(`nH$N)aTxH@rzL$|_&H<{PnQ45Wne1qDTW3T^7f|UW+6_}oPS@Cao?{k1>TrB`MWGWbkB-ikg zrTzqq@)8Dh#Pa7b6zZ1CZaljz*vJT^e`m2g{2}-|*IMFyAnm_T5(g8KRKNo?Xi(Rvbj@a&ZlqmM@cvMdYmZOC z+A#l#bJ84tC+bd}EbID7{00(g|HaONvkfwj0l`X3OM47Zj;bvo|6+R!ZYxgaCWH*P zEzmncVfn%x^RDyf2!nuRnezI3&d(VBXF`FEDQ8;}jwAl%mV~qAls(H9`HQ!N{#t51 zFjLP!?L+?}hyRhHvU0f1E4(~&%-hv-g0O!Wsu*zqQuTj1Cxh{~CW^mGf}UdGxd+7R zNhKw`1eqji%F2EIRivdC-Vgxtna5!|0GoPA!2UCNe?Ra4_Y6YvEEE9Oott<6TTC-( zf$dp0frM-drfdIBwMmrrI7sUdE0Xyaaj1WG{(+A$=;OKZ<9~e&E5^WpVW+ z#mB#aWmg0=LeAmBol@k%X)@qk?zR368wQQysa^qoE85(~-ix{6W!siwI&eNo=qx&wQz z!#Doni_SL}lSnN1u@pdn&HXDQPvj#(h6RQuKmu@tj;lY}FDzr?NvvT6P@`vgRae!{ zpKkDv&U+lq~!;z)=H`*snj|4^5>;4&n{r|en|Jix*y+3vqt8_W7ez;f-XQjRZ zTS~!?NpR~tX#QvQ=crQA3J2KWijGtPWtAv2d!4VIAN2*=|9Ka{Km0`4*`hiEG#~dj zhCZKd0{NK#u^KJGj5pZduM&(YWIU&0{@oAO{4>m>W&oS?y|_;eIP=UZco*MT48Z?e zk4XsL0DES?eEoO&Eq)Jts&onP?Ii!kxBtAX_xSHY`p4w`f6W;HG5{y`J*-59l`PA` z#Oa(g|KIZI^H7T(uWtG4Gda1A+w#*}Q7S&7)fFvvm)#=hPCH(0H2u!xYHbnxhYp{o zsiLfBK+};4?-6KU-xGIzOb2I4sA^tDw&g_wep3Yt@uy^8%!@ATy{%E9zS)>-;WItt zkD4!c)zJ1$#({0ywE1*-_9x6cw#%W|g$VwGQT(=xx8=2u;53pr992CgsrQ!bNN`7% zE^u;U=e-lD?EcD#*q~Z6bhT)U`AvI$NYuo!ik9P8A*mr^D+v;MwAfdu`5Go5lqL^T z57sQYm@@bf-OOMC#81Y@3|BBt+*8}i!+Aq)X4ZlYm6k(Zz^spNQ|aX4loBx;7d1{A zp4M*KR~16bouu1UHea?@*y?esuK+aMX>y#CQaa^zu^9o=hZX2DdxL-A>k|?(z8m2a zBbAI?7isyGIXaa6(ZC^#LyEwQ$A;yteTC6jj><7SrJ_MCWdGu><+&h>w4;J`Xi``mm z+wvbv4Bonv{*BJfcQtf1blA3kpF&yi&wz z#KVPpYhFzG7W{{akBtXLmIS9QwzxH+YF;8^NKuC6?JdZ!>$X3}aY-MJW4ToPYx9TgMj^80S8XLyvSzeDjf!)D(zXM7;V@R4d_#@CbtUUj$u;2TIfDPM*o`1x)a27kh|0 z=2l?PhikR45S2-rE`?lLj7_!b$Z|V}4P_;4=OADU?mJqKpHyf}zJp#Gjou13=)2YS zJk+`vp3Lcbl+8aIi$9y6f5*^w+IPm=>P2JsDi``khIER)lc8(;AB!#?^iM!R85{;)wdROPv24J?;O!x?>_I_1nQ`PZBHzJy!ghxY@NghK{Bj&Sf`4iJe~ih zx`3E&?5%eHR@$Rx89->`lI`K~D_B9wjmIX`gtT;fkQFpIJWNt5wlA}z?|NFM&By9r z+54GM$F0(!8im?+08B{NFehOQyu@L{niH5s7tF-L_H5*7>eP^JEe(yr+aI~}Rww$t zv2@Kj3PGXLiBJZygYH74wA&xcHcy~FyOs7x`%}(SpBLu=6=zaD1;shrsC)0>4;2sw z7Ep>Hcd=Jm0VyMC_rT>FcW)H7VPwE1xuRZ}Ve^xS)&(*+mq$64w9n?(d-W9}Dzz;) z>-ygToD794_7;q9Bg`~D*7go>*(l^h7qm%#Y_hGiiTD4-%+7zY=-w3K1JKMK)fGy& zv$Y|m6u_qY&Bj2RVhz^>aO7wFMAw`FG%-dB(OSGj*%n#KnP=0*?;09B`$3y8pru(Z zNEW-NB8=G{n_D65T^cHUy6g0tXr;sX=o4vF$QX9VF3Z+NF5y-v7Kwng1v;NPOL*A( zf0;8kMj@qf3oWXaljx{jFu(7SWQy~_pqTYo zcB#Sf!JM-}|01W=q&=d9r!t>ODJ;9c6SI>7U#CWyn3#15(Nc-ESnLS7uF-TgrEt6s zN^#Nw(4tqS9Zz0wRpP|*3?sgmu#@Pl4P5!$$((2B# zFh&vSGC4IRHyPK;ZR58q-DT6~4<{>4N}~t5DVW3uB2_KT5fp>z(kmcHleYkM>attZ z_@NY*vc%)`(5_^IZAho)`}-jiUNu)A9K9vp@U*Ust3M_%yB3_T%RvIGNuKf|2dzT3 z!+5375uzmx(*Dgln%6^(FbB*WiS<^JSN8wFU|mb+)y_YIP1Y)L;O$LtOBvwhO;-BR zezg%XxTBD%Q|yTfnRhHWf04|Bja=+>G_t4A-LnbZ`(siw=T?gR_&u!Kc1V8jloz~j z#{;^zwnREKL?@Ux!%xFHQR$v#Z!g5@RR5cQrxjyZ3!6~le49CGKWR_NU1~XB#+R;| zy_GP*hv2vN>dx`{;cL;cz_*dUsfAG8htnN%CALcFcZ`MkRL9XRUr;H&|MecJz_Oqv zTtS_wqAWU7$G&2Sh9K5q#$>j>p)`cSX_9__#7QcC8y?!6v9V5ZhU{t6WCrTlMJ=-y z`z)|Oa?*8kuk*7FWNFqI6R7NU%+pn`yx3|AMNXR2!S85V& zb<0YM4;*9hRmg0$`>wG%`Lr}w-5o;l@j9Ih=LNXKy@!_76`88%2NT}G;{7^EX$2)AF&X}OETg$%D3Yf6#K=h2@rl>s~OpJVaghf zu+wYMP@%_QBxjjbqZ8M1oDYZ*PA98Lp;5?m^w0#_Bh}pC)N3_j*y(q`oW)o+--F&P zz>_~CVtlV|e!t{!hAPe0q}I6!Byo+J?fCIjnAH#yU83_u z!&alLO;o6Cf&0$_jt7pM~-cBloZJW;JbT1DL@^*H$4bOr0QHmRtyFgyg`PIV_6kX^YsJlWS%dIHvY^^OO z99bd=Lwrf_oRFN`309AYw$bsBj<;Qtd3o^v*et0&dtXlp9cVy zN=l%foWzPZ`0b1fn1A@hc=f~a_PwYHKBPX_Hpd3Jp10 zqTbpsV3e>xMFk~A5dkUbE~QgJVrc2^h9N{n>F$#58oCBlnqlanLFw)s7~ai!-|IQg z`{_LA?-wqvOBsgQ`?vSH*IM_wPk^<~>@C+Qt)@$(JK`6tnqo{z3pR#v`M zQ&zq&FE1ZHU3r9S?R8pIGd~i$>*rUk!&?QhAmRA8_2hpL;_@5cD0Kc>AHVa5MD3I2 zkH>p{CDAVKcEmUy4y%Qu9+3+dsf}o?(DYSO93x%!cE;0L$KvGM5C*p#I^dS>Y> zyTej%GCw>y43g@xIOFn$@#!~mXeN|RYh^2&al%DJ`b!Vl?vfGZAB$?_*9V&b_ z?W)j38TJ*NyCPWs_b(lEzElKfUC0*QrQeYYC%hBqc;1jvQmSmLgGV?2=ySSG6*hJi z{0+vb&vFhQXOT1-+r%V?_g}g5c4C#4*5KY%q0gWHWF5fIikRc}rV6u&y1%iv$8?)I zZNE#xN1F$Vr35GzCAtMs7C_(p(T5{~<=b<&6ubH61G+Gh^QBRtYRZt9U$E+qmAIcA zp*v!Z>0|zf;-Y`>@n0?-n+6pfozw@8n~cJ^K1CBQ8f~7{+WNl-QxD|OeN7dLf4mI+ zS4B_gkJpx%-tMlRB}c@03jH9jWZ6(gXaDJDC856?m6U{$Qzzj~>seh36u#5x0bh>{ zx^-U1qXd3IO6_7_tIWusE`sBA({;5JBvy6{Wb3S4ZLyFy>2`ke?ejzAkHuOx>JG+I z!oHjT_h;a85q1Ma-nAh zy;~y2;N_$1e|A{mFoq>1F^Z1!vEcar{R~E8<8|bJ=F9GPsQMZb{>KaQOb^eS1k(IL z**s43u)0u3ONh)i&!A?|Yl20Vi_&4p#8|w&&B&;kbC_-K!G7?ct-qT(RmXMAz`e|H zJ+~*=>Xewm8je3(j1H5lOUP92lF{op^>=T?Ad6GG#s6sUT*0v~^m%?hFt6Lf_bM2V z`j&dgd7=GKvlpd@LkQ^|zyI%K^=-y=-V}P^YM}A-|8RGUgxr0J-E99;ip}gU?$z~b zIoBs{HLnTaMKk9{C1T0a+Y=Hlc<#Lq_|vca*%q3Yy@J3HJ$T>)Qso7I(7gwniNjC~HLf+YNee{x}qP|e&l-A0}4Ez!`?)6>s9wf*&{x2OV9AJ9Ii z)ZZvjJf3^?hby{UW~?)*IA92 zxOiu0BrOdiqa5hdq|TCwW{b(9dG_oXwSxHL6LlXn<74k*Ex!MKHRt)R1fSe|e$0S^ zTH`Djb7qJXLJ3UAHSXUstOf_>?7|95L|iEred>+2~kD#-f&I zgsEP<1+V?{5UiJKcSiIi-hnJx+C0^w zgqf;!vF3ZTLa=A*|7L5~%2M(2LX=W=66%Y;_W%8p^Y?v&ul07J;hT}KbIz_oYwbuq|@DY)d3liAvFtA@Ma)}eZ^$>Hn z`E6~+jU&joP)?C%bth=nwVAmO8ph-`CCNYii?h|xN5uCkZjVj}R?L++N8kVaWEkgF z{*a_d))}kVnxFId{O=)g(-*S=ygc7bz=kO)RkVV#x|s8Wb)+~A_mp2%PiG9m6D-k>j#q!-=Q&w zidzLG#@%;>8LRktTsD&$d;bk645PSu`pWidbNTBOhrgFFQ$z2dH^Qc45_XF-N znbPd5{N9)bb@~>zV{%9T|E!abNFDA|g`cMcm>0%4?o+6$04;5J#e*Tbmyc=2TsP0% zl%smIpnccz9gwC@R(=CG-nBIp+#eR{NNB^t!l^U0u!lc!ckw^>SUbf<3~{u0`|aJyFSau}E$rQ&)5k$~1COcskLm`mseA6q`(AdA@{JIl(s&8Fkk zmt_ZWgDWbpOcy2zCJcz*>hw7r-mp>?>us&S*6}_<$oFkVTSvZ1L8J3-2Q{|QRNe4E z0V>(c4_@d;#@!^At&q&UDaS^J~S#w%4l6o?w+zyKi9%Y`Gcn>k8Z zRxKM&1fSLDUCGno>*-iF&UEbl2r5dQLy6XoD{~0}pYdcX*}f?W39PXlVh$(lPv$~} zDb%vZ>OSL>%;zGDZxVbC2oiV-QU_RtW5GU?j((vcHbZ*Pv|mUeMS$k*+qa8Po;>-K zX+E5vw@RJmkSyq-8bT>(oH93A`zQ|rb5B6N4`$DD$aaEt{Ny z3@ByGne~hG_R!t9aU(-j zQ0Q*wc3L++l0CD~5?RLPI6_>_l}r{(gm7Lg5lab)Jo26bTR$n%VMp3p-Y=*of4fvK z&m0G$jmk`_DApdZf>+vcF?Zre1n>|tz^xnaHXCdVF0g2(8+Lz#6{{S&b7#!xzsKFM zvSC;|N{QLJ2;n&W;=ETj9z$2y0(oz*w$`Oo^6G8D_>vNK{i)}6bt62^F4*R7*;6CIl{LiM!*Zu!(y#0p0vta#0e&r12AAYRN8$uk9`ZqGzo%Heg! zvoe&IVNq!SJwJsTjueiune=K=>&?d*cqekHN$o8n=6$cZ%TCofk)xIK`_fXzVDNB| zw%Bj+GMUnQSj8#}+?_oR4;YuxIzgd|FRyCemJ$1Tv{2#F1T}%$c6H54VfYh zPVGegkvrr(bh@6b%1swuO{jH!L;`0tXfW=O=RSzKO;PMbo;nh+-h{-QuGy@hY|;(=aK;nb32^?rW0x{iLLnG`=|Q? zm@WVvjTU=Kf|?$7fv~VfuHhNNjWv+UKzL3;kSUjn34gzzGRDEk_$~$NoI7dz<6!ad zaDzVxIymorf$r&#t|AdU<)wBl&z=w>Al9r{z7{V8{d|T&->in#eKTm-Y1?dDI!il7 zQ#g=I;r{PuU#6yr?kmc|#^uCvAfhh`(P(% zb5S9Q*(U5Usbp_|WTz@2VHp_`+$9CK$Uh-yW^3xMftab5sqiaGp+6gmwV(DPr?Hv# zJ>84vOzsC^y2K=lW-TI)YAA@Jo*(RNV9nYVpeh*j(?ld zL&`r|M7}Fo`iPdp&ehstZM=?n{?N34_BC>DxKj-)PG`?!Yvr6{WQo2)5p1W6^Ob=d z@OIya3x;1-OR)>kdK1EDoyp)(Vx^jIu+3JmfSaK`B3ZpCJE1a+S^+<^-9cmJZGER z9`Pd-XJ^mz#l2_i|8Ri*=hOsLEIv^m*2}$vW89mW7l=a=J~qDB|M};RqpJ+gN!#Yz zv%|v;BTMaFYQ*dNWM>NqF?L(QQ@FP{yFEl48_AZjF5uqV^Cd=UJ9eoy)-ogl!_M`^ zct=K_*BHmCXw>Vw&35dtu68J+!5o1sYL*}I`*7s9V0wK2fW}CX=F&l*s2^qQ`q^#g zQ6qKd8H8BNyt(ZuSH2_}@v{{rj|7yB;CuiTME6;;)?xsYiHU+n@QMkX&~{0HBBhc1v+>c19A< zFTvM27MdgfJ3T>VfWxt(R;uu!ySLMy#DRYQZ-y)kg@X~C?eSC@=+IDMtkBb`AL7tP zp20&CAO!+3YL%P7__r*Q?DZ?u)fJ)*mUcAA+t(m*xKg1l84SK z-F&X?;SOxS*NR56C)hZ6q`E%&OMSZc&3;wu133@jT1Qg0uUZMyB+dOz^Lgh&c<_0< z!F*z+|2Ze?k(o0K3g7gaVw+4-xI6-8sx=8G%o$9=m19?OV*qnR;;UB~3-|$}fKPc= zp?OH9OIxB=Qfv^5m!M_WsuJQ}l&hRm#bGw^vm;97H9#TH*H9NmhJ+LABdTj4O`7Jh z=gZ-u>2Y;%pE#~L`&F(ujTJ(ad7V}(P!@eXiY#z}=^mU#ciTKAGvs3S`2+gjJ@z^A zxyA4%f6J*l#KF5o_px##1imUr;EEj`RcGHrJ@!6Z8BxIYIz1rMGgQ-H{&Xvc3HDy0 z5jn}sfz8d~5pBG`%h(z~#10!)DNr50uE6)+>$$~9p_4`S^tW%{oV8a5vNjGX3O|1O z#Cv-JF8m6h$hBOTqP`wuAcO6>&zRQdDbGX(lW})~vV~;(qNLx#0|dfoD^f=@s72f) zdeH&y5Av3;ryjd4*9I5*zWoUCk*+M%u8&#Xs;k;#)Zn)JJz*>%jD%WJ|Icik$l`UJ z`)AR-rTYQ@Da*oyd`&~sXf}$ZqkpfgaonLeZ_URJDKOLE)S_I|QkHpe+j*iIJ<5Ax zxga`r*X~JfvDK8)K(0M&Jp#eRAhlsH9z>OU%U3_OgwGH!WQ-svdMzO)QX)E_PBngw z=H^2->|OyExih;^lW5b~VeKLYStRiS1-hq4TlO#jF9$;N{W?CnwF7VD+gp-?t}Xjv z1rv#c7ZNYEvXs6>L^)3P&^fQmHE2yW3ocW4C`!y9{|ubl@vvv%Z#4Q=ce?6qc6)!v zK7d1oN$c2euI4tyxGV?@?I{x%6YChST+6hZYf}Q~LUICN1Kw4RQM0pSI|&0Os1Q$@=->-S!+}nuwUDwQ1OiA$-8yQ)HD!#(N-i z%keDFire#8s{M((jllW79=*=wxy?^dts9>1lNgIcQv%*%a3J^XYxHrV%_hCm+DLd! z&8;y!TKNP<;j_}w=@O9d#nyY>+;Sbf2lrx`=ofselA&JxZ*z!TW}vZzX$Pew>O|z8 zzh+Dky9ZlvGNZnNW0% z$jC@UrzOcaL-La_`KzagyG)u@m*9(rZTAarydrJ+NQthlOq6XZzA3?5TBt&b=M!}E z_fIp4_jQY)yii{2NrpDf31JTZTEosziR@1ai|*zZ86-FMi?+?Hjk<~ZrK^KUIoX)< z)k>b@-XfN>iiM1O?fgy+`dSwnw?r;52 z0FT>f*W@o6v@~qn{@Kk$8;j$Lm_8M9-_OmcONkBA2$6uOe~bU}T+US`fy?S%AH@5T zXN1LC^rwaEdYwqi#2%)+2cc*aalUFB6E61M9Q*r&KMcppX+nH>5OD_}ORQ_cMv+S~ zqlNDN^PnTrAXUIBQP-H1pEU4Uj98-HgLyKZ<~oTMSq1Rw<~-+(andn_Mm^);Ar;nz8OfgHkpvoeg9OiOESJHN>MbF9mOWX;YTP%32MPavt1hT~uK;(ROBS zXoc3iEO@Jt!{!B|hEVij8P`UZG1Ovs)xLl0TS8+uJCDP1A0eQAP1?7wVSqVc= zIjRlzTZKU(!^$3T(p8)zngqwxiS4^|RdQH+e%;}RzZtJETPnT4pmBFc4IVc6*HZrY z7tFR{p--Dv_!UM2`4uKIoO}20BdBtB=5!yTs^dLwXUQir^nh;^PWhpyLC_?;R}0zc zk%C1Q3Nm$JWz?K=Gi3%j0((8Mwx1IVUUvqiBNIeLX{8o_rpG^K^#AzrBRS{K`?Lx& zo}NkXa^JM9)o@vjTgur|8g33+Vka2Q9Zp=#Ra%+9aM*(;C#+>MUA;c9?dz~JeNi0E z_*>AGZcD}$&c+ZKyQV{sCX*NS;vVB^WIPQsD?|t*_}wnRmm(jHk0~d$upLcSdl#dq zrqg3hY-6~oQ8riOSeIEi%-Cu~L7g}zTg@p|mOLziJ&RXS!aNwW>2T|6JvG&m07zg%nCR^^!b(%t9LW85Dh-*&1u7mtRvi?&)x zi*7LiXKp8ZX{VF7MB&;|m`MuB;<5~^#qAcx-s%x0CG%tGzAqRCR9Wt@#Ox7kj7StX z(I#OtEY)7JS;$Uw55Ne0{^)w4na7gUH^WUZzt0HPW7{m#*Zj4=5R;<7FQJgBdKVAp zA6)-?X=nK1QVHKl_n4FKdw^qK;A330+CN9^wprWnj1^X50jV^v)N)%GW-}Xj(4SUz zrnP^XBNuP(p84P`OJQ}Q(L)g&-I`v;vImu0Gw_)XA(yWJLcQVu;lllLPQ?p9zuqrS zEWE@HC#tiKK}Yc6)>rJ@uJqMD?X)Q__)e0B6&cL@FH|>qo{&~7XynH-Gj6QLIv4HM zPR|YO-XmR4*|0$MKT6#YbooehGoqgxwO6QMR}cNc#&**5oUQLVj>mF>Iory#?EFag zi)_~iTBfS@Ad+2M|BI_z|2TquzM-!EjJz%7qH;e!|(1ZWp`4b>|s1_mnXrBKP&;E%EFPETNK0DbH!oFW_d_4)*x8eri zI{hoGJc0`$u#wF)6C~yC>DrtTD8|a)|8R#idFD0j^=b})E4DruPpI`Lj?mXpp_ieB z%UhmX(|5XZ-x{nl40Ptd_P-qt#!_5 zsVWfzDpfHcxVT~WCK^+yRU5JV)ATQa!bd8+?}H9WZ>z^0{Jn9WJ8E2o>-bMK;9C`d zaep~c;*RQf2w~NNRA*-N>WVK!e6y}UlHf%O(a%MEh0 z)>7^AuMch6@)dF>X3?1}lf?G7f8{nG?yJ=3e(;W{uR!2NYBx&W8jU2uR=5~&K^{K%`r+mDIIg#6Dwa(1b`vhgh-xr+ZnTqR9 z;9FHcA0ZKvefr@JQcplKgE6j5k(BEmLGbww^9xUW@>Jy1UXDVkE7646AH1xVIOek>#`TL%*$Pd zHK`=uy?b|fd-VcYjC9Ro(yX?2BDbIKAdKff@{nvS2@t-}nya$dTV%4HSQ*PzY9$%9 zU+f`icd&NveNVB*v`xds#ic@Qfhw-9V~@RdhcaS$*_2*mh-7wUq|bnwcE*JAwfvEB zFzGPj;X6~?R13HDGEs@UqiVaeen*KjHx5Yn3%a|a3&?ZUN6Y*!H=n6#uH*Wsjxi!( zW5jY}+{u0=3o*4iQ1`Z}VQ;1bq@!hyCS$y*5#>vyXSp-)>HbzK{^`50+N;i3amCAu zZ{Cb3-bPHyW*#*#Zi5*`qxX><#}*4+M(Hg&m@WkO(S!3&q&V#|0R`XW^FDlCq#*bA z>BB0eVlCcyjum;E`dnF2y{+j+`ih!TOsZX6>{z!e3GIgufiO4GTRoJnM)I z&o-7va|_QZI(biY{N{ypo%+u5-e#9p*r>OeYCiA&&~n@D#>g&L?~tdXiGJi&bIJsQ zD>fKB)oeME_RU5Q<=b~%$fIr$(a7+?BC{M5!0zKu0BNjUZ(|c~qAZ*8czeysz`Y4Z zHL`hK^69jNt8%*T-JiJ}78$9po2l0Ig7`|IotT9#-5lN%p*`-+iuJ(@8xZU}_O7Fy4hwGg*0Wp5tW zOs>XYTPFec^ttuMwZ%pxr(YdSkVM_VfNG|WfH&V$&&sIaiRl1M&L zX8_z0rzwIqQ5u!z32Vg{{a^FhjXm{Mhf8!7L3N+FX6+#O{JBI7%Z2tx5n7hZa+FFX z|6MrPTwq$2qf3Q+p8ofb+^z1KUJG5(^LaUVS&miAcM9__}{J10jo-ULXdMH5ub4ozF)CVyOeP1S)GYR)mD zR0CB1GJqt{bXZbIK{Qye&Ci13K5=QP^p`IEJ329d!x`0d#@f`m?8q||26K>M-#`7B z2jeMOV?NP5{q0kzQ8`WyH;y!&tSRHo8*+#!PLU(tAN$i-l|I{c`{N6F_`pD3{DMJ%714zcbX^@O35wt=_bbSu{OGFBr+nR z2e}0x&==#CNc%MP9Nc%467$kH<)CA*Hec-^^>2YNVBa zhSAKf4GHyMpGS(k9 z>7INf^@|Cs$IdseurHPuN2AJWf*F2Zb#{?T&E0)^;En5U`nh`0 z$NqO4o$va?zDLA+!^i~a=MN&*gvVgC!1^~X(>J>AM@^{d-k@lJ3CQl_J?6#^Z8#_q zWmnE=nj`MZ*ibFjq5=8YhLlS6&hjN!^gt4G`NXp3svwZ&zT|=@E?tx_WdWo)a{I*z zteso2Xdc!#qFWzI%7#A`U*8xi2CUOCr3d;D)s@6M(|Np8Qtx!Bo>l8TP2Qe_Ur;;W zP0%zjm_u;u#(He7(4<^EZ*6Pq8dSXFVEC@DIggM!B^J=2Zq5r;MOPHC@dSR`Ch_jQ zg85>jySIP6Mo_V=HN#9YHrAALMn`$v4k1UDW_&A-J#l5bV5Vs%NCIE{Mp~-Y=uS~U z<}p?@L2y`Cygpv3^8LpTL|td(4CjYm%!WhT_*jD?MWI5cqdZ4a)pJe;fDJX8tWgUR zsWdajO3v^N4LC<1k+ry;lT)fXoF@ zLYCZQ$AsXqt%bhcojR4;k&0Pd%tmvGC56)p%{?xSB4Abt8VH%jUai%bBlxjXWb6Op8o{~E_1uD+^(IY5j3hSJ~$>Bup zJyT~DIE8Va0(5bY@zO3(VW@l0L4aj#UM7& zoe?l@X6ccyGBPq2fXMGaUP8pjTwvPw&6sjfM6BCkw3N{JIV%AkIpCaSS5k-S^H`N2<55Aob3bQOw$1)=L)R>>;KeYZ$Zs-%3An zU@JS|J;eK(Ue2o`q#8-Yda3(mh}uUa=7yFI>?1XnoFe8R;k7-AC>mx-&U+#zDna#8 zLu;n6q2~hqg>lSNuJ>o1iTob<1#r&%lv1Tm5M^YS5vA5vi;#RUN_&SB8Kk^$ETmbv zOPN{RGF8ipC6{U<03$Ebs_h|cNF{tM=jr*O;cy%$o@ZwxXqov3nocD@GXn{M2^}Rs zM*3g+F@O_`_D?%DM@$q2%CZ~teDmzkuLHOeA^=I5nK;u2*KbH0L z0z#&CwNDZWyAUf(A2KIvR%?M`uK%j=O3p$gV(M#m0MXec|09D;5zMq-kSVvB@v7Y) zxE0yR+0lIyGvL6Yb==5d>B`Duxjjo8lvYyTGfR!wAFg$vMQc1{R5!imZ3bsI@mh_s z+CU1UI=~EGE6rMb*?snk-hzV!df9f9=$ur_r(iB>P`tD(ZSdi$Q%;4sQ*GshRi3Ce zyRqCuL{FNyu(#kL4B7OunllhJ-)WPWda=78i{K*=7{uZLCLoNF#8d)V-f<{iff?4Q zw#(FeLw*m{7pjGNltoKw3>4K0jOWW4ByFyES)+Sx!HMgvW~nyt^K3ygO|)*)nakJE zP-IMJH~sAtJkT?-g`+XdOuuzeHDfoGu#vAhxT}}W*E?d1ZCbm_n?FlgW2+D`w6Gor^4#{O+!oesC1TtT+Qk@3zdL1Fp|i&qJKv4 zUpU(46|X>doUTy6_hD6BdG$;kV>p}dkkJf|&yDw}V(o4n8 z7Q@$76PAg=>pA}32l&mj+D-nTVKEz& z)=urV+PZABqw#G4fT6M$_OEvaQzNkFb5e;rdy_STmb!0T%EtqF%98yimB6}_#WxsX zF_Wi_dU)TJ7`0@DgvK`}-``?~lDt-p0sl@KZ;kFaJDKUUfitmw!0~VwY&5>x8(Z(&tp@>2%D zqz=KO{oS$Q0HT6*DBx%-QQB(E@G~|K2lU}BQJ~CIus=W6>Cnn1sR0UV@>H8smY(Pq ziQY(2eHc`BV%o0Vs@Q*YjYj4{EJLxWm9@=S`Eap|Hh=`hs2i;bzj|&`PSiOiu00{C z)2S(CKNeNgGr}G`px}32ecB4tAA))Wz-XOa(GP{mJgzZZF7EAnH6>O=B^f{wli;GX zMOOT-d{3-KeA^Bq&v!pDtTm&?wN4^Bu=8U*sdT-27PBhmV!Y}{e@Im#(|KSv9C9F9tIn%S3m*Rv5Y0EwzB zbl^riNxWUU$I%)^d}d+firc=YYMxf@=kT3^^0^$PtUwZ)LcQ!pk0Xe`bRco;seu1f zhk+4bAe`k<#ZweZ6>U3vNZB6e;*AaL^FmWB0BD>xh#}DnR8O9Wg6j1y0Z+x%K7E6^ zb-QCtv+;_rLwU**mgyun+z%U60AFllYzD~DQ26VyOKYlOpa{(TmlCtU&$U`z%^Ky9 zq#Nrq!X*@sqW3UDPm$1idCYh$>lK;SSGQzZ(ym(P1j_$`tzEVUL5 zQ|k(|*=?ZUfaYe+`Tp9qL~IWq7N5vEzEr{H6Vg z107>BR_{_`q7q|shkSI#uD7Ejs9sl_AGKbWVzfJ-mo6IY8v_d12R7D-MDAM^x5l6R z?+P*H{g*IrT->iDSlKJhe?7kl93vtW6;lCoMoe*w7SW5SqcJNWm#;%fqH)cUDS?qR z4DWJHk5W^j^Hrv3jU>dxGIQ#ELIr`IuQ^d})SUo%dB#+Pl?9}jiFVb(IQMHP5kBuF z*rA#2I|W8NJG)&lGD8~fg`EXF<>{i1K=F%NE7^Ktg3M+{2P*)Rc{lPWr^Tn~>bbT? z{h`WePzKJdWez4Se~-H>LUnN+e^s@6t+nluuZkkH3{sW(BvM7rvpne7z2MBI^-8~- zIty}!{$gEt?m!@~Xo%`1GX2UMdLn`ciFNb(+YT}t$}qUCR2cQkBK@y@Lyk{qk*(K; zF!t0~g|2bz_s64X9;Vt{U8N%O|tV+MefwCm&aHm?~d4&z%kjC37ZS!mAyVd zswtK#(?ys=m;1gwn8+Gx-WwZMLx+XEVl(W}Yu^Nw9EEZa;Cq_LCs2M?P2;2S6ECIu>wd)+YQU)1nhgY_a zAL{nl7wlE<0K$vMS$O}A?hOL@DL5)bA@`r2_rJ+gUoD2ahB)3UbrYW6SUGURvWfYwwYfS*S(Ry`9uiL`5QUgqL^SHRq`4b05>ckFk_>DrDV=E zhkB?2q~Fq%G;SDv@dHezc32oKGgy44N-(=R29r$q3;{Lt2?lLrv^i;WX-u4e{H%aI z_EKj=X`_A!C?@bNQGw1Ys{1&rQ4CLAwBL?dAa|sfjH1F@EY^?s=S{K3nmKZpfN903 zxt+|go$v_01-4H3W{^IglnqI@kk+E`_UU#W&&gKKMM8_D4$F}20-VqUVR7RbEXJ5; z58pIj?OSfF4$C{D+nh7^e^q&}s2-(RS0_`Fg}UUeyrnK*cvB&#S%+l3E%`d*Rf$z8 z;iSt^1>A6P)o(h%&~>T}+hhTAbaC0++SOrG)d_7o%}=Jkwu#Gjm!KK5Og(dj`Do@M zZ4&BYGY47FA9?3}jyYK(tvx@iH(c)fWsOL2)h}h##nfwROIR-lzSe;r7)izg@v01z zx++&stn=dEqYo+c@G6l>Cs`RRNIeRxFr~KVf?M0asEvMoe@uRUQb4Cs@x|b1vUZQ$ zsp$onrbsAh+uxg9FDC5IZlZLX4vgQ+z4SB<{vI=tlyQf38ZSY!mkx=~IIPA&>Dl9s zFf9-b0uG&p>f|+rM*pT0V+E1;B@71rxZR-$9xJ3i=A@0xfz)25Kb-=60&7S%Qi%U) ztA{fCnK{4WH3}q{vAVDvdGmj7lIzgD%IA%|j^m)P*`tfEWo3OI46Gh;ZVqUAdmgQ( z(;X#i+Lz`#wbkO+1iMkQX#waoXwaIBrDf8ZalqPeff{UroY(%Rj^b7qAQKE-z`WX5BeQn# z!!=4WKF2SG>N|-f9bDcR7d9X)w`b0Yut;BQz<0a2cE>GBfUhSJOl%Y?M-NcJfCmp} zoM;2UD_=&!nk*yS+6wm?q=VHL9s`^=RuTTfCu-9dPH@I?+jk@DyhfO_a$cFHmmj`x zluG)!H=WIe{iJ!$fBNE{(wpx$d0{TRq}gx!v&uZGNUXg0xcbRw2t%nVT@A=D?=n9V z>lpSjUwE7-cBammSG^lksCQK-ej(q(t#em|Dd+os=Jwn~wLOX&oywtBJ;yZ>g0O)- z^M1W@8C?aJJE_kq47(>%$vNNN|eTwfm=u==~Y{go#(cGzy7GS6{ zk)w(+5Md^od$|69fUY7yXHGNlsAG(0t5~&OB(~B56#>MoK9jxHK<@~P;+1EB*5Lk7 z`23M~;8OSMuy@>*Cx95#0^=Pm@NTVOHm5wg2D0G1rvrL~s96t5Km1(N$>V#}3@d&i zV1N{<0Z!II1n~Uv9D+GCI^6(XJ_ioJ&g-u(rt!Nj<%V+mg%{O_v04LtR+`*8?khx> zZaiQ>FlO5r+fzN6^$Ts-JW|UO-ANJm3tU9%nqGr}J|&&ax-}iQU!TfS-V0wuE20)`{mDAL(1o2svZfyL0$=9!L)^f3;phl(+2x4xa zdbsVh_JgQ4P8d5rq8Q~9Z$$Dd{1DA47Gb2TyML)h#D2b@~ zB^->`e{wG|%+i>N{dbU(_H$nmjqu1(qMhFRMg7-ZqmmWz81Dq3zafb!%FY1Q9CmVoD2OI=L{*RoVfwL z2CBI=$CDr0$HZo9I8`q(T{~mw65De zDGnlDK3dX!rXWdyO;&Xn~|V zjlfnc5n)z>^RFB|M6tQ=2LdtOrVBtIrh_#U`)2K~vB=n^F5QY+ZVYwgffmeHE0DaA|{bs8X zC`{}x2L`+O6m--33)B_`E;N_)zW&EF`Hy(I_H}a)mc+K&=5gtxta=|jWo@q$Bj*Ld zqe&KU+YKyD%sAQW;xfF)0TD+4`~)uV}gW_F;`IjpKozpnwzeEL>( zxNa&XI#b1{W_GA%gGGNeTzId?7WKlTQKcXdl}&Q5%5uzn3kGDv_!l$KCC{~n%9#lz zS`za%+5%Hs04QBv(o$+T70V_E<&w~GbpNDq*=KuBgmjpq*mj?3g05E~g)crJtIyV! zDop!Boi!19{lGx$ph>F(rf@QPq*kWK6M@DdbE`TgkNukdUgDfFA`Xy4Q|^7?m9bUw zjG5Ufe!SseK|?LKuT`(|%a`jY?JGrFlWunQ-Z10dulYbA-ZNX-!tuW&>5lkGOiF70 zSQWS`J(7to0U7NLd{bR*_v#{ZygNoiH5{75WR1+7VY4h2a_1$D$K-m$5LpCWCHD&n z(EQ7LHN~2XEjgO;o+al&-H=FO*ay)NC~0A4d>==~sAMr>>Edf?{emb^-7`b20i#@bsI&drQ_@< z^y8B1IVI(X^GimLcD@SX#U$LXsjxzAzJQeK6(>I#Hd0Ga<9Ax66F#q?ll=g93`+<% z-TD2=8aY?&hcb~O*ggT9X#rewjyM4jE6ztIKfk;m$*vu0N`;OHc1XG`-@;Gv+@-Jm z^*M1Km>56@!6U|$mcNwdqLL`Cn-7^8?+CB=+|6oVf#ra=eUQ;2nS$J}+sX(P3Iok8 z-R6tx#kv=0P)_Q%?TDMMI+EZL2?eBZR7U$y^uL=hVhEp?-8g zRF@$;mn7`Tp`%63W6$kxtl?F)gdd$^!&l6bOnrvHfY9I`y(vVYgz8Iq;JFAYBqT|HTn97l8d$iafGMz>4;Qiskj0`l>) zGPD9!=EJH&==EEJ_5gLWd1GD~3|QLiIn-@6U7P&Sj7Lxxwjz(rh~xwQOBILjna1}# zF5O+mxHfZr(zyU#zL=_;(ra?kWlz|cZfsv)0s}XrW59q!_O4(u7gnBLzUPA7q@2tO z81I#=o%AINz$8d6Ue#T)MbI5x8XJ5AX%&(-bB`Cca)WUsJG4+y~t^g=6S%u*gJ-Yo>%I@6Z9^>zB)OZ)bSF>()cUN<6 zlS~>_4mt=7lzpyTamlmd*S2Tf%d?oPTL|o^Kqq!p63Eo6UaO!~D)pJ{&yQ%ZbvS>g zYa&8xYxWKhGbV3-(WnH}R`kTFAVTVZt+#D&^%?u%I}MLvxmT%Pr)4`@r+L)3-fE!n z_jwQ;*(B{sWR6+qYc&9AP|S&AvjkRS#kN1bD55yqXTc;|6!IfptB{#0YTOa`{y{`Wvt9_KXgf%=k&nJg%cKv0DC# zqLKAto#7~18VSNK&Jqul%`#}e-GFAW>4W##^+vk@`e({ZL4 z_4d_gonSz4e9L>)&9r=kL%`%hN>1=F&J0kjU0dn1quc$p;J!U2p_=>F?PM> zP?deHgrXn1E8~?g-meg0?=@G79BYey>73zw6;AA1=Ld6jHlUjkAx|LIuu;XY?J~9o ztP`Dmh0mPZ{|Y4|p?lNQ@#4TRHo<-?I@)L@X0F`6{l-@w!o=Ss90kKhoU&4AJflqM z;pVFzGQ*2~wHJmM|) zbEBMqiMyH2S0cDPQV|Tbj0tnRb09ifj6X=J1Or1~x@3 zmrXS}`u8a09oJ)3S*-B_h;ALEFv;C1|Ik^Srz_E<4sFi)G+d>z^3qJLq{7igwby1g zRwouyQ%-zCdcq{jU})WbFs814W~@#r;ELPrI4p)s3C1`Sls^&>AbbIxC^cv)*^S=# zXy_q6n5rv3P^9^gIu~Pahu|Td%|k2&R*)}^!ST9H`&5>CDHa-!gkGlZaX7?Orz4pt z_^Td5h3Y_4W&@rVr2Q|U&lqRDhgGLzmfyqD|Mo_3EdJzs*Zm4?7zg%nM|ehI@v~?1 z`Vy-314iP0)xb>g91weq)8!H?Ftu3b%E){**zY1)zi74mOF>Nn5**X5nyAA?6WNvvwmX_{{_@o?Sszn+brr(Zs z8;=gznl1#HK`#h<1mv1&>DXu)OWX{r(D}YY|3h_k*?W^sibRpUNk;b0 zb}7oYJ`dshN`99}y9OsE2n5AiFx)C19RMtMV9_+2{ zmu+`6CHh*t=g+;*Q$Rma+t4a;7fD4x9Paipox4kWFjM^%JU0^4BL;aC`B=AT;!*`~ zQ@Tdk<2R}f23EqP3r87+G~v!Fft&eexDSxPprOh)$Uqb0;t-}k$&fZ3xwyAptYKQd zp=&?t{b6-yiftms(c%0pF@kiO$<@YiHW(eO0UFWCF*i;sC@pYzH6JgYetAP93Yt>+}N%YBvGDx>eIRuf-m{GAgQdAkxPzp}?Q73d3u=w9fE z?;%}xK%BWvPU1P_+g}O;a4y|ya=yNFq{KrqZ z+-BEO_QF$Z6n!5dDoESzKy-5mILhV{w>#@X3I}Y{U8YP=vFDd`ddHo2&OenHtlBG<3e&{s3>FbYiC?rI!;9UTdPC9T9?DNa>j;JU5wo1c{v6 zGQHb$3XBif%^6GU?`x^5;6-!fnqf2)ZwsX;UU*;_$}q}ROUI#g^YJx#yr}1FS!y01 z=tEBiD^K9`x$C6NG~_K@t+MKVZDqNv9o42mZE!C|G2+7M_^IL0Woa zzAf}Z^&|)KOoWs6vy20L6wy?!OS~rN!O@{fogWkTkB(31bW*K{Pr-8CGlVw%kC}Y} zva|2CO?_BiHfJOC*L~iO;up1hAX$TeG~a5TWZ!aq`l?l#PJPhT*n#$IrVFyM4ImSu zrOhlER9%g})*~J3$ac;D4*wW{Kzj;|3U~T5$FejK6%R6$FE4irga_l%>7=r8S z)vLOkWq|Z6x!ISzp<3fd$%W8Df(McHDlRFfh?Q<;b+ypg*2RzK^nz9%`4Zectxc`v ztJAorl=ndP-;Xd+P&Lp*MMZC;gt3s%4xn3hJY9ME6rGJ#%tO0$!-WTeRfesd5cr=2682 z*%{dWx9)z%#T}-XNe~eTjo0$^@!_Ji#k6({y}NsU7G1+x%lWP}*`_5=oA)~&3ney_ z2Prb#l7Y`RN-kdX3nS38X*a&Bz0g{R;GyQ?U7mro%7)HIcw?a)Xy?X?^ZK`GG0-KYR+y z5CMPPqYK9rn|JS>`w^j;@4ODGI8g08clIY<9dGtu8IiNnN z4gENAP;2XLnS7D3r^F0Vl5dCef9?7G)zCilknbnDYt%?bQBOBCkjJ^3?-G!c8<7Mv z6G~Bq5!0srh^zS90o10UAys4JQz~=clKJp3B})lMCgZVPQ+wt`9Q^U&vxIwZhUd>o zz2eooeLKFonx;0Kt?i7F_FZ1f^@MQh4CC-oZqxLWSU+_+{y5`n@&a0jT&81TM#~Dt zxt9|kKOXTdFS*egiTQEHuQ!U1;G(c!bpEkPEVPDWl&qoOGrxcRJvT~J$$i2HaRR9P zlGpUQ!}G4%Qprxd(7`&yaZ~cB{37O~D=91Z1F6vewBP@{?r{_MxV5PkpCq(~ddvOl z^J~@-J89-4{^>VtGWkN4Q^JWrZeHWG$DjHxf1JgSyv;1odrJJ&h>`?vFI9gswYvHe z_6a7T$t?CbBO2BMS;1VlL{xvlANiAiHxLXo5|ku=HW!n&) zX0pp~{}gHanUCO}kE7q7g@%En3OZ?BQtg(is;W=y6-Tmf8*oQyokVSD&ixSx>-RqC zYK(xTWiI-Rj=?2G`CvGrwFl2|F!Va<*81%kc^j^^s8JC={r9cXzu#wYF{~a4Uq(%k zE#@m6Uj2!P^Vg$uC%cTCS{q=ui)5!aqJ+FXd+y}F=izxEAQECe|Sur&$o-BE!&C=^$o|*uXhyc&;R>R^u1_Km50v05{i#S6r^;ZXO9qnFVr*DPfDnjrMFRE zF_yDQ=L*`G>Uuwb2LJB!U_B6EbHgxz$=mp|+ynD`=kt1F0rMN_>fEG9uJZ%Ooz8al z)~t9*-o`55!b5wrMI%!B0{5)Y3%6kmp*yG>1s7gyq^go)J%5CnDE6906E(p*u03Ik z$N?MujELhDcmH|YK*`IMG&|8Pv^{KWdb-U{T$ko}j+`@N9M?wHxOUg0PW@t}adXo} z>~riVM*Ftn70Dgo*qwNI+1dpE^;OH()Gk7N8;P#mTv=zr*|2$j(NY%CK|!pVf1ruS9oy@!P~9hO`GXg}uY%1KC`0a$N?$V1uU05L z$xP)O85)3sNbs;CPUnvHc^=Z=vww#FipsA#mm_Tb5th(~%if{6V#2C>1F5bv`F>B; z#mqOyLMSC{w#84CSkKX&U+X(W_jBF$ohm*RRS`C<$oXBr@~?v~3YrB*u6D6Z8GRLc zC0?xea?xkR)-$mO66rNOYG19c^`jS!nuv_N2<~gC%^X|tP*YYj9yrXS5avCrXG%e; z^jH7*GX_wGB_u4Y7losFT*?u%QYxyH@h#C(sQCRD>TL3wk7f4~OglXVr*7E#K7a9A z+NFno!`1Q??PD3U83(^g&%k%7Bm+Zm(i@m%12sSpO~>HbyQ0f2@BD}q#Qb% z*>ZQ5?Xj6-WM7P9vv(KOh<9dwQ6J{_VyT^&zW8}bfBJHd({$O>J3=+Q{cqStR=RS~ ze&zuF@)1NN1gta;y>UgP`|x5nDRObj&s|Qli?(4-%q7GWPb0G67IWEN(+}`E!9AuF z%~(f%?gw7;_bx}cy1+3_W;v0iPQ*IN1?HM*!2n4Xo(1I)ZSvXC#BI3`0R%g4P_OnLZuqpzDTAU!bA1T}kH4y6=fx;hz>enRu~uZ2}@64WE#(}(SPX$H^A zEZ^uDD7`NiwOzqP~KGHAWxmOOFW)0zjxw4@I3)lcf~Z4 z5JaZ0w>N$$!@`sM7Sh&l0jkMNwHvIsXZh((HD|KE%1A%zs!+oGInxj*Mb!|w{@X*@t_V3+11{!<9)r!M7;Xyt^Zw`&NaQhP^K zI0H0LChFy&&DDm^u{zPf0K%660hh&VH@44rTOsxq_bf*~-Z{@cEt+!wt-}+mhd&~7 z`uFEcAzb!*`I7LUo&6lH`}ze|-9|;F{OPGn$&qY&QYq@?5!MU6N)!(7j3Sj`b(yANkM>3L-|~tP6hsjGLiI!2TZJ^gXHUtlQrEL{vmXCVP5$Ssq4G@j3D^6mzLZ|pEX#GYl=UWs9Cn$4 zu0_C7W<(Nq5l8AQprg&v7s8@Jy)no2+Mt6*JWZY{Y9(dn=E3d2{~MEJ;c_ zIbRx|Ie+tEPU4zCPOw~gRP-fHp}UYK-_wyuZGjeg7AJC9W%ziVW^l~yJT&CL3@*PBD`N}6ibgmX~ZjE7}Bq#>VT{_^n ztbV1vd}3?Ru~1IZI26?DL}P9g%jPm@ealy_WmhgCvO+*2EP~-n_Hy<^LAK>iOM{?%2<}l)+RaBETP|3brZ7_6s%{O!84pKe_al}BYm&1Sz&;U!R+ zjPc~jll0c^zV>1(F18kyiftK(O(&5j9v)4WU}#P|6I?VWdoon?=zw1ca@OJ%2e$D* zV^y)7YQC(zfmG+bItGfOR3LJF^#J&?Vjx2Re9(;5wH8E#O;h9$JrEMEI-3nKtC#7& zBFDF=>n)7PHyxq)N|6*lqW!G2xbV) z%hdevB-fy0NNTu#OrYxtW&@Hmn73QLl^LZ#%s#*I@dQhq@ATFt8n4zBXOrt4@&@{}Rlx{p;j$2JH1QNcuaJ2O<`e!P7S@d3 zZSC*b&0{lrA(Ta!XRp)_kK)FqgWa1niz6%pnVscmXlR${>BV-}XO^BKK;gy&qxn!8 z6#nad+j0nKoM=hTy#2=1NRSdpV{$p%(VuA@;hRDsK_lgym(&Z#`>9;WKS%&YR8U}m;s6f@?U3B zQ{>V-$#|?4>qD5v_!^ClUJE)M0ae@j>tI_89(| zGnUo9uJbv<8Di>!68a5%ZWK#^TL}b+ZY^k|ntpt^$+>smFC*h&6{dV}mKQ(>CM`FO z-=SmZu+4Fq4PF38%yp2d#tU*Pl;M}&WuCh>epxB!Q6eF8sWE*-_${YzOeK+EH+eKt zwn^Exnwbv02(5eAjB-KqKhbs)NFruM&2CJ%mnhQAUfSQAxSG(DbG`K?K7e4utm1)< z!gEj*4R?kLlorh8;mr@t&~^banX}DG-`@!2f{|k}IsnbrFq4euMq*ax&ursgyc=F2 zKj*MepdiFhTf{}q3kqqV_wx*th!wl$- z1c$i_B?=;W-7C+L>7G9iT<@8oGY8ImI`!;Ur*CVfN#{sbgxWd3y;FJF;G2wYzSR)7_b_B#5--_eX0Wxu&fg&S1LTz$Y@-#U!ba=B8Fb zX0U64cuBJ1O>p?4w5j|>kK+<<=#Z-hxgA!+w|Hf6C647i-_E!o$h1aUJ-~IxCEZNQ zlQ{n4Aq0M7nI>-QV$J8zFBkx*+_!nMJX0(B!fIpmM1pxtI$cFGS~1#qPicL_F&m$x z#~QXpJ7_?lwWYbACNG)1G-xnT5 zm7eIdzk&s%Ese63^l$FJ$QISPZKF;2DA_NDe({Z!C zzdNz|!sXdh^#Iw2p@Db&S*{3(O}2!j=bT)XM9qlODFiNA?*O|qqfEkc>uK}Y#t06T z&7~n0q!=au3c{-=;KOM(C*I1~Tv)PccHB09-q9`f;R(jgkTGWMCK9Th)rps-JarSs zJ-KyXQV1rzX))^~IECK;MekPwH(=(H7ldO;xLxYl3 z6Mfwx7u)S%rG_Num_Ep^1p>F@dNLD8F?Ymrn&jpic79ZnntSD0I@uh3nI|@!&GmGK z7!eVXu2i0WTgz&<#+>%f>L*dp)^-PVGGuqG_8pos_A2-=HrG@0Mr5qR76xtc#pSgZ zf65;Z%R$aF>8}_X3K1&Bxm4f@;aT_q#fLq@8Gf}?p0YoB6k@VaLO(n{Bt+4Co@ zoaZJ(dJk?4_I(chR<@Oo8la2X6h)=V@iUJNv+5;L+eH0Sm>2z}Fp#-5z)kwY4?yyf z%6@IqBBZ0_?M!`z^WJqYIR6*2>OZ&ycBp>Pd=*LWsKo8Q6@tdbRP~+3A6bQej6Jdptv43Z~VI=O`kN#f!{NJgrHx^t7CNv=w zM*K^hiLUM^h?#3a4V4Bcy|&CrCVhRtMzn=znT0at_*5%WdbMMzZ)-?uXtCc?{Eh)o zrLx<)BC7_he7@me)_bCryJ3g_Q_b^oRha83)XGkzje5ym&Yc|WK!sQbgQSx;;nvI zeffaP9%B5h-{D-vY{|wN6q^8Jm4h`xqfr;ZXIpL!*zq(h0<_#-HiF#%G8ui7D$kcl z*-H=(2#Vsd5d)qHGYA8OWM{LcD03)+a_yaY*V@Gz(R6-*NzHU5BS0_($sr>I8f^|b zI(jW6(K^e+deLe&H*t~Ilgb7SHbt}}j!@c$ifu3M>xeIZi&;PVy6Es*N6&KIK$%=x zqP>5=4FpPbFr-blXJkjm^0YdoB9+^PbQ{BhFL_{Qd7g4rfD9{a{A)hh@^aP98)%x& zyX!<-Vk(PMsfsyIpe#^?0$Yh-b@y=Ze7we>a!bsBEZJfESh`B#2QpL0>O<}jn|Xy0 zt8eoYu&$N74*q6J-Z;}fX<)w%`#UG1ES@6BaDJ*U?SC7UpPzrF8|OCcQ%J!HOjvf( zeXObJhVAxDSm+FjIBr~lU$22|Lt`)6vAoL;GbG!Ft#K7!-rbi>eUNe?L%9Id*-p@u zv}}A;%u-h)NXlh+ZL@TEFFx5|s3MwU2@@$%U;BcP;qs;N=WOa(GZlNiN^&~8qUPp= zdd^}zfO2{P6^smUk+hVGErV+^k!sQk>h?;DWovkT8;su?CYLlI&42b35zz8U>KOBFemzVi6g?g?z5kNaC4KW=??R546tNF|QT%E;>v1?8HQ{Dz}GeZIsz4=CKp$YI~u;d*roxR-w4#gP1zM?d2!_?>Xzg2a{TVw1}hSZiWteO|Db}&6)M^ zHJVE6MW>?iW*aRu39i}Q%q{yb5>*<9hb~-<`!?lS-ea_kaUWO?N+=|&w1M7QLE$wS z1|}nrL2~9z>9UWJ~ z&VC|s>y}d11kbgmijk4fJ5Bj1)ZcC$l#fo*RM)S6-J<#A`!g+AssWrLQ|oQ<#C#mZ zn11e)%C&8>@p2jZ-Y4F@RyL63^gM71VFf-P#Sav9CB z2r6i6_{SNeo;f|d#K+#TdGX@gOE)gae4!bYNw9$8-z3!FVUhXISmYml=xgo*#>VMk z339N7tVlJJ)TNF@8|UOn{|>$8NH^K)#5^u1yqSro@OA_EHJIsL6GLfzf32Tr{t`_J zWnNbfwPRU_OTE`|G)n8|Mrj-)SAaD-=R#Bwj9s58x<#K7nR~I))#IoV?UY({qHB-4satnXdl&} zInYV|;AHTm@mJ9XaLgV}URr!C-bho42QVu69)lyKBCMy4b818WHM-9lBMqj*o zwfXY=)f2z?7En-y1x~ms-C_;Rd-8K_v%kDMxTRq@nh|Inc)y3=KP~$QzpAuDm%w0! zcCFXXB@2JC_hDW%KtzwOM$i1R&7z zz$XcBxK5jmtdzg_A}i0pX09Z(bNtx9`dlnH+dDhn;^OWgrMWx0A4c$NH-O6D0E2yN zqCQ`t<=MBU^$(uYUk{LvaTvWaALrcv5A#xG4n@Xap+L=F+%gRTWax~!!3GPx+fG;D zN8=x~^uJAm30YBDul(vCL3a`d2P?12lNc6uZYbh>-mgZcYsGFb`hXEFP4X|}43X!B zY_Fa@hsrwS@F?up0pQFZHTJ1~!LYvFnF_k$7vA10P2pD=e(^F=5uDK9^uf^#-#+dp z{)>6y5FwludZp9W%tPH@yW0Le82egUT6YlaxOe|j5LR}hUtqpdzq3Y+tT8TJeCuT5 z(D-LlnF<#j4Q>DO6&1Jf`e4Ca49tWN_}u77pCEAe?C{MezT4@RlHYwWZB^7mO2yC4 zrp4FbJcsY%0GUcWgmE-$Xx+zCz~Kyt@E4|QAgBj}IBLU~R51a z4`*xaK^hSwh*2y?j%~20m0S`JWzI9b&2RR;z@S4Jnq@}2$ZjljW&0g+((;6#~3u>e}> zMI-KYn<0e*#GYvY^lLkvU)3? zj=4luGw6E?q0vgk1Y1p2v9%FerTl&v0+VN3;}9-0Mu`66CkgjHFf0{nOW|gI+Z0?G ziL!+MSoYyRM|a5*63Y;4PZsu6=V@N@V5g1Vegui@2##nH}Zh zI1lWSOK0aT`I|v2hZ@<}*gB?U#IfI*p(5SpoZp!us{%roQXSo9TAzJ`LG8>oB(Ou2 z9_795LTr2Sn&25|=;9HRsot6G$_R`SbR;JLxrwpQ&XZV!w8dVh0!RI)hJq`{#V z-)3ylf1EJZ55so9bN7z;N<7B3#N))@^jc19xNTvLMrLDvzoK(eaXUIb+1GL^4{7P` zfo?=%?UV7l3JwmvVMbyY&?LKDIM8*MMmi>Y*rw)y6D8?8ltEW;w3k)*6<@p0VAT z){Tf>R)7X_`U`n8mCnk~4gJM=;~$Rm?$kdp+rFXhw4wuelUGhFpA@iT_NLp?2xs#R zBcjoz%#VKqI&$3?;O|ta(m*|Qk;xUJrt{|yMc3V+-M1l#C6M|V{XQX z&v_v^3*fDB6*Rx~A}Srx_fLM`6$&_<9X@hTtkHYPjf}(<3~}K^uF(|KtV7NLVM^_2 zFl?^E;lRCm?BazBDc`n11$%(K6UZ%j%y#4t4wNVfp59rC8 z3S%PahYn($Ot$7NmWx^G?XyaN7>F3Q9RSIKpy5rJ@YTWUtLWj)AXAXW<*)?1a-4^8 z4=)2*cVk!(y`0!>K|!5^UEFIAKicK$HYu~&u1~il*e%5bFeotlIh%Dokw47sgOLff zA75{`dgHnu;8(=kH7ng}CSD6?hT)!Hy@1#YJgbF*21}AlY`(RbHfB2|2T-rgsFRv9 zg$@VDikhDw{WGXu%XRA#JS94cW|Yw%S&hZ{Eip;ZbAK-WI_X-1y5Q>zJCd5$Z)%*f z`o8yeZ={Q(^nABuLBZqnv1}@wK>@Fh=$t?I)gnV==x{%KLVsI4%`F^7@x_+zadamU zD!ax004}qbqoylXv?Dvbz*1$P{u*eJOc8QQ3V29l&> zFM!&90dYAW5wogDzL=tzinew_+5YOioykb-=1h|7Cr)&z#K?3rgKzY}yg4?XUPH=j z8`N)6v(U`5@J7^1FD#kz)bcY|x#-IyD@dem5v zZPK@S345`8%M`FkzoTdZ$y!hVfKiNu&~UmsT1(@q;gNE(PaJ=E>U#n5qB+cX*TT4@ zr63wh{DTRW5Vf8TtLV1pWS3YkZ!vaMX`+1qgRy4&yi zZhuL6npCrYur&e091A~Jhzg(x*3%9<5{e>Cdskt*WV98RQCHBA$}7(>H%&{yCp~$3 zwEGjf!o=?RL|C{tr^qb7yt^uo@=s_2fqL|h7cVs7aa&;~8Vle3r@WT$iYB7l0I@aW zA*(I+EiCX|L4quFC(LL+IGMkaz;-txx}vgaNSF!K`sC@yuoy8|m||vber@Qeg4U$Z zLB7e7GwD`MON%s!n>N0FLCiwakt`joVw!RVw1mEbE3Jy~I^|UhdP&3c{MOSAN$sI| z7lNZVuh($8$EHU?WL- z@ewnx-C{sPD2vJ(9nz~x0QHpa@NmWF0*K;t%U8}mk#i{Y2Z-ILxvQ>+JH!o-B73^> z^z7aQ(t?zop}|Hesr_*!?b!q{UM)rRk>^(5wtd&^qp3X058^`ukm=x`X!mwZb4< z3(0V3{J}Zjzt%9nX9w`T?Rd8X_2h%WWR~XF+}}FM+c9pFBJ6n&+wmeW#SOBnx0t=p zQ=irt9{wQMTu(1Y&wY@9~KcCQ^;WQyZ-N0(K$nyd81KjMH49aHxuF^bQtS0P9U9H6FjmnfE2 zJ`u+Tx*v-Ta&trRGg<8Jd0QjcUhc>u8{SC44hc#}=jnmtlx1em&~I)P)~q}ia3F4F zT>|ZoMAsu!qzZx+_tVPuy}bJUzcp5ebx$lGWt(oYRqp)lXWyziDkk*DS!_&axiKMK z_P56v4K1xJBT}`;Bxrp)mK>{&iwy&3DkX)-FfE1s;XVZFNHGp@@F(hex0H_?n7?z} zGVOLar*~x1m-!&Eoe(fK%kQpDoD{pI*OBC!U^B-XbrUI3A-8X6NZ#Fo^Yp;viIj5r z?EAjnT9|Fa$`jn^oJI02E&bLsA@9-EKC=c%RIMdKSdj}SyI-i0kbP;5m6z(+Tr91Uw8^HEE%W*U`^`P4Lph^` z*Cq?=VQo*;0mr&Rp{dCn_oB|{Wn6dPD{-CZ{6|jt+dIWkuCh-nWws=`m5aG-cyo#W zXj=$)p8i_CRqvXma7Cd}wZ&7VLFf70=!HMCf&c3(_i-G3irXjf!coo{jE?7CWiH1e zyYcwmpwk*T?eg1OK^4xFqSm|0_Tmhz2is$}X%j#?-Y8AE&D>8+#+zc?l~k`KhC$hc z?oC&+v{@Yt8E;2+7#~bFsYGkZrCR%RNJ|R48hq`{wsy@>-T>9h>%npP4ndwCe20&p za_<8G^AhY=yz-&7$9bzD^c26727oqAK6`n_1VZYdXsYt^s4<+sR`8Tf0h&+~2%Nj* z$21J3w{``a_lvXKWC7{Auk%xf3$J(=-#^is8&C*8d_~Ty(-t2qiI9r!?XtR26W-nW zhDBv0`<9fx!DOSsWYh|t$#LDp0VQkh2;{U+8!A3S2kR*W~!*=~y;mFrigLE_kKfm~$+ zs;HdQ2n|;?V~qXD2GFD%gDbB8*rdOxC0#(pNUs1B5#umxke43ZfaS)`Zhh_DZ}2q+ z^hsI>59|t}Sd1QgJ*q^1yx)KDuHQ*OxHE(kd& zh{+*S-6>1<#%uPgg-HPcdF|rDTNXpoUi!6kMqMZ@ZwWLwOnTRaj$1GG&tPIya`LWS z(KzhoyR7120kNB-rsH&nidp$0nF{Z&qjs%7u?|29XdWluV#c+YDfnzc;^uI4aP$~` zZgsrQg;|1_b^A(R9=uktPjz^wPK7z z5DUK~dFV0)fuKp1o;uri-`C3IFR|-8r~BQXCX~BP;-=4gFf8~r;^P;&qmlHsR|dNn z1k>_XC(1o%uPm^hX@T`X8QM+nATOa9%O4HGjF9PA-^X?yc;{+oYr_F^HBm18&02mNR`LfsQyNl3<+25a+1wEuwXR&DVPil37n=GMriE4D2nu{hB#%GUX3df-MizCq$tA&F_6dpOsf zMXP*EQbnW|pW9(wvCLu@@JOmXkLNbH^@k3{9!qdh@K|3TJSR`(kB_lFv;h#GD+8q( zDVp!P-%+#j&PU*9g&X}0N!dN0pf$=vTvoH2ZQ0+pV?qS$F>!0EnDTuw21$eMYSV?j zA*0j>gmg01>cP`v$g&@NL@mz8{fi_|a#XrAZ;pd_(B`9D3R)>L7RRkck>xb~w(%x9 zC0cRqdq@Dp9LN+$xft?5Lj)UZrh;Tx?44YOa%WGzR*h70Y?Ku2~)^;WXgSRz(c~gd; z$^d*aor)ewj?#e&&md_YRfxMNH_fb3F>iu3cN*{oBxrlnZ;$G$PHmZIO8+vhZ?i$8 zN~8A;wZA$>Z$YWBy5j;N+X3j)Ds}oOM;<1K$_g(JnKIg!(H8lf;r+3U}XUE0< zinVeSB+%p7ndd;fg5)h^` zi|(-gSfsbmY-&E8Iu>kHkGnV;mU$=#SJLoQO*MuyEFq5E^P(ttVEt1N^sORN3@@kH z4Uxyp8YsX;@8JUMP={Zi#Slnc6%<99^{ztaO&d0GOzuPa8VH$D-LX^F{z!ln!#tOq z%l5;Pv&>|O-0+3ah}btls`I0t#M2FJ%A1%SnqOb!4`_<)R*|c8;j-G>9!vZ1If#sl zTMNpjsgu0s!-gEJdWkAi$V6Y}8IHo1m3%w2>`wtu4wq!zS0d_qk5bl1*25}Ko(Ajx zD_{A3I}G_7W@t*e+E>$3P$nh4Y-ZGlJx&dVj(+k9pZf}19!{QLHB8M+v6+(x6+8t& zS!AM5NE8vCsx{ynoqxLnq%;?zcIUEc8l?FT<{4?fw9!jL(jE-U-FXD*6)HZ>v_$i^ zfU)Q&UM-c&RIOVaTo=w5PRh`0Sp+CnR>Qmd7svBj?$#Y046%93kI>1Ci(QfMFoDJI z2-EJX2JH`~zWNX!U4lh&Diu8lSAT!&s6fcnXQoz|brjN&|(X*%1A86sL= z?ta7=V{*b<_cxHxSlZfy#IMdmFMqU-#?p=L;bSrgmz#PK0N4)*Rd=}jAypsB+t7T2 z4tdyBuUuknUwghgN9*|1IZD?XGElnCG4_#X;Bi2^(DD9ye?@D2eEc}jhIHw7^OpD5 zSi%i&0JixOvZoD+etl2g8}(%6oJSaX2Vh6h6$5RRk&Zf)j?Q9~u$)BKwry4e8ay1% zTV~+>tDW24W=)VSz%C%Z(#UyXS65ef*u&;+Sgj%0mU_pck2coVT7CxM6BkGIjUn+E zaD0phjw2K#H2V_<)juW6@E`ukp)w95%$nu{G)0$ydeZJC;DNc35!bPXG2LSC*H+-4?cbqRdOxo~Czl$e;A_yKi`-aRZknfHI6XO&e7wh}`K{+` zWUOGMwRE7h!&dOjK-0NZnX}5`BPymw5M=^Y;;izfog_ZMKv;A^hI#|_3^{$JCw@UD(ryIBK*W{gX3kPYznpcAZ_ zb&F>2E7$7%3}|Ouf;65hxl>GkFhZVj4tO~!XLQYgmsqOZ7SABpG5C1Qq|Hqp7=jWg zrjSev9n&#rOI66CfvyUx%kKXE-cWgy6>_I&+pydt>bx_TU+~I?-E_=EVh&-xL9OAm z5)6`P^3Zf2GnRh02Bml;>}faaFUp!&9yvWTu=fzqr}_FDc`y~J-x_LRElqPj?2D&% zbF)Lmjow`17XaP&xsy~sZS`jXQPaSWF?RliKncOQ>&v1H?+QLXuy3#9-<>9a*1a(# zP*iui<582P`F2{LK0+1*Pp#SS6=;4?Mba zEv*`thpA6zIQUnpI}OcC$^ouPW3J=XV6A4@3pJ4yny2y`Nd&uo;?x&pOqP7ts&30K z3`<#rs*G&i(xqe5I?JS@u7As)oQt|$fI7$&E81RY=Bkya`QgIc6z`#nL%CMXtB~8z zaO`j5G2jC-M0rR2h`cElQTgT~u-T}ii%ae#1GDTM7>k=!RH*yhN&XY_TlcuL)xSAI0OD9Zh4PQR!|@80&;+54&NaA%S#a3mI>=e0 zKUfxyeWiFQi#icVdjZHm1wO)2HkWcBE%MU<9o4X*ItTT|t*H*@Bai^6hfXEi!;EJq zrj%}_BF3w|PcyU@N(1gXdVhP24E6{JN2|??nU&mj^_*;pWddG-)q5jhLG2P#APdBg z;O*^57!g5jX#YfJ2%p^94HVMmnzaGWhL$~4@^$!x!CkoHIgB=N7(>x{Z%PB z8aAbc&zey%5GVnZv?5(G=ZoTlclQRh5}E~FO(8nd@N|F4udEzDGESb{p7(HL!Ga|- z{>z~(H}D%#|2ZW7y>s`UX}tT%3vo(5jPi*u6mi|~(Hf{)W^GD*2OP5=h$Er7Hay3? z%FjcK?={Hr^AV`G3&@H^CW-iwanmcWBx%>3;oET(O0y59lWkM&1qQ7$YN0!}x^A8> zlO!P%?n9{St`1%=Z-yK&j8)V7%%?FEX&*udJPur3++YwS5^0OS6X2}q%m)!}cTMk!Juf+(#p6NvE8JR9ev`9c9HWNTSunE8ooSBpA}!-LRQdjU_doy>ANX!3Etyo2?Yq;` zajM0+Gzmm!EQRjAB4e6r@v8GU#iu!NPfi)`Ej{Q*`wzLO&`>(Fe|*r~e(c7kBENGS zvZgyBv8LnzrNOjNz(h?P&+^YHOT6_CJp7 zA58!GMVLY`9F{Nx*l^S(-Z(0U5lN_>k=LvbS{h$0U1CGcGOGxu+MURlXbhLF*tbl7 zkS5>Rr`z=%ymR-Z?1xqS*If25dHa@~nQZqk&`(j!iJvS|j#fRUuH0$3y^Ie!xwNrZ zYR-o{T$4AoHBPwQ5f)bIL}WglJj;6H#%)fMUV09r)xlRg?xUpt;>~!ThHeF9vvsG5 ztM4F9eGomLq@~2hNCyN~ubK2(1N9@2O+ruunK1A!88aZ64{Aw&JbVg1)=X{g0%W~m&~YQ^AF2SVK)-*WwHg_V#ET29}44lChn*~@-)Yr1LoUF}%3^AA*NaqPI2Rt%G<{vJRBX@g4#lq5=c3eFCT4DfMEXDDt zSPr#EAFC3lBacM=0Qvn}2gjToW4-)2tlw(p7EG4fg6(pJz>pz#E?=LF6qMjdgHox; ztc30W3V?y2HJYge$lP^3XN=DtXT|4 z`&Q9C()^5Zl95EBF8V#t?HM2bP&HWu!!Z1E7XY7hoTAk4UX<$a+cWv}qBAMJC!>%v zmyfJg$24K+y-6~1G(d?CD|EBZGR@i(AZ`xbeVKXAhyw~0+b|=hdsGNHwTb{81?t6= z##}yO!y=$(tvQ`#R;_(tYjtGiTf{rtbg-Mar>}Thl7uszK`GCHXSP7K!b!=ryddXl zm-CnVv4wEIm4aJSxxM7GpyUeEQZGAa>iqQ%c8Wq)$OeTHpPsMn?c1*+ri9a4X2>=K zDZdDN*z77-IPK&@`GM=_+)q3oi|TBexqmV!V0c(;g??a$4-hNC(EL>4S2%u|hesJX zUxkE|9*22-Ef|%_yOFoTKs%wG=PU^e;QGmqk5-j_9dtW_z z%X=Uhef}@AWPcu@_#VE7xrg`Qv>{h{cnVkY=mX7I)0wUN!zTD5)RwQ`Q2?6 z2oF)^^(F4k1;)MkpU@HP#vIPO#(I6QYgiJcQR%h7RN;{Pbrtr;U|MNYhAVRIB^HPN zgeWSPdHBsJU6QzF=8O(t^1E}e#UX#iFw2T8V?9m%ri1nCyDw+C=N5JhIr1TcMQ+Y+ z=3LNUzNPWjZl=9$tlSpY#d+lu*Q65#ui^<3nz`PBx56A`8DV=(T!HCRdWAL1fZwTy zWh9p%PhP~2$j(XxC6ZjjPD+|0ouzjz<(OFPiX4uc$VN(ddEJe}gDuQ(F0(gK?cGeL zQn%5Iba>~E*|%8qwqT=7%I>{^UR}V1%$wWX_OmI%cRXI$mO62_`*xxz_b1&d1z)Uq ztKe>P63pM~(v{YtbV}K@K9kLS%~1=W7InPghn4UQFk%VMMuWAc5q5iKFEiUx+Y%VOpYMCyU?B*)5LrSKQ84)MNJW*nOMlA>6h@~pu{ zPab_R|KuM{5JJDiH>DqOJ!z7TKgEKJI8hJs4*>;q{dkIUL9X@EAon0`yOB<|XkY~~ z?)91Ep`rPtwN~Qgim&UF2^c3_UY9QJhO$U4l{C|JBTPf*Uy{`2gvJDhjny<3t19J* zj`#_CyYjUd;&j_wAS3%N9y%!_=i9n2sHle&s4-Y-+mjM zmoFBCnVc`?gXxifEkxe0eUjoVH0sj}CdKyFJ6N=r1`l*^3GxLq3|$x*!I!^h=-p#C zUYoPJ*(W$A$I+1;DxcGyL|GfxnF)0CFl{OUK}nLw?MV+W0m9q}ILZ=XtUXaGX|{4% z6vkbSdz%AxvQ35q8dIbsB(o3X+e}C_TW7Twn=;EFmflK}k>eoPRL&W-v#O9w>rzC` zZ>PaZ+M6FNmqu#d=Q$3R*-M1c+bycn^l$W;F-(9(v2$$=A(M4FD9W_jPKUh*;7u4x zg63VO3V5ztgH#i&bF>5lkBCd@A+=qkTXqFh+fM5ch4Dd^=t zwww1>?jw6#+#4Qp#N!n+DHMsLzFWs2Rf2gj@b#4Gq+_|tDRB9>Ke~E_i>@*Wo>->1 z)yr4D>)70PyjuUBB7=-!rKsyxV=SWf0k-wg&4Bl8#fQQjhQYgb;)0(5ULqbyVAy*7 zO_JRCz4aLbdZFF+DeS8JwpDS(QH*x z(Tn2CffF0LZCpcSk4z`6kAigcrbzom=V{_dZxCiBcaUD+nCt-=lE(uv_Z8IntnW$r zk&HY=tn+AnWT~$!)ChHw#to^wro%RyXr=a>3-*^lb;dP3{_e$Dx~RtT%%N-$CgBDe z9)lRbC1oN1rC@NnOyedOFLX7{vb##&CM{8l@T%IYzI@A9PcvcbYb41M+4AG6P~o2 zobTa(ak!AG9WpR$Gg< z>%HoAit=jcJFc+z`W8myw!F=;gP2+xXjf`bC*&7RP%rVN%(X-OepVM_8 zCLhu&eY)G|>w6O~xi|3%#Sg!@RIsxqPeQ?&Z%WgkCnxZ3`oXPb&e-vYPXk;1r}8fK z;reujI89}OoK`spE>q&A{luD9 zLz&+7C=MfeHs^z+U`5E?^vdy6865b`9@05xS1{WRDRdhNhf_d`v7W{#)3XWT#PQ$LoucjsQCrtQl_O&| z$Te(eiDb4D5gEy4RybJNqj|Upo8=nGR2WGT-%9Sg+Kv$uC(d+9LIW{$mDHDseOQD7GnK zs~EuTM?^YX-!eN*4oPcGQ{V;C#v%YA*1q-IeE(6Bw<&ojGWcjOY47X8pkrS|q@j(H z8GXbJdrxeOp1y^eaJDIBLNbSN&ERs=iTX~^;36W}rw36XiCDhA!AmgJv6idIOP;`^-hVctgm}ol)fb23m&kc@T256*rkK<%MnM{+ySrOJ8l@Bj z=@yjk?vU>8?k*8tnls#ce=GL4*80vq*SW6u$7C{jnRAXYp7F%}+;_6iEAa+5TRGt) zZgfr$>&^anZfG{|Cd-ykyT~($f(6KO_dmPb^eF-43dW5-_%zEQOCi1QxWVABc4W zRY4B|=dq-Y;E;ZH0r|){NDFNr2fdd*Z-Tj7Nv@R(tON*qHgYape78{#Ovyk)P@xU= zc<5S^d~ma@WqS5(f+(l|al+VE^Mms+I-YlW$DMmkn!fMD?hWZRzx*;L5#LYSo0F~4 zJ3(}B^4;B>bhdo}z_MS$wVd4JVk|u%f*KdO_(0?=5Mj)^vpkn3*bsKJ>~SMViH>hw z@!&RhV^Jl6?zn#=|4&U}wRJGp4`x*Wro1JDnL_$oT4x0TWhaNMOuadrl>m~Y*5Xo%F?KiHt%>NBF#GkxEI;NYL)iVt2edpm9GD=Q zi4iZQ-Ni79nT8p!tNDh^o&u_{>!)rnJJrh|0b%ej^T(_$p2R4^Ku3SVc<|Wb@bZdp z*kBRdxbhZ?UrbF+Ouai=Ix@3Q^Kd(OrD~_<tz}re$<# z06BSn-iKSxL8}sF7pEjX*Cai192_QC#0&K!3re8eN3~doa>LFcoKvjGW^XNG-BKKY8^c zNSs{K1nFpA?B!tw!oBkQpN|NXk(a={fdLeCQXUHjTta zB))ISd5;@8!v$I6Ce+6B1ch5f_*35Wg`0CWjEDBF%PE>pc_poB&b|=)E-`uPTd&E) z1*TluUae35@NiWw1;^OxN`ME?X+7qVp9>`9!-vvnhYzb_)-W)v3ea>RCnwh|1(ZGC zR}cWCO-Zc0N$Z&biJ=b19DZZytSmlBGNAaghCHrBoM$MKSDy0Tlfrv{jfM3x2EW0b zKM0`*arJ!;RI=we%*2_`r<_SyYJU`J(CZp|7SS3HJ5grLf7ila{Id2vA%w~IUNShN zKcvN>h)nPr&%4CGfwp7Nfw4xv0*H;u?WZCyRkiA}^YCZ@lA&*B-*s`0Umu*_o|R~< zvFfY?LcQDts`=T97@kPzw+?dcULgSRxpxS7`{Y{+JT_x%Hu7@FR3ZKj=f#=vI5DOg z82eZ;ZSPP=%ZzVuYW!n`A8s4oKHMqrk?T<1ob$_vHvtSbll3$mQuWn>^Y})T2ZxBRUT8uEWX0hb%R{lovdQJKTCVRHvl$F~)g% zQyS@c_hZe+{YU;vmme=tQ{Cjed$bl(@{v6-@*-KhGq;kLF2j5I=B&$W&mS97+B zO(`gZFOO5YWP@{8+YwRu%tUYB)viY*7kUHCKqY_#tn-nsaZp1sVsh#x&ZqaV=QMnC zi28j3lfaEc%?lJT>ouwfr>oK@0|;jSMlWuah|g%IZ_)PakRXbXlL^rUZLg0Fv&i&l zR()Mn|WWZce+o$%m6G3-eY|vF;d2n%~XQu}m!vWc4h- z1bvWHkeW5qZ9lS|P}a0Dz}e041y{CylKfFELBb8-TMew7kGE{?i4upmZRJOS z_~p7^o`^bK@8(>+RVbbI_u2qx#O%4L3F-UO?pY2%{>Oasj#%U2zMHY;$LaMPQVn~@ z)pmMOklCqcbEWW`oIp`0tT#Ev?yrTfHlq3jy^C8Pkwv7S;@@T=o;sGC{T!Ff^AD9T zk9JJuvh`P1kUc&ASm~Wwm@CU!uQmzxk?cc0?Aw+WTp>& zjI32~%J(+Y8=Y?U4TlJV<=3#G#*8L%ajO^uv3(P7CBDK-BD?%_jr>&#Ut=u{ zkF>Y7CC=n+_=HYsw!UWM^5_EN`=;sE5*^Fu-)_y18wS*3%hf@B z%%9)W=fo3rtwox)%%%vHwhA=UW$WFKGs80jYq_VND!3-MJsQDoDTk$EK>CPc_H8MEyB(4Pb`rF;Hd)m%L1ZY-rr);lk+VW1G7BEejN=6mmSydP{SwlByL z0tzk9S0K&jbMw)um$n#|=khiAj}=5Hmz7{P)Zre;!kMo$+C|WU>ohZr#G`Xx?1ez= z<^yZMfyT#*uq|>!NTa9=cNvl4w2U3&rgL~Kz`?=c>INoNO$(#ne!QSVWMD&GsPMhR z0_rE9DNSR!^5^f`A1#sAB6j3&r@E^pcIf9?-(I5XcIdz2zuLf_xhMVTTZgd%cv)d}zTaIgn?Nx;v6Dw`jV zq^*9jE06APAIJ~l{QbUG zV4->Z(8(6`>(rU2)=B{MN44($nz4$ZyNL$@=)vrqTAlwI>x5)L9lDZgAB?>B|? zG?vLkbCLKLn5a8HeMVny=bP8ipKCQ_#R@ifmUD)@qjT zCweU~gVa`6&t12DPOgs{(l-Ds>`Y~V)^@Y+xhK)hd*^l`i{zTadX*JJN?wlwTCNwV zN8Md4X(x&c+caohP@@ziE)*v1S4Yff>ZSfO>m9hkUj2P8IJqjntkV^+PJDh{O~f82 zEdt+{A4b>LwKb>b5;=uG1LRo$CrVg&41*(#2#H*fy_W3v*0HaQ5jIbOrf1KYsgF76 zRP(~YK}1BfCU{Y4dAu}+IP^pP3hCz_~^XDB)gm!F$ z>T#96`{JYeaZD!?fdoq7+mi}``%Ap%PakCJ*S|udJEvQpph8OqeI%~IyZI&S=lip~Y+Zm-}t_N?Q~Y1uon@32Og0>m{h^EMYa z6CSJ&H7}G zcatSEwcPVbqP7AUlDg5PgQEWoQkhZbQ`PCmhcGbEcL%f10IrwV*(Z($+8V}9d!rw* z?1NHwVwDX6O50sW$KK?=%N;{Eoci_(v*KRZ`d{iTpF+*GA zb+R!y;j=bOg8K=B>}W$<6wNkz46}1_;F&772GRJwuN$X$w84KDz}@+IOoqku_M|Px zsKYp+8L}ih>A%e0^Bs@?o;SFW#IqaAPj=$saPPt?JpJb$Fvlj-k zciJdh>y>jZ;%YG-U^LPQ)q(@o|kHIB6Q-<3W?@mOTAI z>R$tEK;T6*{Q_9J?y3vmz*Za~5*i>L;~cd-u)EscD{^qA4kc`PPJflcwU_&ma0Hn1 z*|X9^yP_Bc@BGqf!_AlL##hB=bCpa^V_!azV2f~<2*xn=8Z_5m1!04?;I`CnX6$bc z@+17Nbooba*|c4gx8nX}0W&<23}~)9I!u~QL1CiL54u}jK|HJ)#oaHMyjgPOiA!66 zZ_Iq_W9AjH?kNDqQgXd-(wC)A9eZrGFeuMsn2_Q;R6AC#zIW|BL{z|6Wj94t{Y^$a zUp_6o(e4-oAfJWr6ReBurwa27Vs=wfNDgTXi*kb!lR64<+#*$fTTBydfHVEe-qjH_ zGhsj$LXc3)9haoH05@I$yZ%BHh066#*6_LWhPM4+>4KsnV~XBKo?aVxvBD~A+@ITE z5J!g?9YUX9$@5tTWfakY?aye^vcz{J;~wl)+j$WXN~g`(_`aXJ594+Xpk1tfDAJsH zJdxb>mwvd4X7(;|cDoe`C7f)LqKnlj-CiECr zQT}An{=)J1x1#ogJ~`#DxPa!gDz&mk=a&7$hAIN1Dq^rRB0BX;1fDS-BY7%}V_-(| zKism$$^66dX+Tq3*mg@Jt_iUy02F)qlrN>5`mw#Mp$Bzc`^UeBlBcDM0?Q$kxc!>9Jc&wcm8*r@__ z_a^28+__KziGlG(k3!EWQdR<8m*UuEp8SNos?4Cocc>4e)~oUeWvZ6`+Xv(F{F>&0 zNS5sg!3?c2`^yh+c1N=c^qx^Mpp7_mK8o)F)=icx-qOVd*PjPX4Cd@@xN(^IH2-m< zCUS4eP<;Z(vpVG1aw}LGD=Fp;u5+NX~ApDww zX!+l!uR!UmO@9V1Wix*X9VKK9d&3Y!TMf0|dnJ4e4caEcX3Z|+TN z&8nh`D1YDYa47syDE&s8Mn&E3Z#(PTw|pON@^yUgVgn-5j{GrrmwosF`a8 zcLx@PX{vnjn>D~fjO8dOSd*HK?DoWq(5EP6$*W}Mwzve(iU*TqZ8pTe3?>_&9WN9& zpa1$5Z?=(F2{ge`?htCH`bQ*lFS>ke{5eLfmt5wui_%o=yp8cIYr=Acf`XzO$7uW| zo4w$Jw@K=65Apmn6kk3uw-%DVle2TxtL{6Z;iYTyv_unqmqc=QqmY%)Y0dh`Apu`S z10AgIIzllu&Jz6DP>!BnwnibRju1Z&8(~plA+klq;`!yJB6nV(ETn-vyS?^)!n@q< zi+TGA)Wk$h&vYs(szOod1Nh>)EsmQ^g)`+Gp;cueFFKxg9?qzNua3(5StcSh9E97? ztQ{Omo8FXpkdTM8pNL9&F=cT!)j(O-)~>=%B_<|bU%p`sbcXp}?|n0-N`FtCROM(@ zw-y#2%X4THFBj_~pYQ=x1!5j#}LK&{GhCdgHqLZF_(Ci})qR#*^(jELuG@&g8WixTmR5%h)P>M)Bw( zHaDB`%TH@qx(&Fon#BaHGO6w*yU)=B){$}3CMF+umt0;>X`#J`(9YN7phS49!lj@s z!ouk5L}CN2c6a@vcuew(yVO@V7pE}svW<*dl@_5mgb?RET!@Jc?r63gW4x=*U)Z`o zPAX`eTv9mMbfrV6_vD#GzYXNC14RO))>EidLF}DNPRF(JALrA;eSNXkro(AXe1{+% z(Qh0n7pL!=ngws*yfwgxjox8Mct!p{KGxzX0;vbcY*KTY4KS&ZVQz4my`>Sp`t!WI*?@uI*f6wu_~NjCBMJu>f$=vzddm$rV~b}7P*0i_2$3l zd2l#-eQS#3q!s%sXf#>|HLRqh`u=MXn|E#cCrhTFx%>xY8TEX%^A7sx)5S9V-5t62 z!#(T|;C;d$OB|dI3-=ekQH|M7#7is>%8{!_#V{8dEk0Sd zHzirhW2`N=bYN}0E{5_bcineOMbA=#9L!EW1>Nri1@c~ZgtJ%CGDFiCrr=fN$)?{6 z3r7D0j#KejmN>Q!t!&JcW6wrG?h}$h92~BCq%qmWCNBt3=_+bcuxt5Y=QF$XIlJyu!}i8G-M=DOoC92 zy>)P|3i zD|VL)&aC?o&htI^9e0WBd*E8mY(g|c4CkwDsR;>@#CU6`*PC$Q%0JTynuI+{7JGrn zP8y^)vjqBcb7~NyNaN&I?$p4>S<&<4A9F(>k`rO3_FIOF!IDk(n=H?+sQdFec7t)y ztlf;WHU-IuZ{opjYB}V})NtC}q|-8hP^H>vjnzJo9u0)$L;T0Gi@gZv8J{sa)IsVd z1{wEgl8Q}PID4_)b;`DtVG!%1A)ZA@%gNga>~J|b%Oc3#`#C6~d2UV3_sBcu!Lw!sJ1w7G*PgWkzUEO7T6&Lxrke|)y8a6gZ< zXUh6o#|nD-d&Xp7lT3Q)cZ@{R-F~ZJn|)96EqV#tz%L%y(Y=QU%4@+MbZ#A0*;~`< z&Eba~tY@jtLp*m!P?^O+L2_ER?+z*NK!PyA>KyNw;;43=?ocrV4yolNG{hozvH!T? z*zK^ZP_A^({B(%VGlGVrS@_UJ3DlDd@tXfEVvu|Tq8-YRH222Y)>bh3~0pO4BM(=_y;0#el0Ck zJYhO4*tcJ!yd7~a3SFPSO9y&4& ziMD>^P2LLi445$-h`*6EqxPI<<8tCN%djE0^^fYPB#WphCrj&ok4YG$!^@@fVUI&r zOb|{97Fzmnwr*c~++^^X=7pR7oq>CrCgR!zDZCUk{P^F~NL7yF(^^Ts#L(ey?+_Tf zi5D=0r^M-DNWT0#A`S@jZ2D9@Jg+{Ik?zZ=F^gD_P%Pv$P9`F!CIP(+tyH5{toIT?;K~VtepW+x26m+hqhF~YPK>k?;7aNurwn_eqX{U-9#c|q zgh$w|DW9E0#P0XZmA4>oRNMO;Bo%8U;pv_{pB$p z^+=^9ZsN0D%2YD!(b5@Dy1%^aPbWn*k?`>GQQ!?sDZ4rTXg&VvctwKZX?~P83c-JV z`i!@5dy@t9(4{c^P8+YTtc)!G6}SD_(fW^`*k51Zk3tKzs4ntus;BSo-sJzc^G}2P zXrTg83IAiR`TsPzGPbagkdQvLwg+RP!WrQCPo}`O$NgzM{$;HG`y|OC90x}Q?Y?61 z#@3dUsOaiwQ-#oxu7QCdGBR@9$u;Fzsc1svw}g-Xc|!g68X|mP{PBEA?+_EcUj2Qv zrO1gSa#_VH7?{b584N2{8vsN5q2Gzkie&PW7#n6v!i&HE)8AsX|2_a#%>r6uao+Zb z{h!vX3bTJ@6XIrT8&lKh$R`TR88)5oVu3Ua45e1Yuf=QP()B53d9R|QqG);RuFAcJ zeKtSEvC1XCm>9vY(EO*#`oC}I3J#FlP}Q5at+of#Qcz_4sOe$;havbRLP}#m;QNx> zmIfQWeUIW@v^$X)&)e251BvPbsd;(@Bu#J>P~-U}#u2<* zJBu<$MF03&sQo_-*vRxu2vj3?>I;#ehP1Y#KuDkTxkeB}VwNH-RT9==Zp(rLEuyeaf&FRI(jHsl(bYfRZbUhw+&x9~S-{Octs05L91X}#M>UCTeb z4OPhu@DA+(%}?nbmuHM^@2{sSUtB->i@X23#}mnegZZ^GN@0xu4}bM{-}Z;|6KF6a z-jpzryjz5A!J_}K?Z%%6_^%%xSSdniLef^Nu2TcX-z?n!4+pJOSXfvYA6sB{?oHWO zWtr(e#mBS$qE%a0fEfiT5>|dhE5yr-;C#9 zFO^DvA9U6)o7?9N! zpr_9%oGeWtfB_A}WtTwg%M-}N|LxcRUlub?t~MOSeE@0#zTae#?)DN{5uDk;WqN;c z)7g;MBPuB8ycpEqhe$CTsTI3Qy=2`r9FVI}k7wW2;8&%|(f<4M`{&b_TD#Yi@Vt3t zUn}}1_gSR%>+_E*_+Sm|Abqu&r`E3ix>uQyz_2@47u$cGRDS{qsCxZLKO>pjMA01? zC0|`RS!;hjHl|VLM6{#xdE5}G_SCiak4jkhcfqEc`OML&pXu30KYkUz*;1=MEkdvA2&%m8_nG(KM#CWn_m$it z;}+txih?Ik8U}5O62G_EjIN#kIF3f|yvV6{H@eSst=Hv`9e=#OL!r2IX1kt!_#=`} zJ)UV^gW5mF{UP5v=hhO^BE!9RyjdRlT3*7(yGE@c%DW5!aI|N?Pu3i zx{Gfy<^4o|FYSMf zJB3AcrlM?m5}pK2>SUxGr*E$cqHK+``s6bjx3%S5@+-y}j_+sp^ZPt}=TZxNtW75{ zU`}m~iryn2z)O$QVNd-SWmA3x3C&71e3^=PuOt4{D!DND-~Qo$JH8n%F#g}n4KZ+X zXW@LVOsh@I_fIcy}A!fh_`htT4 zL%Kvy(6r}M+gPKAPFXpCnSUbUyw4f`l?5_SVK3Go^ZE|dR4GCEKsrkz>X*TrRqqA; zlO}*XrQGve3+QJl%~e`5gX~sJ#juc!n3$N(4^@EENXUP((w1F5Tm!{VuVTOd3JNKRD&@g!AQ8T&=ylt7=~@ZO{~ z4KJ@IpW6WiNb)GlbLU8dkTrJLn~tAf`~Kc5ZD|Q8O@0MDB}vDifZ{mZXZmaT=1#)N z^KR1c-u)c?(T-X1(?`^gp#n)k5M;&ZPsF)YljO7eEq><;l~rIF$4@T(-YyTO6wG3EvbQIO1!MyW zLpM1oPUSLu_*7JnQ5HHW0>qd!M&$ThEK0T)9{};gYXDz)aN!6tl7MnMSrPrk$g^<= z5q4nBjMw)%l=C=l+8wL5ZPerP&6e|0wdba!6zz&^c@er;TngvV0|?B7cM3tp?TY|p zffI*>#3XFb5`gO(0XGRq1LLynUc9p$*ZTyrxgrBqUn)T_d1VyHk18Rc?bw${4BIa^ zi=Vbghc2i+(uNFhD$_DB)N1hI{&E*Gs&R6Gu%^?ux8ioStN2$J^T$8!6yemgBkAUK ziQon*luaiF`ToMQ%n*R9rpeaoB<3nCSt>&8TWUgdos0Xb!do4`y$n?-_S}Mwzu`Sf zD+lHzg|vf`cP*Rtalyz~ac? z5psOSS(y8IcG~*YOWVlvzw^psWGO^KTYkB2{#b4q6&zr+sQ`+l8(U!vQzyR#y49SKB&?f;Z~csfld_JN5g; zagt;nvh?0ypsemGE9OkESA)ql`@2G!n3?53c|OJszP%3t{c%qSb~}xLfR4|DcZ7l9 zocFw~dmre=FpaGlZdFAie*p-2OlL|de-Si-p37!=@#F~p;z%9W$w!{ExBd*!#TIm> zEuaZhUD)KfV(j7g;RtYZ-e_f311i~B9FB}4FzU@t$l;&mlDT@j$$j(TEseX=Xu}DH z-LVS+e}xR`=cqW5!AedbJbi!X9xADnU`dek%OWdkBLk+zK0sogpH>310XS<%8$_`+ z26>Yl&{Ku(1UGevp2q9C<+;u4l$+$$Z$Hoioc$+2%O@)F@i8sHr@CaFota6})OY7xxS~M~0K8w)iP(ehg?nb_vjPR&Z^aJ) zvM>STVM9I~4i-wC&y@2r{$Er9_E`L>t)|DvNQ_t&L+o+0?$y!D;S3Nj%%xUW+h3RL zJZQMT_JWx9R3BQt7G~1mbF=uOe!S!?a`Bb)Qy@_=jR<T%A~6G~HOgE7G;NXwY(LarKBq}v6dBO_RmH}+H1_DMLF ze9gwtoz2E{>E2<-h<#tsNMalY9tQ^b@sSmanifX=i!;{Y*w1F8v{Z}?M&C+627I{ZeGcDnea5$4Z>}m z{FfBr?Iv&jKSJ^T;LiKk%R(K$fR)SXuSW~G(epwUd22E)G^Fq^E&!Odrws|%{g4Ic z7Cm(AIC^M8KA8DV{o}^7><`4;Q!05rKWDy?RI@-BRQLet12g!2H0Voix_;N9sxfF{ zV$#!aJTxNZ&>Qdybrj&wXk)Aj;0-W^Z!?_2>ZbMzy;oXAC-ZJ?n4z?59il)lum}Ps z+1LKM2YlN|!r)TfiKHLXyj4POHoi|;sJ(Ib0{f zOR@I+y#4)|>6zDY6Dwrt#xFMgzZ`ytO03qq9q_kPkZ*uu^YttQ`3+JProQ@iDG#VQdjV!VIz0llaEEuDy3zXR%u5BG*mh@tHeC|V@TOumoQ z0V?#zw^Z&aF)@oUq7gZ-)WwjxB`0oz5Ma7XNoe!S5mTOBFeqtsV+?+Khokm|)8pFb zT)1S;u70c$h+$yNr@BY+;e3vEM;5y9 zYlZ&)L05VMJL`p>E?>=<5j;}+2MxFz;ygI=8BDJOm9@Byjl~F>b8!=ORkx$t=W#vV z8!s0x6D)|+>1|`)bO=5Tz>PSxqD^3nurnj(sZNw`jZUgpxN{p7@w^Ce$NnO^5ODWm z<0;(|oWYJu$s}R65i7vv@Tz(Dj8%BOElVMeWiV^OVWXh<@pz=hxl8~nldz2n&VOx$ zWbe#!GU=;PVOcuX!l9yAx=**O3pPp2=EBRsKF{XF)Y*F5Nc@gOQ&~zE%^IJA*r4OJ z6H38CQ_jFPIfDC&=85Bk-pD6I{?GScp8`&+ zK@Zs-gTMIst1fr+ZnFkH#2d1CrEs-{{_8W+^PEL2Q&Bt<%#g8z?u;)uc_hm@fw8ob z$kuU1GcB%UMWlZVzL@0RTIl;0d(z|U|9r|}xzH%Ge1Qz}* za3&sg@GyEI1BEsvFl;GjjOz4S9&)-CutzVMwVp*q9EP)ynSD!AqotoW>vv6`sn^w2 z;L4dR7++>iS;dtwW(0m$o@C+&YO}*Q7UbX4&z6(| zeE-51|F4MjWQi5)DcgWSABF$i3n<~R#;dJ)wa=`zD+1PJoB;Cro)*gM;SO`7teZ?J z%d#%Q=ITd(iI(Y6-8KusDS=u?R~Li-Bry>CHegIo1oX*ePT%Vlc@4ZX`RUqU8XwHC zn^mRx+#EutemtM%(P8-HcRUaHoAUWz1P29C^rEeU_4v0XWeLyYIRrm;(PPTGO-{+>8gJJWlReV4uXG@D%Z8L-J6xfm71B%Gx^@w*PgqpL|5t!|-5LH6 z1uz;>0GBEep1rzpel}cj&IwIY#?pK#mO6ZoD0~S*co#vXlL-oH25uM>1i=lfC){I2+DeOhC!u*_INJu{zdkC#G@e|hz4 zy^}ycjI_{2Hg|t0qc=4%k z;e0{$rWP!m#d3+mS5YXp;~lp#cDjY<%FmfhxA3LSWH~7aF2n_%Vx^9jwOyku0@4^ zIvS(PROUF2ap)Il%@<@Q5fk$j&J0}RaL+cH|83p7MUzX}W}k2~&6prQ!F4Iyp*R4m z^+gDdb6Y1G3uRX#A{FxldT{wgUn0WQ=oLws(Ih_6OiB2YVxKdHPeJGy-ApuYyAxvW zV!`A1a1ONZYM>b@^BGuk-i1$V51CrP22oikr&*O?YaXblo)R!=v5F(QGUg?2Y9UUO zQ!lh$2y{Yk!kAELhdN>u5c}(D1h_gxa*XDiR;Im!O?8YJN8a-x!NJKLLJaOfvczIr zNr3FCzRe&jglsP`_g}rYP4H`ozb-3$v6@oj{GIKE?lpgQvrJbahULXEVI1}uesL@e zZS*t$W7_6G2J>dlP^pF(11jn8QV>y_@n7sFRY^@z1*Py*Z{4=zW#$^%1#tVeWZhR1 zV@Msruod{f4>OZY86EHpm+hJ|2B?!nMoYceR?;$FcClZm;}z`$iKdk zmx+q?nuAH>>kB366eE}+DXh8-U94atdftj9A!h6ORXlS7U-*K3iMtalW;CwpS32#K z(r8EyA{x9=R@g<#&sme0H=5{^G9AH13^RI z(|xY%~c2TpR=h7RjlK?POCoE#~I=3%@Tznc?7y?*cYRkOmZ9+w5qAOx`Bj%PvH94&YN@uaG`=oR35^P~x;?_xgBM0_a8#_+_utQk3N@Fd;#uTJr$C9R_=P@! zWsM3?XxiH!Qe>KsPp55b7Bka7CUHl8j)^G(C}#VLC-T2cfxHOb0HigloEtT<$@KKmC0t@PT@vqsSc%iw;Dh-$U6)b#Ic9et z!Nzh}&QUvP@F_c(+^2Qji>apYxhHleSflne9r_ntKIJ^BtZG3>X!82Qx3!uaPARDq zhx6sb({y~BzFUGuZ@D6Xv5IfYcU?@-8)0!%p1<7BCQNO>Kkn$bWwhg6}K-=Ff zGxo@yi_^WG6t7cyt}4$(S3bc-`ARf-RcJ~J`J-5@NTI^|)@s5GDgn(ThS%4lg#yxb*~dXF zSeO(Pdm$D(JmiOKSRrupPs-A;@iLZF`;d{K-Pw_DDN;`Hn$sHY)9jDt!|WbYQcu=} zRu8DJF~Rvn20HY_pH!u0v(#=HEIVRAcBUlmy0+e!!!LzDEE*u=;d0q2!_>KHxoi(Z zdTnwlEyK6uz6M?|B^$%KXTs6Si>{>16fYnRLNW`NmGtL7T4M?I?(s(_>|iBIGo-%S&+D{9=<3 z;vu_>yTBDf`7puy&g6WZY$9ow_ufG#k6;v17%zt!8kpIWzmwO@`zqxkonmA`_W49HRUx&M6A~Z!mH7CwB3nuNoB9k)Nl2^D^=^Fq`^>IGdr-Ke_Jj=AiP?Q001 z@(6S%i#0H55HVUJV0@!H5ir605QNI^38L}CUZLR!NDHf`2e7kkFK^#HdSjN%vH2tw zF%TMv`w1|%+@Ljk;nE2dlFBF@0s1K~1gDbVKLA)2KO?P>#&|1I+uOE#WdnctXYF+u zW0&@DNzX|K?q}8D+rZ8rnaV#qLLVHZd^e&Hb>n2TFSnBIHw!CT62Cy_-7QD<-(hf0A7fHYp0A{(!~!ZpNwYb)inRfSSF7?c-r5s2VY)uFFJnjd7KBu!&LMa`)_ zEcU^O;H|AnYTKf5MUnUDXw;)AB^`Hp);Yo#2yX1~(e0ByE~Us{C}c$q^yg|K$ImWd zr)hXnZRVRL%fl{E*CO;5Q(KfZ68m|S$>c+O8w!iWW*&_XsD2H*J1Xq3psRjLU)0x_ z`BH*Mm$>H8fp6IG#^KZ{aw2t?MQYxi=WJ&92?=Yhr0B_XbE>jI(08opi5g^72zifF z-Z;~x^HCDVBs;SV|Eeb!D7O>klEiC9|TnRMpRGr40z^o$5J?6TRhPeG?iX+l#u81(RVl$}@*XHbZw*cFVME zes?~JTh4uo7{-k?aE zU(!kNVn(R*v4wjU2SnXvp>`90`ws9cExSIc@xH;hS`F6Zv)$-fjmt%*=Fo9yqwP#H z9B>}&`iQ|^jUAg6(9hDK;%X7%nAeg|FjwvBwpM@KjL2+W9%j*fdxctLCGnAO5_pC` z54{?zY8}@lte1pfhk%wunPBMI@7|}w1ePBI>Ton|CrDyqHG2KP6BQNhgSIKJLiv6T zY7>iET$~kVcT9k-*cg8kVBn=>KWv+iKHMD(YSz0%fx?wNhjAA_hr5h{rrc8U zKE2&2=M=*QE&Pb_0c5*LhD94!;SGJ8fq(+Z?IR5fhf00N`+oSl^^Kwe&%RFBBx}kU zX8LM3?4Y`ug7Wy9Z|ZvHSABN;d&eV%&5gdg_8uN@xzBg?isY?S%UTxRGeRSIuRxi? z$deplFLzz}-1s?R@#%!El!?AccvCMel3@T-EJ;T(#a^cG+EJrpr;=%>pH$&ZYU3f7 zST0{tk(#=?zAmUgziyOj%a!@u1~Y=)0g9vS?I!+gW#^R_Op5OcmTHs|zPy71XR$Sw zvB=KW6N>Nt7IMMY(9bJg^=v({_ZZiD=ALG3>BXs&KkwU0+2PlUJS2)#TQCD}*>J%F zKgq1kvoEHHBy_Mw^)=B?WZ;Eaws?OIiYQjX;9UeKCZ!b`a&IWr)6d@DM?F#j^czed$=z!C@vd# zjYaDnIeOZr9Fud1m7e5RkjQ=dwYP$M@hY{;wR0Xax&e9i4mDX=?1DpnB4IO)$FE08r1PQ?Vypv(KyHR?hJJUL(T;y$n}=92CWl$VTGKHKC`!^4W3 zFJY%^dYW^e)_q@Dlv%6{;+~svx2?YbBmLUc=OkJi?SI}KTG`HvS3`2?PENbi>kpQJ zY>jSQ6SGK+E70fNn*`0xYSrbnHi_TOQ(fOLctgBBPgC8^dQ#n&Sa^APe}F8;ZY4-; zAd^Tezz(s3`r_o0MWuUU6cx95WtktXtQ+9+f25W;+PYHFhcptb5rd`QmEsjZDj!=C7e0ZtnqpJvZ&@9$6NfU5M9-d_Abyh^K0LRsjcI$#Df zQ=IxN_OF0UOQ)J{l_|oIn!*$4=^J)8UP^FO7_yzc>TJAY70>*4tP-hvM%!^~U>4bIee%Eh6xO^Zi2uwhCR5kwFWq$QM8QW}&_k#3}6(cOp`lytXrcXvv6vnY{9Ej!fUQT4v)BFT@tcuC%v z%Vb|6aToE<#jr3lGQ_HI?9?1BSxH+f$G6RUWD%T=Wc+Sznlv_aFs!1VAY?r9A&e|E zHVK(g?!<0OYOGi9DXzqQ(ziS0P8R040u~rSiwg^?+2^*|`*xcu*rS1X?ogD&s3>-; z_NCKQ3`NJcY!)+HAD!g{U4&_@gy+!pwDU20dQTv!%KIGL7TbY!b(IF&ly9y348lM1 zp>&Zp@)KPvqs&h?a-5tI^QIm06;OXCMo{6>st;QkNfCYS@$_joB}Q}Ejw{nZO5vWp za>!EGuqIF4@M`>Z7%MkaM3&b3DMicD^%#! zN~E6M&A%5mQzg$-h}sf3E32Ea?&IxsBVB1SMgCxTc5i&_P=3KSi@MiY^T_w)&+|MJ zDX|{X(%!wzsjq-$?jO-ac zo1NVz>n7o*o~yEu`pUVskh~DpW(jkf@2k-I!^v!4`8`l#3DCJpTz40)+P$gb6E&#W zh8#nJg8>gtBj8e|`UL2&6fB3g#K*hH$;ppjwsh*)OHb57SIhME=6(Y)8iq%}aG!QN zQ`g3&e}2wlIscZU;K#vvQ;MNwj&~ZA0j`rJ`~_1E&sIJ08~7n#^wVVOk}19cW@_qk67h$ct56;z!LKETg97R~-yoWabx9^M)Vp2QWlzgbtIzC)WC% zaYd@Jl;}MvoaM3YrG43ES35a&mm<{n=I!A&B$(-)#f|MP4dRGwf4c)6Pzopl4XVnQKzQuzy1AFDDwqw)`+5Z#Hb>G@EoYA-fR_7OGbk+SRcm#PiA}vj zw~&2`S3`lr%oWJ<~rc7tdHHu(`!t9ivI55of*=$r(9x>7i$jBhIlmhgqUxI zc#08tj#pYIBz^_h_LM4FdNw&@2#>=mo-cYE;ZRf`J>A0oNY*TA7qL3yiWgjDTCPjb zO+P|6oT^2r^tu`sDcm_UJO0kQ;kVPH_9J96B$J+YOE}&N=SB%<_QMH9sf!2I+{W%C zb(vlkCq&s>ne{U9Wo%|sFD5e~Tj4EnDt_LkUynB?OEm%4IZ|8mT$0@c;X+e0WYcwq z-iyVhd)T0^OlO0EDxq8k4bSp6BI*r7NxqzzB&5n?K9bQ=@pa61UK8y8jSpV%&@#8k z$(jyza`0g9(8`#;sCf0$DLdFJfB(x!{jK=OqX3~fK;<)LPWUFUCqCRb-|aHVMid9B zhk#v)h}w1wKtIuc^Qre-FAmDVA;#AOuBl2;IJ4g0fP9 z27hn9xUcRTtgsRU)VIdwfMnwtMXE>>JF#nc5*ou@`QhzWC4HH=s zhcG<6EP6pu$`ql_Is<}TLok?FhQC2z3A6BrT!2j_^$~w_9youi3izR;(*ZSVTQ0 z0U`}J5MPpkE4zA87e>WS2Ni@v#w`-A8z*^mrq+79L+r*;de%|0Am>8-0IWo5{WD(n zqL!4$h+Vf!wM+SBWXrm6NpMIN`*pkV6eLaQs{&C*tDBNI+>$S0$F9>FQBTZcrZ}r= zZOp%L%qc!IP8(UG6jM6N!<^Nlc@^Q^p>`<(_Et_^jhm@kXf9L~$^@>BGdR&7%+*vrlRFkiECp7d&jP;O<|QKNmp<_xvd z={c0>S@GlPSs3Kk;~iB#9oijl8fRX9B{Pp@fJA3@-iPA?_YnQ3VS zID5Yw$cPvQTA_4BcwQ%{mrdQ2D9^ID7jI0}pV*aDsHJ=m+f?EiS5@~la%5yYBL300 z17b3wX82|IL`-_cYLad{lYSxsCM>-R|L9%pC-1Z#X19~(t3#DwZ{_YBoW2xJgsD@% z4Z0L^gw9myl`sdG(u#IoSVo-I;g<`QJdkAr90YLnDJ?G3olX?1y(^ z>(A6w+@{(j?(L|2bL;amhvKKdhB0a7;rKn1gT$Wn&rGioyzal<#A|*hrLLKBcZ9E$ zg%q5AxSE;^a)}>T(JejrT}gb`7XP@gz-VxGTZZbqB=t~v21lku*2&_1oQRt zd#GRn0OL8(=CjI7zaG?F^nudwSDHD2jy835n;gq^67gJuBvKXu?pNw$?&mw{VJ>6p z_DXvJT)UB%jZI7kM8<#z{Tsi(!> zF^Q^gMlK-I>wm{!$?!xXd+IEA%0>H-VW}hrAf>UykSzY zr2EM0l#SdQTWIKoa>ZVA+NOd-GQBPcriA09HqOVsNaE-3xah)Aao!p?9uS<}k{L@e zXQMuPlHT4J*P2~V1=+#vOwO^qc;f&|)ePA$7kFR%6fgAYf8^KFfY1Y1d2sJB}(C@tuo z$+duJpYold_noVqZ>NL0QskGI!Tt#=@-m`Mf?+H+Mp?Eum@$gPF-V%s)+11)y%D)_ z$HbaD+gR$70P&1{EU`T^hnoFlXmqU;)e@_v8$*N`n(p~_;_cAc@DBZ|zm~nbXJAfJ zGj3s3y6LGCku&xBquez0bgt5%zdF7wxzn(9?KDEVCiYbzpD9To2#~jkTIZxCH5W2i zf^$S=DTNgmKv!o)H(s?_1-aJ5fD~I@RBRn8J3_JcAq)<1#CQW#jd*c`h~P3?SgB$c zNETQMZjD)&4m+$V4NHU*wec5_$r1j|WDdZ*01(z) zGqq=-d|!}_#`1FU3r)&hb~_BhLnc6SGzH+Tc#+JbNyDUnE*(IPMvChXFYpT3*mBwh zTs;6$X10XGfkE>!pJ;#`WPPCa&NxA;%q~|3zV3Ss0>JqGO`UJKyoo&jIPWw?x;gCS z&o*V@+r{GFt0@eXp?7rOmiQLHSd;jcR}xP_(sD?Ci=mRWO~v`c6v+G)xZJujv$Mq9 zOGQ88DlF{DNqL8g`z^gWcd@7&5Jwx9d!3)V*!Hpc!ieH*|CaGw!8>~f`>8JuRHb_2Ne5=v2`HsvNk9;U{*I`H zMId0`Rt8~`XK`B}i1jNgs(DUV9(=0;@wU~Xn3B~9W# zsA3M^QrxgJ;%Sj!xC*B&Pr%GqFSwNC(#oxWr3+b|$of>OHYqVklnzyJ2{}#G%P%>2 zCpJ~U)jHsTmz1T*uuh8hEH23(O^mCQaWOI0)+NWRIb_*xbjZMcl1%@qQAg`+p3Jj( zta3rVfXUXp@aDcX=qyIW1qKkgco?|2*9tor~OEQ zo!xeIp~8LmE{}JI)RO{BooCR_J;K}-SEgB%Vc#v@-pZ^sO)Vs`an?L#jQB~y!9f4l zG$H93D`m}(P|;;9LOn5VSk7sMc4AOPiKLMN`gxBNdVBfgJs7RP|aK1U^T;|(Miq(gTz2oZ9&yg>ZQDbdibsG1n z;)SwlyR0==T9^%yGwmEjA*FhH4RcV(k5Jd|C0^hDV5syIST%T*TV-dG(?A3cf)v|d<>xspbG(69oibxL-v zf3q}7lb#m44E(7SPdG`WNv{*j-O`_~jNwY5fgO z!J7w?*VEF`%8Z6Si(Q^9PmIXbKIH(O+SN{v6K8yVFn|{Vhvj5(Z+1Dz;7bHjiCE z)||q(gk2Gk?3=q7tS{tuFD*`edT%c3jwj*?=J=uQ*!07r*{eX`<7}g$G_eqm)OE5D{nkJ zUdNOpPsYm^q~me4zU^|nm`6f4xcnSIb7c65pi}TIa_3u1Lb@H?!MQZsEhAWp5#k45 zoY;mswfPN<04~bYa)_>XeIQOwi}9RUz=zLe#UL6`ud8L<^@vt@Bu-PQZdM@v*e;~O z^461Qgyz*NX!9&s5w}dfkX=4=Dt=Fj5JZA-TIhJ6(BGKD!#&Hd!GE|`+up`_dXQbj zr(CGzGjo|*aUd0YD=GDU`0VUH$w(#VOLnZv>uQPTSEKBZ!ngdrS^-Sm$~|&pW8%~3=3>vQ(~N%q{LG>a~MlRc8wz8R(jOp$IU1R zwaBc?Nh9mQ+?SNb<`5+%FRlAt+ZL+JZnnGyzQ~0{TiW6Dv%2i!q&;J=F**eF@A$qb zHLbQL;~2d!Ov;(RWZ7Gk@qiQRNQ{Dhla})Gjncr=yHTbJqr=dXB~#}^>mSMWx3qh^Ej|=p(WKbJ)2?_yMQ!Y+4jU=JcUXpe*@K zmc{Op!g>AJOAAg z3h5m2@wIqC&Gk8fH8;&i;e`+3kCd_E^OiFVgoC`M7MNr~MuKcF&w(9UX8U@mtMgyf z7Qka}OOe1a3~VqA))*|}V`jJ^=r3sb;k$r5$m5a3E(T(Al!O{R%}Cl40zcd22|}go1*{abx5YoD4C{On~Yoqvmk3>kay2 zN|L~5>Cx#4ZZARTQHP?)>c%M7M{R>nhnV+o9n6T`+ zU5d#U1;v{R2P+nUu`z%0B-?sfN}(!>eK9m7%z6BSQ^JN{f1$zQhB87SQDiiqtNqlD z`)&`LreT>rp-`;;x4JhzQ_9DXQEB=Ii$f>bti(OLr5E6&-zIY|B}D3Og;qEV0wSW` z?gCZLJcj&pf@^n%M{}W}(53{H2DcIUv72gaLqmiQ%v7&&btg(v&UFG31cvr1+jZT` z^J|Q@YkQ0?$KI3jO$&w6#BRqjt24C$m|Qa%U0N?tyqZYp-FG`WIB4RTrV{RNym@Sc zaS1{#rR}%QbdnO*Qv3|A3s_kdt(9zGwCAgossN&elzN>AHLJ>*K5#M`O!gSjU-tKq zln004901X(yu}6F$^0A0uoKV=I&{0B$S|d*?ymv7Dkd;c#;QJlR-k=t3Uj;H5bzt& zZ%t1X4X?DiDxd5QAI0c>(ckJDlS-Tu^`*6@cYt+u$SbIdJ56K(;uZXO2glY z@oq_~>Sj!re-8JC3d>?(d!!><^y>{-3A>b2di=thVT?nC>b~0S93^|xQC)Y@U&ftE z=17Xjm`>AlDVT%{UQtHs8s)_rJ(Ij{H^P5GT#6nyY`?{xsBT)8;lH{U3Kea7Zz{G? z2F3KqeVNDh*_&Ddg=z9Gd-|91&qV5Ro;?kuCYnxZrQF?bCpikXrb;zmhB6JEqN#>u zcjD(0ZmLs1RN4L@8?d>ffQ_Nstyv=Fd(_YR^f{eUjYj2{r}gEB=i})Zsxe~^;qfN@ zdXF$H8qhwgraM5AHT0vQNLrNQCQQqvjVXd`w(-^+lBJo-Op57()!BFi+7>l;Fl1j5 zx$JS>;I~P;dHl5tXeuTllk~CdJ&VOGfr-4yniqt))h}9A9W@7G=r3c+GMrU|Ja4N_ z&&}(`Uet`p#{>0MDX(t7&HZ+cRz1!=hIK2@J=~-K=`Fw5_VrJh-bHT0l8%~C(`CeE z{t_Bd6g5jXXshLP)zdBeW4Eu>Aw{M~SHCwQ)Dp zdGC8&l-d`P<*RQbJv_|wQr~zfpb3xt;>DvuexH4^x8$?jSo(mZa9Z+J$obYDEvNNz zZ=AC`Q?+t1yR&Xshee7rHqf9c($ zx;?SnpgL`h2Q{oS=^Bwn`LY8lwD@{ zNs{T%hM|+&{>8Gvo=T~wwY8O1Zg+UJ=u2PZB^+D#k8Wx0c6uYj8<8R1wpsZhER?EW z&#!gqo*xb6+zP0djJYrSUeunI-IaH2EJi~S|NN=rn#q7$k{+Dz5l0!N(WUnycS_2Z z>|vq9H}3R5^4EE(layv?O0~|Q(cO7S>@n+}5WVdIYR?~7FGcdEybWze=akzo1o;go zXIrV17?A6tqK}T>3!7f9B;QsJ2vp~mcS@ER?_rD=f+|RHtRf9asEUW5(?Ldafu$i%d`(?%TLM&#VSQQVL8M$bo|tQb&l3UV^o-H!*r zn;t%7{VAefBu$Xqa z*=C9Dg95&KMK#MPU45JxLkz=$+-Hb`y`1^=w}>y_$XjpK-j3wkzs}VI>|KPts4sZZ zamY>=yIs23Qs$5CW_35ro|=sJH}o_K6Ie!qH2!LZV&DQx@4t$ua}B`Yd??8)ovTv% zl9?$AxkD2K)a;o0irxJC{UCRLpNPaP6vNN(7bY1|)1|ivPfH9NYSft%-P#E4OB8jS z%qEK7oxJo2S%8%bE5QzYefE9dYSTUcz+-kH1@pN6K9T_w9|AiB_$eL7JF}b#d)hD> zyvYl#B4=(U{W=qyYq}#6z9L(_Xu91AR}O2l@f8A9CG7=_{1l9bl(xq0r>6XT)@qH< zz4zsVU714^oUue$Aj$77FsvS_w<;Zdu~wO>S%qRysaz4yr8_ z_iZwD&wn)4HbVqsPZs*JWi?c;x4BcEEB|0#&h!b}G3Cq4V`tBrYC5JUeY)z4adhoE zy}niIv8lUx6I~ltOH9|U?2E>ln#yDqSrM+HNv>Cy7^xqh5meJpT3545#>HH+ zcnO#<_y$P0yA{42#(pR4~#smQ#D24||k)=}gEz*d&%;RM7N$v@`@|^0- z4}0k8RPVYOC902g>ZYrfWRN6^uQN&t6*t)vR);A~d>u96WOJ&UURF~zvIugGM?IpB zOI6A*Hx#z!%uy-rJ(tQLfm15pUMXEex9}YmmO0=oFS3gTaSuOyht=D4CW9&Q?0wnKtEF@|@K^K< z-VAncdkPxql?&rGv8(9{6}ZD1*0_zEQT~WHnW+gN~P&i0M#=3s3?q5OUV~G z#E7r7ewdAy3DUBCE%S75fWiRmrbTI?ghUnwuBJ2ToE>-X}wqDKIdcL`+l8vdeUR5PB!bCd60E|%DqFbw zOGu)*;m~I>T&NEKhgo0GtGu`tawg7DJ2-WG?-u35tbABy&lD96!$-}B0WR!gSPQBA zJZ$?t;cjPTq0Z8qw6=q&yw=2qZ<_2(6wV_a3&bd{zh{Y)+>=|Qu>_Cav$}La*3vW+LN=Vht@iZOL?|eOOqp_J2jT#c~g5k zv<9>h#DkN%_}QB|>rFlf@Aigm(J*N?2a?>XSW``?;Co)n*K53*du7?&&lh^j+Ot%h z*;hD6&|R3w+-Nq>v8GxHR@~zjJ<+YX27wdyZR)mR={Y}|kiFswqQHMW&!93kuA4f@ zitn)hVSVYq9~Ki+fBSA7?&R6#RO-i}2;^bIG}>yzf+_Uen*ruy>y9fX2)USat?Wj8 zjT+VVIJN9N7DU~S1AA2;CT2R3Zk~v9e;uDjs!Ba}qc?t`#%>s8z(p5-5a;Z_RVH z^+>?IS6{mqQ;<-L-=I*e|LTRxp1$%SeY`;}yyn?9F82q(cv{-~2{{n*ttr;IYDl4pUS62PoBE`W#bqcZL+f4f_10R&iTTUiJ(cC2TTO;yjJ(bg z(RAkJ8icvs{F`6bZBv#dHFY?o+`W%j)@FD|Eg@xOXext+6~4%9r-Xx-4Hc?ukH!n#nXxlX7Bv%K|wQ+_1uxgVG3g`zXqgm}L&=DBo;=9kf(- z1v0YPd@fVjy+3wjNo<6e!H$Y(-~BOFYI=qA~gAP6$R8B&s+DhUNvDWs+pd;4`q$^y}LTo zeDxx#K3D&cW3wV8c8#H)fC9jnl#k9jZy{FBz447R1!yHXTzlQJy-sAP6t;c`k@;8V zg@#Ks?(9X*57@z3fz&~t^;oBCvc5g>)8*f>092I=^EkSZI4jJB>{MFIwiipV8C^CI zvI}SO&yS zlkf2m#J(e*PoNs)I!oQ2tDgkjVN;jiUJ&+Z)pyF%~4m} zcFNKDjJ@8oWoJ%d`!d3IolS+`bf?>LeN;`^w5Ulpk}qz5zhx#J#vVGdr+{UXu57a3 z#mkbIq0jEmG_&4go;VQ>{CbmX`-Xh{%Asg!S7?;$Dri`bgMyTYkXDfqiIWM-Q}&9_ zM(VrPS#rh#k&jztF&#gC<}kxTG%vb-L8EGArR`?A!Y(Tt_W`->E=VeOSW=Nw|g@c||BH@!D;d9NS>@ky)Jb3rCj-*51GSj$@hiS@$ zEQWOP*3s>@1nbUT+@k_B=^L(&KlwR{)F^VLv(5^s)?I4foP;7A5sKsN9Pd@)@2(KI zWo3CCgjt89b~~sNR%j!Z-soeRLdzsGZKDh+>3WbS3w1tJeEu{c006wO_IRSb$>I;6 z*h@VB-N;CMgKD!iBgtGLhM2bj(7diSY9F2+I?&%6I-|7SSRVai>jLoUQ^M}pIr~wK z>PV@U@Gu`|YvjtYJ1Uyv#H&vZ2l+Z}k(}8wD_hUk1dZ~>PeVsSmfPqsux`KNCb}}t zyTy^0T(3N}e%X-gz_FtBCOMD2CbzUpnsVH9e8sUye@Fr1+LBVw4X;(WpY0*PUVcrQ zPNkH>7;ZdC{)%Io0v~DF=7kUHmW0|olDpApzAyR|X^DN$)0a$iWHDB|l zVtg;ym14%Nv&c0IMXF{5aB*Ca7-TRx_GclZD2Bj3Q|L>F5!LGnaRb^u*cjH=B&)Cq4e{ ze$FpOsW8H=~p0K6o1{WH%oCF+*$XY^#23NMEGD~EH4x-qQg{L#o+QWxqq^HrJT{by4%neutVO#&I*RKMg1tM>b;n4ecDF?)uo z7a8N~OPn~G@hi|f$6Vy#@ytJ}l_-Gf7}(g_Dc70#789&LqX{wUrq`69X@8-gU!A~f zZwi?pIlSLL?HYQxOYClrf#x)n1g}v}4E@xe$ZKy`ES)Zt05J*(xumXZpbQZ;sO?z! zlp0+*s=~_PShnSpj~NRu#gAqDyB+vraK2w98s8Au-QCUlED=TV)7UPOfSM&~4&l|= zD*}V4Yrn4tV03pr<729H+wHgx5X^2{4T@5QwvuA56&npvTJ>>z#<`B=YchaPfM;>M zAF8jSIr=Tga(L8WwY4XotC3=CiK=XegtTRqYp*U+^Mp9Jm(iZC_{76F1}U zA1x7F*K635O?AsMwT6cb)w(I^K7`97sev!+$E6b?B-Vr@nyu9MG_iJQRzuxd6Xg&o?Rs+W-nwn zc~gr^&v!!gb~}#-j)sJyFTPnkD*W1`QcDSrS0+UWJsY-1#T+w+2+$IfnP`I|qaJ!Y zGyG%Qt|zcmg@dNo!f5Eu7w*2fZl`t-a=`aBs8V*-@r2*nfQM;9C07SwJ|0$IT-)JT z*NPO^qoxw*XtIq$n5q*pIm+4tO6EG!(o#j^@OQ`Y)N>Z!WnYFtX3nQo=r@T8*HICx z*n3L)IA;^(=V0$DQm*QC4)NPvALyPaR>i|Ri_12@Rgd&qsf8vG#SDf45A{P8No2f-GS)_LGMX*!k(AsHZSvke?@KYuVA{Q)_- zve-3hL4)!}c2x;0UL*SYWV>!$=PkdZ$oP*GL%N$zZc_--Wejl%`qLbr6lL+A&Pxy6 zk~eyk)@-_%vH4N2Z3&NYf8DXDMfX`(>5xwp?9oy~EvJF9hho(RJ-&e5;SAm42r&)^ zUX4vPvQ=EQ=Bq@7kHcO}<>i#LK_mCAV-F|w2$|}1oLRBawy8x$ZF@SVrL)$}Nj4p; zp%oDcY&>3v^m@4XF8c4pMc205*T6+QP|{v@7?Qt@yAZ{{S^23 zreUStNrG#Z{mKe|3NZap9++z@H+ubcU zBLVMX?;-c6tPxpxyWtH5cRJ`pJW9h1!HZ)?!CatmabhGCCO$%12@OkJruCJpD1}v6 zL~zlFXz~mj#(`pOIiKKH(N7i6Vt7GoawVv5Qn?g>&8a(b3#w+cHmsl55gM+2`EaO0 z%2wL0Sd6KIF7wy+Oq*2-S<5F|@Au;xN z7c1b8hRvUj5gdZNYQxP-M&*W^yRYR+lleh;r9cx~$Oz3+1J z9|!5r`kgV4aB^}I{u%}80g4iKJx(Ogzu7VWMwiK>UQ=ESE@&$3M-ZZg>+0w}{o}U# zHy-lyEqq}(Bo~TdJQor~|5FFQcRE<6q4N^k`>rnBkd4;&u>T+C{%?QuSita#oXZFK zYu@@H`O#t{FaEiV)hqVQNKSXcxvr(+*L#!RWRo8>0mMkHXvFX$fq9f6jk z@Gu_9QXT@;XQw(zwp*HQ_aco#SDK`1=fyGh!E57GeHD{t9}e8lf3^4i zJlK3m2$hwUx^Uum1Af|kIu-b2M_>LJzpOMqy))X3sO+`TOw+jTR`;vtlm++bAwB1* z3M#|?8=6lN2ar6(XkSdY(aX)twhsUJ>Cab*H{jjIl#$S5e*34-T@g{yAUVlvX}l5} zp<05QjY2=^qE1n*wK`bmst5t{_s)|U{V-Pj8`!il~cRY#01o%f}sJL_yznz_FjSRg!wrbve3QvIe zXD@|E!o+Ov>x-acuPk!AprqPU?1>%`bYB+b|4md#?!eQ)(FPGtT>tT7k3q~89ycjN z#V*C1vbsf1n+IV(nilqwul^vA*G0Zlwkrilj>p?;(QKw9hg&xk@|CxyXoD<1Z2WL6 zesBCgeji#4=Z;8YV1fPtjIJCbJQ}Uk2>asVq9{3LrtXjq$B(yQtMi$k_jKpb0Rc|GBlLa=eEi+_)O)+H#?jJ2;4CtzkEGHB=4WjKeqJi zdJp*;>(5@_VsN_HKpFwSe0YwIuG){c%d7F3!%5}yukBI0;XQW!<5KC~x_(Ru9|8ZT zFZlf_d?Q%>DVldaB0PZ0S&MVg|FcNYzmCq&O6~uUz77Tq(qozvY0L)#KbH9aaOIKp z2&1E`D?6IWVD$H<{vR*po5Mf_Md|NaWtO9hAx?Qr1) z%bqg-cCP=%@cZ+TV-{k%3$|Y_Mi%@RV)UnvCjZE%p%E`&!;IuX(Zl|VdJ_as>nL^W!9TRtze>;F5U}sJ?C$N+Az|GR z!hB4B{nuock0c6-c{PIaswk;`!>~XXpG4;#*Lh?$w0m7muyi|>u62+_w~NN)sVZ{qxSn&SIJ z{`gt&^M+2iG#RZbzF+St5j+iIB(nP|!ms<#jz}O(O&-kE{EGY+7Ze-$!SH@Gzv{1v2zi8t-t{)5E;v6w*Cim< zdG^1r@!v!vE9doRSHY}}ji{%;sD%Ps5TxKD_2HBMz6$({U5Y#asO=yTplm_#;@2gt z5{WGO!uOU|hwaOIXusIWL<9x6dv||PxZn^vC;}4_814|h)X>nd`sg?Ct3xKQ)_?++ z4RW8b)3r{2v2}b_C<0`6ybbT(g9k&V{eNM|?!2k5!1$qv{--OCg}YuLY)G-(eh>Q> z=kUe5Ys`m09^{V^wAOxYumWrTVUR6wbNk);zOVdGOERnK{~2We<;4C!gY19Wmj0hX z_80rk-_XMU|24?K3H8VvgL>l6op{|2XscFVJzY(~N^v?^i|0_l$S_8@&uS7_X}zp` z`+`@u*2y+irwx4&;2~xS$$VMPUN)a7(hCj?qcAcu!gk}4_-}Ms#s-3;qhqkj1XaiR z4<%2X-*9@cu6KS+tUFb)1uC6Rc8_Mo^;QQ{N8iRU8)?6h#Rr%zrV9;-w*zYrCuKo6 zRG$1jvJilr9EoQIg`^=Xo-a?3_MPyU^mER)o3C;p1}D3V0N4UEQ@y$jV8|%pvlu^A z2jGjI=xcN!>n&nJVvABEAKH z{OPTFm%qW~fdt!EyJ(?zNdFr*Q3=7x90F_=W6GPf3AeP=uv{Dq0&yPEMh zMq++Glv_SSx>a|k;lgPK$>pcpsy(U$03FFi>v^@9YspEQ`>=8y-4-wV+%LqAx|*xd zBQGD0u(xg80Bp2!v+DlWo99Kh)A*Ubl^Rzb3PsN~p8<69w8J#9gBp--!hXJ8$LM^h zDcGCsxThZ+74^t=eUzq%@P3z&R&Q+OE~vg0my+_gS?QlaD$~%|@VGp;79u$ow?BoI z8zH^M&K5@e-roPbC2O6b0MlGd_lz+9!A~cV7}c-!FE|zgA7G+i76qhu(7B!x&;hK4 zbi)F1`A5+^Yv0N{0CK@`ah3!$DjoT9^#DtHl)=DY?2Z0ysPopvBET`T7*U9CC4EkW z0?y$Mi#azdy3ll`KW+Y_5=eJ|?^;+9|eZYY?Z6@hxrq zO5}}q*o<#JWWM+o1^jtc|GSUCbQTlyNm=XB0Ecx=lA0aX+V@bt|NOP$TpKY}yNod5 za;{A-Apn7*gbaKd%#;=G=DK-kaF8PLRX?0FbKg zY-CR~5V;*cVgKqk#C?G6D!81joI14#(pw^{K1inJb8H%imlrpjpX_}l;ak^B*oQmr~{alvYSAcoSg455LA6>POuB7>1qPXXC=x9 z`8pcjE}tB+w2nfjJdj{^OJeEz{l#~<@4G<0F}ZB|B{iLDS)g?vjOrski%&I!-Jdw` zKh)_TuO9NkQ^EOdXfA%}4f^q&Htu*8z+7Bs<756BTtDTq_t6S4W{Maa@5~zYC-Nf# zu)dgF2{vh-lh6{g>B-K^#jWC^JO-7LiXy4pc1NS_xyt2uV#8z)Nsv5OL15YP#l!R! zHURqw1k)-5kVRZWBsX1Ybd&%JNprNqO4aI6y7OmVi#fExME>w}|F8v&NLJX~YLKx$R>?j034#!BU8bE#~S^YU9d;eVX zZQ)K0XBb`vL*6q_yLi{KT|F~uvl&zzTG~9()Tv9r!-f3jI@t9df_jg*7o*8wcBS@Z zl)HvA>mAcZQ@i}*Z54u_Yc;<|^H}F#7yA70$2k6tt4=YJXWNR(1A`3T`v-{Gna{>t zkGL^bk~Hg!v2I@8w2_0Sv9h+-8_60;%5?eq2(->C-LcygAk#fmEi>`1bmc;`^%swz zFI~Fd=Vk{z*~4x3WvDaB=ja3VX$H?4HKndoD2*3Uv^gw>CVrT=AAtbwS^1>CozPOq zSf>v*4OcbDKI<*kz@a(i&@4AokE#xB9WRx3mND8iOcF8Z{2*H98)?M>!6{%`3tt<_c3wNDalbf-n6hZ*ORv)F z!r9$!eja;J@D9|^s0jJHXu4fp*hjINR*eV{R@p+8?PeUQCan9oQ_N?1JpAhLBMWsq zW+~fsgIvyF_oT<%FWH|9eLS6#O{W1BKf!>I6wktJM$W^yn zHTt*=faHS9OradmCL9~7=J(tX)6VYh&<{jTFF?~Exzdr3Wxj3Met1ly6Y|T>qsj*D ziTvf9wykt;uermjw|J~J3fqu-4J=(Ls$55NCPujcClgx~m!psMWi*>PCAZUlV4U5W zaV4Qmzeg+4Gf%g?sx|y!o%8pGN_9QIGBzw!T$J0JmLvZ-?V@ z9L=jnHBe&^2DX_Y<9fFXCj(yRSMx0iN}UZJT4}uMJsgtEa5G_&`;8OfCMw$<^f+E!8$P9i1eR z>pp4Q;7kWBE;?FUqkJsJdUSd+C;tj;UBQ60Z#=|%JyOR%xO(d{pV@3`eDky8sP%s1 zb>gV8X#Q(rpI-HmHKF1K<@u)9eEh8h&vI9UD3X z^_&sk2uw0LR}yEec3N@S*9UO+FBU+tc|@kHdl;Y?mH%e1F&)KoJ1em|aT7bOkPem@ z4H-^9Jpjlcb=b$tXSSc|5eRt=qAex<*!I6cHDUgWBzMoX!M z3^*%iN4f7F=og8QV~+JQ=c)Xb7)TilY`Br=r^SN5nZSvdC~_qU%jGjp)m#@g{DFb4 z_(YDnUa^*+R}YQ5`!3<~3^~`XFHlOVIIse7UZ(WYH;|qNa-%ovTI)d%5EjFuSs+f6 zCyLA#^K+iJkL1AWYwGWt$A4_~^&?x%T<$>p;VT;a@%=f^BX)kCXqiWx)v`)MWb4du zf{02@ouJnL6@nnW?Hit^$#Gi%Hy+2R#pf<6Dq5J$)d$u}71e9N9Tp!3>d6KP&NLhs zg4(!DVc2L0XY2WRhsK3{XRtBo&Bs=31Z-wD!*KWQtAptwhq(ZgMarxi<{w$bG4ItZ zi7|z!K%!nksNWk)akf!hUkrA%>+QeQwmEKfQbedN4GXK@he0+H#Mx*d{ioqW~v2?2~Mxv-HyMwa>L6A9=tN|>g^3DcDrYguhJL5efakLsNSB_ z)(HmCA5eRp#@`_4X*jK7$0zm`*r}xF%c8AtZC2{t)JMLlw-Ey-;fyWv`1! zx^rvGC}oebu2jt`C8fA_?oxHVlrgo9(PzbHT=rGev5^~UFTFpAO&;Eppy4w-{*^)7%z1z%l*7XLuG#tQ z@y%pncO6H?m#g6J1O>R{*Kj)oaWDQq(%v(ysjXWBRfrE?s&HC4?#L->HyD9N8zgB)T1(-q38uDoW559@--4qQI@eO zK&~p=mqLuCA9^-)7v?dJs$-)n(^##X>BHp^?6k{UXyt}1R=S|I33q(T{Jzh&r#J$G zYs#Xdl`ivbYVi7FhtZM&eUn;u+bfq4m_Ae!UxmYX+hL;j0J7o~ z>ivQNO19zJsfi81`}gVlAFOgu4nK`O-c9Y28OKe51=q*=JJ}&gGc_ZXYSRRP+LdNk z%C({S|D~h&|Lqsj=BU2EY~-=Sl{^b-;K4lj_U&h89N5XT)hEYGsyS{RF-hvdnNQIb zNw1xwxQ!$rH^j}bt>GH@n-l6Hj;N*!xRf7~wv=b3CXFjoB5u#!ssZ@97l7pWxn|@PXiaw0}_8cd`p5xRZ zxtwIFHJq>0UQyGdZ(QRVO?hYc6beqnfw*4h7Q(?ZdZe#c;?~n~RVO zSYCx`0wp3#$0(vixeXqvz3|x^73wSJ=*bO5=ZNSC29aCu&{?vj|N<;lt*nE z@)#gGT+IUmD)E*-qAMx?!gYloS(c4(@FdzEai#X-^=Z!$IQ5jz3S%Rga*5h>s3=Q( z!=3#Fb5~%L>>%F~h~c=DO(A_gBlyxIVqc8+6s#DAVXoO53?qGbglAxFd`WxuBj7cq zZZZ6t!~ScSAq}V}@(xq(J7s*iankG@eEUPt?=)UsnDQ0*3t%FoB%3Kr2@%0{UNk8bT*ErN@S|b_xQoNldzje9OusFhFhW(fYrQr& zBT0i96vqggHFMzYYWUPs&^_Ng+gYo8gBm7YuJotF=})W_CCWhp!5%OHP^X_yjcs}@{48Qp2Q|s=5O8rF;pCK0L!I3!Xb&D2ncNCO6~@N%Nxtd%QTrR5*XNq zR9{XCvlY2X?P(#qA;t6`zRsUuzmG1DAYrO;tTs!t5wFng-0hPy7k+QVYL~gm4_u$O zIf>izkgbC9KQ{XJmjCBfv{st^=KkL4SDYE2+X5Z{O(^ejLWF)Hf?AsLa`)HG0Y$o# zF96b}Q)|zQ`)Q9cifC|*R~MjmOMbRSroLhp7)<;`d4bEfZKq#>_Vp&RmK5NJkSUq2zIx4{*l z_&ps|foYg#xwtglZhXAe@-grQ3pi1By;ST;hY=8`ts3*kE-FRUA?00|(s2`R>V4Is zEk05nYeV5yJqh%ZHt-k?lCb(#Py|Mp)VAEnDo z^)-x5HAFy++L=ds;363ttDu9Y60q&g%|@z9`U$ul_s4aw;iz$K(5rH zSxLaaI?hU0>pnes#UhO<%_$_Zf@3Rkp^iT(# zG*$^(-pi*hx9T}N$&F5m%a^KfFbh4R=Bef)VX|tB}`LExf=$gvnv$1fYK+&j_FipIE)nmveLe7?k`gtHhHkU%zaH zh@4PgYrq%wcgo%$m9Ypeg!XBCAz8_&cG{ViZJE#g{gIXQ@Nw4obiw*gN8r*K)3C9IaTD2 z|Kifpk0^02FATaf?u59L$RJ?IQE0F^ljm0KjvjrAn}*1FX}yUlFAG9OSdoJOZlgB` z{C3N>h&ne}bcw=SI}D0J9KXN2tW3b6)L{3Em#up0+(us9lZnN=xU+nvKKOpb>Ux_L z9%Jts#jXAkGYQ*Ilw8-$R`H1ONVo1|OTpUkmey6>A4i(7i{p=og#EgJYL26NeB&TH80K;=h zFJ_JXiPDLH`n~jDB`yjHo`BUs1mDr#lO>Mgr##Y3!b|+#SEp=d{^ZY_>a4TjFcoZ*|ok25I>8>6y>> z*{iO@TER@|6|^*+)!S`}h3x=1!3*#JBwhA+X2MJTiEzoR>uCNUf(hEU*#H)KLEJ<1 zeU7-_S?9B>iYsY8aqHMSxm9lGCl>%f>7?LrUNQy~6&+1Ks#VVHu{Lz`i3u}30ANv) z_1G+N9pA}d%?BdBKvm!R@^Wg@#^!^!i+8m187TKyp(dk{7cFDtQf^u{?6naMXxL`` z4}l`7VXp}xU0{Zfmxe{$c@0h8b6L!LYZCVbI{|cj_Xo&?cR#L}CyehSTb7u_BY-Q{ zE_xPnY_<-hM(5#NVkI6u31Um<&R9^f#Ny~T41-zQO_rx6(3eE4eMzCByC!j=4NhP< zkPYBIWA8YO?LEf}_P8xe-sb&%wEt@L;UbA8(;fOQnXDsl4%Jh1;#4zf6VzbAqR zm&n1-z06Y0wZYUGLGN7vNFXh5? zJ`-00Xqd@J{T~mSxDcRr!#w>KKq-sVBTGvNaug)5vu(kWZw&XnlAkC?tvPdoK6kEq z{{42hdie)d=f=RD0manY$RgtwfMKw7599w~#S?bfZ|m-0C5RDR*(|%B1jJo#KxHc5 zvT711sy9#;-gKAi!!E}vfFS`jIV~lTD$^6XW?NQ#FYO0D2j`&nRvUJuPe)Mv{r!9< z6IcQkn$P3Si<<)5$u$#rsv%;21|=hGU}xo3u` z{WKP7Vs81p_W0=P4v?Y+89C(p;84p8KwvEFAo~GO$WnA*oS+krY1URv5XF(r*+5Ip z-%Hk(+!&C3liNJjBDP zXHU$uao-tksqEoIZp;R2bnh-8oE2-G!i1TmYtbLA zZuShTG#afZ_n4|-Gz1410`>re7|(VFIo}i$<9rey8w=aGb4px~{!I!j$fZ>lx|N~% zKeg-shw{?6V%qlt16*}8hMd28^PA&2Liwqn;OXnx{-gNot>WUWI-loX`+t4zPg&)G zH@CHT`g*ys;@?==k90kEg2ary;-v^wj^lKdP0z{G=uOHKh}x!?n=wFnWTaL8X1F;+ zfHSRogAq@yJL;*ipG!48-!4GspwARJan}WxCJO7wg%nkw11*Of90P4H7R)!B53Zc5ge#DfH9+n z33g6L`1cv^5f~@UdGBO5up1#=zPfgo_?zc-b#;lDG_rnt#20S+#~`A70m*>u6ENNj zatr4;AVxHutlB&mNW<>8mHv(epR8HjUdFDLRi4(qC6^RVZbtcoYp2k6;_RI8_7Srw? zM@RGOoLW=Xe+ulU?NnWSPGV~q{G?GzcztxqiFDx8?dx+M+dVxF9KO;TCQv&hLP>MR zH5Tx#U3obv_C>p1DkW20gGELL_@(Eu=HShn&_oSefO6Gd5;uC`E5uQ-dghJ~0A;Fj zRpZeLtu@o^`RRG-^*A@1^Z$}FiF(TrE&Q)0=f8LFWS4b|S;&($;3lBIk{ zTC@+{s6Yy=e;Db%vi)>*f}-AXU;IsM`S6^p#4nz=bloRsgbp3dC1W6|x=69_%F16@ zDH+z^S19}js;(r+53rkt9i2cQpO`E)KP|cQO%_PJGVX)|(t0eaX^5)Gm>6hb{Yrq0 zbnM_`U*B+f_2a{G4gCt6bGcqRul8+>bm3q*yej}aEtGW$L}$F0(onlSYvFR5nFvHz z+HjbEQ<=n!GHLT$=^v`SIf;N@zhY3e^cW}r=g5}QZ+cfm%(Y$EbOF%9`@9*0K#3^H zNQ^?MoNp3x3|BL<<#%5lY;_X|*taZ83OKM8@{sdbD-QH@7^~Qh`}gm|%1buP2*Fjn zM^Y~A%CRj60|$YmPEkN|v-X+3E*G^n26X^sWsU3tRr=L^b@z&Zg0oPfW{z6+O1 z{XkJNzOwkPJvF0%_@+}&25x=o){h+Xi#ukbW^_9^yal23Df&J>Y>;*MufE;y80^U@ zk}M)8vgztWSYRjEN$csn^K=XI;h?|FXTqf>@RdS_Y^A5|6z`>>%&Zab1&800g*iy* z|4RLUfii(Ki8)2Vrf>{x*8mP7&kZ>-ibg>?hILG=NqkP7E;D_w-d=<>%>&}AK?{(b z!0~=xYs!lY4j05vd%XxGHr45gI6=85y#Tr>fVXepr0LZ0i4|jVcHBk)wcT@qPWkm@ zj}a!o-Bq>!r2NPH^wS|z(10z z*s;oTa8~C1Ovg#7UZ^*N=%WGF6Oxdl!^XPjtAh3^W^7|R6~4zVKmo2>(_=ZgN~y{* zxXC0X{Hb)00Z9r*rL;?FZe4$|L}e@jIWOZ4doVmUpDN$wBZAwhGhZR-Y39PH9~It ztQS@-0&Pn4G~eE6yF>8idn+zwoAq#2h7?Aing?4bf?-^OPVcoqiCcJU$2_&5~emoClu#0TK5e+*!zB;d1`z4Iw8q!nWL_N7bs z3$95>=%fT3Fs&k%Z2&WQ&UGoCxB%eKJEAi4?@Xb^W-Te$3QB|c+b)ss*pK1XnxkUu zU7$9El4QYs$RwDyDDVyDGgIFY0JZ{xJ`cNqOrS@sasV#5WC=+d1gOd$^l4Q9wPLH9 zrG)hi2i#EXSMYqB>gSVDn6mlz(zQCIT>!MemK)}Arrf&kESd%0jD2Xu91KLYBZa*G zf@Q+e6+(a11!X*r=!xVlK)q@<&vCRQ-DmPLCJzz4<4a3%IgaXQLHV~u{hwB&MI^p` z8rNu9D+no1@UHe3ge9W&@#SmfRf74SUqkkci)M(1o{%P1b9j|Nwe^5l-UBBq-aj0` z1M2(7Y5H4NQE;y<(h@MJ>9n0mIM6box-%bfVIkIp3oLFs^ZL|+p(hHWa!c0<<;svxzd)Y6t$3-6Vd^cHP`JC4_rCiUlz^-)IV^ISQK=Yl1?dS#5H&Mg!{xh1@D}mqr;dW&)2*C_&4h=Y=B$dLp-`Z)yfa z1KN3^VzH&>?Me*+q$J~eNufUCHvRnw?ea9BDDA#FRvD&M9H{FHUlU{P0y~Zh0j!+^ z77pNXx1^S{>(_xsy~isclb7EC0WKbZ8+jnb{}fHFsvWYIA~_UhRshBLyGsrb4~ZrJ zAosWAO~bp#RNP;0fzUpy@CyPZpAV;xlQ|P4 zznO@BYdc%}BOF6lAk?_1`?Uci>46Oxe9T*1H$gSx+SdfPuR_$8900h?eOaRWr^#+# z3}X4l1u~Z!G|;G_0ryRaP6xUQU4*T=Z>z&TYa4sda{A1@N!O0@nqs=jo#dPZD01&> zJ1YX{C?_{}J6R=><43VPTBZX7^zkim^?!+lulYD4i;}I4Ubgq%p11$OyAQOU40D;T zpX0r~46t?KEQo_A&i6dbLKUMw2XdZf^L~BiQoo7s-pbXDaccwf1OQE@v^jVvTHS3V zy5+DolnUtcv>F*XcKzs4BV&f!F8L-Dm~8eKXP+fKJvH|(3n-&;o!}iO3oEQD%iJ%& zElJZ8WE|zW6>9`pjMn+lc(F+7KIoQrSCQF1_oNiFdzER^z4goWK>CX->fQZO_(rOE zSWg;Lz)ppMjp)$^-}TD~Jh0_0q|evGcFmV%qU**_AM}OFidOFe`KW;^_VBWEW55#g zRM2Byx4vvCjt%sG}AjCjmxm5V@>cqIl097EXDBIEE<7by=hCejh zAUaI6?>JFooTklnoR1UXP8CEn0au5=W6Rz|Sgt6xA(FM9gFoDCLd<6^EiE}#B?@KG zM)3a*6|Z3vrAa>djpQ*mLodPVCkw<4ZEW?^arjiW-g{?tAX( zq%>xOR8G7(<@sHN@Vz{uhTtM-;)&vnj9jBRqOwbnF+7DKDx25DcI@DWktW}mxL%j! zrU@kH$h~fb9KL%u2An9tc(hq?;2qDzcim&3muKrvGWrHJik{%(+x-MjB_1B5Cr>9C zYgK+Him7uoiQ1iyq&t6awe+2^ZS-mJh(>p+Fl@d(Gxe z-lE%5b=s=JMa1^tvc9#4mwkq2F&3qaz!Bf&4m5IZdf-y;OAc6;y6Gg|Xya(#t2MZg zx8OHYn;)t9wB5T8-|_Y;u>N&|{WGMHQoPdev|@pY-|55`iMp(>U+hgh{h)B%gEHy4 zLCvPM@Bz4wgDMHadN?r$C(~)L=Ob{gz=5T#GbinLPvVKd0(sAq1=J%4)Vt`@yM4fUO?f3B_a z@^Eh1x(4wE`UPKYNLUqkYB|@+*a-yfQ6RzkX5b?T0IpqEmMgC(NwPfKDC*&!dnOiX zP`ot%ss^d+?;*{aYvr7NHwq+6*xQ}B6GnS^MXj<{BLJIka`Cf4(R*gG&ZC0*?eKZm z-BsyfVOUHv`vXO!VsS~3bUK<%diYV#((=IpGQx$MSB5LG=EBq(d^$VPeoigvARp*; zb94xJr4L9)^B+}Y$6S6Z0=<~Hw|Fe8%#|xql)Q^PlB}hCyd-<<#aNx%7jEtv6)^SY zf?y=Iz-^OWsr4KIm(^$ceaCn1{=oPNggkVg;)Ntk!)9Q@KCSfL2XSsUOg*8fcVApO zoFD&Gc?u<~D3E(t9_?@Jka)|C(aUZ&u$75V=*h8cFPHDCT;JX%Scb^&HSAMdZ?ekU z@cltoPTuOBgj)xtDZa7s+{f&f4Rx{wS#lPq!r?%#f53*?O_*-yk&5ePLLSga?}EdR zJ;sQ_=aNcO-c&uO-aOZCqcUsP4@s!-;B(R47HRA|AxC<6X6yg&qGSegN*F9KFWX(h zj=(r-esFw9ZQ>z8wkScn3J{>`)JqfwE7~f*RtK*~@11TnfwuEJqr#8Ll&x0ZTZt_i zqcpv`UVv*d@eSbm-OHd$M!qI!wM&ikUGF;lei$cQL{}W<46i>JX0?QEKs_i=L81YS zy#%90Nmlb_wymhVf!(+B0CYAP~BfLq@mm)2-z2roOwYsjO^yz z8Pe>l*39P$#&{za&W1~Fe?9)h8KZj#isW6%v%anGvysv3}~Fp*AP1(GgL%Dej)Cf?GHSww{!3HSAuA=ISbN>wfn%C%4n9>US} z1V>zwb&8Mn5w;kz9I}==Ewx_2&*E4e2-j=~Sj?#kzKcBypdw;1fD~dbG8$xJU)t*G zVPZR-+BMVk(r&35Kr9v&RX1>EVJeX+m}mLxZf=aH zdy2h0*;Eq%DGk*LLh?uHa{^yiz(C9BN!P8W(@Lqb{uVWhAzdYAEpuRgsBS8qzT5P0 zGFR@K`00ZYujhUggAKG1QfrSS_ZOTVZ!gX=ij5rk?TL7eWI?7aE|`T;IwWHamwuzSzYp1eUIm_|vq8jESd`nicF9y) z?V2%PtnGxpUb~FKjXWocv~)rJnBy>FU7O~EF00`En#1}IwDc<+bP6j;Gi+B`b6vcu z5}W?jLp@Nbm=GRo{*ZP(h5bd`3hX_P!8GQo#@uW)zOF zIHyVxCkBdv^+o{#r-=P#ohsgx7U2xg)K_n zT@tz%qi@$CYAUPzqor2IB$>krj)igpg#Kb02l&(m%>qD4$}L{l@@*YZ5RXAucJlCc z$$NF`fCW7uyFC(?V->5Pl{l4QnK|h#A&=pi#kk&vv^nguI1w>%}y|MZ4< z#gl5>*!n^ucL480dnhW~bzT+O?yGnA_zt$>7O`dsa`ucDrB+Lb-~=Sp<+zvMsmEJ6 zTQybS06+cWB&o$pSyyM7LM%UlV#5wmW37^URWnDmydhOg>FF^Ffr<@CK^j9QkC`A?PRt(L=%`} z8|Dg2bUY~cn`hzvsw*?FR)MHzS-<%Aadp7$*FxnTo=+q9qUSIBk4QM@pm z+CX(aE|V^_+7}*&?l8tax07=kpHBa-mR{tx7BJk_-}pyV5$H>T3U*+Q>WljldnWpQ zPkYX8gC(9sN#odA_iYmttv5@>HN&IDDfWz;s6hb4#N#J;!N?_l}grD zVtfrTjmDOrb@g$nq%BRd%XPb#<1ZOf64dvo3^Xcr%*(Lu_b;KBZ-xyJbN9WFLbDGJ zRj|wIsh{|Ri8UNAEVXX@9tIequwaDMi}0EH^YihAk?zj#nBTL1ebay}w0=T_|CV0n za`s;I=tb&TrP@pCjQuqW0*r|!_BrNb25Y%KV+6ywb1Pp+06oX#JAftH#=e(5(A}S< zZ4d++H6r-RyM;?-F8;WFHNaTe;-S53_*(P#O?OALVs@5eH_ri1GuXhZ~)Ou=d1t$}}+ zC|9OPc6X1L%}yo;?37So`LQD(SF8Q};<)!>`HdA)BYFy)0ajDKeQN(%`1AYea&?N^ zDFVI>fQpX-==fCi9J39QCbze;dF!RR!Yt*Udxlx`(NcH(bwI8g3XIuB zX}`Z)bjyD9Rt*6&4s^LSp{zRp>IVPH)qWtIlk#brI4iE2XIF&^mY7OS0tdhH&QocP zmoW1zQtFwhgHQoF>YMGz^MD!w?yX;hZ-FU%bPNUjOrHwb zcjr6Hi|(no3^0!oMJ9ErovG(1MC+eVyKOLIMkVVZ5oWK8uU+SRga#WXTrsV_-B}%SEVSIjI>2Bshw6%{fLTXo@!0e3-}xx zVpA0mymbg(z0lcim$c#FFe?&Vv{QrNUbVJU$^Z1n&)X<9#xyZ}Fu2dH(0r}pLn%G? z8KPy_Q2+AFC@t56+sMnYD>bVQW)t@Ybx;iy7Sl4v6!>?CVPCzR@;)SHWXT`Ut)!D= z=v?MM{=VGeI!`0f0d%x;03efZ{&`SgWlWOqm={pbci@j{=+o!C{xe1S;|cz=O9rx? z6%7*GL9M0A$2i*&G;No?Xix7`XuAl8QkAQ8GP@(qUO3Lf0Q~5bTlAKxe+oR7J-4-+ z_p7Tn7Et)LaQQrVUub-t`P8@q(M_1AkO5mRQSCIVRCxAE+A@`juYZXDccF|>tRb1~ ze^F0O8m1KvgomIaFdrY76m;SJ8yVB@17sN!q|K+COs;1hW4p0#6FH7x$MnGq@^4&RB{VAHyVJbS(e+?%j@pjtZAF-ml9B<__{iNg`i(?MZcs zk1ldH^(~r>BR$80Q(tdJa{3p5s-&;!9LKW9 z<%fC{(zv;_j&9X7SC~CzpKhWrQ(jx(Z!Xzm<9cL3m8DHewf*ee3KPizenlS?URgXM z>jH0p7_cb*XOg!6;q4oP7`|cZ`FuPT_Uk)$p4x&&+im&di5WGhiTa9L*I=97xVqZL zTcM|HEnb&OP5|Lq6qCJRKF%iT`107rqW(gE6s~_$qWPe-HDLTS3zzEYuNp*2|3~Jd z94v}YexJUTk0e;+rw%IUeNI+QHcjXy)%KNF9aPn*!uJkuE#i|^tiznbTsPtaQDywE z9lrRf2*dbCDwFOsJ~rcLW5m`V`?UD#t)khuzNxR9yQx#Ca=L{GVE%`f`v2li|5de- zuR8zDF|%NIjz5?Kd~X-V+j0V#a8W_|h_YS_|3bf`Cpxj+(%2U4Qk-{6FLV9OO><^* zbGJ993~3jt_3SP*-FqJE8R~jO9CTSEGH;mg%pYD~4=*JvnLF_ZH;9aK<4A56yB=fQ z5mkq7ddhnx^SA!34{RLYdDK2|y_~}LIjWY^GmF%It>jX1>|T~alqIZnoJ97{mEEMR z6xkbmLkjuq^md+ob&5$`j31uqqxo3mS^lU&{H?d{pCntej~n8To8@_B0lW9ew{I`x z^EfO%_1fwqwF}f{0cT@#7mutRP%e(eU!azFKo!(%sai*C+%T>8^E9!?3ehx@U4^dK zoClsIC_2rvfDQp?4dgo0(%(xwb(w<7lP-x-;lFAPPcqe(XIe?GQk>|stG^$zg zn?ruLmiq_Lqa~#sn6OCj`^=kFn+U9)SLC7PRn87m$LTL2z&5lk2qrdjTcJRUYNT#2 z?fZbE{;qh;T-d19bK1m7g%H)a2j@RoP@OJON8$DRtsfX%(IbuZdt}fYQ(>KGXWs0$ z8+EuC1snV-=pQMdt1uW_l+e;VF8IdbCWdjLb}OPd>Y{zqhB>;>!_S+j`-oYT&oKUK z`c2l{h?{3UpK_|Y@ck*c@VDO8^eO#~afSHF*myt3)F7?XS1&jr7MI+kEu5^mx>XnK zMldhUsdOLBlqmwQi;~HVx46}n_HA&okU_|Cb>c5T1Ez?lMoHL zw%B!l!HACDoX`NV5Y*U#`Mf!iMR6z6Wd5=5@FS;Ej4YOr2)2G$x#XLi=< zo2%Qi@wD_u9`{BIJH9)dfbll?)d{y<-z@ztVEeMYsmO8eq` zvmvV0mN_5J%&uL#|Fxjx$yv8oCQs6?H%jf=D8DW2e_W*{QZL}1Eb*+e zbyho-XZ0o6SD)!Hu_TBqq^d@JZHIsHh-^Yf+eg?qT#J)wIXDc^8W&kVwL)lv7wUWU z4ekjYzu9Z5znoGyu8SQ6+wAhsf|=Q$`}>VYHa7Ex58G+&-MA(2>!AWuu0E-+9_lNi z?%pd4w%70ZwBs_C?qqwss$I#jntDFFq_wE{RjaR|XuFc1T}-d}$63jKa2=Ec$$cJhU&iPDQ3O;u%$Vv;}*>j##hIx*7xd2N?6yOjMlsEe}|Cyza1AN zt+b<%fe99C{1a#`w}|6<_j^}>McIMd){Nasg+lrHJ+GH+)K-Y5&8z#d{L=_Y*Ypvazwbm+r%7VN+o}?2o(b>N_NKHvv7g}H-O938>hhTZG> zleCYP@tbMWEzh*o0#BeP%eQ*XimlRX z>b?-}O=^i3IxY@PS#amI+A0WLv9bAcBlKtwH$@?7N z-=7)w-5E6}&B~VGaJ8uCs^}}57vW0R6u<}j9`|jqclY&$pJbHLVS}D~=bsdcB>Bhw zP>ifuO$9G*X>e6!vK3D=TY1$s4AVMPUGaeTsur&U-ax$N-H{T?KS_wG+e6P@g=}}% zHbZ&4jFMQs2TN3cIk{V~)OnS%K(BorymFf*yHwxVM5-{SgBeY-907yCWM{O>a_{4!u^rzt)aQhRLcZBkKdZK%%= zKFATUbEqaTFtnHzmE1Z@y?d*(ecX$2O{cNGN5`QKL^0nornk<_7&9mbUzrkHvrS!Iy@}9_VKmF@h|F|jt;csc<6e|HLkm!x% zcW@=^QEuk81*mo{JUS*ftJEcJ`nuhAFploxvI-8;#`@Vz1SA~0A=aZ}KUvhr9kl8-OaMGc5Ay8lK!0**DTS}CJ zau+A*pcx z1kFx}Tqv=ynUG5uYT<`kRQb>$mB^QDD-!x=$k z`B|Umn;GracE$8)<0!R?gb2AMpDTSLgUe{B-7@DL#2i|pB>lXT1l87!Rk~^qp`6fq z8&7%%r>yD2I|s%`(^uxs6ctT<(e1?ebYysi%Kv0kiAcH(jSy&!x%!$9$42r%1$< zR9n4p9Y$jb)WfI7JM&ohu=&|K*C!Uo`Gxo>J051gF_IM@YB^`fz=CtGeY{fTpRSFM zC_ywv`WMPl^3_GbLj7}nk;;k8k0TrTSolQpBHmB8h?b_S25+%lQ&rWn9TE!I1tmVb z@ak8dQ}T_1BkU>Or*q_`S)pD2aIo5~`8xd}VL7C=_PWb=(9xzT?zOj()_3z_w+b8!Ov+~Gav*>swRhWoqgKeTXiu;%D9hSEc^b`*G#SoHF zya7f19~uZXyAHoloxgcxP6T4Ed_W1=g84vGlCUPxRTVrad%%T_cO{^=TTQJBC5+xu zQMBoZprSN0do?Y=TpJbd5s?dy{hnk&ngg||!`kG?c1?~)l3C41!pjoKtaL6F(>qWR zi!R?NxJg+hgzE`156~Mcnm?32fLg^K4)ei%wfsnQ|2#4$NNm|O16uPo%`*_Q zUg|W{ExSE}E7=OCb}-Q9R^Gc+3L7tvqOWS@(gaD~Y0ZwnTBNVDY>+#=|Dw)Jy~)(J z-enoHHYbT<^D^ji_cHVmy@Xzg5)}n>e(2H{8vNN{C5iKFU99jP*R6ZwUU<1N30JPpjFQ zilF3Qj?=S_yp!$p>7Dz@t3q9yLaMMsYl>3bhfK|`qsQ6&=q9W=8g&pSr2|~2ls3Cc zo^%cF7^^=X_A$BpfNgA{O64aG_Zkgd08_A<&BvBpfzFyOu3^MYba~g`jutx*Cuu7l zR5{@Sp%lo^gtBdc?Jn(am?~bI)FVN@{-~RSl5^ltHi(la$O4X*WY(-h->rXYzO-D1 zPnmAo-IZ_quT1>c(fx06+J6e`H_qKa-P5~l?8KW%Lqp(K#y!_IGI@6sH-1X(<0Vb+ zh!2g6+|HC1P_H2;_F;S&SlLLPIZ-9DyD;%SmZSKTG)ed7U5|l)^OKOZsg5-qT?4lm zI-EwyG#!&uK^e8(;TMb-7^}>}OgG$RRywkyW)%AQ6pf#`(v*94cnc~g2SpguHc(g( z0X4=3OxZbxSb;c?Stf?+fP3M?6?|~cs9IRhGR(fz!CbVHq-8?Z7#KZbirj`)58npg zO$NG0N&G`#6&Tngso~u&-+h;O+36Jm8WuJHxk;hJaHXQsz3&WvNM*m)nXG@%820Z6 z}$jAUa}J9IrKF78thXTlgA^KJz?5J)KvRHq@>Z48?E4-Vv;LU3{_?v0`%JkDogClP+fg$!u`1<7ufJot zBXZL0T?%^9>z!R#mg#;^Qf=(B`KbE>)9c(N#Eb)BGZP!{Qk6-$@l7#RtIB0vSXjB_ zUXkXQp)UfSD{wEh5CJOgUFGS)6q$<|UJq*IH{;vn&KgT(NBV@9K!!SP}h^14zsvOmLn60DCfFLWgC@ye( zO#`;!$Medncy-z(;o93g>3O2xKASY7pzk4@|2>%ufV_(h6pe#r*B5dB0=BAK2!qm5i(5=2Kqn`P0O7+vw{C#6c!AEhjs$Go3C74(Q-O!R4TwCN#=Y?|< zvQJ-0AX}>E(O>@K0cT0f{Kw8Kyel2fiKyVr zAy{=-#A9=c2_Xv~1SRCxJ#Q2V)_xK2ZV8eUsmns9(f(aW|NGwsp1sg7Q!pz}s=QQo zs$o(KUw^<_TyH_^k!a^oZ0}9V$c`IqBbMktdVlm5?5yC|0XKe^e1buIJmy`-uP|8N z^c=%CeyRE8cgnq^kpPBUQHX)F*dl+CnV|RdnEEP%_p>w=(TeoEK(HC z{eFhOy9y+~o(9(QP|tU?t4uE3CL=?dhH~4yG7fOEcj>dApaGd()t)b3jJuG{8qW)e zCSP4v-i+QV>85!5$M=hq@1Aw7)P<54oTgG%Rpz3m564b+O!8ZsD`=dhe(rz=nL@$> zJIE&fX&w)}#ftsOs!%c1;2Ivf#)h;=&3AB8#Z?~|s9@iMtv0ZRez()^hK7hkUfi=1 zELwk*tsJCZZ;R2%TBP&+ZE_eM1eR2vNiEz6`&NC~LjmEc+ty|x@IhsiF1DF@{KI=^ zt?){W1+z(n^75A5AExSWKktg+NiX@J4a?!2?+(TFY`B^+L<=yzKrW8jUBk7k)lb|K zN9SP$6VE^&L($-_`q+)t!e=}jFQUx`eir>H_&P~i7mD}Fml$JWQng|tqK&@Qmi5Fk zF~2=xQ#*XjP&c;nwzj(GJ;DlTPOr=seDwRQ{O!vg_@2=jtUDi|ojj?mHVBJqv4${JN% zSW99Lxoln+GU}5c0sFG7W_iRSMf#NYoeko-y-Sa;)Darcq7 z^sutDU(WQhU7`^YgDT0_7OCOW>z>3?fkB1mJ=?j!&QWyJ!)=>@WNgxjk%zp^KfhSu z1MM{Xt9m0#I>k(7fQpms8PgLW_Zb&Y^H1kn)%Orsh_HHf~T{{7>BcNIu3 zXbRSg%BXqn8q2$IzRA5Izx5S<_hXGw3BzYn1(j-~s0~K9N6Q{)v5kFJ#$+XS-R8H| zUAan9ncu#^NV6aZIj{Y0B-r6Lu?rvUE}*juY0VT&yk(2fC6*267ikwhKj-(yu-xDM z(56ikquJV%U2FJ8eXZ1_$#G`a+5-Mb-u3)_&BkWs_SsT8-$)ULK|75vG(-Ni(FwPi zf9@Qx12-RyqOL%r(@-Q=8Up76PzSV{M!0xoI0`2%<5e*SC2Rk z!qfmHf~AW|{-TlhC`-SPOLJRf_9quWqJzSpwUQLhCuMd8C!K|YOX8Lmwd2g5vM5xf z@oKPUTEaQ0pC{`lx(A{m3PHS~UrW$-TISWi-}!H^0Gm14@`c4PN~Uo3;;r%BwFLf~ zd|$tZmk4Q_@PA!R(TCg!V$bm3rUGy@_`Nv(jpCKBW-X3mDt}m%K;e^BX$3}_ZCpm^ z1I$kKrIqZF+o|`L>eqvG8S5+~GXF0(TkT?rOo5P3*C2d{px-54qn|iU1EMs?5IdXw z%x%>ZPM1U%4u2?F7T*gtlhQIMjyn;PTwVC`&2QVWa+Aa{SkL;SE%n5!yNva+ z-R%aF5a+m~W>Nz>YsQX%Y5^zWapda%<+)1a$p-xkI}$ zR`~+WR2?a|eZ{*WB=fzAC0j!y>EN9z+QnN@;fVT-y z_H95w5d%eGK`B9ymX^j^MM^Co?E3*#O~~SBt!T77`YuGeob1}1a+dTZOb~~Q3T5fqp7C%I!IG#+`;mR+hf2^IGSSyj? z0v}%f!@I6NZiiC1{Z~Ii0#tnUoI;xuIYij@B8l$l8WP%^$bbCs`B@i=*p%+&zE#lb|9hOlYVo!I3 z@FdSOK{I_=`-@dObiG~VnHHC`za8uhva2n*Rk}B)0xj>tI>K-#Z z__p1esXRrOa26nBR|X8_n2xZ8-t26a@^#tGg6(goke?k?M>k66%#PZ|)xdzQ0hzGF z^BH94Kgn?Zqc>TS@V+b=*YDQjMdB;-_{Q5+IaE<#d~5-*Zc!#p%0@3NpDJ%L1qLycS$#ZKA|lciMKi zn!;{~6_8h%Zs6^0EinKY3=flvo!X8*LzL@>ZjR_n7CRG)jnM3JExE(ZB2sj=%SLC* zi*r^#T}L05sWgAl?Z@u=@$Moqx5Ry`zVX=xwq$M;bG~=m{B=*(!VA2Ksq;KjuO@zwyEn^oiW&*PT=RXnq;y6;_f{T7$5RB0YPgc zp!#HVoX>5%XYVNNIp4sXU10Ez3Uw8QtNmf0arx;_Zt2rOM|-CDI3kZoO*kwkX;0hv zv6D0CUvbp8iPJFc2c39E5*d*QS)-g&XUI(t?)@5GXn6u|J*AH$kk-0;ttZZ131Ox#y5$rSCX+$?fSZSLcdgEb2@E5CF3)bk|=c;4`j%g^I?e5FeK0f z)36m8c`ZueeA(i=TT7%Gp~p|&k3s;qv&ESi=h?n8%^RNg(ew&NucV=Lc*7rD6t}1$ z3LAEWS{1BC#$YKJP5n~+#}+r@crbkavskZQ|hrzv#E4Rxzr81@4V)_&q=5Am^ zFteL0QX{U1r;Ln^-)!KiD}nKx#|J8H(?UO+$0{uobKK1F>dR5=5m7TV>12?4Ii@kZ z>k$!=24>ac@d>@CGx-Xf9md)Ai*)l3&? zhO=D1RJxlwOre8Q>cIm^V_w1kaKvR#olNLOKt@jW<9mSuzKLVO_!BxPRj~+*x z4>+B`Z zyZP63Y)itkW=|J1V4gR!SxR$M-?)P}crpBW^+>+;u$@NJj&62-IYF6N8}NpxkD zi|&jQgE{B9iGBmfYfF{)oO%&}g_R2s8@PsosnhJnwhxVyyF3So#;hRriua_05Lah} z(80DGU`sD*kQOv$N6sV4r>h~^e4|lEM7Dg)e7u`k;#ldWqTZ_J<()AGchP*&Yq5t; zl3+rNz8{)BtQ%=sm?O&Pyog7tb_2}E8}klzADV8^+{Z@)Nfai)b;Qyu^YiuL2pqJA zLKtq3<{rDvRz|Yh&Vw8$L>Tm(D&*7fjkQsPdVhKG&c|IIVaVO!mLZp?D4KkiTf!$6 zq$$>o)qaDI1_*Ooez++YWU3i=HmvoCyk5P~mvn_L)<7Mk4#jfazUlkY)(97h&1 z6KQs_N?dE3f!*Dwq(~!KMG5P|0Vy0#Le1Wwt_-3^R;g~hJ-}_EEYa1W*cqG;{K5UO zTRg(_kB#;K6E@2=lbkG)v7?>-p$wkm-hv&FoXQ;bQ5US&_T9)m0Af84zzFK~NX6h( zKwhAyY}MSIu@v|yCTGgOQ+R|MQT~u30Ly(xadFcx@R2)cGu=3M+c3OhQSV{g9WC7>X_TnA6QpbXp*=cE_h5j@dWM5 z&)%o~0~qDJCd}8n+i#CcW7!1H*d-)LBiwSXm}hWaMH@Us&8j;tl_O0Gy7hU6OQ}UM z>*j;v>dw3CEgMkn?pFkYfWznzJ&+<9PC{G>+U`ko6xD4elzQ&z=p=wyv|mdKdze61 zzT7$f?Jv$&XvhEu5FP*oe8SpIP2o#5tE-Lg>TkLldDHvMkRGG#e|0p+*3*`W%l$Pi z{xsco!j)>YCgBoSaRRv-iIU#eax9rY<^geulyq^cjS%P$T1hF5UhnC8)8DVkXV@`B zj+9?ppkt95=*a$tR^=PA@ZFz&BuXkwmi{7Do@0mkvu^N5;EJQ$SQ^;`>5j-$nFQ~$ z@aE?&qZzD@#;x+7Iq$h7O@<&4GhmPq-M7Emco=jf8V0IX+Sh&_mLLhPY$0kLZoMkc z3BO3P)kN=TIBcmNKEe*kAJ2aBkQ}xDyy^Jjb8Zp7;(>ZQ)n16sxIgmoK0W_>+bLau zIVL946w*2ESFeha|fF+|uPBur9 zHiC)Pm?68-(F_rt+Cj6HJiYDZ5Ah3NTX#Qq{SI|)p+Y@9-2XcNJ*Gv-Wfeecl$)!g z7zSv%(D%$sXLx}okf7c|L2r;0Z~s#TWj#L%zM%o3^<(_{kAV2EZw%iP+p4sEYNqIz ze0EPj9BYn5^kx~|AEw$?g0pa-cWUug|E5~zuXBXlii2EwVeh)}wx-(?#(|PRKrCkd zu%A&K;>6J!4c`cuFP(c^vIU5b`&Zw&3ef{SBEO?OF&?eMs_wwqms>|kqo}s>s9l$% z{Ad$2tJtyK8!$}R&;`>Y0Ts@w(%hYvOJ!Vg=C-T_U9ungW-+g6FOUd3v(UNE7yzp9 zlz9o_whJOJM2|dzO0+lDPvSN)&98)XNcC$f2M>1_#77XVT`j^zHNxc%IPVvkO?NU$ zDk#lQEO`#@8)elRhp*-L?DAg8(!_ZyIBv||1gZ|o`|E(A)<=)ku%l}Wbtt#f2w6nX zv8g9+E$m%Yw(YOl3?*!N4pidq12=XW)^>MKC0;pM;>cU^FO?BKAjM>=WA?UuX~2A| z|3uGOU)G*SV6^Zt|3ZH7@YLXQ#G2E3`}G~n5_=%v&`2sUntt@d$)^9LxJwJf`UD4O zvzoQVay1^^-HPYsE$+HK{7ahM$%bLpHZP|SI035mv)}SsWMz>JJ;^17o1*#47t~P$ zNV}!&pjg*~hb+JkS;0UMqpB`*Zf~HMz8xO=vej`VgGj#Y)Mmi}F4fEW7 z1NiaZOrS6eOSu^gMyALGIB-|C`MGV`5Yh14T95j*yiLbmlW~o_opA633~x-fQn3f{ zrYL^qoYb%i+Hi%{EaXkirQ+{R{;zRs+F zbFFS;e|fpXbeM}gcU(EK9z)V`BXrK0vsYX^#U5pmTFs5kpS8K9o1u{Y8(0JGgVCiF zurKn%M_u+PnCE67{lUfe++v6nY-h><(WI7gn6AvVYn-}IjU)@79h!ixWTDS`p@6Ss z^vW~;ji=jNC#6Rvtj^F)(7-`7T?LV!N_95~*qK43 zVq3`Odc+e42=iKRzOA{NWigYa=tJ*4`}}$W z@o5$gT=_-&+0?0dVGWlZ2n^8EqQSp>3F`1tiSPHgcrYB3LJT-7+T&BaqU|TM)ey=F z^M!*g2sHh*$DsRb?UM-w!*FdY32XXIMg4CZRIHhMd!}2DLNx1S>;&P z4Z9)a!D^n%Z9|L5$=3jKber+vAAfN^-BYE^SqHgyG3p`g!e5yk8x;Eu)WOK^IFK-E zwlOW}CV^um`vd)fBIg-%qcaQ^tjKxIu*ba2Jv`ET^fEE=5A6XbA&YV&lc)Kk>z1!? z8eWZ%NCy-Q0f6lC0b9xVlStRut{GVS!?51ZfPL#1GJe=AK!()Vlj36r=958c|rV3JMt@ai;n(ICZ@PH@m_abps4J7u*xR@5j31eJQKsrfzc=-^(-O)U(p})ex?*0u#)8|q_iWs(8LD_f5g(~_ZJiV|H%z{6CV!21b7bIp7VUg9 z&nw+Bc<_h9SiTS&zr`t&b!_tH6KQp^(*&P0vUDr7%RMObK1wE_{O-ySc4lvC`1||E zr?}XxcgN7>16~xhb>E*}E~P{~YZ(*X^HA*hz=iJg8=)3&KHczd^gh1u=?CtcS!#pV zMt!ndy8iR1=d|I8fMDAm5Cf9zIxhc#!;T@zKOKb-=G!en9mg7D(=sErCJusXE%KEx zPydn|Ne~n4P48beDe;$~{apav-Hg$qj=~NNcpZCYk#ii2<&Il{RUW4s-*YfG0Ejn~ z`i}O2jH}v}EFf=tPnv&15Z27o+h3<_H*7Qh&DWJ3^ApaSJ!K+A(in%Lw2PB1kI1K z?kJk5z2Pn?{2$^OR^f%J2|N@cr@n2w$fQC@uycGR*&=SHYHRa#>lN5{C-9(Ebc(0usFC< z`iM@*K&!ku%woKT4seec51i-#`Tt$M1h{;@!kQLaS3iqo#RUDAo+dfAt<@(X zx5{M;s1*9T4Rc4X?*N=qit6|E85TcMBu%qdms)k$TPPat6@-BhzoD6LRF>Fk$daM{ z)WsoI=8T+sQV>P+JNwJ`CralILL8fkrMJB>wef1SKiFzOD32y+tSb*hn3FIy5B!9Px%IeE) zaur#{-!At%%q_sOmx1QPGghL_ zd@tcF!o5$^F>sA?rjFtq$g8R2uzB6WJx6x&>p3T<-%o9T>9)CsoYZuX1lzMt1rs2E z#5WGmV&I@TN^ZR?XP(DwNCh$CFxLP`)o-R}l|CsRO?Euo@<) z+mYC-UH|b}g6={=9a;sN$tXCVQ=U;WNuHaXVbLnQ)c~kxSlG*!NSBEEjv+JvblMv#45d)Jl+jXEj2lm z)VF6g$Tk`4{MbhGyHB0je*ODbSv$HfA5Jl6#T~lF=&P5M_nOJ&9llU0l$aAQ>A$)@ ztumaL2`R-MXkhzX9duVKW7D%SjHiM;InVyn3x8ei-^@*j40{ zInl$NaM*aDw?z4&M&hBUh~+muK&&iEEWD9kATcEfyiHOr$D!kE>lm8*@W%6~!vm!H zYEPedKLJW)dg}l>8#)CAiUb7<8I)8=3`JPbT21 z^`MYPsBBr&t~Z>2qPX*~9-RdTCr@Z{ z>r;%{pm}7|FPkH?!$o`LCA+09f1S3W*N2} ziP6=M32#5{Asl3TNK{P*C&$^NrvaaA*dbaJU<4etyL za5(Rt1Ei*>2BP+p)?%DD`4{POvK#V^j9w1U_vZn&w2LNkt6?oGM?`A1*UU8l8_(vC zJE694oQSQY(;R)-8a<=M8DzRAS`UuRQeEx~pcfA?cN%*&)RP zn~KBjcVl|oH~TxSMdOz<3WseY=L2lRHu3;zZUvAUhVtmx0iOFKY%`RH zA<&s!2bmp+U+2~gknhQG-9nBAqk|dhN=fJ?`}&&?dB_0YPgBH33@C*J!vH~TV^cU6 ztJ(Il7Gl6SeX{oH4^M+?-aRwzqv>MM^zsFH>-RkCt*d8ze(i7B8a)&P`NPS}X(J&( z@lBf2b>GLN$nRPaT+MldDls>AUv$ZE4{+Wwld4%fyS}v+8_Rf_!rE zK^~_bNW;B{b|xasUH4Q$EY#bm^G=uz_--|SWizZF-{b}E#-*mBU3PL8h`z07OB3lo z`Fq+g&L1Z|TO`XrP(+eAsA4VJ9EdKSQoU{mSl!UTd21bBnsz(28K(8g3tnqpH2i{p z@_hn;un;rs-s z&A3wi1*8jzUaEP!ce*!2wku8H90TQi`n}apgL0HW)11r3$Q0 zN(t1h(4oA+F>m&L}DA*YhZ`J~0MsO@P5W=`RB|6H|nbP{& z60~x_LGDt@1v3Xh18vzWgHuI0Kx4T3TsLtAAo?dC>{T^a2f2hu9raOz{cQ^Mdjl>< z?2ipz*UYHP9X8%zD4x9lF4n4Z9?__1wXylU)=xQ?e%}tYS3YFZJA9-Rpu&<6_2L`4q%Ttx5~I4{ zze0c{6FVuFXlQaWz5Pl}80IKy_>rZrayi&6O$6;`yG3B1FFop|gI}$KI)mc>s<)^by&i*+ z(IN2H6Y;+E4T`AJbkL;03j^5GaLozgu&ca64(R@JQ`K#xwD&fPQ1W(7_b&>wL_9A7 z%+QUlm|j;^nA)(Wz)8$|ya?Ypntp&Syqzwa8i3W~Q!DBJ_j;Rkv0F@zyb#9`19tje z6j01ktT@C_fgn7+9{3VQ*ZnabP-7Y|UCFe`C|iB93et9sGA^t4k8tGhvZBUL*gWd6 zYIS(YCEH9AN^yjnrC!H;+tACFlfe}3FPLwkf$J!`6H1?#iCpwr1&N!YUmpG0B>AtH ze_AXP+?mW`(J- z6UGJk?a(3L3sfSKa5b2Z+91{83!5wvDkJW>GBw?f5E^Wkj)$_emnLm11N)pZQ}h8H<@e0CO$!Iq=6*vVe51f2zfXrwYz{6p6=230L_-RCj0eRd zOWYSSrc*T|9>|x0)&z{UT;%Lg@W!?XR7yi#5BIv&R39n+`cC8S1;P1%p?r|iY3fcr zkxuyD?;gJfn&givGs-yc^*z3ekF8DJfe$VnPc!c>8+Vw?42E{z5w>A=%q*Fl?KhU% zsUd}=8AXnIi8$|eol|$&xx`~?YSaf*u8pg~o^+UM#LPSGy6pgh(Rop~t9t{oOQR@P zHsInFnt$RnbEt9GNjVkMx@VotUnvu@qq+X>&)j3!mVpjJqfIYH9Ka48`{@tfR@Z?T zP_V}Zf!n=3MIe&pHhh}35N;6D+?^K+iexmPB=*ik&S(czd&6ko2`RJ)Zwa;ArP-<5 zba$6zo#$18kYBrIWonu^O`titUE6E*6_lAgqF@bnM`iNH0`K28CxAYYAn~FP+y45< z=U|Jy98}F245BQPqb#a@R;Lr*c`irn9l3n~;+hNIQ4H>+q)bpg{^6|#n;~w>g=cmK z5`|UUdg||))|_Qru=w>I-mL)RPovc$0-i6GetRRK2ja|+Gb0wCHYUJ^^JZamf07Y? zrLbQ=vbGR7G8Iq?fdRoCsE%rRHBb(w^QN#30i{4W5W2Ge=GFiO^)2KAFAaSp(881e z$XOD|a7PVs?=7LsvqnZ57*nEHfIqK``gD|ok`cxD%@>V|fRe+QuFp-9qgrZ%^Oo=z zkxsppOU7{oMj)q{QxI!6VxB2OJPS0}Wp)4~{3WTy+0K+ArLIDQfdkR7bb%_faXd6_Iq9mnNIpu8n zU-hQC=@5XzT#z0LRBTd8UNJ@MRJvjFm})J85IX&)t0yQJbB!ZMF)_{s+_pe&$Rfpp zg50aQSDkohJ&%NV;wS=b&xU6`OZXKHY|n^>RO1c@sl%u9d_FESNeszGFx7q@%Ws|? zDAz*-+mBCyfu3glFiaAG=2ho=1u6^qr#U$OzWi=tb!V?T&bO~t6UsDJ>@BL>eN(rK zrUw2@Qwl}TKcl$$JeNa9Aq3P3k81pW5!-D!pzMeS{?T*VNJ&r8wxSKS)*^_upTd;h zmyYc%p|l@g;sog;tzCsBphD>{m^t4H5ZPm2klYxY0DTV36pHZuBmzs&B3L1afnqv1 zxPQ1q7zEb`xH+KL&)d-Rd$o$VH9QiClO~cfoa?yG>FAm@h?|mCcr}-2=rK<&`UY6k|tagK0gn#`@sO+ zJ=i(yM_#PFm6qu~<}F42f!JZXTqPj>8!_%P#%j4-t)&;RmKHPHPIv$PB}c7+=x{+)_;9rPQn*~XLxE6Z_;Et^|Myf> zTz>7lCe9y>VfMz#aek;_yOpP_95<%eI2jnbs&4zv5B_^r(c;UQzScF8W+3n|{<4`h zf}}^}qF7yYeCz3Y3O*m5q^KPTwPywyUud+YTumw*8KkZl)_?hz-dz_YzX8(LIWugm zSGX^T*3xof0r&pzf$v$?rzMwTsdluCHn(i%dK!Vw?oDA~AhVMOg44-t4VUz*#gd|( zHb`F*R`~Yz9pbni$)Mml-_|L*Xm$%skV4y-N(n3p2tq25^O@24lk+gGR&;iB=&pRb ziEzO<5M%YW;r8+bHiR;VAKxzio^tpN=TjHrBJwcb@&Yw;ySY_PsCoY2J^Sk&ywj~kEni80uxdp2est+ww{6F9{D}} zt@4in{eN@xl=rvAO~l+dlVK8dTjl46>;7`)r@h30_~+-E9UN@U)3r2KA^*)eo%lwv zexl`_s3FL=wLQ!|{2YX3hvCitZ9T64a%6wn2ki7jEJOshn%8+B{g2mt=5vKxt@FhA zc8$+LhvDs?qR9WAA&JeOxkFZ|ox-1w``;Pyada+*hsevj$<{(zj|F5K`G10R>U7S;n*Vo%cIY4-RLo^I}PGxzrK8S5}C&t;<&O5vt6^(f89EyMAaW( z+La~y!SGsrX1T>DGv#6$`F(!=jshbaqo=eVlm`35n9KL)jN8Y0VKeRiO)I^9VMz9s zii&-MJYD_0H4}ywr@Lv&C1u>1%FkvMv%f?Q3WYu~s?FJ&lz5^7pC-)OB zlh(RyPTY1*b7kP`?K*4TZkoS%+OrJH?M?pDSnqod%nnHGzxmmEs%Kr|wbLQJ=kAw9lS2 zr8l(8BkLO-c{V}MU$d(fehgLJte@u*^vz@LVSMP0#4ijYP=l9du8Cu#Ha#kDcjYp7&m-Z`RreoaNT*b)t|jJR=&R|l$#XQUQmJT z>>k{#FYJ=Ei@5Y}zxcg7qzO4=xEw};Q@QEMyLY^q-=W5JxgDM$+krSM)YG4C_Xhv! zGi}82~VW7r0+(KBSw zx)DT<34Rfusei*&rC6RMywsaFi)lDQ!LDb=6m1(`V4U(?$}f1t6e`Y;*F-XW5O!z+ z=Na63|Ga7pbC|Dd&wP+_vNIvyJg>XlN=LGWUY<)(url+& zn+SR6?kWYsV$3XW)S7`;Y;-IY*g1{BM{2L!gmFn`lp3<1hh~F$kv~Y> zyZ*w0f^4Wnqn>l=bJn^E*};moa#+w}cr+VfQw559u)g4IWoC#*^y=~lcP zU!@`AjJyXAuVgoGA8T`~+)B<4>qK^iRZJ?qQGuI039Vzu49IVq50K}npMRv2lB~F4 z7R9hF<3Y%Ct3@?mxKnX4;GKb4h}8udxQ-Zm4YyxS46#fEbbHO!c%VFYJH%+DVS~ljX!XNdU=;N5E&l#gYe5xwM22kkVMXovgAPgUQuR!OMgv## zAmIG^&_bV9I(v{+5b@A&NoL(=>A4i+A}E)}g5gMPbK8lcl&oOB!!!76W|UVov|O*ovT-%~n+!2{>n z)9xnHtf|k1NG;j*!?3SD-+_8zdZQnuz4f4-^G`?Vj-at< z(6X7>!&B9jNggG5y=!Iv#+vJ{;K-^wIzKdK!cN~P?&;omLwuD;`x|{UBD^3?(J$;j zo5b*}Yj!`Q%=>fCRciNhWPgq6=~17gX#bMP{MP7(dW3?NzWGQfO_7Y+I4&+G|8@ZD zEN~aF6<2bBMxMF%_|!&)jI3iR*};+0hKqiWb|2+EQ}0Cj(2e82HL^uGimHCYy=_F) zg-eWU6ONWm)=N;{Tqt90DK4CwtY}X1Cos-?IGB9beD))@W?g#}xpAqnDv{VK&KmEqKdv@wO&+r6!yAgop`{`kvMeBrh8 z_Ly4YAsZ;_X|HK&cs#atdHunJ3g-`(5`TlAV#)wxI~^fxX*wlk!`r66_xb&{T~RCG zeUs$wR2~i*o-F^WTYMJx%uJK|O#kY_zSx&wX$Z`^svpH|(Li#(auwfoX5ZtQf(@t8 z%y!Rkczl&yV1wr)9&3+R)+P8%MkE}n-02~}_U#>5?mOZS7Kz*(R%qtx!pgWNV>pTL zYUJtA%~YQxj8mm6Al!`$=4)ohHF+~SOS>)-9CQc_6#7a!78ow~QArdDjs+gfn7>TR zTI%ewY}??z4=*ggHPN0Oh8B)xvwhi;i{-Lep^f*s zFz>el6ESx)@4ZA>>q9yV4`28}R&Z_bdfx0W@mUqsn^|QVw)+{5d|{7Pq#0r8rRwc! z4%v*Jis*of`I5izn6-}45KOVnVknU0<@i~wA41^{ONJ)O;>6ti@mHL99fJq^iX_F}>xXr~l!DXn^gW)4H^TBfjV$Ey=bsHnoX+!O_j7KSY^F9Gvlz$3NuD3>fTNYMirTbA=UD{9x`=b9!t_U zqwe*hsQOZtre8s_LAlcm>(6D-q%^wL^u4m@KRIXMzuo&tK}>$V6T=6a-h+FVvHxCK9bM>AykXY|zB}0lk#r1>;R-QO z9CQ|yD1^LMGK7*f_(7P_=1+%`z`U-fP^A!Hb<*!)Tvm3b&nekTQ?VW=j$X@SpC|8# zi>ry0jh2)&mr-VjwACwZUNA*y7~!Y9e1lJCFQKMH!nDLGsDW}Akpz;$2frwYzvjZ$ zbQd<~bl3bEjyP*2iS8!eH171K7;Q4`EstdloG2lyqm0d0`!#w*di|H`#({+@>deRe z-DMj#7}HdDNi}GbLo@U=SGN6J|4MX>3Dk3CB_hV!P+gp3Z`bmx0+L@@4-r{jZWCQ5 zXc~Qev;rR0&)TnEd*)|%nL;=EgN|bMlqp8#O6@(}c7YSy%uS0_G>+}uXHV$_S5?HY zX_>x+VsQJ~ zd-X+%`vd4RV0f2o#$?CY=r(nG zi_Xuon&dLZSwbccztL_p^U4rq9#f0n8pN5hk+H>znSb`2mn?gi>iM8F$sNhG=OaTI zr_)RU?46Tay~xdE;jvd-9q*rtVBiWsKRJa;qrZdpzW*|gKHTqlu7UvX#~bAXUDlBs zGxPokUAZ*DOxkAS(;jOFYB84)O@bUY%5MxOSy@Awao>vGzKR*87q2pPUD=wPzDii~ z;M9^CRaBY?EG#s{ANtWU%I=la(6PDOKW8R+!!ov`&oUiUW>W8;7*Et;C` zyjyA6ql6n&+FK-5EZQ=MIkKFH)e)pYra~-WxZ~KO$eP!^)#Sf5n?S zgUP|AV4gR;N#xKmm}?Qk(A?$fI4fYM5W86w$7!ekDzJk7aU1?YvwD$)e%4zj4aEt4 zhP6UwRxZ^t<=(Q$UT7OUBJ@<1rfmexiEBAF$bUZioF!&k2>FJ_B0(~|h99?ug_yeQ zNP_MMsdT~cN+$T$)g8?iL4>;`4_PvIoN+W7YtxmOq+Z;+CzQm7S)fYO3IvW+BxW{T zra)H+dXyWg-(y6dUF%(ff2CrF6JN}t^*5$#c#~uOSbSKYQ+hPOpa{p+$+y;ta1wNtc&yoHxd1JhTk^dWOs{OVI4Efr zS^Sv0QkpAVcms2mE4#!|GHlcEmW(T^BmCe?_IYV|&LVxA6ju@JXb3&Af!USw^&Rp3 zt@xC(b!6<*u^=$5MPwOHa6)r%Y_&t!f2w z>+EIEd8Z(!^50yxwvkN{Kp3k=AcfE4bfK2x#mgNErD6Kn9PV1=w?69azM*J|<@&nw zXb#ewl4@`v;h!zm+hEgKY^e{y}C}RZ97CdQci_^`$y|_%${V>nkh`$`_ zJkwKFO1z&;R>-aTp7p9!o9Yz3{KU%y@+aI7RX(SWRocMOKiAI~pczZf2wq4HZ#gh6 zU$vYV5BODnLNd=)_)sOHH|th{v^lemt2*sk&l1d|YF;37P9dn#fg3hAxO483nC2)! z)80aqlU)yDt==gt?--qZFX46KHFpHd(+}D(WwQepC~|bkj?*oas|r%3@n$cRfBsGn z9-M_xH^Q(#ic~ElmU-a!q@@@)_MZJne7H-@X>;riv$oHXcWTPHx@Lx$CM~gLTlQN; z?ocn&VMjxII*m)1`)wBT&2Hb$n%iBNj9L&F>^Pe|{yvUO21>_fHfoT2Hb2p1KN3C@ z22xRv^@uf}H|p+puxRDVa-Vr3V^MBQ@X$C2UpjN3@R8Hxn>6)Irx-u2hXZ{s8D-75 z#-=jOoK@yN@pn~{lzSpspsABXy=iJ1X^Q7?<0gun&!?#t*u0Yyl_k<}nM0g&M=(9@ z#|^86(O|K_TQ8inrxSPNPh9)wYkh-&haRg?#~_X7%sQsiwQ)j3ZIrC{ZK3)?N8}( znIbY&GiRT_K^OM;1}voCKHtrv)@&@#BH8^uDtPEKCMezgrIISH{M46C+z(HefFd`{_||_;HBG!8N_6z-Bn5 zG|%k~|J!1HucGyDuYLTZU`SR8YVqDb8&Uu5_r?6qY&(gp>{)$I3Do>qIQ`ulmk1Gw zJqUmN)6v-9PtAk?6!y3;voJ6)6sr6R{js(CM-y^Cr6i_P5yhfuJC0TOrR{$;k@v*) z=oMe~NtK5l|MQ8di4nW*IEmm?URa)U`}Ds(VD7(MY5T&?y28=N8}ZXB6aQxouD9Vt zU^gvo1!K>f5)Q!zK$oq=(l%s zV)3{aB@&}P6Ym$qw&EiHw`Ua_w;I=EC=Bd`-mKb}zi*e{U&TK+zY}J!=}HLpeKb}f zN(N`|J14f8{ZL(D@)nuBz$iH3 zP32;l4DHRjDg0KXTAjpn{2ik!y3}Say5=-Rm$XWe@uf`T4^t@yy7e^Po0hY7i%vOZ zT#NnpvL$K|G&zDiQX-i7Yb%jdkKPHSrE^0EiXWUGEoFTOCU_Zr!&t%=^vg8L1v=vG ziTM$ZimC74KmAhJo1x5*r{5adpEo5QniiVW`GI00&SOBre^#DQE$r->5U)yNnetnJ zcpy11RYt@?YM{_mnLLuU+f>)Upm9v5>{fVq_@eFJmZ-voIqLwy=Eqeyb3NuEo`hlb zPF5Flw8r#}`r}irDpbQ;TMd`^4bG7<<>@zvetzS_IhQStw?yY<93`}^9nNPS*p(Ja z7wn2je9F2vza~!88?KI?S`&xCoQ*mXKXj$5s?N)iEUY59qj;U+W!oL9wMoh6kY8P8 z2e+>z39U|Zac*|oMax(0!lJm%dlGM@FBOymPBfN*Dyu^>DX*Pe>g5GHRK2|7=py$- z)oHUpxziU}Ec0YLH|s}TTZ8ckNg5Fo=}}wVg{CS`B6(R8wLXnsHWww~UG9v3P9|vY z-5KI?T0SVR^trF6{=}eH`p7UfvcrmQL{VCUKU<^1M)`#%VTL$5WXe@Ku*oDauT(zp z{xy0ySpcJ)!Rrx1R^>8DW4i8uk@B}pT}v{0lURp(=er#f+Y=xhC@r>-s+4m9?hKSD z#kUsytD&o4B17+Myk5)ZMP3v~jB^j8qaNh2$A8wYIgmE?DyDg1mYJOs1ufVsqGYQ3 zYrEDwANImr!eKd611G)!{c+rMwT?ws@ip`kZrM7erq#!*l^y zyUv}HnU|@kmejWNCIZ$4x~XfJi!SE-uvZ6|x^@=fgWOhhiDlWE$iTO+i z=ChWz_I&dfM>5n%MjBTIT^uuEhvBi88#lcx-%7Ew(?~sIBHkS2mvLP@tI)2(JH=o}4{BWaTxwlB^z7t~cTZz>&5#*`TJb1J z`wl;pgA3+Nfi@J5e|gw?&3U!T8}f=@QFrx3*?6- zOOc1p9zY!IqlT=O#%Kmjj45};u#^H4Z=;xpoLhBPcSuJCnWZ8{071YGXEAo||M8hm z9*T`stQU#L9-JOl+P%n~1hY2zUawf?RizwFpL0SpIGsCtctvY5$lE64gG(-Y zA8iTsqtnRC_2*f|TkFs540T|M9>o$l*|;NzU%2?E_M!2h#waKfwViZ*c#JNX%w(d% zSRrtW%W_k?WX7YJ^IM+jLyfSjM7Mk@-7Kj_i1|!t33<27Bhx1iCrC zT_e#mRah3p?330)Z=SQmC(D<=MbcD3Qlf@hbs0;a9tcjqQZlADB_M9Yay9QS(FwCd zd>)fKj3T?d-;LaQHc4}Ls-d7)L-w2LVI=R<_oG*PvPZ`$5eJkc=_p2|zwTcb@|Fh< z`I??~B@S6-J&po?E49?0q;AJXah7IzkE(MbpNs8cs(nj;%HuFL@5kP@nMtw}ZxAn5 zVBv!1AIdg&9TEMy#qF?9IhQ!0J!%Zsl1UpQ`0^fGde&olcL!Cn=JY%g=!k2P;a-y|>In5MO>_c`^}3US|b zDE}d)v$bCt*8#D?PIvDR4VQrv^HpLGWo@&v84cxP!_>SosX3C>`S+)jOb6jXS_mG@ zdgl^sCFxU?-T-!?^Ii{Z;*iZEdB@<8fJLKB`*5KQ*RiLv4xzEmvoT{Z`m2!NMUnj> z>!Gq+-w>yqlWq08zOb82Ba6C0Ycx zxKoW0wG`76y|D~WWMzXs#VJ60GVESDbU*fWA<=OCG`!kUY;cnew7#56(LRTfOVy6w zk>nr6-7Wu`KO0Zz{rTyfA+V?YNW7j1zgD{!6?M_BBSx^5hXzl^YR})ish6_9Gj)!k zv9ZkFHwnxrcYM@>HNi55BCh6{CTJa+x$8x8ZS7*4^(ilJ2u}wzthU6ui$yK65=Xy% zKO0nRxCCJFHXi# zthq(4kGd>!)82Kj-p^V_eV9V)-8Z*Y=rBRA-#@p@@mFfxkYu+}p)0pEVoN``io|Af z7d00iThH;)W}ch=1#;W5GeuXWBDq7_Wro8TG}H8a^*gp+X~4eX-5)O;q_PkkKpoUN zwsZ!(6N=A6`eXPxG1>iQntp|2?t5nN1I*juSSbPOt#aFiQcjzpCF$+HvI~nggBjSW zczV^A%#Xia@nRFCHYJq4Z%mU{NxnnSap$U+~wgcCCh{EdP6-XNKU*?2yI zt{aPsT~~qjK;f6g!K}GULy_y{nZsVY#-paRPjvC`FIU#-u-%IrHu85f$Ush`qrT=F zv_t;uGbGl-+! zmQ_s}OUyLYO-M;r=j>d{#+KZ2n2dp@OPI_%7oIVu zu!#2tQ*b0@wU^I{CNxssM`?kBc?T&S{7wpzl_waL-*$p_q^)a`>+t7->=&;2;F zGmHS$m(llQphpBG)S1w9sobK?wH!tz!SU*tah%Z^#(RVvP+VB{NTP{6M`CrgJz8`M{JQn zg}F&y4CR6k^8HYP7OyGB>6^FDZ}O3SUBo%5ocWq<#5BQkcPa=`T1RC9G>ECd0HdoWnG?2y)nx*-F=J;)~((vjA{QflnS(|VVscBciLl{ry>qzU47U> z$Zyann{j#!=cy+%;cR+&V4`9zx{4)+zPFSR{u=%h!chMPjoMqV7XNW8iVyYm1cX!F zTDoOlGITXp_1xTcom?R`>Qv0<&-Hrh7xqI>18F^I&5uA=>(|>My1l(ExBrQ2Wj+oQ z>DD{D-}L0fkC((^!7J>xnUDQKYSJEU7$bRh&#&G4Jis00a&6y;)0MnF?|XSTM^Sow z+x!+VvZ9FC(~PkVO16!$5n*!J3IEEe>W1Edy^hGU`&(8YAa}F><+Na`#d`1F6~_B( zoQkCr5K^rFFBHPs{EDUggCO~Jr5|;RaE>mr;42vN7D!pOGM#@FawP^2d3UwT(zlb` zS-dd?Sn$Tp_?3(^{+W%C+HPOqSz?6I+u}I}FrS10S_aSiTM#iR{v-l&XTM8kL(fbR^S@OPLQOVtH!2z%LfM{{i7}K1!aWm5z z@dUwHQxiVt!pt_4bpGvps$ylE_!Pgl=oRPvAANFKb z>+peh`!5F~RLchTsak>S(MSEt0i$nqH&)LIt}7OyvF!(mChE#Ym?o(bdyFOE=eIAm z9Oe(7M002!W{)_j(;IXOZH9PcY{ZtZc{hzRYd%&yt^DF0*|GBLcvnG_hCn~$E3^wp z6(7rmt<<>=+ZtAw+uJt!TououCbF!yvdQ$!h5AD!=9s_%HJ_S<2*2C$cLLf4Jeu!cX8`LL6L)wYHRT0#BDZb~OF!=3B8ZZjaO(TDAOyhPx@7>yyDoxJ-~uTZpbfTaE%qkSwnQBGaGMPpn1i#<7sk zk)sPqHmyk2Kwe;i1wsR@tY%=^%`sR7bb-bi<%%#2;B`bFj1u zlTF!gJwIl3@Qa&caE1p<`U_>YU@dWNW>i{~cU_j0b@P*Cb&58yeB%4ZKww;3abCz) zjLaL#R3|AQw1R<;}FI$qIb+?fG0yLfML5T|aLiif8mIil7su=>3Uu)Znben;7Y}6ZB_? zbgK3Wl#i(b#RC&@_J>3vO2mU2X$WVURlrg>eu&+fV}vq=#AirltJypxw|6oZ@H-ga zm;sJm#^~>M5eHYTK{9yKZcpB~wFQeu*gMx8a3g4sdpW8hNXC{VH%0h?wm#t6{PcH7 z2qwn(z-TYHm_&+ztgD6OO{&tWx*p4yw^kE58g)08`(xf??fz`v5JxLh#Wsgz$^L|8 z<;UaHKW`H=z94(^Ayj?#Ei{spAI-4u+~0|`ajNm4AE_YQc@i&PdOS<5Ya}SCkZ`-J zQW-6~JSzE45t|VAI9$ z$N2Zo7VR||N(7S(E3ZSfo6>UFcr+sf7do3ZI+Cy$lBr2xCn1Q0y|GSZi~K;_2?kMZ z(vUCdHAPfuc~^$$nbqh&Bf4sRwX3@o4G&xUPrppu^z$uCl#^T!m2BHAbPx~GBt43A zvIGsLH4NQ-WBee)(Y4AnuyVZOqPU6YDY!t(xd8nJ;)Y_DT#SAE^_-i3)tAENuS4i=%Y(c-F1ZcSfOe7+Ssq$qIf;z`F4N63frk*vie2IduA;& zUU9Jm)Dgz#_h_E>J`|Vw8&=|yLn-brG|8%SwQG8!kbo%+`OCu*-W~*cycOC2w=C&z zCuh}#S;QA-;fEBA-=|Oh{;EItu<*EEQ@fT+Lb2<9iRFrlYEj^FlSy{|y0<=BwaAFO z{OPSf`;+5Bb@FpE;=<4RRmIN@GsI*J(+^y6QtQ74{WotvOtkHyF|;$v2Fw!2Tm})6 z<+;|T**Q-9L4GcV6_?#|KDk+s2g=9jwjO=IW3q0Qm~O$rE{MW;pu`U z_}5Fy^ImF55cxpx7VmG)<@oTH+wqZQtP2F+q6lKNF|P8 zYf_`EaSc8bv;ALuGI^;E*Ijz0ZC(h=mE<#<+$V37g3ZeV^ziEK_BFa4A|p5!d^T=z zkLL6EF*}~-)0+$u)w*nezV&{tvzcWtGKW#B9K*OaN~*SN@<|6OfFZgjVZa|8;hwJh z&^+48y2Uf;K#P`CAKgImY5jhas^26_AvZ#!6Pjo)|CUny%6=6MMRi^SnDdv_ZyQ+u z7tpm}>V%TJfpUQk>r6}ScfI_o$hqLmfs>rcA(o@bKe66+NKIyZx{Y_&>l>v@Tekuh z^w4cxHmyJLJ010Tu6H7q7u0vz?*`mn-AxJUYu;KU%o)1^?XYCg1MFrHTXMsU8p?40 zYeKI|qJoie!?EwO$WF0r)d%YL@Vv)LAt^E<5rKW%V9G%#f|B46T{G*CX+)%WW1HN| zKB^~ZOLCcjfR?rEP?xb# zxQdN`105Hmt|Q%Y^nh!hd*c=Hi5#hF1iMM9jA@U8e+>JN($xzNjgKu1B? z52tcjjzZek-=EV{r-p2dAkMrF;9X937cVU2**pT1Kl5@o&xEcDPLGwEoO27BYbA$d zoH@0gB|g<>@BX0m%PVb7_)NJ+)|tn*jYpG>saW;LSjd)#L2%^oIwddcNSN=rno{JT zG}jkbM`cBmSJqA_fBH~;&6cJAYxA>bkLB!-@&*tR_A2kA*Tk?-t44F=l-5asBKIb zn!}SqN7-M|RxA2vx)aZDMxXKxIV&yaq!&(4sJi^(<@l0J-;x>2$yW_PK1C<#XnNhs zG5p1^ySD5ZtqY|WOpm2idnFun})9NOeC?>+%xBS`_>LhCT1C&at``Qz54ho+sT~dLJHlsOwnDr z-CbYRSBPDO=yL+n;O_S=boxA3dkLu#J8uI{0@kNV5najIovW=2;j@aT?cyHjr|?OL z5{1Pw9Rix#OdBq+GaB^bk`!Kne0hdP!sp1LEm;>fJGJ_RMk7DUnrY6T>Yj2@iz3m@ zR(54hP|xv)@!$IHiamNuj7(>-i)VecM(_WN*MT=+4osVaB77pU=h^AGIJ+JawJnFj zA`q#aZ>GYytV)}$T!!^`Ne0h!c7h{Yjz2%llLe6RmApuiP#CXP04j+Ys1@q{s*&Zw zx|eMti$H$xYX3r|3Mz68WiJ9|Hd4+k$d+7jVXZ!j)61b9#Mg6})E3HXJR)H%T&`)kE%ZiOmn9se2PoZ03~;}F63)0yY?8%_6d zMdZL$jNuaG`S#V-JOfhi>z>(kty_q=W5Ug(3=NzSrI%ofv7ALNHfXK|U^Y3wP*;#~ z3GTlEyy#pDAun}oIOwcQQsMDf3T^b8xWk>UR-rlS&!67#W?XF$rl-a9CuVPV@k#g^ zTIgzhsM~Vi60Wp)_qNqdaU{@!#Iky1MYrsx57)i)x)Y{vWm~6e(V3rlTQ|}&lQ_J~ zVkR~FNxDc3q#XO`E6yfJU0c#1J(>M>pJIpSn^UGON$>8+g?m)AZw)4YWHZY#`G~BV zSd;U>3d_nqILILJmJSHONq#31+qrpththmk-(R=F-GJ?xoIUfaj{KP7+~4g8%ACOH zvQK_lD<2$N>F{V<*~yz&{=4*ef^SkH5BsM?o@10sRdFL_)+TiCsi5$aKgPwo@87MK zvjh>W&bMjKl@fO|^&*#-O+T*`>sIu|Ir@Iq6L@|6{Y%q&;q<&5uas(Oh(IQy#il_P zb?WP1CroX}rDaGa$~rgSHj6zTCd&ss!$xL{!#N!yBc3_MkEgD`^H;lV1ato4<(9KC z#TBvXJ?rth)%b2k1e?esR7c1Irn|6kt;S`xB8+vzRU={C`C0w4-)H2i%;uvbW6xOE z_df30kkhzq9*1Cz&|8L0$ivyWf(t(0SZyMAcTL8-IsD&Nv} zTX$V=*ug~YN~;YrNdYNWuWAK>=i;S+z@}IY)k7EcH8wKr3cY?Mo*)w{JXL_|p=(tW zGWKZCB%_tq{5@_V=pg@2E>;T9At@QsHXOQN2FVf^#EB{#8`@QWU{2I?Mdpd>B0A-q z^|hIDdV5G7`UYyFujy!i$+?9X-&TYrv1`<(Xza}kg%c|iU&3I}<8&+~MtPQNr{hTq zQmfc~XCzq9tf3Hp!X_&jz8hkhHP$Z&bzNOp13Fe#z)D8^)D%oS3Q= zmEHhT{g;L?2su4WZDVd_HA?pxy0W@_BH?cde() zvV4XgqoMvCi_hnjk$1NB;?Ke-s>9VX+{Gg>2N>cb^&;WOS>Q=eHqRH?Xmv7H-OApx zRDQSvv2_e1nzub99;wPbA2}duus=j`NUuf84Yg{k@<}>G9DocJZ8(G#yF6`e8@<<0 zT?@~jf(i|AnUp!&4OpEHIg2jaJ1}H6(RFRU1oEr7TXzx zdK#z5I@foW{D7DH8y#xZI*CA-Z!6dLGW9W21t~j)KuSx{GQbAOYdEBk7D=osORS0Xio+T+CXv`zTetw*=BF8ln*1L%w_{?m(vRJBs z8PueH7^vU4vipQ^^xoB^^>Ajvhr1&WSO+I9Z)_NqnfY(r_qalPE5~q*^QV* zRic*#IATxb+3lwl&UHga3zxm{q!-G`A31R`Js!5z*@j{S6Z`(5p|jzd>okZI{~f%P zl>;~@>?F}t8~iblF0GWc(cnaW|JiH#lZ8yGV@%#3mh5n}%m4w`mKWOoqUaD2xg#7n z95&psIY})xSXnemXsJI(i!MCQ1;ZWu-G(iXV>JL^pJ99#Pu86Ut}=FhN!!|&uX6)- zj=>ysL}x}Zu3f0snP`D=b>}`qAN{-b6adOx5g4irK70G~*({sy1)FbVv^}z#An<{kvwDIKA zJwcCxrf5q#8I41bYoL`{;<>lDw8L(g%{yHU<*LnQ>6=2jR~K~gXQzq}&Z-|B5yn4q zhC*O7wbd zDl$jXp?;+reG=k`ROz#+Ga3!3f=xmp-}sy(sj74KX2^0Z zZsN|gATxU#7Rl*MNZ?GQ32)9J_P6u< z@VcKPE+*r*>Mr1jCV>_0agZpVlZf(uyr~R%FQT9qHniK6WwYlTq^ik373KKtO4Su zr9(j}6O&29;V(syg^uGxO{V_w`og2r_9oC2VNJ7)N@%A6LWK^$5cg_sz_s`~uJ+-Q z+Gvxz*zF|wQM|spU!s(lN4nib6P{9o6?9M6l`o#}w8}jh3Ib_9`b>v?RXq+xz9hiq zj5fA0i{fSL9Hqmm1Z1+N#d0=h*rwAziv|vD)%rH|Yo7Gdn*sH;i|~{TOyOQ1_vW{r z=yPTc$fYXspKp|!@K(u}BO---ev4OUxKBdeIVXIc^ie8==uydFWigDT?L0LfQPB z;|}@Zo{O6^^_Z~*sL_eo=#ab`N0?`>b5443mxb+KZVFvfuSQku{74D@@kQ3vy8p=n zm?Mu-SnR@)dWE&Oyjzx*h7nrcbWgELTcPwdQ|RYUnz07D>_>JlJ7qM&BbJRDBYYH| zn-WlRR*SVM_id&;l0ONTy+z?nasQ-&i=cqS3V;s)sP;mN2OzAl_JndXj1 zuo}hpGe9B(UpZw*H?}Fth_s`c=PBLlk_dWgC|C%Gf$JuaQat{pY`Zdf>I5fD$}PIG zE_}i1|9?u{HU5zx1r+DTqPN0I9%Fsgl|om@{af578Sl0VbuJ;bX?_NG5CDLgDiELK zSCJgC*mI5bm51B5Iw@j2DDMkVE6GvaJ~?vNqujj1GmML}-Vkz(kNO*R)vSgb!U$s= zD4RUU2rTye46Muqb|-SfPQG&;X+=5j?6826B5ArU2a~M1rX@1j-n!XeZ?{ize3?0O zbhK;w8Cc)(82Gy`D;uzt5^{a?Ro>T32q9$8vE4aK5JgjPL(N>!%a8B{zFb9kP^i`h zk@6NVoB>EaNT!@^FTTwN5a_1!Jv{_4M zIzzD(^<9d*u1Eainn}3RqGJ!+ZE)qR$B)?cCTn}Ceev>31?;h5#A*He^#{{CJ()Pw zE=RTMX%$ocpnG|eL9Iisy<=B|>FR$9D0P!Te!ef&PT;K+A~U3*N#LKkMR_4(K~=W5 zJCfN?z4pY2wbSnXDj0uFu}>pBtk+fan&}G%V!Qwg5xhu!3L;LmI4B=eJ zV9OS#ebF6C4l>Lt^mpRnA+r9syi*^axM~dc7@y`UK*^{)CTr}z--)j4Iz^wEm!WIy zFBhTjIn<+{fosoNAyGT(NNrS?}Fq#P=9gA$i80v?xS$lGYg!D%{pU#1~CYFyFq%7?5 ztz`GRF!mo~!y$4u-q*N0e(y2#`zp??yt-PN2U5RgA_yT)4(AhBB_? zwcm+BMAA65jg=tsaBlWv<7yGZo*!Y1VMyD^sd899>XfelQX%WlS&KZ`{2NVi4J>yx z)mIljqBnqnTO2lbp*>;Cr~W!=6uUWvF3m&hoJ`4#AQJ}GC%jf3rPHA|OKy@}TJ1YX zV|VE&Gj(&Hjurm$e41)C8UqT|xE^6vtmNCSs#61}$d%o4j3&ns6g`*i5s^^P(w2IS zybf7A``FYz8b7rdW*<_~Hox1XqX*iXyd{&{3E z68tC|6ay%ia!C@0=l=pTFGutYBf2kb&}&#Ing_qY#PBG$BmICSlUS#4&%LRS$G-n_ z^!2-KXF7sOfG3>xnI*f)iHDQtIsP^KA{&I&OUX#`u19Z8(gYDq_ zV!9UX^+Za8WXnOflLWV?m~D2PdYa2@Yz@N6~x8m)7QkFqQQ>d z!FBo`JhlG-oTDLzbq2Ak94_ol>%rKhtKw|$V+%Y4(#M)FaA$px%=59bDZ zmd#UlKpxY8PNdrON+yvI&NULE4}bn>#!JlWi|f+Z<9=tuw!ph-3N_|kS(7n5Ak)k< zs1QQ{5S~?PIcN0Zeq8H=BUr|DEA}Zfn^ZBUXaoNfkkTCE$F?;ZVqe~Zj65@Dm1O;V z#!L$4iVxaKViI1(c;w~$bl~ETqKvh~4h1kHBjemxRi&W0R%VMDu^tHHU9+4B?)z>z z%)xSq#Neysr?U~e%Ef~x9en~TJdaJ*5T_sa6mO~32R_9k1#X5t89dcesDJ15Zy$KU zS0CMzLk)ivL+tbU1FVbYefa{>ta6w&#jjm4`Sf}V7U4_ndF>eVk_xl0Vyp}_Pvxw6zs+$L@eHr@4AjqGiU0Dky=^U@we3!1>Ziq`;X{>wWJ!CF~0wDy(E1 zGSvnz{J=|bDAozk#H)8uBRivGVq$(8g@?dKokKfG4Dq=GGwopCKHc~|*qcgdhy9*| z{Yj>XGM_X_z(3s%r~ddO1Xh!rxvE&8<9i6U7nv`{Y~o1PROPIH7z)>qk zHuG)nhA~!K!e;)Yly=PbrO2gF_cl=czf`YxtIoO4W-?aSG~#ccXXhc9l!E{D_gE&SegJ-bQ=TNkpaMk-ckOk^(o6CKdiFHR23^kO|d+-@=cUn~^|sg;r&uMoB0hRb!{)6OTOh< zPv+L1*-J7!mPDBbH;yhNA7ug@b#C6C6)%8yuqH`gj;A?U~g~x!p-*hGh1}se9q|W!!niz8N06G33I6%4UEN0@Bt88F!kqTd9P`_|^Y(pZ_47 zt~_s}ovv`xDDH0n(xmE(u-3(AG?=vd=GYie!88y$K3AJAD4@6_EG}weNOeJ@H{`Ro zH@+t1ht%y)AArsNc*vbTl{|{r<>>8@{T)=Ofp)$KT0S+muG-im@QX5p;(T)|#zP2v zf{7|3!2s9ak7+9M971~z!mR0U;B`>g!gR`bDdoFU&tu7ZTCN+Fq}KYMaqys6*Wig` z8~+(=c2>{gI+4z&tnMX|Kpt-}SB9#{rNR>X7_{sr$(Pr(s@LLN0oVrMEp z(T5bGW2JWStd71BQW1#`3H;AV?4{e%DN3C(ByA%??i!d>mfubUo>5zlnO^Ng^9=7l z8BfCnKe7d(kxbzAb+ccY+zlC?$b6$fj-~mYYsp7(jAjQvO6=ryarx_nP*6lndyUbK zP1SMhCJov3JPmZE)~Q8oq-dx!jKJ*@Mv$@^?B>L-MkBuy7)s&U&jRP{1FZ2&D|2T= z)FGEQ>e8ZmZ&wq3HI+1XTZ#pub;Tz_fV);#y#3nW#_`4-Pt$7uTh8sPt-lPCI;bu zy)J3+fw=;T3P&}WerJ_-W^uMpTsl-k$C>6*lX_&nt0qKl2UO|O|QG8GG-RN zb>}*YR|1R3vDJJADbs?HR9}UKRK=S6@x%?R1D|*rKUX-u4a5E zm^E*z7t)AGC-*^YegOMeVCUAFtGlEColEp_ug}Dno5j^aO`_bx_nijoN@5X0fvcxZ zWCk(#%Glq}n73F#?{0lzk#x_9HCQp^(pY4F^zKP7!V4$uJIQGu@>={PYJH;XSZ9_z ze(LFpLi)n3$D^i_a~zz`l${Wt7b(ocxcMql7jMIfLE@@jke`9deTrGI9pG-a%0~XVzdG?v~HJ@i*w? z$)B*2O?c?9;f4Bhxi!yjjd;{mpP5M0?-yco=;N9J*Wq-?%2QY?WWOPq#ad6@ zF}2BjJbZ?4JDN+Q;CR)7%VgC&tyY?VgThcR9;vg>XoEGUsod2TA74B*3;Dhn#UN;% zwQwEU@2yta+Xpt2|p&^beq{J*%%|3t>KzeIWeg{89i(gE3oe;s&D zgZ-KV{6%_w*vJpAS;EVs{gfMupp;NWzWkhEL$|z8pDUv725(PuVF|Ku7MDu@8btc_d^b99n# zCqmJ|{@RJ;t3nj)4LJ4d&UUKfZutCJSzS`ko~FlP19Z5X#JCFbmT{YHfI{W)lU~zc$+12`Mqyc@{Sr#GC^h&4%pq6{mv`4zETA#`C(St=! ziqMo09SS4NENm!tk%Ufa#+rn*a5REbXTA+udY@sLVq4=sg6L#U7upnafCSr-j7XE# z`aX`}LYK{*u>#vW`+YTS$_d#z4^NK&GzuWkwd_+17V$%G#hBuK&(V&#S)X2%j_l?&y-vZklN5 zF76e&3`)pr<5_Lwa=18L8;*4J5R9XO#o&m>rp8R7`k5{C&%gfQs?rb!MI);l6;moA3O)NfZZrLMY)9 z=<_`!)ioNEF8t?JnFMmzS(*RNpQ95n*pGD0sviR_+z;zGhb4D*Wh`=~I`(!jg)wnv zKpfWD6fX8W)Uj@BKy=MzEY`%D>$(<9`$y4Q4bxmcl{FiTG*}xiFLD=W{7!nUqazTY zzKsu+B%oQ<4!s~pa`RF)b+dEE2^^r=?X3#{ahp8EpIaJpIKxKWn5c~Wb@%fY=&hLu zkQiT>MN^3DUc51QzkX!8P$*i9?wuxokYCjLU^D2+NT*SN{dChCPDS^Z-SJ6c=bhfQ z-RwBu74EY#n|fpQ3+RB-<_LLpL0t&+?YP!Iy1>50u?TvCcf%#IYaRK28f$DI-X1fB z^VC&SFUQz#g&#*UCum<1Z?Nq4Xk_y@>kY^%@1PL}dY^;yH}z=hTd~c8b`%`(#xM;w9Ku1eOMBd`-{bAe_P zP+ysJZt3&i3iD(1g}`b3r$gTaB7sea{%KD{zbsrIqa><98~&^F(o^Tybe^qy3MkFV zK$_c~kcLC-!C&^Qk@cHTZ?nb)tWORLTq)hGa?lL(**qx(5Voz?^Lr{agxWbZ8|V&^ zbK%HJAv78VkP~V#m?qN4cU;<;WqHC9hsRD!AvLJ2z+wv7LcYF-J3?N*4&oH+hjQL& zm)M>l_I~+QlTQU{Zri_~e#_94QKx=6ogFpsTc~RVMBv_R`{Zin*u9@#G zZPB-6-`&!Ze-33`=}vTt(u=&gj@NIT+yxHYFSP)4QRuFS>CxjoGj)r(@ZR76qG}ltWm@5*dsem(y?INV(=R%(W3d7Q zQFMp|zvenNS)g<0nD^3eslR+cmblO>T~HE9T4&c_vg~nQy0u1MfiSw!((8k#H3~o4*{DC(&wDh zz2|A3b@djwgCXy8yO>`4+5!8LUp7;UBg1b-6pl(jN#zLMbxgW_y}rgb?h%D!rJG-z zdI9^P!%g}jxv6P;PadkqyT_P2<+G0A4{(^qjC=CtN2{6tHv4i-o2j8*aPgC-8Q2G% zome_6mDX$7&}B#)x0{kC#(*}*I%_{JTo z3iZ4CmC0L`6zT=yN>CUmR(oWL!{jey8CBi+;G{O8qFdGL*+jkCgO<%l7)IPfi>*YI8Mpg%Fzd6UQ%ynDPWnt5`G(Qa#7i%`Qq|HmUfc(IP@3@qlR7|L`cXDEAb|ijU>t9pM|L37DI@c_7jJa1Y18hvKNu$(^ zJhrDXC)GvN>o?XbunQl&3uB9muZOSqN3Im7BbB)$GOT$O^5s_p_-Or=q&U&`n7L+E>17+PE78U6jgiiD*uh%|!^|h;J;%Ec5qN~1J9`^4^+wIQ z4B|u0@oHli$E^xpfeFeD2av6ssu54tmNCeLeKR99^#!NWzNJL&n%-7f{(&;VKcd$@ zW!xH1r($Oc&PKCqLdA@8ui@z{>#w5AL7D5lH4Yn&xQrY^%#maG!CwJ$jhW-2Po-Q{ zsa^vkSL0TeIGFTU6*Q8rg*tC0kFy`Rv@X%I%`#n`>w_QK=kkE)x0 zS)I9G)`%EjQ#2Z18nd4WZ+Pk04ASpdEci>hGwg%=%CFz}Edw76 zTaYfD!9>%DE>9a#=zai3G>8d|Zr@pNLmZkOp!^Yj_9x3rvrFdIEzZ<_MUGOMatI-S z-8BHExrjD)GS)}BT>d2*gagL2QB2J}bbz4aqKD^zYmRcox&8ymijtQ~)dA6~^{+4lB ziIvsJz(caHSEOOE_&urFd%t@QrxbqsSY^EiahhN^o;cORQnRNX$_=%YTx}Y=Y{jU9 zrLL$sJ{+LyJcw+iH5JbWHMBN{K*TA{rR_-xNK{fIyfzHpN4Vp;Pu5=6jS&nJ)5X$C%-$#nre{CLuvFwOSsVqqfm^G*N`rk6mlFsx<1Uh~@>4?Xgr~6$ae5Dl&l3~rWEMs-H^t>vbG22$fQyDV zd($`jAC2e-jg3oO*IOUAW4Cx4*Kqc6c4elkCrr6CMwMI!sFuN1^Wht`{1{>k8wdY5 zPFQHC$r0{=2y43rk-z5te7n$P^75uW=xNVup32=C2bH6#B^ldYkBJ|Je0;7I&`DNvF~-15WE`x2h>z>O?nhE5Jy*kz$((3fQ!67A zH)D>Fj^Do_4np7XDST=s)X=N!vtCq`_pIai9Kf6Oh+V+MWEM>WIsDi;wDs>VQC8(n z4O%pk(Yn<1(|pSbE!26&+MkWc_6Mi_T*^l5N+WVa(~Dj%@lnBh3X9nN(8UTHAjcL_X*%Wd9yiuJ16@@uL4(|I^|3E z%7L56CsnvfYRp_nl00U)ANRiPWuE+3;ghw|%;~fg8x2Z_sxX>8T#C4O777i0s#@M# z&R4Ie7D}=DY*FZd-Ps`|JSoGbZ{>V_Max zQ?-?VwR_|dDD!ib)E2eTE+nn7RTxC4rQx%MJ?)78dFv^UKd-*d2=n~s6sz?mZdpYH zNT`P1_XNl^w^+`m|&xZLlb*Y(ix?>FccgzZK}Rv%_kf6EfC(q(i$@S8SNN8G~I5w z-m)S>RikdkHr3pAb2Oo2g@tx8DO$p$s(LeWj}Z89&+m5!RNP1^*^1wT2R|h2nzKKM1zKCrsECz58&N2Br1eYw}%>Jf9Zj-0{zjq8#wP z$fO+-L~=d4Dbs`erpCsf&dI0@@{wv9@E@v#!xlM)TaQLdbm z&2&aWKIFV{l?2VBQAs^$Yndx_P>9)Tng>3NCQyJr>OIRL{|wMMb{tUj5v#pmMr&@! zz_u*=kH%r2%{M*`hl%lLLgJPDcpZ-!Q-hD*K>6DTckwbIw;9tCIohGwRn~`2Q~8N9 zYM8uAf;~7$6jqcwR+}E5x-Nw=KJII{|EuxFPc-04GsJ zFt@fTvnQ*Qa2FT(AwKH&``+DO(_OYK5e>TurCRiAN`-u5)$goN>1+P+G1iugY;CN! zO{68CHA|?^iL7U}k2tRU?r7(TY3qX%9X7$Vk@^npDS4;xtS6IsX96stC5d|AN?F5^)zKX z>8p@pcy!DhAk*W$;hlrOyYXv>l#ZH}m*klz=#Zep{@M^9I{nU1uO zUz*PO{{hDT=PDLrJ^$k*B|Y6#aPxF7HM4RhK8F|}?H4TegfnVu!OhY|lRn?Gnk?#1bDDHms{|Tp+v%~wnB3U>>)od-}+llDwg`jV&UrZg#z_J zy!5BHiBUX6Lv3X4=Ccpg4|)YP2ePYp&x%BC`FVvAXY~rdwmkx2DEGpt9kq2KbMcST z1;DeTrSKVF&_AA%p`#VpN6a(8%rb#YD;SWp_4whlP?4eFETGqOqt3O zFQ?w;etvuTQDzL5QE)_Ef&CI{AGwo0SJOfX0lb*yV04Rp=gZHtL4$J$IyjyqB%XPM zN98WC3P(KYIO^>M`O7c4uw^o6&(GR?Mm(W~4Cf0q2^T-HMizp85H&nCaHv>^Nej@?~6 zEgv00T{m}9x4kO)EYRwWZL_<_)GGwAxpKa0F`pT6W%=#+p`e1#k@IL`K@mtkI`0N7 zi`=<~Qx-k@B|?Lt%~ZB*)D9(o#gM{odf&022^*fa$rqU0tdcjY%Y*KPi_aqa#f4WK z?qj2APNTc_82nOaLmqyEPvL&VG!9Wuif`Y-{whakP+r9!C#%XmQJ?3esTJi%uTJojyc(`8;H29OcXDps+z6`4 zIIfv5(>fw@I(k19f6wxB)Z#l{NaLTStC~_1z-Lx|>y~ASp3vkmRCkING;Xp765J7D zE#Df=&R3TZ=(|zo__uJ}JOv;DSf0EKHuLQZY>3nxmTmv_v?VxYF0^{|FEELBJ!%ZU zM}ARJvX&`3Rjog=`(9IP9AweS^zQGK6sBRHr4SA~dAw9`(adjnDn{qHr=~WX79Bqu zR?pO|rsYl`Pb0Oc*++zA=HGd+Mn$l%#^IOxmG7da^;(G@e^i>+mNsf)XxfCN%d+Fy zC0Fxn`Ij`dn=6idB+A(Yvd?1S?nDvAnMsH>3kBN5o?DTzS8NTt~>^{rNy2e zx{>>i>ZOu5Ge9M=j!z!H%z&>IvA^iHDYEA-!ZJMUl2(FI>8rf`lNTMeA78ZVkM4-V z2&ZpHtO|qHbjfS_3=UJvGB?=5wcb#Qo zG|DUSD6}fYWZ8}~oHg&3%568`CE3~X?cPSA$ELhSTE-vSA4B#p#5~W-JPSm2gm}$| zU-aRlhHc`A_H<~BnHlEx*NSFMY9n(u+R=h8q1oTzLgmkKRRMYs<;lF?>y5X@7>X3P zMFZM}%7fp{osSl@ENrG3KaWul#lf<}?G6m@q;(*YP+xng#{wm@|D6Ub{%o_(7n!A_ zsP(O!3%0tpSm)a<`gy=-5ld-1FSbTQAU`gT1-iAC?F{1AQ5M?2ty2BZO zg!=|a-#@}{GB41ZT<^SJ1?rCoyu^Vqz~3K>-o@nC&tPxlDV712%BcPxAi93 z8jr@#T~F2|K0Cl`LsPFtvNuT&F^IJMA-z3L6(jr5%^Rj)9_o8e6vc5I6e-f1Vl;2U z5!s?;c>%dWgbaxsB~YqI>FrMrY)}F=7#%I=Kby12k*Ol#^DA~k$;LAHi$qQ9@XSDM zZ@$Dojjj9h?;S1YgNCz%>WnFQSGd20&mDB*!0e< z8AzRsi1wXspU845CtM@_lguR<_+cZ%tK$E#_7z}Jt!vwWgn(cmvH<}LP*O>0M3D}O z0fz2oXrxO(MOwN$hi({B8ir6DJ5Hka0e+ zxx_j39QUN**~Ru;eZg8e>R!e=By>961HI8iy&Rv}BV7@VfNN3(F;Qfqb-hsiO~VeTrV!~STr^H7AcS{=$GO~LJ>4Y8ol*xK#T~FX@##t`cRxivmJF8~N%{R9( z@se}|jEQG0Q!=tLJ6rsuminp$*~mV-TSCt>$u1rOK@sat<~6^?qy1n3U)_g)Ry0L8mQBuPL6WfQ0%dkONOuLS`>^LIt!Sjj>0m2kR4>ybir#zQogV9G?uU z0Oi)sgSTN*Qa#$Sbp>_tl9rBfQCcSJz3 zn1DDG*3mOW$CS-zkv?$N42V|x?ZI7>aW^7ZNJ2J0_OO2DmX6WvS0f54Qj4J1hYO0< zqE__;5cP&FpSC@BYDOL0iEEGIq(rvbO|z+Jc52hv*Y?Ab@CG@E29dU`^~XZyB@1$A zWoHXxjG5Yvv!FQu|J9?)w?>V&#Y&X+Im*e4TJ=3hZ9c4zl^qx=<*V~G99G2(%FY(V2Q!|4%An67|ghCV0_ z5E>D5tdGO}kZz=(qZU=Vi2|yK>Mma5WqiP`l9a~C@BRF~7MS6Y)ZWP9HKgl9-l;En&GWSE@s z>Ct7NvuJqOkR)!r&S3Z%+lhxwE)%?n+=GDdMk_wxLJvAZgLsT^vRtAnjkE7`esDEb z?T~AAx^z-E zL*eSN`*q^*306h_Bk}yQ9x|FxT9tZDGlAF3Ma52-~Wz;)r6F|Sboe12|9^=9=_S(LVdoGm#ltZm*Fu1e0y6pyLP?HyxD@h@`eL;AoH3vwn6y1^%f4u>HWgbtaSCX zSMZL?wzSfCvZorQ+RL zc-fV&ui`9)2pvK4ZNpqAD-dU+1RdjKeS)VNI<$O=DyV(G6`IfIVjBxu92-0GiZx3Y zu8>HiRrPS($}asSBbsEIGbLS;UB#=U<5 zzUVZ2uJk%YaD<>I>k)kqVZVS$-b+mg&+5X0Phg?lvcq+g8-*}@oL7_e%ioxs=9c4k z^fYB!r5(jzN5hW8DHBCGj@h?>h9 zU@S9ar@J&y6$Q4gQE)W9Gu{qILar7JLm^G$S?QkIO4%oxyk)n$fXfhA2?Pax#uuu z)_S;cCIZTO<2O^R##F6jhjz4}7@kE2`PL^2htU1Flp;m+f=AGR{y>HKiWdqFW`5xd zo8(By6-tex=5u#{U(R`W+8^c8JHq}Cr-H`$%l)+EbB_1<%*W?dg2WfwG%6qbTYcgM zFQ;UZS<8KjJic9biWT2$qHRO zJi4YSXiZhyd;f}pp@HX|F(#~N)2m@^&s8hd4c3X$LRO7trU^A$zD>T}C3~pZu$K)h zTkLUeQ_#>dJUnUDCJ^=9h|)Q#Q=fX(Gfj<9sw&~<8a#4-HK(L@GVEwxqD*)7_}Ji* zEKxd6`*FHsSLl5Kg~jY8!8!T{hR|#qOsD93hVTbhGGbcIo;IGRU z{4+79ck>Zh;^^_1r#oVav&Wnc|bv6#J zyKTljzL(Bp>%;i;i8MQcDq_@}=o>49(LQ|CfsKqnBye@h)6#RwuD|2Y)xQT6un&6p z4+txIomd9{2Zs5>G5OnDM+3}ru7&*zw_54*b%8;MGa~Tark6i#j)H((KaUw^f<@oY z@1Q*%h}t+o*2>6A_S5ACQO#)~<;x>QU-|3P zm)B!CzV?N>k6O3Qu?lEwd93Lw!nV9Hqy&s*1=k*v3vChE1Z-mQ-dGL>y&JOAW=$9k zw3x9h&V8CS>LPfu)0oviGaW&}Uk`A+^7j(8u4OiNYJ0{$+Fy~4i0sMgNtnx0bszEy ztTh?l8I&9L%tbgN?X=eXNA`Bbwy#zpA=+WnaPR&PTh2mfCJAY)WH3BJP-66tD-6n5l6vWG)U2E6kzZh77~0O3c?0~$oreMxk=X5SF$%rL?b zp@`*6ovKCe6FvOVO)=Z;UUsre0;wQzQenRsy8d)8@H!s9Hg-Rmn>OQbYv!Zz5Ps9d zIW!o^BqM~T*l{9(Q=rz&L5JDmt=hHJ0<7Eh=Pu^wlVY05Gxn<50l?vKOgpQyp1dpr zxiSc+wPQT~9c)&o#hZ9)=QS6#Qi&@;pBI}@q^Fy8Rc=RX`I!BqwOTV-Ns#L?c4w>U z#ARHhXJ80KXv8w_S(&7(*bGsNs!h3aLLu7f%?<4 zuW#$tkR^gF$l>z!W#eUy0f*|4z=nXK{l%H8WOm)KH}LZL6@NfrBeIJQ)#$1lk9ZH< z+om9bR6G1>MK{f?fi#>wpS!jLLG~j?jjvas4OwP};6r>Xw1;cBv%vesih73G&lWvc1ksN#Pan9?5|dq&_5}-ViN~HT)s5*(3d!McQ)O=lC41~?Nl3}yCs`!9 zuA_dp*CV8^!=p45Vcj#~GI2|vbYtK6HS#aBzo^bih2~$kWQ?Ynd_8IWNL4v;dVl@M zKklQ>^|NPUuMY}O_sigR$Y+)^qeV?9kfnkEn@g4b38I9jR2wqq`WsOsPF100_+r>F zZ@2E1;YY1X?`*k=_Uz3PA9GVrfG$csD_z6c-F7i2Z2cyp=Qok1JhAw;OS+be;a8^O z`WG5RZ^_V8p8-gRv>iwfx4byUe{_rc)V;l!se@KRMXCRe*~B9chspVhaf=f&&Xnctj5|zPkk!$Jb*M!7f8BSmC=dMmwS83nW5MsypYS?e+!Y@h{HL zwyAtUZ;+aZ2rg4*=B*S>ICqD@f%bYi<~>GZ_cO zC)KfTyWdu;=jhj4o#G=S{=-@~NyR!sIwxzPU9`@NJa`RoH$BbAbo195yOgi1#Cn64 zh1~m18X@KWeN1B(ql6PZ>l}3_{tjwIFkW-m(H^gMQ0)ol3ozM_20@+6Y9M@53( zuG!yX!NOhL*}0}bwFX=pyQ9dVeAnI;ZFx+|Wf96{IjO4bbMWBHTMK7%gw&fiVdaoH z!3T^`x721Dm`Rp8LSw~eb@GUL(sEVw38M^Yf@4;AqE^CYgK&1`<`=!Vt+^pXMrobL z*|H%mX?jThVM19K`)!6T!rljKfgXy8J<|L~4<9}>&|wO9co%29AB8nhY8Yr@!g~B| zQGOrcG@TyOcn=6VWK4qU`-4+dNsiiCH7TZzs|`hw5IJx^d$39+S@3n)C+gOv zECQX^Mz!{vLp*6KwI*XUW?BOMW6RKpgHIfT#oA^cFCWax?~Ab)rlqyGSPielv(zM} zsg=W>4>g86^dp^Rk$MGb&hW9N0|ANTS%HVd7ZX%Nc2+?0d87E6`!BB?xiNnQ^;gx` zSI}J@KMonKcQC#cpdT%wy*e8U`#68t7`D~l?Va`Ry zKI@FCk5G`Xr__hy1GM4Cb*9dWWDgrTg1_TT4<5^`*8_HJ{_t ztP-Vlp2gWIU4Ag$JR+C?DVQeGlXo5R$!%Pic&fxUtnwfR943$!AE&a={4=*tZ`B87 zxmgZbw(YUo>@;v3x}S1#F*5d`DYX?LjrXU9S>a&Ai(r*ET2n0V=>8`cz!R#zIgvEy z5E>+4;*Ii{G|s(Wgt!uw7^?l~W51WZ$HUyP{}^ZLAduZn+YBhpr|cOR%vnG-iKbKI zhJx4TWU$Iqj~YWJ5R2>XFu^e`Eg}82=W}o8Dr$^MA-IWe@bartJ+n&!96X9nrl>KW zCf{sC-Y91MjUEGpcRS+mp!R!x%+tdJ4Aljy47UA{yakVbC$6WqI(+-rCkD^2RF@T- z-}7{hoj$(6GM6qoLR&)JH5HN63H+WB^%t!a=I#2Z)yMQ(OP6EkZ)29?avKcs}=cP!>(L2$H zaLJE73^K==U*}ZcXe@K;-kUS)*~Bzvbhv)|v(ob(l~t82P?cm^VRlx5b(Vmo|4Y9f zF0wUlKafPnSn3rSyM2PC;R(uu3Nws6JLGMiW>U7YDnz(dU|&`EHPNVP2zV5W5l4_l#L@3M|VhaDA? zq-{NOh4|0u-Y`$UXNTBP4HKXw6k#$%g|Op3hV1QJ3F<*J2dE+mEj^>Xb@9zQb12x? zUTQDU@Kv&f;!L5sJ|y_?;opgvii8Q)XC^0KJG2)gRpug>7(qRph*|2fg`B~F&U4iH z!wq}7cVxc-g*a?iHn}^!E(Vpci5p*M{TEezfVx7^)5x6B#vF{XTf}7U-`C@NAVQNh z6y~op4gI1NhBjQ{n#gyJaytw%v|Qwt0CaK3d(bb*2T_$i?P=T&=E?C?mykVpRW8NI71dcVI`tr~D%W_(ZULG+ z29Bqi<*RF77K*8v#rHhij$z^cv_-|nq^jTi`mU~uzWEoKVzWPHHRsMiBkPQXT-vAnV1SW|JxLex6Nv$0L?3L_u4CZ>z+Q9S5+8xe;>^MwRlkZ zTg-Frlf1lj4AsCnO2;2|q_@$XV}mi5Y`jD;eNQcxwsJv3lAns(R+k=5(`Z#1b`+dx{BdapjssxQ>VpN7!CBgY(LYgY8&D%}pDA2!lzRIiGFS zT^?&;_1veY8Oku9DFPMwo&JZlT&~Abrz*G8(lo6bYeN1ww_QRy?li8ICN%l+qm;qv zk%%dxGUyTAnA_!zDdsY+|GeBWu^pwo86qx*Fk&41vJuFcXQ*)44^;gWeC%$9`n~+z z1H&pt;!RVmrwy*aV$4j*Xi2&qT}3fTKzcC*UnU))!YFfMpl6TWi4J<>&gVS)dIGG0 z+D)!7i!YeexK(cNHZ%IsCbdO-vZv4Q!o9ao*7PVC!V0x#2n3a7YpZ=noREHM17h#Hox~E3MRu zmVV=v9@AD{M9rQkjkF%9*iiwU05dRhoxGGN>#g0S(Czv_O>S~D zXhm~TI-7@)wa{^GTQ7vT8oC4eU3cBp}D%HK~oZFvtJ=(Mv3i)kBi^JZI!B3?!7jrrq13DTKt!X3^mI;S`}8`0OiLwjM^N1?V(XQT0>)&GNcNB ziqtlN$7U{zU6Ir5t>LaVkNPy7sTm|{kB%SSXIfD7cZ}jttgsAvc9M%uc=D{H&bUr# zq7kA#!HMwH*d$$ZeyS_m;NS#^qzR~0)?<~sgr6-g|k?hpRO2wh+$<9qqbBu6wbbO^0INm z>kz`k6rCItG*ix&SSRNKuaHP5_^{c^{G)#RPclr{jquTIC9560WoKp^tgY#jaD~w#ox`QB|vFE5Fu}0Oc z2F8#C!2z`@f8TPNNfDeTj@A8v3`3B77wp#NLb+f3k|$k)eNAq{GI8XZ8^xVd$K5;T zH;F7@sC`~W{$;HIklOH#Sy4R42wfwZX&GMy$XSfBj8h0gmnhY=+M;)-(00IU($}`R zXUxH~_kAJTu#(^KW`2>C)D?FC#dWHaRFyRf$JaGPP+$x@2yoccSTG){%nThC&VlF} zV=O&%^MYsG>}du+YC1A<>`w-p(wV53VW~H-#DnggwyTCrR=^T!Ace3Thq|VBn;T1< z8abH73M7jz&sP(k)~V}HM;H^ckuJMw^Olak8@P=i8ux{5%m&3vd@&R45jD_S#U1$KP`*IWO@2>U}Q z{QJ+oqgzY$zY8uCax4ms2@NGH2M{ByUarx+i)r$nz9E6K=Uij!_FlmB$)_`=6)CmOfi-kHeGl#rOfPd!>d>xy7* zmWYy%)%55=!)XU+?$`?=;hEhvJ^HguhB4Ju5jzIvaa&rZ! zfw2{Rh3nLA>rrN_=W7&h5`OF5RaxItdi_M%H2cw*2c>xvOdn-pFKahHMp*8wm)`I0eoD?*VCpqp8@0R zj^5`6yZ20i8HS@Rp>I+*VC2XGNpLM}HcKQ1Z6eR0fiyo7Yn4HJZvhGgNGv?b*YOI7 zs0o^$4q6}+ZfZVyIH4`k1Cu4v&~$wTS<}zUGqrPFJ+JcUj_{;L$lW;W6`5ANZRiPkC>&OsU|18S%$A3DMD**P_rSnP*l;6E5XKZXImi`E;$DYOJi zK*lgK(kAe?)b#%En|JqKN@}FG3c6Ljc6O)W6Z~O(b)13Bcvv#g&4t{7& zt2S>k2(xahQ)^2U%U=j>2(!D?AUPiF*51lWU=?$T^fZOQ(GlPv?>>0{%Y+j1?ptu z%xlfXIF>QP4scmHvykuKJyovStBU3sP3IWd5Ad*j$(npabF?s&F?Xf2#@P=Z-i*m( z>_h&1mQ*kmY=VT6M`U+bDXM%O;g)j4S$l!F;clQY^omUt~?^rhX}R7 zJAyFs#5P#RVQaMjp z4COpstYl=TO-?s;A3JT0GteA z${Sdo2GQ(EANOvv4ZXvwKr3@tenmfsHGx;nA#O|BI9tHd*2FUQt@4TO*UrA?Mb{uQ zNB1`z`)F2^v~pwmO*pS9L?TC0#gcjdAA8MX31)Uc&_FPlIAE#J3Ok3RIUy;I_i90JxU{<3Uun-RelvSq{9iCql{V5tr?XfYM(6o;Jd3l;D%*Lr?Zcg^u#bO+ENRT`%Q4*8|QYF zC*WzU7lXVR9_JP_2v*3***c0K$Sr#;Bfc?}R#dl;2WNW|$95^Gf-M}LK+I#S8Qp76 z*NFAn^5P~Yp_zNz{dWQr&nFSs?_Lv`L6jFttK7flH*!meK81R4)jL(XHIC3+3<)Mw ztI!XIYGm|LT@2}rB>OvtpQFodd>m+cHCU5-!8B{@aTX1-P{l`$wd)hMiUJUME2ELA zE%Uq_P2SRgiUiQm={9#hv?DzDcolJo-IR96@Yi-s)IE8%wa8bSCi$R}Q~&d*;)R2o z-|yhH_!N01@who0ukJ8ND=FM@adw?(uiqTwQjUsk3aRYc=kA^_O!XDghEJ{9 zr<+%LHYS7}{&sBUefgZKN(_(3bbFP-a#TN}g2fj8UL&@_EuZ9hkGMo=x?_K?13Bsy z^p-K+^$Oc@PuU4kh2E3lTj1+<)Mr)NcbMHAvOYlUZF(;I+H_69PRj%K{35_%sEV#IL~;h7$0&mZ~bKIilZZftBGM%HfM zyo?qF5C$+}gENb!B3@|zpr_libOigW&s1I?EgP&>BuSI+q zH@UoMNd}!K&4W%W=_Ph#(%m+#>Jwf1)&L1XY(FbO#3ot+R4jom@}h@hq^~?@c^UP7 zDrdhhkbk=JHoCp@)@`upRS|;mDA8!+di)Q?FH=OXGI5U{XPHC(;G!RyAShZ|sM=?@ajmW&1ZOWe9ZQxtC*R?Ra0ta_*~Wo}UETHwR_Z6x%|XH{ zd{w(DVZ#LWF2RN|7_-^SN4@8@??E@xf53acOS*r1bz>V#Ss5*gf<6k{QK_e4KnMK8 z61gFV1r!#Tw-@u3q_FsqK}+vqfMQXT9XBsf3-M3k$g%BY*<8#&X~@%|*f`mC%D)22 z^)CKkx1U%X==v>3bE;>=FCHo!8k}tEBaGJPCb~w|U>=-{6$J_TxbFCN+d{3Ti|pyJ zq$Wje$<*!P6xJnwCQSNhmD;M}=?R3o$J2G){dP4=TiQ_QLM+U+34@g!e1PpV3han z&|)S3V`K)2hRjQ8r-T8y*9To(b6fMtS*`B2LyMQeoAe#=d74k?yt0^|Gz*28bL!%S zObUn{-K>bWmodBqXWNI4@hl6)s-=+IPWe<*Cm zA@omZ>3=i^gadC3JkWtkA4|oT=dJj8Fzd;!8TjJdVeKm$8?17&@ zeL>j4VLdNr+Dmj+F>i^k@`ur_wexkgyk23({p1GY@;PpB>(S5Y020O3QK9eNJ#yVm z+^fu~R~WNoj-cLDFvr$~PIXJmGrX~t8Lcq!wZ3VYfp5%^zthd2uli;!l9+CFj0s z1stmV;{*;^V6D-m3{5F*w?I$Dpo(6Es9#R(}%xRmyWvd_jxr+M#I)OiLoiNhF zxf~6kcF)Ow{)L}3;^&X?KE657tD+n!{@`oTG0)?_+%)+=!jod#Z(&-n)F0IU_bvS^ zS6{rnim+58SutLd7C(Rfz#jAGlmB0jf;Ij>;!JkAPycH@@DsuGdoMW3{ua`Z00z%U z@Rr3dY|NiF`0A}28l?J*1E{ldyLexVI?r=6fgZy(=ojbmp9W?3 zZ&RDUL3Y3RSWy0e_^<5=M;7nyZb=F8ontH=K15+z)jvJ$SKk7$+_(IoP1apN0;FQ8 zy3sJXeD|_`W$*uEW%EVo)rJo9le_62q%L@4R3SdaRN2t?M%lQ0% z(6VB}fgaBMX#H>h?o(ia zk9!t&Z(!u#Z@u~#@0Jpa1Eij0E{Q#DUjB>14-?x5yBsS9fy~5G4JCB?i+A&`z9B9y zenT!F1bsF9|6|SE7?_SmsEgthA3wi)fc3AF{2!+B&z8{+A>gc>@2)=n|6+lP{l3#W zfT)Z_@$uRnfuCh-{-xFp)M`^hFGO*k%HsaT<#Epgn`2*DnKoSfn9+ln;4e2#DWyB3 zkpp9SkWZ^f1@hC(c)uV%0p7vA`Fsq}5~0@{946x6tD3(wOh5Uu1{OX(wZw>m4tA3U z!?hn`Apa-*)5ip`BEmqx;N{1LV8{PCFUYS;Eg$TSX%&F7N*dBZ!V&u?OYa6$Sj|tR z{XA)#i3=cHcS%avZ?VsljB6;d4BxQ|{-`e>Exm@gFOX-bC$Rr%31{!3*C9MM{2m$g zxTY;zgdPlk4Dk*NNzlC*kf~n4ylj-+S)62iax=RH=xm;n^2}YBLDoEQbF$8iJO7^A$I4dOqa7^I!G?%r_+rH5X(04lwfGj-%w!^D}4u$!4@vC{CMr&Fg8;i?HhBj-m8y>B1j)iwzquU{& z)lKgQI1g$gQ_mf(#hkz8laAT`PN{cPG-YAW+*;SwH$GuJuK+-N%tW@dSuVm~GmGS- zy%5L>2Cu(&VYK4LpZb5VyotV0SUh{ID~;5r+*IB`?3&k-E%IRBei8RS?e@yOyqWBbRsHg zPudjZ6~5M$T{(v{zLx<~9)y+4$UQhC4ZxFObc*e-IyA#WL6A(`0HeeB`E-+$RHeA+ zVf%rNpxHglVr$T+UlJiEFpOvPp*l|F5~Weps!^X z3_F5A?6iVbBP@&97B_9ngc=JbjhLe$ckN`7(Tf>9x^?z6_DD45{gtiF{g@YbPns`5YR|ZKv$bG%L@P&mAr9V(W9j1prQXOEDeg+ivB6 zx#T+MS}qgu(9xWADN;FYWp0CWs`uG0xMRQf+%{7`%5x%?kh*6w#5Vu4)HNx=ij34MDfBUK!_i|tx;OOQR`y;di;<_I9!$Dx zD#9}vJPY$B!H6%lR)k^}&&gn{?shR2cm-8h9~O;LJbKoAH^P{}L@pT?Px1&{pDKRA zZc}4o-8KURCL{5)h`ReeONlvNzdCa}3e;H@SfyH)9s5)!_e5uBslKUOEMMAsiITnl z_t0GIDH=<@ZAq&J;QMa%skQ>~NPeB^huPOTnsax&QIPeO|J1EC8wqt)7mL3)Wj74s!F-iih>X#NQ_fscilH1^G}xV(-1~eO}0+bpzQsBNppg;gbfWdA3b{XTzh1W4dtWtoyKr) zpcji`W57&qvV1Q}lU#xkG7%Zfp_4uuD#EFGbdv-$xGp&f93D_3jdF?26Ls8?vU_zT z_u4iMARaP^ZKZs|b>WD~@Qxl?&wE7?=WN}=W(f%P(s(qnTDl&kps6O+-)5Wz{Y)?Y_|0kR zN<|XcmV>$KdfBD%Ht&4;IVxur$+f#jBQY$sM%Kd^jEktfr)n_O}nk7W&45c0S;3|Lj zBq7GA{?lu7P-jeJKya&3`E=W}=P-PM}8F6O|4;5ZlkTkfb>^_~5a&ISNXq1UeA8V0yTu8*BAWS~;B~9P8FZ7QC zN14ppOtzBpMNE4{^nAgp0mjS(Rz@d51dt~E)fN&3sChpRq3%rr6W{ndx4v)yXGS+P zRZP2HNKK4$k;E|gev47)5NY)1U^GY%$2F`d@>?gr_R&dy@{XdKWo7lf`eZmC zH|01fS!gCd6m|D1Y02iz)bNcXqac2tY9k)wb|k)ge8~a3b)Kw4GJFTVkK>=F>#Ii49<^I3A{=@sXJ6FTXu+=b`*d3++==gm+V8i&Ky|(`Wc% z5&gnDTh@PCWi*&KjE)ko50i2;>r2&}C{5O0xAlL3w|4D;^;w>u#k=Y|hERrAe7`cXl@=Ug9K2zH1m{I(pzHH_|lRdH_ud5)noCi<%+=qQ^qMnP= zeer#Nr6nB3EM(G#|LVcx0B5s%!9iAv@4z4T@p1AW_=Qq4o$U7(&$-xx%l&swedJ@F1c^oxoEEdy48MuQirTkj{FXHA2zxwIU90Q~ zj%W-eTT#o^(7k;3wYIrI=-N9*LnD2CWUl;-w#LJXjrSk!Imq0`?n><=Fb5v+68!M~ z<_0s;pXf@vt_XimT`M&X*Rb*ykMH7FDJMO9wwyHbF74+SpHd8PvB>}WTw}b| zzPw=k(l|gxNV(Cq`WwpUyFB^Zyo)no3*W*FyBehy8hE>_G0 zZ`s=KYY2u!UUTN@y-RY+pR~cvz-F-&v zeB`fjM^d4?9V(dbBU`0Acs+rdoeyI)Z6r6`yqf|l^gp=(B1;0kZ8lSKGL@AE*~s5J zmCd0$nfheF|4;(=qgf6~23L-}w|Kg^3m(fX?F~d8}LmPk&AcJ-qaZKdg^gSjWiRn2$7W9hC3s=c)9&*xSz%cppiVS-SUjfd}1zvqh=Z}~~Z60Y30Jo!o){uGq` z)`+q~INNXMPg?WO((S)_=iNczjdz_|es8gh8M`<;>7)AcS;_z7>>Z;c?Y_0&*zDMq z?x@p2C+XO>ZQHhO+qP{d9e3eMi7&FKY;H$^7OE0Z1>dV0Af-e~}1CdVgE@LUR0Gm~MCC{_U9MMhBlmYA4{rg!})_CHMbx#S$Y!puGoNs3QFAU-^%>>hp#&fZjIPdj6T6 zua)D3nKr=Af0!Q!zV1VzRKiOdMxa0Y_}yC%A=`HvSeft!y(2P~#qY$llS4(1w?B?6 zHiI)QHXIP>q=5y89h6DndO5b)C=gv`G~IN9X1mJ|wi0**8B9q;WLzD;#d~Sd`(V*K5U)mmJ_>*U(lF@t` zVfFG7rt0b;O#HPve_w?vBO=yxiiqGJ!!^?0 z?*Uj}_8(%tt@0~hElcC*3#jy6E)}><0<^DwIfxGh3<@I++vYl0U#% zZ`G&LX?IBNk0+PBJzIs3KA6}0zD%;OwO*pV|HyHiQK6GFebn44cTHajovNNsi|K&i@1pIVKI1R6$7ynZCcX0;>IX0t<@ z-4RAH_{KOYR4YWa8Ys5Cy^V>9DTI8o+$8RK>Oxhm+bcd|Jdu)I!TVV?WpB#qJC!9n zky=~aU@R%03)KGZ?r?aEYiexQbqS}{?Gngh3#3D|_>;#1T`Yd?nICHoFB%gRcKSU? zp;SgX8h^=0%2R*+j2oxm_)dDli(55hPl>$OSw}B(uCcqm(sup>F~xoFk4bvD9yUmI z29YOO$d8sXY@FW-2_eiA1wUf3FWI)N;ff_)iRGrg`Y&`vxnAOE&IrwAZK5Z!+$%0r ziinKk8+l*OCUcAU%jI`%xP};C$8x1B{3)ev7+HVG6c~2*7E6*!Wu{_Zq&nMdkM+Ka zQy~lobYU0aAR;XMIM8OlW?318VsZ(cf0&9Lgj#TMUL7A+AK-k#vwgmDB?)Xb57NUn+nNm7$v(bm{h6U~&;w+Jk$ki_}{@I-m zvwPorBTem0PPQ(k$EkCMO+s9so)J@KW3pe5)7(ON-A}T*bToe1@{yo;tO@y6clefGWWT%i>!K39Cc)D?>X2SX@Nvkb%WEG$8t;}!SV&}cy<4Yrt~k?6WT=>?RG2BH!+n_b->r zK3=-d)NCduwlS$DX+bzfFlGA6=;w`TGl%yXT2bG$vQ@T~()GG*=m`UM67?}?D&!c7 z5OaTNVWoaOlz>tU(g76Q;%HGvwI&zSd-rR^8Di4A$w++vA7BMEQ-lvk4`(f>O*iFV z4jW}2w%HC?;rA*s)3?rr>3oRo8#_pwCNyJyYzGg)f&hO)*YS+BPSEKBpr74e2# zoSAcvv)9P=ts&=pf%16=5==seia5$R1$M)6w?BrHnhb{lo2uXwHeH{h2*Yy8!(}Xy zQB1Cz#oUK9LySR^hcd#@jOz&#d0ZYpZv5rG$%vRsV}?QNhWF@_n3M~4?Ra%Qpdj0( zxGgJnfw{$l;r^H`xM+XW;-rL=b$nD?2$m;57+XYim+{KDlPv>isN+P7Awbm$rW%^f z`bcio1oP%)9S@dEv#%c#{SL~dYZo?!Mp5ac$F$_9yCa0P!~=%%jYncF8&2PS@1`FT zpGL%?KW&dqBnv0@K7AlsrC_F%yn|U$emcx`G~ak4F+RJ&B7l;wf!d#VZPKO&-s3>X z%g=g9i409moKHMB1C4ZnyB)chc51CQOx}!lk{r%2S&F#VJ`ejx{Ysq=w=CvSmk^+> zBj3C?#??|kG%z&gnEj~eQj`;|kHu<5L@*>e-ud3A64CotS*>*UXEKrP7V6hw=TxPO zUfG-W0oHI;j_&IE9!lW;h!^`p{)Adv@z(1gIm4P8n&ekPPM-nX3-PtvoM*-rm{42nOl`>72Kz zK^5y&T3+*AbUp4RV(|h#ri_w<_VAH?fAn?dcE~M_$T?llOS9KgJhb%{yh+>@dS^Yn z3)sH>2Ob!T^xN?wSM+ytw1fD6cj*Vvamv?nhffQwGRSg7$y0UDoE)2nKhLl^dVTwYI%-;1YsS78lIRMgL!7wb1 z1;mI)!BBff&wE2mh33~r6v}a;~1ppD3M+w zAP-$p{Y#`zPJ$c{X%izqkKhvf3Wh74&h{sk&1Qgs9$PeZpMB^AqX~x_WK8MF_iRJe z+MVGROEyIG&xqd7jw2B1F2m#ZGM!7e)&5ZTrK0-FHS0^BuPy`ZS7auic0SZf7Gj>k z)Y+vjI%vldyo#C!zE6LypZCq(vvSZ^Tv!wmd;MUBgq8^#;|vq2Iat41ZLtp&5Y`6I zq->U;9&8kuuTNeQ06uU_xzJPY=@TqcF{-uaTf*D(LKXWbwjZs3>xM6_xKVewEW2a{ zWkeHb`(_!A>&4EXR!lmV! zY)Fe{h#3rz^rOEm8L~DXSbCtc@7wwE4vSQ%%JFC~{s95u#(TO@Oy9k33+JC?WOBM} zTYQb-!^k;guLJ12gw^p&`K@kXaA~f9PyzG23j7MqP+|G#lko=4xGx&`f)*C5mSk+k zg}A?x`dIczDV<{?_+fEx@GU>$7N37C>by4+EC+G3<8gWGNFs?!N*mO-7Uu3!e6>;i zlj43$_;+W{OlEJ=xT+Oj_ZIPncEeYif}r<>hC7oN zQW?9K#$0iZoZmu&UMXClMx9Vvb~CK#v)r0M>XyS`>gSA=^U%8qQ7+Uqf@3<*69WP zUWx6p+RNMHMPq8kv`{ zAKr{9R12DTmR)gUf>Knqv&PuywSya$R>$kARl*;QC{{oMr|CGv4kW8V)G7r06dwl%0s(A2wlnp@46 z{3AIT!QRf#a-%JVH^RHfxUU{{8US2NXFBYj8h^$GSA@bocO~ z@1OAyrM7BYTNvdMH6tkgOVtGPm-B~WqkC)3mF(GxYsR~qPy&6+?uro1KV~Dnlh`&o zh$Na%TNbBZj=WYI$jgfX_I&6qa{XRV#kp~D^G$ZM5*bX(1#S$M4+b9HlAhy9^-14# z7?4t zWUUn4iXspPFDE|l8p@Bi5!vYV&E@&r;mm%?MRqLb`{?q>h5Xcpx;h6%+F{`KsJtO&FH}MXu2E8o0so}rK z7cMv}x}Pm7@HHLmfI=@T>R**B7zARFL~6sExISY2itz3Z~-A&-&aEt zxfZ8#GJTl+fDQc?YW6U)L>4VTQel`J?SygRZEGRiiNMb|+p9)ad9wCOC6nCcRUa&V zAx_`Z2rjQ}mnO2jvZm8u5A`X7^u?M9+LsQ+IN(krQUGD`3z4pdYb+~GaxgYLME2Kd zKJ+T7iy+r=VP1U1o9Q`0Y-sE(UT2hOYf(?WHOYfPl9s4_awlBF+s%$=^S6vff$N=o zvikSt`3fVGs?TGo=`p1dr;8AKT9^_kiZNrh+(uXJMfK9KQxk*HFCJUjd_WpAU25?f zh2zW)z>aFGA(2@mXJ%OJ3o3QDVgK_v?`s=MQ#x{>}|Au)!FW2 zmapOiE`P`cT$G|9<+b~M3N1s!(?$Yn$z^TiOQiltV6p zbf9cRfXgSMW5ZlrKlc?eN#Xcdg9osa!fuQuGGt1H8({v#*22u6i(UI9EWORZ02qf& zNfu_L`T)&ouSMv*EQk=1529hNegFt@Iv!3h@(>vt*Z8x9a7HSvRIl9ranpfk|;;AzN=4G4POmk~jkOZ!v^%@7l#Tc!94NZ4on9tjA4Y~(I~tP zU8&(Je(`(nJ@GdY%Mjktf8(<#zfUx|$ey9kWs%RtG4g*u9m@?NcM;&Pv{)igC;D!# z%+om;Dn(f%DxqA2dPtbMM^DA=y;MOZ?cR*}zERvnR>enp++5LatrW@YBL$eO+dMT%{zQWc^D|L7GaPe`-9r z_{so!9FuO%KqZy4sC+?yv?54OPf?{*4I4}9>Rd9Qh^a`OwA>HcA#V0h%^`G%ZtD*j zz*l#}@7;YXJvo>%Phj5@HFdu!f_je$O#@ahZrtZ32NJ#00m}MPv1amW33%tRoollC zm)aI$NJv}dnKSt^RQvZe*`slD?*OHiB>ygDc3qg})4C}-v8*<1`->$1H)uDBeF;gB zy7#RtqJIM~vjS-sJ3@DQ1nEV$(Tu_!wVp(FgpuuSOYrY-O0-jHD!p#$-~;%#bi@d` zpHxccK*v6w@{L}nV+1001LvRR@`V}Z9i!Yg+k>HZAF$t?S@SZQ%|4W1Z&GCd5NgtI zn?2lS50l?9vo<|Q7)lsID1CU7RjRaXqa>1ks!UDg&_)I(ninYLfF*0OT@rwwX>C+o z!TN*DM*a&y@B~7m_F{bRQjU0v6}Sy;mRUKI}U29 z$7jiqcQJ_cUjdb~r89ccCfhGmIOJMH>krZoY*u3H==haZmX+28cKboVFqpGyw8 zm`Ut${1r=Q+B1{p$pH{@o_EP_#TlteTcSBlwoM4OK*oPFX}$pf7<3(o+t)#;4fIVE z|9@Y=RSxHuw_m-FK`qSdLRZ~*$wok(oPai4ZXtspW2+1a7Ek6pvX=l*;zz4~`EV9G zK#X*7(g`d`QW)*{f-e~VNF1@aqNotEaDd|4e+)@BCdE1=uBY|7BNL-m;JG;dLn()N zZm|wmf?SNholzrOQ`;Cy9FC0Dwp#qyDk%3y;Eo@sGoSv1wqvr30_Dsov{EJCO(6gF zd5oNdA0u{{XU$}G2e2wV^s2G-sZMb7dYh$A9{kn7`hh>?M3J*LYVfJejWQ!($Za}- zrC4!pIrKUye4qjwb5G#f(FBBWk2+(>huxxzI~gAL-F|&($l7LR3a?NEFl+|sv4!wQ{4q}H0y0GMtTptb`ES#t1vX3mTP!zl@p}$>& zWA{VhOhK{nRE19E26q8eqSZ3Sxr>R8v9X!UHCsuCYRMR19M(*X9}{-EI5}-`a{<3D zc+JvH^P{|9Q4xhz5Lelg0eAUR4=x}u*_YymzMLPo13wd03X59ba}Eg&lV`yQj_<^dG8plFXJ$&Kf)@dc{xLI~;6Y zY(i8JImKP>x!B7B=oNsqW2?odW=qyt(%DwiAE`LK4s-r)mq0;?!)~bIzN{VmyGLh2 zLMu|K1MKBGN|)msOS_v7~sk1WbC7OB9EX z_J-$-(0u$vy#VRG?l}F8$~XbwfI_9A!<(+@^pIA6M}wR?jv1PnT3?%L`(^XB={Bnv z^|$N$1>~Az|Jn?w$dfNwNNHfrjVSWQF*LqDr!FCn>z}l`95&;iS#v!Z;YNt`5Cb4$ zjpZoBT|i2Un*s9Pd$_Y86u5-xRV66lO%5-^d~%}mA#n_;G?dbHn>s!67nG<=Zy&#) z)wg8F6vdrB9w+r3+f4Qv@FWN1pc{324ATe+H9mL{s6HHnt@6YjwuC#bb!>2tCj*~v zFLM>;4d|ZvR8o1azO(!GkY2eM;|Lm>KensQmU==#s95B4sQ%PMC}&HVFRED_{d)A& z?72h4=vT2PD?KaF?K<;}3(^KdWFl|l*{RyOaHb?+;k&9MdCOQPff#h7VAI0O6)D1B z=t6)P=RLBNwrbPdb0H${mP|4YrIP&ZOe+uGkIz&LC>OKknU7QoS&>}nigMwE$~U@%csXbu2RqAa}6#((c1`>lIuqp_9$s1t@gLn0{) zG2|&Zrgvy4e2=5aW!Yl2O8Wa6_INV=7NmNR<_{<);4@cQOC9_=8*4-kUfHU=*y@$_ zd?YHUUU!-B)QKVNx4&P`M>?)vu9$~OBkW^xnpo1_`M~>nsEIlZpj9sjQ;MoqC@z?4 zbn10uv3WAhq$zeNcDUPU+?SSU5)u{>p3n82E-pJVyRM?9T8#YjA+G3?>gfM97*TEz zrrF77lHDhpLvUK0!^uq8?xxG_n$a3(rt6&ZLEi02d!Vt)Wy(Tk(MldyNi(%pO}11f zCqJ{*CUKxF-Ho^i`Q~ly;qG~-_OJzJ1nsJcHl&J$-}X>CjUF^=>R{i1&R6bDp;(H) zSOP0`7i>n$Q}NazYht;hDb=y(o}lGVLb2shL7J;R-RH><>mrYu-f7;K5cbd6LQZR$wLq*_a{Ai^Fu=e{Ur*6)1iSMrH>iR)soGYytR+s@J`#WeZ}W zC|9Z!St$QtU+8pLgyC>`D~h_DeaF%cVIaLQu3Y~3R%j9aT>rk}^!Prq{s?KP zc{V6N%WwmXZvO?8N5uY3dATj;>R3E-cHB7FqqEBcgs-EL`W-&+bSOiG^<6720-Ki4 z`E&`eTY&l7(3cmnmw=yhm=i7sj}6rgMx{(n1h|#mJ)ck5)u@-_bM?obgEGkp0f!oJ zu^U|O^R98D6Z^}gq=yvj$A)79R~pO zFXmR64&e;t@NyvCQrMZ2!cC(aZ~g5%bh}{lx%2b&Z`_qyq{J)K8!Mze&n6z7Km2Y$ zE49dS?Pea@wN1_0!PGj-`xpgwZaw9P+bwa~wD%NF#c$7FBY&H=OvhaL7NT9nsJ?Iv ziZ{<}UYm5;WU`cl8u3SX4ui0Litzdjsgn1KLD%`FryN&h%)Gh%hkdqwmvXg6dftkS z3Gm?BNo%(~FxVG`m`j9GCZ{B7CmU<4_39i<;>HAfs}<90V(=CvCx3YG529Zw`zTI{w?_@V3aGEpxE-h?yj+1UMAh14R8m!SEl0^)p8rHXA);V4a{ za`~%2Lw@HBcu^-6Tq@+8^6K4PPU*ob=y*~%5`BVpFwuBOQzD(| zB9~T%aeG9(>@NyA#`)I}4t%AKl6TT=%!U4w9~k=FW>G<5&?i65IQ zknv@2*Oe&CQ>8|ucEapy7G~C}`u5)9<@>hBqP1ZMi7#ltSQgjF9qN?b+R^)i=-l;C znrLwEo7Ycgw`XAj(aPOX*;&&<%HL#mG_TL8yyhcS!qkyKA7&c_>5py1)R+nC>uK#* zWjQvIE;6D4r=VE>N7ycMqQw@gP1@Jh_h|4YJ)lx*j2(}PdE)!4_NNJH0n$1#hEq4y^o-`Cf&d54yDJ!p)Fp`yb&#mhJ#Sm4==Jya>*^;@ z%5*3Tbov<-qUbL)`uSq%)4y)d@2I`A>iJSGXDi~{lPeKAp6}Y3mIe&f@#HPO<#^sa z9(9oUUt)gpe%|096I>^YPo;HP`o=Nc!c&Q5>I{;tIr#_E$q&v!gK)x!_7- z>zcr2<*(Ts#OnZMT3A9@aj{E;k(feshmIa`89dq!nO_ZQ_w#7b0%Ek=MSq|Ok5p2; zoG!^}crQpy3-~M`-^edDO~dPLGoYH!!%w`9g!WTam1jgm4Y}az{;--b7 zBw7)(t%JmrhhmxJC<7?*>7HDii;YrWA(E3+F~RIy$yfvHvxO-&{LUMeU}4RAVTiwo z4#0|U@ps~hlbB@VkEzBIx0s7mU&_S&5?O-gu1v583cZO?p}e$!$T)sxt=;e^r+ z&y5d4#Fh;7GX$P*xCDpAei;%-`|3Bf=AG&ierwv)4M+~pZ5V%sEVred2taWi8lcFf z?-gV-73rjUn5}_+{aWVxj>Hl~SEPyag}>JZC3QJrJoGyHfo_e2zc~V7Ks-4L^BY_= z_h;RttrCaTXmx#z=9#P;JApBrlaDq4ISakB>mg=}+ilSTaV#$cz*OdrIhT=MI>VBr z-=%83*^uVZHLJ@8ymX=R83@unYAxSNq`uTdMiDx7C39Si{2EZ<3Cxm-tU|{&= z_B)la`UUkiT>g_lwot?e0542Utcf-$>h;1bopTe)u=XWK#DIr!AO!4Tnsc*!Ia8Z( zeq`9~)$97c-FgXNyKbO@z0;M>>aVukIWrn_>(}P)5_>^(9Qf$D9tFGGMYspYb`gWe zIaZ?XetXb@*5}3bNrk!l-0d?+co6iDuItQVs}kFT&#BeQP;XavY_~Cuyj^6ggo*bO zzK_o!d1|f&lCx*JXWbUhOr;1z4!P-g)Ebed^EI z{!&1Lu$KNyi*)%_H^LQu_ch_#C**a1qV}%A{ZW3VZzS4cwyjolZNpHW;zAqnzSCoE zdAeuAWB(re>Jg-6Ht^6EJZb4NlP(--JO`rDvp5CauZ@EcY<3wWZ)0Ymk88n^Dr1aw0FMO)$Ja~W`L=7` z3hnmntIgV=+yTX2{+!4%!=Csr2 zK(GTVlav&1z=g}> z$2!9u&2!s%lL;PZC>XiW2l|r_Jjhvtk6K{s&yNLf7{q|`dc>Qw>(z_n=KT|Iq2}TF zk8&>&n(pV2gA;=4YeLUkYrBgs^1JQ4nX?0}l$2d|H_PX?EbeoSsiw$~>0FFo-Nhp=2I`dB` zq^IOS{7d04IG)>~@#5(!{Y2GY&xk^WD)cM~LTp8%xj?sD$b1QXXE9fm7!7H>QQfkS zszxK7VMFDTONyAK^8k<8IMQ5C%I zh9h3J*?V!dkDA(Me4jZ3^>rDOpbP-0-dM%lo@%GpqRJhS!wRtv;8>(LrgjW)_6r-0 z7_ZQ!?j0{}p(bA6`h3dNIo=T64SWOW>3daPx0_vCRA{%-ZuVf9Oj_WNu&p%N^Hghn zlpfm)O{aGzt+jXxa#-d`xA9aWlp+}eINzU_xtc3my@7aEf*%m|C&@9@RyRKE2e2O1 z>z*93-e4$3&L_?D(-!dVL^#xGxiKW~p&_V5dRs{I@2a||mLO1lOFj)f4Uc4f`Mkt8 zP;qZ^V7)at&NxE5MpEu-Nw83apVE*3mrBw?Zu*ah|N9v+a*nTLVlMy*(YVThT|ps3 zNj4ts*B1nXmOXMqACM2Th>A)K3&)+G4`T;@hkNk30As`qhZd<^>zA!G2 zF~EVS!^$)F^U#P4S=$Zt9TdVxcxmgVzQ2?r?G@&>rp4kVk7Qbpn$9amwDk^Ub=c>k zz!|eLX}bNb;dzv^tjt=z7a({y)oms91(*DW-RDpt=iK={DP#(1G&jkFWdI9UiyY>sA@2JLV zM2B_QqldY{nbuAQq4KY$671OVCWc~7O1}o5h1+opMFxAWO}R|4LoCpLe{D1E`|A|p z`Tc^`E@MmYk*1M;Fw-=%9%(_dSKm|m17aHqp>~{)%)Q>3wS1v$XJ_5ON3mPv2lwb; zBQzA=Wa{5Mgu$*No4^MFf6Lm9QEvPhFx<5!y=@1)mQPd*Ox|}Z?~?94q5OWH+_h0c z+4x>N-cc^O&E0UWRhP5P;&p*?jVX)`~jxme^_9}R5Rnz+00?*1#$4kqHk*zb< zjU!KM*sqM-*{uB6B_h=<9>jj8v~|G=)g1JSK3Ot@A)0W$5BK`MA$CJ8l)j|I2m%iW zQ_rD=EF(+{y?VHVxD#oE)R6Lqb9-A0HEMo+jn9R=c5=zNXeW~6exwWW@8)u=(EYlr zn%%r#EKo}qYznNmxnf`8F6h}v+FS?hX7DMo_uQ&aJ#R9GyfK&C?QIZ6?M)wXZ8`pq zy+*TM!d^F*>kOunKO+?TnT`2b6K7f7P8X)=53c}*Ou@FewwYb`@N45=Nv5An#I2}; z;-xx)E-&5K%QQes`{->SIL%(4O0vw&PSaPPv(vZ!l@tquNk6*+AnPK7p>9Axm7|Dn z7wk^Q@#3rCJFxNuihm=$gJtfC5vW9zW8?YwEEdbUH;g+B!IQR5b-L`^rZlMX3f#Lk z(F(*3a#d(fLzph~h=Gt?0i9Cw5e4?e(mS^lARraSPSrMbm3?;G_|%?)xWC*k-=D>f zc-|2HPGC>$as}fo#Iv8uVlTXo13Y`U&L{@!#k@S@V1O(lCu;cu&`N*ym)2jI5u96n zY;n zez&`=TO0GfVxfr_ldF+N#B8GF$x4~b)uOjJRdLsmsZ|Z?>7KU-M2y6r{qDlmUDe;t zAxL}|Qav7yiWUoGvbdy~EnAbz`I7o0`s}Dfv_WoL9(*fO{{D9J{x02eHHJz@v)tCs z2rPR~aZ`aR9gWThM2}=6b-!(1wpTBn7mV>Zp6aOK@lES>=T!IYJ{I48Mvr!FNkNo# z08hquN+QDVWQ4-+)~k)i@fJoPGL|ZASiCbnlj7QuQQv#Y`os3Pp?Qr#?<|d!1=suL znllJ%DSr*RAde~V+lZ?`Hv)`lQL*GloxRE+t{;=!1a`C&Ixy#zK^G<2xKG{WEhyLc z>Ct=(p|sYa!^#vqu6C&=ha8pF{G)>6$Hi*bhL{;U?zgK=v&`gY(@70JJEOqpcaH|UC@*mw$WTFN zf6I96GzYRlnXe3FX6O~64q=$-k`isVvXCYC0F6jlRDNLc*>=Z$&&i4jrToMw zfw#hgNF4hxmbCQlRd+b5A@e1r4C9KH9Oj_nD_7vZc+Qg-0nPv66Y%}XTcTFH~wR9@9K0m<{0 zs?jykOh+QbqyqxdWurz$eIjP2Dr|LptG!7*&Y-D0H* z42UQ1P{GoO(DjH@+HNH7ns@XS$V%VdLVr=aAMjtO)_~zxXmkrB?j`C z5;d~ggKY5`EMN}DyUXS-6W0i=iI*pzUH@)C=r;-XBl!o`ePw360=cY7INGP|7M_SC zs>Z^d4|;@|tx9WB{f<~t4^IX+2H9xwIOaD5Ez&UG;D*u#1RF&T=!rpFnO+G%W516F zbJ~J?DmvZA;JeYvRjm^On>XrPUTe;L->T=|&|HhTb{SlptA|w+U6ia_{t(|vQ`2)N z|3yLI6p-C8$fZFIx-Dvo}E&iQhQzoMJk)aK58a)soM>AtW(clL%H zG;O@o`MeAV{OP*%xa8jY%dHTXrk-8TbXva$>Rj>&hF{=&tYXi?tzZ*8+YjN;%ix5m zC;M;4-_vTN-z^g8>}P7QG|0ERU4dvb0ql4Ep@n9EVPwodC?(CqrsbkS<(%MS%U*ME$rwz@zI5B`t4E zw%;Oo(xb8!fbWOCMBAl&Aftcq+?5aes9?Ny=Y6TMWGQFa)Jr)>>F{4KJs$)Ts1170 zo_l|{)RnwTdcZM1w?wz<8@pi+07Jdz+;-$sioV6_tjS6i#qGssckI=_^E~b8yi_4v zI$D~|$knU3HLKD*m@I z>ROPKk;D1;$NUb#;45U+<((YepeGN~P|sN6$V%CjlV>+1v&EV?@#j)CO3q$kI6~Va|MooU3Zm4)!jY<}p?^|VnM!dJ z$A11c0x569q{Qf3KCg)?&p~V3dii0+IjL+lISc?68Em6Hplx@E*)z}1#2Y`h!P6z^ z{93$*2E68oFy%!;c{90W`|v;=Y75#>}^CS>j?y zL?h1xl=u1wD(5uPr7*rU+Ff&7b&$bUUdn*>Ru?T29xp9l(>~ABWr1jgXJc=+E9J%Zco z4A|gAY>~HjM39Ka zRIm4kwZpePA#2HqPzx2e2^*tK4hOo4cZ3?0JO7z2CsT*I(gxu1?Cg?fMgPyf`TqpP zN&K;m8|ULpg3F{Xnv&*h+#T3Tj3p8k*brgngHXt+VgXV0|BK${0IsS4nA@mB;|nKG zD_h-%emb+y#Vk`z-z2IvW-9jt%q`oU^c2u7gBnvAsY2Qt;CDq8YFRs1*mC{2ij?x= z9-poiJHl*t;kd${EY9Qz4u1{#|75n<3xyl!Ewcr7X@{JD4kB!CAv)6ve+<~O0a~rC z)$IviA5PH2nD7ZNuS7kKpKtc%L6j;N#*EGwru)9czEc`1L_;V*ggzo~dq9sdwXyZEx?B z-+hiem8FCPjvhIh|AvAH72)^H)@6x1d3%sTczlFa>EXxyjCibrC7~ea#@M*k5^{PZ z@eBbXzHD(!+6ee7f3l#8m?-rA8XR%2IZju2F*g`vgEGr<&WQ@<s^Z=S2q4t$9Xp=4>RY6?w5$~jq5dQQPK!Ue5I^WA0>bAW{A4=#-Z5-JGAHPmID2K zNt^Ww9^+|i0)JQBM>tHTH=9}t1#~pM>hvUT8O_U!*it_lj3<^Q7O|5;O?N}g8Wx#D=$pf0(%i1niUQrz=>>gN@H_D-=vm4#I{fTa zdsOH#>F=3*{i5YH1K>n^gt$Ac)?2%BSW1>j&J1XY%35BUXa?AHX%%C-VzDgFXDb?} z%wO(i;D?d!t!y?c>M4B7hiH*!BvfZ0lZiEbxpcX_Z3s?TL*8ex4c&8sQt31cvzI!1 zJ{pjp5%=}pQ1KY~W<0TJw2qse=y^$KYDw6@4S96)z3?(E#f|Uo-oBBHbGG>+_iqy! zxd_+w*B1yQh=2V$P}gWWtqDQ=b}36JcYYl=-|_HO7~!an7qZQy2YraT*aymCJTy?` zxiP|R!lTvJ)!&=*-6#Bd?(p1(^l9Y#WYW znK`I(LdLw{Az%(`FcE)xrU9B``D2|wgLD_`oK&-!A3Li>n42FjmOKST&m6vT`)-Z* zhn@gTtWv}|MBt`;{AIDiSYBK-i*-vuNnPALbD`!i$P2}dlVx&xnWR@5&FEex zpzi6{{&cn?+HhnVxg-AJ@%vg2K=uChh8rnTfa=w<R{o@=|K#hTD5ouFU{NPL!)NI>fU>K~I?D0gt(0Q2$?v3Bd6;u;EK1 zHDi(LUx{~_leGU0!2Z|To5KZlV=69vxi}%4$dOzyR+~~lzlK>HP9*sU6P@@~fx+TI ziltTcyYJ1PZQ}o4gP#Jx7J~7A)zyHe>vSa3YII3Jmy7Rma6~DuY_d2iB5!tNdrJxW%CR6hix(dpu5m7l8 z!6l(VkvH0EH(O{BSx#qn>P_yT$z-pogi}$2i+OTcl z%qT)-uW>qzD<6^d9;i@&!kbhc00c}vnc=T&hBz+{B^K39`;_I9Jg7BxuT=@4{bH{R zR<(7n(`d?2F(}L{%}5ZC9YO!-WKn(-{C@P>^7IvjjI@)P6^)kGwj_yK4Cg{^z2ciU z(%)DH?cCOc29q-+91Am4<8ry!z@794;+fIfkK(x!@pLI@>lO)Qr1<;*yMxJy!#Z+> zawn`Cjc}#Zi>Fa|5@Qm^s6bOhs1>vsrOlNT_qDkiTzlgD3+Rb>(%_Aq-s?)i<2%|@ z=0embhC1(1;dcn(2d~0J^RYDBA}Mq0REGH89BVr_R;H@IHDVtk3Q6i3Sgocr{8&zF zlw@v&>pwU)r?p{?aJ|o0=OYH`dq0Zj0e0eCp(%8ll)HIJdP?@m@iuR&WqLfDl!gvv z!sR^`ri3x2jAEH9F8|XDpv(-LE^8}II3!*aU4qNr;%@(W=h$&Qf7S)Pr)ju`D%R!k zg1czG)p}DXG#Z?3N!6z%D~gdrm0(_v#tEdJ8Ya!xl^*J1K{=p{$(pDv@HIf_|53cf zL8;IwTr)Qcat7wbyjmg(%p{5Hp6nbq2_keIJ>qFmAC3-~#oL(^Rjm#GsrxBKz=gDT9c_Y(Yc5*5UQq zQzh;;-SG)=g<)c%tAPkM#RUrTu?6*qlR$wU>B-HCk?bA3nhZ9`i~nh=A|fzK#9>4_ zouA`koyplfN_B(sf?Uj*R(lJp9)|Pz{K{>Y1-N4OgkiVLq2HZSPoLfyyc988blFgh z8fW>K+?{9xwd3O&&#UWj&J5lw*g0zjdP&yPfBSw$*?h{Lp99$wh5UL8)vRlKFkL|i zBK_34Ya^U2VY`p;N6z#QP0yxdsA z>^dNcPrIk`-;Ig5Y~X%bs73z0gN5`z-HiptSLpncg|b&8>Tx>WVXXSF1Xl6TYBfn* ze3eZ;r2ex#INEH0OK8>QEb}{c<^&3Z$dFWp+wF?4LcHwd7VDR*i^^y{xBE?%JuA?T zc-F*tcD5#aB%e40OJSP|mectpO6iB(^LzVnYdeT&U_AAFg;T}Zx9xi!44OZ{Rs5RC zd)h*eXt>`vi(zzEGR0Z0ai0P;x@jVPDvyz05%;|?xl1os^?VS%Rqz%2&U8cK>K!&J z&bY;+KAr|vCTQd`KHUC7dA)11AbPx=co*VF9%myc{CX@n4z3{j#4h*euNVP_CEk3g ztY&TG&AvoORlU}#g2v`xtD7zwfr^AIpFTx08H zPc62pY-{FrR~{VYGwd+qcD{SC)Y67ynnxHR=iT{_QPI4Ra-)$Ps1ilyiIC6j#5LWv zURDCIuo0wkaK{ycDABU=T#^^gCZ$ikTg6-s-yyGQlaGX|jxc>@1Ku#G!Za^%Ur?0G z!_>gT>RVOt6iGfjXLMq>s#2h*s$$O0a;%#StaR1QSt z)?Ak0_#H?P@;J(iIuPduBx}RtECBO>J{MO-$n|buE#^mfVlh z?kTJ8=VAnLY4JKomgY}U(xL>)$rCjEO_7_Fkx@o~ksC}fr;^0~jCoBgt$Lh)TA)8) z&&8c#VY}WR%aokSwb?{*meZ)WO^xT;uaF%^j({Y!FEU74EN~aZ=WvSZ>NUt=+e@rW z`e9mEWimo@8u78&;Zj$-R_cA%EVupkf3fz~aZ#;n|1gb!fQqyTigZdUjfzNvbPhzy10pTm-8sNW$1w1Y=R9X`_c{A{&e^~7{=;XnX4aZJuD-A9dtD|4 zO5sTmwK@`Daf#TO4;rwmkr>pfgiSYCr!&&Wk{78ifS_qyW`jVb*|l=;H%)kyF_Tj? zW4|!0qPq2IKvDTqh1J)!zzy$C($~LTo2S5 zq(aG*C3)gY>5&x7fHFQLeANGVcxlkIFhJ~~0-b6+=@C@g$TFbBF?)BK2JfAP>ZjWi zu7px~2eqX?jjLKhvx@*iiWCw1*Niej=3R2Y9~wk@a%TC zMJ8NfsC=8A$BLbI+bXK9PQ+t{?K<2-#k@BjNRm?HbNB8-6$;M3%~6pjQ;Hp0OQs=& z7Iq|gIMleITcKx1pWWE(qgvD9s5pQJxGHc7mL>c7B_9961J-+YU#oZFlYWn5*gJBM z=}NHIFH*A?Rcgy(0~+i+BDb_0FN)G~DioXMI$qhXyN|eLh(qSMh%${iwkA{>`IhZW zmKxEn*LhbXYQ2}scFs;bDS~ongqoSt#m`??+e}*(vIhw)CI1*(WXE#$N-hH`f2+33 zwqG2z?n|5$+qJ&g?Q;af`&}8$O{cqrJ-Z52^M#Oyu-jkH^uN>+kXH@7e5z?sZ;{K6 zZxwHb^%UXZmi{k}XfzIn)~@2c)}aR{UC}wie74yCQl0ucW||-LPJsa=gcBc&{+Y2J z)JHA`6~-U^-uARwqjb|bEs2+WsNxaQ0#(l0%)hdyrO7vMd_j0j-xX_9;^rhij zk+V}|qsQK-2#ky2IMcy21zIuZ-iFIq#kEa8m3dC{fd`y&gHi1>8U>I-#}%HK(12iX z&Smx*uM3^bXVvkjyrELKB_}A+@H5$d=#c3miAj1snleNJV;r5Il=d5GaxCql_Zsk&nEvq}pb%$6GHKyC*|>gf-;<>_qU+l#sZ&vyW>&p~?rkx|R1> zz~`hdHL*H<)~p&-AzhYb)Il!YVPZ`@C4hplA0hbfOk6XwPGRxfnHlCi&ccW29HJB~ zzNq>GWiEfaMzqP*K6MmB=HGsGv}AaOSH(_QOMmG)9fi)db&L?X% z`&q?elyUAa6jO%Xms;^iD=GmB@%Fyg&y~Itc*u^&0P=NG1P@Z2Q1x!)yDyh&Irl8O zE1pJgjptZ0O}DTo@eXIUcWw1O74ME-?q1l>C9|E3j!ol=EaEU9)EjbZ;N{{{FDg*H zVa7m#INTcx*DRUKkU?Bqe1_UHGj~7g9b3V$5`P5N7pjY~8n9Z9w6(jPLE2|Cj<}b# zkfW9dU9h{FXJQXRH+TK=V(AVoDb35}WmjO4{pL(4Jhk4rIL`^D!AwXarjZcdVf3RN zV*jHHuAHwq^URBQC^!|X!Z4)jXpg>;2{wp-Rn{o=Twk?v`uTH8S#+>edAgq|^#I3s~xPWs*x;z6~V}hRKj}Kg$8m zwtSA~0OXI3mjhmYM&3mocV%v6*pH7BdjO972M$)W`SbCxY zZI-A57OW0-3JppwCXIb18_#~OR2hz`U9vp*Rs|HXP@n^8XP5Z8$Rc+uzLHLKkg zrVIMBpvVgcX2^*KIY`)*vL8^P$M(K;xe(YSXfd!$yKV)SIhdPu{ydVel%M^zz4R3= zjpeOZAuuWJ&ag6?19c%^Ti%?yXzBge-zF!R^_?%BG?)}=wvFhXq7V>E_Jo^rgF`G> zAMg^a4Zdt^(+(s#w<6Ysdpj_{Nrjj)*hvCe#w3m%G!Da?h_~iawR)3>U)bWy}lJb*R zFaqD{DogM*QXeT7IZQv0_e;e{QdODG$Fx`sq$nKV_qYJ+%f;|W-jD4?UVoYk%Dmxd zDD6>ZzV)#v15GX+C2`dIofsmYp*gG$vz?i+HRAJV?me~?u~JcpYH_%h(D7!Eo}dlQ zD#m#+-4^=vI9M5*dX~|;xz}!A4b+)|0#qlFa|1V62Rn;5o6-%Lhkd>Z1k)3eVfsl0 zZN^oL`3GfuzrGl%d}*zKmMpUFx-*a9e`-EeKy$0f6}ALE$}4J5;27)7xPEqkC>$x& z>CaY6qRR=tF?+Ip%Oz6z%THFX;gR{>F{r;isKw|fQ@`8S?L|PYajnzZ1@GO&oN~n-ikJ=?nza> zsWv<;WMVruOLyRz)SCxxsMw8%Z>z45f|tL1QVEaX?IV5r=+ zHE;8^0=oyGiHy%GgndUI#PCu1(Se<2c&MIAmaqf>pA4Wz7rL+_j8UTCoVlBe& zOKF|Z4fSkn;xZ~{YI`Sxvqt&ZcZM3sTp5G2g`IlA7Am!CyB;)jGLt}z`witP5U5vG zI-M_hP>Iz*6{}qK%y?LXwlEp}U%Xg1l(-SZ&a~m=(BW1W@+vTaURkNoz6sexS)IVA z8{bn*__#$J5#-uw^2;C=vIWEt$rJv0UyQ9+36t6o5+sZcn!6tK7aqR64A!V25>9z9W(q!7m%?_5kNvwd+`FpGf^SA~j~78^#-qNe>5 zE2j_|mi;sCzPF>z=RNbvBi~LieP-A0frM3|eiO)cR2t>hAW+SA9lTp3(Z3t}UfPFo z-gUg-YPm9ii`)8BWTL^sFJQ>d8C0!xHEMf$p;(TwW$F1tIXZ7~!A;#fzGfIGuXE3v(Co@6x+ckz35L$K3llXN(Fj^akDH+p@As*Ho2eH{hFo;+>!J zy?-!5esZ_N)rsisB1o@Uzs{@t!IW%;WY=D1c8QJscZ5Z^Z6FQcu#3B=nkcJX0Uv>a z%sSpf1x1la%y6w=rIJipwVtqu{o?jpl}gTEO#`_C8}=OJiU_m^a2!g>HL zFM2NiCFt-Q81b8#TVrJ>&9-#ctwc;DQ*uDibA5_}_(y|ZrHY-dCrXo_1XaDX4;UqX zV--15@zx5FP@?!f{Wc9f&HWW?@&{2js4~2VB0m(}O}_>CgKmF5!rI)Cwp9Mo&boj~ z-_R7q47s01^(J8S=3LQS*lDYth^f}GoZ9SGYoXTk<%zD^kdd(K!dn`1rw3zEcn`Xd zYT_y?ygG0i?MI6^O-h9Lb~*b~>*S@^`_F2K5cl4MIW{<~dwA=6@w+fX&IYK}>Xp#} zpgq-v@UButCm>s1t^t>c(}ibgQQTTJOg>E6uIfvwgIUErEU=^+$jDyYuw}OJ*rHf+_43nSi&qZeqNPf8#4Zeb4T&U z``Fbwv-R7r?o)nSXtq-O)Ovrc)C$KV^G(Kp?`gc0k-W4UWjEV>>R8}(l^iMz={B+0 zWbUKFc#OQ$D`^#hcIbx!HDI%$J7G6i*|I4SG8fUPdGm<0v~J!2p3&a^+KWRi%%#t} zz@7nY)mLvHv))V=N+nMr9@0V~s&&s_oN6pV2Qu{$lq_{#tss9M|n%Z?nSIsnbSb`%u*>d2!}hfY^dR?9D0%tVbokobM<17rx6NFB zL0R2FZt;4N2(b)mQYFLX$JU5($H%Ij$0Jb>wKE?RJ}z!DYo6HP(pt6!W65b&7#irG zqQEo0d4}(Nd%T27)Y6J)T9!sW+$t$8>rB=$!FCq}&KT)@tnSbZGl?Rkt{awWUt!F{ z4u11DR_&ib&oW1qojt*mr$OPimEePH^}Xeu_8XEXu{ge_skUv`piwN4Kyj$7<(=MO z^FjR|sFAx7oqO7x&#^FJC(f6rK5?enLz&!!-|97AwG=}8v!<)bVV4GbCJYQe6$mQV zstDirSSc|_XxC&=g&7&A<6ub$73ExKSMTAwLRVP?NDbySAp<;!P&NzWg(;W;l{<*JqYcJBy-#?1!HTjJ432Mk`#0x6flJd%#c_)0I^2N94ICoL3t4wt(G(Mi$EQ}kB0cA8}hXx@NHsE!v zfP$*WaM2ub@FJ?(r0&&~+s-#mj5>O_b(LCthDoeYV5Q&_8Mmf^&PL|8o6j=@RfZEa z@t&H?yDSB^m2{D;Pa^`NpFhCkY#Kl)mK_#I+A`wEaL9ehT~zi!I9nH34h(JK@>wfU z=o8gNoZ+r0X=~m_bcWHLvh<}6%jUgGiPCc29}taWUjUwLrjJ|tB=Yqyw?vYTdqPCJ zw~?KIvv$(r2b&^MD#IW6-Z7}V!Y`|Ai;G)BIjFbWf97PwP7&emz@aw^`PTD|l|;o7 zNjwaa7c$1H;7C{q8=6VQO&} z)pzTsf{td9__zg)$KFlFwi6%WKDnnf3r?~It^Cv3n`j=Z{U}_@4(ql47q<&aOhaEE zUs~@uLn2ktu*6MKbr{N$5K))iC*hRBGH`0lg_gzoBOk+(E^W8H8Q%v){x&DIiP>y0 z6Su)1lhrTd!Z!m|fbt#2)TmzNPcl!jFehoa@j!)$1#*98r=Ox?X>+};GL|^@i|A~s`=w)o|tI<&#ypP~RuP`_5p z16*DWGz3?Q<^I2-&;3t)?`rdI1(T;FOD5`|fz#e{p`@k#fE88P`t5=~>upDsjy-I* zAyf?+82{DZ_#usmTP!MflSAV!;HAES?`NInb0Nq=DIn`h>k>2Xb#j!z{Lg5eTG>0y zo$J@W%N5*#EeIo4!pn1Bk1`$Joq6*LmshCl*Z>7FB^Ug)K{*tX(XtE~GzV$2m7r#D zyw`7lnX7sy=;ix(?IxF)^VOSI+PE6qoNsF~MlT0aM3qc?Co(sS1hP>lo|A5VS`#5PkW?X&o!gJUFh#2K!w8n2;Yi)%e7c#gNxf|5O=R>DR|jK#Y(_^e9_ki*i6-px)PM| zIObD8bF^y~Uo5;ZT0g>34l&WV7gCI$#%06c$sul{a;Gm%06VVRlEL1)5cjjBPVRJQ2*CX1!HhQ3?rwi3$3^-rOU zfsL8lF60N|?#mv|G*y?4mN{yW@}+ijqWLJE?QA>m?#|!kb2$Odcrb=U03vfurT0fX zvq~x~`aU>sW2R@tn~v-pw_sJ_(5`x) z5YYr4Lv`fFVutghyG}c1?0ff(Ex&#e9&_z<)~Vo%{=`{d*b|msS}y~?@eUA6aeY}d zCwk|e1zlh%*^}PdtOpdG+LeaIFNIflZgudR#t44walG!IndN&|_pM>@j)KObLO~;Me~dI|zr}${1G9v^12L_UFbFxDdjfh|(MSr7yPh8(oTqBd@Qplier_`5&Pe~gF(^TO0WO$( z;dAHUqY)ebdnI_TqH+dQI6e70fGJgEhM?w|{nUZOw`E9kHY*JBl5K3MI7X>K%j1;F zgtxzej)8E*eH&mm!>-@B$ihTSN*ETbHt-zIin!1Ts67^LFl(H^Q*!#z5--Oomfwo_ zh_hDjCkoNbPdgAsh#EwWpC#2TT)$C#W*@8Pvkv50Sqn8mUJ`=SG)i^4_v(;soG@{w z+q4WfK70C}>EnCZkCYbky`u?lpG4RNT>GSZPrR|~cNSa#&Sq;foVZ?o81{|LPj~N_ zH5d-`K0t_gog0>G6C)Q#50|9@Q&1V9=VLU+4{Ibx7Kn@p*4=4`@EqpMZxez>2Lr_i zKpcYehvx39{lv|@v1hf*>dL_crbtiycvVde-$Zf4sZ;=As0XnF;-h%{i7VUH`H#&w zXYb_`jguouOoXSx`N?G9;pFEu9+Jd4;0JJiJ5c;c|+F7y7b2i@AA8dBeyBpWU0+MJt4-vBv z2M8raW`Gkv?`NW|FtzK$O5vE)1RAa>v-p^a9F0E_*Rp^dyw=) zUgz-Ccvdb0t)`DuuP#Bm=JcNH-3ic77@KD0J@=4!Tpp=)sZ&EHwyf8ptXK6bX|zTd z$7XxZo-PhWBD66&t(oo)B{p;Fr{B#wQmgr9L7-OXVQd@jczpRr?yR+zb=6noa;btq zw*owzjPPR-DXnpJY2d`GK`1W2LhMn5eDqnr^_$sZ^iVFPMbb)tq!0sWkd-k;N!er% zJOocR6ZbraUQ{O`h_8^9C*NT;OLV8kLX*+_)i265Ydy@~`n*puTN2I;+O@u<9eU_~ z&e^awLcP0~+#wfFe%a*f-{VmQL_`Gn8rSN_ot!E2QoZW6$_Us6xL@EMnDZQZzS5bH zj7Ooh)=bME!?)7+eV&Zi3NYWySaXHeD`@UW$k5c32E41)yKYiBwfDUlt&*}>s!!9r zxkm6tH-NW<2)zudoEn-h4`XbdGrKI@eTP5o^?_qg9Y?jzBVu#qG-uE=W*GY`?z8ko zx8TAyQE+jZ0PiTgGD>TuQcP`RIW~b1`(}h7lI+$oyPZDb=oumB_^zo?rGI?aL*KUR^V#?7q~xHC zyt=F6-B)DmNFUW1I4-s##d7d<>NO(9cu(ovtUu?xPI{jZpl=DM0ZnTyX4hEcktP5; zd|x0_FJPEa(9wD%-_+x`&yBY19X4quNvCqkD-!@7Uz-67Mo_M8*J`%1UgDfXxYq_H zeNN>?(_XK-rhyG+%iP&e6Wn_Yc=)gu!Wj@&=RnJ00d65r_x@8VGj6fhYBywu8g z{1-hU`Lx*IwoYy5r!vnsI#)W!ZYCbKpj@t_A7c179dj*nN8mr;1>t!H^T^k5Ks zCOaJ+muPEKKYLay%BRe6P;}gL(fvHiTrZAiAIW9%E$C5}|JJ%U&@E2=@P+oZLBh#c z+%WA#rnfFN8vI67bku8s-I@gk*Rb3v4}-DwyPs}~*&kG9#ROX1@6=~^OkJq2;uFo9-2%*V`7diea?Z9hb|JpWDGoOs6A zc(NgmU|j8-dsi*b)i?Chiu(Gmk{CXHRRf9C3uH7R*VA1$@zU3DB{Q_Q7Vl$yX;a;A zk`Lgongwor=#{9fa0tDga*n+9Y7SRnt_LO!RKpGmp};CHXjW&JDTlqO1Mkv7Tv%e)6m|EmWHV z|J}&?Y4}Qx>gvc%g!Sv9mpV*4nc%P+4!&FYrVc40Mm#Spy|1V8XBfXo^M;8U@w_I4 z8FbB(m8*!g93qT&`Z|!&QfIDGu;Hb=;)rstY{W#2OP(!<8M|_lY)NoogQZ0PhO;&H zi52!*qa>lM{v@_{^!l}`!WV;pXVf`s;uR5iS3(0O(w=5&yxUU+$7$C>A^22HE{2%T zOMop61hKNRVRs3sJg#>0vNk7I>dq$hXVyPfAl}ZbKHeh-aL4z|<_5Z#&OOU%nKYZv zn9KoAPELpqShJcxc!)2{{%B&hcoeEUW8-pd>@@AGrvjWrDvCalxrT>zp4L7jD>p6A zRE>E?$=jTHb)7h5EeG%&G#JwRM5~uSWUUOd))SoA7tfHhFib9UT#rqY8L4~8aW*Da zr0PpT;i9*>g2@sgw)6htFmzH1GXc4t=p#KfNFOQglD>sVi(m5yJSWQXrgy6w1V7rVubnJn3Cue?w+X z6Nj)(PiJO`cmpV(y|hs2Qvf)(CO!GMdOcCNJVr^}XMAqaCoS7Lf5El? zo*;0C$!zI-+4e-tJ;_Z2@=#PZiwH8l1PQ#qZjC3gUa)q#A_0$?N*c|K$EAKu_ z9`O+ma+(hg&K#sB4;PaYyWUbqK)T&w*Pvx3U)N3u;@!7k3f5J~%fW2Q2l?{X-7PK0 zXZ+1uh@k6hGJeXB;0sv!0vVy&5jnD~U@^wvVscRmGXiDLRLgTOQlC&Er*F^uP(3@% zyAV4c%zwzvT^ZD}+5BT}ad*-2X46YlakhMMuO;~^^EPjcWNh9!^oHq`8}YEvJ!?`Q zyMsyZ-kx@o!yIB8TE9NEb#QSc&Ii~TbP?d1Vmk2H;^1T?{=~d?dumbSO>D&0c2I+Q3f4ml9+Zi>5R=B zmxvNc3pm8MN)ZIr)_LrmS4-XdL&@|;47PX_Deg6XJ#dkn2~D{4Jn#SLx(+JlI#{5e zgUd-R;PR<9o*rF^oHhOGzinoC#x#iL%G z-peL+&?Ot}GDIlBQ-Q1&@)$<%-KACS0=Z4$1SY(0JdSoW9oV%q8U9dMWwsv4-%bi!3V{Lah|u>Nki)E$8K!t;ph?+x6e zuy-bc_s=4+M?;BUYC?e5xWH&}&lEmaAaWmvf5`q~Nv+ydJy=$Pdn&UuQy#(loEIeu94oZhj{ zX0Bf5-pXojTtoS_WI$AjK6Ok?48d)*kQzJn@=(8oqqybXqH?;L+z;M;fXU8!CizdrCuX9oJ&b^a)*`83@gEVBqg zFP(34twge+tk^GZM=g3|hREo$MyodP6~qw>cL4Dkk7sY)5o>a9KzT+MEuR^V}PE z7Wbyf%g;}i?AzNr`!-@A?cTB&dxDTu0S^09UP8c<0XU}D^DKLw(kh!SFn$S#{vGF$ zZY<6%#2b}G=Sx~wPzevhQo^5zY%)3~#u$*?58~&zAGEc@wWC5fS*{c%H@Hu69nfjs*X;3XR_Q5dJ|`Mj|}3A3JNGkxoD1`wT`qb zTutV+P`?$B{TuLlz`o46z1$~yGUrJ5qDK*@NvkFo9JoxI$^nj7$HL~=n4l?7BmTh@I6_t?3?w2#bk ztU#skLtO9W46_`f{j78sI=Os8el|D%xoDr5Z4jN{yTjXgQoHaCceie9FO z+Vo^?OPyjyq;qTg_;!@KK=ad^7qLV>e}EnzS(I$Iv%%n6+Os{^x9I+1IO2jOUhHi} zNXyLU#<=cuPYpqzdYVU$@q+;zH9h-xNwROedHM1*&L&qb7v>W6y!Sh2W=u!POCmE* zGAkQ0G5evOxFe0mC(!;4uFqD%PXR&lz77V3!V)&?SB|ZC_2{cuel+jv(g^<6c)UOo zV;`AG{+lO4RHo>M+)LM>m zX9IG2;AJF*8P1w*wf1xVP|F-cN}Bf~J0Gmqy0jf_%O~kKO^JxMa zy5Twj+Nj@C4)nSTs4d0j-(D{9zjsde-(lhgUJ@Jpn2giZ(_&}?6bZaLrwbJ{AMk20 zJf>ZT+2u{$<_8rTb@YxO_T&S4v^VvP0#GG0;^7Sg`-9@YZw%^6LV=WmJ0soI(mcgI zsrhJu=@c=1N>eD%v@vGMyH4!eJW6mageZx^@^yd5{@ae;qPv5{XlRfO9yPm%MTQg% zC42mj&HlsN(f%%XZ_z2oVGN4ifLt$8JU*$rut>;}6Jq;GX^vVD{$m*b%OG*nB$5R${&h0zJX>Vy2my3p8#iT4k!NZ zE-BYYlpDJC==2x7dANSBiNzT>*1}w|E-Bh@)w-@aKWYgovazMMR$ z)j^2};RTKKS?A2kx<<|#F+Ks!vpV5jnm4eB@yz;*K94lNZwIsz?BqAU(CeS>yaYd~ zg|c`92%KW}OY3*kR}rr>6!&zp#DC?~I|U0ERA;2OaXL28kIXF#780cXNT6e2 zw}1RWk1{CRY|ym&>mQV1{PpMm@I(P6iX$8DQB&W-_UrieZ7i&Kh4tT#;16&37n$Qv zMR(^G))R{FF(`Lm<-dFxI#!mnM2rtM#-;J&Hs(JU6Mwo(zfs5^J{@K-iGX#FM6aS24|J^RZp~+D6mh?Yg{y$w*WtpFLd8H-v7Dn+Cm7;&=OZ;KA{$%Q`l5~QCn(vG;?`h&W zt6={+xLwkz3SPN*o8B*`$-E}k9^e{FWw}Oya(aExc$7!&W8W*Ev2WhcA9qK zUdevgiZ+pdERFWzszKMcdcWK7>6{0(?{EG3(m$QkKT*{k8VrBGek6l^TZRlK_)Nx$ zFZ@>luMEL*2yj2_{C>jY+~e{z6uZ|BHfnNpHN;AY*5va>czdo!(cgRIY|W!7{ePpcK)OmTOYejue$p8KQ!Ig-nwpf zzXWh5B;=RIrTlnP`6IRX$3^z4W_MyFS)VSiYEcELsj%~F7hC@&F44>ChU7jC8U7iP z_j#uOzyk2>2hTge>ZMM_u=f(0tj63xA%7;a{*QaP_lD}ro0~JfZ7)y}l97<87GX~R z!De`YAzn7aGN@#r>X&Vbe6>9XRvOD{FNp+kGj9fE}O;rxNExa1Lu}7ES zFKe$5_RXya!#_+$%S4BV!gy+pu9`UlPXS+|8Iu^Zb@t9dg4-QMz@)&k1k%4KKa`KK zoYKy>9@y&~l{7s5jm`b37{8cegc>A)2bzlfl9ZOeX6y8P*$;1aZX9Y(doyX~y!O34 zxrZET8;=JC#t}qDEG%&W9Xr$XybCl;v+yb$bKN0W(}|7Jd_6OhM|Itnp9LI~t-c%g zMwC!Fa_Ie4@_j|t-QOQKHKkRlx*UUKN0fF1 zQrUAHw|fpt}R9Ln?#>0h>&td%o1V zAZ%p>ry)AyO0h%=R(%<^;W@T1O6qPVj%_ZcUG;TGPP^x7o0|9bs3+quYYCX{PI!~$ z-4P$9;HzX%{3ThC9BHpdd$@2+9fQ`1#sm+o@%3a;xmeCk!_ zmR!Sql0MQ@I4`nz-mhIPM`kOZ;O4lmr~vB@#ubcbl)=L$nsh8(OkybR7j-t>Z>$;m z{?JV7gFB&v@9|En&ZqQXGM)W z6fefG%;p_l;98Dn7`~r-HM+1nC!%ePF#=+!i}4iGe%z3UEVGfHSKSht1OJdFe5Pyj zAy1Fe{tZdf6x0zjsh&F)2^)Q$yf$G(GshYD@We-q*RnQYxPPx=K(C9dlSPDRFEG@@ zqs_8Uz`T1AYQT_`M{`{@f>pik{k+~ZT2HvXv|oM$%rzamKR+44sJt7HE*P>8=jv0S zOTyXHclM&*p3Q8TkF~^@Df6~&@fB>ks)0Y;#_#7zNYQ$xTt4Jq@>ivK0r}8vL-cU0 zzP>(M8_JW?JpW%rm0D%%AqS-a0iPd}fXIvPS)Ez}DztUt>z$dBh+~)*V1~cQlsZq+ z7|_4?E`dKF$w2x%cT4C@wa+BML5kOUUcfer{3_S~J;)u#Oj0sdVB0(oOzvSmo#cuS zHY*KLb3q08+i&y@=+5QNMjKa*@499L%hpYqsfT%EwdG)=yCzg3q=goz zmHF~$>JtkBJMP4Gno2^6Hs%8_V6NiMBrDBJT>W0BLkWG5B`%09#D_3;)Osi@36jPw z=^z!y)MBuW?K@sf$^?`@-}Qz$sq#UKAuLA8J-iHIf}Ax;XIt!2vF4nkMAJd?c%MVdAdn%W0^SR7{Rrvb%hB zl;w|!Is$Mn3*;!^>zpKs&+Ll6boqpgLv@eVhHN|@Rnv7U_QI(-=k6ot72~~)jEfg1 zBQ>?Qn$Po<94X!3_#ml{PrEhQY~ClB9bHd$NQ0rZk=hSpm*w#7$|w|0Dta-M<-Tcx&s}48Hg` zAZMW7udz>ryacaq!^nV1YRJUOOkq;yRU2St;gj`A}{bq!YfChbfS%68T)MPHks*%!a;09 zXFHWTi6063v4&N-g`s_qPxrodZ^B1vB1GIgG`Y^@BF81TZ)!`XK#Q;E6@M|C{vr1M zujTN^eED1SBy6@{{r4!fTAoA-o`3^`qtXz^>v`kDg|N3EshtBnHlSHyuf^I2!fgY7 z>7)#{etFWuW1Bb|O=~jl{vgsqJtLm5@r7h{wvp4732y<{m^$s*yJ^_PzMD8%ZFV{? zrt96&3W1n~S7%lF*7>0k)nz{4QJ|-^ zUC3?LdAS07(%f1xs30+&^jVOr!aIx0QL}Et83JSxKEiBFyK;%EYbgjEn{SW;hSV>l zV{-@#ivM6=87TRSKA%4oO9o}@hc-HNL;k~k2bJGvk5H2caMai({Gd|}JQEYulwuV} z4w+T)(n~XPEo`V~?|ED6hBWiCNqsu8VBb6gZUfo&zM@(?W4kzOgYip_MTZ~gfe4Fv z`p(^TJDvy}^)7an|AAN?&p#>vR|nvY7J z_79IMS4ki`Yo$)jAUZ%EKcK>3e5doOoLB|^Y5iKF2G58|7l_+8^t)b*s*7nL28hqi z>guXA+6*HHB@-2rbSC(oOOn~%GF@ye@wI;5V%^R|1E3UE(y6JH;1}k7IjL@FIz6z9QtS0kADchMYHD6Z9fyL%Me)yk>4D|R&=JJE|UNc#|;l^?i@)exjO78k6Se5xwJR7S zMUouP!E%_}6V0}nR>_lcu^g7uE=blG!u_RqnZQ${KlsM~iN&pa7hT~pS6l!sY!^V9 zxu*5I$AYPlVNm+)d4neJh0Q*r=eC@HY4^9lS(7(suRGr6z(O_xN6NcEv%Ton;oEnJf<;Wh-PB&Rrn<}FC znXBmHqtcl5BJ>V(?%7nDSlB|ET|hI+?F?Gr>fgzg3aInZiL**j;!kQ*6s}3q=iH_x z{D1&@GpkM|Ky4qPl|11F|Hbf@L<1JeZ^!!3mJyD{rb+nV?luOA57=ua1g(Fst|J&@XbL!XW}d2_H}=> z^#sy!gmoAg6#_OjH&e_}z{UVy`I}uoD+@2wz8krR(k1oAeDyp1Ni28IX5-@MX^~Yj z0(twv^$-y@-tYVz3yJXe4&`|a8meq!bn`lE<_DKfip=koi0Af?P+MT;?s8~#;daWH zRAZ5RRqv3`&YLvycz$&GGhgL&S53qPizSce9;ZIL8s932%7ik%mmR%_xL&tO^w7KL z`;iLyZv_1Nl>e_QwQz|rN*;>*X=pc^2EU+R^)G4*;O}?wz`K3u^e_?cvUh+G+tAW) z;>3>Y%Vq7V6fcm!fQCt!$H8Pe{54!1#V!&u36Q#ZSxgnaciV<(r+{ z1D+NZ%7J@aRDE-*n3$OBKz_W0Lp!4_X(^7c94&1l`uGMHljByfO>0ZiEijS}1A=uD zH_J-+rYl=g>a=${yL!nt4!&mV_80-9_cp9?z;T~j^lTHDxE9RH?X@C1M>oh*g>72X&D^s86ZZT?=}MfC z4<(k1@RE(<_^IFYE#vPnw|6Sa>B<}XxJomPpN-j z?0TMIO9)wyCi4KxMx&BF6{_90oxQ6Ki&IeksmX3nTwV`ebQN!`6x&3G1)Y}LFybPs z;re5}--88k+I)%j(uB=m?6mcZX{Zl3W&1HxbHR~cS+1S+`9W0L8Lz*EH5gctJYl=Y zF(|LIw|AP_V<0fpJn&bK@{}Rihu`T`sL}Eg?%u{>xN}Pl&X#rZixO1xm!Kh0<3ri~ zNnocYdHpK=iDZe#zF;oGYfHl_X-mfPws|T!lr3&*W$H=t;+q~6Hdsdg+%mYkipZcxX<&8+u zOiLT_Em#}!q$0S@GNY~S#`Ij+Y&5*A-|cdd4fb+lf9<`;Ihho}JWy}h@Y$F+&V((p zI&~2xTQv1Bfsu8#cesb<9~zl;2zn1%roH|{+H0~w%ec50;(rJUxScmgOFrpp{5#M1 zlx23hkI%Uuv2!d;nLym=eSOG8dpGUtvA zPL)Dzd5g#b09`W1rm3?+8AhXP+AioUNHRL&#|q@8r=nZNxoi~MScP8Kr>4$NH_A0c z2IsnT?u5ZdmG#*_;IV(}M`qaQ3QR z8IOScME?mVr((n&O0iq3y1??(7kV-y!f!ANXhkv;MVWrFWWi#8N$e^|{=H1-MdDj4 zG0lp6PIUW%_0DeRpjWrdSZ2QFuZ`s#T()IiRo81wavd-v0YK%Ysn$QXcRfVUJ8pc_ zd8ye``?%oJ-yqt3t>oa2gT1lI9+v=a(}JjsIJWtN0{jdMhZh%mWGP~MtiGk%u(@uq z)CObE;%~sJmT||<(thD02Cixq>*EnDF}0=l`1rCeOO!C4-?EC17rxESrMu+2Ny!&5 zmS4+teeHVWY1z9L`ZHtxuh7qL8*eE6BypQjWitdM%2;k(mZnb5Zu`4EYV@P&FL=uQ zhyDMtF1Md*mN$C)h$#DRE7rUM4X+eb%RYpwlmLwJepuroGv8fjb<>y+&&>XV#{M(< zWLn(i=0`_q-uL!Gtz-si@pBeT24<9*?I_;=p*#C|$M|_uD=Hs(?xV}S%IWUG$0ciI zc--FflZ~TROu#w=R=c)gOaP5MC9#!^0>s&tgCXWau34++z!+A4B zs%-3tQA_e6h0yf$@z5(&jJBDHZ%6um{QRZ=@>#;pSKGU~!UV>uLn9;U`CKx`sEgL) zbu5Nc?VYPHOvoR3<_vG77N7fI5h0ePG^9`PE`$2;YEEFoB{W7-s*6A8^n~TEE(7;8 z=_Pv6lZU5?e=H<~*_p^FqXMTr`OK$A&?mEtSbbOb(#hkno0hyr)Xtz0Q$O_T9M~C_ z5vFT~orE+$>2L{+e-G|wt0&qJ%VvpbT;9soE9B7%I`QjCvA}+Sd;U@1#(JXm-rnK}y5_dc z+Au}-^N%R@VCl>RuE_*0cG=rF*?d^682C*V7U(Dccq%)`MFp|5xQKl(nN;M8hI2zi z8P&OQao(S^E9bq&@~~A^9Mh4lwlpCj+HL;a=End;EVPfRkx7MH`eX zs;jG8wj|5{hh*lt;Szu(#9@hM!yr<7>=J?rKfZsqe#Prhsxh#|J|bg^A)~W zKm8GC5x6VNSOb(TlY$Toj!Wci8%HHz02oT=^rgA&_rJ{?^f4K zl)Txb4|7yD$N69Gkz@>a+9MgvMvSAoH!iPY{w>A&kM`}K4^!h_5G8Be7DYEOMh|+y zCrb4H=SzMz`ANdo*23R7h;N`92ojT=cMN`(v=3~?FOOBTtCDkBQ=^bns>W-Two|mF zrah7I@i#4|>tb%Y&p#92)E;51Pa^oa}9ex|n(1!%NTH49!+PHAC(Z z2-QWES&yZvm}!)mXM=_slbd|jqtsH8lJ|%0k%n{|QC^5CLX(BgVK%P=MV{mD)5vce zLw~8d|AeIFr2Sj{aa=YbH)nTiiZPSU$!3rA+i;0SI4y%#$e$EeMJET$yeIKvV z$bSq|5G?NB&(ZsFyu;dcd>AzUQOpBK?Df^G9d%~Z59G&Lhf~GbEv9NRhH_LHy&P2p z^otE6-ccZmIV^`1S?UkGq-158RFSsT3oISIy&%8`cx%XArO^@#r@;_G(%$kCFR`Tz3Yt$xT@M%5 zdm{XER)$r)OF5%iv}jex*^HBqcL#3*1L&@Zp?DVS)U#8bx-PZIZRbDDG_ zwmazb-lL$rYz z!|xt@b}&8&)_`6MiNEoB;3BJ++`J?HXhnAdM}OIVXTPf0p>Lph{Af|Xch4jZ`Z0t? zA>0S`A#a*gwIv@eA`VmH@XfIpY%Ou$Q9C?b;&J%;YDv=2(6D(iU#t8HhjMfz&4)*2 z?WjAq>Il_uxoEJ$sLsa{^LXhQ8K8e9l{=$t?S_ZNOnp9LlDWC1Wz2vsVfh{x*T_kg z&BacmFxvME!H_!9&FUo)&yG^FQ}PIOgN_aRSi)p=YvvErPP99*MO>L(kg4N`1UF7s9lOKLGhC~Jw1i-blt0Kq@;}g7pe5k zk-&h-QOab1o0lBcizP_MH`S~sDs)L$bnbLTGDl(KlS{%265e)mWRjIdGHJ5ps^v$@ z#c@rb_?*n?1Uy|xH_Eo7W_+~GF-E!CQv&u&n&h=BZNoH6eTvz6*BY}@#4dJjPSu)> zm&FX^X%dyr+&(+p74AR2Wt5mHM3PYt%YWeCeonL-K3h1hJub){7)_B?ZTvM|P%b_16H`+TpL#ZIg;-I#h zb!=>GpvIYzXE~W=u{filQ?yGgfFRU$`mnJ89@BIYn9hE|8pDBf#eG&?f+VckGI&x< zj736N=<4`oLr`|IJz*C#AEm!2>E#uF`KDVuTyMkf80_=>mEHutbWm%Uim1}AEEvB~ zD4TF3H73(isq78ceKfo)8h|(1xdh>bU~`jA)kS}u}OMr zx@bEgq&ODVG*qbHw=2L=8AhG2pY$zZW{>zfyl{Rih~a%lojcyT`zl<4WWz2mIo-AJsIYPpu!6XyKQt7Qh$>;J>(3@abt|f9{ zUnpWYbu_HxybNqV*Y`u|4>sRJKK6Yp#z$o5{1&xuqu|vWLO!YH!XG0Gbosi(NfSta z@bebU4=Oa2P29oqW!9Jw3t=vQRz956P)@5r4ia6SZ;V#Z8+?FdwM z2nz0x4o>eV%agHu2_P)*L#&U{fcNqPRsAlbwco!6By|w0>sVr|IPY>=n$Dmucl0twuLR0w#|19ZH8+^2|MuBe4~w!V+s$RT4FEre8}atrH=5t3WPzXC%) zbCTyoM?(d=GV=WP&oj7Gk<4YR&lbBCXT;nV=n^=(TM*j`fhD27X(jSR*fYJq5Bn6eJFPCBiV_hg@Uep*I<(k2t)p> z+@$k5El?$C@F4iI0nAzEcNLO~5785zXe>CT*mCi$rmag{rjbAExn--Cl8O; z_$LF&`O{Fsho$^e0c)H|9DcSBjYe3b7Y<2PMXn>GPG% zLZ<87bMwWLY6psqE>@badP%9}X_zEg^~ak+2mIt`yx2Q#A^RZp_X!1@3e9Qr1w2cD z3XW1Z!#~dnT4A#~w6!st{M~9--k9XtwQu5>!yN5$7j^P=s>gfNH)bTvzPk9odQCt% zZ^O{F=Xr5M_W(JQv=i)l;wGpgUpsBzfYaG`KlJXIXWfwHI$+N1GxG53@MLhh<5;vGScUV9BiF-? zK3hMVi57LVN1QM#Q7D7t9ePk#CA&V(s;)%!a^JoR2nflA3>u3EK0Or+Q}r%S_;|n0 z7E#B9QrNuV&D8O^fwk)#kOJy`+dDCjD20_`MMz;VYpq}L&lwz24EH5SuKxO(58C6r zHWCtNdz6NMZCh>A{}oLz|D^E|`2yCr%M@Iax7=o*Qn+QHbJN8?XeUrRnh#@zGO4>x z+Nbp_6I=E+(Q1#TILvqxPN1cXl|srzcuz7{lW$XAaNHf;X~Md0QBUDZ~p=QePow@s~ctxN0E$Kna@UfrELF*@fmLI zv371Dj%tVNE9{$EjVygN>5X>>b=f>i@hq4ZZ>?>l`e^~X$<23vrL^zFirq6`4?4nL zy^?7q`??_0<@5{TmJMc~EIeUpRrPvB@>r=(1vjOE)0hb<@u<;2diH*`%Oy+d2$Bs# zrmj7S*eTCOU!(c?Fp2B!pELZEI3#7dG|duLbx%_Q-X;|5m}RM*etSD@g@0)%)&EmL z!-*x#SA_XUYhVrLr*`B4U)!8HyK$-Q5-u$bDNDGOFC&(t^gQG^s4Y6fR~GraA%#hw zC$cZ&#lD}yf>`LwMX{s=8kOPZBSR!ko>H@Gkmaxxt%06WHWlubO33WbGWICxg@-)b z?O(dn#e^o_t&!>^dsE^})0YbX$W-2kBKqORcR*4GX*IzeJjt%zs+R*j6U-2gHmiIb z4!#D&2KwvmQ(o0#vN{cGc=3(t7+L)87ch;60lW7xj^cWp0<=o=Wm;}W8TNnh{$DY5 zav27%_RjV~imXb8KxQ6tWft_JfF=un48=aE%G2ky+B@1y@snYZ%ywM*P(NGPPv&fD z6!p|hFs_bednAtdKqwPro&QvF7CkR~FgHBz9<3SeDn7w-)^FD@I(_B42= zxPO_nHmyRUsq3(B#tABz<#}}Cmuhq2*ho;XZb#MAzQC##V9Lvw4MOfo>`yB`K*5RF zoSME3=Ho|!ve~$cp9(S5C!y&m-m&-omE#P$Jq3<(uftA^zH-8n^jX$?qs8u|I&?$e zD=R=NrA(9lk1F5N_ap6ipDT?OWgtdQ?f1$H3nb`|2JAUp5Gh@X!&lzGSAt78l5 zlFdMup^+e9R4kXj={W6f=CQ`{#mhZtpV0h?1M@|y$$X&OEEx2m?jhG7NsXzWc3;9o zrV$~IH|!L~J6v@3S@GEht=B`OpPsEVti!F$+;^foCS}cODW2cGMps1vk`z9%2^kWk zgVHj`5>I16s=bGLd%kastQct`laAX~9iEbWMgF*XZp~7~guxA>SfY?rSM$$y3(ha`sEJOIB+p zaobJbIrBghnJ0sel-hXJT zNBCaC*J{_4*&NY`LpAd&6Ofag3f(k67Z7CFMNRoqd$XAZ zVOLueMVL+=fgp=(XZ%MSf*UiDfbn`XDR1ichBbKBXau=0yu>6(l+T=6vrzA1oU9(Z zxY;lPtGJxYaJ@I5X4UiJD!A~0J^xS2>pxBcHTean0b+G7>(ONr#s$z%r9b_?fQJ(! z2ib?ju}ALr1U39UTN*l@zeRj%13yo zK1}E0Qb6rh74z7SAI>H|R@nJ1vj?JO%VFs<5iYq{j*6J5X>WuW-{|5>mi|ZJN~gMF zRYp9zN*l1#s!MDpTqw{M6SDxdRaWMNC~HjHSLQTVENtZU29ce%xvqu!W86yv)Ew$> z$@}Mzx>rZ?=UkY7JS{D-fT2stM7}KXdPSAKS3_3ENi$Lo*P}OTt7p*E^t7H0kLx(2 zHEbf8EA89_PL?EY!nCJ-JmUqn(xsGb(4t4OL^QO(o$Em)J#}IX9;mNmgLQ9vK1ZnQ zG4u%{Ln$w0AdZ4qTPKqCHzwM#NaNQ`7c3>FXM3n&HAzd&$URGH@gD zE*RntH4*)q_ey;#jOnCfAC_JP#6UxNIxMvsUtXtd4Tr1_ZcUP-En=kI*-##+>51E+ zvxX&?bTW)*ISf7Zwsz)Sa~{l;lciQ;U+GUtfWxn?=!owzsx}+9fAq^_UG#=o4a=^L zBiKCm3o8mmCuV7v0*7u@+74#+*ut=<-4&!Y?w^_8np9wZi+*Q*lf7@;d3bFJyX3L@ z&hKz0$XZ@F3&6;HOT=mAa2jA`EXrMyyk=HYTmCq*;&gRc#v2Kh1UW-*P$Ci_)M zKCwoapE=xEm9E4!IN-Oh&NL(e-jah)(yHaH>b^#lvmE=&!>;-oAAx}BHQ;D^j8nDm z#J*pL>qAQYlR)2J#LU~YHG{Ks(t(L$^&-&h57l&%2?4h zPKyD_C&7Z1{YTpcpWaB#)JwdH^O8aufqzqQQo6+)O9|C1J(jfeH{5LfKXISxBa=w|SiqO}o@om&_{ncuKp%dQ(*^rqp7s+)@+jk*^N1 zAaODnf=M7kC~T|7FZfTLaUGQbE8dI@Vw!GHVAYoLW7!rwW7te;ybGMEeB4;=;#k&m z*Iemfa8<DeGB@6#^HQzU#Te9fmrkX2a~lb>*61FeYv#C!MTmFL(t5sc~+OMnY03%-X+ zL$@gaB=8h-ynQ(R^{H8Aqf zZW`loy|fT_XsNFm2qr#bOzd`mI0-L*r?B5QQ8EnAd#A^^Hm+B6C{^4suBo$pZmp26 zGf`md#Bv{5LSQ&hVS&RWj|d65&06>U zZO;>8i&}^-aIoux3tj5t-G(PNHOFg(c(N`hN78yk$UIPB=HLK2y|{66oeptNYe_*9<4_ zVcK)5H`w7DxhGkM6s_kq0dE-mCUtsl-U6Lb4$VA1Zl8gi;^*E$EhrHrBB3xQ@V&K2QQx+E|83cH!Fs^x$kbqCSIe5CefC^4g&`x;_c z)X*^X-A(t@d>>fqy={OD>a6-B08JFtMg`H@gd%Rk{8S3S-WXzji#@cmcLL~TyXQl1 zu8M73?yngHM32Fm{Y7(uQ`8psJ~^FyyrFvT&Q4#0_1bgf%3QF}$u|L;!OVzCodMBw zvP@Lz>)N?4Pt@i?>aF3qa`<#)Vg1orlvp>lo0ypua8m|%oOiuQ?_2x~fO0XQCS*M$ zV#R8a>eOu{7Xi%cPUN}L=j6;w%a0NPTyCtriJyAZrGG0DhlsZ0TT7Sq_edZ3$?*=3 zL!SU)r(FYcxW%Ap_-IxtS&gp2$e(TR*D%@|tgnUk*X~YVwf23BRp%>t^*V(imdJHt zES1KB81LT$3s%iR^TP8(-TBwBL&)SY!b-f^)z zW=FfK^U;hKYu$rsoX^sI7cw1hD`y_Oi01HJ1Fz5B2j_XIlp!5^1TIebdMtoqWv6mD z`2OthThO7YU>m_up~L=IJrY1bORgE%D`{T4BFkYdI^XV-4$j4NW2qU@tVrg#7;%0N6tJ*md+dGIjHn~s#X5y|IuMj9oBg+mOe$U33?h4b z`(kvwxXErya?mDmOnPUh>0;?)c1J+aO1NxI8zmN^>lPOmXWr^$1xbQS2e+I^txlQj zPQ2$AP^c|JHT~jmRCJB~q;>m;OZrj?yybER2|hDg9C$jpYCZl_mVGOCDo;>_Tz+~- z$ZzktGjE8YSdJk{I$rh)wUV9FvgbmZxyQn#Ucuy?vU;92C1Y3a2?{phq{mY1ZtQM# z`(Gq%w-*%WzBF(cCb z*@ZR9EydExx^?w(T2S$_X2pC(Es5=V*)ApR-a5zaT)M7{t}F5NxS^NA?d_)a1Bc%j zE%d;*+cukNWA!BrH8+;_C+sSMJoMbYs(v^5aQEN60C=31KUx6VLcMb(E6LPu_!Uo0 z<9taMOX#yNucKel?Hj(94j?e=0{PY3HSA@zH^luDdIgb}$#}L2C}tO?U0~u<3nSVW zrG|4Ndg!4N5T_40nx(W3a9y#5vO#%=xQUi0W6-$FYS$o$04m<@cGxW>B5m&~jV%%W zT?h7bi%16D=V_W<9G})w0-j7*t8AjcR&=c8vKh{?nNZ%S1_=n>m@k{5Pu`P{iu2j- zGva?An5E^Wh!w0=NWy!sFDjavr&Ha@6g#lAb~p{Ko$wLM{*>lJXNwbgwHq2afk0I5 z71p9w%z{Yd79zE=$=OlfWgdH4MC(~|0|{RM!AxtWG!PTPuLQax4ha`a+^SZW7udVI zqr2?-?L-h}Me}5m;q`>37--i&-&A3SiyT~ z2g6Ti(#i|qds`EPLSDffHskjV4o+-Ptjjn11rYD9Ons7=Se}{LlfZ1+-P$v1om}g- z7(z6Nk5}5!Md^)C^j=+=8Js$#O2CA<*Un}TOwjx=qX!-j7-m8PVK*|9m=k7rp;WcJX@ zyHxUFF2+xqt(w^`CY3>vUI^vB^E!~^H(>#E!!` zE6~Dao))18T_n-h-P)^}it(93mg~muux9wUJ~~Bb7>6eG8Qp!393pn0rWd~>aCLip zm^m1xyi5WR(|rv;rF&nHNmQFc0bfvC!!?bMOT8^x>3hf{Cqkp$8kv;r{j(iv^pmn` z)z=y*mQ$1SNN5*^6nu0Qq@^R9n;)COkU+=KN%D}+TR(++C%BIkfE<+~DL1Ez_ zCN_4}SVMth=l%)Bmw7j%+nnwBQa<>~+*Shy{8Q%imG_1YvnKatJb&G1+hWN@i%%W+ z_77e{612VI##alk_L9pmXBNaw9T5cITr+L)E7sVo3#er+xV3hqf$-6#N?Y<;^0sm; zhYZfPi)tbCbl6~0y97i*y{nd!X@^tD%?*}}p z@l||g6dg1Wqx)|HwlAN(mEWD)$>e^2^x!12j= zg~y(yh)0K)w616|OpsGd<5|RH9pt{z&=%q)QO?T&jyA3g>4@v7lwXB_ij!DQj^W2l z)f=pp8_s#L&J6L3z7E@6U3`l}X7}OF%Ct+TJ1U|HkWS^L$)5_w{@jzVSds&8q~dyC zzx)@MhvsK^|AF;5u9Q7Sk?p32_V|cE&AS^dAA{A;skDCs&wu(J^a~$6(dCXa;=Yqu z=lIPfMv(qgno4bk-qV=Tr2kK92LAosCD+c%b&b)wq~GlP6f@qW@#{enP^BfVoSlMS znb?1S`1k)Y>vk2iB+x62x@^$aMcV24*F0aR^keqKL1W~dA))!RH{}2P+i?}B+1Qj) z@7%fbIIU?n>~9LUYNAo3UCD6?i{8n!y)Z|qdUe(PY<+t9URxEBoTy-&Wv1acT0WxC zc|;G+{&7vh#e1{^QHkmbT!ngCsWh0UQCG#g0S7J%S9?THe(@^!1*o#JlMG!9({+=gLSm8rb ztm_}O%gOJ9S^O1U{dY?MB46`MZv3|bw>_YyP1&cZgQ*X_p8TW}6aIQ>{f$CNlRkN) zvn%{)VE(0&%Y#^(HNUakdBqZS)6@Dd#=8upr1ube=H}z?;wtqbttB7qHBnm1Ow=r_ zLv2me4NJVr?+7&JDep)-sMfA-nuN8iebKM%s(5*~`rx|0Zwz)M^mI^dBGWma&0)gb z`L5E%mGJcIh5SEOv@|P`$u?sDd{oq4SRD4g5||B_PH<;f14I6j&c00Yg}ly}QOG3$ zJbhZePR+|*JN?1SI_!4LTBWRT)*rp8%(PZf)1#>#E54wO6Y0VQXI-%2aK1a7Waufx zSU)3o%FK|J4WEQ%7l34|jmW6#-^hgin=O3>8^c0=Hwp)Bu-FZ%_rs0<*#oB6KYfj`8(umuJ#>;un|GjT z>o{W0w{l%5-YD)JKEX|S&aC*y`bxQ?)~#J4!LGD-$9Cj$BFdZ@elnrI{P}rtgUKp& z(A^o!VagdU-IqA!INSn+H4A}siIMr*m7P$;hsedAxP?_8@^joXIAHUIjrHEhg$}wT zhedFWldkLgk05(Bzlshy{*eVFe2z-RfS8!|L#BHjI#kyrwYn4aH|v8Qu^E+NSWI?r zCjZhHDIQ;Np^_wUTakR<-)Yw&fZ4k5CF!c^5tEpqzsli*QR=G8fcGlnQ z?B9kbY>VY20`8{Zx3rBDg81-rn_#*7%y}-$RU@Pud%srQ{0}C zq4|v`@iU@%;JA2^?b&DJ!9(sDFGeb#M`H4Vhv^@0RTy{J4P^B#ghof3k6V2o#pm87 zT+t(^gbEv{OQilGIh6>OBK+%}TEvo-vdxjH8Af*&TIzc??0rx*WdZJdh=vAG>d&#Z}Q#w%Xj*%-FJq zx7xY#Y~kC$sc1Rl!w1Tm@(2gY|M%I0_{DNswG%1uFG8e&K!6tT&nD7WSQhtZ)8DTidA7Z#VBNntrG!H=UIyEAlx$#vs!s1XbRh*rfrp8gK16&VaMl zS5@jb4@Z#2Ie5Lhz_HnN2>IdW81i)X#`{;cKRL(yN*I7iDw;zXj@fGW^+}62$b$J# zQ_9}8N7dOv`oE_0HW{b93d4dXgq@$zKOt6&`0+f<3k*0W0T?_dCdjXQqdT{#{0jPWq1F`gz4k5mi2rBqy6lQ?(Mrrmh7WJoJue|le z_Ol=pIMSQ&>Q9cl%Qir>lmLg}oYZLfoE(yRz6WC#`OWlP;zQ@YBzuv|D$*{D3V(NX zWJC1uct@ezt$dT}c(~S;_4bbXSFZ?i#6q*LRQQt@)i8rs?AH^2s+|*t5mjvnInQ?} zz&k&@yi4?QuOo?19KsfuNUmKsR3hzecU?m-nKvSE!+u%&~R0@W-6~HE4j+cMQEkIN16l zZ=OU;Hxc^L{S>1qI$<${zl)?h;t0XhRu36?7!srRxX;<ta>cR|j(^>Q`0Xaw3v+YTrGUz~&lhEF4^oo+Z<70S&WE(~-(J^sj6Z&~AqN4GINs#K= zTp+Z%s z5|YUMDeIKq)uHJYeJshyd(43vdU8^y^v(I8h)YYSlikJjDkUBx)e3Qx)g4f{z=)5R zGZen&Vs^yoZGoAU&U31?DyYW#1Y&4^BuG~jv`lZ)OJrX#E! zHlNOr6C2)TFnX-%m62+9h;0S{Y8O{i~=lpo# z4j7JKs;f?KE^ZBfJ!XD*zIgGHs=?=%9c&)EQ1qT1#vS#iF%t9)bC(Z7AN>ZVy||Q~ zp589UJ;ea(F$k)1{GJ_#9Oi!NPHUz+UaM=cGxA1peru1FSBAf;sFzu!xg!cU=3TRz z!m1iSk(?4R8JW1X0@L-(O{(9iFR$)3(Ql9-8K^<5#_CiSY?ME)PKc)Q`MEsDk00kT z?`diwS)GIOZemS!RhG4N__D$$am-F~mENgn(T%wO!X>KcMF-UKXg5r}5A{&dAxJC$@Zh555D+K|s3%rL~d#`PEz`Wp3NT zsGX?ji!xj9SPM8%N04!E9^Txd|AZYxg1Qf?LV9KmbSI$@6R3YS9(3(X6j;apI)-ujXc|MXOMyi#aT;PQd2 zw6sIwPFkK;xpal?6oW};cm${gkOG?jbccmbbQ?$B_CEWC-MmR1xU2Q}?qf%pIIgVD zcVxw006KN85niba7Dmf}rz={Rv2-pE#^+1J{WqcZyqqS_xGkuR*PUE>om1IDIpWx$BYtZxPmyD{SBnJ6~5uj)utM?9Y z+87s?j$lxgq~WQj@|=60(t~N9+(Vxg&m?<;~ zOh>uEz(7-3PsAqvjX2NevyJG3nWC@W@?dLMBj($dDC}fI$4Z4di*xxltK@9!>p~?3Q6^+WlxnJdT1P0k_C$ z*5HM%aoAphyZxxegw(WBLR&|>&O-ZY)WT9061g@5AzU=8JRE?76zlrd>7_gN9o ztrW2U2T$bFa-mpzs$u_XvY)N|3tX_AHO0~~Y#A9wZ3L-tQHr?w!tlan*Q*{!zMrYs zX?}CSuiU5hOY%9=WC6Dgp@L6);<&?<6$I`nD8OIQDhTqZWy-oUE~7viB!Vu{O;)RX zdm}Zj7zWac-6%Wgo_wp!;z3^Nc-LHTusulvC!vP`H(kTQH<=aqmX>Fi=N1-Ksf{99 zM0ofvmTX|)McmoImEiU*asCwnGyTEj(yKI^k=e>waj!u>IP&=cO9>UH`p?@G&F>ps zGK4PcWq@yQ!*bp0lgl?B32#DO!^2s0d1o#n=7NJTUo`MK9|eykOO$?m>T7C?F zIZEKftBbr}2nW|G2JF2dyZM_FBHECc1vejn)O$ZPi&@u( z&}?1D=VvI$C?ff>K2fQUefh@S86TvseZ~^>Z!-yY$|Z(mKM|9z$nvv$piICmP$gc6 zxMq3_d@!as8P%Y8iZmJ*j1%8l!|$g!5+#c9%u3& z%+f3-+Ry2Q;IS;nt|iyjy<;@^c=IPz_eU`PJpK}>#Nn~KmQt)=FIhA<4|T);T^yNq z#qCE+)DH83Ou$3SAt(sYTv<-$!^TRC+DtWT_w7pKifboIHZSu#%nQUk@j*7eXO}8BNk3=2!H6!tp7%9^t+4xN;mp6}|h5l=%514!Ge;%yKx# z0s@4ibg_PGBiaG&yDM8U!c^RAQP_O%$s^ng7R;aeoO)-kq}oo^h|?a(T+E|5eJPf$ zm{J$cs^5Ejrs(GoUhCxxh;wH_)M^8m=XHuAtiEMyX_>R*`IUfAA#DZ*G(+?t<2kl} zR$d0H7(*Rgyk%(y3f#)PLD5B8Z{4IK(V1M+UF`MbUDqkj&lMo)TxcyYB(2vRPd3$1)c;g0LB-znJCy6%_sT(;DG7d-7ae^yv1}5nqv(@ zdefeEIn}wq=WTxtU{43Wq^)juAgIPs>5VHgR^V`6qZ+mURsQ3+ zS#=HTO$yTHJBjbMplAF+ikMlgm@}~1Y+PS&{A^ACV4O;>R_zW5ZXYfsjgs(6JT#L( zDu#Y+du!@4UTzgtT`LvV>b{=w+;*bM-smg;qvos;P=C`QE7V_cvR2pt=IgELWUK&^ zW>9CTOYp!T=L~ubO*jtQj^y#|^T72yo%=mK5%v9vu9z1$aL&iq9~pr@C(_wxOUGIK zTyhV*pkFEjxFH3uGpG*){8l@-HNx}xm9!l|v%_3i$0pcUxYxryGwK$CgfxM!vz6E>Bx2_YMSG{9NrNJgPz-xF=N=_K0%zPGVM)PitL2 zjO80_Yj(SzL%Uw~PcZI|A!}+xFJX3#_Jx$pAj)b*-dLCqK2S&k~pDh=MNvHN= z9d`07w$oJ2Vwd$%dZCl(MCdUPUD)$WkDdVK*lidr#@pH-BL|dM!39AP@J7Wg=>?F1 z4g*X0g$p%vY8v}aZ~w8NniFPLoGrO={UC5p7d4KAo|Gn3o6OXE+wMhs)6&v*HU}!l z&(s$8>MW@)B1Tyoju~dWN`=+(4zzh)1r>l5Vc4v4lHUatz)@Iu^^QKl>mR}8eC>eL zyL*HLDZ8b6&Yt`0AyhsGutR9M1{aY3f&*~hEFRW-$RjY}dU>x;w-wCNB>jwcrQ&YF zZlBT4qFj$#t?O1~u|@wJy^E!zhJA@pd9Jd`X8d%^!9@f1a(Wg8 zfvs!FM4deIaVl2nitI_iQqNCVaxEhpo7_Jvek0+J<7}^<_5?peBG@(+&(gH}piwh@ z8|uCVlvdG*T&?mPcWZ0wqtwE$U$#J%=@v&&&E&%$Kcxx&q@_~uCVi0kfWo{RMz726 zlCN3%1Z-bRzJ77B!n*C)(!Q1(sl&fa?GC(HTq#XtouyW>{ZB#bXTs_B_lm0m-sjprI*qs*{nval~G>0WYM?X?YiHz=z7kNbH;0J`rM?TSYy(Y>`R|NO$;EUs=&jNj$*OFc)nXB ze;v9%o(oVS!j`f_y-OMKNv#qC~#2GZ9a0Gm^AZxWZ5?srBoCSdU*c>FYUACnqai<25$ zz7>BfdNGl3{}6@1TSyIJ;f&h#bSBka!NK1r=W!?l^`Qail{I*J9BAufW=WA+<(A`X zU?VO8ja;}?SY|ZZmjd0|c2IP94?w&G@7FAfD)tL4`$-|QO79_)!1?@J`*@l(c= zqgI=1eII{$6WrL^yG_XPBdIN0sfCm&ZHFR(*SUP7?394A_aWKm`V)`(nA84l1E4$& z3l_wUFKpindi~u0gKp`)!@k<(XeWXmW*BT`tZ~v23za<=$A2h?937PB8y+dmU9RiL z=e}Ga2V_8FMVCwm(V?h)PZu3>YK@O3L-+NI!jMQi#HK)rIV{-p5@HIGOcYOS0q%zs zROD`Rz)S_OS?U(#nBILcChG-(W?^m2I;X~VGm&;XsDkWnmGSt(SokiA%|trxeep40 z`$iHULN9^OIVo%DtlPxKMAC|NRrojSOT;(ctW3|H9)hyQ_CW<9BZU>$6vqls5#wBv z=FMnJ9b@w`MM-0>_rYa?zoBYBL+0c-F1}ONr!|cMze|MxW~`vTCJ9t?b}MOO`Sv6r zWAI%D)|G%5VIrzPqgXT&G4|w8XRO9K4oBXBbQTn$suv`k#o4tJWh}fos<~?I-k%~U z!qbB|$vMmoNL-h_G=cMy{jLd0%f&WXS@E6i+ml7Ov6w^$e6-5US-?!sD5!Z`EwXYS z$V_xc|ERB4UjvM=11Lcs!%_#e-BTo|ORBV~#v{f-pb>dSsv z@oG+A!Kn(v1`UV6NAL=AB6+pW%qhml`h;wgetM_rMry@?aAna2U>sh9j zh58NkF~L=cX;?2dH|9MSmR=qBdrObK8V%5V-rt^t<+$lW$!J`#$im^0w;yY;!2ZiK zJhF&0mm1`jkTZSRV4pV>~jYX?p-*lgQANb*P-S@IOZzTX`GwZf^9yZ4Z za7>JE#}pQsc|ec1BSfr(0>V?L7dTll6})Dy9rs8BoRT1EX_RnK5YEsiz&#SPvyFAI z@>(`_Po5oa1v?bR7tPay#`28JL{aiOu{rnXaXZW>xa{0<9M~fDrbCs&a)tx<^QPGi zo2M2J7NXkXdJ;Or>5V?@Y%j^%4ZWWN$U!M85cl;{sBo(R17ca9;nk2W-7 zULO&h3qoeyNIq$nzV;TF5^e)G(w~0RjsOLJw?Smdy38NeJ9vy}P>8LL1H{}JC$uiW zqw0hT>3w?l|0C@y1ESp4wgCYZB$N`6Flb3>q(o4pTNceQ zYIL&Ag`A7qlI;zuoOf|GcJksV3&h!H&sW;_2<BjPZTa@if~p9_qE1eU)QC?t{qbiV@}e=n+v@ z$7LU8!OK~aGpi_scWhVZ)n&4&+4WX3Xe1~p+p!6&M-KMWqxFh|Kw)EQQj20+4 zm{fX|vXE3=l}=$jqQ^4OYzY2Ymy<;PyL8QxjH5wd#IpGAfqVtbR&sgVziW5ZdCIAy zi=*5$bh~G~@2pC@)Vvt++{l99jG4kI+s~lsZ8xGyaydL8GK*24xA@%%j^iXbteNxA zwLTc3xwlqWV*M6gxx?C&{CCP;* zi;aRV5Fz0y0JxJ29kuyVc{_jpmR~V#=+cb@glpN?dD?bVFSdXKgucn?LF^Ig9m!PW z$W-je`FJQFz7uKCF?4rG-{&OIcbnNUr18N-xlOc)cR^9jY5iV1f7Pu2{v`_VhoDE5 zb~7ChfU=Y9d>$-q#j;ffVm~ z-xtdvX80#B09eQyXyAD!s7aR4V&VF?<#?+vJIfoc58I$S(t`rDJI8%AVI;I{xho#J z=!Sob|NUZ_0oldjdG+SNhCU7C;RtVEo|X5hj&ZnSPVLcn#|6B+0H29|w%kn?vn1H? zz`WPMENpYr_x_H+VVQB8LKQv*?r^3LH15P|_Xo6dF@$}~W{EMN3~y1#C$!^SlZ08d zD5wcz@!~KlG$T1Mqr}V}%vOOV4WV(dKG|Pp8-*Gnd~Y#lXJ;SvXoIPUBh`0JaN^9B zRsLBjM=XP$2<;7(2cD}@`l9Ti|0oCkxG1oAv9^zNi(s4*D@NCa!(-OXkP=%~y7D7L zI>HNGfyYucdcS+!yqoMBd-be&`={WgJ_H;lG}cJp4#)^L7$c{LHN#hN5RzwPT9}mc zweB8wO6Tv3;#ww>$n@*YcXIGNIFK$u=&RjbI{H4MsNbL6z`{ z?XmOvhI15*T4blOB}G(#q>FhtOR434{G#)91>llXvJrv%$EW zJ!B46)=`2wH{-obfYt8YHx!tvuo_{D@7r`VxM8&iHpaQml;_CLOD zSXrZ*hOUKwzyV#Rta}GGw)fH4vdag#bJR#sS91u!^4i~AZ+T31*IbGXPbXg3Gi=4v zSPk@s+BM0N6PAzL1 zgeZ&)pCdXMpOQ;9{b|M7R;Df$*Jyl#BIHoEa1MP@QRIOmgZbL2uLy`}2LjSPtO)OO zWV5f;oEPEs>$idE^?;N72hhJ7a+UPN?E0-j8hyoqE(I!`t(@*~SPND%Es&4pP5RW> zwWNSH?Tybe-{kvxKji|!P7@>7>8B;_7JZ?S({4sy1z+AT?tL(vcnIViVfoKU^nDk> zcFY3kD4W|mbNBk>8XvI&nMrxJ&yy-v@TE+KMI8NU!HL-u_Lkk&E7W+{I%nekt4)en zGXIqowk9y!s&*f04T0R?!yN=g-o(iE1l&QJAo^K2_0*=~nQK`YL%1sU@p`{ZVNs@8 zcLF_Vg)G7)@;4@{I(TgWGMIlkx756^Gikciq9mV8Jss5Nd*fDxqp?%^x0iN%$; zIR~{{7R)(KKil>u z`w4GDZ+9kj2DOjq_mnj0$DMdhRxX43)W`9QFOv2gF(d1aIw=+qS?v8hc{z7s)FOu0 z?ME=odiZ!KcLdYRwTk>pH#yKS*^=|D>BaJGQ^I!u&_+imeU1wFiicVo-PJKO%DD<8 zua2EbH=Vh`TA#d9IMICVc~xs zG>h32y?OVJIDAVrVo1KJ74H@NHw@*s)xPK5^+2K=&0{qjm-yuB!t-CeO^uCDsU@q8l#0F>G`XTT>8oVc-vvWtqCAVRWePr9ihEZ@aCOAE)dU`QYK`g8n)QF$KvdJiToP&!E~hMqXvNZxXrcoLec1Y z@51+>`y6-FRGYMx_CSJ}0m1l&o6d}CxwWP{^6;R`=K{6Apje5|h-OB(&ImtZtJ%0Q zu>oLT?yVK z$d&+7R$BT47?_`{l!IkQq@o}z>%<$RW!r<$z`u1oa^5?P>p1B`_*W{_1yRnu&cYaN z9)9W170bm|1rQ*o_2D75g;?%YIR?alEW%?%*R?F4X8l?44Y~x~MA45Ios3bqFdHSG zX^{9tsPWa#-OF@ zw9vhOos2BHSo$-SzJ~=3IoAUH{+Vu#i+~U-ffK36y|LY6GhWa2eAjzCJVSc8WzBbz z6w}TBGQ9Q`o5Nk1>>$xNh~PA$E(st9Jwmn$gK)rmy_+Iu_@2mm1obrv{*?VI7d^ol z3ZXo~JJ|k~ghf^bk2_btAt@Vi{zH^t0Wu9q07egO+|k7sOg_Yx=b2rbnlLkSd%1pt zPe6W<#Nwce!iUS$l|A^2OYwG*;1n2}S7f0MhmE~iCGQivUtvx-3eL-^7B7U;awu@+ z!W}RJqoTzr*O_a%Cna82e%H;%RlpCb3Ux|p9se$}nZos({mZ`; z8m{O_L;@;i4DWxifhP9$12)X${4ae=M(07LH5+S|^ng9RruCE^^}UBL5zJnI=VEb! z=azs&6V`HkL27F1;%mx+Xa?vlt1!D-`!_`Ij*>nxseHRt1FS0Hp|uCfr);pygc~=} zjy5a&n)D+W8VsRxM<0eVOy^l zE|-YK-C%}tZunYlNcWR#H(%D78+^p(uG?wmXL!1TOop#b%7#)5NnTPu(8IH=T8skB zIWA>@xsAPJnis;}WDJQw#ZDa}xmm^lGdU6Oov9FcrC#LTVuy*nSyKWvmvPbk=S7X3 z`zu73@o(J+ZR@@2Hf7tl7g&YX*YkU7 zxX68q+DzOX02ql&h07EC0IG7f8tLdTIP@aq2s$VjTq=H#Bnp>dq=&bZCvnHGnhSG{w_Bkpgcsko5o z=f?$N3dSx(fzd)-;O!8y^94)~Jl;%z$fS57510D^rnCf35K7?1LT+mBkIe`&-J&Kv z*1J;RTY%A^Ik=bT=p8qaUJ|l@C0nB~Nf0L9CF?l(T1{%}y{xUOoz(AROVx z+Ys1ya90|wQQXQ1X)37v;b6ABJ#MkeZD(OHOiM&t>a2#f$dUbN8;G5Zhfc6(=s?*wvww zaR1m2B}%IK7|wGZ`YP`?*d?n{vfu*pb_255N~d?I(<$7BII_5bOy5gjK3f(BJZgX? zq2rR*56nz&(%z*O0yC^zmxU@fzR0A>#Si%F;&`xC%;Su=aq_QXGf&&Y-Xzyq^`@eZ zqia!B11F=!M$k{d@8X+RG{u$S2FNVEf`+bh`h$^bh5^@uX?QCj(HlSul=pDh@W?0E4}7O|c@-{g`FW zaH4NcU78Yi8!eiclGt~juxY^vbKbp}H(csAdH5zgyaL?-SV2@oYvgO$tZVfxuf9mt z&?C3&u8Hl(pb)rBamHiVY}NfDXa%78RF^x7BD0l5puJN*GoITvtD}8*9+XR%qdXD7 zi&>h2$8u%k2O{=271b0ud0Xl~5qnaBY zJc5GDCuOPR8Y_2q%MRS`Jeayc6oEn>Hh29G1Ws(-ethAjWm0iQNt#6g&xT(EmzoOdaPhjU9iGRxOLUyf68^f?fH8B;y* zm0QRm!n5$aLGN^JeENc|>%7g^bFfA<`H}v^2Z3`KO$EgT<8)g_UFfX(_32nfS1fvn)mfoQ9=l#`udxBZBWl{j(s8Aon)=R8^rZuF z7B9tZ1HM+0_mR6hV$<~!>8SZ#-9`>DN=U)Qxj5oG~7R!B`zZm&}O2I-toC=Zm z5KviEAP0RxiSP6SxOk%hwm5d*XGcHpbEuPHz*drwLE~XcZ24YI<#6@ri_P(dl1;sm zyu+2giPEb5?zwL)^LP}cLk;I*j@6(;mw!3I&TDQ1YX7~J)bq&gdV~mVqXKlQ1|InB z0u(Lp2qt2X`Q|I?$r;}cKm}%o#KG~>n*g7S<+ga6&Hj8RQqwo8D}U+Z7P0qyDBtp6 zrw+j(-05jz-=Bk+#Ax#{ag3B z_hUK{3nn^~D%@CrE0p-|h%&*qX1ogjS!V}S2#Kt*o$|<5%gq2G2ul=lml&NzfXlpK zHzcC#78=>Jpg_(o#cz_7KO-Pl?EF%=!f!x#3NK}|7 zwu+T)uV-oK2{%psVY!EO_sQ_IC1nXd{QJ1hfHLJR&8MDexMoxNM`i_a`klok$GlzZ zhu9na5!0_IFhu-P_AZBQpG3Rkz{OwgbE-oL>;jm0+@ znfDpzD1eiPQFgW-=LA`ek|}JhBSrt`EB24`!*5=LmW@pwa2zQ5ao56nPE{1sftC1e z;b+S*VEs&@JOL*5ml_U!J23rq%m^GdxiRnD6~2*PLkTtw?s^WXUpW?k{b2tpyngo| zK)W?x|M>yIk>5)a5LNl+$_K_!OvluwX6K@J|GXdmcYok7AQSi}qb-J> zUEE_3|AYkUrPfWP`|lR$uh08U<@1lXKnwI9ZtMhO4b6K9L&g93+WgxE_m8J3c48^3 z)V=8UxsIvc31Qed{lEP=LUjy))!!gr-No_^9QuCq+W+m_r3G*AA$0^oCZ$%70dMp} zKr@GCor{&>!=p-f)0Wer@Oalb$^YLk=I4CW`wTqwqjb`^WNe8@=An^_y7J|OnLUii_4aTiLiN) zO3erfe)sD~diz>T$GVi<{Kb!^6i$QRopi+hzCx})y3>i92_N~S2}!wj-ky0X@#}(5 zzInCMkzq^c8K=jgm!}#~E-pOq5_^4m?Rp*^}dx|MmS`@tZfS&!kOoKwJxj?|BT| zW3J%q|4q=L7_A)!PmbEh#F`^%FMm73fqG=H`}&)jUoHij-@L5Y0|-g_EPFKcgj&O2 z;g=T`qg71K>V{+1OU}_)7$l-%&^W$8NKj2yeE(7mpZZzUg7M6`{1PHy<!E7TfnaCaJAH!TcY{&lNMjb7c8l4RnK3He0mk z&n)Bk$K2!uVipe7nin+iEJMQHy~m*oM~Rl&g^S*|V;_GpW4&9A+%w<)c698P`zJG@ zMS*F(aJV>{pBHH_mRvFC;(nDz^)E{r+|uA4Uh>3|Nm~A8S)c(|KwqLGI>4TxI@jm6 zd-JdTL-80x9;2v;y#z9In_@JhNxw&D_#g|0=<82J_qHB$eGYtMq!;_?FuG~jFUJkB zwgzw1R2kV=Xje?`?rGIt{x44+;*Vewk}e>9Sr+a2?NC41Pw(`l&J`ysO-=bis5fc! z=#4q(b<6o_iIXGmG(kVbkddvPK`3_Mp`HGNfs+)U9|jINS5eGs+fB#+cFKnluaD(lk#S`9LBIX@tv$-+U!ya_k6S| zs{f05mq^uCC&iCGudgtru?=Is|2`KH=uF5PWhbLuaxVW#5Y0G^;dw6C&F8CdK5l|o zvwvZdt(EagKwe(X(Z7+)47(&W#N4Dq52NwziUzFczx(W0to*(|4S#IG%z@F^eCqk) zYUyAOp~vfz&D|iAbsv2( z)ij1j-IhAy_?c;KgV2gNwq;b6$~fQsZ5QZbrYSDMS)z88r8S;D@>%42pt6p1OhlE= zY`hJFoD4tKtlLjMi%(#7PT1wkRoCjaQNF!mGvG7Md^M~Ei7z-*F2l$0 zz5CU@?78Ez0yU{_`=m{M0tOTS1|1? zj`?JC#Hmcm6_kVY@lT8_u(JMTesp|Cn>)+0wfqv-NL#^B*HzW(JUJfEu6%Q`{!fAN zi-;k_q{@<`r`N}`a!zp(t!fGEBo&$QVOFzlcBgTVeydg5c6 z-WzazzJ%#qS7#n_41?fpDNfWYoP8!HN1OK*tBZ&O@+2aYaNBNf!)rQ z6->J%!p3Q9eara1=lq0R>;}Z%zwf}4+*#b4>G~q>4uyz!IuU==jh*{QpPvn!_WtXZ z_tm{wFc$@#+Ec#XKcO)=QnPif+H&tBfHOqqi@b!fv1J+F9tA?l!`V^ha&xM9GnysZrE5qV|B;oyR52(Q*|} zOnU=Ut1A6TE^|f>x(dTE<9t$-fRFf#qcoLWK_Rt=BCesJ2yr$4Q7Zxbr@Hv3$}Lkx zPs!rr7QMDJ{GPjZKL^b27m4;(!v#R*A8g7wkRonEp%eA##@V(wCH&UM5z=G-h6ALP zpx=u)_b%48qozUtCub|u3##yPQI!BrPoK|N<3{LTC&Yi8eE-8EKSE5HwtHU-oF zao=7sW=S5)nDostz{`zdy-k;TH$b=D$u=lrajj#qrpq1gUUiL?Hxb$*?_j4U#ey^A zm=#7NcgZKp5HI(T^3)xF8+^{zRYectb*GV#xVUB<$pl~%i7 znrhW1a&ajRJ5bnBQw3hG<83Kb{ORroE5X+ukv}$&Q`%}#>D@O=&x%Z;I_t*Y_W03t zP$olR5R)g5J_@AA!jfugWAV=VXN!WC^GNaf`?+>DwCF3lZt*wBp4paoyM(NzFCNJ| zC(h;`pfZuAaw6L0GWbG(Y$3UUy^J!DoGKK!%V9MVBvURlHsBT8#jQOWxtSBMy}jPo z>lOAl>#Ci)c!<;&1Ek|c^!U%m^?&^56-nAIO`+9Yw<~D4SRuSWUt0!_^KIc2QO(GU z-AG$-xNXg$@uUrxZ({x*HdJKH(QLPo6C19;`)2NXoxv>w1;mWIV3#6Qz*YX>2P{Xdzi)DZ&#GjqOaupTHa!Y~2@! zL`T;dHy<0mbd-c2$}$eDtg@S4Oey49b2+W<<|G0SsfsP3`!akd7)9LsBUFj&*ps=N zh349Fq=gd<;PChW9f1j<8+hY# z-AO2mkiQn=#(kr6{gBiQclxKEz|V*|8C~LY)S)N-cm{C1`r>@vp6%Q|-f~#uy$Pq0 z<&4cg@W*x@Vx%#eIMx^!L^rV2tYJZFZdIk8Ol}#oJ3e@CL7LCT$`!63P(8^7SJ0PY zg+CWXK5!YzCtioN4TAK8SfB22=ace-#tUx^6C9L-ouy{#yKGC+qI=5>Mt$~X*HHbu zbSc0;L8p3^lwtP2&yKw%1EPN&UNm}UheWY^Xi52;DYFWuPJRe)aNi0=dVGK_Fb zF%=&YJUxW{rq4tob{bxMeKWP0T5O3^rp`=#MxEEAu^TC(ry>-CJf|%UiyKlTvQmZm z!?2E=#Cov`2YV$4%gqB>bBd=+`VJnDNLEV9MF{R+CVqa8Zj6>%gaD1a*%#X>Y>+K%Zh^Z%6c0U zlhn(q+3LLCcm>ksHLEsj1&=CenQ=9?BZwKUbh5T(TU=NmdB!X*6IdO!m6;6_hU=^U z2x7Os=h}6qeFGm5960#y#!LibLqfNP#m)k1b3QTMW+^`*y?W$|(cW#L(`3_qQDzWE zVFckb$UJIB7jR?L{21Ygn&~iLzfMI(XJ6c>oFU5;94dWo_Oz%x;a}B#vzkFyoHLj0 z_(6nkI&v?~ih@5wbX;SM%O0>4PtT)X52A{#Z)t6jZ*Z zs@E|8I2HU}uqjqKT^)0}=ertWQj;zd^6Yl7DkJ%(ao-Ih#xh|M>GDm{`$Gx7+5U{D zwfWuqlU%hj!hO5O8qe;(dw+3r%88s9nTer|3WZd}?c*`S+Q7cwQ$XpNUobGtI#W1) z;V6Xrop9;zUS5pWeykHN9Zdn!rZ*QmBBT1#=hGfL85cZIGUtW=y>Vwm95KYv7A<^I z%~oP9h1e38U+Vc6Q%=?39OX7vI|g@cRFnjcX!ij#io1&^X1(tTloaWjs@UEhc}|E% zibHJk&ujU|hyD3cvsB~!ZcMQoD8CBG$OF5yIS79`Il~_Kg~%6J&X_M1P8e&Xus>}~ zdZ?`Vg;TFyr(S5b6hfMBzt8(r`7PgUHFcU`b}4t!1}GrVM;>06KN$V+@#Xhu?+)Sa zRmY3XPnwm1NJG9!f4mYAeBLwdjrLq=%A4lgZYCX0Ux)jKb_j#SN;I;N+C$f=M%8i@sK|ZVfNclteR! ze{LlI*Khs4K=DILi#1$RY9Qd`dFsEZAkS zp^&|Swos*!QO8r6a>=o(qwa)5LxX4dFsfU*M-FW(@<(GIyL^Pz7OIcNs$5P#Z|0fR z+^4~guX2c&i>qiNey?1!bs#dFEt&W1c@(8k7OnaU#&bBNv>AW1e^50s7lNR7nSO)s zllVoHcsQ=w&5)yVy+@tP-uUp;K3!o0WN1b7V<6y$T+jJ;0u={y+|k`4dD zIG+Jp7edOqizHTG88358Utd@z8+}LqK)3S22%M5@fzWEa zR62cK)nqPD({VG&lX_1V7An-IBN=O4;~KLV|O-4-(sIsydR!42;9eK}s2OxMu4kLpAE~ zu>Y|C4OaMWjVSH1L&#EWxBBeDGJd9iHBOTqj~y4d%*ThYdRo;Ju+*V!!d8{anJ{^> zR9590SF_t(x{9YZkKj>SNx7&Ck<%(Zm#NhxtxjCL~OIU{y&tE@=7b z7Qy3kL@$hG%3YwywmmQV?)vTC_gLk&q2Bf7=F@5NE&6`3j|?b02bOFyY)nj5k^B5N zCFVW>qEY9Uk`b(uA4$MB!BF(LsTEk)jJ!kv{_>eVhlP}(;R#NtA?%XD3*e&gSyD-< z5B=p=PdFj)S6TH}67r^H=5g-1oKI5Qt6z}Al%*EQ>$qg?2|~%eN0d@uPXLLV_M9cf zenz})1z>=mig=ud-g18)h|Db!Lr`sa8X68A)d|k?eX7TaTyc~;D&504JfxlkhCmG> zxH$M5+n@G+q&pJx;x~hoPWKsfvQGmIW>bzmEiRp$MzYZJ2zqaGuk9#38rh$}!(Yoh zZdr6>N{cYW^>It-Le?Kg0X~Nxab!nM=I|G#xT%-w`kwZuTJhYj0X7{W4Z*e2Qg5lo za?=wz(-I4DNT=}BaB3DOQ7+KjSsu^B@}hB#-b}d&C!xdl<-Fx~9R}*hUXi)UhYfbD zE|Ix=&F&UV(k{cjM^{_)*V2%<9}gyQFzKh@1Khh_hW z_9_&q&c(A=`#!j*n`|=>_DH+lK67U2zN@t*lznO=zz7wHuY8pajZkN|b>g|i3MM4KA?fSB^obA;*x@o5Sl8_E%1W+twX*=AdR0(Ai)+oN+q;aR2ZxYx7n z{J?E4sE=G)%PlNIArZsyrK6Q&9KK0!_$9+*78aHPpTk_JmXwr5YoBnn#O2v<#IKN$ z^KA(715mz)p6!)lj)+P45YY2adRs;@6JpC54qjR%I|IXXwK>O#_>N|%>1{E%hH zNhjVBm(@(WzRWhkbbO?J94f!5HumFLbawT~<}%H#qp>+=vnkXT{<+8FiY3EinFpma zn{nv~Sdnel27^NP-W;zQ2FrvXcTZ76!tg}TaB`f&OjbQ}IA0&+YSEC)%@Wuu5?G$9o*#JJARaQ`q0`*87PjR~yVxfEUlF(4^OaKDSKD`F0mWVb$HM#5kEu6-) z5tI0EIb!A<6^)`P$Dl=$FNLtze}PeZ3dXcP_z!3yp1c?wpST9`R3+fv^8leo_&>o~ ze%N=CEuZJyQ;UdNY&NKy;LRD%!I4=l&eT4N>Zh!7U4Ur_hiru~duHE>(Ta|W?UP*0 zfFBgE=s4%jRWVoWcY?VUHj^T>;ZFzU!SnwZhEvam>>xpe9B5udPW zXN<*#U?c!P<%?lJEk8Up01#u5KBW~y6GLFd!vI&l<7GM&br3XMY=qe1A@Y=>WiXpc z8te6`j(mMaJxL?q1|((H-`|TD?5Ta=vDK+NAD*BID@^g$so{lb+!0>S+kU=1E$qdI zlo*+9y2Pv%c=GQT?-lMV=u<>#Gv3e~2yN=0H!e?YvDiy2wxbT9Qu_&Z#PWVr3l z?39MgyCX9SztbD$S#t^5Dh;I|Z%)X#1_VpyD?pRxtmuyt#9UmulO{%eD$`$|QcptV zC8eZZSDn+ml>2-bh)WiT&Vin%->~cJIP3fG!FBwH==$ig(nTLX-iXF_wCAAs)5<6! z!}1aMTr+iW^nzwb>wQTJX>G&Zx#`M;7+t|rTFTyH>E^}GzhTE&)nbN*hNJHLOI>qL zatt8!-WsU4zhL2#YI%47bD-fN)qG$Jw-kwAW!`sVK!VTJZo0NrgJONWEQHGIrM`ab z{pvlCp=}~58R&!JguRnKhHHh8v6o%wthZZ&8K{?&22v!BR}&Hrk9J`y$eGYkYT-#i zr%~@BHxRFjI(AC1u&@|TeZog6c<|oANQ2v`$-gzj8{Addo1-7BfbU&-l5ow~=OFxN zZnuaS>g^^f>?-bt-?9O29Y^b(u@7cUdy=eJGzuK#6TP0Ae|^)^o-Yc*&b2}IZ!Yan z6Eq+t?SceaIkZdt!-qPQiw4SQ&D#hEJe@l{kwg;ryHE$mTJqLDX%!1sa zqWtwB@uLbk%qw_mC5GPo?%jdIIw=_$!UkwMnm5ce$T1-qr&Dijw7CvoJVXnpzT#cDQZo7FS5Vea}`C*kF#E$&cJ z12Ivnp&W;x_HVMKvakcNbG!t9lZ?Rglvy1`10F$=v78x{i*Hn?U*NI8Qg$_k?D(kmaNvJ{<%? zJt(XO89S)<4N)Nrw3 zGb?K4oKNNO9nESW!?}_@?tQ>%&gyC5iesMOOs)?HJavOdEdoAO>yB%))HzmeIYhBN zR<$o~OH*^&^Qpbtxrm^~lMQiF^P;tVD!=)+kxW0erAJnNwEK}1vKu2$TDpJsm=_Bm zT$%Y?Jmn=1@jS`3j<0qrStKP6gr)atq#h7cPF7_nil(IUw7qGl659CwH@%8j8749R zmGNb$f}{B7Ii4KBw3nSzuA;LoTup8ssHJ#Kwu9X;UHeuO5q=`w3=6Ce)ZPact|i9_ zm6ABRS*zcWxa<#Mmt*|#f$!`QU)y?_?fdPi8n4KEffk^^JW(Uo65RW))U-Bt5g>QV zR%0%sUCYO(UU;X`XfaHoDUokFW~D_lGQUu)TY^A%3*$cSk80NEMc?VG62hAAYv|Zp zR8b-shZBDl+$<&9ET7mqYKk`?#9AWOI$lXt*o29q{7g(tutKcIOA9x_F0lI= z2W`r2KA+9Jgjc7)nS|@@>;2MhU~s=EA!hi5@ACg88d9DvqjCJQWuXl^s;1#R6X^89#1V=vqJ4i_zxz$do}`LfVXjU( zg1%;_UED*HK@Q;tpCWi|w5pZJF}JegJa$#r5pa9`pi`eEYF;%->e`9Z1g0_L_%faC z0|6-L9bq<7A|O*rdz!w_Gn2mH^xc)CY>=9@rDbO%c;1&$6#mG@vd>CiyvK9fn}4fX zwNi5A4Tigho_lP1Mut?-p0~dDp`7P(B7A;n{TB1X{k@KJPF;2+0)E)BzqhwJ(twiC z(XRt8Ns!jAn%!>=r$t&ECG^|m-n>)xFyY054$vO~YFCQYQRj)jq!NakWiZ9^g!OA}vi)Pe0-K;2?LJ2G9?^92G>rPA`NqCeYid>EC zYqcK${xF|#GxK-$EfM6(Q&zgmz@`fN24OwoeA-Gjuo+0ES4Jey-wkpE_|G*9s0NEM zx6=m)pA!mraPXYy;SGoDsSJ6~FfqDiW*Da~6sW<644`ih2HS#C1Z ztZKQSNXAl(R07Q-sc-L(K&b2%cp!0!k}_rmR;T+HG&0-tLjF8J`-|W z|5Q$H7g%Ipw`nRPdH5tcJ4MrZ=0VO^cn@TnQZL$ppr8W?zfR{!t|*s%$tjQX64?lb zCwK3kpY@0~8$}ux>Ir-CG|{@{yj%w%bzWw@D(u}5p1X~mvSSAl6Hl> z+RTgFcj`uJoY#NUYzABDPN-Kthi+P)UVFF{Q;b5;Rgwb14Dw~wwrX2=oKImC)ff8h z8nYz#+h^3h^_OQH#d&zJXq;_EGP3oSHV@|Dn9>NB&je{z2eXHfhjoEoc~ zug;5+(ba4GpKH>-oyJ%hFF zM{qZTY;`mSZi=3tsMYU{7PO*X!)vyxMQ^dk&^)x#FZ1S6OQ=5n;V8#fd|7U;3TPju z77oX)>}r^`87_yk3rFX_OrO_SWaYuiAijtDNTV-OjZPNfbI@m`!;{r=rhhHxnJnQe zW%I4Fkr#$6$n?2F2(qM-StDn9AKoyt)w9@ej{H*ig+!I1-=oQ0HEW)%p^~}aV=OaT z-QjRe#yaB_BXb&_#E&1Xfw(B6@L}|)g?8`i46!#Du9h@j9IYS`5Ocu!G?m7CrbmTQ zx`~cQO&FJ%|Af58XN6sq#`_@qWmFCm(=kb@V>i=5WFYaHN~B;Ql`4~roZma(AIQIA zNv7)*M!<#n!1yp6GD-eg%l~A^9d$IJ>4N~;VY~n;9O!4Dqcai*-NdQ%oV6}QZybgChr>5>4_2lSm zzwnsNt{z0uLe7qpYYLx}sa_v63khSd93HZmYo>Dns^}9G4jO6;Bq_lc4oA-0dJqH9 z0=`7EvUod`cC(}M0KD@fT}MkX$#KnE4$arl!p21ZWE@KM3bo~ZLxtMQP`4jrJA_Vo z;A;v_&&&+k2W{FSMz#J$JA1u5L|zqM`($LOv^+g03Mi*z_0xJnfzL>}bwwq-rdh+% zb4_amE<^YZv|a-`$5yhHkZODpgmoN&)RTsWX8f!4mZx=b28`$Ax z<#3(v_@pU3`GxgmVErx-M)J-x}|3kF`K~UFl zYZh3{5Z5cKG-g;I%j`S9tIpQl98fS4$2w2xBsht}%UvydWFoG@n30k(8`rG*B}BbS z2@;6ypHcLQIYBbMlf8OHM^uLIG}q&OoWEfN1LQ~M;rzH2keJTy6%q_Ua)O`EMt_GQT;YGT8|LB zU*zPTOIYcBEoa%!Wh*>+i#QUf1qKcCFW=-0MFW%lb3`dtz7mD+Bh==_t%_2b^&3vQ zc)(sQvErRdtF%M*9cO3tvpS`QsMtc#G#{|l3|uXd*v3;6!D&wYVC$odo)4Oe4^P7I zYufBV7csXE?DaVlhRw9O&(g8#JX&+^TWB>A>%xX?c)WWaw=m;SNfml;1~j|$tvBQ# z)TVlZPJIaE<9YAq?PTuf?i1ocRx7aysAnY%#gB_Niq+w@(YpGDseU;Gq6x|cAtF5@ zr;JDB8CH5TLKh2Ezc{5d&VcX{o{KV6<#b~WpyC|4{mbKCh4d7af~fW3NFRdSkNWEB z>XYwrZiP{KKGtz#DUcx1f1Ims2?YKny3T$6%ms3Mzgc8IFVZ6gbmWV#pr^cxRt`xL zJ)-#eKmWcevsC>2E+HmB_H-+d^Y*_Yi6nlZtVWLvR8GmD9PGd*A5@qNOI}>~nq$6t z2%?q!$JiRVzxrD$&voh&!Kj7U63Wc`KECw$`esz_G;S9h?yvVruHZH^1J{xqf)evN zGJRQGg!!H4PYk1hRqt2Ukb1?e$A(lqflu)T?x|m88h&8EJSwODlMN0%7-HvcSf6Y04PCYYArDQ)ll#ZJ^UQeHvpk;nO1)#m`-HWBFxddf zdlZ#H5~rkH>y`}}4wt|uHvrkb*Yvk-AI-g{HC8Pzd}JWr(cOKOKKHEFpy@}^b_{2_ z$eb+SXWx`&3(H*f*03i7IrwCy=4#mnNl75Juur5WULB2L9BBTP^kbO?3+ppU_@z}f zfhyrH+pDzqfm${?sj!rNpD`0MDKjuht~VnwRvl`5%zCPa zFY@5VVXnEJ+{^=UH?{eC)aeANs#dPKkXo$%09Z_31UWf+y~MV%2S~#E3I{q<`$^{4 zx(3RKR3%lj+^1{%;T2K2<0gb(ZwWX&zo|T-GU9zS#Mb-;t;1qdOp z0E*Fm0G2GIjkx3LwW+`3phi zO4fDk+74*LftqBI=69##$d}pRY_Hr*88XJf zB?`i4nNTln@3*O#($&;xxPOJ9?a}S)Ji2Bk5?VguRA)DNEGrAK8Q_$*m2{I!iLTRD zkmHu~Z1wjA_$~}{gaF#XTfV%Uno%$(RznZ`(9{c3nkh{VBpq2}vv zrLum3MEV?+%xt(YVliC4wo)S=Zwy#O!&;m^JfR$8}s)>v^jvANps0`4Lc8eHuIxHCaBwi=cxErOtwRgMdab(q+vswGK={(KVUAytpHulg{RajYP@8PKf^7NR{Sna4J zh1rl~)7)nI!RqR&3$R(35QaZA#~I3Da>{xu?Xgm_{!xal$UMF1?NKW8zAOAhQGdIM zRyEr@ug%O%Ei6CBn;6^Ybaff&DLZ2#*EL*3clI_h(du^ALeMfR#2$0fgc8Eh5m{4Yt!ytX~bVsm1!ApeiFs}5*7 z@Be^efQU*dsb|tCDM$z+2-1wvph$NNq(cz}0TmGGklbMODA@o7q?^G;cWiWzjo;Vj z`Q4p&dcV8p_xRV`zHFa(cf8)lU2{W#q~4*W9O47ix>i{?rW6RQVv3p~XkZH4OK2>R z_i>aufDrII+ScJ53Wosxo|(!BAQL~)ImFV49yx53=n=GW&{RzHVu%yQY(Orb#n zK#ba$bj_*#{B4(tlmbtxfcg8Iozf|@M@)OOd}m@g?fT0d9f3BW$ocR|=8sjp%siEo zp~}9Hvc-s^YLcgCrXTdZ&Pdi7%`SQC-UY6~IUS3{V4qqDJ#`(&P0wOXEUL zt*pi^O+^{PM}ZGqSNcmiozCU?6Sw?}+uER&HxlVe)6*Bh?9>DK9VPI$DTfDKOpkZ7 zO;noTP<7O90|=sdGh3W+4qt7i;ILb4-8(3(sfBh*l@v&`6|+)czunRyeOO)BD(($$ z_r5QY=7i=r+-2cVBJNJ*Znuk;3_IF#ZxaAi11ccQVu0)PCnX6xj^+&z47=y#d{M`@ z^ysyFTie^W0*CcE9?~4|+8I2n@Vb~*>cgbME)br@RZK;=7f7F0V3qbW6w7}l>6uT< zey28A=5QM7;Du%wjLR3W z*!*`4e1pP8o*RtPnW#2R;lflJ4yh}r0(=3FhB4m{0>rytES+M%^L0e`Fos&MO(>k< z`5<7Wo!2>gvXO_tN)u%_`l%8(If9JPiPo#}vadN>o6ZmkboZBFeYvoA;Z&tL(6=4I zL6;spcwkKhu{RSt2vkzciWWIdJoermV!{K6b5OUay*Lz^RCWF^kjf0La>AT`DRhMgDyxZu5*J6Esdq?PSw z4Fs4UcGWa?GWbgM?RcxF(9~H5!85JSBN~rug)smy@;L%zS)H+KQ%x8Jjs^--s*_8E zE12!gGWhBOU~sL{f^H-TEnN2AXxFXPOEGVaEhq(Y3<@4a!)``C1@Bo(j|pn`Kdf_> zWaQDEhA;VtpzFW9in3uK>s`Kak%^`mWXWXy6mS_~B~-ruM@{C6a)oom>?&hB<%s| zDxMR8*3z-O24{`vRe?hKU_sm4H=lgH;X$W_PxT=lb=DCDU}hk{+l!)F-y0 zf4Ss7+EblVZR+@3r3n1hPRa7z;sIxBX4adpfN8YkciG`f?Y(Efla_O^syz}nFWtF*$ znC;oJ(HxD-5;M_L_Vv$u$Wkf3RNHp@!WVWHmk}BxGr*{i(lOFD#;L3ywsbxEf_sWza|1)DBy=xnP5c_0- zNAAh=%lEBQhc4n@J}Y`=4>Fg7io0&KAC`JAdw!K1d(<5&UAJGQ0iYnIoG`{*3ORKm z+g7j}297L@M+4CCxT#2GxrcQXR3OPiA8Upjvxo~UJX9$mw2{HpF0LN&6#6!R)4bDJ z7YS4+JP&+x@k&;}*V;g05FdjSw<)7Gn^pi02)1&eJ!ac(Z?|w4#3mG6fId$TiRZGb zS-YQ?9+q-;ugFXRUZ8q8?4C*>jeWMAR&bJ);`|4*#%R1|CYtWrYg$6?x{f-8H?h+8 zG3g-qQI~3ob|u$|3HveR=TYCC&&9A^r!?q=+@SDyF588tecD%VNJ_S=9hY`9f~FhD z^PbqT@>GA6V>j0QQQ=FHD=6(jUn!E}akrBGk>l*F?!GfIqAdVgay%d~2=!8s+s?zz z3Rpngp9;}tD6Dj4dR`#h4L7omDIY4C3x0q1`kvIL`hvH}hm?6wAa|K%BWG?P#M)cw zdVQ(u662G+aN8mKzByZv2Nedu*-8?q$hBQ9=|q+WQ^y`P`aIXy*CU{=syf-?4miM8 zm#H$ZQsJ|*8j;+6*+$hpN)}#5da&iW&&f||BUmpG><0Y4RfF*wRec)11fWj#q7H!( zcsdSxzHMULgU%C$j-PJcOjO;htjvZ(k|caPuh{@u_>}PO9p7|hJQzF%V+co8?}pux z_?{ZK$pO^4V)oqSY=S@TMVPNCYLN2BKS`}S`NTYHPw6riF{6JUmbK;L!)%~}h1vk_ zWE`dFC{RC9PufSb02ZheP@~Ay+SXPID9y^kPVj^iG}(ExTOqi>RxmB0j=yr+r+O;F z`#=ByhI9N@Zvi_hJQy!xzlf-541or*OqJn*q@j@mFdThj)SKf=J6Jf^O3R#y68+69 zblMIeC$@lmPBOiZ6Wi*e!+)!_a0No25RPaTA*%pRw=AlMcXRUEY$lZ1=4eERCxOt% ztOSy)d$34h_hRG$YR}?5?cEzER<{8FTnL(Y=~3`If8x?zEg3~@M_Zdfa6B-ap41}x#mE{v1Q#Rhjt#aaC-)(der$Cl9TY;>%>s-eUI*C;5GWscayG^ju zK()h5+Bls9I!#v!K+seM7*l(w4(thZs`>BBnGo{<+!OZ!z3jMpI~xF$oFAwpRP<*P zavW{j8Z!m-+u397+6#bL+_B-SCcYp>4V|+ZbEw$@8o%zLG?d9JfVm>fI;YpU`_^bF z+30Uk2bp+`Kv1-NN6Fs+Xgd`))(cqy8K+h%ri{V7^G7Y?r_lg-q@4e0Sh0Z%a=9u2 z*Cwb|0*v_C8&9eKK!rPs$CY%RxRx&hpSb94IyoH`Sc$FSmF3G908>QtgVCw7PpP~C1bxxbxfX8z4F&byo!35Fp4p}gKgw+FbrXuj^TktWy(cAasMX8`QTd3DxP>HnEuM5=ts_3HyXNaxv%knf zVqK8jB8(jti-#C|MDDYn7?r3aqbj=J=_}w582ePVT&qweJs{=}_2yuoKAgBe2Hr=i zYZX?z&OHkydm#gTlmTKMG zh%mQ>+habp2Wu7cT&{6ARJz8G>Wa+2+=qZ-08G_KsDqh)B*h1)XfEe!y24OaVLh$? zF0n9FVQ5C!bEMpn|63jwml;c%0v}FCbpl1RDtFU4i1Wu!%4tx!&EF@Q9&S|unJn{= z!n2o8hfxPCKtKty78w5E`+Zpt;}$sp?Xf@t=28j;e?BJ+BGXb_T*yw@@xKIqTQnfK znDd#A-BMr~z-4mu0zytShE8=u=9b{4Eucbi4jz2mC^MPCPuj$1t?c;{_nn>+%N?gU z3LdH~NI4#~z8?so8p6<|Qzwh?KslTa_CTNn{!`OUyKZj|IEW5Oj+1OXFI zoGJ|G#?!+()(RMkwa9pL__8l5ow_jK-56mq)X<25|-vdrO$#s-7gHbz{THJR| z;yM2+He)LQ*sxgQ1nprHvvA8gdDx2Ij+^&-^W4EK zeMTi7Q9UJ+f98qM7lv|yb=eiR;4|M+315eM9t6(==*!09pH=$%gdN^^`K6721t71i zzeOJo?Ybc6o{P0Q=--6{Fpy2{16yZ&PIJ9vdcM{N3|ze+l>=Rf|700t%ju4nN`KTM zOqospCEo$o@h@e-bpnW$+i-066agUT2Bfo+d^Lv=(#TSZM{asXYPJSbjchZ|5Ossy zHqLdQ#w(Epkec#mEmmF}hs2fg;|USoq|qI|?G-{r9K)xau$6wQ7jQRsCst^5u4ys5 zxj|C|p6DSzwD-ywb}K{b_!cSSCnWcW5JfU3JjlG+UrJ*S6IZ#LfFf<7aN(k(&X+ZCB|&h@24tm9R$H+^h#QUw}8nWDZ8nvrQ+{9BJ1tO_BtMvou193J&QynLw60JZv74$bB{ZDrE0AUdaj1?V3aIZ-)hTnv=nz6hiLve1=QQy|cv zt=8#;43Y=_J$l1eFq=&kxaWV`F-nZv{nRdHJ4(h z`Y@1NHab7SfHLVO>FLEu?Lq)x=Snj55+_NOM4$DeJ5u&ba;JbQ;;mL7@!O)IE06B1 z4-T^f>@Cn~i+crOeSM(?mi7;kXu}OUjuS%_&QY}1lDp$(SyYxbRmt?nyeD5-PC`^G<(Lj6q);R5*WogT-AM$YZ_M0C#Hi7Mm>^5_kL$ zW2HlYafqj2zLZ4z_`b@%vMjSu5fHzA(PQ)7%5?K}&8uRdw^aHnqk;gkBb?@f%S*x? z&vsw;xubG>mf_huFQj&$y*BH6h1W-)?Z57`%$Cy9cIM5Q&oS#IsEtWOpJu;tgy@^k z`Fc#fzTo=wJXtSk;Q-vXNYF=nev2;5*-5$GkNUi0S}08=)S6xOsJ3d?m}dJ@x9cy5 zKp}J`5r^Xvdw-l^SPQ^20Q{<@%NC%U5*1SZyk<&{f)Xa9!Gol;LmM@Lu4sTOCz zmgA?h-r0?|gddM5Z!(|>^ycT7@!nbNE@HOrX82!$zI`Dv|$sE~g=IPhT_wgy|TLI+rs1OlLEfzWC@Fq^TusXWQl z<6H;klV=z;ltDK^M0jTufZ(H*69S-cLn2#_sRz*<&Wif4lXFl~I#lD2NgLGV;&7}S z@n758PE`%;mDFouB4mAd^@Usm%U^TZU)JU4=7t#-LUCkJ#;B;0j*vR~U1jZ>e4KdQ z(xCgm-i}&=NIul9=3A2i5P=e;oO@ytlXWp>z;+C26jM(Px=_MLnAh(iaaw^zK7f<( zxWTte6gLbGoORqJb%cyn47r(M$l1A>8KC-ZiC0kYvq|hLSswH9e2AMJRpE`q3W?Zp zOu?e}{gjz1(#8h$u%$7J2dSrZSvIp^X%fhTB9B87#YX{KvuZ=#KgB2}z2D`LukliF za4?WJLsXCUpLGCmgl%-dy4f2Zl# z($d&VVSbS@6@}x&kjwUka0e7k)-z`T8BmtR`ow;{z~_<^MtC-CnXElLb6y0b@h~#JG`?csiA0&6 z0w`E}C{J8v$qlEwwIc(8`{F}L?~EUztL*xTK7&y!cPZ&%-lrFPviKUIowi14_drDG z65?OSs@K1wMEM0MEP6`7l~@B+@0JEYvE)*Gz}k=2&>zlqaD_57G?cghcvq0_pr5}Y z>#sSJ@7jn99jR~R^aEWu0Etx3Ec2`~@Y@tORar}O3${nb#1;8#%fOnQi%`cfm z5XkysHdFsb76iz6k~5Hc_^+s_D5(~`dpEf*`QeX~j{m&|b$$veJ9CRZqXxLw(1T+? zfe8AGJqFfry_pX6t334~6DTvq_p?2k`h&{-ZL4o|Q?;@qfJC%K>sLj!;XnYd(5aSc zbj__Q@rI^Y;?rOETsl@}r7pWq; zzkK$eeo%cBpdur(*NY~GXa4Em{Ka#%QdiZrwV!Zu0;Uj!DLolByMspJXLRu&Z25SF zjEhS#lOkWyInldEabzfVF`u7USbyM*pZD|q`p96&Q6<9({vCg1RV9}Pg;yv{30;+s zz(2dbfBxP$8Iw9CP<{Sb8FY$AhZ0A|G_m@B#3{cEVg0(S9~K?xt5^#r)7s)+^vBCt z1{?i7wf$eq4Lo9;nv?TYQ}dk)q?YyA*}@~FP_lorjK5qT`O)nQfz#7ZxcT^s`o8U4 zNp;B5-OhjHZ03S^sg2zTMz}0#FBsvp#fbf6KS%Ns!-@V)jQ%g^>Q`>Z$p>a+TyZ@t z@5{)TuBl)l9AZh|xjBx-b3UsNm4fMZb$W-pq7i})xh{V||unpHaJoT$; zH?ESp%Wv^_67<(S{nd}J0i~c<`SxR;G-s_cfodlq?i*aZ!VM(%H7i2LssqCdRJxp- zL;siMipQ^MR?t%73D*A|Tgar!2A+#0Ds3wpF~8OkCTAe*Z|TY5-#Fw?>fGSrDx!pm zVkHE11~(gSBkV074ZGy;n2fPmuo@|;b&dArb67yrjB_;BplA9vsUkA7TDuo*iRhvML($?|KR7o z_5t}m{@jNB=#3GQ)3Otx{|HB%D%oF%_5X`q{y_DLS5jAF$aPM(;*x7v+p2&NWVn!JZ~Tw#?Lf6=*W>gNnzw%l3$oJ z$nI^4Xg4bACe2NDPt?m*mm`oy`j}yJmU_>Je?YbKuIP(YgF+Qx7nrgCTYjHVd+#$anNy#@2`MlBF5)9O>IZT$^ zw#7B%hT+>ZBq|^c@`w+uv5|ipG7Z)=bWJ31> zQr2qNP~hIq0$M0M2C=tBn+UbIY*0__^8={dB6iK;39<7H0KI*oti8Wuy#jl7b+Pr% ze@WpNIXRm_WZcf=g;zo}(m80VuU@}CR3vA#y7a+sph$jl9Q^i(hOV+$6T8cs%nC?4 zFSn%deh;I$<125Y?l5_nNE7cOI#+(!*7(1^tU#bqsrU2M_;)#eC<8Xbt3`(%b&3hqHc=y@&hJ%HQj(k`{@r=?Q{wq&3JS`dDyt2|U%(JFc8;*K zJlx~wJ*&Pngw(6|9r<*5j6`gf^~RT66)6Q9RIe3(&i4qJeKhvuy5J)xONjx>uR#|F zr}$2|lLnFQErsy+@87X*_uoUQ^5U{uBMPm+ zmwaHFoFtkRnI!TlAv3%2c-`rxp#eXamP_tat|mw2R{uB(=RYS=ZG+S=nW)F)0@50W zc=GLjh7KtxxN;TULW9LOH*esl^kDd-;JT%{l*n=&m0Rc7WdWK@;h=eQl`2SbCdhOy zV!=K;a-O|h5=7%YU2_{@K}0;C68sYk|3ACZ?+AD>DS#`0fr+V_%9JKY*gE==W%%L+ zk9!_9!o8y;mpETEGdmd# z9%(!nE;@F%@VLLo=sv{Z(T+;uh4O>va@D%k@585N*C_s=nf~*|=Rjp1yi)e7)QxJr zbrl3j@~txY*ybidST%Mg?0)rj#jQS*z!WCi1ARI2>EqxbRTjiFhONNIo@wk>w=uyb zmw}<_c%7!!I~>~bR8eKCC+7%QEof1q=oiMu%t8{LR$yLr;-kk)^M$-*!wKoH%M27OE0>CX-qD{ljMC0)eh_uh?oG}q3jdnFhn{Ic71 zEBoKuf8D~)4~Vzk-?Cax>|Jt8fQilw%_)l#ZVGBf;hzWEFS_|0gXx;K&)%taT&HT~ z=0Z^4cPkA{iq{^FyZTRc{J)=LO{I`uma5j~FvBodU`*JGZ}s33KYKUfkx>8ed32o@ z#EP+FEY9Rf?C7>bxSXD?s9nh+aVK_r8{CSYU12*L;l1`j%6+Y!&X=JuP4e+20nqVk zQ#%gA9Lywy_~Cb&vJ#`<_l;pYRvT}biK#&5FK&%fg(>meP&7c?vafL%q)9eVXT>6H zPM}>|U9nY`>n;SFy@3i|-y*lL8ZqB|6|su&B++!a;bP3Er*?~62_+WZV)r6N^ajd( zr&b|yNrM$1YpJM|^NdQWX!_)9=-)haJv8bo)|hmfW{Y}1WWz+ERgE9XbYEeoV!FTc z_CK_6x6Oedg_5eOJ9*(WJvS%kXzUK8oZya`XCDxPZD!R2+^N!!THfuhsDPvp+#ZF0 zHt7yT>c6p1sciZ>ia)?1+KX`&kBnMDMx z1i|*yOhT;>A%``O5yAysAzh>KWgYRAwIdIn*_h=JWTIjhWc=ig6><|gQ!a%CpOY}RbFkDq4kZ5u~gXQz>hZnn6Dcxro z1_$!7ydK%qPZ*<-9L%J*uFrp@9+_MjeSN68d6r&pRyc1jaoyyP{m{R;IbW!+RHmC$ zMcyi_sJP+R?6=KzS+c)FqS$AvAdN4v|1gztqT9|x^tF`eZTBcMu@Xi)TBM-FsQ~K_ zVNKg*%7hdS7LvCE#s1bw?#pzlsbOyKCO<;scACb`WIwh2*QK#5nbiV3n| z`Ke=EieDXw0v1L#XfOufn3DHzGp=a|-)U7+j_7bu?^PDQem(>i*BWTHXj3&|kh1>pBY9sYaBASCk>r?V)C(Qp=Gi z_JSKG9FF&+NOQ%XKYPYMby>gD+783eymaPXo^5z1oPa0BapON2T`J|vPZ*pB)ScW) zM_C%Ulm^|wKj`oK`I+hON;XxM5;4nwVNyoyD(NT>%k;jnui$% z7qB~^0H1_+C}MHsmN=}j7my^U(QMf4Oq%84zFQ-^64aq8a~8;rgnx>A@Cc13*Q=;>lME~{ zv%|849=4rRU~*ndTjWkJ>9sQfq}S^u9!ot;${Q^0rO#R%5^3FsSmC&{VvN9ZelgTT zysmTHR)WLA)1{ODhAsSo-$~_y|V;X3F7^YWQZRo}-6PHfzrSu|CWcKd6r# zcFuPpyjy}FDLY7ioG=0JPA#)ZoQ>2gDC2Nkfg;?Wc7_&s8<|vfFjd$-&ZjPD)+VpL zWE8KzGq8qMEKI5rNJjdE`68c&31Y4HYdDNXDto*iu4sUjBnIjK2EgUdQlk$h^R}9a zUl{%zRO0~mJB9*c3%EtCV|#Uu-dijlVu16YV7+V88{y+U)7!9B;w-udkj=>>rkJm1 z%JJ341PnXT6rLmu&Gr?rjq%-WS1NH0L1U!^1bz#R)RL~Qb_a!Tf4vUN%XxU!7*xCO zwsuV-9ZX$4nbX0*9xW^4@8cOL&utMmGi1ml# zX9~mH!9)6bq10Oa5bQ*RNm^xUl2}f7N;JXS^>IJS*cp4+|9tswY{lH(5Eefb zoN#a_xGy;cG4SNPeVAc|YFY(H#Dd-BD$z*3;+^4xp!9PF%M`BHtL?``J%i=>gKO26 z4wt{MXPN2@ZBKj(-yZB+N57HPbnMi3WHUOkf^PDl{TxuqH|V|-xZka~hs4!2zZwNtWM}b z>8qy>p80YlJ*&ORdo|aPOk*XoY2>Egc!V%!z@fQ34u**9=vK7!uJkUjB3i-1i-KIx zHOQ~WnLnCwy%cF+``EFg*5t8usbb#c54!yCy^|cG-`!bzn0{iy{aykWVMZjy>D|fXn zX63`IN^h6fiY&h*R)W&bgUGc&8TasU`~%NR3`CS56R}UUZYW$zm))7-po<-BpW7^- z)hoIfDGsC35_8koZ1q- zJ);7i$c2&%fWVqg56E-yeADg(Z)H4YstSyt7S`V$C|~+q3o0LoOY41g1p5Mb@RO#M z5~zvGR#ajsRk-zGnMH>op82#cOc-CFra$gH&XRDj zw*+8pI9?L~v!BA$x#v?(Zf%;@;tJD1pIeG9?T_kpFoB{9W!BKbs;sPB22a9b&&A7j4%;)h$-((8L zP|a1jBhMw6B$-zOy93e}1~WuDJasLiWzBWzk5w)o1R$Ues$z&wCCB+RTX7a{r1Uf?&>7Rc?9c;d%p;fr}t~<%ja7;6s zDZ2oIz8kRuSJLSw`w*l@XIVfUB2Mgbci(^GK4BZ&MB3h$<y2g(y$i#suW}{kthuon->EXwy};+?6Q8^Y9SC3SuGg-^k18L- zxHH`&3~3dayyynt)2J_BJ8c;(kz^`cCrjDhM_<2R39Df6Ey(fuQ13xi${D>i+Xi8j zjP1SzGvg67^01+*CK7Req#EYe*;KZIBkNjFC!?cFe-%anF)6AkuO(4aJx1MtE!y_{ zG^`Q$f>V8RnOr!Q;Igw{c||vfg~UAj2u;+Wd{9-z5qI`?ieXN#JzJwcn8f$em9Tfb ziBjJ!&+@eWoZR*J(@+`fD!XqODL_BZGSG0^imhJM0KdL{0|#wUyzA{furILMi;|nF zSdHD!s7`GaZh~xpk~jB9ZfBBn*1&V@onk)p(RaOiff7=yO99N!QSi~;r4ixazGat~ z*yYHh{iPk*e1@Cj(J?bR;IH%hXr{d`Z1I*vD{p~SBd#Co8^g;B2IZX{NoaydK9aG% zXqWDaHPT`zTT)%2dx7dRxm!425r$sLaXJq&2m{{GxKxqK`6iVojU`9kD| zM7F&Avu6MHDWNRDMH#@>$V%~hjFO74so2O}&eHhaDe6D_6$2{c?iSBy&JHdC4c*XS z(YOnNry0culi#8YLCiMz$t~jgi$d=+!_v7PP;DK>8dqlu9gVUg)P2gT<}$W65Ur{C z0!C832hHhC@CR2Sono5$=x=CMa9VNj4q8R}oa3NKnB9jmN7bvuEflRc-aTwdenw@x zDA*H>YSBSy%BW$%QDXI+6op9FV4CKn7 zt%55m-8NUw472KgjL|#!ogBTMN)}yjOl3U7&=|xY#L2^z1m}w8k}-D-2ffxWxjhz- zP%i6#YYNDCz7f2-fjc7}5h?x}kL@ugabb6oW@IhUcLbZNN?S^A*68n>Q{4h()`(ng zV$2T%z119_i@d&59Kn0*;fBcvb{KB6?o+tb2gq8Es-GeV0d$^c8};^dMWpD}MY2)K zi#XcbNkU%fV5oGuQ&vJC_7-<3%K)DnVWKk6&I4aBVGYtz*Crm0E_U6KyyNIu4L?GO zcNw{vV=avp%H6H-F1LMR!aKG|;PbefRb_)g!eR1DO3$1rg)3CKu_+C2L(SRZV~$On z%Xd`|YgtiWa~GE4@e8uPbz8gp<+ry7@*o49AXb(!R1DiJoaTFC z{22-V={;|yf2VUb4awR

)d)eroogF4I7Pf7pP};5_@u1GO8by0=Q5M7p+NCR z6%%$CBct{u>VX2>UcMu`y3oivl4VTaaQ~NEWs(I#WZ8?>(EFLDm{ErzgU5AJcm;FN zbm=GiEA-`Ap$sFX#zP3e2BenB7X=w&6AjMHff0^IHO7@iLWKjjG|%#P@8&bd=(HIi zFLmDEQtX3yZTLZaJgSF4rPQ*fRHK~ZIU(?8$_gIE-I8?RtFY1c^Wi_28-F_1U;isJ z18DJP9o({+GSD)H$e509@h&Nq4SW*A`h9VXx_lshPkwt2%sBW0PdUN7f7$%LO{j4D zL+6;Cou<_t| z(Sp>NAUUkzhsE`e;>WACm-RrMR34ednr!zDPlr$K-*}QWrkAEqnpL!OZ!)=}-A;W5Z z2yq8G02`F?HJAZa5d+&zx4v&p<~#=vwPeVzDkY%_e6kuDV_n}-{A4<4dNwD~+YjND@{&eVPpT?_~0&8Y2v$~P340|YjpI~u; zPnVH8kr!e{J3p9l-wa%;nQ+b8Jq^~98NwAHxxK(;FkUZclfr}1wkEUNn(cw=@cz=D zn2r@UQ2N;8s%x3z=$WKoN(nVy-t+L# zP(_BL<6Pp~{RtcO@TVNS4=Fn)mxKs6Xhp zUkUS%$E;2Rz#g_W)fzGg=(iu$9C578{;u#qoguIi?h?cGI2YpaC`LL71LJ~$DmxEw zY>xyK@1~``(*!e-#VS$e47t!Ar)sE?;hzX!z~`Ho3W1F>tOP-ylYK*?rovQvj+;H9jL8)|$IS=F+3YilY8}+{zz@W3b2&7P6kHp;%ig$CZX0k#X z6N{aqXqDt+ndoB%pK0kl2a-G>{fWirckK;xxDZwYi}qPI_g?{hS2bdi*mc9*TrS@7 z)UW9bP3cSb4ikr=&U>q>UF86bmw84bbdj;DbdVSYJ{C5ajIIdPN#Pr16;%tYLR)-+ z1~u^B*mxX*?ev5@c0o0Tc?5ZffKUr--s6IbP&I-q5V%Qj5=~A(TsuYoLU80uMkP!A z#xK~3k$8Eg>cbN}M8^*dEXv%$@)DFW1vKgE1w!w;59rG`4<+~&nYsXHW@hE zp@KmpTRxfrbpvIv_4t>wBTM*IjBwsdNG%0@Cg}h1Q!~ z*RY2MRhQ7;V2$mEHRh|iWn2NI^a*JDEiI!lcSh~HD&k0{NU^so%LIGAk$EO4VIB9( zlf@^7JHOOwnkW@^XL|L<_f3zV2{msKSW078)|KdvAyJXSJx65PB`^ea!nw1RX5nnjobs7d50t z(zT{wIuin7$cM&!Qf2QOuqcS2Y_g~xPlN_>o=1pcosX9z$}RIZKt+gZ8<)emF<1QN zCH%wwF2oE2rcXWr$X#dNt)y0PFWodEuQo*)2&tCk!wWD(K10Y0gF`x|dCd=M{n$S3 zB9;EKC#1n_7%p9djp%7uEQMzGC}7HO-6EbNs-IE5%bC9<=j*@{;%>bN?VQm)+*X-{ zx8GZ`9gQ&)$MUBnO*N@^tsEkS##EW-;U3^es*h^R69Xy2Y%l|WRld7`A?YqgtP~XR z3e|+T(Ik(vtK8D`VW{?3)n_zTcxJ?K`+F|>D+)QZT#+Kf<+L;e`d3yj)X>R#U3`8{ z{DhJM<=M0M?gd+tdwUKXmPkuTF|Z)6OUe5(^4yVcP>NLz=#o8=@kUi~#e9V{*JiOi zsv=T@ckokK>4=MS?MU26STY+D9rHPQ;><;v05WolqweK0Eo3@eF(O9;GOu65T3r|{ zQTEwAxV$sC7;%17v`696zn?pCX3*oPW@GB+kp6}4a@UO4V9qWJ6-Jq@BA%Sg6VaUe zS+xn#C+(E4QeMh@2=pdcPQ9Z5kH%0YK$?Rxpsjlf+mRQ-bQ(SjG8g-2UQAn*NlUkn z@8mqb&F3y!ofJbEo|$Ks`#J?FbZ9p$7QVG&c^bRBdX2z;yVQ|=T9`DHxmQ_=;27)w zFp@j}rm=cFC(yGH4cX~ze-_YFIVLGqaIR3RG=FsTU^=K}+1d<&M5H^n$byb0WSVCA zs~Vo+=Rl*xYS0J{G25pH=&>vvqyoy%)S<-n_Ezesvy0%)I^|_A^ExdWU(GjQDm$(g zd%f*Kt&-X=^at8LD9!stn-56xXN>pRvvI}^e%+`+cCl33jM{wd<(8n}>q3+BA4j?_m1_S$xz)H8hy9#vzhp|$iE;W1};yg(h|M3#zW{Kz$mhyf|d+u4&OKh|`cerq>cSyLJaCJ)1z-W@M=C~TPge;W_8ny3emdyx*7E z8z^tpUBTCel3f_N$=Q*%oUp|G$*y*{^=~TO6_<9+m^2}$lm^| zTfQocVr6CH1?ipLLz1Y)$(zn!QysdUKk`^u=WVhP)?uex=JYp*lI>j^Ij7Ls#!_5| zV^&+3-U@4J%6_9bUs_SAa!GXm`)}O!^IQ8D+o2*;^6tgYR=hb@e=s+|Nf;es-wwq z;@4AVzD_Kp%nR)d~1W#UWNQ&A6zPoD|hj%u&_bLDec!Im~ze=oaQErz|aC5y5#e< z3)KjSFQ=fUEZg8m>%w-#W=euNM!yoy>RS>}7~O4csifceIvBQ5bnFSaqJ);FMbQE^ zSU$ULHefW#-6F>~-LXYS_%eYHvZPzxUI#j90dilN<29mVvr$qBItT0S8C;M+JngSK z7-^_cwED*LfmTo*@VP9lO4GUtge5$fio8i3#jQ24_|Nk1fg;xL~yY|1Ad4Nt}m zA9!M+q=lg&x4em`pGzt|$Ap$&9JdZbE@%v=Cu1_CSd!Q6e5OTKhFknI#-Y{MI>L+O zyvi$L9wrvu$m%renVdD3{f&0Kby5x9S1ybbtClzAwGi2Cyqr;ea4u^}v*Y*!uO1&w z_v~(BH4d6vw&$!V0-f-caNH4>u)NTX7~l_2x-|f@%*Q5EXV%sy(eUxWV`n97X#M&3 zAxm#4`|-PnjiHs;bHDEKSEcYfZT|6{K(@1rbtW@7^W`!cYZj5`Y51>-yrpVX#pkU0 zWgR1|&;HXd`V(su$_GZ@=J72)WvaJdNMqfM82tR;A2QD$7x=I59WmP|mc$ca*0CXIxdL(Ge;_@DgNKiqI_@;R$mdH>8WCS`ByYrj*f|M2gB zmnDIWm(){$Zz3zy+}AUK+n$ZOb@KmzREoDzn#T(FdB`6Arsn@2E4r?(r4@?dIRrD( zTsxiDFv3Rn%b&UDA0C})3WMShs`!qnMuKJ_=Wi_VAHV2wIT~6~fT2Hm?P%W2@Oi=i z_wHoQ<-oWtFVt$PFcxN{{;&(o^V-P<<;MU{_!_Q6&}<-YsJq6y{JglEBCAs^X)jxw ztLzmdOFko(1wa7Xx@nIoS?h^SzM#M+4DZjwH(yT)wM>p<1O@`UylHlNc=1!p)5n?* zlf)&D(O~!^q^h>^Tw&C}m^QS@VN=D-dms;5ki1se>Faa-eoxHrH1Q{H`t9ty){pj- z++5I0!MJC}mdxVr$oDxF_eN4=ljHcsDSB4-6R3 zxYu5@-~JNlQppOmPMfkvyU(W`U)j70AboR%mJxB5C>s#DDFA?KWxmX@-{t*yu<(+> zCIEU=z3%P3T6Y}(j;s&>$GP>MN00e>lG_0=_3@n=+_*+OWfbVj(_a^A5C8kU6v|QH zi!)60PU%Ls%v2qyG)oADs{Tk9yt1bC&zmN-Qubw|#tS-!gq8GCVY>X=+5Yv5LHEGT;u)S}JgsB{@aU};**f|k7&K6aQ^0ZbV0VJnUq6m; zDdhDlG>SAi-~G{hMi-jVW(uHIIj+lmylHk{^mci+`)sGbU#u~g`7HqNy!A1r)Y1TQ z4F&*TC{TU%8Y7IpC3f=>U?UEEoP#{XK=pq@>{de*GcLY;S$9mgIGH}k{-6)L7LWFf zLHrJ;4)faxK%;!5mYVM)b5xbf;3Kms*A&9j4AYN`ZF>Fo?jF9R1Ip@ya|-O9PczhP z`2o1+FaQB~Wo*iN2{a@w9Rn?`lA-Z}hOpQ#T56JPol+9q18^fc!iw~b zo)17nKPQmBjg%%m0cJmls)|hv&X3j@7^es=EPRmiy$=9yh-xwx_m$t^RJU(_mwD5? zrSG6?vER0Msf|aq$&Wzu@-&;c_I514$=Rsu(ox}}g311*J={U9BDozf?;yXFlgne+ z*&}1^w78YFIUE3?2nDb{M$ZeRny@;5c~oT4j#1oDUQ)JY5wWvk^~Py*7nw~7hpqLv z19(B6gwka5*7xR9r(Q-2^P025_!=OZG9$nk3?>K!vbH-FHJKK2?H*yfY>4<&1HjSB zscOBp^^H0Ax0Xtlcp?EfiLCRIUiVmiR_`X1VljdCNv_2zjPkiiT5G<}JA%TRsiU=l zM;;GX$c0+O;HR6l)P{A)A;A{U^oIk|poj z7XdWfv$RrTX+2jcPx#Jok3n(%^KvV>M;(D7J-fRN{C;#ZE|o5RfaF*o&k^jr!)v_P z5(|pRZs8!U&fWPsx7n+f`??62Usf^kf@Q-Uz;`g1inoQgW9iv|82}_6?7-OM5ss%| z_Cg(2H7q@AnKNPX;N*2yx>&5;yp4vekrS!TuFgs#d3DKureB-!S{M z7Va3qU2vd3`fWCWh}2f@;Y$FZmGQG3q&nXfIhTC=UxGPm4Z0%NB8707S*+Nb#jcB( zkk&2JUFRAJ$)~R+M9afn=TwKhq_I!(=yM?L!qUx=nRagSWV%$d%1v6RaOFdi?^M2{ zuNnI^I8pho)dJ}%s+AwbKhl5l2Zi^8 zWtcB}QS!)J<6Xm09KIE=-w>_x?gwFRY8H3_@cXSY?X->@+Z@~76u}?j9Yw)GD9x_! zFcTlIM1NB2I*+k+Kofhyd9V=#vTd2MuhOU-XtEG>%Rb4uF&BW#3cv7CQv?<#XgTK# zz~l>cegQohR=RteQxLrNATC?eb38C)%Kvbu>dr1V<*}O0Ov{EahGV)W22G zGxG(f7#@I@@s5&e=s+X4layA$REA1BPx^A+HZ1Tu?2P%No)VW>D0X`cQG^i=k&^*f z%{hGB#+yseTtl81L{GA3;9s8oJOyY&E>-g#QnQjINE1=`%Strw+>>w{)$+U{C! zbhvu6Boipjh#sT-afvQ1ubhF=UJca7PKJI`<}B6gEd@ir)=i z%buMpz9GkGm~}_;9!OH2_B$ja$gvmfDez@ays*Hd<`a4lAfEbClFDZM*IX~OT!a@;$|Mhvs70*sASDg;0?jnG` z`Ese?(Cp66@W$I>izK(6wS-fi%a#1$0Caqbi%;Wgy_nZ3zy@rMT_3T!w!Ph(OBg%w zyF=WJK7Z@U;hjQgkG0&l_)%@D#>e|lux8xZ0F{?aUFO(xL;5$ddFb3y1~J>Ey`!ik z5y!@in>S;Eu%Vt0FB+t9fwuPA-?jNq( znHkI%kGQH10Z|;RG|Acas+>M%tilbCxe6eZUZ9l}N_!yl4NI^uV_|oVj!O^S^XivY z11c-!K=%cS{oWMPt(B;U()-=C({~LUE?!UZd7ONbkJ6qvD~jqY@nx9n5n)r?sK6DY zr^iw@@5AzA+#-{G)^k7U>0>|KJnoPmw(+Bp^XGR089BRF>;H$eua1jy+x|ur5d#cD zr4$vUrMr$I2m+Er57ISs!!Tl?k}BOOB@8e_Hv=LdLw5`?0@4iK1H=1p?!D?cdViOD zU;cVNz!Q7z72g$mttmHE>wd1l6E-YF*|MXz!hXTvwlYThyX6XzAMHkBPu_sM*9%i; zP0>7^|6sBR0oA;<4Yza|vf|D%Z7JXA6AP$|fS~s@>GvX(Q#sUG2UsG?oRgYMFhKh5 zmDm0}c;x0b`-al72eN$`IQq4BiiVnG1hy&1g}h*$Tr~$hHdejCrzB_Ac4I6Owa5r) z3R9^NiOnzQay91c;AWud+r)=J!?L@z;CgMKqqnRo5E@=<^S(i%4FNhv#0v>+@-*^q zixalPB9`Q=^-eqiTBeM7_ODFP9{<#}WjX%YzXlE*!xsg5je<_FCOWqT#+`troxJ;! z;Z2#K{`}ZW#^Cbu@=EZ=A#PEngYEIe4TsJN%I=rX=e9rXU}$m&#>xnIel>J#J3^eM zW9Y=8m$d8DV=h%dXS9(6Ax!;Z*aoIa)Q}pd3w4XEU0dQxpnh5;qYH!1tJYU7I+FJf z$yu>bF9X<2`BbCS=_LCvf?6Umnq50nXrO7!8plJxqS`L5yD{pae4z|Pk-R2pL65}r z0JE%hmAR8=pX}?<5b+3Y`HLhy@AY}oM3kp zK4&GSeGkOo5s`0^W@`oLT>IkwwzjfCnSy7m12~{1S#^!$%0IA*4xu7iw;8yv;x~yi;=>&r+ zjIG4TpE{Mts;hfv2k1@44dAP2bBw6`5p<6dvCa&LnkZ5twVSK=cPN8E3t!S>z7%_@#;q?w37NmHkoJ>JjP!? za6H(jXjq?ZZvcEWCIfF!

rLRJ;9`6Op;<^xB%x5z4)A1+;vzV`gUN;C2T&j%BHt z`=F$BD%NK0NfsPIknvd!J3tKP0Tb9-$z$p1Bz-Jh76z{OW$VO|dI2ste#!pJW(0BZ zVPEYV_s=$?yeAr^=%y3#?>N@9?iS~V*Jisf8SZrS4i0&3E_5zT1{BYlo;Dp8Cdw{$ zo6lv%YhT!lXt*L^eQ)UY--Y^Dxa_CJ`3Q&-&c=j`AJ^W@ozkkh9QJFN3Qqitlmh+C zp=)=kVyPC_=B06h7iipVUhtgt)W_Sbw=LZxU2?*kfF@EFYt5-o;FRaXiF?f3;uA=p z;d19`{Oqju5WX90Z+WwEIlvh2>y8aqGCsEoVG|J|X2dqR3%Md0L}fs)LZ(Fk`9$9t z>nxr50Q$VWa_*Q>BO~^W&iwOBAtUFBHXkt%2|oU0vO^gvmdmrI6~&dn-fajp6O7Eu zbwmlP?(b*Wf#b1}kln;e9K=2VKw2!GNTXfy{b`tQ>Y#KLD1OF+XT^i$;3r*Of<#>MzG$42@D z(kE$WZ4aFhhF6i*j3$i?;VL(v{lIKaZ2jKOnen_v=7s<&_O%IMexrt2?6Z?NP^J`M zQCnlFb!OD+!aMEc6sFq}#^2m+_*{YA@7o6ESkVG5N5~R%>E%i-MYTmm!8q>A#>Nrc zzy)%@^^4dA)LV%H)gk%`+OS`t8^x*Avqpf|?&F&l{$Q3CyKTpzTUa{C-rwKf$VhN7 zVYmkL?7G{402(MwLz*X@h5cF*=+PHrQ#A@^%wSRWhALA2XRqjIVtv*i5nis7k$QIR z?&@ES+Y=?SR3PrqZ(qh%=0GUkB_Zf;%l60;p>)J#<`+2hYxK+V0Ws@wZB_~ScMJs8 zU!c(m-HaL%no4oClc^ej5YYpuBWipLh2jC+s@LLT>Y{FVoO?ZtFdcCSKCT`*$9ncv zeD+EC!sqA)q!1al%9$#vYS#t<|3AT4h^um$Dq=T8YZGHHJu1*@1@te|Nl(}0@!hN2 z$)ohqJYm$Dbl@|2an>GGGVCNb?2b)8W*u?ABDpKiq*30_BJ&UosdaP%?V8wcNCCiV z8(1>cA@(tzL`OtSR200+&#l_WMcHp&6ce2uPt5RB-^`^vA?UmJTwdn6>;ssP`1q^3 zwGkJDn#f|Q$tq+eWx!q>=HkeP-JI!^07m45L?)BlYRL37Gw zu7~x^;;uaP!?i$<)uxP9qBvkomVjM(=1#48&A=6l_;*PUVb{F68}wir}g;x;(*npr3a4^q%P4M@JsF1sTBGRyh=E znnSVW`$J-_rHA8@t!p9~TvR%<%acaya2Phn#GuLBe7Ond`D)y3(+Tcwn^p0Yz_iU!pg$wy4hsnf zbN2^2r!UdMW6wo33Y)=jRi zrc0B6s`md)SppVmV1t-de%4^AoQVs-OFV~ycpo{gaOm-;gfh?oO52+qz;I=?&q(Vn zr0^>Xdlx+4Xr4Z;00g+cvLxWYl47eKB*n(YR(j`gHn0`fuNdpmG4dE|)42@{7z<%T zt_m>ulS^DfWb9<@Yp4-vqm?5R(BvC$Ln{Hwm{5zb*87M7k|9J zL8rd|jL}CW^+`#16(%&m)M7)F*xl|i=^pqr0Yilt5&tmpqDwq{UKxB&Bg=<)cjwE9MZ zD3BoQt*A&#B#r`LP8jK?E#0+(v@_KEY7T9SyA_@22zHZ|@w83^7(3JPxEo&r3}w91d%Y)%1K#Pd$)Xl&!AzPtBS{1BHm@>+XgaRzT}nhlp><;~qq zT-5{V!Od)Sy}wv_%Q)it1F0JlNyrjHdY7PCPQb4=Ns(AFDyKzRs4`r5-xidWl|c%j zbz4)aaGS0FJh)a=f4nqv-`~seHZEh@WGzok!n<0K-bQ$I+1Adj{C(~BOq^j5W;<)5 zGK%q6=mn9zW=5izgyR$&viHsndm3C!>Cls=IKALAjl1GhQm9mG1>IdA8>9>tGtH3FT))0^_< z5)Km`vNTo9i5|wrlgq&TfC)6a6lf6iJIrr{A(@+>PtjnL%^^ajTh14>fWd_MaP8vq z+*va3-)+&4FF0fi^=u%`G7zya$*;qXoewd$qXs1{1!>q7_YD zhW{+)M)SlV{grf%XQ1wfMoS)z6%zpBe&6Lem~ZCTbPEv*3{Wa{%05N7ddEn5GWxeF z2*dKmxH|tb5=cAbKN0vk0+fxFLdHMg!g^x=GgEf>lc=57X6ucq8C{Jmv52WraNM2E zFslVeH5{i1LYz89$a?hguSEQFQ3F;$4pq`x{UmaoH9|p5!pMffX!oh+%7mDC@zkwo zu_LU!F)YseFC`91l?91g| z;?F(`D1@k9Bk?ovoTQ26P+A6EA{YA&o4A!p8yJYJ7J~6!=LcLVT3!zZYArb#9X~=f z$gbYDwnhEEd$hMYtcj~74Ah-iUEDHY`EGh(YI2XFWHPn)>e zf&&ER(Q!d2Cy0os*|Y*qP-OBuYt%@xIkbn@=Xvz*4j|+jg`MQLAX=q6O)v6%T6brL z-ZQt+Vcg^JRs+|T>tL-xrb%cqW%{d)XXiT|jA?yCfHKEin5Ci1y!It~5l{K``95D- zFRR~43-HEPveauxz`gri>DgYd2;Lo^0lYisR=Qu&`ZZ}ImJ@Sp(HU;46^N6tTNNlt zNhxzqea*){lRU>K%DtyFHUrTM_3(+sh3nnThDey>m+#?EBSxC-{kryg=jOht)Amwk z@^n%krUhT`ZPu3MiF(gUHx6}iQ4s0n6?182=LQ-YSf|_-^wr~-pPwtB5$4YZ#+sEw z42`{Z>bC3@xnY(wtNYo6*UoYfXV|%4>3?Y9jMV*Ts+UuhC`5m^@EWd5@{VB7RRq8B zUH$Ik(}?_{P&BFE)uni$l@4k zBie5;-=%Ervh=a{?VAF)@nG(&mA!@s(D?!$@21$C;_mM(YJ|NgKbTg%9mSegEzey< z6NzGL_Ae4bplBj14Wbshs+q|dhjY57hwJd5xql-4zrXjl7|t*9_F*_sKp^d-QkYGD zu7P6wgk4-WP;fU<{Q3;r1Zv@n9}m*IQM=gMY*O1f0^sJAVA#VzZbOepJ&~K71ykZb zc*v4cyW9)vgO9YBfLf5-h?kPu6i|Ds*7lWRVSUTmg-!-8ZBJ`Oi?9~h7kL8A)4$)+ z?~DHF!jGEi5nIHE_*=Jcr^zFsIeT-2LDicUGb1_B%DEXo%)>iS0(yH;qM)R#%Ky72 zz=zb_;ESr4f*bN9SwNEBZ;6nQmBo>?s;>x$Uzh)p2=ot~J5S6y3u09?){JAS-Ar43 zNL?e~i++cG$1UdQ;F3Ke`3$Ax!4-0~OCp4>D}^`YyS1pPW_K{%tQf1~i<~4vmBWUx)GrcpW#|U^2ud%^aXw#&wgp@)$lPLG z>MJS&A!N-&r{Ou#12QAy=`1v#TV&xWP^F4epoqCMMLqFsspUKSByhE0F3iD@kpJA7 zVu|tYu8XykBrdxxf1Kd8H!SZgev@`9RkbR%@WG%Pi>aT3iUrEOU9X%ODC9ezvg_XD z>%PcPCuHJeU|wviWDtMn1BgztR4*}YUWlS4IP;9wqzNNXu)K$PjkkBE9z{u2UrRLT z>DYRa;?+1HW3cA97*~FiVeo6XA@SR%wE<2T^)n_;Q_y>Y?GyeRE&Wk_ZzX3LQj2G+ z6P>kDGsqYiOgm{L5G6tIkyO_8Mqd?A2DBh9S#qa5z-ADz07mX)9N=nk!Za*5_^=8G z0Bn*Nw-6wEdsrPnyEWtdt}$q!DQ51ofix_&Q@-{qpmm1?nbPz4IuUAD{xT`q~@bC%x(N zK>lY}9s_;9w>m1KihBH>)PkbD+QDTBXXrL}u& z^w};6Gj7V-@LcYJ?L(~fH|CzDIO7|xWkU=cy&l*06L=)Fa%^HV-F2zYy3VJ*@a*WV zP-c7=JhJRPL+UHRdL~g9Yr2gxm64xS4;M16RR>C6UsojR#51CO_d|se`AdZj1_^F^ zm8INg#1+lP0$f+}qJp#I+1X&N4N7bBY0fWW6@U!?Jv`Riq7kCP$rd|>@l@<@m?(&9 zJU6IF8NxWq#|7&==6PP%H6^ZKZXJIjYL&z}P(y!$`0( zH%n-m88_L27osL+Wq0(u{P?5hh>#TpQTN0J>}7}f%pA}9%4TeT3RaIDekP*W_xX}@ zWTRApba`lk1nIqfS#nq5~>3HxH7Vma>QmbajX8NJ-BO!JJC&|BORE^)_)VqFS> z{IwtFDS(lfBoB7Dr#Q=9W-r1)h}WUM>k~>|dyDP|G)eml(-VMI{6pV&CoVQ#Q4E+` z8m!{G+PxA8-pgt#qqVafzybZ+^`RR=}Yq_of5%lY7 zk91WD>lsqhy^36(O8Tz7Q7Ly{Hb@VFBVMf zHY{SRpp)hGwfw>SQRCf`%_rT4q8n^EWsCDaK=YIaa|3uMcOsOYA_FE^`E*p3+j;e< zCc9xi{`GCM%Z^^1$%@xG># zv14ssvM}T+AAD$`ca^0+0Xpa31UN#+M#MhXFwnCZXqm>KtD!dCFp5LN;j@-L3;dP8 zKPBH5!a6bNkGRKhIl4hPDVN@w1g3dU69_XJ5HGygygIz0(d;9pq-Sht7)ufy>#ULqB5sGm9j3l)jVW z=uNZZ-aF0UE9x1_?BxST0J5jfTdomrY)o4ETrFtj78;Mzx&QP-yrU)Ra-_tYvZ^$d zlFdAao$^Xdl?r!=m_K(w7{xGw!x-ajfctJib&I7>Q+mxek$&E?i+ii$f?k7I5L1*~<-XHxo#t&YU7F;VSDT?W^8<>uHWHNQM;vYfVCO ztIfP3t+K8^nTKSMzXnuy_BtmU>l-$b3{Hb8Nwp3&*OS>z?K#;e?xbz9KANpvm?Z0+ zNUdhQq{U`X@URqb|K+J`<2Tv2yas9Sp0l92DT{nc)TP~bnkv2LPd zzL^MC%8ozSoNu@vb#4&D7OVjvM`YXywVM8-eu7F6!^m=bK=|YNXN-F=o#kHcHFn== zF>EuhH5Bf&ak$BzClM~!NNo3)Ut&WkYc#`w(OL~afe;Qh#g`Ncs$Sg_{`y3TPa%Dc z^$Gii$}v;f2Yz6nq6NP;0+f7a*=7q-W{d-wDT`r;I>xnq7aTC{D0ZehV`YgG;G8Mp z`RszVwSyH#Mxa{6tD7hvZFDpQH}pzcVNa7S!gyXqt@tg8N^}`Nv)SN9wb^$P*}Fp% zq__@r!@1cDjX{<^(VKGaEw4z}`xZO2MZd=w3OW5I{I`PCvkb|XGdO@#8Sh6TSGPDk zSk0moCV`^@f@B1RMp09lM@wQh+P6}AlvD&yh^0AWbQ?5D%&21W1FB0TitZq&ufV(7 zaDY8fp2pzQ1}7H9F|$4+wAmGmPY*^-qhh*;gpw4%HHK$KxZ{c z8+PQ*zM|A{|N4ZBCsie*RiHf-D`@q2&#o?-l?Z3TO?%~;;E4=K-h{bw_3D>nj-HX6 zrKboAt@pQtFSt@Yg)RIvN8Ia%@*q#R; zXaEbL$;!-p-OS|;os7N2EUuQ>4peahVIX^rP4%zZuFD|N!&*}gpma_}W5{Qc9i%x& z3j*fkE-5`lbpa&_mC0QTJJU&_>#S%Nsh!ymv1T-QbD%odW&G8RhWbXyO-9c+J-af2 zsrDqW72A|zI7U4POr(NP{X6G`HSv-E6cy}NoXzXxWv`DXE8 zxHCHQv0P(M=)WG33^`TFbLPp_ft0&uJlIkz-9$&YlM!FUYg$9CH_Ad$^z8IYotc8W zE|4$Q0`^vS8**HH^qMnCH!}IF>~&4y7AUSc-@v=R9;4-*RF1{)d*BvX1KIag zXuI$9z0;gu%Ql|9hrZ*c7AXQRbJEykdJ!(b5fRR5v*`cOn6{*fsrf^nrx>qkT5@61 zaQB;8Arb_1xxS8l4ePN08BsZA(;89e|Di>vy!_*R2z8-W_0P`BPz-~bUPyp>~66_K>+Qjh2kmDtoyBNUfZ-SXP7_SsRIyr-2(eyw7y ztpcv1Ime3c2dd%N@v>=mUy`o`fZ{<54J|PRtGhsj#(0dy)qIZX?RpD{Abg;S1@*D3 z#1br$e6$TYcN)l30|m3Hn3Mg*P45y7N<|Z+%Q&PAftsi`k!&n8qN8zfe1R zP(3+ViP>Iw-~G~pBlrfK;nYatO5yiXV*s@=N?4fwiP{VdpoB8O0*<54kPnSBO>2emSqkU-n{-YV6wNmSiQA7G zGue|m_YrogZ3L3>*`0Gb2(@I;g`0u`^LpX?UM?J2t#+habCfErHmBI)svR_e<5gC8 z${N>UGP9vAi20h&OuumGX$zfB;5EfYlr^4K@crt~7|SzlA6q)Hg$iXRbV@ ziAR=ohy3e|;h{(WFYNNmg(V;HY)lddLzY3RC9+tbu=k}By&A&Md1KcVvq>7pMlX~V z@92OPww2#PcQPK>m?t(RJ4t`{%nwh6#FP{ETOLPj06vdkZtK&CVvR^m5|>`nw~zGj z>kE}8OHRVJ4s}aNRtL7K&(|XKSU6isSc&GJUyztc?W|hcU!MqRIycRbRK+wWcu$Ys zQ`&?%n^ImYe3Ujnj0#U{k2mF3yNwQdfk~>(p3$>~1BH}%{0CL4hIjHUdhANK85v_3 z!Tb2a?deNr#{J3K>q%j2rs60c1IZkdmm9Chi|`LGPE|Rw>xU8fC7h2Ib=6JVs`0~X z&b4a#lhdn-=$o!&(GB>ahs&Jf*5~>WU|SrY$MRQZ=-~$aTf%++lVu<=>moc};!c@~ zN^mjL+wd!6xlMuWe3I_^-6bm^reUj!h-5to*F9CUI@DKF8?ERoAm}}&FAv4|i{v4hTTMI-U=f1lC*YhDJx6(>WKoA6(KLB}BlME{+Ht zv=;~CA$G8iWSIzc#_byXcnae_ECNb(Bv_8mmsZ$~kldM{R_E8&t#E7#Mop-HrXAc4veSd_tM>F;5R9IdaKauh*t2bYp%cWQBb z?5H^E#sD0Ef&;A|f{|Hj*xm?7QWu0NJXY93mf>5GvC>_mz9t<9ZB;|zERdl=*gn^O z%U(o;G%`fzB>dS)L4vYGwtdD2MGpPEN$iWjhuWESNR9zpi{@9hLGB5X{DA#@M-jmr zZm<(&v8iA_I?tFGMG8x6fxNWv^Tlt?MPuR*ozC~CbVl6VT6Yg^sykT_ zgG4#+dbW;Uo302T{hk=Rk#gAs!an=HTOqI0w=W9)55kx=j~ax!7p{X#C>j{?^{`9V0)*Js>UE+h<1 zFB!a|Ob*{K8RX?}F4YXDWrS9LT#UpGoa2_2uQlkGxFdwRPhCRE5@LI5SAo<}gX-)i zj6#A2E@-+XYI~3#W2lyn{Llhug{)_l0TWggE*rbz13=i1owz0-Pjda;SZ9vO-TQg6 zI`@%q`$WU|p&J-Vq>!)IU9FK9ZKZ+VMV^n z?r$zSv`ExO5o%~cuNL2vk&TuQ+Lgvo--B}Z+~D=ieFFpQ0v0ncRNsUe8OI3og~w31 zZO{e%@C}_vL@jE;2TN%;^1+oQ;*C)ZeTc59*CNdmV=>LKxH~3ebMnV@W+#vLrcnmd zL|0iVZDc9|qp1x-+YJ+w82d7uUB2XdQ>EFwjJ@1baGhNzRz+1=m79~ zcq|s#6b?*nr2@*kV45MQSta|AJ?_P;eiW4mUcfP1Ny>A>rR&_9pPL(Rpgp*H2mr0% zN5cf1XHugP>)PfJy>kQwp(XoJ0dr;Hi8sET)#)qm2Mj!&RazOIR*k*)*LnGY0`NJ4n3u_7jdLGi8;nC3dk4jTB2) z8qJcbM}`^~>TSl0GpHNBO=|(o^TkoTlH22B5i2J*El>3+kP--=pUy;W#1xo9hWT6_ zeR!Mi_40XN|3fu|q3ed)S1mMPk>-+-;{y*;yy};-c!$%Y7=bvR)k$Q}CMOHydB*LH zFi*FF2WwiN8(~r+Z6bv*x{eI>7K40d!sh3-x5WKw5BwbLrCj?Da^w3B+PeKs2T_Tw zh_ES%ELfDV2P$`mu(;7h9)s@;T1g1g}U%EZu=lJPW!$X_i>BEyB zNFfqyYwK|oVLs5YO=Nnq+oM@;l;IHHRern09Ri#{YV1~#x&*k@{o?=tY;9+R?KvKX z<%Z4FeKDBaS3udB1rJar0UVlkUd9T0K%g-0O3hfck=$E8 z&f~F6s94xN`AgCI@2q3TMUuIK8H6|yhf=OSmt1Dy{AdmKBDFZQHp|0nF~EmycC61i zKj?G?JoTkE*m*B`dl#EN6$K>to|Z1p_zm7Ip?B-Q75u$~y90f~&_^CCKUmBV)9Yi7 zD2xZD6*2Nr=LEd8;4duWZf1y(q>Wm~PqUH=w%U1rdX?xnVRDG!iZc%~(WM&`73TH$ zHlR?OdEZxD^h}6Ct*)$y)wgt+2P_u-AIXWtQrWseo!k)h}-(JF4OvUtd=^vWCLViD>aE!T{uz_d*<`uv9vBvIAmE3>| za0xJjT*ddlzS0 z4^YkdPkx;5g@CS+?AY3S_RromF$(pMI$??mwO3OZtldiF;TUyp=$Pp)f+ljp%T>{q z-iN`Cv@;ZFzGs?AwC~I?(pE&7QfgX4L=1 zHzCm6aZV-}%0?=r5yCKZBe&e+A>BK(x;br(OE&+~@d9iFYA@>?IE!8Aa~8U&nqV*da}rORjm z(|8$@c6(R={bv8_aoyG9fkF%>igq`JS-&mxuW~FzE-CNls6v#O2>c?iK?D_YCVk7!`(KDx0}g{C3%y#?Lax zX`dDpyO<>T+L`(6xrePX*X0MD0#{o;G(<@H4h>YVgm6^IIGcTHNn5Fxk_=0l8-CB6 z>p3y@mcb2jW-=zzdDSfFYTj&J9po{z?;o79N#Zx2G=1Y`1}w236dB+3iMm!kGcjtN zy~W=vQdn@v?7&L?dR%WogQtYeJ0VO*=1g20RoeT+p{T&IRmVU=rU8^%9Nc@u+WP8o zvjE4=>n-a1AxTCt4-Y2f>a6!FkO5W zZ2`cH^Ql@(deMc!`I18K$CBTX&Yu@X;0w122Uliyp7-qvML;JFby)tM>`&$-<1i@Z z)lz|x!kk_Wi!u1O1-lJ1g%++8) z@hrXNr{XL>da41$^i)A1zmPfljQ~gUZc&NiG)Kz7$Az@hkg68_((?SzX7HNK?gaT~G8MAksv&&G?bVqI)^CML)7+Hk_m(A;yeK>o>3bok{tVV=+uXLe(zrN)1C& zk&j*<3WIqVUCpnR%PAK{4q>mcE2%5{A!L49Om_-ZGCU^V9v|PLkcw*GPRtCv0gYv+ zw^3Z_ERee&s$A5X;1=}bj=%5t_l5oIqT^n&r1upl5E;}Wyq48xM`PNn^{$AM1W+OzrQjXaOZ z@|mGLX3-La)lkO~ig&)h*NBz`J?Ug}5?LHgVoOWU|8qS<4HwnNR$#=&eBa}!5UV>! z^5^~`XjsbI7ToFfd{=7hqL=meY*s%|Ls_ui4M^c+l?-YLxv-yK^IzcE*e(1*T>LTs%m%mE?_a*3A)?im;u^z?*(DCX2TjIoqXHof5SY+Lowc}X$L z5JiVNFf;?x#EcW-Lz z=?rv8CXC15IQgx)$+%`b7GrU5=xFiy-)RX;&cl!kP#a%l^@;UrHqhlq3JwVm3?1QK z^z~BZ&@L8CZv|gLc{|wA38cyux7p?lUhMYj7Nj`aJU3~}ouHUj`Ce@y12W38KMeF# z3RufD48Ipm8D_=`FGR4`$GW=KTm7~6`8ST@zajRCQ?>=t0gutgYl_R{*sTWgiYe_S zcb;scgVk5B9BfvLyp=o>F8J+c1MR~8(E+_=VdM3aVWFa*zvTeb(mH^p~o{n~D3X)SDkT^%W>K$27a$u|7gkBJ-gqKC ze^H(X%(@BJ(9rE)Z~b0y^*1^Fw^r%9bU^g}JgHG!br1gk@iCX=U!xS#fR-$M?(;3t z|BVLx>4W`>x!wS$_cI~$XNn|`pql(5x!;VMXa8=E9k<^Q%(b|p%!q7msvc!s1A4?Z z{k@Y>cGyvT&{m&>gTXH!;1_w=lIT*J8*b=@(CwniIFtL|srYX%{Gbnvc2+faoW$I% zQQVvu-QVCBTdjZ9$V0Tg9HsA)p9B-q9Ji}oY3k{l0~{w@d}~vF7+Lxo1NudBz4^0d zUWs4!*$=njujW-4Yq`hobhFo2NMi^NNQ-{rU z?j8766?b)8{j#28#P~>QG+r}~7}A$?eizC0*1J~kW45GbeToQ!33G)0=H-7|-rpATUC=ElKmM~4pB|_R54QNV^T81x z1VmR6r~g@suPFAvYu;19A%oahwVrehBjOs}HYJ`*|MTL28tYeXhgJ4bzf{>Hy-7k! zo#z&-o^<|gSAOQNpE%UgnOJrhl&Q~EQdX~X{@?u5cdGu|3*Cytf?);Oo7y(upq(Qn zj(+#70)zfY0DGN-{wCVA{~x&;K2p{N~=j zK0ikv;K-uGK5V-05i}!GOj672F{d`aeq<*6NkRX) zNtUg|vX!6*n}|Li+SbEN%K!2tzhXAPD+&?EMO{M{dj;kM{;$vJ`&YTDKVW-GiJY1L zO2ngoo3tL)?TFQ3uqq(5*NGjA-Lrj_9H(0rs>y_A8aW??0FIy$w&XcA2K5HyZO)JVBmxUZm1~bND=eD zGtfUcpYz_K{V3CC1Y{-ssC@h@mq<5X05FK zNe4+)_$P?+@&hSCQ|svSo2JsIyi=Z>C846aP~yrxXO~ykN3OTOzlVqC^r=E}fFDRv zp9J!0a;d6D`n50q(wE5w$p+`AV3N~Q_|~fH*NlXohj>RWeTbLvHgRA{c$2qHps2Vi;`ymEbD!9=4}upRaPPH|f+cEG*=)!RG&drwr_`a$ zQX|yf$67+m(&5d`doO$^Oz5+1_8Mp!j{Wq&ACLY&uKe!aPJV$BX9)Em9}^Lw`e{N! zV|-1>yQ`iaqtu-NS_bc_w0cPN@9QYtt=S~lw(PQj7vsxh7URN-q$-y3+G|T2B$Pk> zmxMTVt)rfVe=jZgw2{Hyi}BST-(Fr_^W@v@o!Z$d+>5>*Z&~=`oaUT26#X=ckZ1iN zHoZBIt$29(am!l7wEZlGhI)}KlSSt)j+4F1yn7MFv+Q=sN$d^INPohwQZnSnB&+|p zGymuTPIvlP4$;(x7ugf~)3$AX-xuZJa^{}D=S|73t&!6!Z<$yfAM@s01nE2YP?Sw< zY^dpAERRk38aNCbH@fhiVP`_~?mf8et$QyNkYs+)?#L1`WY&O?#3(>1doQJh(C?2u z>Q|Bbef?^*a)N~9b$YGk&)v!$j7a#uxYUznF3PymeO1s|^xH}aqrBuM{R!+f_bzL9 zzw~K{yU3gVft5k+AFDayYh5^xwL(3slr)Iub-B-ge(<_OA(^R5sDpiGRvU<{g?@S7 z@|E>q-$?#-l$u*)-%x-t^wN#VZ^y{q^>Gf{n;Dg4m&*Vg{03JqAoz-kikhS9BGb3{ zu?M)tEiBbeF|oGxE4f@T9*N~A=I~D%9Nri@J`7#K$9(0BDRrs#YN_!(h`3a|L11n( zYtGxbDSVdAIvPzsxwuj;_j1Ul(=T{OlNWY3?|GcFq1bgL)aySaN3@L@(|R{9(p+Go z30BC9=yrk1^?$UPyIPrVY7@f)f5-Wv_o8uD%mz=t=O0VLR}vXg6o+iBH#&EXJEaZN z$~M=x9V)O^&ngrPSAL%OaWuji$VdnJ&fd7keZSl2=Sh0!g_ns%m|G?bpMQLmLA#v& zICYw4^3~4MlO>apz36g-h}F%xKWL}QeSik;JQkhVh*eoe0)BS5?}N1tGV}BE?Dz<# z5v5o2V~V7Me(wF03QAS|n|h=*E+`o6?Tuhx(pHQCi;WYzZHMh@@`)J9>ju;i)-V{y zK&KONH=N%O*(mwNt?@(Mvq=@uxgrd$5)!x8npP~82NUwNS9;4KIL4U)h83wcvZqvZM7cK4x<7-vJM*1Q?UtvQbQ zvO8{@KgRayUswHqXrS-oE|S?#d5ANtcvKn2otQsO^I7294^lhulXCYL4*S2t-W51#@TKKy}N2DBScaDHT*M^*hqUU1a2xKk~6S;KBhy+@SX9e zVKdQbaj#p2VA+;InL6wC=qKTq2nu`=dCL5aJvL-^%3+)X8f?0=igmWSj?GuxL*8TB zZt(U@oFx@+H`FL9SoQYscsk^BOzpRN{4H zO8@u?bQ^69M^wlIN17f1kI8*k*$>w_bFu{ZIdusH+?bk9|Lu~h(!Sj8N70G!l=Nd< zkj9OG2-c}`0n6f))V>@-QOUl5##T6ZGOt-#{;jjz&5DW{SIO-*YCRH8I8ry#Y$@^* z@5Dl-7M1f*f(5B=ltwS+$$*u{fzvCG`$r_yKgsA<$B`Vvz1H~vOtf$Zd?rKg$L(KV zQ4hQU-9p7yHI3d?ssf?2XjA)6yp2yELtvDbI6EKLw!MM+4rySVhRj$}Pd-Pv=)*ln zg!3}?TnTQpExOT~Y~B7Wg9fV)Js!p}cmr~Uard<}V?XCR>pFAyU^yye4V<4-IwbNu zXc2ctN#ywB>xoa2BlxOO?bFftQXku_iVD~yuRAiht->ZCHNUvC&C-k)xQ~3!b=229 zeQ!O&wQu40C0%D?Bf?|xgXDz8j4^?Onz)e8A13i=SAKP@9j1~evXYK(%*c9FaWX1P z#M9K5{RDP|FOu*t6t!yXb;&zBq=4MQdj`tUkbvawC_!9MSE*NMV zs|^|7hGM|G4bKQQwccxSr?X6@ox&@UwD!ArAY`i7Atyf%*ZU@PpLCCE7m6CXAhC!T z9WrG%30}IyZE;Se5Q>__kI=_m(KfIJlZVe+EDw+l(l3@*G=MlC(j;25rB#(NVHXP; zPBhuUJQDy5`9^)0Wk4i{;r`vDE%L`cm%o#CK+645NO}1fGIu@Sf%Avamy4}=(_^{Q z6a!r_v$;M0-o1E$K&_rPKY6R-8`?3`dst1?3|ga&RPSOp;&-^wiufbyWd6GT5QC4H zBJ(+Uq+h|_s_u>@G%v>~%{eMaxidpq;N060@yv`pd?20Gonr!!TbdiZ_Db)eXH`Pq zUdb?*f9Tv!s0kw|Shfsq`2v|u>ore1`5F|O}vWtIDo zKGxC@&hH*V{#|Vy5%4$&lkjidx_I;Ya}@b>bInhz8zSge%i8JGwtUmm+x2~wz&VxR zIeK={MeN0tyCX{HG$ed`AGufXC3IeKbP6N0*`F^+C>|fkpjG^)&Pq0*iMadhF}}-X zpDboY@ZM%qgK-naV0y7yG~*9nNY+yckEUxYbm?rL@-Eb>>5akTHwPl_-W0XPezNRO z2t=RwZ*RKv_!e!i{ z{qy+cZ)4@>+X8=(r>2wHVP`;N1<|)LfFD#dz+QHU)2(7->M?2LcPT{V#! z)ce1DrFFgAd2THx{atTe6ghQO$i9`A!E})PJ5nx&n^*HiA&=a*?!2Jd$mcn$ zr9?kb0@yL|!+G}W%-_;-`kogtK;7Xu{DFJ`nX?d>KvmpE(q+1Cf%X z`Lu|d)9kugiMYn=gCzg0ofW=D3^Z*SU-3Bgg#Nq|`O_c!AkFT#{pEa&qqV^5kWbxX*j(25vKY)Um5^y@Xm5gX~M-6Z$e( z7iMOuTloB?*G+bm?kE^UdHyUg^zOsRRw_`zap}@#S9&e;Ip3mQ{%lt`*@rauGxj#3 zMhoug3WNTY3Ked<&t0yBUo;~a$e7lqU)=G4<{7|cGW{ez4DU0wx>~y_uv-X3GahIo z?}oI$iYQ}V5WIQoelA_qT&~1<`W$(;(Ju_V-e%Pj!xN0A&D)YIylvtam3j-}yL4kv z@3jS|K!ZEkpV)Q=dnDB?vXJ`=y&GyK#E*B&^#z$_)y6*sCx8rfV%a?_ptU81+YbAY zLB}04>5l)mJhOeD*bvdLMRca~W^~v|{C&9vW3i~{fK#$m)mf(=UuWo~aPmKim;6%3 zT%uMSrGa55KePEod+l-Oz_L+A4x{eK<1CVy0^emmKAu1J;Ky9@FyEYh()*<~hcO1% z3bqlndT3>dCPS4iat8Zx$WAP!M0_0pPo9c*HJnjg$k4tLs>e^Yt};05zItHrBF>~I z)+kK9Qen$}1h9f%4q8WVqEN=joj9S?jlznYUKHS&4M5JR0>eTB#ip@kj>almLkTMY z`OT`xLagvU&Y4h4sfv&H)1zy2-;tTqe{t*lXo}z33&2&+fdfk-UrXu=xr(?NJ*6MD zT5QUERm|aCGLz!ky&;wOZqO?l@{{cUSkM1)^%V)gdJFMT^l2lwTV%7ng}tEWDP759 zan@`Mdnmvjw#wYN@-q`M3^b>_?> zFkdI?oWkqKr09-!T4%daFjv?<)AL>tD&9tov92f4{uR~yei;DZ#xsg0Bl>p+sP29% zGOIAH&SXxH$lr_eFSUywXx3s`W9%p7gz?!Lag=2DC3JCvOHEzS$0%U4Wb1)feO>OS zb6~6W62al@X;aONdv*3+ixXb;=m-<_)}6WqfeodAa5-*9jssn!df#G}L!D6@iH#;7 zR4IO=P58eYjC<`#&Dh0d51%B^IcwflR#LZ8t|{q65WD-x3R<*@CxUzr6F&C9sVY-z zIfX_`(aP-ELAdZSWTVtDTT%`;S#&oW5v{f6Q0yVzSs5aSnRz&zF@o>p9_eZ=ME-J_sVGI#*1OE^dC_p7qdDshys2 z&^L{5I+p)-hK#5Iw$5kvIDkk)eEeqa?zJb}00)U31qA#P5y~04dq&LeN!4W zBmN;N0g{-nA|rDZ&6|X9m3#u9kHxpW*{{sO5_Si5=+}brl5sZa&_)R1T22ANm$H9$ zez)O1VnF5oTtjEqR5seZ4onkgzsDGNg`4L>?YpZqT->n~DA6&5<9>P5mmqC2K1NG= z42z-QB&cb+b&MMt%=_-cLZH*oo5e0pUJXOM6G(bn5q?_VhS)4|il%1;^9ICvrjJT2 z?t@>Ug(UX6dqOvsKIKO==!vv9vF>ZQim|D8x0_G@Vx)qeu4;A_(Euo&H@EwK3<|oH z_Tq)dJ-9JWvHPp0#U~KnsiiGfDVSnuL9IfW9ez$Ja5Mv|9rVNe9_@-w!LOm=zPkSP z0U9E)a2CnvX|~L)s2D}JLG|@l6k&kdNtIKRmeZlZ6kWlD-MmpJ&THai|5~8-PKLz# zj&jNB=Wp*{JHcbzV;S80qCDNyrQX0buguZLeYRn8oj$AR7CDG>M{yNms=H4P=27Xn zH-p67npdjEhl^Z(QfvcYKc1=yQybNy5rEYyRMW|o-T|I%s-DIxjebuv#m5nqRppPI z6reJBqa!y&&qm;uija)o_0!ST3W#X!g=LSzp=kM6{qq8v**>(S(;6=qKOP8P&yDp$ zNQ|wAd6kcG(|g!G4(Soto@%3wxOkqh3#fJ5mK-Er)}N%g_fi)GyR-6XoGw$KvG?nM zO8Q0wDHfeyo7=B6u+Ss(`l3x1sin6)B7{&0*~#85$u4_eWxKAuxkid2DSKaA=Dp^%NA}2!i|e9n*UGpyzfaG1 zJia}Bf8U5AO^30DabO5hs%7!|g3JN8h+Z#rsll%ur!+C6{&8|>TsZs>S;tdD4{C1LesL8&a!t_4YKjGXVQjxP&VdG!8OZ&Z+ZvDU2I zQ}@I~h1cZK8xPA~G&()r-ik|{O1(GzaSH1AJzjwq(~Yg|KB~-zJo3ofRD6Xv#IoYT zS|`v}`*5E2NHrpt=$P4{r!Mc9et%e=UCOF2?{e!4EVEK8EGsIz`&Efbm(2H1$05Go zh4|bALt!t(p0Ap(pa_f7K8%hx$ep4zxf6PG+eV5nvQB7DV|2M`_*Se?bq0Z!rE^W! z-t8U(PfU7J<_+D>KvNpC$d0`+5^*`r|IbFSwx1XNPQXF2kQiy zwno1iX!3QPE-8@Y!%*de*E)hpT`SSip$epD-D=8j%I09JUA)tYEkhs$Ny(?kGM7+} zpdH-uMJ86YK-LjwQB%S7_R42ya=u6^#wwSX>Vuj-oc+veOPA`}LOH`tQV)!Se8B$Q zF>+0sj_xqJs<$W4<%AUe9u@r`U)|9oU<{S5W}Uk9xwp6X(v>S?LvhT{mR^Sz&xDuO z-qDn$NqB#mow1GtgeJ{xx;!jYt(A8pp5&=AXU>Oc4YaFxJVXj~i&Z95#ez7&T}i3* zIJV+$*|gT{B-T>B7sN4w@}`h9i_4!Znfbp?uWam#$ICWt%yQRum>%x$-LsKxl5u?h zPtm$?b@D)J6(#Ef6F$C}E;&GE#q&G|igv21m@pB$JL{ulrpmN8gI{JFHEjAxTy%di zVZaM&ucA2C7&0Y6XCVe3LZ9i>5o9n?ZM^^ms{4g^b zX6S7{-9y^X3DQN-!{mJ14k-kop6SsZv=CF@?oz(gehU=#sdRtQ zK3@6}b}5&s*?F(hQ12CM!`ta7gW+8(U372`x@K@tyaSyGwtd#|uF01@^lqZib)BSx zTWF$AhtcfK!6yi=$znUQ|*TH!jT##nwlcSvH0(O&v^mv@K+=mdL~_q^qc= zpPRpE%7juuuMZ2r&8m!uYZi{JrP4h~DKV9HkUo-Vzo_brnUjdfV(c%&{<)&&g zeE929nZn*P&DtUPe?ro2^n7497*c zH5;p?%Q_l;;+gzC7x24${F$$MBXp?PD!@9(5yxUQV>Xhox{?Ck-1p9nUERx6@4ddguWEdCk)Uh_R2^E zh((8Ruzwx`^i}(;cJH}=`iE*mGoO*73EIZ+biMRdugZ<=QjV zmm|64`kp$>^iNU_x>DdCzqnL_`{MYND@dnszX&Q{^^%Bvb$o-6+_S;p%1 zyU=lX=#iA|E&<-*K-;cb?;*e3v4FK<|8Hh+PdIJEHElVb#YJaBxw}?uP5=bj-VzHe zZgs|?oRwxnRqG^gh?KJ!tzHQ<|A#7xQM`Klbz4^UVHficLigXl1tNY`ouy|ZdG#`+ z{UyAAGlB!Z8Nr}>uBh-%2dQu{sf!>}AMVo}cxyy>W#76W*5>F|!7`y&63}0-+X9d4 zfq3OcUq9=X%DZh3>ULcjsKS&QvK){CMxHflXbFGHm*0tjCMMy3s1(mJ@la zKk=Ua*BvuCNem>EiNAT&*gRjFOkC_`+^q`tY==*b-C&8_!Zp3mBp4QLWkDZpu})Jx zEkn(!4@2_tTySS6#(=n|!vu@}On6AMDk_=hI?z{1LH_~5z;pj|Z5a5u$$tN4jI2tv z4S<3v{d)#wP3g42#3d5~BPCfiLWC{B$J%95>+vu!+y1r^K$ge<&(V7`2oome4)^9) zH(0lIm1IVI!wOyQQ7(N_h%0%JzY7Z2`9QAcp}BAN+92~x?@YHxmT{|BF3|4(dz56k zaLLeYAR+@YuCe`Ya}|B_FE2w1!G zUM*DSUIL{E+w?zNxj!3zJs}E{Ya}})BCjl_6&0xvjh=!D41Z&=-_}}BWtS5;f_GV? zUZ3XgUO#uDFPuG(d-N)bfEjOy#gLqb;BU?jK@hi3K^%7BBdD7BKQ8J&KdxT^%j9&e zgdrRWHlRI$>-q1u#{cVKTnz~^{3arIOX6=%3;%Rwz#TQUa6oYhj0~n`COQ7*fPU2Y zS!>a<;YPqpO#}Y)JMhQtsDDb;+okpR-6P-$kRUMpwC1|<+y8fCejMN@e>_RzR-;6b zN>#u4<(u0W@!yp?Jc2-#`gTwE4@b^BhNrv#bV%(7uegM*cX*yk4;Oqv+w;MjUpF#8 zStzgt^{s$N1;rOp4~j2&1{5JbB_Upd|cgq8567`im&_FNfy>9{?{Y_ZmY2qreC8 z;Xhne-@na24YUT}lHMQTH96cP%Qy3i=i}pZINF`-kla3i-(X`yRs=Li5>oT%--tGF z$q)y+8}qiU&nTqpA>CZx{5o7kHt3F>9l~uhK3$OPr`R3<&+Y8Iz7(-)W;O3z?*^ot1$<&!rPqy&uqfe zq+dR&?XAtX|F>-_Cjdc9RRKoLKHqS!IdS3mtNphD{s@1d&R4a}wkJ%>(ESOk zQrvujf{IG`fC_BMX223;w6_Vq!OuTnU^nhQ7sFvSH3m8Ee#;6P7hV_)d@Y_>+(G3Qu?$*T-n$4-t3h*1YF4HXBEs9& zwtIDEy%T!_!0Az>-Xs4OE6PA{b}6(TXg4{ADUlyk62?s0AO|aUz6L*FDuGhIdh;fN zQYE4Hi?SY)0uOuPHQ~P`>VHXIpwbJG#s z*uVA|1mXn`d^&S9K%H8k z{0K67p;5;-bk5c1n56W1D(Afx05;|2MWlk$7AMz~ma1kib>9H)xw)(7j!Cmope3dW*!z zj-q!a{mD&-@{nT-XBf*>Qd0?hkmcbg6SY6JlK<8j3l^XlMqu0Yl#x0A!cD;+_)GC#VFfljpjJNGBngR&gGXPUj7iNR` zy6p1g$@}WHj|wYNK-26IFdmn5-BqJQfE&127SFmnp~9wFfDC3}*Wm6j6Nw5UDm_4d zd>K6LPyX=q>H334(@NaeU|t7TT2Y5LAE4MWw{H{`oBf;w0j+N(?~Z$5>sa-LC&ufP z7okaZA1~7aG^_QaL-di6kuB?*!fRO#d>=vik;A`=*`9xNRb-f%k^9s`ygX)(*^`Ph zX>matrnNBM0-(F_zwo+#bW&z~cU3KrWsiKsTUic8;v16NjL(44 z5Cn6)}HM3p3X$eLE#`&m3Nj?PX!6^4lA>S~D!+$eVYtdA%gy_nOh0m~T2obYG_9J5h#He~mKcAJDb-Z?uKCdH4+h z@PWz9TL+z5DAJneL)cE+W7-4?7PSCYdHomM(^ajdf^P99n+>Biiew{hCSoXt!?f1Q%sIqx-`l<*!_(=*ru-{AA&faxWdzl&@2LSz+Y|x^ zq_?zX`%{bwLY%3AL~u0PMZrcVe}12fPfSs{?M=Aa8P-P#cbKSB=x?@1qBh!{H~yW0 zXMW{4C!7b(;yf$35P#Wn0==AXdc`kIZnA2kMkWc0tME1I{qBS9#fWVwRvfG=%yjYh zyc-@KK5y$e*L`KT+m*my&K0voTCq~O5Ec<}gN%&qyE|I}u$;@}>REao?b0lZ0uIS# zyMwVY1BZ=I`~)p6p-kq_RVMf&D+1!>K^PP4khMFYWz+3!$2KV7vMg0Y(c1MMj=4?x z1)jns+@3inr>q>djCPG#8>6OtD9&f(ZA-5rwfn-v)bw>g)k-DS#x*-m->HvqrOYKP z%&RVK(|LCbzUm4>W+m-qjk(V;P|(oOAjW;BY<)aCFrQIVOT|47$c3Lc#6P#2y|nmj z+f-k-JesF0cYB|iyO@#v$7QGO$6M54;-9UYaW@`6S_TN3j&hj}lC8+CyP!sPfx@G9 zUH~~#EB77<=6-i|VA7+krQY~#3==xKoSjN`t-NVzjqB5!UxYqyec5|PFN8K!WtM#A z*@>~WxkM%|s?@W;OgXSTyAnsVyAg;s2`5h96(%#zM{BUJ!Z!@`m?&p0G1T#ss0nEd zk9T0%H6F5aHRdaF_hps^Ymxv65<8H>A=6Gpl|A#U=rWAuMFRLeqB#QUl0v@v7xN~i zw)Z|c9Y0}pLOt1E;KV9DE|}Ts-Lj2GBuXW?)DU+l2|X2uoEg}1oLUPd6i*l!os*|L z>$&7_?aC!4p?%~8K*{w$Ro{IB@hPRrIM-#eo%>z2RStIfB1qqsT&TorsT?I&GtAA)S~KZP^Sst(M~r}vX$sn9FBYXP};o#JVFCjWr=nMQoxo!Z43x{ z3v&GAybhRfbOk`RK~rSZ(3-lT>^Yw@A!@Mi_1zL5ZXZAV`0*a*+k0l&m|MeVD`ukT zm6ENq^?_@DWh`aUVhu~~dVCl!!wC<^Y$VO1jCh43qtb>YoYAQJpm4*#6Debfp`&h=9IjxHHU5%nV z=${e`okzU$4KnmdD9RynufKwlKFFB5n3)>QsB+&>+Q+#DsA!qWY|wu21#f_ZVIe~+&PqcMr(O1}S!*3=V^}$b9N)wE zu0@MK6{C}=1n7RoQa;5OTMP1<8(}K9%5KLLCnhDa)*V8Ob~e7iUP4cXiET%PGFSy<=M$=Cs6rL?$bm7xiEICFiVeCu2G4ur4JDvP+|t>dZ*C3 zbB}*Djze9Ukeh7oph?}qK{ub+6oc#6bv^1qos0a?Yh*qO9U^%$`mFK(^qUmS@^0y# z+6!W^<-mnF&B%Vfnz9A9%!B^;ymN;9Qwo2+FRsnhKQUVfme%-u zW|VlL%ptP)4k!FOyqc^kVs^ zxmme8ZHPMpu$yu~+ItxbJ`UszC~x2;v%`RMK0|nM8kee?m(o%sAT*265Bv>8MQeRn!Dp@O@g}6vQCvE72*9;J&VCV4c2F#2 zw0_G*VrTM@g0{juvi-iZ94#%aL!S&y9O_w=q^XNbSr_a$JHdNz+E?Kw2S*t2u_Fuv zliJ%W#4AF-jxG`7Os?SFcrQu(8vq}>)SY+I5%cqByXF4)xxSBTk1wT#AiT3Bz4B=e zIf|;PA&$&lV?~#2Vh3rbwru$(o2U$UxH60f^p z?kQ_hMGX$9#pC6wESwcT*PQDIWoPmLaF(()^-R}+OQm+7D2hSyuH(Nb& z7AQ8x>CJOOc9BS+pd~)~&3Uh$O5i>hAv#@h8}&Kcd{kCvWK}W7qP8nx7Zl4sw=B7G zG#hUov%8%kOFnVjV?9>RXB4u+@46z6Z=5d-++A;NhY?RQmEx_Utw&2ljTR!<%}-mq zz6=3uR!6zLG5LN*SB!lyJ>Ed@E+8nSvUp1~(IB$&ZouS78O4*Gv?Cnrfo28(rJ3vaGrW@a)fo&{OSIYZOL8J<1YQ^sPTJsmfpVb?Ku zF|S4{5?wmkYXFO*ry#IN$vEo3b1Vp@OdC@oV-Qv1bP`>bP}9k+85(+0I;x$YeIZln zzQF?KBYF&~?}(?!hPmA8-0k4y9HMAO2+wn}dLXq=3^zzOPDJf;1>NSG>;aX^w#KBrxX3%F&9;K&G zQzZ7698(7?N}z{Zbgs(cRn{%-Q8<@3kuNX_Gid!$kc0$Uf3P{Zy;gDI@ARomzfhPjhKMidD^o)#r z2&-rP)70_MAW7T_WlYw&b4n-CGEskMCFQx2o2hAjPeYT0eIf3Loxc-@3eCN{#bH^o_eb?olIR9S#gglF|oR-&cq%t+g|7hxh~K zjfoDO?KL=;n3`?|E>um@XIlpVwOzH<-a^qQD+>uEw%FoNX(*gM1nQt_ecR9=nw2k$ zpk}azhtVsnJ|)g`A4@>5`MEwifM6i*lvlCh)hCT{nIlu zJAn4jD-?O!-y+exH!ZT$v-}qpELZf+#im-3>H{4e9S*K?^70hF70UtnE4<`AXfh1fHVJ7%r^#ChF`xMaT@hg--ZqDmF#J$4G16JT&zt>+B)$F zxH3YJ(!humiwsEcXbNz4yRX~VVOjWPfBVZ`%$kufUX*QjE>(o`5)JS7Dj1^h2k|vU zcYt7D=Lf?=Rnw0;8^V|3lVet^jrpgneY+|G4&8^Y4pj@vtefI&*mDbz_^=v=*5f44 zCTHtuAFeF<2>wjJ{I|MR2epZfqDe&9ZpNe==I50n&P;UQ_7eixSwU=G7EdQjt>%Kw zc^`&iC&X^6eJP=6QjrSWC=>RG;8; zTWtVXqv&(q0InrSV)w|h2I5?3iuN+refqrv!ZBu^+1D55d$b(~utx>r<0DKvqpCQG z&du}23-3SIi;ayfa$2BS8LM>(3lGN_TW0Vbu0Bu?wgr8w-sq+x>&T8Q%Yu0iX_^HG z1%>$>Vrj)Qr3E5{ofj{;#{YV@V4u0yqBds2yC{@=Yl)ocME%{BPJ-8bDXEbmC8ji5 zookyh=S5vmC8z86;z$(s2Xf+beHLno->2X%&=FK^KgVA`HiMM-~>DA!H-E zLN%pNtZPXh5Juv&OgIN>%gGP5ecLZ7OJ_&Z?m@wcyET$oEibDE z(v)K6%LY8F&}VWfpA~G2XPFEm!jsbSJ;i$G#+gvvhWCqzSqsn_meCVH8GOFW&32gKsaj5@e&P< z!n0?oRZ47+uX1sz0}Z#U944T3rIb`uRJR>xeN5M<)y7Z{*lM?HXw}t7(~U__hIjv; zl%)|9P^Ah0x^4YN?n*T-HW=0EO^D z#>?_eZxzOvNlmFvA*$3BD0qW0aLD(uQVpC$Umn z+$GA%0o1Lk4=pSFK)JS8N$s!!P_)Nr0|SJ!ggZI1ybOX~QGUxP*|AK1MWlWiY`(Q9 z_*I(e)<{E3^4(LXH1iB=G?gW{rhNR#4~^8=ZNT1d}?n62{9EUY`#4 ziB3qUf48ZjW#Il`f|=%5+t=9b5CS=tnpYR#D9-MdFLhi6C!Pm>%=e9~VQxC*&D&pG z@=uomZCT#%8$$%)yLiXaG)qod{fcfalqRa``@=v8X!L5x3N^#Hs+>ZjR%ekbI?cdN zzewNhz>j>Wx~iy)mPbT^)%tD+!vtVlfaO194BKSntSLDYW`^tq>(l zR*qhepq3Zb{HH(rZ!E!YK~qW;UpcqFb$OBzYazaW@CV|AQ9@*0AIs& zsLw(1=1StVXppyM;9!c>-n?<&qN*}I5J?}1yz5U?0bK?{yv*zU3O$5xoL$m4P#ps=r&ebtW^c zFdt$SzC10R1wBq4f=P|CR@OQX;Ei~KgG?epcDY-0m;zhtu!$}VmkPA9v6hu?42%Kt zN=w!JQaM_kTiBS^1BHkI2YKAsL@ah`|83oI-yhP6nn51h}`kFEV03r?iC^-7x$(6V0YTZ6`fZg? z#NF$k+UAXC*Ck^2o&C~VUMc`^b^*od(_RT^*ypW_I%Udl$kIbLG)fd0^iRfKf+@f($ETpETY}C@9a=Mh)^>sj~fbUi?3WX*y1^RXX z9S-EFV>zrM^Y1-9YTd=XUML!VG3+#fD zP{R;t&1PTaf+uvner07>w+AMCTgOm$ltMy{pDeTQg2>S6@42MyI-f3}O&Tdp`_4DY znNcu2s<Q z?1j!(&(xTnaGx`9JOI5K4-IIM+A&IcAS;VLE^z7=9hhE5&W#w)R|ixxLN}ixDTWFR z+}DTn9H$GaR$O`~T_NihP z@C}A9Bxzc0*wTHbziomzz5xB@CnHYpPOvXw>{_%CfzkdaH|wQx_u$o2@jwAG1HEvU z!S&z3Lw1))MCy9>xB4dLW_cTC&5mzc^H`;ys80GHuxwW6ugJjDXZCZbL|f+Ysx7KZycOJD0?4)aa z5O|P|azTl5M*_*+bgF)*g8U&~c2y269b_xJtl<8Aolu_`?ox>Q@w#*pQQV3Y680k2 zSKkxjto-s|M4bXVul+uyVLjLqdSl>4;{n=*GGMQ6B>o_9?8v_6*$j?7)@A>3`QmHF z+pFJG|69BSv<*PAFr7AaYGQ+8HZE8X#4fJ;#b zQx@4G4=QmQjq=eA-8h^>4NooXY?*yBDUJ%L_oIF#bPZK7Zq|JOCsP5CF-rp(R*x2f zd8M5F)sMu%GKGPR9!)-NIDUTq4A<3jBV~{(An&=#cf3;NXu3K71b<3+%&xdAcEhDU z#^w!^wDQNsM$_d{XB%z#RzZ`@R$37|Uz@nyQisKC;AMFnm?WDUx(f@9@*^^ziXP)WlJ;}}L6bf5zF$Rs&3^^J_gkd>Tj7PZu)BMH53}Gh zNUwMt`^`tvS(js)9Y`ESw)XCJ1)-1I;@|=)-rzzX-J5WP&&O-QLhR0@Q%)xfSXWT)zU0vtUidEOad#}e^^O9krlj4stL}^F#u*SQ^c`CPtrh1pjGd~A z@Y(dN9VcTsteQ)?WS=_EKF|zBNPm`V=+=9p{%(Q6bZ^%YBibZ@MP$lyYn5hduc`Am z0X?xNvcFgy(2_}}5LTr$llKkkrD37Fnu`s{l<8zDxO_d$vvs7yN^EwbBq(Zp3eI~4 zfm(}RNki>;I&$SVWk!BD2yr$9!GVll8xx$aNES%HmOdNSFfQGTwJ8N{mE|}yevk2RW(0~^i|#(|enBF5 zkm2`{De*nKkF7UI(tY`sdvA4*x1FvntyxZwC`8UBb^tR~u{)u(T$=dI%ku1%T!Lu* zb?)8Gfl!nF^w){3b*CBE~W3K<~4j4nxRpXAY|G>TV&Bk0K6Ke05;ahTLd%m z>zH~!+Z&VL+?v2r2-@%Uq3Ln}GS!pPjw9ePzO}7<*R|j7#@^EJbqDHr;yZ9PWy}2R zoSDdo@-?AT3J?Q7A40_U_C7#*c)5syMG$wH&cQ0za())hWQ$ar5a+(%V%mZ%RphXu zpONLwFLk8D_4N)O3FLD{A*+<-bFnOZVxPySYOl!V-i7dMl=LfE$TeyLZ(eLoQE|z` zRHev*2b5n&^_t<`S3n_PMd!k;zIt}OsaHU;rt!v zgKw?vWWxGv<}je`;erryV|{(Pu$3{oIXHT>R~0Kmr(QW77Th&OK}?GFEG_AgKE8Lf z9?fPtQZ$24RkvBGEb_D@|Fa-;PcZe^K080Np}1=GNE+!8UHotx#y3U1+dy8+1{ht3 z)tc>g*zp04xTNDOr$Yxjo4CUA24HYaR?J^7Gv$#OdDub8ymuPWr&cstc`N7d?GD0^ zV4I7BYQku1bQy%7m95f|T*3}E=FqA1>j8G)VV0b$iRT#PO&F_cq}1K={%(f`<9YnK zQ&Xqw&j(7){R6cWb z^&}!q^o?P>!_~Ceivu6r z%Bk*x9OWxJw&RK(_dH%Yy)%5k{+uM`EJ4sELUs~@4qX@STu!hnH&~Cp(nsdfXPHZ+ z!Cdkep9cwCJS%wP0>MI!%4qfOgd^Lk8Efo~@LSh-V^{lxx5pfNM7I-G<3lMY=8neU z1!Bj-SNFZRGF4y~JEOQe{RbX~(2Zo4dM~QMLXNkOy|sIlk`A0US8DX^3x1_VG{W($ zx+9);2cBm1^Ex{EVs)dDCnwm2jOHlZG@`!cQsCh>_RX87MLEAZdv1mJ)rgtj6%FA7 zf6FO%{Q5lR7R0i)Fv1zT!$lf?&&ZL0Jtmi@b3XERnG(RaRO{5~X#e%-(D=bbfqP4- zd*@J7O%HcaouY0GKy+Hs?LF9X_vN;tVT}111=KeEsM?y=^T%hculDBaAukJBeJ0B1 zT^2Ci88wI1fJSd%AClAF7U>7;$&aE9J(nxE?}KoB?C~ROU*fx6hDV=Mb7>D>-{CYp zqBt0gixB#S7U_Nvst-+GgBl!YvG?{Tx=$~O_+31#Y|%SUdr4U8HXEo3szxp2QL0(_ zIr3{zcx#i5K`#HkJQzGwHg#Ic>+6S|J&4*m9=shOZJPeZscWD}%|^W{;;=1I4{khP z2Q6RNzFi7)o-ZSOXDyQD2uw^pxE^5bE2dU(M^*7y*{}Rk!}>d(X9a|!8pC1B*DTNf zzB=9~MvtQk!7ZtgyIkxFsG$g9CW)KpN7J+pR=$jU+svCO%uFe~Y#1*ym+lL<_uK|3 z>26)^ueg`YO|XA%;o^iFR_a@wj@_3-HEP+zxPWKcdxDGO6+*`~;@gOnzG4N4eZHzr zkpm>}lQ+#kX~ZFT)7K_a;VrOT!wZCqSnL#fqPA$b^;;_wa==8KlRE!bgzxbd0sA+t zZ1tcxhl(+6wW({pIXw+x(!0;lBH>Yw}}B|7i0)tm)S=vB8(tKe4fee{ZCY zG;O`7LA^&|Z|+N_hp}dM`%(B2zD_%1JgS(-9qH`PVLVVOZ<&)-IMd;@TOIi=8)Phs zNl~RsD=Sl*X|ks$95Txc*35g&s57aARHi>OYduvGaPie{C+dL#_2FPu{3^va>|-c_ zWaa+;6Xir>G4zvlA1nIfs32%Y4-~t&Nn_kwYULGz&rGllxlJW5dHj9XryQ3Y$n>TGT z3}aDho)u9{zl*2~gWsiO{$%qx1M~YXs)7WEo@Wu+al(!FfKy2!nAq*!4%%k|7&`fE z#tNG&eu>7y4@dFH&sb+2egSXDFm?9CRp9%NbC|zCz&@qLk)g`|@Xh5UCh?{gNZ83n z?7z?M1mVQhJCmj~07fLFQo?z-Qs5cyKFQd-KmJ#}GAm*($=J1sN{{Ckn(Nnh-+cGA zwqvH{=JK0hq}lJv@L%Te&lUWE{$Z(uAVjAhz6r1|sS5nkncn&NP=m~mIU-Zld7?KS zAr^I_BL7BjeSm94ex%L>Z=>_SeAfS7qu=61fTt)V+ zeIxtjD)g1l{F}%9=ezL#%`E3mGW#iQV>P@OE+dV#x7q~1aLj*{lkY!?BmO)TmCBPr zK#4b`C=>bfKl%?5{P}FfwE+eona>XrC*ceS%H@)Oc|t-LJ~TliJ7(62q7x|oAY;EO z3iWTPEi7)zW>XNCrO`|s{eOG;|1Ylh22h4|IYU(rF9vk>FQ2@6{2i8WTI@2<0bXz` zJ=oT-F5?f!k=#fEa5u-ry{ZJ59$ph+5p+VzKR=NFy<|TQ%A3*jX*>X>3S2c?-L$j# z%3offlcJyeZ|`uP6TauM-Ad7_KGAP*t1PGN{mh+tH4zF~t^l8VyzkYyPln zMkp%n3M(ZpgGz}-t%BFz^K6y$rTjnqm2bV-X)))VU>gH*8MvWjDmYp>eqn*)j~nCn zmK_km7)UkiqKnCzR%<#E{KHVm%%ok3$eU4I`KxWGaet79Ho|_IsdTNqJQJiL=GmmL zl*!LT-hve{0;=oq%Fj`$4M4&q&Oq~zq;?jzeze82ve3gtuTiNQ&xbupm{i9sU07#{ zaLMiuqx$90JnG5GGaR_k88z6N+T6K*6(IVK?NTbe$^e42*YYrsoH;mlzhCAKW zw*SC*?exGeVwaQ9$2liAq``k*Cc0ZHYT;Gg8Jyw|3Lrq7&dZ?;3w2sRaUO>yj1<#M z!xGbb9-9zs=>5dgNR~@ZNx5bP2B$?Rn;x%&e zR5*ZZl70uV87s%35H%#b$0hSebAR>D)zt4~F=Lm1P8MS=?U$htJr};cfKi);FSlC% zXoij0s2|-mS||=z=YVA_HK7Zgeh`B1lU=?Ju%$)HFGR{b{|Q+dS|!=rbO5Qjy)**Z z$24{QsHJ|1`pN4fax=vdiC*GSDnINhaAhSMoL)a?#7>b11hWlT1&IG3tMx4eK;ZZj zy|`-*W+#>U4>R=p=LcNk`th@Yp~Nch1nqVd`)Y77Ff<+gfq@IHcNKa$?T;5{3D0D4 z_>e)#A8mz`HPDREAwo>Z5A)Yawf4UAcB^LJz{}ekr{nyCQ2uc~KmAE^8fp3@TzyeY z?8V_de78HFg}8x{F#G>AVV{)ra;+B7X#0TBwSj380O)8?nr_{&pT zGV;5$P4$ElaIIa|#J}MF@`Q%(BvWi_0K{kX`VN1UEEPC-ab3U`aGe@{>rFWZ`~|u%slFa8=g70EAMqh94g; z28hfdQkr+mG#9m^)5eAcJd`qu^22G7@9V!(fk`KbYUy_^e&!YZ7gcb1a|h_ZZo+5u zME? zpVU?8c=mnxbN7M~DFOR}R(1r-u{>@4N!=?mFxnb*kQn6}K-FClzP%slGT_zoDL0gb z6J@hM{qT?G=)c}Jr_VZR`vn9ze9pj-5?~Q^r+#P22FLYek2&@DzaP zg(U>Q7|E&@dh*MNC$L$vDeWZ`ZY zL#Qwvy87wj!JeD-UQvvMxlET~B?r;!5KGIsd1~1=E8&AE^CxJ#F6M!#S>svLecCt- zxXX9N{-E|SRWECF)&`{mwKpLm0-wMMY&iPqG=2602xXslI*ks%SQOY~mQq|X6$0Pz^xSW2B8nB7l&N9c-)Ar||g&Cc{cVxISkooBqjbRM+KvvHy!y1nkp!gR6$Og>7Bj{?~b*fw-W8V8a zH={cXffAMGB+s`t-lA~0VGS#*qMJm#qeoYwxG>TAD>0u01y(1jwr%LQCJ%h6&Nf zP*A&P{;iEUw0XXdd8(1gd*UHV@c&Vl-+yI6?$_Zc<-E|4)FJ1oXni7(%OE$o%N0EM zkqW%djf%ATDrmeny>%G4)y1!xp=iiiyrjks9=xWbnK#t2-CB3Sr{}hXhCH0dxzKZh zXSbR?O_QW;6cJJMAtS977xJw~fH356!q{;N7D`|76nStkOY9hoyM&08kK35=5oRAM zP%wz%mL$S0UNI;#%3si_S0^c##~uwas7>k3Evdb+HFURc=-6q1Wz8s+j-0+GO6hgZT$;b37lFf(}ee zAh<&0z!>o3(0Q0CM|`b?sbXT?ZSqI^tKWEA>IcM-XSL&NOfK1sd`o=4<6unvI@Q2Hm15u=u?W@T~6#7^gK=>-9M}wF<14i+&}g@Y{k1$hu-|obFA%~HE0CB9p+Z`eUee_4VSXVRxTMKO%8QQ@f7?XfAX&z$1Ps7 zU$5kPW|Il zp)>^uV_xL*As!J23r0lLO6+Za=mD~48s8|}`#3_zzG*(we!*iStjzPv`^K*^TAQ44 zKHF_d8Hef4H<91$+QQ>tE2jeWVZH{wZyDyVUNc=2EmE}OOUIoo(cl!Kwb z$IdK@&>BjFl&@k296y(be!vk(6x84G;RIi1c?ff0ozr@2HQp67M_m4H|X z&+g~u=6b&7r~g9`;$K$!cijbo*%`zD9rLD_^3e^2Afnv%+h=c{Z~#jTt`h1??tR_s zGRR^SK{QW>lV8?8?W>ejb)7tKG#}g<*zS`=D6Y|wTZC6M+W^Xj+C^z#)7U~f{OdUm zIa-f&?hJf5!mKOmvA@?Mi4e=yS<_y0#ZF=U<5iQjI<9E41KFDKLNkc5(}H@Az)WjN z%Rtd&5lC7W%;o4#bCYY z>6(_61dtHov&XGV1Z%7DN&`OD_b38h4%6X$R`b_wwC$?M@d2{grmD0{3J^a7R}7gu zD;y|LEuOEd=m-%W*FWu3b9}h^c6Lg27C~=Q&e!>(H0M(TXu%M`M7*8q;$* zFc!!CZcp!=x%dcQi+znFGQz;ht*$_c4eOn0lzH*f=+WA6H8pCWePaU~T;_Nl+|jEl zkeB;eh;(#xO_$_zP6QgJ%e16nsQ}K47&uR-o;}-o>0BAGI~k4hM;Ok*M}F%0kr55x z#!2{RxT67k0B%L~oSaU#s@zE1B1&L-DN~;`t-llI zUs~z1Oh=<{r+n_pu(T4riu9qPKnA==1&I#T$kmjA9(H&grG-j4RAE}1PRRF3P54hI zrcCA^5h(>F+W%wkJ;R#Jw)bH`5d{?sh|<+TrHeF`Y5^3a_ZpDiMVi!r1(Yg60O=yV zg&KN5r6^rG1PHxDq=Z01`EQ&vXB^?2@ptCS`{Dhpt!$&IEW%5-8#-T~ql2^KN zry$Efx8SHAuz_2%FG$(_6AGw^RF9NMdz%3-uYW*gqo@eKc}OH{u7F2m zp@B)<0y`vfo|6b?+_Ce*Kbh1)d!IbP= z)P)Zg>~Z6m{TSl1V9PgH`=XjOdAqAofBSW#U_F3Wy&<;E<9MGV z2cm4mXE~HwIom;#)B0QZwUnadCL5D5d@+j|2WfnAyRdyGCEFdJqd_!~7)E)~8$66I<9XM|UmrkO&IV52_tvBfcUvswW^|kXa?cxL z&RMmM-8rKRT)hjFM45a6Ogla6&9*ifF^KCa^QJUrsnBP4s4>@Z514UnSw^HB)k>U5vvQ<`0ZTJw>ruM+-T9S<_|B?6IL&P$-=Q6Y!4J z9j>K`&R27sRf#Z;qU~Ko-57nTK1Hl=KAH*N);!9Dbfb43m>WxYwietHi{h>pAce|C zwuQ~`c<90Mq5Ryey>oDACAaNtceW+tUH(VIUKa>G*~LTW1ks!Io30Jrj=cuHlOOa# zFNs8x!9{?}wiIaVE-1S3C0H_;ad0e5dFVu|C_yJKo&6ZC@DqJT{c!o*#rpTbHaAv` zR<^;v+;vQ&VR4;} z?p&fR4y&1~C+(#aWeLAEXxJV@9YXSD`m($UVHxX1t?59CqMP zon?XNvu@*ts3_y>gn{N(8@|P4zJS@D?6aa(nrnrLd9a4h+q(YU=ls>qU=b?qdT|;( zc0>8tzW)AeYD~b$&vTH>@Wz(fPfay42tR3a(p=-Ir)Ovt!MSgaF$GVqq+03s=n?!Y zJg480)zYEYeK;P?CJ(xGWvGT+d&H?zawQ%IOg_qtTPB<%kW2SwJz>aMGk{SfzZUDT zu9EP!&Fk%DM~TKWfPu9@>@E&FZrWC z6JlK^qYbOJ)>`IZOiYB{)b~iFH5A(Jwp0+W8&4@qYyk)*>H)%H22DoBx^OIf`vMIdU$jDUDT1XE0b8Ec=4=zTPFtZ&gFLTTY zgo@@&+?l33_L(*=TAgVnJiCQ^Yb4LbuEpTavTH+2(PP;g@t7ISM#K2?A_BB}RVIyn zwL|XT64vV$TBi&#?yjC3>A>#^J0RF{$R4G<;zw{_?#$!K*uf8HjoubgKZMhZXE7P^ zcyT**soIj+*ku}Q0f&1ZFJGqORrxxg0yoeHnQb>Q^s4ae2q zJ^D>t|1y&hd&7dE8A*MKR)Ly#!5cmEt$`*~n{_s`NwK zYXyG8@P^;at$`Cm>KDkg6Cq5L^*FmSXg5p-N78r)19USFxb4Q<;K8rgyWpPDWMP%x zJ{I;ucRbi4er-3blmOW(y)5KK#TPEFA9gMGUG;)Izp>VRz>U+>p9{SyW)Qz^w}m#H zi~xDIgu{}qwF!(NPeYY9YM=3r+1vK>!qq*Snw};hT|let%%xxg<=i=uvd+3?)nhy& zbjqx5$LHfr=`v%~gDARSw6igl*xtM^=qj(#})c_jOgX%Qlgu;`XsG zB^(CLef+vUTCKi0^6RRgfaXz#ek!BE3d08X_k&D z#ppKZm@d5zS7Ga`QGyWbQ&UU*LXO&7_DE6h9^fj4$o266-KhhCicgtgz5`lu&-b@=aJ{^wol$Ec%aR{ z|47MQE3yrJ`KM-iSsy*!cbSaT~b=hr+O}6+ZVO|Y0Q4th;C#nI~9JC z#0F6W)1RRfuDagM$2aM%!-Vguxh_J-YobuB5o?TbeTdI5nR`p>a;b>#8$~JxW_m`( z&5H5ST96d|MTk)JjM;38YPbuE9l=2xvkBg1c!de z#vCww!D5>uYcbz2P-s#!u|C`r%lW&Rd=d9Ms{tc2X5=hX-un~mx%0QE|5KL^XWyYeUE96730xvcQgD|E*PUonV_xO z<)5l5KllNExLhZg+cLx_Tuz^>)|&YGr)QDi=pB8jiIXcSA$hP2u@K+MYS=~m$(8zp zo}lSU5>f8?%JP~#0N`6XO*6id;+15%7^^pMQB_I2cR{|n@mY$NPVew|(iWk<`Sc{! zmXc)d0cT9tD30lb7=EsBb3A8$Xa;u54n`N9gIiRikx|d#Y|)N2qN61^VW=?f z&5L%{h0q5w%jeAO9GK&g!?ciRqMPMLz|iJ1qb3nzVmW2=f$H`$rYFNpb~PvA zu6>9{0FGS8;5()y?r2sB7Njc!Ao~@-jkRub(vg;AT zhzj`7JyqK;oCYCo*Eo1*k=z~{CN(|U-b?vWrtC5 zICj5#R&2pwTJcyxlW5 z=Y*ZJvXn`6JSV3`hbybZ*U_N!)sytICvox~%Ho63$7!i{LX4NBZ<)dJF>Q=X&BY6+ z;q-ah6sZl^u!Xrqj^4Qy+aX@1YK`RIKEdO*{DePg6l71@(_gDlcgJR_-+i2+GpADS zX=QwT*LbLuS6e~|Q4e1U4ty&&W1Lpe=?#Ll#6~|&$FB`KtYt4eA-K<;zvDAr4{+z> zOizlOsz3lU(Ol_@4e0NeH9c)aO{<`jio3sIFO=R$Q7lxD_u-DZn3_s&%Z-JJcljzTkjepZFVW@GBh z(H@Gc3n-VN<`-(e~uRKT*oR z#N%N+*8KtN^QJqzb%Aak0q1zxluSVKPHo~A#Cd>66!0U5oep4v%Evgg+eJ^@`|uD@ zf~jnmO~tv50Upi(sz=>zZLf>B7M%sB#>yRLDiqtgOfK6@`TNp8)<4P^L(1P8N7n<{ zi3a4LQfCSg5YLE0G&_9Lz^Su%=mXhv$-93{{V=^PL!vwHd`P zuLWF|?d`?_1?vGj?3f?BDAi!O?G`$3O$T1OuQ~p!#Wpr!Li=@xBrO zwQ6i--|9e;9iNBXu*QuYxlA8wOzS3G3|P3xE>^m(PREf=CO7G)C-HOYmgx{_l+Q)) zgRTA3js87jmTO5KCY_unLm8jsYjn_iA<8yi_s{a+)z4s;UyJD zki+Skb&qAG=r5g$qkb;Xspc?$oz?fNn#n!W0sM#TDo%}n!s?aVzw zDb)bZH%Z4N9TbFl3=!81Y)`5#RnhuR#XW?k-2&CP0#_I^fk zG0QVWD}7FZ3Qf)!{S}YC{SzL&fGk5uRql63Ts)f8)d9X(#RRMR#Esj5%YBf_RLk}g z^>Cf?RWZD! zWVovK)1)(W^rbw4lqNXBrGARHK-wjiG@L^gvW!|4xBiY&4_a|$^zJJ3N?B2IYF~X| zt!(Lf#(A(epc4l){K~B?$q_WNv{h& z=X;(1zf@L#ID){Qd$XPV%{_(^Yd7~ ze<$Jnk-tEZ%?_{0?9qomjlzHZm$wD=k5J_7xk9f0S%@62{0oYF9E(J8>?Dg5iWqW9Wn=$+e=@AJ%vH`G=n$=ilG{{=r*UO&?VMYoXgyG}`kR zP;Cyr( z%@gp%U6jyfS+{IUxFr$&WBT;pi>b~1`Xh1{;Tic0>kI6G1T(33^5a_S_$vtaKH~@} zYiriJKp_E&?K0-=ZJe*4<X1B0r&y-HmwuA zJ@V6w$Bq=9IT%i5v_1Qzio)qXmSP!zsbK)b zA;K%1pp%Tp#pA=%7rQAiiDEz)4-%J5BCe}u9iF>AsQ`5Y8N$81c-(*FlW(!P4!@HY z$iTSI$UweCtUY7eydnyGUzM?I*{}Yp4k|_Bh2;8{%R{}!C^)_+7Z8P zg$#=majOfFV$|cRIhYB`8C_|(Hh;se{r+XdhQEmbPwdaQ z`0vMx!1=abjiB~RIgV+QXpw6|+Y3Iag6B42SC#ZNW<&98f1Si`5K3Kw?M97#xg6gR z;rvws^SQvI2+>`>NXxVK8^g^5y-h5cqo%kA zs9EQ$f%gsf*adO^BTa94FK>VI)m~u~ArJ31uFR{M*;MT(|E#;wE9Ls+g$mUXT zF?C}pXxjJ3PqG0O_HX1W7ghrWt5TctfufZbH@Cc0I@?VTMfJVfzfVA-AWH&D&x-2G z%BNXrIT(bLSWVsH_$)UBY;Oe0+K1hYL{P!c^o;)*&L9wQ%Yfpblpb{0n{0HO!1NNF52DeAnCqM0K0O>LG1Ov! zn7e~3lEy&s+Yhk*Tu70NrFB~hkK5qIJPL_5*Gh z4~g=9&y~H>fAZdv-o#_WPSwVzdW((^ASG;S@Im}M1m>8MXC5@NRi+lTx1=GY!b~cg z{J8BFnWXOEq}bZI8;|em*f)3Ct@TZf8v?d1ruvgo^o+JHjnOMB*&BIAU*4>Dri#*m zOoE5Mf#6`LLw|v3>-wT|6?JN?leGWb%y>C^%abve-)^*~WccaI=;jLgEm^Ya%^~-d zorx~{R*}odr9ikO2y56PmJOvr)e^JA3_PdqXFZZZ^ykooq2iUwqO*~)^B}TyA<`f} zD|5@t1HU?y>%ZFG=BpgBye(yZcx+T@P4O`pX+{8OPxt}aD`Q$#u)yTh^RuJ3C z>2EAgECJVL!t}jVuuW(qPkjYfPRXdD1bSCM<6KOX?1sXn%P@BJu__0l$@=iIU@jUEpJS;Xk;TdM`j$ODItz64w$B0-|~w8S0I5q)iY3Yx>- z!VYt;B2YBE!;#*TbJ6pHRW;Q_5Ec+?gqRGju%bg}8#KI=i};V=?aBt-~;Us#i8ZerW4Jw^~6j`!;;NBi<$u zj9sc$1)#=g9`+Z`)Nc5|sH$OgqS(&o>m!sqLN*mkJ(@nbwr2*B;1U@stV-$Dn$T!U zv}b&AvYXgy+tw0r2Y9w8AVcw{^yOngVrRB?7SP+3Y3gjBd@127hTEH@61sbg>VC0@ zc+ug`&bwhsYw(~*VyjiJ#gGMPv0-`xm}!4_?xJMCm09f!fF!QNRqe!{ z6|gcJ;x|4?n3fVlCL3&EcVQ~ft)5~(WRH%$W752CbEA1`>?zRYe%U_-?vZVLVi$7+ zE{U+_eEPM$h__Yv{q!~4p^AHO=?$PC+UX{JwMYhVHgdKoPk;+^{GdBHXd`N|%+eje zY>R8LBcE_rTA~TmfxouDP6?oo%EC&Ah6r(>C-0NZV5L3lp|!<|W}LiX2mKxkkwAMe zitOqFl8~FNrL=3QjAqM5e9%TyJvMeh!1`27uf*YW&H%OIYKc|{j@9PqD!`3$&Nj2N z5_&*BF-mX(+Y&2OAC2BjNvwQx%j#=lZOGFur5j5%rymB3IC10o;1!FGa85b)E%sw> z^Le5~;42a^lV2&x5tFE%Z;O{dIm&$fT^4L3H z_cjI$E=_H>?`Dpq`sVB>uCcX68aQJIUQpR~F;K>^U1N{jDsYmNFCet@!T?m72AiE; zF{evYt7#gmc(imnQRX4=8h15_RXL73>JTNP5;&Uz&hk{4Un2=~!u%=bY8n-T*ffoC+3RHrr*z<}s{mdV+BiJF)BF zWOgJq0SL^)T0iNcuCaXMM!&U5OHSJ2{A&)=_@+e=pOWq7nGrDFyWk2X|Jul*${w<| z|BL(+{L)^P1<`N9Hr*W41K~)=`1J|2X&q;9(<`6HPy0$b!!1U`?i{MU0cWI*wXhUe zOxUvvxd%w`t24?2l`bYZiFtvrU2nIjXZyMyq2F-jBoyBf3sUxlYEl?*_DB#`XFB{{ zEn)XVFHJR@Z-a{#5#7d_{dEE7lvm@g+dWi7M>SAzS134OP{p>t>a`prftA2PKUXFKa#fy#`>|M&*W#Rb4+x_osVbOmUt$#o2qEAeB zWvT7D^#_W!dgp|kJWh1OpDvfA!1C{)i5ak)niSUFtceVIIe17}D|Aik%kr#=F?3QOD?^+#)VLM$de zF>UMf)Ls_bc&h;tyLNi%zxit0Y#0jTr=LqJ+rD9L&XICXYgnGI|8SmX_PS|OkcdW^@|Asb3|8~Ke~!QAd6 zGE3kh$GW8Zp<|TL68_yo-45-6oANj=wwZf}gJ?-5VDpQ74(BXNYX)?1=y+f$--Gu>$BY6*jH>%eG=w_` zNY7)w%0B(A z)h(R4gvIZk_KGaH>TO}^BL#P1uR^L^tX53%gwgspkx}5Q>m2lUob7aZZvc?Jdg0hP zTRZ%WZ4mK+ZZgf}ATkCAeRq6Ee1Nu1Y5M2xqOS+F&8FLp$K2F>fRm2o@!Vus8li+< zT^k}$!zM>T^ULKLZs>;C5_-qOILRwd1+Z_@0XAAy7ZK88fGsMiSR~umS^H`Cye+;{ zHeB*Q*!aeaA2CavtVw=Qo*^HeIa^;N_vkeM=sSxj{@Oug`NW$3}}$N`{)=qfx8ZnjXxau_#)(KJ%VL= zKAEEgi4+A_STKT&$meHYZ#oaHJC6lJD>#Ask+>-k0oh($58hdymnluo`$?R|g~%&n z;@=mJ<;zO^H3kJ!%?+j4pjpd1>kumGhlKj0Jvb`^i0u3X^K6VO&~`f7$0f@;yn- znQ_Wk&6>grgB2F=Fdta|Hvi;tfBxs?IO~;F^YJ8(M;w)&_@0?OG^5BEC!C(1Y;njk zdWvsP5wwjFP#1MiiQ?XZsLi~3k zM6;|JpZ;m1_M8&CyHy_dXVcz-E6TF;J?NMSo?DDQdAh(WdyR|r_52b|#3a13AWMIW z;ReUrx%T&!wuYiVM|+?G2>5ktuH&cQCz`f0+I>DxR_vl9HQih8j49b%cCOz&?4F6pkR-%p22|XVWr1Mt@I&kL zOWPYYigx3XqI5carSiKJT<6{wkfi6C$21T<}}_rGacDnDI_hs>?ihDX1TzRkp&aWIpBk($7KYuwn$oSU0_ zuU%|oEiiA!u;EbXJmC449F@N5$=;Lk@8>xLy6^ARlC6W`9J(R0L*Hwdp|xbmZ+beO zA!JkMT9g&kI(Um*Qaf!2Kb62tAFoVVM+eHcwxl3Z)>2IESMtnCPt z$tVvZ8=}9FpgUiGN13L+7*aP3uZbXOM%oir?9lf9PCT-xpHnzamxw<=qM^m>Rzvlw zKX2@QTf@M;%Up87M;M>!67IuLRk)`4p`YW#T)DF_)6Dwg2#`*$6q5}EHj*2cJs7;t zBYw&B>fU8GK8P~zfQpEEn0La5?1(j3*XKrPBIYktu_1n{5&vYj|MLr~8(9I{=Lz6( zrx4`=N`{D)A@0UX#hin`;LB`OUgcf&b&6iAl0|;R(C7wXh2xoNAS-Eb1|q z)}MkJ#S!et)U~^NHvg9#x`g+Klac^X($zR*p9A)n$Ep$`9!Ja}@swXcK&_`CYfs+c zm&UR?0|r1o<(}LNFOxP_FX(mFXk|bqTWEYbE|p943j(z7<{<9xf^{8He2*`mb(m+z zOStY+#`wdeF@!li`GX7KZ(i8j_dB5oRdTHLNcaC|EPZXqPCUkA2a%!S?qb#eAD+7YestdE2?8Zw)X$>9{&DjamT}; zCGc^n;-TExCqh|Ie_57(_E_ggl>ikTTXM=j8xHpHuKEDhF5y#IuHnWk|LgjkV1B*q z2~%3*K3BbY?dP%n@6GABx}R zP1SAR$qqbocOl3ac+?_A#s9 zIb*M8uvw3-H~z*qQ~9!8<>1NMoCL268hKv5ZkleG>5R-Ayr#OYuDWiIkHQT=#NtCsCkEVFw+4kmZGByqZHmRErE4y*ft!)7 z$~pUpf4GC;Up(Kh6%s()U^6(&Z;k+ztk1VJez;BekIT_j)QCMy5?kduH%(b#T~Al` zy_mV0;tGy>)AZy=NZfPNy_EV1PYznBz%3l-Ivs={`9>_~b4LwK;6JjBe`knRkRzqq zZa2MTfj=q{pWL?p6+G2CU*T-3O-k>-rb%2l`Cz{<`6(vcAH#Ais9Qk9Iy>8N7BBjza}nFVfo-r%K<;80j{dwyHk85_}j{X zvsix<(|OXpuM^+9Cf^s2ElHe@c2JG@fjM9Z-}BV(Lh#Ff#QRRZl;lk(Qgh-WyLjtA zyztL0`|qFf4_*j)8U0dW%U_%1*Qc}ZGq1RjoI9sz&vW&*zA>V>^~_J0{`S_OF8 zx$rlqzL0yV>K$sK|L3C%d6~Io9Ad_2p+dy&M)UII`Cnf0eI&t4e1iIOQ&Zuv7{yb4 z&HK3xG9TVv{6`NYA~BW`FNHTXrIoHmwCnTzv-J}v^3K0F%;p7)9l3hypFWBhsJ)Sf zwDfP8BpNU_RfT^lbtkS|Bni1!llb+4|CJ-ZenaAalAkL=By4!?kV1~(p9--($=kPz{$ZtxJk0-aPZQoy z0DJe_sq;i?UoZ#cnEu(w8WOxdLM+maA6Xqe^3R@hBCV4ogXm14BrtI47!of2zMFBtl$Eh$8nl3ErbL8VL8I zY~A9#b;_EPduQl0oMv-PjrD_8;5}cP`~pn*%Lp_RN8Vc&lrabLL!lIO3}s{J#D9+|}%J z-T5vT-S>`l_s7hV;*M2HN1(MYufE!Acd0_X*r2SNs{H)5QT&!>U74jH=W8AKoc#BG zHO!jW10oS0tYWKCzZDY0BBNH;DhFH}Sari%k)gwWhJxjCLhIM3Rmnyt*`P4`n^JpR z9Pb9!Tyy&}0(q*Npwrk5?Y3&NH?Bm?$U74HR_&lyDF z=3GRQ)VT{}#*}*=<0XE?p2*Sd5l|p<@4R-JIQVG;wSGHw zzc=q%*4dpoTEgg*@!DK|pjxE`wPjCIcx)Mz0+ntM*zgD+b8+AC?Ro2eIy%B`c?SfT zP2>=zTrg`5jIo8tYoFAME0i^1@6JZtU+L**5phP`akf5@WB8AqvLoK$K6>?a_E8yc zSk0}*ejd@-3O?<1b|-gjgyaJH;v{OcDB6&QcW+?u%hUNTzEtI2tsW9#2mK}A*Lqgx zJ9!1pD7x7XBntZ`pXk*dqnYaSh5g^2xJN6*6)CQ)s3!YqX1viCJ*L)4#@a}Tu5_qO zHZ__Qs_B#IoB5}RMMlpmh0CTt zLB5<#vhKH#KOSvr`PB5EMsNxm#1qJCyw64<{kPO;vvSMX=upSvkpqcbU20`xiifQR z2D*}k4hQ{kzwZ7<_rJ^fgr2xvx}V}UdkIw)ykEtH>obPEu|=cdDEWbZCUV{+6#ohb z*ooAVrC}tt8fro*rU&g1*V++Qf#D$`SC8&>jec20b`5#({~sRw4~FK-|M$a#7qsnP z2z&+n(TFnZ9@~~&mqx+q=RWK2YBhcv z7h(?gC~iYWRx~BPEmfmIJw4f>9?6L0PuFgCGFNMq6G?bcl%_q%J$Y^)$Kd}Wv-hsN ze)HyG2%BmK@YJdERAtj2PBFDNw9Fz5)8mHni?ruanwj&H#U{Pe!*6~57lr;|`r|AK z1L}Nfey}L@RKNViNRjCN=a8QM!WVPW*f5}j{Z&#;#R7pA{c^`F!)7(EU*BVtRp`9| zzN-&7(e|+l0LYl-vXX)r3*yX@41BY}0YKBX#jC5?-BnOAaLbol4$lN=FqbKljT7#g zY=xKse0RYm*(i-nHO{O%zPj0Zm1Q@|BN|<{mXZNYUHsM>%6$%nJ3QB4B$FQRTerF~ z1<{n0^y$jcZ3IobYSTPh+k^{l)9)^GoO;#UEC?A}EWVB52tEega*V57X(8**H8>zd zm{-mQ$Uc|VA*8Bdy{9Q?gDnD}#XfM+Qjv!cdtJ6VT+eVhUTnu%yW~+wSGqFFX~-pY zn7^}K#6ecNoKrKuNt9q!!l_kw{YfCVGwwcakqq_fGNX3?9rmTMh;b2}*P+ooV>Hpc zQ^ijmn!Be!n+XCq-A3AK-KOB$bQ|p|&u0vdDz-vvy`sh*B>|LwD+cLb@iS8+?`}E`G)DQpSTr3DRv`0wCB3!+L935W~MJrq1{(RdOW@+idj`{m1+5(X(lgod9^Ad zqiqYX+D6F6MqyoFiKJEa(DJ3((&#$Koj7bsU0!xK)t8dVfXVavZzvvY|4^a1GQybJ z*krJ*khu+CP-GKJ{jt$SkHwL4O4ufGBi=LW6jG37_Oz`_1eaS_IZ zHdeH`Y-hmrAT{6uN$ZR^?|Im-Co8#8KNGn-32;j!CfWXtJ=SU z>dw-f;LrSsDq*zZp5&IXn#^C#^U)JRwtVqEJ{0?@nA-T)092k?fR76>1Ir!GP`BpW4)X%a?uRc>?m3lW2+cT4?8t< zqhs#1lHp36Xg=WjIYccGeUga%SezgcUAlcXv*_M&Ugs~nax$RGn(*sbkdO*GGu zkL~e$y~%%TE3vy%KK^DUKQ`pHKDf& zQ_dq5h!4xvcMZ=i$WIPF8S6rP zI$lfD&+gs9+IAi^35J_iy(#lup}*VIU^94}PvkKoGpDSNbGA3{8R!})y`ip-ciGZQ z{+p!)0?e{&&P`6-c}$%9=BAlBV=9O0pam*v6x#QW56)k|r}X4)O%g~anBT}<^?9*m zOtko0YJ5uAE27@{zN)gN`BKwVs}XL_EbZbT3PQhby^H;lRKxK;AW-_G)y=v)u5 zZ@Dq3=Q43jUDjf><_iMtsr$*%*g8=zw%=)UNecEk*QwuJs^dLJQPXh8K!lzvCw;pY z@nsD_VE1vO_Z6_g{gt@m`Ctf|R-|RUqO~H~)#?3uZjL!rBiylb09=F(%Y}`L#5_8Y z)oVliBJ3|0?EXbz|2Wgc?;n{akZ=*D9FTmk*a1Ogf3}{FQ8k`i#XHz2nbdt0-{TG? zj8b%Fs`qFWnwj|1a35jw=4^5NNI}DeD7A+cfV;d)TVJZ=Sw!gezx`i66*4r-1ULj%Lxoo`H` z{5tE_GrXN(mnnoira8Kp`TCB;Es0d09JYuIluD*rmvzCDB_;vK*`qSYGCt#G9nEsK zn&NlLn`3UENHrg_PhNRYWZW2@;Ma1i<(4Y)(u4Ic?d{!tqJ(*C-Lm7$dLSNh`pt5Y~fH2H9Fg4s-U0A{^r7q6K)< zl+JviemGF!QsA+(b=R3PH8m9#B!nm&bV9K_u?ev>v!C2NQ_@Oq6>$jn-~i2PKWGKg zNoGT9QWvheDymlI=$5b7j;u^JYY&Jz$dxfg3s}?7r@}xFLr$rvY4c33NwZcok72mm zLT8rdryDgCWIkjB`%wZ0dbEXm4hwE#oqImQT@{;AI>EO(r$V|I0Wl%#F*10xW8(xr zztDk>M#jfE9>e0Vf2-bl(4*Di$~lcq!W~vU-+@4Wk?j%ZvPe%?9W27l8OCR-W|}ld z3kK?rr#L>SECxiR{T7|C6;Z?3P8RhSH?g7cO=`ZzK46Sz_3m(L3lxj2^$uotyR}C0 zpkKh*2ccp+!n`G9mrLCeq=Faw7U?Qeux%SDDJeJKA2{B7`3WZN45J)Dqx5mn)>8ec z;s;}Ea8r-P95*daxSPgYXeoTtW!=8D-w9EkQ4;c)O~ z^cbmPCO*3`nF*Kd1N;BRG8n+yLt@>Rmr8H*kkf5~&Tu<}xEMOtrpI3;rb>u{K3Xw( z@YOiJq9IZ)83yfJ_H%{@^qJhhy`r$ba(Ja#5M7!ZAl8zhYWb0<7vRok@z`0%NQ&11 zbb=rBpj+1HE)lWKZ=oZbcJ)|C0~)bQsuC;2;kn9J-(~39R$|49?~UYdMv?GlkSC`k z_>0mAueRL*z)zoOHUZX0DdP8AQiglWF`iUDfB^JG9TmtOOg3$Fy=7}k@q$strNeJq zlBcHmb%D0pg`hbcz!_6|V-?CLqZ;!`-)wGo!cAKj4caWavr5y|py)mJ6t2M~b>22AYE;spZ2)EkwP5ZDzo; z!f+l*MFhGqSDt>8E_js3R2+j}y)gg|y}?JZmyp}8g+hy}>bh^(hpAACxHMbSSpGKo zOIyMZYa*Ffaf$;ARG)7U<~#CL=ij^_5d!3y_NV|loCm_%5wp7B_IxHz)ot=E&C}uT zsN7)u)Ic3P479+y`o|wzYz|zjIo(>Opk8t{QlU)=HtVkJh={gD*7dPArFyAW5Jg%| zz;oY2w~~^r4@2e{gceOe%hb-{+po+$dlo&_9x15CZ4=NRZe6vLE0H^WGvfRmWUeK= zlH*CX(bhZot!Iml=cUn#a9a^~x7qX^`_OH@wg>YfSsO-}%-)rf!G29eB3SB6(BrvBv&WLp$I>*)f&I<)3dz!6%eLZhG|0V7tCM7Ryyi-JWOXiM1;a0!W8dFoe>uqpC8`^w3qEx0RJ%Vr81EBeDZ zXTWNBBfSsE=TmT9Z+wAr2qO1iZxsbm$vK}Yhbp}%BYinlL6x3cK33-w?$)co5&*A7 z%Zup@HQAz1$Ax-t&^suoy+9Z@s`VbA6kfc|aszk%@(T!+fU<;OsU?#It?31~s(4b0 ze6|{MIws-eIdc3a2ytJGa1W-IF&6p%TZ>@khqntm@|>xjF>MS74@tim^QU_6)r zzE?){ZW7QuX{c+qz&keZgnltg&5D$27@P1+KP&T-?G4QyB@92Z$Yzl3n^1MDP0xy9 z@D^{yB01F;ga^UNCZ1Ac_3qj2c8yi!J2weg3db1}(wNdrV%6Y{Fsav<8vA8}{ZPF$qsQLu`>6JemzCB^sAO8@~ z@-~&d{2+6@VL8~vh5Ou5EFBIKhsWr#%vq{0uDc?OO@A1Oc~{<6s3_p~FI%`iVN1ugz1q-9};o=SACF zM3!&nGA#5(H4v?$x=&At$0ztHbvzOzKa$q|I_e{Fgszi8i4Euuaxyro8mg$84H$-< ziWk8NMVWbzrh^z>T$fCK+97{$|_)3dJqAo^|2{8xE9gVQ=1yrcjS6U}<%O!P(1o zn2&)bN14oeD$|*D^MrP~bXU9R=A)Mz%uy(V7$zzDue^s3F^qMu&N(}rxaQjbLQlo+ z0YQbIgPI#R`z49J$Fo=&#GE*jQ)^0|M?cl!A)~gvQb#akKKP53WAhH^*$#Rp0 zCA0|JYm;)4E~vOz;DvcbN38G{5MNFEJG>-V~7=j@z2J zoTsK;8OEehayKUKmd~UJ4c-W##RgK;tt0bVZz4V#TQo;myXn@feX-So1*w!u%X+s0 zK%mT7ab>f6UHRL%s$gAy0oCA}Wh^llDycb(RY}4Efc`|aNZ(#7_?d`TXwev`D zPP1uu@h&WODig@OOX78z@2k#t;@3ok535v8>4lP8&v@L2$BzZKW_UU^^B0%Rp|er9 zK8O-Ztd|LjR5)1Oqh|gH9}Hy~ZU^we_09L$KkM1dV$Le+%TR~Mp%s>O;dw~>Y;;b% z-hqsP3AEJec80X&ZrESRbY(o5S;wlwBh|tfkXbwWQ-`&Sls;K{qwn4|pHpsg1mc@v z18##c(zTb(e5louf*Z($Bl+A#W;}GKvT@f2A!W$z{)vI^*30&>)b|1^r{r%;Bn@w6 z2BKkZTuqn^D9e8e8Acpb7A5bdP6>cx+*> zI12#%0<7L|7n)Q&q*Qg?m5J`l8qhJ^kyX`lUvK0*?0ID%(VC*aMQrCm`D#0bPRT_l zI@O7?oo%V77OI9HYtc}#ucYjS;;_WW0;Im3e4?r^l;}k8bhs=pMXPlg3hYQPS9zhV zMTL#&5zpxgZsdB!Rj-f)?RJ0arlkcCAmQ)h=-rOt2A#FBZ>?eX1_J1w{ICsBLPTtJ2x^Z;e!l2Ka_o0H!Co5pgx{wo#rnrm}cJo;a@}>h>KZ zYa0zprJ0qVpI>KOj7;?fD=G4!w&w^pR#o*p)5rF$cwUYCm6mLsE;g*{`fpBFS}9IT zwNpL@)XnU|9qAp5QAZ)#Hkayyv$c6Y5~`dQ=HErp>z;1OxE3l1NC&nJ)*EdTyaM6$ z6YRAcj;?AGaBx6|r)NYz6}KS&%|_lodpT^ybI1}d@==$aN<&2!wsPp`bsqI~83Lv~ zIW*R;j$gp6Bx5ExJTR2AmfPX!s!1PZP>PD5yBUr$Ft9J>(TBJeXF8pO(I_u(!;{>e2v zrxS@*U8<|S_O}%vW;N!E7q#rzylUglcKl)e|2!7Njj0r#)cY1aY=uDl)L-B0vUFd8 zq+xpV?&NSUWd?ubbiJaGTpgfgRc+WRB2;ROBHZbUT)iiwjk(PW@!-F9w66j;By~$Q zJ65MC5#$4WeDUjJ??wva+sJg0GXs21Oiq2K@tdC%Jy9P;Gqsdj#B~gC)a9{ko{rPG z{+R>VX2G$Aq|hLH;zUkuL~n`RX`P-p5z0ov&nXQeNI&(^OMwrlKR=8n5g>ms!-${F zR5W;f-{TB-OW8I#zR>Keuv5Wpc@UK=msr1-Jod?4wnojk!y`n!!_xsergu%2UaXl?kRjMN}N9Q}HvdL*~$1Z||x`n(!6{eSGeXIPWj_CAbAQ4nxM zKtaGVic$m%Al=R=0xHr=Kty`)Er^JWBH*Zq(iH)zp@*7K1QetwLV%D2qyz{_s0m3R zc{ek^bIzQBnQ<=vU*79F-$F>9JkKs`uXV3`t-E&WLbPyA^Mk^S*gRA@_S_BEqxR7N zi+02W*{?y~=pvhQow`pF-TRBq1PCzc1a;~lRqg8RdpH30aW&9Dn^eY@m`n^T zH!3i@pC_g`XoR`SE2Kw3M(n5)c$0P8@Ypv09arA+ymW6*fGs|~q$NU8m15Lf-go)$ zv#O61?jUs1$rs-oVh9Wc5}*05Uo>p&nNsNj!JzdxMETCMXFn@Ce(ncA>oj6Jq{gqn z!VJZH=EJr+4Mz@FtlRTAW??xUuf|k}5Y9N&m&l-B)_;7L4zDNYW z+RXOof{8Ds_7o?p0VSsQ1U}9FUc)0kF{Q!MF2swxB!N$ICPm$b+pafDDMH5I8%MR3 z+w2p52R*b~t-#VS=lZO)7pMV;gGi&Fxk^rOS(uQ^DrQIr!Z$(=o@kvywDcP zzQ2vuxMV2Q^tx8S+o-5bCB57kRfQUSc0{Y@YBD=S(2+zEl(-z$u;EUy(2X4t4HxSyxU`a?C--R zo=Kch1dMKyi;x}eu^t(`tmJ9ZdcUtAbn_ZP#}%7s&-_bJ=zF6wIA&gFEskuZm{g-NJ#C2UkcM?9D&1@9pK2t;C5a$wO7a7pc)mynOBKO#0W)JB-Jj8t+N!3iE`4 zMhh~200J4?%^uBnE{EN`BXL0H(NsFmE1EDGCy!3GH*_^%yW+aCEJ>{2T-un*iOCii za~XWLR2>VqoLM#u&v}Cew=vmyO$d2kK=K#jY>@b*X#5QWLnVv|;z+<+#WOX?;OC;Z zW;3DJMX83z@gtk>4o>`{P4X5(KN&#$NT0^3t^^wr2g?^UZe4@m*SvhS)2e@rbpMF? zp3W5MMutxZYZkJb%s>Y7uN+s*%j`GQuBZt0k6q1!AL)DJr>K_h8Y*_&E~ie(?^XN) zd5d9|PFvOfb(h-2nRwE1Oj@nkDD45}2IMuh*D6Hl0O!XL^Kz&7oc-54K`-6hDmIe{ zF4Hu0nae<Jdva%)0ptJkS+|(S=IBB6H>f`1hk9N1sdUeQle$0^q5`UG!PK%T7 z^V{x}JA4`dDxq&-ejJ?(&0)W7RdA}% z8z6`CqLPGlNcS}aPu2C(0u+$>#qsNQk6AptkjnK&FYNz%yb zfn}<9P}6-r%8>pj=a>94|kws_%Na8q~UX!0SbpA>-Za5T~{6&*C=1tAF#)8fclUWP&V?jPf z4nKv)YE;DePJKQyGWzp@l13XqX4JLWqbT{h`?%zf-ZIRUAKXo6=uc9OE`YYn1W5^_ z@Rakq!j?6pDI@p($CYWS@65uM42?J|k{PRX!Zo*F?wT%5_jXhT)l3N8TuamrY2L^o z00FIH&_BEtldZY1I@`35vOLY@kcFT3JE+SAD(TMrJBcg5NgfuD6{-oM_P*k}nr=2~>b*^_HYlq9SxoKhGR ze;XUd5(LqLxxY(?jLRA(tK`sKM*$_~+R+wb3d0=K{5g%KFG$^n6N)i`jrY=KK$6^} zx2#N7>E0X--{gv|-Is^5f%a)o zr@YTs&;m}VqON6>uzQy~5kcAJpr#evV_*~aj2Kn~5*jabTXlIjzxx-}x|R9i^w)zs zP>^sj%XaWYJKP|j1#>U2LBp!0{k8QAq-fi^+ak}H}t zqx^tj0e71XyctJw!^COnRRD2=$naJ<^Uo2ekAyS5wfPE}Na|OTgPL$E=t_Uaw_4Oq zAorOsKPhl!JOlK7*j=kh_JLiiD`YXL+LjJJWABTF#U`D5Zle{0fuK^;>11g& z$0Q+{3d4xY6YAFuN*kXCX|!PF2XR`=IhRIDTKCl02ZM<8ek0=}dJX-xW~P;}c~Qtr zHQ+&@0nq0eeY-Px9NPqU8Q9_XiOgS@jSIxDjxby+OLiTS2wj|-rBBxBQKMi_P&o!s z={%4g^*FN^gqd?ugL7acycos~15x*Q7iy%t&XoKK)&6&;Z3_oT|4lFt*6hDme^&pvz|+OMVl_!;7b1MSvD@%~rugIT5e5 zu(grLAb0Ui7ILpo1E+mbqc&oR9Cnx2^vEvI%mh}cnP`*;L8kKBANGhhCSYo^d9x1x zbkZG5KHC2Sj0LvQ?t7L__wzbcovpVY4QMmu4rUOkx&o1jA>|6bH-5g-z#CeO)Jf2A zfz_$jqz@*mAP42(L#{k!pySbp6_rBEqzMX)$C~H;%3{w>^O9RH)ncXHXi!z<$e4%K zL_mLdHL}o!+@mM6oJ9~s2T^9+AR%+{=5Mw?hFJ)qrSN5UPlDsoD>^jbh<#drU?hox zt?}OO^1@{;Y4d7-Bs2EZ>+De4_!e{c(GE^$ANOSfqWviGN<-Xd2cDd%Jxf>FeiC~4 zTpqHUE9}N6Kr<3Ov&+tQ*9|dcQn1J}==GimETg)=M0H;%gVIUe`74&Kpwxpoa4w4f zgock?ZLwea@P}}2QUV#l({l#zg|dWm*_1XkoPv7VqI_xd?aRRi)-!-m;4QPXdzOYz z8^3E66r;&n3B#;rdB=rzIEh&P({T5Jg>njO zEe{(|CDMb9;`)OPVE&lW4@z}MLyP88gC)u^{y4c^O=eVR=BkuaHR;^_kP%WGknuba z5(8Q}?xiwcIMjSbz;?vQVCS)Q!5r~lvs8HvJ-?hIHwE!6Q#mjOYlR`=e*OEfM<2Sp zByHv7@Ks;6jnYE2oB%Wqnnbn&$`t>l!qu6IeN{A|jC+-N~cn1==)uyg^nX2Z(IAu(YKg)Eq> zDo=-$Y9Tpka)9Obz!DaU@n|w6t=1!NFKXs5^adWT4WeS;k-ZZ)TZPrcYr0mlMq|#Q zlY>dSkA`G9zZoS2O;KAwa?v|Ld<9`kRz&6(p-jUySXMJ}c||$yku=M3`1s$GHs2o^ zX4REme$3InctS-jKAYz0ZHyjGW0?)_!{Lw-#Ls2c`--}<<>0JG7FW|lv$=$tBs9x2 z%JUN}_7Gmbw#6F+SbRz6|dJ$bvrFbHxJYHKZCGf~=$4UG(L^9gmQgGFm#J z{#)7TRqJpwwP!?}B$Mi4%EI*mi|99UMAGF0nSJ@P87DE#A&k!A1Eeqlll2JDA`eYJ zccuaTREvPji!swS_4|#pUvPpz-*1xw=dF33$w@%5qGUSh@bJf7$G;+QJtst@Rl2*x+JFuEvBNjpO4wSH!xk=>klbGnwbJkN#nk>~zQD zs3vkv{*Wm28=oX4JLq}^)HxQ3gnUXsxHIq)7@yhIT^jasU39lXv=L)y-Q(au7TfjX``!SThkH}(3d~IjKX=mLvC$2bajVN0ny89kmt}%qFP%&h+m?ZTFG85tws03Cqh<+SOQ_)*QPw55=~Z zPZksl_Y#hLIyP@!$m5J?GlPbX7RZ0}?Nj0mB?8<|8oSH%Z@J9z#-~}DIa=3WO0$QC zpNEtkArnhd)yz>Tgu!KqG5Tw7lANvikp~vpMh6TXYwnf@DPAw|eflo!T9wn)r98t3 z(Y_j6TXebUS16~NXx;C8wEv_n-XB!}2_NISD>{rt6?MktiS2LM*foOv;DFRP2>Rdx z%}-JZ;H_~rbaPcW_FVim$gB-`pw@0x$6qe)f5XuB@9{@~Jj9SImyN*9++gLt7l~faD+cJ-+aY#itH1}D+1chG zk138{k`mHQGee=tPFky~{{qf_;D*7A#$REG;pGES=SLs7rK()a6OGO_)e)Kxw z!1ZvwL-a@Q>W|>le|_VI&n7#>v(<;o4<14rlO@+%oxl9{AAjmBqBd`Nu6>I)7M)ihlc;0j#GjVXf91^iY7HVm_^d+{d8+~wOu`OPPcu$ay{`eAEsR_WAQjh}HvlLn=>1B_}lV*<2{_V+u_h(WK+>o$D}9C02r~YLKgcGh{J)5lHS%P z$aIGM+dt{^vNsS^hplx+_z`);eB--XKgKt1g^T;UI0|S6gjE>S(x(YCK$H4Ig{-rqPEL`;PWKf7RAb{e-zx?A~_zlAgzsq~;_U-CM2q5B~-1YZ6@?Tex_ZW%9 zbB`3v>?@Li)wW-*zK>Y>mop*o%D2_FP@!TZcUU%;|j!14s$wk&>cYN5C8V79e1Y};_j zUyy!mxJmYe3|rRjzds)SW%mNNzT*wg(TYdTU$+(C@UoF2KV5oYl6yHER3WJEH~&WK z5`XFc=3*>$YnTcb^xx0&`)9s7#@-hC(y$m17%sTA^RFNF@asS9Qlp5O*DlB1Yjx{R zM-VH}Zhg7Eu?Okg;cI0E=k9MS2T0o>NGRr8*7*4~aN^BURDE~EmRA}lhs>W&IyEPi zcP-<-ZklFQrGWA9YFDa8E0pedy^smoD#VlnRKGwssm};__7sT8I#qfRNp6^Do7#Cb8K0;jDp5?ezr)vdKH5)<3P6W;Xbs!GNmE-N8 z4r`dyWa;PV4rt_#L3&x^{z&|gv6EA7O2AEIa&)vEv#h7Hgp3d)Q#4!$f6N1|$&2@7 zE2xPpxl{tBlySEnAeK?Xx98N}9L%2JnXSM^_&5V)0^Jw0uGi6S`go!^m9i(v_4h-y z7jfsTwYZvJ5g-Pc;Skyr45Z;GIWqJ2BmJ-G-m({DY`a1;*BJdGKW*3tVcdKe80OM0 zEy?HPOJ52t(V%T?lb)JuI-n~!Hj8qJDLOq`9hXl)&yTm4#t@zv&=Z{4T$&#WJ%9du zLSlf6f`7ye`V0yVWEIPE6qOsN4NPx(@zU#KPxn5H41 z&k_sBiOYn=o-QTVjJ|RL*6-sn?Z{P-pmX#e@-#jLdHmpq1NZSfcaEI*142JZcg^Pp zRq)AnAi)sLE8Gki_oipa)PCY+X|@XJD*YbSXeQvYty%aL48v(^YU+}}2o)D50M`#1 zCH7kfx7LYA-8T5W!Fhi!-5h>y-lSdn_wWA4G#%yv%>ni@#-CbWC_YEoh^Kv(0@{V` zQYNX@PzJ^F!&n9Yj1Fu*J_$}UbQRue`+cOU@3aFb#|p=Iwa4_mxiorH<@Pn=VjUH` z#$;F90<$!_Q6u|#)gdHG-0xo9T#Grn9J1>97G#?bZ3_dm!$B?qXtQ6xO%!p^{m1JE z(Ue@K-||RkNhEUT`A4p>+WEv3-@d>|o`cOKsZTzgAR=t_+W2Yy^IX5ZO3&Xi8MiAB z=-X^6D)G9si+jBpxaz|W@PFGgrzg8TqUZ_^pvSOMD194at~G52FcT=Pq$DO8O=y5Wg252Rz(?&zU-| z^J7OSVDkHuRlG6tfIQVn8O)15VqyHk4}`A+fF3@kWO#ZS03}5&F@jMGo$3odHKgji z1@&i|K11M4Y19<0xoe5Y2^vU01FzNu4O`a=#mYdi`+<{F>dJBhlhzf+Ir1(qgvzb~ zk}3!MCSPIZXUsv7k~*sN?}6uE$LX*$FjkxpM)8eMT5EPg+u+{a0_#WW&gl^j5ToBJ zFeAQj9R)c)JJ91g{m3Ij zVcG&UESN`)KQ6Rqu)TBw=i~7)yD@m5qGE5XW;G0O zCS=}TRPHAFy?^}b5_df)LwvGW`9y`A{*4wsbKmxuix{fx{>yi#VDq0h@>iwf>Ot*` z9VATSBgoF;^@4!z3#EQD%lHi&a#cxw2m-RMO;hs<$NWh!JHHo-PG5@9ZZ!w@;6N+) zrm4GnA@d&|TTA-i1G?HoJ2ZH>M%wG-Wsr7h!~o>V*HbH6eWr+%#dFJvrvijiQD}vY z_U3;?rEk!0GCn!N9z zVadbQjPpRVsA8+&q5du{eE|tA^9U|JSI~&M3@}go!09DS!s*v8f7Jn@pQZ`w9msUv zK%PP`6xlRkOv-0LX+s&nm2R0!x*w90>wvOCUjY?(bb(dr?Sj?Co;O9#pb+;;{Flo$ z<&LEVJP9pHSH!fKjC7u%3nPbscEsZ)V(_g~kS~H7!IUBZb~k{kTq(47SLarLT)t_~ zaAH=~l6i$oG4O^D&6w|$v4YYJL2w!a^5+joiPMR3dsGHnVi=tuzYqrJF^x)AF4@iMC7dYdA*nBjw(G{#Izw zSHwNI&T4H>LRWr0nuBJ8rf=2-Oa1_JE(9f6a;3*?5g-I#{@X7Y6toO^`SRsB&0?3@Mmu#MC&291?A5m1@EDKaU0Tqy zg={bG-bk?U3f$HCA@D7bZF#q5YExQlDDB_kMaBR)_;9+i}!>6bQePs3#M(Q8xB+Po&cS$#gr?|%ALl0>wfA3$t0b6I z)s-4JaYSwEjo{34b2m6ZALLM;V2qCePO%Umz`X@&9`^(V%rPD%;Lzc4xQ>O+RpDF1+p0*HTlj z=#zPr^$;Q`rRNjAo5*V9W$lvdm`fp~Dv|zHNhEn;n}-2~MjW}~sS!|t`9nH{J3e=bNm@d z7O?rf%bZ&HZ-g^RDc1C*Lg&Y5rFawE=Pcw&$M0s|<@G>u^jk z8Q0XE+~^2AENCi2RCV!$IUpDE?VdN?XWvlpCNjF=u~Ul+$a(*l^P)3`q{M< zuxNMRc#IB3-(|nz=n}?aMA&ozk5oPR=;S-#b?h068fc0xMuXavKqDY)(SKne%a@1? za`p&dfr?8GwTTx{5;l18Q>!H;vW#DK^0acDQ?HZS+&d--Yur7z&=oaqI=&{Vwv|pT z{prWA6=@11+#+AD*Lx0Ck}VFm8&6!XEKz`|5d**(4C-TST9k1ia^@GbQc(5b_V@Ok zR(_!sHmT?jeBQ|DLInNc-n{{NjP0hpLXT=k?k7crB7`UpQVth*w#J4#ev7jwop^^; zcqW%Aou8KDAoYQ^QB*c2pPv4+JC8RF6pxvnIohGM^ksCQ5n=|MRzc7n0*MAr-x&Kr zuo=roW7RI^@eBdYn4p@k58LwrBXgkQ6Xa+$Z9>eF?TSp+l>y-^?R~}UU56{neWtGa z-v^>f#Q^`Ubh^QOCd3RHjWI3&tW@Z=A$!heH}i^fdLT@%HNK6a8>?1Wnk`HFbzk*T z=Oxbi<0noKfsv|MPk~LG*;r$ed1dZ)xW6U)=#M= zk!r}B!nOp@e~<#+b=g_`QvGJ?prP?Nzri##No7FJ?pEqZLQz9m+c>{o{;WoT!BK~&76Bk>A}qL4I1x-k8uF9kf_^LIH^MV5-#M# zQ41{GJ z*?gCLWhOMY1ys^!bMH%SFEB05f9N<@5og(#*`BHtIRDJ!Q+;?g_nFi#z*DHc*UqE* zYE;Szcmg8QH4IWP5u71jH9d7cT^eZVs|Qstz8(*Zk%4ucF1G|dO1y{_=b|v6h?B{1 zujvYHwe-g{>kqmkJ9x9b^?b-!IsATQE$h>);gC{xYv6D5Gj>vZ;lRKuOlB8L`k7EY z(uxI-9LXsz9a*gO9BrBc1@tGAV^iK<&%E3?Z0#7M<`;5hU7}{a+1h*c6USl-w-C#V zH3&QTf;pGEQ4ZuPjbq~DfNIXbv85tK)@VkrQrgIZc4Y_+ZVPa(kTT0WWYtx zc%al?zS1Tm4+jBC6L1xGy99fgj8Cma{h%VO5tPQKIwzgyT|w+9(7#PP5T||{c<%D> zOKUJ7ki`>NnL9}#UFATRAb<`P!6@ETct3qRxg6iQB z%}_R%U@LzRAP7)VAa1@Ch81Jbbt`zx9b?th9S?2fl>hO)x9RNC?82S4ectlw=RCO<=n71H1pqyF z`!5#@WqkE}UpxyK1ilS&a;ci37q5Pr@<7?n4lC>SmUL<|KJGCe(^wyOWz$Ys;7P}9)ar0D%&Nc-1y}g#vNG{srmZSB)7c>Ge zFLNm7rLNIw053L)c;!hTrXvlxcL;!SccbVl7mGI)^?M{j(ohSOT8Im|azRw&8_1HN z+ZFk@j%!bz2(e|*jRTR%k2Yw>dN{cr491!r;!_3yE5Dnn(xZ%`Pu;I1qe35goqhF` zxyoI={Sgj!Rvsi-6eCT5G-W_6ATd_xSZAXb!KAS8An+P^rGgRy)4w?3#$Y15M4qrAcdGwzg~(=M^b% zuE{yaxgpGoZ#ECNq(gR{okZ^Op$ypbwI*0nFvm0PKWNpr-sgiq2imuNlPm5aqlC81 z1gQ6HSsqy+m5VYp|4ZD8X^zIGOEAMIH*535tvXioycT%#Hk0* z{#b;RAZ8@ZV3`!&iwoye0=j~+##l-PTtNR7jA*aLppM@YjMaLUom?L5j;VHC9F$=6 zd*2^rEQE@rslz=-TRvgARZr2zo?gs^gN6+bA$udD=6xmK6Egn37z{L$u98lVf-VKo zm-enEgyN-l!Zv84`2xnCU@>3t>FJ9_2_W*y+Xi%HHG^vArmjO)z9wkXxSeLl7k4n4ux1?GHf*ost>7iMKCQa&Ur+2=DN zDVE^bf(8eO3_*zOOWnB9@<&*mr4&lKg=rGKMk!Y;AP3Y3^Z+ z&!0~5lK@mUjS%Q1#KPkKzAgbo`U}^rmpK$LTm23*c{>+=ctl;_W@yVt?(j7rX@yB< zq2}+3)H*EsrOrKCxUFt^nHR|<$cq&qX&vrIK=3EgF?w2m3*&Rb(MLI(MG0JoB!R|M zhQ^*|GL)K@hgTnc)T8YSVbL#S6mtWCR(v~zwZxiVOuxAzaL6)rDbBtZnKH#yhg^=< z601uC--WejYc9R~v|`OAA36nlW{jj8W;_Qv$jE2p5PZp}mGC{a)H=ysLn})aBhR7p zC{X==Jh_XC1JbTAB2{>)Zn4uJ;rxtM4hf!e7+PYu0YG5CwODv#BczmME{cd+-&J^nFxy&_XEIeD z!%!S)2nl&wE4AL`w0^}CGXFG98fdZ!XoG?^u&bVxBSHWpUtWv;NhqV13-INm$1!9m z{!#LwxZolE1QFyiE*?osLW*nJ5j^99&(boqg4$;fJq0B|!k9goN%=r^6viJ6zR$Xr zO8W>%ui4Lms$W#xb1W4hunp1#u;w;!>c~kl`dJ28dY_hP0luL$Z8d)$=-t}AfD+7E zmH8&cuamtyZQIIGR?6=oCO)<|Q0HK07*kWXf*Si7SZek-9!i>P(y*J)L(-oVnrrP1 z4dQbT>Je*0V=0soC~{5=sTe?xI|^d3wlic_mU3NjJ|xV5R)b_PY{=18i{y4?B(2;F zXw)f@GNsPdjf#t$ENp)B2z1(*w3*&4xjZ~vO>@t%3&r>@^wd%HV!b?zZhiPVpNLwK zJcu0=K_#_FvcOo7L&*$Xos6M(@7{Ufu6;cty3)#8P8wf=u~O!N++X>gz_DK<$nBEP zw3Z`S-T|&t2PY@my}MSGGmO2%5acn+nw=W4f`t+Z?Yhbsi`2z8Qrim0YaY5W>9bKR z#-w`SEVxd=q_cOgp|JoGmqz=De~w$lpb|iRlYr)lLRoMhEOQ_f%v6NOOn^NnQOEWt zso;M@YQKgO9}U8Da-c6?WRqjy8&ng>I&8vq_uNlUO2*E`Y8?T}jl8*bYeLuD%C}s1 zV_h=EUR$kB;~euf7&E19wi2Z*gIdvO>LJjcN<>@PY-(vb!M*nS2cVw8t-L>_JD}$S z81}|_`!EW=DQRG_+G_4$sD6nTxhIwKtU*^Mt$Q&&4lJ)QNp(kpd{pS%L?&2gaS3>J zyy*pf^Pt0VI3|&Gyz&~s{DShWspSq_$OYOEUei)o-pc2yypFzFFgX}!=mvnDc_5Rg z-;{)f(h?wMh~?(4=kYSeBzS@wn^Vo!_k7i7^p)>8;^4J*6EPvsjzZUmaRKiRwB=bX zJ2^1%b{9}hF)A+&L@1D-c5 z&5iF4)R%aOB6(pY>;Vnv~pfB%u2`B=tk5 z4cgpU6q$Bztz{;VskRslT1ZebucNOdQIk(WFjh;zry&Dcu?$6HgX-&0;SkX zY6ZN;iL^gWTlo>rKPs5Ed~bwG3&wgk40FA=7x2zAB8Ei_pIfT7uQfTeenQrVJs%Hj z!mMQ4=HtlvF)=Y68SoZ!m7VM;3%E@sz^q7&hF{KkN>Kif3m<+?YFMjFU+qFzs(y^# z$z_4fJ6XP0M@L>EB}n4>d|b8>tWRNQP9qonTSo$}9+yR<$E*ryFC_91Wa52BHN@8- zG^L^S#%@WiWl04;fXH8`m0P}^&zjr);s&`k1u@PQR@Vyw z*1nX1$#&;;{qDiJ>>&K2L;22BR`G+86x(3(erG7}f?8hEnA>1Uo<-GMq1RH2`1mxR ze|(I&KVzb*#33X1l*|I(j*&gX|0qUwt}$opVa+=?Q-hE4?xqFRxquPpqCeV+^v z{FFK>w@0<-6=bKnk@8(}%T5)~-UhdG8XKeq)^D;uzn`l@lS@H%uW@7%44V?pogH1| z>Q95PaB|~nC>Oa1sWc7iRzoqrXYf!rZ53aP&A4%z2fIE;aQ&@;EgSe(zgw?={on9N zxpX{qNw~2Cf~)g15A2aDlw~bG<)%!)0%#WSDbl=l8qKq6Ry)Zy@td6GzgPes-R#w5 zXQ$b{`44E!F<2J_krOh5hHp!yFR^J-@)|W%0?PWek6J$by-n69dw(6Zy>j<58($W-2ao zD_*Xlqq5(a@cfgzt>3&qojYs_0ozJc!lkljWrwbQ5P`|zkaL}kcV@o*=K~1~l2(0% zChEB{0;K8qVy~6qEQQseuTz=Ho?mRnEg{tvL#Ty!M*#`FmS$j_z@prZN@x}w;!tX| z`?CfA=S%XxzQO&Yf+ki*LxaZ!fnlS-6EH!imBVx&#l@pEM$2|9hhY+ix{`weXqjQ& zi=pv+C=?D+8ggrP=W+h^uKhPJ&b6gGY|Y_=Lk)-NxFawtzO)W>yFDV9u*p=NHDufN zvQ<_qeb8jFUCY}=#SVnh0o(SD`kX{eK18>}!@OD@I{(pcZSdhr`AryVrup-rRVWML zg#SqIOQAlahAq)QOAZY@kDJ4qsF2=gW-OL8*Uispiz_Bdemt!lTo>RWXri9#G4YGt zz}LAKqA{$MuS<5L6ikN7=IK3%5#56KJtSv z?$`fhO@5;dD=Ojy9TG3YP%?r+JNrXUA-pja^ASsEFIK&nQ@lp-8!$RxXCZV1Ov+v=V^&8X!DmcGU!sH1Ow zEJ}Q8=XY{jw>#|Y4uwPn*SFmxaV%i0W8%Gkq>W2rjY2bn*b|`5wxbmoPcw0HzoMz% zOm$5)iBltd=019mfS7OU7-GAvu>bpv{0&a}Dsy(LHGrM6w8J~bZJUN~7fKqXG8L1s zs5RrhWKPkrbWy5Pvf}-|U;21792({XRo^tD6Cve1wbg=l%Cn=yi(cK-)>lJ5!U}3i z$rx`<^E_`_;Sh4NE26y+tr{?mS`=)O@SAxE23zu_&c%f^m+HKbg@#+-hxLpbOV0qE5&N29t;h zI)$}$bLDl5TU+B>lZ$dgmL8(Dm2KrxC*x7c{!Y7{XI|(bY!*5j_^kZ}qyXmmMtyXq zymxw(A98$@tH@hVwf3+-eX!{w{!vGQMR{iJn0=g#4i_w9^IxBafBWCJTd(L*+Gmgc zh~ZE&jw55r>W0dL>5i6j8hfg4UJLv(mv=wMnM;3azSzyfyKghiEpGRWNL&osPaxZV zTdH~mX|~zZ@e~$#GLwql-)MS&H(LMw4aIQa^&Z#6CLuQE8=VxH7lZ5LJmMh)K?%QG zQ^dL+0ywT>p2u00vvf@}n)xFX+eH$#ra5#=Lb|$Ap|?Pj3z7@8Bc}PsjojFc;QNi= zvu@bB7}R7R7H@^b$$QhbS|^c)dX}5jR^K*Vq^bF1Pl!sEJ531IT;vt!uBJLKwOz;{ znKuzsT!{#jg7mI!O0MqEj^g{@>0QWL0Kg#U_%iNz)9OFYdPf}n*Q zf_$h@MtSD2Wc6grh-NwNE1#t?E(rA&0Z9ydn@34>W<33U0P^c14X=_ba`ZqQ_ZL}J?Y3of2De`@9>SVg1$PwauJ?87lZ8wwd_K)`6#)wA^MiTD zodeVc-gS4riGx4$4wHC3iYXWQC)@Gz%j9I)(b3U}s9SuoRrE!9#N+itU2m}+G~uPq z+PPsWGG?&eWQ%|gwHMc)uES@9x{)s@ae6+>xa$&MMCw0mG^N{LM6%ae!4???c8&gb zI~q{|r{x`qZOwM8#2yys+y2=F`vQp}jFQq7OZ9;Ls9{I@rqRWWgakojd5oGfe}W~v ze5PMf#UiA?Sf*`GTh{UDP*R;&Q|u>$Mx&!ihw-Ui%O06pr<{A9zF$mKS$7B4BU@xG zOWx+2Rpk#=h1!GgR!4$P~X`c&47jP^NgJ>2AyJ_s&=CxGkrrOe5+=}3fG5X_6AoUKHGI`R!~ zH>T>T6S?c21UQlt$U9`(bfAJUZoayW&l)wPw8|l02QzFJj=^HH)TobI1ilPc5E*XL zYKLl5ot4SKd~+6r0Ctlx>pwQ)sK2|TTj02O*wEl>Nhgr^y?Lh2A1k}wL)gx_=zf5% zykpgTt8&KmfL3g{5e2-%Zw-n+8#_#xSK5@e-y680Pm!|f%1 z3%~CFPFxcFj>JkYVd*j%N?zRVKKnw@==r!#3pH4%`Uqh@iM(e*9|8|4LwI-H8bCOE zokSudVj{%a=mrcw75eN{QVq0Zid5o=X6lQXR|M4lzc^ffg~K|vHo455hpE$kaBfRL zz#WlP`X?RtBMF6QvkGh-d8?%~eYRQonUD_XmO&xbXa`$*Es2j0Hgs5&+xDcKaG$56 z#NhGmt-<4IFkD~%{MZTOgoB`4$3|JlKXZ}(`_TVwQonF4auh+4T2yzo90 zis1mK{46FWCQ~iua#XTa0`W$D{#|@2Q!Y7h=AqZu>C955?>zfPdt;sX+aU1zjZr@Q zN(i{@tIRJe0qidhr_H_3XcOpjcfVl?CV5X)$hE3*5J@a$a4W~iiH{}4@dJtq%r%?BJe3knxv?TneN5-?c^fx(IZ@r@ItwBxp9S^hc>X~dQERBO)gAzpa zoI=p<%kK;UtU!_|)L08>Pjq5gEd`he4G67RGM1j^)t5Lw3HE|NbZ+q4QGPv3f0Mw* zDeZSV*Bh_j2JBBq@(=$=m+l6;4F=L`WR5(ej$b%2jg;K%Gz)$$mjHeABV&NY>_@F( zG0)`(sPACWu>R`+m7$(5+RewUK>IARs^xycN-j??fe3DL>n)fH>)CN^5<_{g zncBSTZ(ZrXykGv5JE@G`o*v{xlVJTjpLZn}#to4HZNs|6xU8glQY9hv)7h}u23!6ZB$A=wh~K?UqYpl3HGe^ne_j$4!->@h4day*8SwfAC&Cl)W17?7{nGkQ6exy~uwQ5@t`E7J^G&b(N))6NXNWPC?9i`0R9B4LZ#XQUh9k(bXCI z_T~PEN&4;2@QdL&4Xc;wy**Ay+{##POQ*`?6@RVJD}jrb^7tp?nZ0l~X}AkI^mMs2 zeIky07>AgS-JGihBEETozUs&wrz0CdzkfOYf4F5?g;kECoa3+V9a@;0_S3*kvjj|_4rM!X*Me~&w7)c>wLHMKKlO|pZaa#YH*y!3w<2-8(eFU zO}=DVN-BR-{|gCW#bufqi>+{)8k-`@tR-T_S4-g!duUT>9pbY3c`3l; z#3{l(QT)POvUY(?>mJ0LT9yndAtjg|wO9}QDAjd~SWlU=BmzrtLQXz74N-A}OmuH(SOgZ=5# zRT_&!A6@UZa-d z(=lpoy<#M3F*r#=L)_)lvWbe#)!?>4yYVj#u%5o7@=`EUGhzM3iOrkIoBnJgecP_P z{pvIlhob^g3}3}nfw~1jZhg)k*g~gS>DAoH@0 zGtK8m1gVF`imttTqbP-ySfIO4y(k)IS+iUNdV@b-IlS-{!`V zgb;K&<2*a@UAq`?&P;zyXCSh&=yn0r1QOSJRk44%I$vn8H%Z;;NKI&x`IZJ7f4RsX z*N=_e+AT@e1+Kq~%Qm6!G#=n#_piBHNG-#lYQaZ;f_QxUBwJIqOumBDr9$~g9RCjn z&T?(wru2#cb~doo7NGcj>-kPSyKuJ#1X!iOqC0W{gzvpt{;$C*Hb2;~cJFu2gLOFX zWCNtmDo(6kc-gle{e3$v-1KmI64K|&$3|3(&i9&l;j%laY<*;EAbbB^1W&-8nRl*_6}}dun;UcOKI2NYFDO z8ks)I8`TH@=Q+ORRsGBlAZ?zBB2%LPXqTGM{QcX%+Z!1aL>JL#8@>4tM{1qXx*d0i zL`zJRw!52zyxk=dX?*uDC+_bb_$O;84=P}a5gb30sX`k<)8B4LfDybMUcV?mfGb8@vAP_AXcq4-%9=F8IGkuhU0eH*D)3!J5P? zYg+sES@HEll{9Bk*s;KG?su`V0a8G6gy2x;LAs*O${kv#hW$_Hm(zyBiw1E8g~fkA z8yg&=rP|g3^{l8fp-C{#4nHkw?4PfkmPTa-|eS379x4gS-rwK9OZNK)4h(SV`E+GqmVl4E2z+__4?17%HXP$`or|^4 znVc42iVkh*TS)%i{Q6!69gh3@Y(19Nq8{IUTWhOWu-<1OfosqA51V#6j+}s<2~??l za@eCt-_EQrHKabL*0ApB0-&^AjM6Ha`kC|QhEX|8nt-%b5*r2e<2{XaTtNxXO8`^tfAe-eeJs4hEGtbPNnREK^JbA)?_g;Igwbx#I-F99M^4PB(Q{R<#xVfUh{bvR% zt#l3_^p_em^|x2R24yhNO`__b1v_& zJp9!%uq-u5JxBZe4b(1dufSFz0=JJ46wmte2~C| z8{+rj<{EN3u}R8`nfxO(ZtcyXHFF^kCd1ruNInc5Ra2l|t}W(z7W z(Gr5p;*mjkg0j@eU5=uMX|ZR zCTMkBnkzMCs0a(WBo9etg4h_PDkHCLbJgI9eZrb&N2cDITG;UY2AHif#ScMb=p`}a z6j87_jCh|O#Jo?59$Z*>>QQQgDMSunq^`M89pvD9``YTiR&DI+TwEEd`}JZ;Yj_I+ z&cJv1Uy@A1w$i?U(%6HKeY9STqsrJX^BcroSf;e3MRv(iFwlvhw)8&bRaS`y!bWta z&#V9}_7Z`>sLUl=D8}4?a9#h?zWyilU9Qlh`4;wM|Al9jfx?sN31#IKUiNL9p{{tbiI_ zwJx_Tr4ri)VWM=w`EYRBNUdX#*(H7^gv~;BJs5F20?w7S$oN+- zJq-#d3omKq=MbW(;xsYipWp@Kqq>+7HZ}G1T`0_KE4~a_#xBGb%=AZ*0=()ugXz*h zav=HN2cfDxWo*NsEBk9EZrXUEbYGPXC%#NX&e0bN^EL+}wGO!*j>_W@4jpDZXE2zj z6oYpwcz3gqrC9nOM4QK13pv-3FhKl$9**0@JG1RK=fiAVk79EB869$SMwb4v&3Y6U`$)Y zBeUlt!vb@(m&G%l(k;flS>L5u;C7WR)%RhV0=Q%re%c?94l1`|9XY^Og0z>(0cxc7 zyf6yaUM?!f=5uiXy0pichMw*~^Id2Fr^T-%(!HfOuca*7otvLlesYwUTJDq3SWKap`&}zjoLEx=Lwh@h=HZ*eY8y7k(xW zed(9`MVi~06L_gzzWr`o_;l;2UhRo=&M|bHUhO@C3fO`wgo>`uv6*+Fk`a~3Z!3px zN!TPO-4%N&znKM(V|`xB!~R=TWRIU%?VhmDU@tm>`)fu6_fv(4>dg43+EZtURHQ?f z=2R8+!-bEkJ0mFA1tR;ps(vN^MTf%~R$FjToV>mnj@RuHD$~`)PzfC}c6O0AQ=tr+ zBosO2q27Iszcg>Re;y%TH&&o$-s~-cGce((_(BqB;Ug@rli1k^8X!s#vjC-lKUh+S z!<%CV856|RvLrS9A9}W!Dy&^-1=x{z4m_@d_1ZP7rMy{tlLJiTR?~2)!8pbOXFRer zlKq<$Uc2l6I8f@5MWNkb39&S7)USd8>hgu^7FK>6V<#^{M|%HiYv<<9F1QDy#upDP zIPBIO}`G-Gkq#rQjBG2^lfAY3LO7=6r6aV%KM&l0vxGP?R+`mBm#jC%B;jfMJZ_o@akY6%7cRnM!WJ|_!*)38tI6wZhATwoZ zR5zQV*G2x)VPa}7AK?${6_}l8w#$K9Aa*Q-gF>F#MT7@ok01Mb~ zS2k7iAn$YNacr|9{j%=uFv2{s^+mXQB48h9BX=&UbxwuGENj1pe=oHDb&50=Nl$Z6 z&^eJ-+gK2h!c&XDeL~Nu3gVL>;9pSV$Af7FT~6c;4w3jhf*8XC{vTrJ>#zI4TFQ4# ze_5yW#4%i<^KTeBN<-3ckCGszuKSA81sF=u78{~%R9tzVrgD+BPtyfOD;)Ds8e-g~ z`TchFjDG$B8I#(}D3{-0ni5cqrf5culccC-3hi?&1qbno0wbf)_4`JcV~#;~k<((2 z+u}3{JGP?{Ynet$fpY;v8d4WH&-|FNlQ9{WghnB6O2?&`IRgd3ZXVGxPb7kIWF^)_ zh%=Y!6l>2`kgU~d7pFJN`g^dim225xXnc z3_p!+$Lpt@2W~P_Vr}qVd{1+=>gbp>kxTpkC0&o15hEw|(pWje9x#3ha5JDXXyc$r z^_&e`RM+LC+}mE5!YrNf&6{MB;%m+2Z1$bTIO;Wv8m7xolHkJ ztx-$C*8!u7uFwXFl{;CkZ9lB(AF~&dH5$AoIA;S{N2#2B%%XjTPC!~YWm&JLedRua z@ir#}&A-rTk^m0C4qNJbx-;vin#+`%!V**U`7iV<9D2){H<&nuPLq0d0(1ReyRn7p zmr1IMAin6L`xWU`=q?U-Y2B-f@h_w@W|LumexpHcP?(P*yTA8I^@yrD0^tji!Hr@)YZF>FnGcAl#KbNVRh7;_RA%Ao+6$08$fzG8`na?(RrhO(QBe~)hN0Ze~CGUi_(#h>jEmC=Ic+C zF8-0_Gvb0p%T#E88_QquG0qF|=$4~}bu+H{pPfAOl*m$QA#1QC8fMS$E~xbzEe~-k zYN`GBgpixy`<<;RakcV076Gd3s97_j5immS7~5Vc+41A&S+%SOskw3H;nlCvJ(KD) zD#F(lXN1pBv(X33?qPa2s@*uiVojakF+UkML)z&OwEZ1-RKry2!pLPBBKLln8Nrg3kfKJRg^ab%aob5;yhX%a(<>u?*!X?c zri|l%uX%Xj(B=p9yTNzKk9M3m8gSsmZ--BSkB%2V`eJ9;iDKU* z>DoKTYu?;=_{ouLtJkj@=v~b>z6gWSa4zxacA-BvPC*g&5okEMuD(Ke4NwGA0a7ys z&BC?UD3n_UD2`D{4r_$Dx!mkHv@$HDBedg`WtKB;j$W)xE_TXf?BY>){~bC_c$C-u z!*2onwkWA_lKP4u+2C$eLiWid@TW|VS% zhy84aG`r@8@tFjifpvRm>!|OB1?UNXMiVG*NDj7=QPVugwH`;S>ux*Cj?U&`q0_m6sSaMff_2n{j5H8a3#<+W*3`JuBcYw*7 zkZlWL7lTGb?+OhQ{cKMn@!dHs81p9H&daH_i^Ch+nx?EIh05n!nVhY=nQs%jpt%OD z{j}5R({{w`b(@1i#G9PfIFXziqsmpS1spf`(Z5yNM&i03`~l9XV@>nJ=;qVK8SWG+ zn=cH0F@>R>B@a7{(I++qWL3kfCmXhB-s~ zaq^4rtx3)ZGK0MCf!`(G@lI?RNx9sXS zB<0&aQPL}Rm}3!VtR0zQCj~(hY}uN7Z4NV` z&*BL$xlb5m?KNxu1344>fYqj@@sor!GFjIr>4V8@NDN0>^is?jkSlJG=p;I>J4g2^ z_pyWtVf5N+N+(fBrf>I~E#83RS>U4XnEEp`N!_H|&V5y_pb5y+=`6u3N}Yfl2NsiV zm)C3Ws8hCPcB*|ONcmdrFRUk3+#e+4SbDC1gh#$5d~-oFrH;y0u=|Zo!~=G6L;S&J z7AVtUXw$NTqA{7SOYJjrD_J&^H5lIbI9U(2+-D+jI)g=84bhD4>Hg7m%DlCBt0UA| z!vcHiU-=2+%gL`C_Qv-s*z>EZ{nKmr)dZJegk&`~6ASo<0-uE=?j2reY1aJ4A6-56C zk#LEVpPQlhRC=tUS(PtuL9hXdBjUBjF3|sS;NjJ7Z8uu%Vc5;1uRAul@`N$h$Biiw z1~vXtzc0<$D%2~t2io80qM`ab&LCFij%S6j_aJG!W@RI5dq3p)|Z7gM{75UWfGm#-Sr8R ztkMOjeP+LsQD0Y=p+ZQYOdE3r>aFckppYO=at}5|y%RY@Ym5UYwJjvkE1quqtWK;5 zSHB;ixSKrQ=a6*Ub;?!Br25&EKguaL$8NF&+&n6IMkPB>Iyz*cy+X!PMUE(OQqQK6 zT$8r)UG`BN+*vH5+&|=m0~*fTad7rR@L$9KV%>jru}QzmTVEPgk{LOEZZ~j7R3wlV z%NoOy#)(YtRL2Z!@D(pEgxUD$d~;Okq2$5NI?v)Czno>D2D%#7T z%rQx(V!QLmSDx3bnT8=_Z1ByO)SA95XRu=2P5ClCGo5Nl2F@&9mp=RI;>#BW)D>1z z2a`d}r{DIMO2aT4kesheR=c1J_ZzW>l*Zb_!0uv)X?!r(de6@6QD!c?tOd`R3e0~# zo@>>ClbeRotM^4hYKKX)j*tjgT@@Zq#7(r5NT+960W0~PrZY!}EXuAsLMoinK6$JF z1t-)-$@c)L+;I!$X+IIJ&R+^RKAbcUHL5tcj*CkGzD2^9LW*zW9^Uh6H?^Tq$+GL> z*SYs;*t>pZXUgm;=1Hdte&&mXVjtL9?gJX)PTlmqX?th*CTKiE%}}SgzoL2~2|Mt8 z`}@!lQ9I73Y!Ms<={P@Hiun>XAZ*P1_eN^})E!SGJn6wf&I&6JNRtlBG$gQdO&@L& zleWW-@HfJG@6^W9&X;1HSXW^91bEA}I20`ZPQLXI6rhvX<6n(JumYukk$ypB#mm24 zc#`;}<=xn~5P5a8>{+DhQ-ZB_`u5m4!*gjbT5o4N`o|8DhscXx$pck=maT0TuPqYN zE$y*S=W4-Pa3W#4X0gKKP8Q-WV)gHcM}yJ-frtyc_~g-JMZ@Rw76EXPq>B;h>=1_= zYMn%mV-`+%F7bL6o4W5GnlfrTwA=BZuBvS4k(-LbYF~iT+uiIql|siY8tcA0J)2`f@UTusb7*La`)O6Uu8EWj#C3 zZ^d*Rb+0jo$yHH(i_M~6Gc(;1dTTTAPnE@9`Q07xjy#8}v&k}MYq7M)89TR4)M4UF z@jH@duBj84Vm8z_)WJt@8r=#_PY_ChhPgOIRL7q?1%r?!{+oQieEpw$Y86)&g-iDV z4+(HdvUR}N1jBumh!IfAO-;nu^aR>Jor(%hPJlWML)dvLZ5FHt37}XTetFeE+H~Te z!;sytIZl{T?`Bp1*gJse$T1}*;&IKJt+sUSS_9cIx+<$M!p}(7vnq7m#Jtfz4l3+yR*FOdemZVr)K**g8apTIF$V(VGLr2vL9GvmP-LJdx8T zI6#Z7R|V4GrTn~D6~TP2v?P+}?Az16m3CC@#;16)+K=W%_N>5U`!>YhGp>s&*%vDc zqttRvI65?Ax?M!CDCQTr;L~LHb$2v;X|Hl#C%0JgP8Hmx=h+som9#rdx+)W?pj+$lI?dL8Tx@)!%Iu2r zy(8=M>JS?qo+xULkcTN^BWRpRNs}>(=)!O->rZJr-n``06y5Os%4fcwR8#R6EiSt) zBg6Kt_AOFncue=^A)`wjtHSu6`F>$D%8aTnw@5GOD2Da+Cz^}*yQ`}f(o5{tU=2Jk zruLfS_9T}>ySGg@++Q19b5a!*h^=W9y^DI~mFg0|nx%tW@vmpHrZKb>_hwU^T0+-trpzX_}Z z7Y&p8oT8>3A?!*s^30>VXY>+e9L7G&m}o2KKdEYuhFlLH!(Qt?OZjaCf7xmI1NB+Q z|AAs3q}efczfXi_oD0uMXxr`tpK`|N#gz4(dMDukDwUPVI%i;;I5_rjl(LM#{{j#G zza{{Vf+_436w`&$V_h}h4-A&rvrQ48|FvLHCbW41PIM~Sbbk0Hu;Um?Q9vsok*+{Y zR_M}MztObe2A(>e9K3Lq+lh-GT0|=3+k(mJP?ANK(6@IVFLX<#+`s;lFUj;Xy56W! zRn?AL_I&ha1J=i!1X%a;omDA`H1a29M!lcB*}sQFY7V%}aU}2NP=tPTuP+>(TT5^| z1+k1i4K*=yZT{Us5ntI6aCNgJ^e0ibi}4l=qw+iI$S;@}aNX$#D~KOvELLOe*n6`5 z+&4x!Jj9Q7-?qCx8_XdtxFzORSOm7ilVm+d1i@ut&s(=&p3P{ND2snSA(VQri-$}I zspGY69gIv_W2=|Buv5zD;6;13naUuy|D4YlB12)o8qo$xPp_ZfOsBPO=D(bPR#~hI zknAdLNDz?mhIsb2@#nadbiM*5B=?ya_LJpzS&1F>dwo)G<96sx1Uo{3TC!k#2rr2+ z#0$IKw(ch$5M!d6n0r(@v6>-aCz8PtK`ZN~v&1^&AS8F1BEtoXHup(wl|ne3GI%UX z5@B~6>vLvXpKne>m932u(tzygwL}kvaJ;W6H>WgRZx?cD@w&6& zXTfgwitsS1d&mvO1?`ct>MaK$Swty>HUw~3@+l9-0=%ZF??`!y#o9K$&wQ>WhwF?d zfeI~+b%xRDz~oMwNeha9%}-o{+nd+GJr*o{z?8gDN{KWK&TVlZ3&}omsYFH|Dnkam zk(aisa|wB0rA7uY$oaynALEci@@{-Tem1b_MinV}q7Jm}H=%8<`TW_n3tVQesK5TA z>{BThU)a8@mOgn-cgbKERr)S_U>YC)cxzbBk1g5fn3=ue=NZrD9}*5o4G}wVvlWH7 zM$Ld}a9Q*nrTuly=AR!Yonw@dpHY*}YL)lPu(X96m>BYki(g*LGt<7io){kNnR+`? zMPSZ#SXGHq#y7R`@1W08;^|(cypP)ws}i|mOZN;;+A=2_P8gytcbqF_81Mqa-la3# zfcG$d0r=BV*8`^Y}C;5bA#vHU*;B| z>Z;mX+k)@x=ajdsv9yz`#7OyX%=d#W_wfN4NgJ<%q9Xts)D39CI03Z4F(0UO5;ZOO zS12P*R!R>^Ko)e_pw2STGL@@ei| z-_bv#2uXAa6t6pzcG{Y24vANrdV~07Z-AY2*#*bg#lp^XblM35L}TadTDJqeqY1Z- z_1mDr_^~_zu4)qOwX!1|GJv;Oz>@2-r8!PptQeK>i=w^PCChzr?$YLwF}Qy-m9k_&qin>R!VZfOEpyEqxcOgv}d`Pl1a3{NG1-!LE(L`G)G z!KKl;pn9;mHLc^?wvhGYd$;Yjq<|eT%c{3y?+#x#!~}s+>)a1KG}|%tkhb4qt1i8-!U`M5Z||6BQ(#UYoY`@+K;)8w8CkB&%qjPbYJJ4(H0oY-_Iqxn|#ow z8E6Es{TvJ$^=iyyj%(#gRQfw7CwFoCn*xz(3sK)Un9Ki0qdc2IiuY%RCk*urudY-? zmB)Bx(4tQ__dmLg*F0K-goo{Nf)fTC=X>7VK@Z-a#D@+SN$SEb^mI4_9kq|}$33aH zrA7tgZcz9qQCjpt#d#k-WlOxOalPYH(XMLkuik;yhNV-xtjZUAvPw?)ntSF~pS1An z@$wFtEV1(~DRa(riKM$dew0UPeCvxUI~f$YJ9@+)fBJ+I(mGTv4|8R4|DdHog8vF zPU@e$Y+4RkcswCbq)czNzqp`q&Pm65-})oI@wLyMiFIiiHM$(lwACs7lXb>yeU!zb zRd>(niErcMR^jMb?=rZJ%kLqX4-qeZwR1ZuQehSiGo+bAO9i`C)|t_%cw--$x;)PCP_73{Q* ze??2s1whV^l6_qvl$TPRVl}S_ntcrLfft$rQyJDmHxd2N~;zna33qc&D1T~IJKKEe7KqlIEWt>7j(B{Z(9~RGGyk- zT|aK?*(tfK9u%4@mgb@KtYD@D?yQ!2;eP;jt!Z)=zxBy!4_HH0TEZ+Gd94l@N*n<` zUz(oSla&}f-7}{2qnVE01zwpab^9mFj#2%ix?XQr{7TAp42v{yBri4{jK$M0?1|H@ z8CWyr0wY0T4mJ2FMDJ6wz|zD+vpZR!J4YLXkj824$kh`%0!7PLAY)Do$s~}TUkz$H z)!`DhV4YLnpu@0?hU5!(_C!x2$qE`9&14{G`(w8ew7CR)u5AQ8kL#q~Ly)_=D{ ze5d|Rh*W6{X16tJb)6EF7RueyWJk{ljZskKItB)ng0Y-qBWQ% zorX5TCD;9ZP|hXm+-H+$mH@5s#lknI_LjBweee7j-t2~fQ}RSe{zaze>5}bR-@oa#?fV^- zXw_WQHyc6$ADache`#X;oj<(h`S~Ls%{H?c1{=cmxo*3%&qlm!%_e+vVbzcGUAfOi z8cVVxhJNhb-(Ycyj!-%eS2FL_A0??AAG)DN>(-r)QGY)%s`@Ip>~Hq4PkvpxyfG@7 zUPhF9?2BGxc0a^$lzaDO5lN*hsnKJ5y;1R;OZm8S6y~W4(RVW;J+EAFkGoG=<5W=> z4==2j_GhqkInvj-_z>L59Eb4r0x835JO3jgb1$uu4@SXiy@$x+6}gH`1e(L#yIKPI z{Yc3+)po*9vEhq4=>;{{Z>WX>1*QZa>vNk$3R)X1o&d6@Zxgr{QCbcDDc~c|jF+%k zpjg2r#rIp_)omj?N|VPKF3`mazAMcdEn$QlKx zLMYlSq5~8(yaRsa<^irSUMC9vny@HU%xZMv*uzxe?aN{vnw&w$tZUIa<;^YtAJ9N) z|L$DL%7}wMDqfx`lM8QWlRP&?B+CrS;X9W6v|MTb?d&VB3!Tm1|A^-no7`P-KB`iA ze#q_fO{3MHv`5?=R5U1owYwMHz&n1eZ}Ms_p9MAa;JIU0zgBekyf}HK34J{qbYD*? z&u@6z2pE03^~_ZIJGV+4JYXSuIu0sD2u*ze9-!ClqPRAI$xwv{|EX zq7Appzoi5s$tqZ>+_%&5#6;vuXQULPCGq$Ns8Kf3l8}9 zhJ0HwMcfAHa%~}J968@~ zc(Uj0^Jw+#*;ef^E%i-~l3sjVWe#!f}_&+B5xM)wQpxGqiD1-ff4j7ss}KPY9)e8zvs2dlxE?Q}6uTV?U2G(o|_ zj+pj1TF&aV3Y6cwub@Hk>)2DXP~7nYd4GW8tX`q?8?it)m9C2m3dqZ9LjEQmM3HyB zju}vuPU;u(A)-?P)9NA@6^zBh28u0;{&;Xo!T84yAKF@XOXB6TgA$rncL;UX=bb{` zBKO=c_;L*|S{e+U(|>dgK}GmPq(!W2t){WHng@1Itmf3p0WL~$E3cF^8r-Fy1)9od zPMeSyt!9Nt4oQwmMw4m1QnIG#bDg-`D32VFOl1qn7k;jT#%h61A-R{lwJHwG!Bn%s zV@y%4`>(!W@2 zpVmYBARtA0B0y>9#Lk6k*D5CTH8Io@MY`e;OOkBOmayAyeSvLpiL9<4GZ*P2$K2qD z3M1Cn95ucFHA5ksc>cT2=o27^2rR~9{XwDjpMm%<0esk?46^+^kz`xzce#twDjHk< z{z;+t_A>IUeVIlDKzm-UZ`Eq(gpUZfYV<0gCHNuNNZkl{F*BgRuudH=40yb}Y|9_+ zsHpHgeEmY6vFlc>Rs9@DlI$tdENg>7G-OT)kKt7wf zD|IEM|5WwPL`lsraPg%*=c#$+xQzkN&M10B(S9f#-ZpBsUZ%4^tqKr+QLoPWCVVW> z2UUuEhri_hYckUVKZi)6c);3LAW6(|xYboV4|gmD={P@r+`YV(cL%*SphWaFpNmKi z472EvthB9}8rN_DO-8!2UsF$FQ5s#^HNZT130v$sa^u7xyyuNvBR2Fa^I?z`C{~P0 z_pJ0iMG_&oFVL>MeV9P5kz80lo`av)59(a0)FCpo<_cPQkxLX~MjOL21E3`@f)-a7 zsU)oCzdxY2@tSar)Yuw@U95RDS$1m2$w+;fvfg{?GlIq|?4l(R;pIMq=yogAZrl=N zIY^;OIOE59)tsjOs8WB16mty}8`O=MWaZecb7lG#Sq|E8`80tMRt)G5l5Wfz((q~6 zyb0P?8ImIgeDp^{7g-n0ehk6VMG^$ai8uNHHQW6eE4+NL!ra5W{APO01RAE((X8fI z0p#amMV7KZAdicY?tjmmcZ*`6^OGE6#Is}$QKQ=8 z`@)#A0dDcM~_+v8R}}h%$0nV-0_z^cRmRHc9q9R+g6EBpL*YbH6XDYKf4pHYT$^uhvZ?nudx*e-O3Sx!T#92F|H)l z4Mm1>hB5eE_~@kIN_oui=S5dAe$_|wsEIi@zz79t9AG`C}$+JE<|q3ONXp5YoWQL%)F=bwU>3FML8S~ zRoHp%5s$>x94tM>0A;8fy&nGjFX-9gLl?dE6(Yi5pEt$^bNYl)0c<)WY$oHW-at?o z(j4SJkwOGpvFz-ELcOgwu|{3wPuNK}S10vSpemAhuur^J^>W3s$+(!n`kv0ZbJBY` ztAuN&KK5xhL(drFx)-5>OGE8x@Hm!nKLd^YI4_;AN%UDfYh2R!yL6sK6u$ox6CRT!Efo}}uhne!j z{%}Y()oEN4!b^Ai@MI>c{U}uBDM2nKXpiZ!O4WX&r&ib@LDqk;2suqKMY6(&Dews$ zU(_0N!4gz8itEB}W#U-LFZ3Ciw12>l& z0?<&+4t*ch)oN)_ha)WYKRd4oO|kF!|MG~bUgNz6dVsRWSF+USoxwRY&~pSt2pQ*iEk;LD1?CB|Ep=PQ}|ePQ`#j9lFuz&^m*_4M-F+U_?V~QcIy~5RWIw_CBY@ zLn?wjJW+ch8Uoxlsg#IxqZlfW%jae~BT@4@%`qsw8D`o~r`6hzf7`w?>w7ZK$DEyrE{)$~H; z2gdSM^Hd+%5#$g7_Z8zj&EU4SaHiJZD6 ze54Maritq+Wm~OUvVM!zF&LuVG48gasys?+V;Y(3f6(*Bi4j~o9QTh{nzFGA7uQB$8 z&kqW2v^(JM+ZYH=p`T}DZ5?+!f0UEEQN9{yA+1Z4e?dE&DtUi?h^qWxPxz7*{%fZW z(v^7I*^g7thp0{!p=xrFE>6w{Pq8U*sfjDC_x1@?o@saYc5e%$M>9teRgH_K?Szi5 z9xhx)x0Jg*$u0Iw~t|y$I-)b4WE^T&B2P|t|?Rub*G@!5lZjd z8Ogna3>W&4W%o3Jo;ZKz6N}y0v2Ihe(ytmp7J^KtFvFxgwwG2ha%+CUf;$|?Y3_9c zXQ97-GdW%~-+=*tk!Y)gLZe2U zwae-1_v}NSK4n?N+uGLhQeR0@!a7R$c95t*fyx2xO2}nmlWUwVh^c2TvQH03jlBwf z?N;Bv?9d}mS74?;UIwU})GM(68AK#Fh=k0;MRgS+p>o!wS-x(Itw-wggZ9yqq2(CB z%6)`pi|t%J)-=6QIkDD5eg{rx-PNwlbc_m1DJSk8)YlU9n=um`J7PeYl&f8-ZdB0b z+s4sWd6&Y{IHxra?UmE0Idi%NyLOe?Gg zo7G%xy6b4Ir87!yFYg^rgAtW$$vnzvQtI>vDE|T9rXNfOR&gpSQ7;_ost34v07^CS zYwJ6WIZm7ZiMTOg4@TBf?QVU@9{8;E2QhU%qFXTt#I2`nYSs{oUj1#m-Qzd6-!ot7 z@ZqhSvs*a?_iI19ZX*Uh7eX27=Do^QV?TR!RQPDO0=S_o zT<3TD*31t7GKwGaS)|s$@J~#@Gercuy1AF>i1fs4lH^|2_=s(-J!P?}wa91sA$|&R zXC)&lW%!mWyWG^z9%mx<&2!=SGBsA8wiZd;dJ4T&bJ@ZM7w%VOfFD|1;mr<-HgN1P zb4>(JTUehY0iQTk@^HnGqNeT%r7!r*){kGPDyyn4XV!2wCycHrJjft3kciWUXJ%5S z29Aw1^EQq0ouwgRr{V4BrbiMY)FN_Q?zuX1|AtaOSq}s;b1SSrMJE1z~*qvw!4J-Nl@q1= zQKRj*py~IdZ7!*oCYc4~Nsq5jU8Bd*@o`9x@3FyN{}7ESCRjf`9-=khXRx=QQWO&5 z_8h|T;WcPj?q4kWi$#A)(f@55tt~Y+Vs1PMW8-dVuQ6>qbYzI7YU=}PlqHELA&3&}89_l=PV+x{eMN|^c_^R!EbM7Rzkn$kBkqsjZzNr z2FF)z`6}ns<8GWzy7qmW`2)Ggszduy;P)ufwHH4%uJ=A&Qj}RfY!A99e-7qf47^v- zQCF|J({ARg*@OyWFIru!No+BG(Tuc@@i^#yVe0dW=a&zMIPPO(iWToER(cL~dzKNo z-2O3F3>`}F@?4_F9x@!s_lr~O@^+gN54FQf9_*7%Q5vaP%+{D$e~d+dIC=ab;3gVR zGAlYCW#mK~L~M(YLIJIxfpH$a%rUa#-itjF7c;x3d|@LjS9!T)~?v zWb$O*VhWa{+siIm*#cQkQ2A_#&pGn+nRn|SH~L=Hei=?PX|vbc^;xWY;pDAdPLpPQ ziuPQ*&ze+yO(l}hM18I6ZFp{SI*Bo@3Kh6RH^%ChD>(Hy7KXodDub)rG*km~>9W&t z6Oo}UPrT;vd=siq)>TJ>Zqw+eMai$%YtI}J-VYDN$+MJ*ZO)=)S70;Y3pLtsCFX~n z^-sh_cy&93yxxqO-at|}WY-@OR*R^SCy3V#d zZJ(J+o@h@>uaE5LLx~hu-eoU4VZPJF(`ktHlogpvughqn8R$BjD4YPMlq}wrJmVD& ztE4zj+JQ+i8=)l&8EI*R^kLFTq^q<_t80^b)39RQGlaGUxZS{g{X5+fnOs*c--ZlF zVnzov%8JCYOX+rBblhma`kL>0F~!zi(?+TxF+-0X#ZI>k7~kUUE;+ACUwAAHFN)pQ z&aQtvj;H6KbxO}XON&)y_~Y$UVllVGH#Bd@%gI!j-*J(>h<4KwKC@&`A4ltc-oNqG zM_HO(`;O>RKQApgYV=`X=u3-3MccobGv~hl1l!&pZHxJy`a|9RfJIK7^e4*#oyqz& z!K{a-YqVRc2Zf5M^YQCA;^t!y0r9T!!gJ;L(MF@LHHuFY83!8Tq*E^sQ3IvD?WeMM z_>Kp`A)=n27!u`!>+aBXqE}*9!_2_`6VGz{+?eaD7ktlmoU>?q7#+pLrfz;TfX%=bN?eQr2E;-w26Yzp zARL4O4v<9+CGAA<@1zZZ%y$L~laK`q5srIE7`L2v?=xI%3})=`5V~7dDoXjgd{OI) z^dhIeCr`=VGT5oD(rLJHk8Lf=JOwS2&*JCwF$z2NHEORoV{Bpo(UGc_KM68o0wqFMCddWcxXf}p{0aa-npC`N7VX~3M`CXnhc}JFA8To<#`yV<?GrHrQ$r(Ex%NyCN3)$M73l+g3raF6X3ityV~b0j~))&k^wkhXQp)x+pD zd!%r1mkZuAYQgH9SLKtEh?@tMxvN$?NQF~$r>h-ALgMb9_9>OWhNJrb`QE?WU z9?9Iy?Zt8fc?q~5V3DZ{Q^(y#spO%Anq6gPm3$~}0j2!Oy|7gIje@9^g>rMq|JS7Y|Nj{NkIBPn zLk~jZQ32`xh>1d#4zc{2T14VY0g=i2aNAWe`H*2u6h940&R|^RA(gUQ75-$NPe8Ve)=jQ zp!fdCle=lp7`bd@at z@LPHKpf7nq4d-KdZDw)Z72XFe(^>s9tGu~O>-)STa~|w7jiB_u`em%ek|+jvaU{3&TqXY?Wi< z*(Lprn;kHu<|PAW*N^wAf`03knn#V#oVxYqkUM@fj$;_7Wx7Z6@F>ww)}^z z_(H`fLzST!NQD=4FY3o0i8`GAgZQ?>OD_j<{o)xe=zJAvgB~g~3dC!9S)A^}Th2e$9rXgHF$XhXG}qvRKbq z+ZAc;!)92z<<+#-xQOe1yxYqfL?8P-V;2$rN^6N*YW5f37(zd>plr{K9@8r_NX0-x zzi!Yh3VdZ=U(Rz0QDm2{!Q42vO{pI^sRb_2BGFFowonN##lt#qMyPx_xe}&ppEO1; zxE7(nMqE)0YrGHo4cU$WZ=vd0y=IZhh?Oc`SR(v9qd*)J&e7%#S|P!vE}9NX0=v&- zc}qw@o)1}v(vSe)2W;d35}aR^3(Mk9U}Ey9Nb0d5@`6m6!@maZ;DZe9%kX@6O)(() zh=Dkx)ry^qrHsk6b-kSVD{*pxLlJq_kl0Z-xF!gMX&7YrVjn<7vd&CsoWQ9nluU@y z46q|r1E9ppn+*)1uBx1LN#V|jS>c^$Vy_i@~qO>8@WK%ihBPa_TD?F z$*$`czP&Bn7DPn_q(ntQL5YC$5*s4YL_j)`qDb#0kfI_W(o}?il!ywE8j#)+siC8Q zbP}lnLJI-XlM{X4@60pbIWuRz`P!Ltp1(4)_m$nQz1Cj)w|;9~75d?m$DZJ3yRkt5 zL;MXf3FhURX6kNs_EQzJvFkK!;7USabaN&EL`HAWa|r#McC;yg-r?3>hYMns5UGiS z5kyLRArZ#|Aeho<;NcZR6yHJRhFx{|WR?1SJ3Hy*meWGNrUzhzgxf&{qm(eS{=MLl z^&AqQS807=Ol?+xH-SA~v9@XK-=Z&Y87thj_RH4D5HRQ)89HoZw{7Ehx1f3n&<85K zE!0J{cu8cpN1$mqnl~D;sN<{AxGs-d*-Dv!y}^s8?kvVb31<6K>E(u17*{Pokgg0(M-tSn`N<>SH^w^j}ad)Op-}5+^i1(dJhLtx>yXK*EYOgTkZ)=6y%v#Z_%Y@hK?YjiPSXD^Ckg#+KRzk7py*0yH zLmzU|8f#B}Nn4(KR<_?IFs=OLB@LzqCR0-l0*PJnoL2n4({ws|+rGlDcUHNzBQ8HC zc=AOPg-Q9jDYUGw>BqTL^lXAkB)afT5RtYOmGGBuG$Qg@zKw!3PBkv+hgu`gp8Fwe zP%2P(m_{tD=9Q*$*klq|w|_B~@AhFJwtS2buDC5$KeOEEw~rV=yZxKM1%!R;AYJgs z@n|eufA>lPGC2e6vQ-5_#0mRx2JJ`BtnS?)t2i5%iEZ*x3|=|beLjp?t5*A5qMaJPBv zK(KZr{n+1R+U+?`4+gQk^$Fn%&2f)Ug7H0?Bk(qTQv_QJ`xuL)i-CB}hPzqprD9+1 z+d(@bJ-YKm#COItsD#vSheu+$o7RK=<1P(B%=sj~^rLY+GB|__;G`#Ia|cH83(+cY zIB6ZO^><*F!z^#!4HUvear=`lby@fI>(ZK+OyMIDC2Q^;bF+b~AhtQ+J=t)Y#|^{< zGjl)`_=lKq9&5E<7r~?O?!fxr4jzi5F$od!0i zsHsw3UWuKkUqd!vRdGspFG!_?gy4-du5P&@eu4ahenTz3>?%q+}1w^cYtF!Qba6{-1I8FlIpOqhL1 z#SqdF<#x>>HMh(f-PAzp-kXj5u${Uk%~ox<4L zQrod&h3+~K{pHumahQ@}X6CF@2{F7vQioTk&*VGFNZE^g3C=7#xu#`HOZt7J(P}9J zhGd}mPPhvureppdnnolbmg0Vs|AI}wjSG!7>f{lBGXYIUK^v=p*_AT^8gqY6?yacC z=e}S*b<74K&>B7mn`PEKc5W}pC+ic=RImSm_9ONZu><3v)-ko2;g^3#7V{h22Zc8~ zHdSLPc7*(Q5^7YO+dXVe`TyZxO_H)ptu|KWi#azlVbVScX=U$+lS4ax`z$`muAG3f z?t1c$xDj94Nk1;i+n$pQ_+wq}|NpU@M(%8AK>2XE$JfIMA(z97#Z(XTm`v)l-KVLH zNb1SzX#PnllFOUqG3C)h@RiUblFra3AC_d_w!H6meQpqQ<{PgN#jYF#OM*Ypt9czP z6YzE_8DXQ(iAhJq5)pz6l~0s+hKZ0$%se|Vp^CbZnQ6tc?c;qJ!Rb!?R4bAuEi=Re z368sKB?9<(&nIqRVs`_y56O#0sdGK~=!kYEWDHr){V7789I>5EY5^YXiSYbfW#`F` zkQBmk?`-zwI60X1t+}A4yAQXd(>e@i4fXmH%&k$mB+fdw1DFkGxS(`kBWkd=rGECe z_3Xg7oatcC&iU7@nql5$aQONb9!K>w3I@DT{Sza@OeMy-|I!0krSE2oq8n171NTAL5Geh@t;h8@^Ntmg`( zBi1Lsmp?F6(03GI=%*tb$=0@>KX3IzD(3<^VD=nj;H(x7#Tzs6W4~niI#G8^McDzp zVY3_rmu)pYW86ofBJ=yG1^S8khZhhbQ1U`QJBOCV{iW8h>XG0!wg>_pyo3);M7&v> z;LTTO@fi-R6k+fs%Tv0-g2P*>Cma|*R^6awu_Ld2b!;ub(Ur*e!A?pw$Or2^Jv*$= zMpsCZJ0Lmg@W_AP(Lu;ICsJHY3Hebr_auaucg9?9Uii~^q>HO8~7gV>qL2DDeG^%3{ zo<@xlaSVg<{h)31#$vX zm_B&{<*Aw4(CC^6Fy~rZ`V4cp)1UhujjB$1tgD`njO@SH0!^5ve{bt|N+7xMGa+~q zG%s)S1NVkxO;$=5p1@TqDiz55xV`)(1`w6x`7*edPb_DlJg1qXS}MTA6qmlyQ!X14 zja>4Xbh%^xE>AD1??-%!1eWV1{eLhXOs$Eo@fA^;WI1f=lykcDUrj)-BtWPpb6~=aDH9k-$i+xgF0^_ZnyIjnR%@N11e9*hJ17S4R!ESrznf9&$pFL zA&{gD&)j12&6TGui~K9`Zw92yY-59Z)o%qiX}EI2dsWCehM$aZi+j`5wcoV?DT3eO zqZ>&Pv5g;#IoDT8|AXWbyOJJH+ngEwt#bW=WmXlHpqG-ve0Fvh4P|e>u0QhAI&r6} zh=&JJCztxUxk5#VM{Wvj%4lH3Y~x^P!}==Pm+>A5f>G-U0pY*RY}`f$N{n}4RMv#| zs~V&RoF0Lb1JOd=Czq}m)URSCe?H!*0(TFTEsi;2^{Z7e;=^1Zx8sm_$<{WiIqn+OxdxstR<6Mj^N)dF`~R>6uFzGkKo=! zX>ex3@_0QU`q0wBe*TRoFBHL8ioi0m(7tdQ(pZYtC&cE4CIX+r!Y{->_YTi%jMtbx zdE==n0gvY~&SM^p)IPNTwMGmu8Rw#3Rod8FC| z*1NcLj#{5j35e+M4Ep1JtT!q<`GbEtd~f;f%lD<71fAmp<3Wc#^7`0i)6#0mIeN?X zrS4g#4+|@0HVHxmfcayVzi?{9NEf0-oZuHeEFQkT2V5BYGuTArd4q=v=5j$~uFq2OZBrAE z_x+ig57T8+fo{G2HVA*}X6XrY@s*cA{evTKRGx^Vh195G=sbzavgOal+MaW+S@sY= z(e}~z<@*XBkGK9b@Y#-?|5^LnLozPB6(`M7h|rtFo=vrbIYWX=hTiQa<~+7l^cwCs zgMx2%xJ^<+c_Z0rf?qkMNdq$68dg%R4w#MCLG(@i$u;W0W3+Gk;eJUux$3%X63hc0 zH|^Zas)*%tDmJ!a=il_#@I$^aI*Q`1EGIy&F~28SG_!Sc+5R_TUn#pN5~Gvy;E*SH zx;tODtU=T2H(tNGpV{VQntP&U+=?DhV0sDD_ml4=u!?vN_a8NPZ!6t7fz9Nn8!8O^ zo%-l!_6M-Uj)kpa5iAP$KU>qG{E#2hk;<;%Aa4iIm3Ap)0~8vqO-?9Nsg@fy4IYpw z=|j+Qu#L@m3F728Gg3guO=nh>JqbijsQ01aVUOfz2Kqj z%Ih7cG;Cxov$ub5huV{0k46`&frG&LP0d2_=5zIw2N(;74w_*^ktbsR|oj|mx z?MJfVRu0Sa7AR|}%=n*uljpoZLq-`jb#rqTC{Y4VgS-6^K|*l#ng=lmb~zfy=til- zXmqPr%NnqaS(FxM3did_qyBQ1-n7oE8x+UQ36g@-{+`7P@wQ@+T0YaEjhqB@65In? z>qQ4`4&oq8Jb`wCZ44@YyYXRwhDjEobZfz~3Aah*CH! z8-Z89-c!m3_bJ1+NWYx-k@uJI3PHT7Wn2Syn?W7>Apliv!CqZiP>2!oy58+GxvFdr zV4vsibs9Owv#7tMRj!T#xQ#frAv%c)+}HjK zypK(xV8Y?6^pSFIF=81u3pk*e#Z3nAem14aLWZ>vO$k>6pWO6>*6qEDeSH#7KU<+q z_q>#($H%r$_r=*e@K|T>#I`uE1-R%wr3j< zm{2#L$PRkl>NcR*7s5xvp9wa+1TQqm5f(CQk4s`j0v%m8;y$qU*x)ru{<#y3Q*j`L z?uH38b=;X0j^gZnPlaF&HqroIAJ9ZxZ z34G*QJ>Hy`$CwV|mRf-u_YF-v zx=eeE3`!)5E3N;(cw{XqkjKrb3b&@`pO;mc2Um<#uK3SCDQ@fPmuSf5ZC(mautwHJ zi;>=+w@OqUv0d$HGQ6yje-WfoE>jy&G3@-aPoiPyZSwm~b7jxB^7@{aAN>1~{|DBE zhu9(P-YEZA$I5;bu?`z^sQRn^c)r}()35g2wB#G(Rjs$3zo(HDJw8I-s%^)1W@sC1 znH@7c7jpd4h37#>a_>wi%xbRey4##1UNt!{0wy6g&T|TC8a9;fJ?o z8-hT&|GqHgQEU*?4m3ezCIgM?n~HRfflm5n272=b_uHG7}& zAp>Z}d41$yJ0FJyL2jY^n4hl?=Zjvn5AJR*ZDBt5o#Ax@7i?6v{hLb((?3JxPKhp7 zN!B+@Q&;yW=p0l%gsORXUjoQTD~Bd$9jYqM1x`wj$pU)m`hbPGR5AG$TXCXJSut%I z%OE#@414a}a9vS%)e?H5?IqlqD=go+bn}KPwhholLGto=GxsU08m07naJ&fj))Gi_ zv0NOa*GhZVM#{FJ-7}cGH5@r-!pOaEZiRd{_oJlwSwaBgozmZ*4bIYU zy-Fy+?S1C@)n+xBsFDgkJ z5Y{S4$T$8nSFyR9Q2w}xSB?>yetm<&oj!ZlY)u% z*U!bnlu$pJ!gfb?KNv3a0e#%UVXb70O1o_Kh}~;DuK3haTI!+21JK*0w~|)5&*>q0 zHu4Gy`+q%nRkCDP$h{Z%3Q&Dks%u{bHNogAU{BC;1BTVq;r;zt|Mtv8+gr)e$(S&& zfcPNBMaQ@EZFrsLD!*4FdJgo->h%`FjEjIwQiAVR>lP)~90YxHsoEGCxml(&JaKmo z@^fPBjAw(Iir2W)xnwCLmlTiM1blwU*+U{qb00_Nu;18))NoN^2|i3oU_c^Y`DGhG|`KYn@+q;bvUwaCXgqin;6p9Q4Tfq(kD z;brF9p;y)kd-g^u-W5BiDuu3tR2T9||JP3?Uws}g>9P-%gxPx7V6r{gK5HRhK7*EU zH4+suYrh0AyfP5^rU&`E+{$T1@68#JHW}L9+u>KVtb_G0dIC9=? z)BayZf5JKL>`jGN#%l-Tw;rCOp0B2;|Fpcze#@KtOXIrZ%eTr9g?|~(fwKQ@+nxV! z&HrvJcoQXYTDIe$S%6Ic`G1+^nW_u_&D+Us1u{$zzZRa0x}cFvIwrc*bZ5cPXV$-< z@QB@Uu>do#0Pw%8_x%|pTUMZB|K^Q%nVo_A|7H3wFTXledqK4p_%Hokq!@COchBvC zoVnXKSG(t5mbUezUbOx3j7gDy>F*u=Jg@Wr&TlDniH?fG!89IC`;%RnAWU( zK1#WY>YKq#jvif0uUFOf!Dc&FoSAwFLo9mCH^r4JjHx|4-Gfdj8n5SkVZFGFg@%bj1oLCgAIRr&1 zJYLqmxGP?9JMaSqSwcLumf0wyUH9asbs4-qt7}l%NPG}zA29QBtHwhbNi}6*gNesl zLSIOw;sNm97vV+^e8#2L(#usV@#9sKS7;NDKM$2mrBY$dzX(&({q%EwRQcMCq)X$X zQjl<1*g&>%R;Ee=BI!!7D{3Rp{C1RMCf4O~vr;0}%3BarJ{Wa!bOGHfsWsDn+tC~Bd z=H@VIO~X_%R+L4I^C??;f6st}C;nDB>uiG3zA))om6y-}FOB73{1#({@>C1t7-YK~FqVwV{ zuLLKGGW@?85zcR^qDV&KrxN*brp@08s=yal`b|U|$ek+F1atx8zLb$d;pq9cco)lq zr?4KTI;q9c3)d3o460(UrieDZNRbNu{I&e9$F(>ax3D#~vc6!YD$;sW&ex)pg2?vM8>g?sIE#xhIMS zhv_8APnmlAXLZPcX()dOmS$<#v|z)2)i_jw00X_U*_&5(|i_vGyk9%7djDuXx$Yj#lVhV z)N=5;yE_TgehNVskj>tiKA44!ut^jaN)35R;aXbl0v0^Ktg4&3C6(0I{pFzDj9P}Y zih^9cuj@(-rE7bp@o>F;>g@M!gcwhWI~Vii0OYtB>kK$RCq#R86r!yO{G`A;&%4Wg zqyJHE&W!&jXy^9m8<#&-6O9p8lAq?louJJ-7E#)-;yLt5O882L;)=FZ7Sarfd5bvD z>yS1>f!~w?HqVc^=qIMI4H0xE#o4PNzOKDm8!^wA)i`E3t-=5AYhbOER=^>xBz@AO zp?TcDHv7Lz6*2BIZwvPa>%xb`JB;cwo*iimCq!7RtOzobkroXbBXnt5EN#z{~8L3^qS5xd$L+`e2hy@0UyvtV!7 z|HX7~l7|K&&UfH%H6YDIb{OH@Vvz&9hBmiDv?<<#uE(TBX)pd~x20QVphN&;Jd{1m zs>M;F3cIfpcv@bwBfLfkywc!eLQ8?5-XqFOe7y1H0ADg`5W)tZA zVa{V>Hcl;Ce3ij2k3&Zrv_#+|&TBbzki$AmN3KAr$(#Zm}%LkDt4b4oD z4vd<8Wl1dwBY1jUGti6vm0@1{BbyxOeRJ|VR;PIl*-6&wm(U;hqR4RCyAh39u&pB#t{(*-o|0X2pRbe2&vK5%?9i(q8f71(^c}E=ExE!X zca6-Jmk}xZ%w%d`c|muf$ZZjlA+?wAIacv*1Bio;DuWk(j^?~KV4fP8Y^j@FF4+39 z$F?@%+}}kD-nkprV9Z9E-r`!#w47yV3`)B}+pD4%sYsKDNrJW2&L8mqOg9rV5gj3_ z>hVc{#JnXqr?ZQBPRXA zOPqWm&XrjUR=vRoY*O4^STQ_zarNyUmQsgmzLZXZuX?{~IBYYbyt%!2;uBLDX_Amp z)1kE=KbAKp4|Ws(RiJVmjpATD-DE=@692&`kVQ;+WHax{qb5kzeB6L)$g&N0f{dz2 z@D6`WRQ{(B8D#HzOsDdh^ zWm<9KR_+bx6S#1z^q|Qc0_*NbAJ2+wp4#~vYS?&B6%N(PFWmmhDrnr|4mgVXz@Xbw z{!y0VFVAO>el%4e9)qvT3&j-r*gYv5iLOoE5E?7lAWK=FDxoh+Pc!ikIzB6Gp-)=t z!7nW4ybV2x611uiv|j^~VxxS+{OC6iry!i~v@a-c*&Yd~#TyFXszra@vMe>QSLW(s zuhdzbLj!9sLt}|vpIz+r#BN?tYBz6KuIr+!0W(hl+l%JF5N?>`JK-Tt`8hGhS&hA7 z7MqhXUco7(^;|mpB5FXwevM~H;Uc%Idk~MfKr+~d*UhvV2Jr|zT7e8!A)AxCoijx= zVP8J4!?jdN%Po_B#pzJL1hd zD?C{0Mk}de6j)^<(=dmFxb>SE$_2gPCA;>fs$DJ(S(k>&>nWR@1g0>qrFs>6*5TQ@Qs6)}&zI3_qs^5lCbN(Ysd1+2M*z3{Z=EpKNd4X*BexJ6zN6bROER0`>YPC(!_<~a?Q3Ud9Z$# z6)5~`A}T2+xL`Q{M#hH@QBz6*IUKvd3&Nprbb$dxyP-uC1t|n-H(=cmL!5U?5m8*V zBc9p$$rE4AAooug+`ov7oDUG`p4Fvj3@inCuAIZoZ zd^n{u#0(uxC?ULlRS>qrZ1$5)N7@KfOQC2eB}oS?-o zs^vRn!UDwYt}-(P@dOP$bZT)KL!Yz$I7{7a`Sl|0GiCRz`?a@)0NQw7$)qYtrH|uv zb7`+;O7VMr-s%D*7<^nfLo(zhE;z~L@_oC3cEzQ#gH>nr+GwBya=3z7a#R*CKP!LL zIAeOS@eU)#h%=Bo!!kwaB$5QQHO*Y_xpKKK81>`RWn(D%s7-60Em3v~Ja;eIk~7Pd z@4x@-!KiJb=T<-*C@34_clIcHu(&R2%_nfMxC(K;-7;QOf9J;s%G5F9R${f;S--Fe zcbDey#dNGRbEs#rPWMkgoJ$1*^qaN%} z*OU^RRAlm_+VTFyhd$q2Z`bO)Z|5vNBc$DQN>K1LGS@6CV)o6d>p-Xst*XC*(5tqQ zu1W53l%)6v5XcQl_J?_;t81Kr%LhFcEheJANG}8(OH0fh{74A}LFAy^DcMnz4j=#1 zWhZ)PyML%^!FS4cj%kiayTI-zwTUSH-tM5k}fnX7tHqV()G0&gjabe4=(6B80fP&YrriTLS`Mz<;S$SmT zY;266_UJLtywvQpyBP0r31#+%!u;0|ZALV|{I~7-?%-S`dY+-BjRNuF&4K+O;FkL> zz9jNe7?|I>%}sZsq6iT~Vj_t**Q7mjE~F{(kPL9`HQlhggo;6y#HQ+;u!Z^w3ijdd z!vyn{bJPIn?+z5po(b6T0S7CE*FxE;YJ{n|M9KdO=z>bu0!N?6&@AYE zTLX|wHJJy{XaA$*xK?L_1h}?H($t9m9;AFI?x0nI$adKB$Non=xB6sgkX($fa`5mUDKPM#enYm+~>9(H-daI zmc(d=-=mjiISx70n-^*Opd&d^CTpek4pk-6QubFK-O_yYq^*5*T4e3R^ASlk?FL?v ze=w_R!rg$#-hNx!YO*_m)xGKxB>!qFDkH-eLfm}yV>&@LAzpL4+=bP*F$T~TGrgQq z?`%k)H}`B7OBNW>T~)Aj95~f!{jz{wwy6nBy2fhSCv_-fBm2Nax}#>&UV#)xJ<$`L zu%?sR4d_vWg?W0{qt!5H=iNf8Q@J}Zh{6mgnOnH}6$fdT(|TqiezvIX)ML{GSbzF# z^V8*9n%f5ACrY^U&X&b1hh<0e?GXV@pKJULXOH1Ta6VO8_o~k?M>#coxOndspwU{3 zz<8xNEt$$vn>cfZ=Wo}=QqDVEHRvx>HHlzex+{rmVbKo3!lj&Ktyd3x<>*XQ{1{QS z&0n4NO&%UaE=A+I}a%=h7|mWFbydq^k;B^4vURCS+@_a07u)~Ox4ogTUD z1C&jAhaSjB_5`;x^zo_i&@}JB7R*9Pr7&y70#m@|dg84zrVcs58&_3mz`Z9;bUhxn z9%XrHSuXC&I{X-pfjzWQhs}IDX$Q>}zo^zpn=k>K@cF87NBn!x@~^CrzX#H*(ueSk zOr$BEB`fc3qC@G}HLa`Vm8;;>b0S7n#b9ttPqm^A|4rt%5XbR_wU2Fx8Q`xuH0X9z zjy8a@6glqaM}fSyBbhK=9SbS$=Vbhh>gAY|Y7JvUy04vPIq5~m09tvz#owa~+dMVp z9CzeK)l@^M_cKMimp4=)Hkgko?Y;%xb3>!Oj#V1$xi|Ap(*?!TU*0sf=#&rNu6Bvp zIl%w$!RbWIbnx5Zn+FGW83ZUjzK7YM`DzTSIz{_E^XA`EBfDD)5~>sjRd48eM0g)J zFs8rpKFrzCiSw4WdIkIFJ;WY7D65atgcaek{;6tOKo$CA0Wfi1k~nrs$V^&FOiw?N zOE>U@c+`KnYvtJ=)0cjP?16G-S2rf#Dqad7&zr!NSGms?sn%q>WSIEI2`Jl$8-c}a z9iYxG=%2Sbi@ww<_J1ro`NbJ22GL6Xe75#@r~c)_iel|VPyNdmw&S!#wi})<+Q#pk z?e`bxE|m2D`8`^~#6i>AEuy?zD~`Zb~0!R zf+J(i9}{dwCULEaNfnX_4_x)n=qg=)k7BP0JFPxmUGzD2Tqk7X<7U}oYSo6j7SpG4 zb&srNhr#$@dNC3l%=%l4JEDq6PnKWN`?Yd0a@pl*<=Cq4N|PC5tud~}&09@|l0y)I zCCBeD>yYySW6Ng&J5hSTy9n9|l&EgivfStbR~z*@f;(^$`jpRY4+$S1F5!)K_l*RC zHmA3T0^d&7OFf-2}nw~sPLL;mei?VV0?`Zv-+%W~K*Vm~HZ`fnuyw>Uqlz;>6-Kb(ZUHdhi`e3|ix22f! zXGZo38!go0tshi2jJ+*9d(ik6npZK7*@E!)FtpC=aT_p6pIr!F(0GJZ_Pv;Wc(4g53lSE{PgGKVIc^hDT9^Ytf;eMmxUoQZ^SjVjV^I;5k`k0=r8zD4!Y1VF2i2zr zxM9^N1&bABOI1!SFU%Ci_&9H~7FbuNYWf<1x4p_4!yi6e4Z_~`X$BFmsNLrnN&W<8 zI*XGmo&YSw7o{A(d({ol3!fZ1&bvRM9T4fg&n(?VR%}U}^DG2lv2m2_6B#`>{w2H? zM&+S?F4O^uWmhs4J5`Z--4DerLSAHe9nP_*yr=vCuMHBFOHXP%h}sU@KOLwwr_qK+ zuCH_O`vCptbafA(<7M~K>Bn?xxaf!*pm8(Cl+_umpRo>YithoU!fO(9lEku9-8+5A zA?wvY-6r=mx1SSF&a-ZOY@SsnyfAE2*dpSa?OQoC(&qWTc1;MZmDAVn39vsU_1-rF zx2KSO*|A&&I^P#Hz1s~S)`rQ@JqIO?RA~&(03GX98fYM?SF#9qbFWKhAM;AR-)H)+ zU)C(TGjFZ+a*0r@J$ORZV<4^I{pb9I83MEGM@~#{?s7MDqGl%ntZ?^&xNN7US5c7q z0Erk3^-5CxGUXxu&6#RURN|I7l(<+5J6~-X&fV|Jxf76|3^c!e`^nM0M8 z0mVyZN|o;Yc`%-)FJU@w9z~D!22od z!%|_(&V1Ke)36_njMU4Id^xmPA-L}l9tl1%o}f?-q-gcyl(txx-E#?tFKm>!?C!H`{K3_zsYT+s$IU(70Vu1bW0V^ZBi9Cb~fK zL)}c)fFq)t1EdlA-^_F58zWPHD-{PW_W}a(4#&@KPdiEwpZKv!v!a5EQgEPdA}ahg zyWX>`4@1m>?Z zSmkU^zWu|shd!@+knHt-f==D-%9Wt--tsc;6RK4`{gc2}0S8kpc(mE?qJrw6*KYm# zfaTUEvrCgRDof&a`xh)SIxP^i!hucz{cVp36Ey42+WGm)Ph?EyNLxPzvDKzHU?OwnR0;Urdj&&ug8SF%=_J?=+5@G=1DEH+GcM z^2U$zJTv5ip2i+16FLXKS_CH`hF^SFo_Lu@;e4XX-X=;Ja?nW%N$8?jfETgXRALyN z%Zn^3o?V%McU9tSZdaz%nZ8@(kyo~^c;B}ibIvft(XIs!j3T{mrZF)T9se6VKi5jc zQ`Uvrsn{==byLqnn{!_QncS+4gs^CsZa#hH>50~>(=|iIX`@ur5s!f~Fye&FDYPG5j?|E9c4yx$=<@Q zo7`EjM&2JeZf*ST!^ijtui81vvF~?x?-(nA$W4)XXvWp&E`E5dM|~% z=3Me5Cm>0Z@*1ThN2iU^@rk_3r%Ns@Jnz)EHrc$WF`;)};S+HflfUfTfYpo8h%biK zUNHT|(bTu(EVsn{n~=56>^Wh1vI!!osF48ZK{VE~tL>lufqhi#*;$(c+fM?G3XhpynTmA*#)1@cV3M z&$E|&cJ$jjJYJ=#A z`O5u#^a6Rk34@zo$8FL82vX{HbrJ5p83!ttz0H^7cfU;w8v-a@=&ITmI^%ieoefg z3cLVFGi_Cld6`N}+T>o>y`W|R#a=-^eRkILWUsFc!m)uY1i7AgHMB9m@%tLD)v0mS zH8I$~Z!lIuZmx8(T#>hwF?v4aV+_{e=f!K9-(8R#`Zn_DD;H};2voA}!`YrH$=J28 zOc_?5m34%4Jdyf5_7~s9G_qe>`xC03n_t(@l^TYx1okA@4OG_=9KM>ae}MORXbF`p zw~FxdWJHY5!gR!E*E4eHbOd&0upicDRo}$az0)3+gEqZ4M=;qYIkSr)!S%$z;Tpdt z{}%G&?>_sVNYkv@0TWN|0P>R70E!#xO(qs7PTccn&zttiHR5jpQgl=o_1wjGKDM@m zl*91YFk}6+N-vkyh>64nhz9=f#o9I9iNBn=j}-`_++Sqn=Fu~aEuM*D5`7uELnbo@ z8juf^%AEPoeoZAPSA^$L%(vxa#-Yd9O+ChM>8*~d@ z=G};xu_X~lWy)jA?e6OnE0C&#vKKZNzjL%j7#Kg6Fj!Q9DQ(9*T?b+yCtea!^i9E? zYqKsQlA}U96k_w;eV!`yVYny6GU=)zj9yAEo)>OTErjEiWCD zy$3YW9+ySIrZobq=Ng05Mbe^|hkCI}nA(%XE3dK^gtm@)$t(_7cf~;SC?aak*IY2kT|s7|2(y6CNvd5|K46MDd@UM=`ncY(~L!+KN+Vk3M#UsPoz0`RkwaZH9uODW1pI>Yhn}35l?>xqV z>U>y(uQ~oheWv8z5p^{oOJ4R=vvEkz!r=%yAgx}8P1Z`n2(-;|*JR6AI~p9S?rq14 zf7{w*jK#^0SXUaCmBj)-O1{4rg1!|Jo@D7TzZJW?88B`#p96~+KN}XQ@vm1dA;rC zR8WEOzLCoWpyn4G!ZA;?ffjq{ZU)ru`x#+ViJ*^l?B{8-+Woh#X)jr9WOVStyeVga2Nhe{YI^i^9J(#sAv+F#-72MOH&Q*o=Lx z5eRG%3dh`(K|prNGPtdzA;GcYsfxxms&Xu5{V}FGIbwAch|KNV=>FXJzipJbZ%q)u#2#u zgU>B2vk8QqrqXNe!+_=vRz9*)HYdJD{knN$`d3*K@ODRA#3l7D$CyKa?B~fw>S12L zayp{;2i$aER`r`c5nrlTtL#a5n>5uwUpAAaI$H47DH3oYV9c4h_@dn@TnmKiNSLwyeu8{GWW*IzhQb#@&-qgd31oe?%1wK5fR&8YNJe)K4m zTXxgMXldgnr*l4|<-Op4p#QdIr#nKqWw|5B3c+VUTB+J+}?EDMCOBo++}8_ zz_|~YI4gH1K!e&ArdN3+1p!1JB8-$lRNd9Qzx?P0jef1(H?SYt(tTUs7wf$I!EZ#^ z)2n)Wr?i7>_?L@7uIt`VoH6}9U8TlX`;n`}r6Bq_>|6nu_m93|$bL5y$-gfh{<3A? z>_T0>cyn3&Or&Vbc#Lo696LQ(pn7z_Rjy^XV5{zOp=zsW%JYz?gPc(xyoGL!AB^5V zArkHVU?i-O)>9UoQD&9_rD%(qM(vfZErE5OJ^gH1E(L0|ak&v?(OMlBWe<5Nr3F3H z@6tKk4V{`evKw*l%16g&iS!lA)`+4o2W^lPiuLWVIOXB@i_ypk#Cfm7$wqimy167J&f+A*HF^p&!N%AXr0~N93qwYfNh<^0&n89 zd5^gAR0M-2(s+ixeV_aSS>{vvm>zsGYr}DkGu`b%vE0PW0T^crK5CntiRlmzXeWtj zPB%)}b@C^23452D!j=X(e;iHPZ0-K9wGDG%21{DTY@3fgDe;)K&uc&bhM9gGpB_0l zAB%jWHWv?e`@VmDo&dmVp9KHm_W?f2bqSvcc-e5q4Vs-JOz194vDa(B&lLV4;z`TA z;#@Foi2tv(LL=-?QxM!@{g-vOMB#P3g3?Z;B$q<-(ngp^qkX|A4AGED#Ry|{&*g_V z^ute6+W3(wQ3RdU z7ZUR0-=YDOQP{?cbju^zq(h*p1Q(ii<*=%SSCXbTwx-E-{2}E{plsLYT+jynnN`Lz zo2F_BTHGBngQ-OrcvL#I`i?!8^&7h`d%SexJD>e?(gby-)W>Sed#Cm30U!XeQMaET zt&w@OcfAU>@7C zirkFONicAU-u3zMD48-G#wa_6dE0(f7gni@Z(>oB&g_Wt78RN9P`h5AMrc_2@K&N^ z{SBa@E(1n&mu@CzW!tD% zKlj`6=Wjxs5oxE$td0Df@*@vC9=>Q9`{(D{Ojbqj!(fBxABa{x!dBJIOWwx@l@00V zlI*36-fjMKWPQe==pT3K-9D>Z95i99vHehH7+9a@Wwu%iX_tLEFSwQUDM!~I#^GrM zzw`dfuGlBq^Eamoy4sp%|23KDxw3dWMXG9c!)U@O6aTiad)SL0g@w>&(sW>}ZJWV^ z(e0WUaW5>{A;Njk{5u%=1;=A;qVzAfR4A0>dsUqRnqINM0>gk4l>+h3h&58+pjpbo z-CEr*zO)U{>bp|DgBxEptzT8ZIyT|hnLlf%-dTEGXq_`7oK<~O_LXBWJKyB`zCPA< zG}l}tR{>C)74-JmbrhajwFS`fdhH_rzWdvPKc5-#wcnp0OX1HPDU^P^!R(D}#Runk10Yc)g}Fq4yz4wez8@8E22paD$3WZM>pEj*5Ie=W8M5s_$M!|UR+yKrB*DchJLgzZ6V zT8`tePxgkV-00>yW}XO!Iesy@$m0&PV@|8c{PBEU6zXEy4TFbGH?I$Mza}XySj;`* zTqa`zq8jdHz3qOdEce@!CPWoroL+v^5h$h+)$oTLR`Ob;z&s#5;C5~ghy~(ZNo6PW zrD0#AKv}nyD-g8OyRx&Rp(rrc#VKt5^L5I^$nHj79G|F)tJ#UId1F+CmQp!wAJ+U2 z>t#JSOMks?`TE3{+;vlP_%uF6)!ZKsCLX%-LQhi!ww6v-jmsFM zoFIq3I0FkG+Ijo4{|*#>Ut+Fx*QYY->_@KbAsP;{Zz2J)Mw8KMlK19*^~J9e?862+ z{7PWt|H9pSMm4>4{i0jl%2pJ%A|g_<6#)?i0qKy~BQ+vuKuQEeM4EtfNVW~6h9c65 zfb`ybBGPM6s6f|sc2p`U9~v46#9^}_WnW~tpAA^oTDtTYIalQ zGMcrSv1_6&7;%^G{g6(a_a0l=+>pOPgYSu!VlCM@XV$L5^)SczK35MSK*c}ZTvr5kMWxk&&A?<<3GwKO zSJV)d_Q`U8aKNvx^fWB0J=5?eStccv7=Lm1p7awTy%T+^r{_S`&urBeI}iN8AGPIq z-{r-PQ}ubU^~HGbVjAhk4Coi#)W9lV@X1`wuOlNHmdKCEn5v5t`YtXu@-dpwxClqT z-QKK@_YT!GJ?a48=@U3kU(9A07}^$*p$NyRgM-M<8|nOgGl|A^TkmvwU+RCbM585K zev2)!1ylK{{bqx;*AkPmxe=Zo8xb?~-DSO`joaYHSb+;JJNc1^2Y101%9w$X1tpEV zfYuv%Rt-g$S9#Wp2cj!GkH>yb&i9HMx0(VOhy7 zsED};oDIZ(04SA0&uV@}4toW|Ky~d_rh^x*GBqYbdNW?{DBPaAB`rdG8l{EltG);y zKhq@Ub*K^?mxea1u$1{IZiz3#)z z?3vdyOg|BGl2`XQvdj6yO({`$u3pLR?nUUujuKaZyOH49srYu3MrA968mnM$AsnyB zmgM+Ec9Y}TZYCZ)Se-;f5+&Nr+C|cJCXoG?ZQ9A|UQVAzw<7nQOOdlBO2cyvG*?_B z6gi)1qa~VJvR3U+=23uWT;Q6>S9+}#I(%U;^C{*3x|^n+lvah z$h)1Dr2PI#wMREbdjE_XdFcN8s$F3f5D}$-?JVAti>$5AbE|QoUBpkEN7A8MtUNa| zQunA>)=0ZUK?}N?-GRb}-~u+BS%az-qrl25y%zN{;|}bGA1WX37rS@KNPO>rAxzYs zo8Z(CDr8h;XdD`3XJ}XWHIAo?dItB~+jhlTm^bv zY2zYMI&HA29a&U(yJ}1#3nE|1z_~D4^ePZbs9nev$xPfqojBh5wi{Ct20BfmdU2@d zFycv{V!x}s`%LZikEpp{1H@rT`X7e#~DO`~qDiaQGTC~DB+o8BZWbMnr!>4Ro!;Drc+RRZvbl7@ zc?;W9hgum~=!9)yN7^@4D z)i23Sv|Pvvy^Fr2kf5M&_WNm^T3d*7-u3W^g~|hoe|5SybTiG)gFDp)dYk<|@tR?=#=@%WsC=# z`e%0dGH>IK%uR8aA~R&8?(82w{K#5qe%l2@h2uyqGgXZK&dk>XvX^Nn%j@a^vr`?x z5UcBw`sa#IxSwY}pB~@jOsUC_G>83o53q$&f5V8sv+`M;**t$)1jSp&Zw&UAhfXoR z@*PR@Nz37T{E1}be`#h$+gS+a7vNX8x|^dN<9mf}!Dlrz&owIcca^X@%;7$svIp?) zn|rz#N?ww)lY-b@%iXn?(&;95Fu#wzum}LAV;5(7nB=)cL_RdmokOuPj*H>+fsX9@ zrfYFlh%t(sCZ8oxnlB2!NaNajdZc1`xe}5*7K7y-juT+pSdrA0OVh z$nHLhh;{_pM@7Syx3q4fdYZ#NGacDhm#|z*`EC8(F#A4`Ql}4kU=b_4*Qj#OZAk*P zZ^+(vlzl;!nev89(-MgN!sYI6&z^z%R^Fb#^CM+O-n|7Y+?fCySR^0cZ@gE2{(s(B zo}2ZwN{g?Ti354e#q@4s3wt3f00FHs%9+L^|s-mMd9E7%aQR?xZ0mm`+AY~+Gt9+-Mv>VV&HU>eQhNtKK?RHM&6H1)#8RE&%7g;bxoaXU;l^p_L1KR-fD zS>@O|*sb!HMBJ2huCuPu$`y2cfuU2|AjewIB6q=ooOG?Bg=;4iohxbBz(ygMn;(UC zR2qbUXaya7`wcb0w)MeGN1xF|Tjxj}ktfBaeb2K$*1vxlQR0uE%W?7j+oBXb=`0fI}UMK#jXld)seNBbWt?W%ECc zYB5$Lli1h9AHH=p*u^e;X2kk$6S_4{6N20r0d16~Rr}mio)W%ova{|G^Ki>J>)4J8p zDRj8~J=stsMD2Ku!1nR8G|%eK1*|d?tOd2$@_U}Zk&!Y9l@oVG*{N|w<0`k%*PUYC zDC}rbpG;(6p88w*1uI30Uwm-fSh$t`%wLsmsp(wk&F{Qfp2CyP#B&zvLlfI2-(=(} z-k<-J^hSUVm~Y#8G?Q-`CnPZ(=o+0|Se^c;ywjug;>!Z-x)|KWoD-EGzudVmhfsr) zuwvH^ft=(NqU;S#9;?q2J$26>Sm)u#Dzf>GLZ|8nBJ(B$;m?xM{Z)hL_pCNsS=*19 zS7d^=4Z!B7jQv7Y5Ueih^AD00pE!zGvv})(7Y25f7!c>X$?&*D8Al(D^G)NLF#UyZv?`l zl zw_>XPSMZM=(7XI8fgs8;C7}{ksrMyQRhO8HcE%U{C)^A3YT_R?SStaz zx}&Goffuy;$j#_c!#@uBd-4j6hiHN5eTsE|Z~|H;U#%Lw`(7Z$e{9d3n|IXdXicw$ zSeiw(!m7OptAba$qh7iHg_Bc{>fbs?@6d;k7j-b(U0etgdDQgTgUz1>_tUr^tw?2k zB1j%dK~FF=Hh1d)bBm-d!OaJoJQJKre)iTbk0yI~`Cg4GuwGHC`o%l`GH_F}Say1B zu8EavvM`2K(3WmHvEifE6^HY=V&S!#>vL{+UQaa`rd=oHlB;XD#?CqYqKQ*>V4X-B zyV=xtePu}=ce*(6mD#eR$gOSBM#7`{?<)d4QlnfWV#EuKxHW0@>P?t4VrA#>EX!U@ zSk(yV07nPl2d$^K`X&{_qHJD|9hF7AqGaBb=1sFf<4D~K*4uxljRafH5-~h7k+w0`V|yo|WXSVv0}a^GN483u9+1<3s8pyh@P3a57TlIn~BU zYxvb3j*sTXO30fpAcc6`ke+wtTLe?L;#6{8SDcWgds%$|-j!m1b$j?o1qdI+yr(e; zsAJmBXlEIRt%wZUd(;!InpaaR-vcgjQz?RDb35MMJ<|4eM`v%Ir=_|IAqJyHHM{DS zBtq0xLELmx2XwxU^9cM&z)w6gKSnY;^rWERms7q!ZKMzP|0evKkkQ4a(D%hdXV)6u z6P%Gf4xbx3oy>_`@2z zPkqWnHCv~#u`&sZ*K?hlRSiNx4QtwWi0XSTz$qYSQ?1_R?oq?z_;GeBH!g(8=VIa? z8tI#j4lOOU%^J}P@4MPLE6R|s4@O)m5Y{LM+H$f(O2q=?m0_(!UopIAd-RcwM}bOM z2{XaoO{c_Ob899%KNOiOWO`VC@zPOa%@a9{Pw`{Hy8VH_<2|SQdz$@N=+$!QN_J?m z7noh<`Z6I7tk2#wCic1sI$( zT-2I4pMT=%We?|*sa6K!bAjdo+M^*ke{^Ka4}0eAs=RT&6f$*gaN(;z%dSB_rQ`L;HyO4M&2jyaI6Nu`?O2-35sVkLkQ=X-#dRw( ztJjtgcVnJ;USA5IcGToA%^N88Rdh!L%p?QMeA6 z7(|>j{HjAote!ZYuxBL(*>|DTD#PsCoI2D@?^dwW4$)-TXX{TiLbNOFqpUW3L`6`2{e>A_IxeS@e&OK0_sO$WLngK#Qt8@Ny<&!_5jmUig1cwW5AlnK!In(i!wX8I`r2{{>Cz3 z#ume}kPGbB%br_Avs17flDNt{a!Lob-KK;@XpX!+wlz-#c^+Vn`5ls{QkvSSeB~Mn zP4YKeJ1#1eKU*L1ku>fq;An=}fw5Zsb=B}=Avsf&AF);UT#RFOn7ifNuOwB{__nHI56AJA6LJ63_ zA~AM{h?FGl09PTY(*cT)PGT2^C13RaT!J81*4U0I*+{WJ#VubXKPf_u0!tfz{g(Y@ zxM>@GaVLOdWhoij))T0`Hu8rGt_8YzC;zk&)3=)TxiM5XM*zcBLNw~+QC|y(wUmn%AnhRVh?HfX{=GCiratsEn za_Vu%mpsFZo>0B39Z2$Wn&W(DR>d1~ZpXZ)nVv(KSGNSJfF6jOH!7rDdz=$!Dim_Cg0>d3g} zb|3YsGIcA<{d?^JQYbeB1$@$pY*~M^FQI@#=bUcSPAW@1IyHWMzL2#QMMnj+0joNX zkJ`NGHob@(5k##e-xqWx$;j|oWQ3ouPZ2t1Szw3X5*-!B!sQ#{4J0%V5%r3L3T^~y z$2W(aV)W&Nf83EO?Fw|*MT-FnGNwM{Kn9FbiqLJ2R|gTo*3s+lAN%&mf`j#(txcLs zZ2pwLyv8H!zI#UVn_uPlZtn17qbmVsl6jZSTzFygCs!FRX{fo<8`;q^G(Nw7#~A*FQq=zB}7XgLn_@A~wrF)%>86f#=dEa7>99fYn1i@nQyw~kS{+jb`?7hpjmBl4nGzC~Ux`B3BD{`JkQQoMcy78WyB(#$g! z6ijwjYJp)$%bTGxw=*6jU)Ul+=10QCSbrKK2LP~FCd*l=fU*-y?Ex>yBXM|xkF(!y zXAZ#o)%{-8u2n{pzW$}87@`vWVK=4Gh5pJP9f`!&Eu`4K zZWBUG5QiL=;B!mw)TU4|E5U#I_hXP(N)7BspnbPpHMRRd)70rLPEih0*W-(_cVz18 z>6KWotn4VU9jA|wd9F%Ge-f-wK}nh5-9#mW}1P)lbK8w3Xg6LOVr@He_P_1=+Q}^3&`?2Tc zAofo0W|*+7o5Y>^4@NfgXE+cSW9>*!ddSDGB}k-b!&il53_45n(Ptzr=JVET3=7QomlFm=|XvYiW3;E$%Zw1>p?YA|mziPIh26QbM z<4}T2JRw^QzfxG1xe_TluE}gMkNnkAvKDaOrLsbx_ZbzF zD(3eq_rz@mMPJ5-wBh&CdACLcpKm)GFd;~{@=q5^%gE#uGuy*UyO}Rf(uw@37BvFl z)DobN|FzEa7-J}>O5%Z5`Q%1kUG?p$?uE>Iqi3xjedLe0B^?~>m$K>~hK#u6Og3?+ zefjbZ2MCSGm9G@IoLa&a>(})ot%lZsJgglhO7guqMc@jAc#U1J)8;>75b{mTWF^;-De4ZP4trv_3)RTSr(LO} z?q>wkWjAeal}vJ;|E|l9XWF|sm1pGna(lh;uU_{77qv_B3;Jn z2bW^|tatwwx4y#}ah(g{Z37}v1nqv?X#dcnWp+4-^*y)-eB>^7jlDe?DAR$+8PQEP zHhfh&XVD(0->-=q*^<$}jwG z!Q9>2sAKACxi+*TFPxQrz3^v)$H{7rE7_&K$%gpCr!%%b6%o5%4Kcg#bo2cf84PP4 z&dI^g@$RS9k_k9-%xZ~_4xXP_T)2gi^F6s z<{V}4$46KWuS8to2-YLQEwv$P-Jz}GVBnmX2d&iE7g{hiX+OUHaghRJWO+_$Go;(eVq zz$#V{u}}n2#LRTyuU&-mSSWU+lpdboMN9v9eKfHl|`rG{&r zx{8G*BKSIJs!h^aCve^K`ynZ&EJh8p1JXb31*Zs}XM)+cdYI59jF*R{rm(uilO@c4 zEhekT_b+*-=AqME^~Y*YZL2hQ9PjFs_)*U0x)JU@XzuHJtokn+MBxY9>ipGHPX-Nx z0RQcOCij2BaW0W}&NU;Iv9sWPweVkRqVWg-BbVE+ap*3J{B)v7dHvb$$-v?fz|@pZ z3u7oS;{+oVG|4A2kaY`|*2CtnjIgf{;Kp6Cb*@NyRr#w1#~6olKJ?8mY9)A;jd!IL z?b0V3^(aj~_JP`;NP(c8Gq`)#ZUvf`#;s+QvR}3={>Y?nMC)Pialrgefk5TzaOI(% zv;L`YB?xkp0U$*z2L)ugc_xpyc9eqrV1(R}{H6T5|WKcQ_6F}ab*gD*84 z<5k|unN?J^1y&k4-JDl)5&YhhbC!~KSE}x~$%8vQMj4{h))P+RutMXu0rNg)ENDKF;cwnit&$~;FKM`()|alCfy8Sdo9dWnj0UY;9D6dF5E9X3pJKIl=DQ2+-c%RTGs=* zg!^h%cDO^n`HGbX8j0*@)Qb++7{s4Am=l!u1uGJ2kq{3NJ?r=D*C&loZWN3{ zu}7L;pf#W0pWe{((x1HL%np4A_^zc{ya9621CO-5f$F<_dIaKZ%-`ZZN)uOVul{eAs0FZf$ui!k683IITeo8ik2U168d&D8f9Et&+d> z0mz{9TC6PV5rlF_vn8IcBj_ZZ-^!(7gSlFY&zoA%ypUD`%^GSJ6 zJL6$iMYD$h;{nU{xzTf#<&4-hp2pS&XZd@wBXb2u-$#&!`#%=b6Q?l*U>nfH_N2iH z3(rH)dT5ni0oP(N9$0mk6draYPLQJ3Kdc>2?Ox5+^Ada<^eCW8L;fmD)fR_X~Z;3G1ECC|!TAwmsIW_Gh{r1QGl}Dph zV}=9ex~+F!hytcs+hIfC`$C#?a%0&=+`yZfaKn&+!N@UD&{wEp(Ge*4=ZczvGjrUm z>-T}8(QG+O&AEGDUmx;~9w_tGyn3Vc(!j=Lvp(>ruzay4u=Clc&JW7B*V4vsa60(c z#n>xigYzf-!L4^3=^3^j@<7jLyP)h*xz`bgW8Jqcs^UpErPAEu^zSytS5@eAZtF2x zv;4MJ0^gl{)SyKneOqKl-}cbf@}rrg!XF6PS!kVUWbW>K6yhuN5hOx2oR*V)=Ker7 zU2-q21CdV8vLw~fxnc68

|Yv-a&rLmR^petgPuKvbJ?z(%z91M7jkXPJ(a9Bw={ z^2Y!fEbIw~A4$vcZTH@!CmYYe?d*;_rT0J9=P+H_;B9D++$mN z*IT?YSpBB9olY$DXWZUh*B!8@mVe;)~DMk!w4TG@apqVL#I#UKR;Y?s3p>A2^7mF&u`K*drp9=qzd zvF+A0wl!AygKrd^)JX0>3;{LYj1HS443uEsCf-rH5C|5saeFi4}0;?ed4hzp7YA6s?Nq_+5t(5l78` z4XYg*@?0@__Vu9heF_Gu`U&iKX z*MA)mB$T~1KWf|L0y}J&iEQaUGIGV{1*Oe5l${l;|65p2R9V_scWHU(jn(M9!bh&7 z2m$Da9TnTi?DU_$O{-(dxh4etwE5N^WSX%i>B{HNf7QJaW!&>&O~0OT*YAJ#&aY|p zvOhu1`A`@DQdLLb*b~>`#Z$!<=qiwnG|Ap3_~M^)7f;`MaQKtN3kkve>WBQxpc~`) zaZlb{dK4@AO{e+R<%e1B4;~$i(@l?4TY(LvRY~f|fLRwD$Tyv&qtrq$HXVis%e?Wf z{fwHCs&-8x_gTx|pGc*MD``0fSlWjBB0Z4AoGSThg!vwZAr#lZEkY}pCb03&L$~6{wWT-u-*9M$REdx`gk1`o!(m?gJ_;`{Q zhY##7P0$DQ71$7urJm&ydbm$Wr$>{T={JSJ!_+As+ldO-nFxiTmnF*yWw~ z?%o?g9qq8x}H9{-s)pgLK|fkr1-VQhia!! zrZWDMVB`zw_DsJ%3^!`nkObOf?damh$B$HBUxj>0L2Kn&@bC-XZ~XAN^28o$k}TG@TO)%56zkL>Ty zUeAX)SaF=9W`_(gx`H>y?0dwB^EK>49Tpv1(@6^URS*yt7T^i>y2hO>Duv zo|S(YZ9C29IL!>2r1TkFB+_g?daijO>nR-|w6_ZN8|=3pyCUBviA_d({1AJf27}+) z*t)Ac#~yCn!h~KOOHm-< zES}|clFTYmZXOstTs)$jjSE}_pBs!<@uR{JiZNyjP6<#fhK3Iuq{2`jU*Os{5CK3K z&RgYs?5CStm4(8vm>+lw;oQves#tD1QT6h(6;=Yl($3p^`KH0s7gc9;K?pkS z5WneOzG+Arzvh(3Gll0(Qhbo{<^2@YjXEyh;`VCuh?jD6He*p*0Izy{r%kV)foNLg z4+ggg;2S&nx9nbReyyhza?U36vx?Er(3%UeT6R-2vzx0f5i9)x9*=TLEJ$ zX%b-y1Z6j$pZ7Q~QJ~C$-0BU8BRYp|qm%0$};Gw(AOG#ZCOl}qMd`u9D@*^c5xcD%Kq_E!~jLr+Yd zBGZHQ{Ff{uY(Wc2C13k#?(B@RRBTF*0w)jFqeb(bIrq>SF-mn&bC^L+NWs0=r2y_O z-PGi5$XmK=h`sPfX4w1mE*sb%Pn@!H>3cv+6(&J_*& zksf(WfUjVwh?bsKn7@KO>4|xYP^fc6r~zW5N7V6B+gXGOQj|cvShrGh254*it1*Sb zqZ@9QnlCbns@g2uHj*F|F0%zKMvi1bLgW=zq#p~p!PD%_3N|b!&N(oUAlpa4RTQgt zFxXj+RnA|nr&TUT_GTAaPo8VTrTJ$Y2e>{GEHSj+3 z3L)7wkfmEXq9}yw32@F*AJ=s>#W6Qp8K66O>M`R*SS~L)^Ej~ z{OVGmh3JRu7qS(fffwPQDSb6)xTL9LVi?vAUHwzkIZL^ao2%3H|MAnJ(X^TkU;Kvv zdrJ%vjzVB%Ie5+2TFEh}WnYA$MWYWV$T5Fujk!DhC&v|YPLsN%UokpbiMZ}(UW{SD zqzA|_ES7MCZ}IK|r#7)9ewOxki{s4^ibWGAnN`G!3`F9H$)loBZj;^OnnRFHxaDlkiQ~Vu z8?`#7F@#^Zfqfn~>|ja)T`e`I8p`gWQSx>7Uel`9e(cmvOUK&3A;pMjJlOEG+9}5T zR^AZ+J1F5YoLm7Y7Dmc>fOv+q0hU59M>M)49G^U}GOI!NSe5ujtdg~*Z7mQx3Wm?= z&@5?K+q3D|+@@f8L^NkL9>ZMhk>%pgck=_gW0UhE2tk#3@%2Jz!XdeMuQ)RaPq(2? zdFqTeCWI$mee6ov>X5szl00GMkpBoyZec{0fgZ+RlZv#e4Q& zqYEVajjVB{q$L;*ks=((F67{tTA*m($2NHN(7ybH#iowuR&yvS+1p}jN_olCC)HP* z9u;DsO~NuLcq@XkZ;@aos6?I8N~KWALN29r<~kWF=M%JG_C_8XtrX5~%}!HhFjvUn zehO_6kF?l4-c@lBmL_3;mc=FGxU*N7LLld00d+ING4_YiTHt^4wO6P$d*juR@F?Pa&NVn*GhE`c$LZ=@y$`X=Rczd@``}iQyyA)95=fF+ zi{k2TU28{Dgaw@56b3q8{{o)LZCC|JKEFy>X;}AoUVgw^X|?-siSfkRhbEWjbyL_! zbK-#xeQXcj4G+7>#1kDSVf9ZJim>|0>OGjB#UTZ)udLjZ7DhYnYpoi5^Qm*^>v-ZT zzu=i8cP0@|DKt_@WE5(6b_g|F!5=dxheQ{oGF|vSir~JLC|p~h$NE;qQ+iK27P~PX znPYq%GAHE8+ry%)jk}tT&&60FJ!)`1ov-ZHaTwrX>RG?O!RngY-k!58!YR#eEM1i` z0sw%jU{#LJ&g3RIlO9!E7!NONud0YtR?LR1P>8F4H@o5rW9zG0b6EFtf>>?C^<2rE zU)r=QVrY@?p?D5aKj$8q$YvIJtna0*R%_OE`I<(B;t(Cd%c9*O{m1u~qV$Rpu>go* zFh2+sF5Fw~;;teF(*UUTbN0cWxDzXyhyO?J*{2%|+82JdW~2Fn_eGqA``Z7AD*sU5 zlZ?1dEBwgUYC~8QoP80zTK9AB$G4-8-6bds+&{TA1AM-=r0)qz(&`Vf|42-Rr7(LTR7h*cKi&U8M}) zf_9u8WH($OjN6kAs6ZH<)VF_({(1`G6pdCLm(#PN26*=V{(N`5mhCGjaa|J`FN2JU zMHurujnY`)n`QUbkAvUve6KU^(+g4 zi~T6zYXUbP{4=eru_OrW@lMTWn!u~40})V6S#O2hLv1o8>#JcE<-A#|rA<`@26!#R zgP;CsCOuf?XO;^~EGWT^9JQi1bxtdaY3w<({sEw+r%fiAADWUJIr~sdzbH{*Zv1|H zeVyj#Z5HjCB9%8Wz0VR)M|pN_ujR)yP{nMAnL@mVyt9pZixNofvvQl=#;t8;;{VTBpG#Fm zz<5aF)X&H)w@y3 zjumHY!VOXeu-{0F+EAiKq9|He9IGC&QveA;W<|WtOUATpQ>ZL{o`qwRc>zD9K8tGn z`;)cKGhEX^lhd|{;zGA2$d&rqUcuYp0BU_pGUSS53av={n_iPM!f7e@{71)m@D+9l zD4<>J2-lpYj?b3@*a#7$3wFRWHV!lh@wB&afTlY-SAUzg+u-B|E=)exSkknf_gu51 zBelys;LihWTqfF7r^Om;s+!>6hwfR(P6fQjKM{o1FzRcX9?tFfzujs%CJU8)=~T?o zh$S$QS|!#=Bd>59(KBN_LU-9GRfe_21%GYd&ZaJMVPXL+)g2P zn*54TRcrC;4RCwq?c_{n?e%a>8oPmIHeuS|3Ky&>B?KOvhZmloZpyl91?y(sIs<1k zNC)m1KR=;xpX?48nQV(NgNhW&2F`u_)#B6M>j|>imKd~mp|@s3M9VfXkx%il6>eVI z9M5SD3H)1qRD~XDY&%3^ge!eFAEHH1e#5RZh_oh-4`S6n$DlV39e`x8i3~twCvqWZ za)rU+{uhV~;14VbAb!#mEkkn{>|ma)Od@B3)BnxFblSN8h3}{%J;m~$F3}u1`yJ1g zMBN+IFq43nZ;X-%6C@}Hx=RPz3`$3u?nxrw{?+lGnB#LEd`5P}k-lK~Py0O?<;}m^ z@5wrww<51RE*#zNO5F}IK&jaTvbVWv`2yJe5U5~J;FgGb%I$~LuAfE{YDW;YuJX{`pc$l zY*P-ziQanBk*&&^eZ#!(GGnhD!BMiG>8%>k2U`7f~rNWw5F4Pc(i}1MCWPJR`KP+1$a^X`0v$Z>i-?@6J)t?WFAk=S!$9XhWn-|AD zAOFZdQhZG5Re;=gCC1>v-vt^jloYvERJvJ#y)iwQF}Jqy6~p zt|yvjuy=(Ky-&xN4&C#c9d}b)x-c6ykEh=n7 zS37Vn+NM0s^sDK-u#((8|KJ}r1n_zVoo4L_Mfr^sy0N;?jTSczW@CCZe3j1rD2TXvR3c4%#N=SU2HFzS`o`LmBgXM# zhlzy&HrpkGKkXJome6X{DwD;?ZWPui6=e}6JFU43W0G+N4It@l6;3k8eU=c*fdDm| zte%m%GA$s9L$IRJ{n!*1iurk-PG=Ix5V_6>?xIE@q6FmG81Cw$HZ8Ds#79T*2o%Tt zrpq=BhsUHWlQA3y5`QpdQ#eB(rSVhgS-jrl@Sd>KdARO^_a=2uns5A@KTWfHJ5OS9 zKrX&^e|avvwTRZ--B$ywzVTqi?C3+$?l1P*?hEoai#x@bf$S6%X#RN$rqY~vcWLQ( zstmf-x`NIoFkBU^Nrx;qzF>r@D30S#az94l4MlI0#QV*)ouULDA;Vc|g04FZOfkBI ztMAuPF&H2IZtwyxl{x=DiKD|`*I!VeUCe`B$LwC6Af!g`TE1kKGGw}XAN}mj`0qkV73hg*a=C##tui(+i>A z&0yfEUw?p92BokDQpNOw)T)nW&=BO|$af(T0!l6rNmH9KdQ@U8r8Ob=nHj>YhCNr5 zbJY;TXe~+Ok%jx4Br3cXqU|Vw&5y^J(tor`_xrVfg3O(tq%oCtV2>!_m&Xxg{I(h7Xlrd%?-VUHr>yndV2=KkdNqddXtD2#>S)S-ffJQT z>k;sk1Xaqq{&X!?4^hsBB#v?6aY$OHEG^yAHx};Er&Fj9*xd?ekzBR0l%qaMv5X6rqqL%-Telmwq*zNy|1@{r14Tj_V*ulEs{h6A z9`FNMh+_^EH|k*OmM)GY0PSp&_W-F2B@4k`iw5*QW$Ci^Z5e@yJ!Iy8ZDcBY(8(RE zF8=lIs5H|ZNxw}pS zltnI5!@sm>SjxiSIqgft6N`*R|F^yBD4IXp)rsA2>8pZQLSVUSlJ{^z4#*RPDlb9VdR@%G;0=a*2sHCjI?Op7qr#-wp2Qf1b=p)^ z;s^YbmzKA8!ASKI$C5Xx6B#PC=R085$pt$o^~WhX-bDKi$HyAzk~#mT&~n@a6}CYy zj5#!8#m6Jmm86u(DFa!|+poWHJ9O6Z{7BW?ZZ7-^zAES8rB)n!Ou*j)(G*Ze@bt4B zNe4u1`o)uz4=*MJta;#xY2@p`vFMX0;)l{50Dh) z(zdhaTV1{(mP`H-?NuQK z=DfXf*xHBsb44YmZTVT_T-B9}FFe}nIt!fFt&8*7wy-JZb6elrJaV0~yJhncZdnPf znfOz-{I=tL7-^cSxQ;d==-OwkoAKVdb$73LI>oaKZ|gVEs24d2SQnRm%e_I>wW_(= zj%#z$FcwkJSI;^`=5-Z9;$gZ9I|C(CdyD$8Z(M+45SJ4dNpbD?gu>ev4SQ>qck38@ z&BxZ_9~xsV30`}fMQA}#^cSgpkL|_yhvC}Wj;h?%?tars5*0qHRQ$<21dNrGBK$e( zvbW#fHogUDPM?K_>S+1NDePR!{#S>G!Cs9D#iwI^Xj%J1-`lZV?z*IHcf(~DAJ6^p z2Cc zcYa+pi<4`Q%3Oc6T!T8WzJa51=XdnK%`eM>?3w}^#ds;JY5?u$sRPe#*o+rqv#9f=}V;Rj6p*6!~K$#8UCGgaAtLf&{Q? z8*p;xnw#uBHd9f6cCul_8wu_|eTce{By^*UBJmWCmDub6pu2cYiTG&9yL3gzCya_~ z7KcDaSm0lH^u1n8(vfiXAfmIO$vAbBZmYHPO_PCblAjvWSDSP6hGKu%kNuh-2Y^8A zyMx2YYo6L@gioy($JIeNJcf}MXMHc1kNQ;G6wtL*Ht{Slxz}r|dbN6@C}FV` zmutXZaB-`h3I!OO&gLp};!3>{xTTTiZjbw|ORLEtx$5#XJ2P>?T63A7@p&YpB!u7e zAfL8Wc&JJsyghNq29we?WRIL4j^CC?>#2n%g%;?{7SMZ8zHF-SIUGLKqYHT3dfUrz>v_Ww_g6FeI&DQ%k`$ixABzTe2PNl zld0OET2`NCTpR}?_*(FnbNDyi(PFkj z6TdO#E5|RY{<`?y{;hr>bwe#)L)*0LP}p&pH=EvT)U|c8Zj)u%rMkafgTJRZ(JfHj zGpp=n`d8xY$sR9~WSolC344FgIA=a>{O;GBRkyDjmw~16*rad5u}nFAo^qVRylGIr zDOouE+GV?7_D_V$tMNPIbqb4xMcDX=_2{KPed{7{bBgk`TKo8KS~pZC)QdaJh{!el zN6n-fYfDczT5les{Jx#yp`z*c+dK2PgYoa!`+oq%ofh<}*!4Q65)a_#_KF-5OYhXx z`z$dn%&|Z89nH8c=y1fJ@Ed&PcToo{L9y?h-r(nd61(GD@5E4l_z*)%{Cjye(9XW#fg^YHk>NklW-vMuRwVH!rsv**zLv zj}44-CodO0thR6jPYJM?vV482irg(GO3KCX)?KW^-4Cy-07=PwgM-zPWk)o2y|$tNkYb5U$W+XNm+f!9>O1+z|5keHO&RlEO6W8_Lhktc_Dy6+p>Q z@Zf?Ec=6*%L`j%|VW9se!(KUSs^$(NE35^q;%q?~Yb+Ed(CJ!d)^om|FeOOcJT=hm`n@HR zPnKVLTimA>%9)a2&20Uwda8aJpK2gJI2QwsUjV9Ok50SZ0o zs%k_AhzDiRrW8%6_)FLP201g{GI@axQ_G#sz0n3Jy6yY^ues!-QNSnc>xDZLFy?f5R8Simkf7nC zA2u})%&sA6?z+YH_fI6(F1!DhUCVg*a#a#i)wmdEGZv}-3^s`BGZs( z{ig<+FXdSIaRR@81^>9h35;=Y;ViPjwP$*83EJU(%W}EA~YYU!ZZ!{HQ1%)@KZTi!hOuY;qO{?sCAlJ ztkZr)!P}maYb~he{X-39$84UQ=M5eVTI8A{(TvkJrk3+%gsG3sTUrmLL~(sZ%<{(h zvb+fPg;WFAy=S}uY4&W_;Z_~H5=tHo*psx`vok~SvU}CvOKncf!IE9eP0woIoKt-0 z4nfq~!g=ed&#YGr9%ZKmQc$Agr+i1Vy1RckxQn?h;il~JT;2Kd@8C`sObczlc=tn#UjyJ zqUa79_c9LtWR*k6w2bcZOg>-8Xdt~yj|#Hci0$dxj94h#a%Wv!W6h5lvA={EIlVhI z`hemuXn?3dx_ybZU}ec)>n6UVz%9D#{H<(8f6FWJ0n_Xy%+BA8xdo9r#&_n94f$<) zaz5P*Bfl#s|9xhsM$msBO<~PUZ{8I+lO>|tirfA9IWL6+lcd;Zh{-C=m7|sz?C|$% zKb$aRrTpD67H-sTHTe>8ag^%%rEfRT9n>Q@R#>`^xw>sD?>B`W*W`QFs+e?L*e2X| zhpih^?Q6@?iV+LgyepO7@oT0=V%4cp^N_F|@R zd|}_YEnZ9d6og;;S>B(uab11HGe%y%Jn5EI!KY3vj+R+UMv-apu7NT@9&$bRD%xwj=gbXG9_<9?J98}{0~`J1a_vuHRKJY1r50QU_q`vGL9zEZwv7rh>L=Y4 zs%lWSI&5AdOUkB=`&}=jv*3Ue7UBBz$VU#RMEQPl@Hr+jHMr3u!2G<&fo@iQ&_A*mk@4`kuzZ=akl!tB0hle72eNtW;{Kf6a z=_zjE%PfW(2XuR~a%R`pwLY+VR%b9(VEu&7w98zdqeoN5J5xTUL&Sy}RAVAGiTD80zIG_1mOP9|05_puL*lc$V*bs}z81)-%D zw?pIiSdk&#A~vDx;;IX>x1OP^7Cq7E4lN)= z*a7^^`fog@pABftlCU^a6hgSOkOJBPAamq~+6g7(aQK=|<@})dM}e%1sfz89N2-LL z)RYcR5+LqWXAdpw-5%#asUMaD83%Cc@hae3;lcru#7Yy<#d7*M;#3Nw?~?uV2DwdH zNORJ|2;Kn+=M%C;Zv@Vd-5W$LK)w^PW~4MyC@dUfOIGXZ~g>rUJ%0&;%1 z{}`J+za>3%<5uOYi+L^R2~{|5)`M2T>B0Gnb9ZdqS*NIVuA9#LVJh^`OfxJ=`nrdJ zrtQs=BQL$KTugvsa3mTs8{pN|)nI(0k1DN%&*U%>? zzu0}{iE2;L?(`-DU%DpmRzd_V{p7Z|8CS)JzMieB&*YXI?IPJ;_M10!f|kaMd(xK5 zy=@VCH1W`zmGx8i)5N(?9lL6@}z7Zcco>k82Y6JN9S^pcj- zd)*lhHDZFY9By0T6T=&_R|qil4dHgr7gpByySN9Y11@#GZy%~v(fLk5i*Q%6%$u~R z1W(0+!I%~a9%K>X&XwfhP$a-F!|$T9z6MRd82DsK;sll>(P8vu5>Z}jA&Yl|#S9y^ zvN&im(4Jxns>4CMvkN2L08RLgu-vY$Y7KW!Ts|`u9?fn)qDkCJY1JS93itB)ldUZC zs(?vPM#$zjXP;+XXpv%|edCF+$IJ2%cw0a0_Gp~6w9y=Nw1hyV~HH)jP-?8f$ZD<+0B?w_b}?ki_YXT zxD&oZ2x*t=Sp7##D^Tii1<(27D0-lqA`;My_kYIPELhnvk|CzI>;;`XQpQMkq;n{- zzb$F;2roVdjQ|yLCLKXui-Fd<1U?5$kgA{;kZ=G%GfxN9@)XJ62vEwQX;e%ysB+_A z{^@ci5YX`G5CXj>_zcly-dU*KPp-PQ$Vt(tK5Byl7dQ+TkafINEzdy!ZQtz7I_|wL zSGOJkEOK96f>JB;yeMbE#F*Jpmu1&5GghRD39?GdZ*k<7TJ|moyWf@ z>WCTy(p{sj)VW3f#`f-w(fc-hyI{?3Io$O_ z>$pG(2bC(ofexmq z6~QNy-w$xqa>*o5y*T1N>Jpjkv#9N2t!Z85&xk~+T)9N1!NC3+GL64Vn1T60xK`LH zS)$R}3@>}bVpz3LI?)51$fbOOEu%F<`8IwMzH!x`s-N!diHAMdGZ0_fkh)*8&Q7wS zh>$ALJgqLwrck?69d#|DI3mhpKo(Mb9KNuM`wv! zakYr~^1#H4B9ELaXJ!95c=L$_SG9e0!1E{{h&j@>=7-!DUHFsog0Djy06}Tt?($bQ zgzuntNA_sS-rsuO6F%YcUV+H!ntyU4p0^waHo}%$PFF0M>TXTP-W06{J=gsi!YzCs zvopZkzXd8DTKKc!AHdu7`_l^rySkd`y{E;blua{ z^b#13|1jFH6NO=(R$@mG*dH!3>wj-qKuu0Pl~Ap^9nAH~e9^;S)Ia zv$9@+hUcuz=n5hX+nI&GFykb;UyP?a-Z-bt#(}=gF(=3WC~3>o<{(1z#78cA+Pw|z zdFAnJWf!vHK=f^XdTPuHU1#;V*@TJ>ZlN!SSC~GgUhP|O?M70q8@HQIP@O)v&ZG8U zSDmfy<m}z-#T(ML0fE*5&wT!V zg{_*RbZGX1&-Fn&_D}~64Zq+4gK28G-rW)VYP$gQDs_TaI2DTJbHGiRTf8;I1$lG zocg(pU;7V}hl{0Av=4aJ+YlHX@$5vYUO|{a0VC7t?pe^I;IgvO2AWp$sF7ccMy!JQ z;rt(2Z#cxaB@d+0QF*6e$}RV4WO(@V@Zy3fCb1{)5bCHC__IOj{IBLgf=dN#nEDv` zo&1(HIBd{F9%LEBtK~aCLCzdf-6rptHt;pJeSgoJ+`;p3uRFe!@f6iJcNR~ zu{ZUbyriB3+k)_hNPT2b=o@&*ImQ9=b6c{)n;}Ryd~v{0W$vpQuzX^>=%S7nLLB}J zj4#O{3r&~GdgFRhqFXkJm#(VV(Qnq3j_OoMKQRps!A>>c1Yzi{?ZnR2h)>47q?#g~ z{k*(WZdnp{@_EbQOQDmIxh3vbjDlWJhspM;C^b}P%{n4xs%@Ym+0Fq051AV{BzySQ zTuXr^>WWVY7F21$|8+>aDS<=lEB$9d(wG-leJ)5$swmRA775~)!f1A`xCu2cnk01P zBl-E#U7EKV#t%$&aNSEuNkv)gj%>51W6I!?DiT0P*lmMNxIm53J<-U58-14Fh3G4Gty`IA&SV5yDd9K?2~zPiLYdx)&I1XFdcuKFZ$S2Jc?2`b{ZGIJtAmQN7QUSySN{_!-c09RO1 z<cyc>3)L{u99XO!2jmkrG{sA4Vtu-rC4eLbYNal`GL@Nf?N(F$ zN2L(^4tht4T8-XJ{4{KPo4}fN7CLDjZ6fK<$>=Ou63>%f`G+|58;lwAZsgW#Nm27r z`c6SEks(9e>y};nLQZ>?a)7;0)r~5D^HMR|@bMqy3X#bR*0(hemrK^>n=D+w?Bte@ z{9MMJNNv?IqLcvvx<-A6`?gAKw{FjQ|DL|1&Lrf}Z@O=pGg4zId6XGwz>Mv$?lHN# z!G2S?n9ztv$C4qX^*!SrKQ5E&YtWrx>C}|fD3&L|_uVDTIx3Q|=mIR}2nn)U;jJ}?fye{vwiarLV4OO2;43$v2tp2$AC{6)a zZkg7(beq8vzmr`EII(|1&#b|I7-EK4!MthFDKE-<_BWNG_(xFEc>1t!;uR)N_N!y5 z;vu8E3O?nzMftI#?tZ7j(8_dL(GU(gk;CqC?QHNJSrqsSJ42>R9Yj!ahd0ERNxvhi zI&fhJN_4#>LLM0)Z=p*>_co*F2tqw!Bn?D^LYl1ljSv8Rm>jhBVc|qK7=~0BPl_c+ z*qNyz_zA73c*Z$2pPO>Mozk_^qgGek9yfDp05H6a7$#1yb0j--^wBGgmMQ^W3HM+gGnr`YgR_J~OgjZ`;vLv~Je(^nVh49}O`eSR*vG{a{m3uypjQ(JL!q-dXIs;NyQr_B=E>h3LKO%&fmZ zO51$)QACh^lG!-V7D6Rg8zk>3QInAnL|`0rfjxqi%8yv$*}M7ZX-~btmZWs7`-_^= z$L0Cq-Igf-rCr~W{Q3Q5Pi&_>;|vgF`GS7lqRyrGZ7I@&X#PAIJ|@-2c42=XrdJ*6 z_3y%arrIhz0ZDUwISLBZ+!Y__OMA!hdz#IpLPb73X0eD6gsriFrqrv{))e@s>Y@bQ z#6krm@>woQaZfxj%|KqzABmY8pagX{VenJFj}1*Nh~c7}ksh=PYdx|wKH+r0sNw`K zz-f`otO%GYBWO8@>;1*6#%CTOmm6ve&?6b~bVXD1ZmVnf-0(8v7%BFmmB!F-*;mribv%iZi7j3P0PV zrF^+OZr6=Ubwy3C5*9#1u?xG-P^-{{f3aejZ{0s&DpF z-->A(fLw!{@1%H-gGsFY1Qbzz|8dOAq^{je&Ii4(~Z4@GCm=1lKCZDY6 zpKWbHk4+}%BR<8lBIOAHTh>P)c?fvXvn&``BJ(CJF$vf)cZ6iVlSq)65oJlVx2@<^ zokKl3_9e&1u#F}5R5+ld(K-@1X`n!t%6_C=Zm23iJMiuSX3KOcL1aY>lf%G|6mN|n z1xyY37B3ga(IoXm+A;+%3yTG3_u4sUKO@Z27RQ7zOdrvltay*;^LQcD0gIQ8tBV9b zzX!mbNsf}VpFVgqT2Rpm8ye|=i!o|JN=~fi&_XBf!plwIizAyo%kJE}c=;-aAKZ{L zzksN-@(`=oxCXQKdeA~fm;@Y60Lrk|^cTD-$&&VB( z?`=zN4vt-D{GJ(fN>0tAHk8dhGah?6E8POUCeONTVZcy*P7vd*x2zBCH_Z`>U;=C7 zw3ETum`PkJTZGmU-cM4@$!WF^#xY!CwhQ}r zLTARtoZ=rd)%S9Pyw$@nuo-Ps)j1oBctagHkG+~ntf+xlTjdDNqED@^-=Ih9CJeR8 zXcNqJZ%p&FpJ$|J?8tdWUw%>eq8WW^039S2mDYgvvF!aFo!73du}eS#<*#n03_xhS z`}ROoMBVX0&pJin$+fs5$aw{C@R4i}jv|#&IkiGErv-aeirnG|KL;@xZQ@@?4~cg9 zU_@NXA?r`2TJL)NpWU6wHftRI)hOgQPyW9*`eyp%`yQ=1S10_mPB`_uOrlZnhKNlR z&DFE3V1knBt zjPF?3i&78def!^UnweY{35dxk!W0H!r8fEE&w2TMR$7Q?kMO!lN`IH-weCbum&7xB zm(~T3>s1NB?LA~#jYJ5V(ddy7vnHzk&k$w(Tz0W;x~jD&{2aQ=(+h$lnh@2h9kM>? zEiJ+$Gi0IE10GVc^`T>A6ph>QTugEvQsVs^Q0J$lKqb^FzUG~;E5sO`rcudfau952|^9|2@)ez{iY1%BrhX|+1m zxkMw_3LX|jZSZtI?UICT{1Q?;FpvGc)JH|BXWhYv!SyORAT==wua7ME8Dp83&^LE* zTT3i09Xv}Bk}?GJo-I>?*c7ci3y9sv)!_YxU19#dT;EUC2atg+&AB&rw~g62b-Q~h zB7pXI1(Zfz&*GOaQI-=gvNZjdJ(*s!_e=0Q*VQw`7n0)jiPmRVb7Iadcv^7JEB(mJ zGp|vbY5O&?Z0WoylP9ZzN$D9IflZw#X-24U=?F<)ymMFBhhnlOn{JD*BjBP>vU3j# z*GK60VTy}x(+AYS7-HFp`K$++vf<`MPo0qgh@aDb$LiFiJLxY(qrg{@0k{)hcT|(Q z-*O-dcnaW)`!aBA8cX?5ItxV4?&WRG1bBq-Q(cX-U9WkgGugdaE`#1~Xqixnu=~~` z143X|8ACEv(#AddSL;bW&_2}DjJHxLU^4OSGDL50cZ}Yd$5?OCo;d-AS zLtp)0)RcNiL~I~Tap1A?baxGV_AHsDN_!w;?K-+%Gd=WZlWl6etCI+$X?mI9!A1P9 zd}szIWi*~x%@U1w>T2EvSF7H!B;9(Rb|l%cq=%Or{g%lsfbe#cr*3<}(*+-r8qhES zo_KoN^^$}DxiuEcYF2?HrXou_^acmAtNJN_Je>_BmaNcWo05n!}TG3xAl?d5h!U&Q1$n=V_i_$4zoMk@|z}Yu#sI zP<5SJ=CpkgTZu61$7aQ^e)QBjpI~4WBDfLc+~wW3f5B(%Y)J7GhmSpx z)*DD3s9rzjUh3|A8uFsEW_V+;(N5d&(i6UOjDGT?r}7C;hzUiSXSm##Hkjm_TP_!p z@K*GgmdI%AVx|1{m+k^{;b}kwm1I!fewX4-v)7bqe63)0<&T@Zm(Qms)HhCHZg$so zIrSmgsgVA8snYlnO!)|Dx!i;_%1jf@dQt|^SUpa@(t^6b+};Fd*V-Rn8bQsbF?OYp zA+QG6aHZ~#Ag1BgS1CzrRW#~sf$z;Z_9*dXz;79HC4u*G%u*zCt- z?B|X$0X(RcIYRUig}hO6(}TQzSuB5KZ^`JXlrV>9MB36TC$}dNJ05oA7%?NL8FAi_ zwgCc^B%EeDK>j`nT{B65UyLRTN&C_xmo$j?mjm-7!4aWnogN#6%KvKa1S|78VauO{ zV+73!6f<^*pF_PI?3n^)e}O0ie8>%w5bc?cejmUuFnyJHS}ygpibpqMV{?PiLdO2wX5bm8=@* zbOq(Cu%0hT_1@Dcv+K+nBqlG`h}K) zwLRw<9XRRZ+O7Ebvy{@e19Syh{wlk)C>8%s^}ZGGuMu0^z4z*o{mkqB;v_n$?X`T_Xu%KAJbIB|j*C;p~3bo^pTld7M->GKnwkeyJqs+ z?pxIB$E%jvEVXA7PE2ymerm>vbKg?WVUZD&zm|09^0k^@SMvtLK>CCJNZg665NJ-v z{*CN`%D2Skohrc+{krUjkBR2SK$4`VrFypOEGDAFJK2)=r%7{;OckpUKMRGFkk8mG z{@#E?C0Q_d&<#wSpdf@#0@d|xbx)J5+{Qfb{|e>V;6X1WM^^@I$t~N9Y2Nx28r-Rm zwV*my5SVol8p#08@T@^u@}V=1F_82N^0E3e_qSfvjP>{iOn1m9`;JCN%$00r3gj$S zLRZ3&ZDW6SuEFK0L|)%f``|_UFh90Gy}v!29|{GBTlN^&D_Jzo|Bps196~f+vZ2sJ zJ>BV?tgF|$w_QUu!wXUen+EC^t}k|4*bK2oyN)|4{{YI1t0mK&sQ8lrpICaKa@e!) zJfo9Gw^ii8G2!i20ptrV0N=-$aE?7NczBd{A1V^_91HBPE=r}k#PCn^%SOSeU=5Lo zq$*8d@;RCs11{|F4O(a!y`F@bYC*I41Z5Ck= z8ymhq<%#u~Te6t`;vDqI@N&{NtW(GdONM)OA0ML|82g6`gOFuPC=>WktK2p54$1(d zaDRp?S`n#k-ackwSDm;ge!!8R=-GIlA6(aw^)N2-;zLj_YYE(yNMIPx<=RxSDn#f40stlw>FA4@-_GHy^T?O8W)Ey|nA4W_s_$ z_aU><2gsc1EOzubhtBtW%K5XW)9~CL)bToPdPtkEA(l-nsJg9eq>e5SB~KlD$5Ze` za^@Da*nU1^cJG`d5|kszP+1|nVQr>pM%}3XgNQr5VTGEfgzA%^du}-*#L>5U?6w_s zqCaeMpI{%U+wffswCh@}uMHw~jbDo$=e6`alAidm6WOGlxMsBO9`dVSg)2Oe!`d|( zDl->NTGTQ}98G8L#K2u1S^VopR}xfrvyquLHDA|j zox@F?;6=G}Qq9jy@!nNfmFKd~xYMKjptXEM0}J291lM@#G|hT}c*ssQQ&6>eb%L%} z%i?;9buT8_AZUN}Rj;iCT0^dGdy3sLKSfbCL9!Ts{EFLN%f$tsE>z3g_S2Qd@N?xv z*-}lybXi;**NRS^IN)OB#lG)Ob}Ddl<1#8tdzVwxGH`5mAO)}Ti_|Br`6?)2um7f^ z<*u{tI4=8wgI{{Wx)$ko?%iHXAA(DykJD3YLatrIu6H*|wDoJt)G%^M`f~}>XYV} zyhxkc#8>$XavSiGtHV02jvP%gbfw{s*;GuQYUw|#B~3!?#!BF8f#8|;!RfZra}pZ* zIS4MhIr)=mc+DPAt|WA`umqFYGl&lwM?5(j*0o zw82kAs>_n2IPQ=L6Z>~rsQcV}+4zlQ{jhiOW0Pf^lDpCam5R4xmgh2MM+LhS@O8ei-_726YoL~wk(uAnw-U=1CxQ0`(>!DV}?EqZaNX?DCx zvOBGJ`P2nT*tEr8N#9B!KW)OwSZ>uXnbQxzwg-dP3+KQD|zxzy>vxc20=a zh#fiPgD_P?EQNE445(GJc1${L1Z-UoQ6}gJwVZ+gmpGtC#Uew53IzFKn3M*fx&ZK# zacExtA3{1!EsxybSGV{-&Vjf;LOQ6H(-5Gt`j;W?WdJCXX@o*~@KO5RpUv_>^$@7J zYa;%|Df-s<3VY%+n?fy2(a2f_R!0EM0-Y>Re-`>%t*>hInO1V5L|@+)Ew009{+TH_ z0_Vj#anQ3d#koNix%CGCPNAf1d|hT~|NQ*0loCQgsArh<=UqX;g|=0ujEqZil}|Du zguN{+zR@&-iT3JnapL=&lq{O{k!wVcThf|7NHWH1qnom6)W_xLT8awY_a2aXJL0QN zC5gfvQRAH{8YwLzdKOytr(A#;7s8^rB(ff>{6^2_%H(jDZBoGw zWW}$8n?25yExpw}gH!Z(JHL5Ds~NoD;t=-kf@H5dz-OJxmpy~3k zVe*ov&#N zPke5|2KqrOy?%Y4;Nm)dZ?*_>3kYC`#Y*u{`VZ01n#i0ZD~v+qgHJObPZ+;4CAWQ+ zob7OV3`zV~(y{;8fO5PbKDrlk5?b};Hqjro9wO>)o6b&+yb5m^_cQ{7BedNMzHw|5p z!mVpxpR4*HkZ_W+5#gk1roOunQF@Gn7J93u`pd~19dx!@FkX`_gRsM^Xm-A5GvXkT z_=CN(2iJ`V5p#vr?h?I9`Z`y7e$qAaLi*F;9L6yRSq1_7hrCEV z=AOprLo35hwlwAKU`rD^H!B{`1mK7|->USfpYC*`)mT6(?(JlK5@P`f?LiX3MGJLn zQ;C_*e1CouCAp~ZTB0r0h~YKuTlB2HG2PECoggW+2ok@IjN)x@^%{5=e;RpzY-suX z5{eOXl3ZSBA@XqFTY8lj2DFrV!jw&>F1@p2CzyQcis>o*w^KXS<)nxP^2>xqsIJ7T zAN_Ef>`+a+VLsh@u1?xYMN-tV_*8_iL1Sv0y3egtn>@cnR(!$HIl~_@CmJwBMRw9=v z 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

|FW{Lp>-55Za%Qb%gOofko6P!2mO{0} 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�A%{9_{~du)Ltu<>~n7j!SoeHNwD>2#UO;jlK*-<2b%b%Fsw;jp!p~A6to!`q?3LAAS>b zdf)x);U{9*r9JHKXlpZ@dTV{(fc#~z6ntoe#l*yhK79D_F)z;nC*AmuDW<=C^Y@u4 z9Hw?*u3}?leP38uxUVNZ^7nuF(I1BSzsZF*oPi}<@A4*Hb zks~7~Y-*6#{;*H~{quhXew@h)mJ>~{hJ?%;DWY}f&K+N0{w0f_l+S&yD-=FdSIZ#> z2j9|p##B6B{9YF7ud^F9XKw24?Y$o#A5T*y-*1k0{@E#9{W!X)x$Cdves4omuAbB~ zFo?H*@Zfn?Ru-dPq{Ux%=${1Ow_{F``Bj#trlvmTZKeM_tDDtSv6YpThBP>^iT~pazR6El*CDV4POQ=YZUg>y$_jdP_c{Dlzbwpr zNlgVa$vI`0^!;i7`5~NTzpGMR2t$M#&x&(Cg7Do?=`VA+Sqeath0m(E#y@Y@pP&1y zG$>@!-lrTNbCs&SbN@f4?*BnLgIpLvFcm`2b~IM)L&Ca4{$E7wyL)k#FUYV4T2LSa z4p8NR>CvB`08>+Mf4?OnjE&{Zn>UlC5aQ2*1_fo>iF2M35)z0nN}TKfH*l9+3jKZ< z^JiIAkffcULIX{@1$?aru~he`bs+)h0t(1sUtb@0*(JK~FRDd=?Pfrj2{@|82uR z2;Se;|J(dhMyQ2LN=kr>#m2@43|pi@BF)db=#&@K z!dyz>ZQ<j7GSof`@-pESH72I``aTFV)s!zL{WQt`>Q=wMn5+J zAbQdV79$<}F$$wY0RN>>V7!fn8WW^2zom zo$Z~l!1pO=>>U_vAP$E~{^obm3ry8ym(1mDb&0_{Fv zX2%f`5nt;UDhtGCte>ZT*4N{m>3&lyA>R!=P)<&Qw=Z}-)6X5P1xRoil`1)o z|Lh9l6h2UnvKHEV)JpazzkKK{FD1n=_{kKM99nE}>pyK9BN>}$s(^V;1;#b)sHM

dkArLbv*&F-!1Up?a-oQKRrkk#p4eS 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 z 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

b)7fNH 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 diff --git a/Documentation/installation/k8s-install-rancher-existing-nodes.rst b/Documentation/installation/k8s-install-rancher-existing-nodes.rst index 3437971238ffd..8c7155a68b822 100644 --- a/Documentation/installation/k8s-install-rancher-existing-nodes.rst +++ b/Documentation/installation/k8s-install-rancher-existing-nodes.rst @@ -25,7 +25,7 @@ However, as Rancher is using a custom with independent release cycles, Cilium power-users might want to use an out-of-band Cilium installation instead, based on the official `Cilium Helm chart `__, -on top of their Rancher-managed RKE1/RKE2 downstream clusters. +on top of their Rancher-managed RKE2 downstream clusters. This guide explains how to achieve this. .. note:: @@ -33,12 +33,10 @@ This guide explains how to achieve this. This guide only shows a step-by-step guide for Rancher-managed (**non-standalone**) **RKE2** clusters. - However, for a legacy RKE1 cluster, it's even easier. You also need to edit - the cluster YAML and change ``network.cni`` to ``none`` as described in the - :ref:`RKE 1 standalone guide`, but there's no need to copy over - a Control Plane node local KubeConfig manually. Luckily, Rancher allows access - to RKE1 clusters in ``Updating`` state, which are not ready yet. Hence, there's - no chicken-egg issue to resolve. +.. note:: + + This guide shows how to install Cilium on Rancher-managed Custom Clusters. + However, this method also applies to clusters created with providers such as VMware vSphere. Prerequisites ============= @@ -59,41 +57,78 @@ On the Cluster creation page select to create a new ``Custom`` cluster: .. image:: images/rancher_existing_nodes.png -When the ``Create Custom`` page opens, provide at least a name for the cluster. +When the ``Create Custom`` page opens, provide a name for the cluster. +In the same ``Basics`` section, expand ``Container Network`` drop down list and select ``none``. + +.. image:: images/rancher_select_cni.png + Go through the other configuration options and configure the ones that are relevant for your setup. -Next to the ``Cluster Options`` section click the box to ``Edit as YAML``. -The configuration for the cluster will open up in an editor in the window. +Add ``HelmChart`` manifests to install Cilium using the RKE2 built-in Helm Operator. +Go to the ``Additional Manifests`` section and paste the following YAML. Add relevant values for your Cilium installation. + +.. code-block:: yaml + + --- + apiVersion: catalog.cattle.io/v1 + kind: ClusterRepo + metadata: + name: cilium + spec: + url: https://helm.cilium.io + --- + apiVersion: helm.cattle.io/v1 + kind: HelmChart + metadata: + name: cilium + namespace: kube-system + spec: + targetNamespace: kube-system + createNamespace: false + version: v1.18.0 + chart: cilium + repo: https://helm.cilium.io + bootstrap: true + valuesContent: |- + # paste your Cilium values here: + k8sServiceHost: 127.0.0.1 + k8sServicePort: 6443 + kubeProxyReplacement: true + +.. image:: images/rancher_additional_manifests.png + +.. note:: + + ``k8sServiceHost`` should be set to ``127.0.0.1`` and ``k8sServicePort`` to ``6443``. Cilium Agent running on control plane nodes will use local address for communication with Kubernetes API process. + On Control Plane nodes you can verify this by running: + + .. code-block:: shell-session -.. image:: images/rancher_edit_as_yaml.png + $ sudo ss -tulpn | grep 6443 + tcp LISTEN 0 4096 *:6443 *:* users:(("kube-apiserver",pid=124481,fd=3)) -Within the ``Cluster`` CustomResource (``provisioning.cattle.io/v1``), the relevant -parts to change are ``spec.rkeConfig.machineGlobalConfig.cni``, -``spec.rkeConfig.machineGlobalConfig.tls-san``, and optionally -``spec.rkeConfig.chartValues.rke2-calico`` and -``spec.rkeConfig.machineGlobalConfig.disable-kube-proxy``: -.. image:: images/rancher_delete_network_plugin.png + While On worker nodes, Cilium Agent will use the local address to communicate with ``rke2`` process, which is listening on port ``6443``. The process ``rke2`` proxies requests to the Kubernetes API server running on the Control Plane node(s): -It's required to add a DNS record, pointing to the Control Plane node IP(s) -or an L4 load-balancer in front of them, under -``spec.rkeConfig.machineGlobalConfig.tls-san``, as that's required to resolve -a chicken-egg issue further down the line. + .. code-block:: shell-session + + $ sudo ss -tulpn | grep 6443 + tcp LISTEN 0 4096 127.0.0.1:6443 0.0.0.0:* users:(("rke2",pid=113574,fd=8)) -Ensure that ``spec.rkeConfig.machineGlobalConfig.cni`` is set to ``none`` and -``spec.rkeConfig.machineGlobalConfig.tls-san`` lists the mentioned DNS record: -.. image:: images/rancher_network_plugin_none.png +Click the ``Edit as YAML`` box at the bottom of the page. +The cluster configuration will open in an editor within the window. -Optionally, if ``spec.rkeConfig.chartValues.rke2-calico`` is not empty, remove the -full object as you won't deploy Rancher's default CNI. At the same time, change -``spec.rkeConfig.machineGlobalConfig.disable-kube-proxy`` to ``true`` in case you -want to run :ref:`Cilium without Kube-Proxy`. +Within the ``Cluster`` Custom Resource (``provisioning.cattle.io/v1``), +verify the ``rkeConfig`` section. It should consist of the manifests that you added to the ``Additional Manifests`` section. -Make any additional changes to the configuration that are appropriate for your -environment. When you are ready, click ``Create`` and Rancher will create the -cluster. +If you like to disable the default kube-proxy and your Cilium configuration enables :ref:`Kube-Proxy Replacement `, check the ``spec.rkeConfig.machineGlobalConfig`` section and set +``spec.rkeConfig.machineGlobalConfig.disable-kube-proxy`` to ``true``. + +.. image:: images/rancher_config_yaml.png + +When you are ready, click ``Create`` and Rancher will create the cluster. .. image:: images/rancher_cluster_state_provisioning.png @@ -105,116 +140,48 @@ Do not forget to select the correct node roles. Rancher comes with the default t deploy all three roles (``etcd``, ``Control Plane``, and ``Worker``), which is often not what you want for multi-node clusters. -.. image:: images/rancher_add_nodes.png +.. image:: images/rancher_registration_command.png A few seconds after you added at least a single node, you should see the new node(s) -in the ``Machines`` tab. The machine will be stuck in ``Reconciling`` state and -won't become ``Active``: - -.. image:: images/rancher_node_not_ready.png - -That's expected as there's no CNI running on this cluster yet. Unfortunately, this also -means critical pods like ``rke2-coredns-rke2-coredns-*`` and ``cattle-cluster-agent-*`` -are stuck in ``PENDING`` state. Hence, the downstream cluster is not yet able -to register itself on Rancher. - -As a next step, you need to resolve this chicken-egg issue by directly accessing -the downstream cluster's Kubernetes API, without going via Rancher. Rancher will not allow -access to this downstream cluster, as it's still in ``Updating`` state. That's why you -can't use the downstream cluster's KubeConfig provided by the Rancher management console/UI. - -Copy ``/etc/rancher/rke2/rke2.yaml`` from the first downstream cluster Control Plane -node to your jump/bastion host where you have ``helm`` installed and can access the -Cilium Helm charts. - -.. code-block:: shell-session - - scp root@:/etc/rancher/rke2/rke2.yaml . - -Search and replace ``127.0.0.1`` (``clusters[0].cluster.server``) with the -already mentioned DNS record pointing to the Control Plane / L4 load-balancer IP(s). - -.. code-block:: yaml - - apiVersion: v1 - clusters: - - cluster: - certificate-authority-data: LS0...S0K - server: https://127.0.0.1:6443 - name: default - contexts: {} - -Check if you can access the Kubernetes API: - -.. code-block:: shell-session - - export KUBECONFIG=$(pwd)/my-cluster-kubeconfig.yaml - kubectl get nodes - NAME STATUS ROLES AGE VERSION - rancher-demo-node NotReady control-plane,etcd,master 44m v1.27.8+rke2r1 - -If successful, you can now install Cilium via Helm CLI: - -.. parsed-literal:: - - helm install cilium |CHART_RELEASE| \\ - --namespace kube-system \\ - -f my-cluster-cilium-values.yaml +in the ``Machines`` tab. Cilium CNI will be installed during the cluster bootstrap process +by Helm Operator, which creates a Kubernetes Job that will install Cilium on the cluster. After a few minutes, you should see that the node changed to the ``Ready`` status: .. code-block:: shell-session - kubectl get nodes - NAME STATUS ROLES AGE VERSION - rancher-demo-node Ready control-plane,etcd,master 48m v1.27.8+rke2r1 + kubectl get nodes -A + NAME STATUS ROLES AGE VERSION + ip-10-1-1-167 Ready control-plane,etcd,master,worker 41m v1.32.6+rke2r1 + ip-10-1-1-231 Ready control-plane,etcd,master,worker 41m v1.32.6+rke2r1 + ip-10-1-1-50 Ready control-plane,etcd,master,worker 45m v1.32.6+rke2r1 Back in the Rancher UI, you should see that the cluster changed to the healthy ``Active`` status: -.. image:: images/rancher_my_cluster_active.png +.. image:: images/rancher_cluster_created.png -That's it. You can now normally work with this cluster as if you -installed the CNI the default Rancher way. Additional nodes can now be added -straightaway and the "local Control Plane RKE2 KubeConfig" workaround -is not required anymore. +That's it! You can now work with this cluster as if you had installed the CNI using the default Rancher method. +You can scale the cluster up or down, add or remove nodes, and so on. -Optional: Add Cilium to Rancher Registries -========================================== +Verify Cilium Installation +========================== -One small, optional convenience item would be to add the Cilium Helm repository -to Rancher so that, in the future, Cilium can easily be upgraded via Rancher UI. +After the installation, the Cilium repository and Helm release will be tracked by Rancher. You can manage the Cilium lifecycle +using the Rancher UI. To verify that Cilium is installed, check the Cilium app in the Rancher UI. -You have two options available: - -**Option 1**: Navigate to ``Cluster Management`` -> ``Advanced`` -> ``Repositories`` and -click the ``Create`` button: - -.. image:: images/rancher_add_repository.png - -**Option 2**: Alternatively, you can also just add the Cilium Helm repository -on a single cluster by navigating to ```` -> ``Apps`` -> ``Repositories``: - -.. image:: images/rancher_add_repository_cluster.png - -For either option, in the window that opens, add the official Cilium Helm chart -repository (``https://helm.cilium.io``) to the Rancher repository list: - -.. image:: images/rancher_add_cilium_repository.png - -Once added, you should see the Cilium repository in the repositories list: - -.. image:: images/rancher_repositories_list_success.png - -If you now head to ```` -> ``Apps`` -> ``Installed Apps``, you -should see the ``cilium`` app. Ensure ``All Namespaces`` or -``Project: System -> kube-system`` is selected at the top of the page. +Navigate to ```` -> ``Apps`` -> ``Installed Apps``. From the top drop-down menu, select +``All Namespaces`` or ``Project: System -> kube-system`` to see the Cilium app. .. image:: images/rancher_cluster_cilium_app.png -Since you added the Cilium repository, you will now see a small hint on this app entry +The Cilium Helm repository has been added to Rancher within the ``Additional Manifests`` section. + +.. image:: images/rancher_cilium_repo.png + +Once the new Cilium version will be available, you will now see a small hint on this app entry when there's a new Cilium version released. You can then upgrade directly via Rancher UI. .. image:: images/rancher_cluster_cilium_app_upgrade.png -.. image:: images/rancher_cluster_cilium_app_upgrade_version.png \ No newline at end of file +.. image:: images/rancher_cluster_cilium_app_upgrade_versions.png \ No newline at end of file From 98854093f87c7e7ceba8a0fdea2607793c70201e Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Thu, 4 Sep 2025 11:31:15 +0100 Subject: [PATCH 022/176] loadbalancer: allow HostPort for multiple protos on same port matching port numbers on different l4 protocol don't work as expected. this commit fixes it by grouping all ports on a pod and produces the services, backends and frontends links instead of doing it on a per port per container basis. Signed-off-by: Bernardo Soares --- pkg/loadbalancer/reflectors/k8s.go | 65 ++++++++++++------- .../tests/testdata/hostport.txtar | 60 +++++++++++++---- 2 files changed, 88 insertions(+), 37 deletions(-) diff --git a/pkg/loadbalancer/reflectors/k8s.go b/pkg/loadbalancer/reflectors/k8s.go index 829cb3c74d7f9..fc96ea9a18d18 100644 --- a/pkg/loadbalancer/reflectors/k8s.go +++ b/pkg/loadbalancer/reflectors/k8s.go @@ -559,6 +559,14 @@ func upsertHostPort(netnsCookie lbmaps.HaveNetNSCookieSupport, config loadbalanc containers := slices.Concat(pod.Spec.InitContainers, pod.Spec.Containers) serviceNamePrefix := hostPortServiceNamePrefix(pod) + type podServices struct { + service loadbalancer.Service + bes []loadbalancer.BackendParams + fes sets.Set[loadbalancer.FrontendParams] + } + + servicesForThisPod := make(map[loadbalancer.ServiceName]*podServices) + updatedServices := sets.New[loadbalancer.ServiceName]() for _, c := range containers { for _, p := range c.Ports { @@ -589,10 +597,24 @@ func upsertHostPort(netnsCookie lbmaps.HaveNetNSCookieSupport, config loadbalanc pod.ObjectMeta.UID), ) + svc, ok := servicesForThisPod[serviceName] + if !ok { + servicesForThisPod[serviceName] = &podServices{ + service: loadbalancer.Service{ + ExtTrafficPolicy: loadbalancer.SVCTrafficPolicyCluster, + IntTrafficPolicy: loadbalancer.SVCTrafficPolicyCluster, + Name: serviceName, + LoopbackHostPort: false, + Source: source.Kubernetes, + }, + fes: sets.Set[loadbalancer.FrontendParams]{}, + } + svc = servicesForThisPod[serviceName] + } + var ipv4, ipv6 bool // Construct the backends from the pod IPs and container ports. - var bes []loadbalancer.BackendParams for _, podIP := range podIPs { addr, err := cmtypes.ParseAddrCluster(podIP) if err != nil { @@ -614,11 +636,9 @@ func upsertHostPort(netnsCookie lbmaps.HaveNetNSCookieSupport, config loadbalanc ), Weight: loadbalancer.DefaultBackendWeight, } - bes = append(bes, bep) + svc.bes = append(svc.bes, bep) } - loopbackHostport := false - feIP := net.ParseIP(p.HostIP) if feIP != nil && feIP.IsLoopback() && !netnsCookie() { log.Warn("The requested loopback address for hostIP is not supported for kernels which don't provide netns cookies. Ignoring.", @@ -642,7 +662,12 @@ func upsertHostPort(netnsCookie lbmaps.HaveNetNSCookieSupport, config loadbalanc } else { feIP = net.IPv6zero } - loopbackHostport = true + svc.service.LoopbackHostPort = true + } else if svc.service.LoopbackHostPort { + // if it's not a loopback but the service was previously marked with LoopbackHostPort, then it's + // an unsupported combination + log.Warn("service with LoopbackHostPort not supported for port with non-loopback address") + continue } feIPs = append(feIPs, feIP) } else if feIP == nil { @@ -654,8 +679,6 @@ func upsertHostPort(netnsCookie lbmaps.HaveNetNSCookieSupport, config loadbalanc } } - fes := make([]loadbalancer.FrontendParams, 0, len(feIPs)) - for _, feIP := range feIPs { addr := cmtypes.MustAddrClusterFromIP(feIP) fe := loadbalancer.FrontendParams{ @@ -669,29 +692,25 @@ func upsertHostPort(netnsCookie lbmaps.HaveNetNSCookieSupport, config loadbalanc ), ServicePort: uint16(p.HostPort), } - fes = append(fes, fe) - } - svc := &loadbalancer.Service{ - ExtTrafficPolicy: loadbalancer.SVCTrafficPolicyCluster, - IntTrafficPolicy: loadbalancer.SVCTrafficPolicyCluster, - Name: serviceName, - LoopbackHostPort: loopbackHostport, - Source: source.Kubernetes, - } - - err = writer.UpsertServiceAndFrontends(wtxn, svc, fes...) - if err != nil { - return fmt.Errorf("UpsertServiceAndFrontends: %w", err) - } - if err := writer.SetBackends(wtxn, serviceName, source.Kubernetes, bes...); err != nil { - return fmt.Errorf("SetBackends: %w", err) + svc.fes.Insert(fe) } updatedServices.Insert(serviceName) } } + for serviceName, svc := range servicesForThisPod { + err := writer.UpsertServiceAndFrontends(wtxn, &svc.service, svc.fes.UnsortedList()...) + if err != nil { + return fmt.Errorf("UpsertServiceAndFrontends: %w", err) + } + + if err := writer.SetBackends(wtxn, serviceName, source.Kubernetes, svc.bes...); err != nil { + return fmt.Errorf("SetBackends: %w", err) + } + } + // Find and remove orphaned HostPort services, frontends and backends // if 'HostPort' has changed or has been unset. for svc := range writer.Services().Prefix(wtxn, loadbalancer.ServiceByName(serviceNamePrefix)) { diff --git a/pkg/loadbalancer/tests/testdata/hostport.txtar b/pkg/loadbalancer/tests/testdata/hostport.txtar index 99429fb856817..13ac58304d011 100644 --- a/pkg/loadbalancer/tests/testdata/hostport.txtar +++ b/pkg/loadbalancer/tests/testdata/hostport.txtar @@ -93,22 +93,27 @@ default/other-app:host-port:4444:22222222-2e9b-4c61-8454-ae81344876d8 k8s -- frontends.table -- Address Type Status ServiceName Backends 0.0.0.0:4444/TCP HostPort Done default/my-app:host-port:4444:11111111-2e9b-4c61-8454-ae81344876d8 10.244.1.113:80/TCP +0.0.0.0:4444/UDP HostPort Done default/my-app:host-port:4444:11111111-2e9b-4c61-8454-ae81344876d8 10.244.1.113:80/UDP -- frontends2.table -- Address Type Status ServiceName Backends 0.0.0.0:4444/TCP HostPort Done default/other-app:host-port:4444:22222222-2e9b-4c61-8454-ae81344876d8 10.244.1.114:80/TCP +0.0.0.0:4444/UDP HostPort Done default/other-app:host-port:4444:22222222-2e9b-4c61-8454-ae81344876d8 10.244.1.114:80/UDP -- frontends3.table -- Address Type Status ServiceName Backends 0.0.0.0:5555/TCP HostPort Done default/other-app:host-port:5555:22222222-2e9b-4c61-8454-ae81344876d8 10.244.1.114:80/TCP +0.0.0.0:5555/UDP HostPort Done default/other-app:host-port:5555:22222222-2e9b-4c61-8454-ae81344876d8 10.244.1.114:80/UDP -- backends.table -- Address Instances 10.244.1.113:80/TCP default/my-app:host-port:4444:11111111-2e9b-4c61-8454-ae81344876d8 +10.244.1.113:80/UDP default/my-app:host-port:4444:11111111-2e9b-4c61-8454-ae81344876d8 -- backends3.table -- Address Instances 10.244.1.114:80/TCP default/other-app:host-port:5555:22222222-2e9b-4c61-8454-ae81344876d8 +10.244.1.114:80/UDP default/other-app:host-port:5555:22222222-2e9b-4c61-8454-ae81344876d8 -- pod.yaml -- apiVersion: v1 @@ -130,6 +135,9 @@ spec: - containerPort: 80 hostPort: 4444 protocol: TCP + - containerPort: 80 + hostPort: 4444 + protocol: UDP resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File @@ -173,6 +181,9 @@ spec: - containerPort: 80 hostPort: 4444 protocol: TCP + - containerPort: 80 + hostPort: 4444 + protocol: UDP resources: {} nodeName: testnode restartPolicy: Always @@ -195,25 +206,46 @@ status: -- lbmaps.expected -- BE: ID=1 ADDR=10.244.1.113:80/TCP STATE=active +BE: ID=2 ADDR=10.244.1.113:80/UDP STATE=active REV: ID=1 ADDR=0.0.0.0:4444 REV: ID=2 ADDR=1.1.1.1:4444 +REV: ID=3 ADDR=0.0.0.0:4444 +REV: ID=4 ADDR=1.1.1.1:4444 SVC: ID=1 ADDR=0.0.0.0:4444/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable SVC: ID=1 ADDR=0.0.0.0:4444/TCP SLOT=1 BEID=1 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable SVC: ID=2 ADDR=1.1.1.1:4444/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort SVC: ID=2 ADDR=1.1.1.1:4444/TCP SLOT=1 BEID=1 COUNT=0 QCOUNT=0 FLAGS=HostPort +SVC: ID=3 ADDR=0.0.0.0:4444/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=3 ADDR=0.0.0.0:4444/UDP SLOT=1 BEID=2 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=4 ADDR=1.1.1.1:4444/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort +SVC: ID=4 ADDR=1.1.1.1:4444/UDP SLOT=1 BEID=2 COUNT=0 QCOUNT=0 FLAGS=HostPort -- lbmaps2.expected -- -BE: ID=2 ADDR=10.244.1.114:80/TCP STATE=active -REV: ID=3 ADDR=0.0.0.0:4444 -REV: ID=4 ADDR=1.1.1.1:4444 -SVC: ID=3 ADDR=0.0.0.0:4444/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable -SVC: ID=3 ADDR=0.0.0.0:4444/TCP SLOT=1 BEID=2 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable -SVC: ID=4 ADDR=1.1.1.1:4444/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort -SVC: ID=4 ADDR=1.1.1.1:4444/TCP SLOT=1 BEID=2 COUNT=0 QCOUNT=0 FLAGS=HostPort +BE: ID=3 ADDR=10.244.1.114:80/TCP STATE=active +BE: ID=4 ADDR=10.244.1.114:80/UDP STATE=active +REV: ID=5 ADDR=0.0.0.0:4444 +REV: ID=6 ADDR=1.1.1.1:4444 +REV: ID=7 ADDR=0.0.0.0:4444 +REV: ID=8 ADDR=1.1.1.1:4444 +SVC: ID=5 ADDR=0.0.0.0:4444/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=5 ADDR=0.0.0.0:4444/TCP SLOT=1 BEID=3 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=6 ADDR=1.1.1.1:4444/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort +SVC: ID=6 ADDR=1.1.1.1:4444/TCP SLOT=1 BEID=3 COUNT=0 QCOUNT=0 FLAGS=HostPort +SVC: ID=7 ADDR=0.0.0.0:4444/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=7 ADDR=0.0.0.0:4444/UDP SLOT=1 BEID=4 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=8 ADDR=1.1.1.1:4444/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort +SVC: ID=8 ADDR=1.1.1.1:4444/UDP SLOT=1 BEID=4 COUNT=0 QCOUNT=0 FLAGS=HostPort -- lbmaps3.expected -- -BE: ID=2 ADDR=10.244.1.114:80/TCP STATE=active -REV: ID=5 ADDR=0.0.0.0:5555 -REV: ID=6 ADDR=1.1.1.1:5555 -SVC: ID=5 ADDR=0.0.0.0:5555/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable -SVC: ID=5 ADDR=0.0.0.0:5555/TCP SLOT=1 BEID=2 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable -SVC: ID=6 ADDR=1.1.1.1:5555/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort -SVC: ID=6 ADDR=1.1.1.1:5555/TCP SLOT=1 BEID=2 COUNT=0 QCOUNT=0 FLAGS=HostPort +BE: ID=3 ADDR=10.244.1.114:80/TCP STATE=active +BE: ID=4 ADDR=10.244.1.114:80/UDP STATE=active +REV: ID=10 ADDR=1.1.1.1:5555 +REV: ID=11 ADDR=0.0.0.0:5555 +REV: ID=12 ADDR=1.1.1.1:5555 +REV: ID=9 ADDR=0.0.0.0:5555 +SVC: ID=10 ADDR=1.1.1.1:5555/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort +SVC: ID=10 ADDR=1.1.1.1:5555/TCP SLOT=1 BEID=3 COUNT=0 QCOUNT=0 FLAGS=HostPort +SVC: ID=11 ADDR=0.0.0.0:5555/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=11 ADDR=0.0.0.0:5555/UDP SLOT=1 BEID=4 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=12 ADDR=1.1.1.1:5555/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort +SVC: ID=12 ADDR=1.1.1.1:5555/UDP SLOT=1 BEID=4 COUNT=0 QCOUNT=0 FLAGS=HostPort +SVC: ID=9 ADDR=0.0.0.0:5555/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=HostPort+non-routable +SVC: ID=9 ADDR=0.0.0.0:5555/TCP SLOT=1 BEID=3 COUNT=0 QCOUNT=0 FLAGS=HostPort+non-routable From c22771df3984b51a3151be4775d8d4ad401dad18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Thu, 11 Sep 2025 14:06:50 +0200 Subject: [PATCH 023/176] cilium-cli/features: use common cmd metric list command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use a single command line for both cilium agent and cilium operator. Signed-off-by: André Martins --- cilium-cli/features/status.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cilium-cli/features/status.go b/cilium-cli/features/status.go index 0d8b4a69dce51..aa1bb6683b202 100644 --- a/cilium-cli/features/status.go +++ b/cilium-cli/features/status.go @@ -21,7 +21,7 @@ import ( ) var ( - cmdMetricsList = []string{"cilium", "metrics", "list", "-p", "cilium_feature", "-o", "json"} + subCmdMetricsList = []string{"metrics", "list", "-p", "cilium_.*feature", "-o", "json"} ) // perDeployNodeMetrics maps a deployment name to their node metrics @@ -247,7 +247,8 @@ func (s *Feature) fetchStatusConcurrently(ctx context.Context, pods []corev1.Pod } func (s *Feature) fetchCiliumFeatureMetricsFromPod(ctx context.Context, pod corev1.Pod) ([]*models.Metric, error) { - output, err := s.client.ExecInPod(ctx, pod.Namespace, pod.Name, defaults.AgentContainerName, cmdMetricsList) + agentCmd := append([]string{"cilium"}, subCmdMetricsList...) + output, err := s.client.ExecInPod(ctx, pod.Namespace, pod.Name, defaults.AgentContainerName, agentCmd) if err != nil { return nil, fmt.Errorf("failed to features status from %s: %w", pod.Name, err) } @@ -266,8 +267,8 @@ func (s *Feature) fetchCiliumOperatorFeatureMetricsFromPod(ctx context.Context, return nil, fmt.Errorf("operator command not found in Cilium Operator pod. Use --operator-container-command to define it") } } - cmd := []string{operatorCmd, "metrics", "list", "-p", "cilium_operator_feature", "-o", "json"} - output, err := s.client.ExecInPod(ctx, pod.Namespace, pod.Name, defaults.OperatorContainerName, cmd) + operatorCmds := append([]string{operatorCmd}, subCmdMetricsList...) + output, err := s.client.ExecInPod(ctx, pod.Namespace, pod.Name, defaults.OperatorContainerName, operatorCmds) if err != nil && !strings.Contains(err.Error(), "level=debug") { return []*models.Metric{}, fmt.Errorf("failed to get features status from %s: %w", pod.Name, err) } From 3ab6ebf3f5500c3b8c1f68c334ce4051bd2caa88 Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Thu, 21 Aug 2025 23:55:08 +0200 Subject: [PATCH 024/176] clustermesh: remove GlobalServiceCache in cilium-agent This remove the usage of GlobalServiceCache in the agent which was only useful to count the number of global Service. This count didn't accounted the local cluster and thus is misleading. While performance impact was not tested this removes managing two level of nested maps and a global lock on each remote endpoints updates which should certainly be valuable. The global services count reported through cilium-dbg and the CLI is no longer supported/exposed. Users with an older version of the CLI would always see a count of 0 reported. Global Service counts will continue to be reported per cluster along the count with other resources though. Signed-off-by: Arthur Outhenin-Chalandre --- .../troubleshooting_clustermesh.rst | 2 +- Documentation/operations/upgrade.rst | 3 +- api/v1/models/cluster_mesh_status.go | 3 -- api/v1/openapi.yaml | 3 -- api/v1/server/embedded_spec.go | 8 ---- cilium-cli/clustermesh/clustermesh.go | 9 ----- cilium-cli/status/k8s.go | 6 +-- pkg/client/client.go | 4 +- pkg/clustermesh/clustermesh.go | 37 +++++++++---------- pkg/clustermesh/remote_cluster_test.go | 4 -- 10 files changed, 25 insertions(+), 54 deletions(-) diff --git a/Documentation/operations/troubleshooting_clustermesh.rst b/Documentation/operations/troubleshooting_clustermesh.rst index 61f9f14d7e919..7d5092257e51a 100644 --- a/Documentation/operations/troubleshooting_clustermesh.rst +++ b/Documentation/operations/troubleshooting_clustermesh.rst @@ -73,7 +73,7 @@ you may perform the following steps to troubleshoot ClusterMesh issues. #. Validate that ClusterMesh is healthy running ``cilium-dbg status --all-clusters`` inside each Cilium agent:: - ClusterMesh: 1/1 remote clusters ready, 10 global-services + ClusterMesh: 1/1 remote clusters ready k8s-c2: ready, 3 nodes, 25 endpoints, 8 identities, 10 services, 0 MCS-API service exports, 0 reconnections (last: never) └ etcd: 1/1 connected, leases=0, lock lease-ID=7c028201b53de662, has-quorum=true: https://k8s-c2.mesh.cilium.io:2379 - 3.5.4 (Leader) └ remote configuration: expected=true, retrieved=true, cluster-id=3, kvstoremesh=false, sync-canaries=true, service-exports=disabled diff --git a/Documentation/operations/upgrade.rst b/Documentation/operations/upgrade.rst index fded21e97cacc..49a65c4bf3cc3 100644 --- a/Documentation/operations/upgrade.rst +++ b/Documentation/operations/upgrade.rst @@ -305,7 +305,8 @@ communicating via the proxy must reconnect to re-establish connections. to update your network policies. * Kafka Network Policy support is deprecated and will be removed in Cilium v1.20. * Hubble field mask support was stabilized. In the Observer gRPC API, ``GetFlowsRequest.Experimental.field_mask`` was removed in favor of ``GetFlowsRequest.field_mask``. In the Hubble CLI, the ``--experimental-field-mask`` has been renamed to ``--field-mask`` and ``--experimental-use-default-field-mask`` renamed to ``-use-default-field-mask`` (now ``true`` by default). - +* Cilium-agent ClusterMesh status will no longer report the global services count. When using the CLI + with a version lower than 1.19, the global services count will be reported as 0. * ``enable-remote-node-masquerade`` config option is introduced. To masquerade traffic to remote nodes in BPF masquerading mode, use the option ``enable-remote-node-masquerade: "true"``. diff --git a/api/v1/models/cluster_mesh_status.go b/api/v1/models/cluster_mesh_status.go index 3835bbbf56689..f1669f69b82ac 100644 --- a/api/v1/models/cluster_mesh_status.go +++ b/api/v1/models/cluster_mesh_status.go @@ -26,9 +26,6 @@ type ClusterMeshStatus struct { // List of remote clusters Clusters []*RemoteCluster `json:"clusters"` - - // Number of global services - NumGlobalServices int64 `json:"num-global-services,omitempty"` } // Validate validates this cluster mesh status diff --git a/api/v1/openapi.yaml b/api/v1/openapi.yaml index 08cea6f14ad9e..1a1a6e980f84a 100644 --- a/api/v1/openapi.yaml +++ b/api/v1/openapi.yaml @@ -2339,9 +2339,6 @@ definitions: type: array items: "$ref": "#/definitions/RemoteCluster" - num-global-services: - description: Number of global services - type: integer RemoteCluster: description: |- Status of remote cluster diff --git a/api/v1/server/embedded_spec.go b/api/v1/server/embedded_spec.go index 057c7e7522010..00645d253fe88 100644 --- a/api/v1/server/embedded_spec.go +++ b/api/v1/server/embedded_spec.go @@ -2200,10 +2200,6 @@ func init() { "items": { "$ref": "#/definitions/RemoteCluster" } - }, - "num-global-services": { - "description": "Number of global services", - "type": "integer" } } }, @@ -7569,10 +7565,6 @@ func init() { "items": { "$ref": "#/definitions/RemoteCluster" } - }, - "num-global-services": { - "description": "Number of global services", - "type": "integer" } } }, diff --git a/cilium-cli/clustermesh/clustermesh.go b/cilium-cli/clustermesh/clustermesh.go index 2356c6222a940..fb56839ed9ac0 100644 --- a/cilium-cli/clustermesh/clustermesh.go +++ b/cilium-cli/clustermesh/clustermesh.go @@ -682,15 +682,6 @@ func remoteClusterStatusToError(status *models.RemoteCluster) error { } func (c *ConnectivityStatus) parseAgentStatus(name string, expected []string, s *status.ClusterMeshAgentConnectivityStatus) { - if c.GlobalServices.Min < 0 || c.GlobalServices.Min > s.GlobalServices { - c.GlobalServices.Min = s.GlobalServices - } - - if c.GlobalServices.Max < s.GlobalServices { - c.GlobalServices.Max = s.GlobalServices - } - - c.GlobalServices.Avg += float64(s.GlobalServices) c.Total++ ready := int64(0) diff --git a/cilium-cli/status/k8s.go b/cilium-cli/status/k8s.go index 462ffb5f4587a..c10da53371f6e 100644 --- a/cilium-cli/status/k8s.go +++ b/cilium-cli/status/k8s.go @@ -92,9 +92,8 @@ func NewK8sStatusCollector(client k8sImplementation, params K8sStatusParameters) } type ClusterMeshAgentConnectivityStatus struct { - GlobalServices int64 - Clusters map[string]*models.RemoteCluster - Errors ErrorCountMap + Clusters map[string]*models.RemoteCluster + Errors ErrorCountMap } // ErrClusterMeshStatusNotAvailable is a sentinel. @@ -117,7 +116,6 @@ func (k *K8sStatusCollector) ClusterMeshConnectivity(ctx context.Context, cilium return nil, ErrClusterMeshStatusNotAvailable } - c.GlobalServices = status.ClusterMesh.NumGlobalServices for _, cluster := range status.ClusterMesh.Clusters { c.Clusters[cluster.Name] = cluster } diff --git a/pkg/client/client.go b/pkg/client/client.go index fcaafc7241b04..8ca559b2aa9b3 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -436,8 +436,8 @@ func FormatStatusResponse(w io.Writer, sr *models.StatusResponse, sd StatusDetai } if sr.ClusterMesh != nil { - fmt.Fprintf(w, "ClusterMesh:\t%d/%d remote clusters ready, %d global-services\n", - NumReadyClusters(sr.ClusterMesh.Clusters), len(sr.ClusterMesh.Clusters), sr.ClusterMesh.NumGlobalServices) + fmt.Fprintf(w, "ClusterMesh:\t%d/%d remote clusters ready\n", + NumReadyClusters(sr.ClusterMesh.Clusters), len(sr.ClusterMesh.Clusters)) verbosity := RemoteClustersStatusNotReadyOnly if sd.AllClusters { diff --git a/pkg/clustermesh/clustermesh.go b/pkg/clustermesh/clustermesh.go index e35c9e9240b3f..803f228eb7de5 100644 --- a/pkg/clustermesh/clustermesh.go +++ b/pkg/clustermesh/clustermesh.go @@ -110,10 +110,6 @@ type ClusterMesh struct { // common implements the common logic to connect to remote clusters. common common.ClusterMesh - // globalServices is a list of all global services. The datastructure - // is protected by its own mutex inside the structure. - globalServices *common.GlobalServiceCache - // nodeName is the name of the local node. This is used for logging and metrics nodeName string @@ -134,12 +130,8 @@ func NewClusterMesh(lifecycle cell.Lifecycle, c Configuration) *ClusterMesh { nodeName := nodeTypes.GetName() cm := &ClusterMesh{ - conf: c, - nodeName: nodeName, - globalServices: common.NewGlobalServiceCache( - c.Logger, - c.Metrics.TotalGlobalServices.WithLabelValues(c.ClusterInfo.Name, nodeName), - ), + conf: c, + nodeName: nodeName, FeatureMetrics: c.FeatureMetrics, } @@ -170,6 +162,20 @@ func NewClusterMesh(lifecycle cell.Lifecycle, c Configuration) *ClusterMesh { return cm } +type clusterServiceObserver struct { + serviceMerger ServiceMerger +} + +func (obs *clusterServiceObserver) OnUpdate(key store.Key) { + svc := &(key.(*serviceStore.ValidatingClusterService).ClusterService) + obs.serviceMerger.MergeExternalServiceUpdate(svc) +} + +func (obs *clusterServiceObserver) OnDelete(key store.NamedKey) { + svc := &(key.(*serviceStore.ValidatingClusterService).ClusterService) + obs.serviceMerger.MergeExternalServiceDelete(svc) +} + func (cm *ClusterMesh) NewRemoteCluster(name string, status common.StatusFunc) common.RemoteCluster { rc := &remoteCluster{ name: name, @@ -203,12 +209,7 @@ func (cm *ClusterMesh) NewRemoteCluster(name string, status common.StatusFunc) c serviceStore.NamespacedNameValidator(), serviceStore.ClusterIDValidator(&rc.clusterID), ), - common.NewSharedServicesObserver( - rc.log, - cm.globalServices, - cm.conf.ServiceMerger.MergeExternalServiceUpdate, - cm.conf.ServiceMerger.MergeExternalServiceDelete, - ), + &clusterServiceObserver{serviceMerger: cm.conf.ServiceMerger}, store.RWSWithOnSyncCallback(func(ctx context.Context) { close(rc.synced.services) }), ) @@ -281,9 +282,7 @@ func (cm *ClusterMesh) synced(ctx context.Context, toWaitFn func(*remoteCluster) // Status returns the status of the ClusterMesh subsystem func (cm *ClusterMesh) Status() (status *models.ClusterMeshStatus) { - status = &models.ClusterMeshStatus{ - NumGlobalServices: int64(cm.globalServices.Size()), - } + status = &models.ClusterMeshStatus{} cm.common.ForEachRemoteCluster(func(rci common.RemoteCluster) error { rc := rci.(*remoteCluster) diff --git a/pkg/clustermesh/remote_cluster_test.go b/pkg/clustermesh/remote_cluster_test.go index 5945ea01b2b9d..193e2f6014d0d 100644 --- a/pkg/clustermesh/remote_cluster_test.go +++ b/pkg/clustermesh/remote_cluster_test.go @@ -16,7 +16,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/cilium/cilium/pkg/clustermesh/common" serviceStore "github.com/cilium/cilium/pkg/clustermesh/store" "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/identity" @@ -24,7 +23,6 @@ import ( "github.com/cilium/cilium/pkg/ipcache" "github.com/cilium/cilium/pkg/kvstore" "github.com/cilium/cilium/pkg/kvstore/store" - "github.com/cilium/cilium/pkg/metrics" nodeTypes "github.com/cilium/cilium/pkg/node/types" "github.com/cilium/cilium/pkg/source" "github.com/cilium/cilium/pkg/testutils" @@ -166,7 +164,6 @@ func TestRemoteClusterRun(t *testing.T) { FeatureMetrics: NewClusterMeshMetricsNoop(), Logger: logger, }, - globalServices: common.NewGlobalServiceCache(logger, metrics.NoOpGauge), FeatureMetrics: NewClusterMeshMetricsNoop(), } rc := cm.NewRemoteCluster("foo", nil).(*remoteCluster) @@ -297,7 +294,6 @@ func TestRemoteClusterClusterIDChange(t *testing.T) { Logger: logger, }, FeatureMetrics: NewClusterMeshMetricsNoop(), - globalServices: common.NewGlobalServiceCache(logger, metrics.NoOpGauge), } rc := cm.NewRemoteCluster("foo", nil).(*remoteCluster) From 4756b18591edfabd26883cef97d588d25709d8f1 Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Fri, 22 Aug 2025 00:34:19 +0200 Subject: [PATCH 025/176] clustermesh: homogenize ClusterMesh metrics based on watch store Report per cluster metrics using the watch store for endpoints, global services, MCS service exports like we are doing already for remote nodes. This doesn't include identities unfortunately which doesn't use the watch store. We are no longer attempting to report Global Services and Global Service Export count. Note that those global count were not accounting the local cluster which was misleading. Signed-off-by: Arthur Outhenin-Chalandre --- Documentation/observability/metrics.rst | 15 +++++++-- Documentation/operations/upgrade.rst | 11 +++++++ pkg/clustermesh/clustermesh.go | 2 ++ pkg/clustermesh/common/services.go | 13 ++------ pkg/clustermesh/common/services_test.go | 3 +- .../endpointslicesync/endpointslice_test.go | 3 +- .../mcsapi/serviceimport_controller_test.go | 3 +- pkg/clustermesh/metrics.go | 27 +++++++++++----- pkg/clustermesh/operator/clustermesh.go | 30 +++++++++-------- pkg/clustermesh/operator/metrics.go | 24 +++++++------- .../operator/remote_cluster_test.go | 32 +++++++++---------- pkg/clustermesh/operator/service_exports.go | 10 ++---- .../operator/service_exports_test.go | 5 +-- 13 files changed, 99 insertions(+), 79 deletions(-) diff --git a/Documentation/observability/metrics.rst b/Documentation/observability/metrics.rst index c17b3e17f1e97..86edc2fdf5f4a 100644 --- a/Documentation/observability/metrics.rst +++ b/Documentation/observability/metrics.rst @@ -371,10 +371,11 @@ Clustermesh =============================================== ============================================================ ========== ================================================================= Name Labels Default Description =============================================== ============================================================ ========== ================================================================= -``clustermesh_global_services`` ``source_cluster``, ``source_node_name`` Enabled The total number of global services in the cluster mesh +``clustermesh_remote_cluster_services`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The total number of services per remote cluster +``clustermesh_remote_cluster_endpoints`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The total number of endpoints per remote cluster +``clustermesh_remote_cluster_nodes`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The total number of nodes per remote cluster ``clustermesh_remote_clusters`` ``source_cluster``, ``source_node_name`` Enabled The total number of remote clusters meshed with the local cluster ``clustermesh_remote_cluster_failures`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The total number of failures related to the remote cluster -``clustermesh_remote_cluster_nodes`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The total number of nodes in the remote cluster ``clustermesh_remote_cluster_last_failure_ts`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The timestamp of the last failure of the remote cluster ``clustermesh_remote_cluster_readiness_status`` ``source_cluster``, ``source_node_name``, ``target_cluster`` Enabled The readiness status of the remote cluster =============================================== ============================================================ ========== ================================================================= @@ -867,6 +868,16 @@ Name Labels ``serviceimport_info`` ``serviceimport``, ``namespace`` Enabled Information about ServiceImport in the local cluster ==================================== ============================================================ ========== =========================================================== +Clustermesh +~~~~~~~~~~~ + +============================================== ======================================= ========== ================================================================== +Name Labels Default Description +============================================== ======================================= ========== ================================================================== +``clustermesh_remote_cluster_services`` ``source_cluster``, ``target_cluster`` Enabled The total number of services per remote cluster +``clustermesh_remote_cluster_service_exports`` ``source_cluster``, ``target_cluster`` Enabled The total number of MCS-API service exports per remote cluster +============================================== ======================================= ========== ================================================================== + Hubble ------ diff --git a/Documentation/operations/upgrade.rst b/Documentation/operations/upgrade.rst index 49a65c4bf3cc3..3bef6f2ea2e0a 100644 --- a/Documentation/operations/upgrade.rst +++ b/Documentation/operations/upgrade.rst @@ -356,6 +356,8 @@ Bugtool Options Added Metrics ~~~~~~~~~~~~~ +* ``cilium_agent_clustermesh_remote_cluster_endpoints`` was added and report + the total number of endpoints per remote cluster in a ClusterMesh environment. Removed Metrics ~~~~~~~~~~~~~~~ @@ -381,6 +383,15 @@ As well, any remaining Operator k8s workqueue metrics that use the label ``queue * ``k8s_client_rate_limiter_duration_seconds`` no longer has labels ``path`` and ``method``. +The following metrics: +* ``cilium_agent_clustermesh_global_services`` +* ``cilium_operator_clustermesh_global_services`` +* ``cilium_operator_clustermesh_global_service_exports`` +now report per cluster metric instead of a "global" count and were renamed to respectively: +* ``cilium_agent_clustermesh_remote_cluster_services`` +* ``cilium_operator_clustermesh_remote_cluster_services`` +* ``cilium_operator_clustermesh_remote_cluster_service_exports`` + Deprecated Metrics ~~~~~~~~~~~~~~~~~~ diff --git a/pkg/clustermesh/clustermesh.go b/pkg/clustermesh/clustermesh.go index 803f228eb7de5..e9ee06ca06f32 100644 --- a/pkg/clustermesh/clustermesh.go +++ b/pkg/clustermesh/clustermesh.go @@ -211,12 +211,14 @@ func (cm *ClusterMesh) NewRemoteCluster(name string, status common.StatusFunc) c ), &clusterServiceObserver{serviceMerger: cm.conf.ServiceMerger}, store.RWSWithOnSyncCallback(func(ctx context.Context) { close(rc.synced.services) }), + store.RWSWithEntriesMetric(cm.conf.Metrics.TotalServices.WithLabelValues(cm.conf.ClusterInfo.Name, cm.nodeName, rc.name)), ) rc.ipCacheWatcher = ipcache.NewIPIdentityWatcher( cm.conf.Logger, name, cm.conf.IPCache, cm.conf.StoreFactory, source.ClusterMesh, store.RWSWithOnSyncCallback(func(ctx context.Context) { close(rc.synced.ipcache) }), + store.RWSWithEntriesMetric(cm.conf.Metrics.TotalEndpoints.WithLabelValues(cm.conf.ClusterInfo.Name, cm.nodeName, rc.name)), ) rc.ipCacheWatcherExtraOpts = cm.conf.IPCacheWatcherExtraOpts diff --git a/pkg/clustermesh/common/services.go b/pkg/clustermesh/common/services.go index 6d31a3b7f24d8..57208b7a1750f 100644 --- a/pkg/clustermesh/common/services.go +++ b/pkg/clustermesh/common/services.go @@ -13,7 +13,6 @@ import ( "github.com/cilium/cilium/pkg/kvstore/store" "github.com/cilium/cilium/pkg/lock" "github.com/cilium/cilium/pkg/logging/logfields" - "github.com/cilium/cilium/pkg/metrics/metric" ) type GlobalService struct { @@ -30,16 +29,12 @@ type GlobalServiceCache struct { logger *slog.Logger mutex lock.RWMutex byName map[types.NamespacedName]*GlobalService - - // metricTotalGlobalServices is the gauge metric for total of global services - metricTotalGlobalServices metric.Gauge } -func NewGlobalServiceCache(logger *slog.Logger, metricTotalGlobalServices metric.Gauge) *GlobalServiceCache { +func NewGlobalServiceCache(logger *slog.Logger) *GlobalServiceCache { return &GlobalServiceCache{ - logger: logger, - byName: map[types.NamespacedName]*GlobalService{}, - metricTotalGlobalServices: metricTotalGlobalServices, + logger: logger, + byName: map[types.NamespacedName]*GlobalService{}, } } @@ -101,7 +96,6 @@ func (c *GlobalServiceCache) OnUpdate(svc *serviceStore.ClusterService) { logfields.ServiceName, svc, logfields.ClusterName, svc.Cluster, ) - c.metricTotalGlobalServices.Set(float64(len(c.byName))) } c.logger.Debug( @@ -137,7 +131,6 @@ func (c *GlobalServiceCache) delete(globalService *GlobalService, clusterName st logfields.ClusterName, clusterName, ) delete(c.byName, serviceNN) - c.metricTotalGlobalServices.Set(float64(len(c.byName))) } return true diff --git a/pkg/clustermesh/common/services_test.go b/pkg/clustermesh/common/services_test.go index 8ca99bb12dbe9..235c1c4b02966 100644 --- a/pkg/clustermesh/common/services_test.go +++ b/pkg/clustermesh/common/services_test.go @@ -10,7 +10,6 @@ import ( "github.com/stretchr/testify/require" serviceStore "github.com/cilium/cilium/pkg/clustermesh/store" - "github.com/cilium/cilium/pkg/metrics" ) type fakeUpstream struct { @@ -32,7 +31,7 @@ func TestRemoteServiceObserver(t *testing.T) { } svc1 := serviceStore.ClusterService{Cluster: "remote", Namespace: "namespace", Name: "name", IncludeExternal: false, Shared: true} svc2 := serviceStore.ClusterService{Cluster: "remote", Namespace: "namespace", Name: "name"} - cache := NewGlobalServiceCache(hivetest.Logger(t), metrics.NoOpGauge) + cache := NewGlobalServiceCache(hivetest.Logger(t)) var upstream fakeUpstream observer := NewSharedServicesObserver(hivetest.Logger(t), cache, upstream.OnUpdate, upstream.OnDelete) diff --git a/pkg/clustermesh/endpointslicesync/endpointslice_test.go b/pkg/clustermesh/endpointslicesync/endpointslice_test.go index d6e044d0c744b..6ad2055d286b0 100644 --- a/pkg/clustermesh/endpointslicesync/endpointslice_test.go +++ b/pkg/clustermesh/endpointslicesync/endpointslice_test.go @@ -31,7 +31,6 @@ import ( slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" "github.com/cilium/cilium/pkg/k8s/utils" "github.com/cilium/cilium/pkg/loadbalancer" - "github.com/cilium/cilium/pkg/metrics/metric" ) const ( @@ -113,7 +112,7 @@ func Test_meshEndpointSlice_Reconcile(t *testing.T) { } defer hive.Stop(tlog, context.Background()) - globalService := common.NewGlobalServiceCache(hivetest.Logger(t), metric.NewGauge(metric.GaugeOpts{})) + globalService := common.NewGlobalServiceCache(hivetest.Logger(t)) podInformer := newMeshPodInformer(logger, globalService) nodeInformer := newMeshNodeInformer(logger) controller, serviceInformer, endpointsliceInformer := newEndpointSliceMeshController( diff --git a/pkg/clustermesh/mcsapi/serviceimport_controller_test.go b/pkg/clustermesh/mcsapi/serviceimport_controller_test.go index fe16dca8693b7..be48467d2e4b1 100644 --- a/pkg/clustermesh/mcsapi/serviceimport_controller_test.go +++ b/pkg/clustermesh/mcsapi/serviceimport_controller_test.go @@ -26,7 +26,6 @@ import ( mcsapitypes "github.com/cilium/cilium/pkg/clustermesh/mcsapi/types" "github.com/cilium/cilium/pkg/clustermesh/operator" - "github.com/cilium/cilium/pkg/metrics/metric" ) const ( @@ -503,7 +502,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { WithStatusSubresource(&mcsapiv1alpha1.ServiceImport{}). WithScheme(testScheme()). Build() - globalServiceExports := operator.NewGlobalServiceExportCache(metric.NewGauge(metric.GaugeOpts{})) + globalServiceExports := operator.NewGlobalServiceExportCache() remoteClusterServiceSource := &remoteClusterServiceExportSource{Logger: hivetest.Logger(t)} for _, svcExport := range remoteSvcImportTestFixtures { globalServiceExports.OnUpdate(svcExport) diff --git a/pkg/clustermesh/metrics.go b/pkg/clustermesh/metrics.go index 2a5efac2bb7a3..b5227d2af091e 100644 --- a/pkg/clustermesh/metrics.go +++ b/pkg/clustermesh/metrics.go @@ -9,11 +9,14 @@ import ( ) type Metrics struct { - // TotalNodes tracks the number of total nodes in a remote cluster. + // TotalNodes tracks the number of total nodes per remote cluster. TotalNodes metric.Vec[metric.Gauge] - // TotalGlobalServices tracks the total number of global services. - TotalGlobalServices metric.Vec[metric.Gauge] + // TotalServices tracks the number of total services per remote cluster. + TotalServices metric.Vec[metric.Gauge] + + // TotalEndpoints tracks the number of total IPs per remote cluster. + TotalEndpoints metric.Vec[metric.Gauge] } func NewMetrics() Metrics { @@ -26,12 +29,20 @@ func NewMetrics() Metrics { Help: "The total number of nodes in the remote cluster", }, []string{metrics.LabelSourceCluster, metrics.LabelSourceNodeName, metrics.LabelTargetCluster}), - TotalGlobalServices: metric.NewGaugeVec(metric.GaugeOpts{ - ConfigName: metrics.Namespace + "_" + subsystem + "_global_services", + TotalServices: metric.NewGaugeVec(metric.GaugeOpts{ + ConfigName: metrics.Namespace + "_" + subsystem + "_remote_cluster_services", + Namespace: metrics.Namespace, + Subsystem: subsystem, + Name: "remote_cluster_services", + Help: "The total number of services in the remote cluster", + }, []string{metrics.LabelSourceCluster, metrics.LabelSourceNodeName, metrics.LabelTargetCluster}), + + TotalEndpoints: metric.NewGaugeVec(metric.GaugeOpts{ + ConfigName: metrics.Namespace + "_" + subsystem + "_remote_cluster_endpoints", Namespace: metrics.Namespace, Subsystem: subsystem, - Name: "global_services", - Help: "The total number of global services in the cluster mesh", - }, []string{metrics.LabelSourceCluster, metrics.LabelSourceNodeName}), + Name: "remote_cluster_endpoints", + Help: "The total number of endpoints in the remote cluster", + }, []string{metrics.LabelSourceCluster, metrics.LabelSourceNodeName, metrics.LabelTargetCluster}), } } diff --git a/pkg/clustermesh/operator/clustermesh.go b/pkg/clustermesh/operator/clustermesh.go index c289da830d62e..e4d25ee66d11e 100644 --- a/pkg/clustermesh/operator/clustermesh.go +++ b/pkg/clustermesh/operator/clustermesh.go @@ -18,6 +18,7 @@ import ( "github.com/cilium/cilium/pkg/clustermesh/common" mcsapitypes "github.com/cilium/cilium/pkg/clustermesh/mcsapi/types" serviceStore "github.com/cilium/cilium/pkg/clustermesh/store" + "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/clustermesh/wait" "github.com/cilium/cilium/pkg/dial" "github.com/cilium/cilium/pkg/kvstore/store" @@ -29,10 +30,11 @@ type clusterMesh struct { // common implements the common logic to connect to remote clusters. common common.ClusterMesh - cfg ClusterMeshConfig - cfgMCSAPI MCSAPIConfig - logger *slog.Logger - Metrics Metrics + cfg ClusterMeshConfig + cfgMCSAPI MCSAPIConfig + logger *slog.Logger + clusterInfo types.ClusterInfo + metrics Metrics // globalServices is a list of all global services. The datastructure // is protected by its own mutex inside the structure. @@ -97,15 +99,15 @@ func newClusterMesh(lc cell.Lifecycle, params clusterMeshParams) (*clusterMesh, params.Logger.Info("Operator ClusterMesh component enabled") cm := clusterMesh{ - cfg: params.Cfg, - cfgMCSAPI: params.CfgMCSAPI, - logger: params.Logger, - globalServices: common.NewGlobalServiceCache(params.Logger, params.Metrics.TotalGlobalServices.WithLabelValues(params.ClusterInfo.Name)), - globalServiceExports: NewGlobalServiceExportCache( - params.Metrics.TotalGlobalServiceExports.WithLabelValues(params.ClusterInfo.Name), - ), - storeFactory: params.StoreFactory, - syncTimeoutConfig: params.TimeoutConfig, + cfg: params.Cfg, + cfgMCSAPI: params.CfgMCSAPI, + logger: params.Logger, + clusterInfo: params.ClusterInfo, + metrics: params.Metrics, + globalServices: common.NewGlobalServiceCache(params.Logger), + globalServiceExports: NewGlobalServiceExportCache(), + storeFactory: params.StoreFactory, + syncTimeoutConfig: params.TimeoutConfig, } cm.common = common.NewClusterMesh(common.Configuration{ Logger: params.Logger, @@ -223,6 +225,7 @@ func (cm *clusterMesh) newRemoteCluster(name string, status common.StatusFunc) c }, ), store.RWSWithOnSyncCallback(func(ctx context.Context) { rc.synced.services.Stop() }), + store.RWSWithEntriesMetric(cm.metrics.TotalServices.WithLabelValues(cm.clusterInfo.Name, rc.name)), ) rc.remoteServiceExports = cm.storeFactory.NewWatchStore( @@ -245,6 +248,7 @@ func (cm *clusterMesh) newRemoteCluster(name string, status common.StatusFunc) c }, ), store.RWSWithOnSyncCallback(func(ctx context.Context) { rc.synced.serviceExports.Stop() }), + store.RWSWithEntriesMetric(cm.metrics.TotalServiceExports.WithLabelValues(cm.clusterInfo.Name, name)), ) return rc diff --git a/pkg/clustermesh/operator/metrics.go b/pkg/clustermesh/operator/metrics.go index 5bd266919bf36..9432e55fdbf95 100644 --- a/pkg/clustermesh/operator/metrics.go +++ b/pkg/clustermesh/operator/metrics.go @@ -9,25 +9,25 @@ import ( ) type Metrics struct { - // TotalGlobalServices tracks the total number of global services. - TotalGlobalServices metric.Vec[metric.Gauge] - // TotalGlobalServiceExports tracks the total number of global service exports. - TotalGlobalServiceExports metric.Vec[metric.Gauge] + // TotalServices tracks the number of total global services per remote cluster. + TotalServices metric.Vec[metric.Gauge] + // TotalServiceExports tracks the number of total MCS-API service exports per remote cluster. + TotalServiceExports metric.Vec[metric.Gauge] } func NewMetrics() Metrics { return Metrics{ - TotalGlobalServices: metric.NewGaugeVec(metric.GaugeOpts{ + TotalServices: metric.NewGaugeVec(metric.GaugeOpts{ Namespace: metrics.CiliumOperatorNamespace, Subsystem: subsystem, - Name: "global_services", - Help: "The total number of global services in the cluster mesh", - }, []string{metrics.LabelSourceCluster}), - TotalGlobalServiceExports: metric.NewGaugeVec(metric.GaugeOpts{ + Name: "remote_cluster_services", + Help: "The total number of services in the remote cluster", + }, []string{metrics.LabelSourceCluster, metrics.LabelTargetCluster}), + TotalServiceExports: metric.NewGaugeVec(metric.GaugeOpts{ Namespace: metrics.CiliumOperatorNamespace, Subsystem: subsystem, - Name: "global_service_exports", - Help: "The total number of MCS-API global service exports in the cluster mesh", - }, []string{metrics.LabelSourceCluster}), + Name: "remote_cluster_service_exports", + Help: "The total number of MCS-API service exports in the remote cluster", + }, []string{metrics.LabelSourceCluster, metrics.LabelTargetCluster}), } } diff --git a/pkg/clustermesh/operator/remote_cluster_test.go b/pkg/clustermesh/operator/remote_cluster_test.go index c990d083debb1..669da52a8ea61 100644 --- a/pkg/clustermesh/operator/remote_cluster_test.go +++ b/pkg/clustermesh/operator/remote_cluster_test.go @@ -87,17 +87,17 @@ func TestRemoteClusterStatus(t *testing.T) { require.NoError(t, client.DeletePrefix(context.Background(), kvstore.BaseKeyPrefix)) }) - metrics := NewMetrics() logger := hivetest.Logger(t) + metrics := NewMetrics() cm := clusterMesh{ - logger: logger, - storeFactory: st, - globalServices: common.NewGlobalServiceCache(logger, metrics.TotalGlobalServices.WithLabelValues("foo")), - globalServiceExports: NewGlobalServiceExportCache( - metrics.TotalGlobalServiceExports.WithLabelValues("foo"), - ), - cfg: ClusterMeshConfig{ClusterMeshEnableEndpointSync: tt.clusterMeshEnableEndpointSync}, - cfgMCSAPI: MCSAPIConfig{ClusterMeshEnableMCSAPI: tt.clusterMeshEnableMCSAPI}, + logger: logger, + clusterInfo: types.ClusterInfo{ID: 1, Name: "cluster1", MaxConnectedClusters: 255}, + metrics: metrics, + storeFactory: st, + globalServices: common.NewGlobalServiceCache(logger), + globalServiceExports: NewGlobalServiceExportCache(), + cfg: ClusterMeshConfig{ClusterMeshEnableEndpointSync: tt.clusterMeshEnableEndpointSync}, + cfgMCSAPI: MCSAPIConfig{ClusterMeshEnableMCSAPI: tt.clusterMeshEnableMCSAPI}, } // Populate the kvstore with the appropriate KV pairs @@ -186,15 +186,15 @@ func TestRemoteClusterHooks(t *testing.T) { wg.Wait() }) logger := hivetest.Logger(t) - st := store.NewFactory(logger, store.MetricsProvider()) metrics := NewMetrics() + st := store.NewFactory(logger, store.MetricsProvider()) cm := clusterMesh{ - logger: logger, - storeFactory: st, - globalServices: common.NewGlobalServiceCache(logger, metrics.TotalGlobalServices.WithLabelValues("foo")), - globalServiceExports: NewGlobalServiceExportCache( - metrics.TotalGlobalServiceExports.WithLabelValues("foo"), - ), + logger: logger, + clusterInfo: types.ClusterInfo{ID: 1, Name: "cluster1", MaxConnectedClusters: 255}, + metrics: metrics, + storeFactory: st, + globalServices: common.NewGlobalServiceCache(logger), + globalServiceExports: NewGlobalServiceExportCache(), } clusterAddCalledCount := atomic.Uint32{} diff --git a/pkg/clustermesh/operator/service_exports.go b/pkg/clustermesh/operator/service_exports.go index fc11e8efd09e4..837f082fdbb20 100644 --- a/pkg/clustermesh/operator/service_exports.go +++ b/pkg/clustermesh/operator/service_exports.go @@ -12,7 +12,6 @@ import ( mcsapitypes "github.com/cilium/cilium/pkg/clustermesh/mcsapi/types" "github.com/cilium/cilium/pkg/kvstore/store" "github.com/cilium/cilium/pkg/lock" - "github.com/cilium/cilium/pkg/metrics/metric" ) type ( @@ -28,14 +27,11 @@ type GlobalServiceExportCache struct { // size is used to manage a counter of globalServiceExport // as uint instead of the float of metric.Gauge as float are not reliable to count size uint64 - // metricTotalGlobalServiceExports is the gauge metric for total of global service exports - metricTotalGlobalServiceExports metric.Gauge } -func NewGlobalServiceExportCache(metricTotalGlobalServiceExports metric.Gauge) *GlobalServiceExportCache { +func NewGlobalServiceExportCache() *GlobalServiceExportCache { return &GlobalServiceExportCache{ - cache: ServiceExportsByNamespace{}, - metricTotalGlobalServiceExports: metricTotalGlobalServiceExports, + cache: ServiceExportsByNamespace{}, } } @@ -79,7 +75,6 @@ func (c *GlobalServiceExportCache) OnUpdate(svcExport *mcsapitypes.MCSAPIService svcExportsByCluster = ServiceExportsByCluster{} svcExportsByName[svcExport.Name] = svcExportsByCluster c.size += 1 - c.metricTotalGlobalServiceExports.Set(float64(c.size)) } svcExportsByCluster[svcExport.Cluster] = svcExport @@ -109,7 +104,6 @@ func (c *GlobalServiceExportCache) OnDelete(svcExport *mcsapitypes.MCSAPIService return true } c.size -= 1 - c.metricTotalGlobalServiceExports.Set(float64(c.size)) delete(svcExportsByName, svcExport.Name) if len(c.cache[svcExport.Namespace]) != 0 { diff --git a/pkg/clustermesh/operator/service_exports_test.go b/pkg/clustermesh/operator/service_exports_test.go index 6b9ae56cc7315..0a74f406399bc 100644 --- a/pkg/clustermesh/operator/service_exports_test.go +++ b/pkg/clustermesh/operator/service_exports_test.go @@ -13,10 +13,7 @@ import ( ) func TestGlobalServiceExportCache(t *testing.T) { - metrics := NewMetrics() - globalServiceExports := NewGlobalServiceExportCache( - metrics.TotalGlobalServiceExports.WithLabelValues("foo"), - ) + globalServiceExports := NewGlobalServiceExportCache() globalServiceExports.OnUpdate(&mcsapitypes.MCSAPIServiceSpec{ Cluster: "cluster1", From 0fc052446e6da628afcee2b292d523392ad60f2e Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 4 Sep 2025 18:17:05 +0300 Subject: [PATCH 026/176] datapath: remove outbound ESP-in-overlay support This was only needed for the upgrade from v1.17, and can now safely go away in the v1.19 release. Signed-off-by: Julian Wiedmann --- bpf/bpf_overlay.c | 8 ++------ bpf/lib/common.h | 7 ------- bpf/lib/encrypt.h | 20 -------------------- bpf/lib/overloadable_skb.h | 8 -------- bpf/tests/ipsec_redirect_tunnel.c | 12 +----------- pkg/datapath/linux/linux_defaults/mark.go | 5 ----- 6 files changed, 3 insertions(+), 57 deletions(-) diff --git a/bpf/bpf_overlay.c b/bpf/bpf_overlay.c index 16b4076738f9d..b27a671a3f3e8 100644 --- a/bpf/bpf_overlay.c +++ b/bpf/bpf_overlay.c @@ -838,12 +838,8 @@ int cil_to_overlay(struct __ctx_buff *ctx) if (!ctx_get_tunnel_key(ctx, &tunnel_key, TUNNEL_KEY_WITHOUT_SRC_IP, 0)) src_sec_identity = get_id_from_tunnel_id(tunnel_key.tunnel_id, ctx_get_protocol(ctx)); -#ifdef ENABLE_IPSEC - if (is_esp(ctx, proto)) - set_identity_mark(ctx, src_sec_identity, MARK_MAGIC_OVERLAY_ENCRYPTED); - else -#endif - set_identity_mark(ctx, src_sec_identity, MARK_MAGIC_OVERLAY); + + set_identity_mark(ctx, src_sec_identity, MARK_MAGIC_OVERLAY); #ifdef ENABLE_NODEPORT if (snat_done) { diff --git a/bpf/lib/common.h b/bpf/lib/common.h index 57e0cdb6239b6..ee4ff4c80ed39 100644 --- a/bpf/lib/common.h +++ b/bpf/lib/common.h @@ -566,13 +566,6 @@ enum metric_dir { #define MARK_MAGIC_TO_PROXY 0x0200 #define MARK_MAGIC_SNAT_DONE 0x0300 #define MARK_MAGIC_OVERLAY 0x0400 /* mark carries identity */ -/* used to indicate encrypted traffic was tunnel encapsulated - * this is useful in the IPsec code paths where we need to know if overlay - * traffic is encrypted or not. - * - * the SPI bit can be reused since this magic mark is only used POST encryption. - */ -#define MARK_MAGIC_OVERLAY_ENCRYPTED (MARK_MAGIC_OVERLAY | 0x1000) #define MARK_MAGIC_EGW_DONE 0x0500 /* mark carries identity */ #define MARK_MAGIC_KEY_MASK 0xFF00 diff --git a/bpf/lib/encrypt.h b/bpf/lib/encrypt.h index 08b0f2a50228d..2c00e34318733 100644 --- a/bpf/lib/encrypt.h +++ b/bpf/lib/encrypt.h @@ -224,20 +224,6 @@ ipsec_maybe_redirect_to_encrypt(struct __ctx_buff *ctx, __be16 proto, if (!eth_is_supported_ethertype(proto)) return DROP_UNSUPPORTED_L2; - /* if we are in tunnel mode the overlay prog can detect if the packet - * was already encrypted before encapsulation. - * - * if it was, we can simply short-circuit here and return, no encryption - * is required - * - * this would only be the case when transitioning from v1.17 -> v1.18 - * and can be removed on v1.19 release. - */ -# if defined(TUNNEL_MODE) - if (ctx_is_overlay_encrypted(ctx)) - return CTX_ACT_OK; -# endif /* TUNNEL_MODE */ - switch (proto) { # ifdef ENABLE_IPV4 case bpf_htons(ETH_P_IP): @@ -256,9 +242,6 @@ ipsec_maybe_redirect_to_encrypt(struct __ctx_buff *ctx, __be16 proto, * set_ipsec_encrypt to obtain the correct node ID and spi. */ if (ctx_is_overlay(ctx)) { - /* NOTE: we confirm double-encryption will not occur - * above in the `ctx_is_overlay_encrypted` check - */ fake_info.tunnel_endpoint.ip4 = ip4->daddr; fake_info.flag_has_tunnel_ep = true; @@ -292,9 +275,6 @@ ipsec_maybe_redirect_to_encrypt(struct __ctx_buff *ctx, __be16 proto, /* See comment in IPv4 case. */ if (ctx_is_overlay(ctx)) { - /* NOTE: we confirm double-encryption will not occur - * above in the `ctx_is_overlay_encrypted` check - */ ipv6_addr_copy_unaligned(&fake_info.tunnel_endpoint.ip6, (union v6addr *)&ip6->daddr); fake_info.flag_has_tunnel_ep = true; diff --git a/bpf/lib/overloadable_skb.h b/bpf/lib/overloadable_skb.h index 7842e1d2fdc86..acc8d11406f63 100644 --- a/bpf/lib/overloadable_skb.h +++ b/bpf/lib/overloadable_skb.h @@ -247,14 +247,6 @@ static __always_inline bool ctx_is_overlay(const struct __sk_buff *ctx) return (ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_OVERLAY; } -static __always_inline bool ctx_is_overlay_encrypted(const struct __sk_buff *ctx) -{ - if (!is_defined(HAVE_ENCAP)) - return false; - - return (ctx->mark & MARK_MAGIC_KEY_MASK) == MARK_MAGIC_OVERLAY_ENCRYPTED; -} - static __always_inline bool ctx_mark_is_encrypted(const struct __sk_buff *ctx) { if (!is_defined(ENABLE_WIREGUARD) && !is_defined(ENABLE_IPSEC)) diff --git a/bpf/tests/ipsec_redirect_tunnel.c b/bpf/tests/ipsec_redirect_tunnel.c index 6182ff5c2b122..0416e58900657 100644 --- a/bpf/tests/ipsec_redirect_tunnel.c +++ b/bpf/tests/ipsec_redirect_tunnel.c @@ -9,8 +9,7 @@ /* must define `HAVE_ENCAP 1` before including 'lib/encrypt.h'. * lib/encrypt.h eventually imports overloadable_skb.h which exposes - * ctx_is_overlay and ctx_is_overlay_encrypted, utilized within - * 'ipsec_maybe_redirect_to_encrypt' + * ctx_is_overlay, utilized within 'ipsec_maybe_redirect_to_encrypt' */ #define HAVE_ENCAP 1 #include "lib/encrypt.h" @@ -35,15 +34,6 @@ int ipsec_redirect_checks(__maybe_unused struct __ctx_buff *ctx, bool outer_ipv4 }; map_update_elem(&cilium_encrypt_state, &ret, &cfg, BPF_ANY); - /* Ensure we simply return from 'ipsec_maybe_redirect_to_encrypt' if - * the 'MARK_MAGIC_OVERLAY_ENCRYPTED' mark is set. - */ - TEST("overlay-encrypted-mark-set", { - ctx->mark = MARK_MAGIC_OVERLAY_ENCRYPTED; - ret = ipsec_maybe_redirect_to_encrypt(ctx, proto, SOURCE_IDENTITY); - assert(ret == CTX_ACT_OK); - }) - /* * Ensure encryption mark is set for overlay traffic with source * identity pod SOURCE_IDENTITY and CTX_ACT_REDIRECT is set. diff --git a/pkg/datapath/linux/linux_defaults/mark.go b/pkg/datapath/linux/linux_defaults/mark.go index d84daa4afd373..2a36e7772fad6 100644 --- a/pkg/datapath/linux/linux_defaults/mark.go +++ b/pkg/datapath/linux/linux_defaults/mark.go @@ -62,11 +62,6 @@ const ( // to identify cilium-managed overlay traffic. MagicMarkOverlay int = 0x0400 - // MagicMarkOverlay is set by the to-overlay program, and can be used - // to identify cilium-managed overlay traffic which was previously IPsec - // encrypted before encapsulation. - MagicMarkOverlayEncrypted int = 0x1400 - // MagicMarkProxyEgressEPID determines that the traffic is sourced from // the proxy which is capturing traffic before it is subject to egress // policy enforcement that must be done after the proxy. The identity From d73d62ceff5dfc771e77bcfb9cd05aacae46ffb0 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 4 Sep 2025 18:25:46 +0300 Subject: [PATCH 027/176] datapath: remove inbound ESP-in-overlay support This was only needed for the upgrade from v1.17, and can now safely go away in the v1.19 release. Signed-off-by: Julian Wiedmann --- bpf/bpf_overlay.c | 260 +++------ bpf/tests/ipsec_from_overlay_generic.h | 529 ------------------ bpf/tests/ipsec_from_overlay_tunnel.c | 6 - .../ipsec_from_overlay_tunnel_endpoint.c | 8 - 4 files changed, 74 insertions(+), 729 deletions(-) delete mode 100644 bpf/tests/ipsec_from_overlay_generic.h delete mode 100644 bpf/tests/ipsec_from_overlay_tunnel.c delete mode 100644 bpf/tests/ipsec_from_overlay_tunnel_endpoint.c diff --git a/bpf/bpf_overlay.c b/bpf/bpf_overlay.c index b27a671a3f3e8..5af74e2a9c8ec 100644 --- a/bpf/bpf_overlay.c +++ b/bpf/bpf_overlay.c @@ -29,7 +29,6 @@ #include "lib/tailcall.h" #include "lib/common.h" #include "lib/edt.h" -#include "lib/encrypt.h" #include "lib/eps.h" #include "lib/ipv6.h" #include "lib/eth.h" @@ -39,7 +38,6 @@ #include "lib/local_delivery.h" #include "lib/drop.h" #include "lib/identity.h" -#include "lib/node.h" #include "lib/nodeport.h" #include "lib/nodeport_egress.h" #include "lib/clustermesh.h" @@ -63,7 +61,6 @@ static __always_inline int handle_ipv6(struct __ctx_buff *ctx, void *data_end, *data; struct ipv6hdr *ip6; struct endpoint_info *ep; - bool decrypted = false; bool __maybe_unused is_dsr = false; fraginfo_t fraginfo __maybe_unused; @@ -101,68 +98,22 @@ static __always_inline int handle_ipv6(struct __ctx_buff *ctx, if (!revalidate_data(ctx, &data, &data_end, &ip6)) return DROP_INVALID; - /* Lookup the source in the ipcache. Before decryption this will be the - * outer source IP to get the source node ID. After decryption this - * will be the inner source IP to get the source security identity. - */ info = lookup_ip6_remote_endpoint((union v6addr *)&ip6->saddr, 0); + /* Maybe overwrite the REMOTE_NODE_ID with + * KUBE_APISERVER_NODE_ID to support upgrade. After v1.12, + * identity_is_remote_node() should be removed. + * + * A packet that has DSR info and comes from `world` may have specific identity when + * a CNP that is using CIDR rules is applied. + */ + if (info && (identity_is_remote_node(*identity) || + (is_dsr && identity_is_world_ipv6(*identity)))) + *identity = info->sec_identity; #ifdef ENABLE_IPSEC - decrypted = ((ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_DECRYPT); -#endif - if (decrypted) { - if (info) - *identity = info->sec_identity; - - cilium_dbg(ctx, info ? DBG_IP_ID_MAP_SUCCEED6 : DBG_IP_ID_MAP_FAILED6, - ((__u32 *)&ip6->saddr)[3], *identity); - } else { - /* Maybe overwrite the REMOTE_NODE_ID with - * KUBE_APISERVER_NODE_ID to support upgrade. After v1.12, - * identity_is_remote_node() should be removed. - * - * A packet that has DSR info and comes from `world` may have specific identity when - * a CNP that is using CIDR rules is applied. - */ - if (info && (identity_is_remote_node(*identity) || - (is_dsr && identity_is_world_ipv6(*identity)))) - *identity = info->sec_identity; - } - -#ifdef ENABLE_IPSEC - if (!decrypted) { - __u16 node_id; - - /* IPSec is not currently enforce (feature coming soon) - * so for now just handle normally - */ - if (ip6->nexthdr != IPPROTO_ESP) { - update_metrics(ctx_full_len(ctx), METRIC_INGRESS, - REASON_PLAINTEXT); - goto not_esp; - } - - node_id = lookup_ip6_node_id((union v6addr *)&ip6->saddr); - if (!node_id) - return DROP_NO_NODE_ID; - set_ipsec_decrypt_mark(ctx, node_id); - - /* To IPSec stack on cilium_vxlan we are going to pass - * this up the stack but eth_type_trans has already labeled - * this as an OTHERHOST type packet. To avoid being dropped - * by IP stack before IPSec can be processed mark as a HOST - * packet. - */ - ctx_change_type(ctx, PACKET_HOST); - - send_trace_notify(ctx, TRACE_TO_STACK, *identity, UNKNOWN_ID, - TRACE_EP_ID_UNKNOWN, ctx->ingress_ifindex, - TRACE_REASON_ENCRYPTED, 0, bpf_htons(ETH_P_IPV6)); - - return CTX_ACT_OK; - } - ctx->mark = 0; -not_esp: + if (ip6->nexthdr != IPPROTO_ESP) + update_metrics(ctx_full_len(ctx), METRIC_INGRESS, + REASON_PLAINTEXT); #endif #if defined(ENABLE_EGRESS_GATEWAY_COMMON) @@ -340,7 +291,6 @@ static __always_inline int handle_ipv4(struct __ctx_buff *ctx, void *data_end, *data; struct iphdr *ip4; struct endpoint_info *ep; - bool decrypted = false; bool __maybe_unused is_dsr = false; fraginfo_t fraginfo __maybe_unused; int ret; @@ -389,101 +339,56 @@ static __always_inline int handle_ipv4(struct __ctx_buff *ctx, if (!revalidate_data(ctx, &data, &data_end, &ip4)) return DROP_INVALID; - /* Lookup the source in the ipcache. Before decryption this will be the - * outer source IP to get the source node ID. After decryption this - * will be the inner source IP to get the source security identity. - */ info = lookup_ip4_remote_endpoint(ip4->saddr, 0); -#ifdef ENABLE_IPSEC - decrypted = ((ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_DECRYPT); -#endif - /* If packets are decrypted the key has already been pushed into metadata. */ - if (decrypted) { - if (info) - *identity = info->sec_identity; - - cilium_dbg(ctx, info ? DBG_IP_ID_MAP_SUCCEED4 : DBG_IP_ID_MAP_FAILED4, - ip4->saddr, *identity); - } else { #ifdef ENABLE_VTEP - { - struct vtep_key vkey = {}; - struct vtep_value *vtep; - - vkey.vtep_ip = ip4->saddr & VTEP_MASK; - vtep = map_lookup_elem(&cilium_vtep_map, &vkey); - if (!vtep) - goto skip_vtep; - if (vtep->tunnel_endpoint) { - if (!identity_is_world_ipv4(*identity)) - return DROP_INVALID_VNI; - } + { + struct vtep_key vkey = {}; + struct vtep_value *vtep; + + vkey.vtep_ip = ip4->saddr & VTEP_MASK; + vtep = map_lookup_elem(&cilium_vtep_map, &vkey); + if (!vtep) + goto skip_vtep; + if (vtep->tunnel_endpoint) { + if (!identity_is_world_ipv4(*identity)) + return DROP_INVALID_VNI; } + } skip_vtep: #endif #if defined(ENABLE_CLUSTER_AWARE_ADDRESSING) && defined(ENABLE_INTER_CLUSTER_SNAT) - { - __u32 cluster_id_from_identity = - extract_cluster_id_from_identity(*identity); - - /* When we see inter-cluster communication and if - * the destination is IPV4_INTER_CLUSTER_SNAT, try - * to perform revSNAT. We tailcall from here since - * we saw the complexity issue when we added this - * logic in-line. - */ - if (cluster_id_from_identity != 0 && - cluster_id_from_identity != CLUSTER_ID && - ip4->daddr == IPV4_INTER_CLUSTER_SNAT) { - ctx_store_meta(ctx, CB_SRC_LABEL, *identity); - return tail_call_internal(ctx, - CILIUM_CALL_IPV4_INTER_CLUSTER_REVSNAT, - ext_err); - } - } -#endif - /* See comment at equivalent code in handle_ipv6() */ - if (info && (identity_is_remote_node(*identity) || - (is_dsr && identity_is_world_ipv4(*identity)))) - *identity = info->sec_identity; - } - -#ifdef ENABLE_IPSEC - if (!decrypted) { - __u16 node_id; - - /* IPSec is not currently enforce (feature coming soon) - * so for now just handle normally + { + __u32 cluster_id_from_identity = + extract_cluster_id_from_identity(*identity); + + /* When we see inter-cluster communication and if + * the destination is IPV4_INTER_CLUSTER_SNAT, try + * to perform revSNAT. We tailcall from here since + * we saw the complexity issue when we added this + * logic in-line. */ - if (ip4->protocol != IPPROTO_ESP) { - update_metrics(ctx_full_len(ctx), METRIC_INGRESS, - REASON_PLAINTEXT); - goto not_esp; + if (cluster_id_from_identity != 0 && + cluster_id_from_identity != CLUSTER_ID && + ip4->daddr == IPV4_INTER_CLUSTER_SNAT) { + ctx_store_meta(ctx, CB_SRC_LABEL, *identity); + return tail_call_internal(ctx, + CILIUM_CALL_IPV4_INTER_CLUSTER_REVSNAT, + ext_err); } + } +#endif - node_id = lookup_ip4_node_id(ip4->saddr); - if (!node_id) - return DROP_NO_NODE_ID; - set_ipsec_decrypt_mark(ctx, node_id); - - /* To IPSec stack on cilium_vxlan we are going to pass - * this up the stack but eth_type_trans has already labeled - * this as an OTHERHOST type packet. To avoid being dropped - * by IP stack before IPSec can be processed mark as a HOST - * packet. - */ - ctx_change_type(ctx, PACKET_HOST); - - send_trace_notify(ctx, TRACE_TO_STACK, *identity, UNKNOWN_ID, - TRACE_EP_ID_UNKNOWN, ctx->ingress_ifindex, - TRACE_REASON_ENCRYPTED, 0, bpf_htons(ETH_P_IP)); + /* See comment at equivalent code in handle_ipv6() */ + if (info && (identity_is_remote_node(*identity) || + (is_dsr && identity_is_world_ipv4(*identity)))) + *identity = info->sec_identity; - return CTX_ACT_OK; - } - ctx->mark = 0; -not_esp: +#ifdef ENABLE_IPSEC + if (ip4->protocol != IPPROTO_ESP) + update_metrics(ctx_full_len(ctx), METRIC_INGRESS, + REASON_PLAINTEXT); #endif #if defined(ENABLE_EGRESS_GATEWAY_COMMON) @@ -660,7 +565,6 @@ int cil_from_overlay(struct __ctx_buff *ctx) { __u32 src_sec_identity = 0; __s8 ext_err = 0; - bool decrypted = false; __u16 proto; int ret; @@ -678,12 +582,9 @@ int cil_from_overlay(struct __ctx_buff *ctx) * * 1. ESP packets coming from overlay (encrypted and not marked) * 2. Non-ESP packets coming from overlay (plain and not marked) - * 3. Non-ESP packets coming from stack re-inserted by xfrm (plain - * and marked with MARK_MAGIC_DECRYPT. Only in IPSec mode.) * * 1. will be traced with TRACE_REASON_ENCRYPTED * 2. will be traced without TRACE_REASON_ENCRYPTED - * 3. will be traced without TRACE_REASON_ENCRYPTED * * Note that 1. contains the ESP packets someone else generated. * In that case, we trace it as "encrypted", but it doesn't mean @@ -693,9 +594,6 @@ int cil_from_overlay(struct __ctx_buff *ctx) * if the packets are ESP, because it doesn't matter for the * non-IPSec mode. */ -#ifdef ENABLE_IPSEC - decrypted = ((ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_DECRYPT); -#endif switch (proto) { #if defined(ENABLE_IPV4) || defined(ENABLE_IPV6) @@ -705,29 +603,29 @@ int cil_from_overlay(struct __ctx_buff *ctx) #ifdef ENABLE_IPV4 case bpf_htons(ETH_P_IP): #endif - /* If packets are decrypted the key has already been pushed into metadata. */ - if (!decrypted) { - struct bpf_tunnel_key key = {}; - - ret = get_tunnel_key(ctx, &key); - if (unlikely(ret < 0)) - goto out; - cilium_dbg(ctx, DBG_DECAP, key.tunnel_id, key.tunnel_label); - - src_sec_identity = get_id_from_tunnel_id(key.tunnel_id, proto); - - /* Any node encapsulating will map any HOST_ID source to be - * presented as REMOTE_NODE_ID, therefore any attempt to signal - * HOST_ID as source from a remote node can be dropped. - */ - if (src_sec_identity == HOST_ID) { - ret = DROP_INVALID_IDENTITY; - goto out; - } - - ctx_store_meta(ctx, CB_SRC_LABEL, src_sec_identity); + + { + struct bpf_tunnel_key key = {}; + + ret = get_tunnel_key(ctx, &key); + if (unlikely(ret < 0)) + goto out; + cilium_dbg(ctx, DBG_DECAP, key.tunnel_id, key.tunnel_label); + + src_sec_identity = get_id_from_tunnel_id(key.tunnel_id, proto); + + /* Any node encapsulating will map any HOST_ID source to be + * presented as REMOTE_NODE_ID, therefore any attempt to signal + * HOST_ID as source from a remote node can be dropped. + */ + if (src_sec_identity == HOST_ID) { + ret = DROP_INVALID_IDENTITY; + goto out; } - break; + + ctx_store_meta(ctx, CB_SRC_LABEL, src_sec_identity); + } + break; #endif /* ENABLE_IPV4 || ENABLE_IPV6 */ default: break; @@ -740,19 +638,9 @@ int cil_from_overlay(struct __ctx_buff *ctx) TRACE_REASON_ENCRYPTED, 0, proto); else #endif - { - enum trace_point obs_point = TRACE_FROM_OVERLAY; - - /* Non-ESP packet marked with MARK_MAGIC_DECRYPT is a packet - * re-inserted from the stack. - */ - if (decrypted) - obs_point = TRACE_FROM_STACK; - - send_trace_notify(ctx, obs_point, src_sec_identity, UNKNOWN_ID, + send_trace_notify(ctx, TRACE_FROM_OVERLAY, src_sec_identity, UNKNOWN_ID, TRACE_EP_ID_UNKNOWN, ctx->ingress_ifindex, TRACE_REASON_UNKNOWN, TRACE_PAYLOAD_LEN, proto); - } switch (proto) { case bpf_htons(ETH_P_IPV6): diff --git a/bpf/tests/ipsec_from_overlay_generic.h b/bpf/tests/ipsec_from_overlay_generic.h deleted file mode 100644 index 860e7b52b120c..0000000000000 --- a/bpf/tests/ipsec_from_overlay_generic.h +++ /dev/null @@ -1,529 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ -/* Copyright Authors of Cilium */ - -#define NODE_ID 2333 -#define ENCRYPT_KEY 3 -#define ENABLE_IPV4 -#define ENABLE_IPV6 -#define ENABLE_IPSEC -#define TUNNEL_MODE -#define ENCAP_IFINDEX 4 -#define DEST_IFINDEX 5 -#define DEST_LXC_ID 200 - -#include -#include "common.h" -#include "pktgen.h" - -#define skb_change_type mock_skb_change_type -int mock_skb_change_type(__maybe_unused struct __sk_buff *skb, __u32 type) -{ - if (type != PACKET_HOST) - return -1; - return 0; -} - -#define skb_get_tunnel_key mock_skb_get_tunnel_key -int mock_skb_get_tunnel_key(__maybe_unused struct __sk_buff *skb, - struct bpf_tunnel_key *to, - __maybe_unused __u32 size, - __maybe_unused __u32 flags) -{ - to->remote_ipv4 = v4_node_one; - /* 0xfffff is the default SECLABEL */ - to->tunnel_id = 0xfffff; - return 0; -} - -__section_entry -int mock_handle_policy(struct __ctx_buff *ctx __maybe_unused) -{ - /* https://github.com/cilium/cilium/blob/v1.16.0-pre.1/bpf/bpf_lxc.c#L2040 */ -#if defined(ENABLE_ENDPOINT_ROUTES) && !defined(ENABLE_NODEPORT) - return TC_ACT_OK; -#else - return TC_ACT_REDIRECT; -#endif -} - -struct { - __uint(type, BPF_MAP_TYPE_PROG_ARRAY); - __uint(key_size, sizeof(__u32)); - __uint(max_entries, 256); - __array(values, int()); -} mock_policy_call_map __section(".maps") = { - .values = { - [DEST_LXC_ID] = &mock_handle_policy, - }, -}; - -#define tail_call_dynamic mock_tail_call_dynamic -static __always_inline __maybe_unused void -mock_tail_call_dynamic(struct __ctx_buff *ctx __maybe_unused, - const void *map __maybe_unused, __u32 slot __maybe_unused) -{ - tail_call(ctx, &mock_policy_call_map, slot); -} - -static volatile const __u8 *DEST_EP_MAC = mac_three; -static volatile const __u8 *DEST_NODE_MAC = mac_four; - -#include "bpf_overlay.c" - -#include "lib/endpoint.h" -#include "lib/ipcache.h" -#include "lib/node.h" - -#define FROM_OVERLAY 0 -#define ESP_SEQUENCE 69865 - -struct { - __uint(type, BPF_MAP_TYPE_PROG_ARRAY); - __uint(key_size, sizeof(__u32)); - __uint(max_entries, 1); - __array(values, int()); -} entry_call_map __section(".maps") = { - .values = { - [FROM_OVERLAY] = &cil_from_overlay, - }, -}; - -PKTGEN("tc", "ipv4_not_decrypted_ipsec_from_overlay") -int ipv4_not_decrypted_ipsec_from_overlay_pktgen(struct __ctx_buff *ctx) -{ - struct pktgen builder; - struct iphdr *l3; - struct ip_esp_hdr *l4; - void *data; - - pktgen__init(&builder, ctx); - - l3 = pktgen__push_ipv4_packet(&builder, (__u8 *)mac_one, (__u8 *)mac_two, - v4_pod_one, v4_pod_two); - if (!l3) - return TEST_ERROR; - - l4 = pktgen__push_default_esphdr(&builder); - if (!l4) - return TEST_ERROR; - l4->spi = ENCRYPT_KEY; - l4->seq_no = ESP_SEQUENCE; - - data = pktgen__push_data(&builder, default_data, sizeof(default_data)); - if (!data) - return TEST_ERROR; - - pktgen__finish(&builder); - return 0; -} - -SETUP("tc", "ipv4_not_decrypted_ipsec_from_overlay") -int ipv4_not_decrypted_ipsec_from_overlay_setup(struct __ctx_buff *ctx) -{ - /* We need to populate the node ID map because we'll lookup into it on - * ingress to find the node ID to use to match against XFRM IN states. - */ - node_v4_add_entry(v4_pod_one, NODE_ID, ENCRYPT_KEY); - - tail_call_static(ctx, entry_call_map, FROM_OVERLAY); - return TEST_ERROR; -} - -CHECK("tc", "ipv4_not_decrypted_ipsec_from_overlay") -int ipv4_not_decrypted_ipsec_from_overlay_check(__maybe_unused const struct __ctx_buff *ctx) -{ - void *data; - void *data_end; - __u32 *status_code; - struct ethhdr *l2; - struct iphdr *l3; - struct ip_esp_hdr *l4; - __u8 *payload; - - test_init(); - - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_OK); - assert(ctx->mark == (MARK_MAGIC_DECRYPT | NODE_ID << 16)); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IP)) - test_fatal("l2 proto hasn't been set to ETH_P_IP"); - - if (memcmp(l2->h_source, (__u8 *)mac_one, ETH_ALEN) != 0) - test_fatal("src mac hasn't been set to source ep's mac"); - - if (memcmp(l2->h_dest, (__u8 *)mac_two, ETH_ALEN) != 0) - test_fatal("dest mac hasn't been set to dest ep's mac"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct iphdr) > data_end) - test_fatal("l3 out of bounds"); - - if (l3->saddr != v4_pod_one) - test_fatal("src IP was changed"); - - if (l3->daddr != v4_pod_two) - test_fatal("dest IP was changed"); - - if (l3->check != bpf_htons(0xf948)) - test_fatal("L3 checksum is invalid: %x", bpf_htons(l3->check)); - - l4 = (void *)l3 + sizeof(struct iphdr); - - if ((void *)l4 + sizeof(struct ip_esp_hdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->spi != ENCRYPT_KEY) - test_fatal("ESP spi was changed"); - - if (l4->seq_no != ESP_SEQUENCE) - test_fatal("ESP seq was changed"); - - payload = (void *)l4 + sizeof(struct ip_esp_hdr); - if ((void *)payload + sizeof(default_data) > data_end) - test_fatal("paylaod out of bounds\n"); - - if (memcmp(payload, default_data, sizeof(default_data)) != 0) - test_fatal("tcp payload was changed"); - - test_finish(); -} - -PKTGEN("tc", "ipv6_not_decrypted_ipsec_from_overlay") -int ipv6_not_decrypted_ipsec_from_overlay_pktgen(struct __ctx_buff *ctx) -{ - struct pktgen builder; - struct ipv6hdr *l3; - struct ip_esp_hdr *l4; - void *data; - - pktgen__init(&builder, ctx); - - l3 = pktgen__push_ipv6_packet(&builder, (__u8 *)mac_one, (__u8 *)mac_two, - (__u8 *)v6_pod_one, (__u8 *)v6_pod_two); - if (!l3) - return TEST_ERROR; - - l4 = pktgen__push_default_esphdr(&builder); - if (!l4) - return TEST_ERROR; - l4->spi = ENCRYPT_KEY; - l4->seq_no = ESP_SEQUENCE; - - data = pktgen__push_data(&builder, default_data, sizeof(default_data)); - if (!data) - return TEST_ERROR; - - pktgen__finish(&builder); - return 0; -} - -SETUP("tc", "ipv6_not_decrypted_ipsec_from_overlay") -int ipv6_not_decrypted_ipsec_from_overlay_setup(struct __ctx_buff *ctx) -{ - /* We need to populate the node ID map because we'll lookup into it on - * ingress to find the node ID to use to match against XFRM IN states. - */ - node_v6_add_entry((union v6addr *)v6_pod_one, NODE_ID, ENCRYPT_KEY); - - tail_call_static(ctx, entry_call_map, FROM_OVERLAY); - return TEST_ERROR; -} - -CHECK("tc", "ipv6_not_decrypted_ipsec_from_overlay") -int ipv6_not_decrypted_ipsec_from_overlay_check(__maybe_unused const struct __ctx_buff *ctx) -{ - void *data; - void *data_end; - __u32 *status_code; - struct ethhdr *l2; - struct ipv6hdr *l3; - struct ip_esp_hdr *l4; - __u8 *payload; - - test_init(); - - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_OK); - assert(ctx->mark == (MARK_MAGIC_DECRYPT | NODE_ID << 16)); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IPV6)) - test_fatal("l2 proto hasn't been set to ETH_P_IP"); - - if (memcmp(l2->h_source, (__u8 *)mac_one, ETH_ALEN) != 0) - test_fatal("src mac hasn't been set to source ep's mac"); - - if (memcmp(l2->h_dest, (__u8 *)mac_two, ETH_ALEN) != 0) - test_fatal("dest mac hasn't been set to dest ep's mac"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct ipv6hdr) > data_end) - test_fatal("l3 out of bounds"); - - if (memcmp((__u8 *)&l3->saddr, (__u8 *)v6_pod_one, 16) != 0) - test_fatal("src IP was changed"); - - if (memcmp((__u8 *)&l3->daddr, (__u8 *)v6_pod_two, 16) != 0) - test_fatal("dest IP was changed"); - - l4 = (void *)l3 + sizeof(struct ipv6hdr); - - if ((void *)l4 + sizeof(struct ip_esp_hdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->spi != ENCRYPT_KEY) - test_fatal("ESP spi was changed"); - - if (l4->seq_no != ESP_SEQUENCE) - test_fatal("ESP seq was changed"); - - payload = (void *)l4 + sizeof(struct ip_esp_hdr); - if ((void *)payload + sizeof(default_data) > data_end) - test_fatal("paylaod out of bounds\n"); - - if (memcmp(payload, default_data, sizeof(default_data)) != 0) - test_fatal("tcp payload was changed"); - - test_finish(); -} - -PKTGEN("tc", "ipv4_decrypted_ipsec_from_overlay") -int ipv4_decrypted_ipsec_from_overlay_pktgen(struct __ctx_buff *ctx) -{ - struct pktgen builder; - struct tcphdr *l4; - void *data; - - pktgen__init(&builder, ctx); - - l4 = pktgen__push_ipv4_tcp_packet(&builder, - (__u8 *)mac_one, (__u8 *)mac_two, - v4_pod_one, v4_pod_two, - tcp_src_one, tcp_svc_one); - if (!l4) - return TEST_ERROR; - - data = pktgen__push_data(&builder, default_data, sizeof(default_data)); - if (!data) - return TEST_ERROR; - - pktgen__finish(&builder); - return 0; -} - -SETUP("tc", "ipv4_decrypted_ipsec_from_overlay") -int ipv4_decrypted_ipsec_from_overlay_setup(struct __ctx_buff *ctx) -{ - endpoint_v4_add_entry(v4_pod_two, DEST_IFINDEX, DEST_LXC_ID, 0, 0, 0, - (__u8 *)DEST_EP_MAC, (__u8 *)DEST_NODE_MAC); - - ctx->mark = MARK_MAGIC_DECRYPT; - tail_call_static(ctx, entry_call_map, FROM_OVERLAY); - return TEST_ERROR; -} - -CHECK("tc", "ipv4_decrypted_ipsec_from_overlay") -int ipv4_decrypted_ipsec_from_overlay_check(__maybe_unused const struct __ctx_buff *ctx) -{ - void *data; - void *data_end; - __u32 *status_code; - struct ethhdr *l2; - struct iphdr *l3; - struct tcphdr *l4; - __u8 *payload; - - test_init(); - - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == EXPECTED_STATUS_CODE_FOR_DECRYPTED); - assert(ctx->mark == 0); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IP)) - test_fatal("l2 proto hasn't been set to ETH_P_IP"); - - if (memcmp(l2->h_source, (__u8 *)DEST_NODE_MAC, ETH_ALEN) != 0) - test_fatal("src mac hasn't been set to source ep's mac"); - - if (memcmp(l2->h_dest, (__u8 *)DEST_EP_MAC, ETH_ALEN) != 0) - test_fatal("dest mac hasn't been set to dest ep's mac"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct iphdr) > data_end) - test_fatal("l3 out of bounds"); - - if (l3->saddr != v4_pod_one) - test_fatal("src IP was changed"); - - if (l3->daddr != v4_pod_two) - test_fatal("dest IP was changed"); - - if (l3->check != bpf_htons(0xfa68)) - test_fatal("L3 checksum is invalid: %x", bpf_htons(l3->check)); - - l4 = (void *)l3 + sizeof(struct iphdr); - - if ((void *)l4 + sizeof(struct tcphdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->source != tcp_src_one) - test_fatal("src TCP port was changed"); - - if (l4->dest != tcp_svc_one) - test_fatal("dst TCP port was changed"); - - if (l4->check != bpf_htons(0x589c)) - test_fatal("L4 checksum is invalid: %x", bpf_htons(l4->check)); - - payload = (void *)l4 + sizeof(struct tcphdr); - if ((void *)payload + sizeof(default_data) > data_end) - test_fatal("paylaod out of bounds\n"); - - if (memcmp(payload, default_data, sizeof(default_data)) != 0) - test_fatal("tcp payload was changed"); - - test_finish(); -} - -PKTGEN("tc", "ipv6_decrypted_ipsec_from_overlay") -int ipv6_decrypted_ipsec_from_overlay_pktgen(struct __ctx_buff *ctx) -{ - struct pktgen builder; - struct tcphdr *l4; - void *data; - - pktgen__init(&builder, ctx); - - l4 = pktgen__push_ipv6_tcp_packet(&builder, - (__u8 *)mac_one, (__u8 *)mac_two, - (__u8 *)v6_pod_one, (__u8 *)v6_pod_two, - tcp_src_one, tcp_svc_one); - if (!l4) - return TEST_ERROR; - - data = pktgen__push_data(&builder, default_data, sizeof(default_data)); - if (!data) - return TEST_ERROR; - - pktgen__finish(&builder); - return 0; -} - -SETUP("tc", "ipv6_decrypted_ipsec_from_overlay") -int ipv6_decrypted_ipsec_from_overlay_setup(struct __ctx_buff *ctx) -{ - endpoint_v6_add_entry((union v6addr *)v6_pod_two, DEST_IFINDEX, DEST_LXC_ID, - 0, 0, (__u8 *)DEST_EP_MAC, (__u8 *)DEST_NODE_MAC); - - ctx->mark = MARK_MAGIC_DECRYPT; - tail_call_static(ctx, entry_call_map, FROM_OVERLAY); - return TEST_ERROR; -} - -CHECK("tc", "ipv6_decrypted_ipsec_from_overlay") -int ipv6_decrypted_ipsec_from_overlay_check(__maybe_unused const struct __ctx_buff *ctx) -{ - void *data; - void *data_end; - __u32 *status_code; - struct ethhdr *l2; - struct ipv6hdr *l3; - struct tcphdr *l4; - __u8 *payload; - - test_init(); - - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == EXPECTED_STATUS_CODE_FOR_DECRYPTED); - assert(ctx->mark == 0); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IPV6)) - test_fatal("l2 proto hasn't been set to ETH_P_IP"); - - if (memcmp(l2->h_source, (__u8 *)DEST_NODE_MAC, ETH_ALEN) != 0) - test_fatal("src mac hasn't been set to source ep's mac"); - - if (memcmp(l2->h_dest, (__u8 *)DEST_EP_MAC, ETH_ALEN) != 0) - test_fatal("dest mac hasn't been set to dest ep's mac"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct ipv6hdr) > data_end) - test_fatal("l3 out of bounds"); - - if (memcmp((__u8 *)&l3->saddr, (__u8 *)v6_pod_one, 16) != 0) - test_fatal("src IP was changed"); - - if (memcmp((__u8 *)&l3->daddr, (__u8 *)v6_pod_two, 16) != 0) - test_fatal("dest IP was changed"); - - l4 = (void *)l3 + sizeof(struct ipv6hdr); - - if ((void *)l4 + sizeof(struct tcphdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->source != tcp_src_one) - test_fatal("src TCP port was changed"); - - if (l4->dest != tcp_svc_one) - test_fatal("dst TCP port was changed"); - - if (l4->check != bpf_htons(0xdfe3)) - test_fatal("L4 checksum is invalid: %x", bpf_htons(l4->check)); - - payload = (void *)l4 + sizeof(struct tcphdr); - if ((void *)payload + sizeof(default_data) > data_end) - test_fatal("paylaod out of bounds\n"); - - if (memcmp(payload, default_data, sizeof(default_data)) != 0) - test_fatal("tcp payload was changed"); - - test_finish(); -} diff --git a/bpf/tests/ipsec_from_overlay_tunnel.c b/bpf/tests/ipsec_from_overlay_tunnel.c deleted file mode 100644 index 7099e1a9bd0d7..0000000000000 --- a/bpf/tests/ipsec_from_overlay_tunnel.c +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -/* Copyright Authors of Cilium */ - -#define EXPECTED_STATUS_CODE_FOR_DECRYPTED TC_ACT_REDIRECT - -#include "ipsec_from_overlay_generic.h" diff --git a/bpf/tests/ipsec_from_overlay_tunnel_endpoint.c b/bpf/tests/ipsec_from_overlay_tunnel_endpoint.c deleted file mode 100644 index 63b74ef967191..0000000000000 --- a/bpf/tests/ipsec_from_overlay_tunnel_endpoint.c +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -/* Copyright Authors of Cilium */ - -#define ENABLE_ENDPOINT_ROUTES 1 - -#define EXPECTED_STATUS_CODE_FOR_DECRYPTED TC_ACT_OK - -#include "ipsec_from_overlay_generic.h" From 389db51578241529565424ff779f16ef2c9decb7 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 4 Sep 2025 18:42:38 +0300 Subject: [PATCH 028/176] bpf: overlay: fine-tune ipcache lookup in ingress path Ideally we're not using the ipcache to determine the source identity, but fully rely on the identity transported via VNI. Condense the inbound path a bit to have more clarity in which cases we still require a ipcache lookup. Signed-off-by: Julian Wiedmann --- bpf/bpf_overlay.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/bpf/bpf_overlay.c b/bpf/bpf_overlay.c index 5af74e2a9c8ec..3b1d9f1ad4cdd 100644 --- a/bpf/bpf_overlay.c +++ b/bpf/bpf_overlay.c @@ -57,7 +57,6 @@ static __always_inline int handle_ipv6(struct __ctx_buff *ctx, __s8 *ext_err __maybe_unused) { int ret, l3_off = ETH_HLEN; - struct remote_endpoint_info *info; void *data_end, *data; struct ipv6hdr *ip6; struct endpoint_info *ep; @@ -98,7 +97,6 @@ static __always_inline int handle_ipv6(struct __ctx_buff *ctx, if (!revalidate_data(ctx, &data, &data_end, &ip6)) return DROP_INVALID; - info = lookup_ip6_remote_endpoint((union v6addr *)&ip6->saddr, 0); /* Maybe overwrite the REMOTE_NODE_ID with * KUBE_APISERVER_NODE_ID to support upgrade. After v1.12, * identity_is_remote_node() should be removed. @@ -106,9 +104,14 @@ static __always_inline int handle_ipv6(struct __ctx_buff *ctx, * A packet that has DSR info and comes from `world` may have specific identity when * a CNP that is using CIDR rules is applied. */ - if (info && (identity_is_remote_node(*identity) || - (is_dsr && identity_is_world_ipv6(*identity)))) - *identity = info->sec_identity; + if (identity_is_remote_node(*identity) || + (is_dsr && identity_is_world_ipv6(*identity))) { + struct remote_endpoint_info *info; + + info = lookup_ip6_remote_endpoint((union v6addr *)&ip6->saddr, 0); + if (info) + *identity = info->sec_identity; + } #ifdef ENABLE_IPSEC if (ip6->nexthdr != IPPROTO_ESP) @@ -287,7 +290,6 @@ static __always_inline int handle_ipv4(struct __ctx_buff *ctx, __u32 *identity, __s8 *ext_err __maybe_unused) { - struct remote_endpoint_info *info; void *data_end, *data; struct iphdr *ip4; struct endpoint_info *ep; @@ -339,8 +341,6 @@ static __always_inline int handle_ipv4(struct __ctx_buff *ctx, if (!revalidate_data(ctx, &data, &data_end, &ip4)) return DROP_INVALID; - info = lookup_ip4_remote_endpoint(ip4->saddr, 0); - #ifdef ENABLE_VTEP { struct vtep_key vkey = {}; @@ -381,9 +381,14 @@ static __always_inline int handle_ipv4(struct __ctx_buff *ctx, #endif /* See comment at equivalent code in handle_ipv6() */ - if (info && (identity_is_remote_node(*identity) || - (is_dsr && identity_is_world_ipv4(*identity)))) - *identity = info->sec_identity; + if (identity_is_remote_node(*identity) || + (is_dsr && identity_is_world_ipv4(*identity))) { + struct remote_endpoint_info *info; + + info = lookup_ip4_remote_endpoint(ip4->saddr, 0); + if (info) + *identity = info->sec_identity; + } #ifdef ENABLE_IPSEC if (ip4->protocol != IPPROTO_ESP) From f8a3cb35cec1a3d1a18476ac7bbdea67d61a2266 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 14 Sep 2025 00:43:34 +0000 Subject: [PATCH 029/176] fix(deps): update module github.com/azure/azure-sdk-for-go/sdk/azcore to v1.19.1 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 +-- .../azure-sdk-for-go/sdk/azcore/CHANGELOG.md | 11 ++++++++ .../internal/resource/resource_identifier.go | 25 +++++++++++++++---- .../sdk/azcore/internal/shared/constants.go | 2 +- .../sdk/azcore/runtime/poller.go | 2 +- vendor/modules.txt | 2 +- 7 files changed, 37 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index a0b7967e27b21..557d2f5c2653e 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.25.0 require ( github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v7 v7.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v7 v7.0.0 diff --git a/go.sum b/go.sum index 5d7ac7a446597..4fdb5293a5183 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8af github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20250520111509-a70c2aa677fa h1:x6kFzdPgBoLbyoNkA/jny0ENpoEz4wqY8lPTQL2DPkg= github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20250520111509-a70c2aa677fa/go.mod h1:gCLVsLfv1egrcZu+GoJATN5ts75F2s62ih/457eWzOw= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0 h1:ci6Yd6nysBRLEodoziB6ah1+YOzZbZk+NYneoA6q+6E= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0/go.mod h1:QyVsSSN64v5TGltphKLQ2sQxe4OBQg0J1eKRcVBnfgE= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0 h1:MhRfI58HblXzCtWEZCO0feHs8LweePB3s90r7WaR1KU= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0/go.mod h1:okZ+ZURbArNdlJ+ptXoyHNuOETzOl1Oww19rm8I2WLA= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md index c73744e2309f1..1799c6ef223f9 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md @@ -1,5 +1,16 @@ # Release History +## 1.19.1 (2025-09-11) + +### Bugs Fixed + +* Fixed resource identifier parsing for provider-specific resource hierarchies containing "resourceGroups" segments. + +### Other Changes + +* Improved error fall-back for improperly authored long-running operations. +* Upgraded dependencies. + ## 1.19.0 (2025-08-21) ### Features Added diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go index a08d3d0ffa682..b8348b7d82e81 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go @@ -123,9 +123,9 @@ func newResourceIDWithProvider(parent *ResourceID, providerNamespace, resourceTy } func chooseResourceType(resourceTypeName string, parent *ResourceID) ResourceType { - if strings.EqualFold(resourceTypeName, resourceGroupsLowerKey) { + if strings.EqualFold(resourceTypeName, resourceGroupsLowerKey) && isSubscriptionResource(parent) { return ResourceGroupResourceType - } else if strings.EqualFold(resourceTypeName, subscriptionsKey) && parent != nil && parent.ResourceType.String() == TenantResourceType.String() { + } else if strings.EqualFold(resourceTypeName, subscriptionsKey) && isTenantResource(parent) { return SubscriptionResourceType } @@ -182,12 +182,12 @@ func appendNext(parent *ResourceID, parts []string, id string) (*ResourceID, err if len(parts) == 1 { // subscriptions and resourceGroups are not valid ids without their names - if strings.EqualFold(parts[0], subscriptionsKey) || strings.EqualFold(parts[0], resourceGroupsLowerKey) { + if strings.EqualFold(parts[0], subscriptionsKey) && isTenantResource(parent) || strings.EqualFold(parts[0], resourceGroupsLowerKey) && isSubscriptionResource(parent) { return nil, fmt.Errorf("invalid resource ID: %s", id) } // resourceGroup must contain either child or provider resource type - if parent.ResourceType.String() == ResourceGroupResourceType.String() { + if isResourceGroupResource(parent) { return nil, fmt.Errorf("invalid resource ID: %s", id) } @@ -196,7 +196,7 @@ func appendNext(parent *ResourceID, parts []string, id string) (*ResourceID, err if strings.EqualFold(parts[0], providersKey) && (len(parts) == 2 || strings.EqualFold(parts[2], providersKey)) { // provider resource can only be on a tenant or a subscription parent - if parent.ResourceType.String() != SubscriptionResourceType.String() && parent.ResourceType.String() != TenantResourceType.String() { + if !isSubscriptionResource(parent) && !isTenantResource(parent) { return nil, fmt.Errorf("invalid resource ID: %s", id) } @@ -225,3 +225,18 @@ func splitStringAndOmitEmpty(v, sep string) []string { return r } + +// isTenantResource returns true if the resourceID represents a tenant resource. The condition is resource ID matched with TenantResourceType and has no parent. +func isTenantResource(resourceID *ResourceID) bool { + return resourceID != nil && strings.EqualFold(resourceID.ResourceType.String(), TenantResourceType.String()) && resourceID.Parent == nil +} + +// isSubscriptionResource returns true if the resourceID represents a subscription resource. The condition is resource ID matched with SubscriptionResourceType and its parent is a tenant resource. +func isSubscriptionResource(resourceID *ResourceID) bool { + return resourceID != nil && strings.EqualFold(resourceID.ResourceType.String(), SubscriptionResourceType.String()) && isTenantResource(resourceID.Parent) +} + +// isResourceGroupResource returns true if the resourceID represents a resource group resource. The condition is resource ID matched with ResourceGroupResourceType and its parent is a subscription resource. +func isResourceGroupResource(resourceID *ResourceID) bool { + return resourceID != nil && strings.EqualFold(resourceID.ResourceType.String(), ResourceGroupResourceType.String()) && isSubscriptionResource(resourceID.Parent) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go index 9fb41a405ab38..8aebe5ce53b97 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go @@ -40,5 +40,5 @@ const ( Module = "azcore" // Version is the semantic version (see http://semver.org) of this module. - Version = "v1.19.0" + Version = "v1.19.1" ) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go index 4f90e44743238..a89ae9b7b9d52 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go @@ -91,7 +91,7 @@ func NewPoller[T any](resp *http.Response, pl exported.Pipeline, options *NewPol // this is a back-stop in case the swagger is incorrect (i.e. missing one or more status codes for success). // ideally the codegen should return an error if the initial response failed and not even create a poller. if !poller.StatusCodeValid(resp) { - return nil, errors.New("the operation failed or was cancelled") + return nil, exported.NewResponseError(resp) } // determine the polling method diff --git a/vendor/modules.txt b/vendor/modules.txt index 71fb3999d379d..60406cfa2697d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -10,7 +10,7 @@ github.com/AdaLogics/go-fuzz-headers # github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20250520111509-a70c2aa677fa ## explicit; go 1.18 github.com/AdamKorcz/go-118-fuzz-build/testing -# github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0 +# github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 ## explicit; go 1.23.0 github.com/Azure/azure-sdk-for-go/sdk/azcore github.com/Azure/azure-sdk-for-go/sdk/azcore/arm From 09b6dfc9fcdd82e36b56b8df8cf4f8653be5cd01 Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Thu, 21 Aug 2025 16:21:06 +0100 Subject: [PATCH 030/176] loadbalancer: add helper to unformat a l4 addr L4AddrFromString takes in a string formatted L4Addr (as in 443/tcp) and returns an equivalent L4Addr struct Signed-off-by: Bernardo Soares --- pkg/loadbalancer/errors.go | 3 +++ pkg/loadbalancer/loadbalancer.go | 21 +++++++++++++++++++ pkg/loadbalancer/loadbalancer_test.go | 29 +++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/pkg/loadbalancer/errors.go b/pkg/loadbalancer/errors.go index 8af4b5774fc59..6f1b3e1da03d6 100644 --- a/pkg/loadbalancer/errors.go +++ b/pkg/loadbalancer/errors.go @@ -13,4 +13,7 @@ var ( // ErrFrontendConflict occurs when a frontend is being upserted but it already // exists and is owned by a different service. ErrFrontendConflict = errors.New("frontend already owned by another service") + + // ErrInvalidL4Addr occurs when L4AddrFromString attempts to parse a malformed L4Addr string + ErrInvalidL4Addr = errors.New("invalid l4 addr format. expected /") ) diff --git a/pkg/loadbalancer/loadbalancer.go b/pkg/loadbalancer/loadbalancer.go index e8cb7f7ce285c..ac652a8879c97 100644 --- a/pkg/loadbalancer/loadbalancer.go +++ b/pkg/loadbalancer/loadbalancer.go @@ -777,6 +777,27 @@ func (l L4Addr) String() string { return fmt.Sprintf("%d/%s", l.Port, l.Protocol) } +// L4AddrFromString returns a L4Addr from its string representation. +func L4AddrFromString(s string) (L4Addr, error) { + splitted := strings.Split(s, "/") + + if len(splitted) != 2 { + return L4Addr{}, fmt.Errorf("%w for %s", ErrInvalidL4Addr, s) + } + + proto, err := NewL4Type(strings.ToUpper(splitted[1])) + if err != nil { + return L4Addr{}, fmt.Errorf("%w for %s", err, splitted[0]) + } + + portUInt64, err := strconv.ParseUint(splitted[0], 10, 16) + if err != nil { + return L4Addr{}, fmt.Errorf("%s is not a valid port number. %w", splitted[1], err) + } + + return NewL4Addr(proto, uint16(portUInt64)), nil +} + // L3n4Addr is an unique L3+L4 address and scope (for traffic policies). type L3n4Addr unique.Handle[l3n4AddrRep] diff --git a/pkg/loadbalancer/loadbalancer_test.go b/pkg/loadbalancer/loadbalancer_test.go index c8b58ddce2777..545571a2772e9 100644 --- a/pkg/loadbalancer/loadbalancer_test.go +++ b/pkg/loadbalancer/loadbalancer_test.go @@ -10,6 +10,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.yaml.in/yaml/v3" cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" @@ -601,6 +602,34 @@ func TestServiceNameYAMLJSON(t *testing.T) { } } +func TestL4AddrParsing(t *testing.T) { + type testCase struct { + err bool + input string + output L4Addr + } + + testCases := []testCase{ + {false, "443/tcp", L4Addr{Protocol: TCP, Port: 443}}, + {false, "1312/udp", L4Addr{Protocol: UDP, Port: 1312}}, + {true, "65538/tcp", L4Addr{}}, // port > 16 bits + {true, "123/abcd", L4Addr{}}, // unknown proto + } + + for _, tc := range testCases { + addr, err := L4AddrFromString(tc.input) + if tc.err { + assert.Error(t, err) + } else { + assert.NoError(t, err) + // test the conversion back + require.Equal(t, addr.String(), strings.ToUpper(tc.input)) + } + + require.Equal(t, tc.output, addr) + } +} + func BenchmarkNewServiceName(b *testing.B) { b.ReportAllocs() for b.Loop() { From adbefe36ca54bc48d362c966ccaee1646bdd3972 Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Thu, 21 Aug 2025 16:29:33 +0100 Subject: [PATCH 031/176] iptables: handle notrack rules for pods in hostNetwork extended iptables.Manager so it can install notrack rules for ports used by pods with the hostNetwork flag set to true. since the reference can come from many pods in the host ns, and they all share the host ns in the data path, rules are only changed when at least one reference to the port exists (if we're adding) or the last reference of a port goes away (if we're deleting) Signed-off-by: Bernardo Soares --- pkg/datapath/fake/types/iptables_manager.go | 6 + pkg/datapath/iptables/iptables.go | 270 +++++++++++++++++++- pkg/datapath/iptables/reconciler.go | 14 +- pkg/datapath/types/loader.go | 5 + 4 files changed, 277 insertions(+), 18 deletions(-) diff --git a/pkg/datapath/fake/types/iptables_manager.go b/pkg/datapath/fake/types/iptables_manager.go index 1c054a5f27e46..7227a80934288 100644 --- a/pkg/datapath/fake/types/iptables_manager.go +++ b/pkg/datapath/fake/types/iptables_manager.go @@ -35,3 +35,9 @@ func (m *FakeIptablesManager) InstallNoTrackRules(ip netip.Addr, port uint16) { func (m *FakeIptablesManager) RemoveNoTrackRules(ip netip.Addr, port uint16) { } + +func (m *FakeIptablesManager) AddNoTrackHostPorts(namespace, name string, ports []string) { +} + +func (m *FakeIptablesManager) RemoveNoTrackHostPorts(namespace, name string) { +} diff --git a/pkg/datapath/iptables/iptables.go b/pkg/datapath/iptables/iptables.go index 1c9256dac5253..7d47ac1c6d659 100644 --- a/pkg/datapath/iptables/iptables.go +++ b/pkg/datapath/iptables/iptables.go @@ -12,6 +12,7 @@ import ( "net/netip" "os" "regexp" + "slices" "strconv" "strings" @@ -27,6 +28,7 @@ import ( "github.com/cilium/cilium/pkg/byteorder" "github.com/cilium/cilium/pkg/cidr" "github.com/cilium/cilium/pkg/command/exec" + "github.com/cilium/cilium/pkg/container/set" "github.com/cilium/cilium/pkg/datapath/iptables/ipset" "github.com/cilium/cilium/pkg/datapath/linux/linux_defaults" "github.com/cilium/cilium/pkg/datapath/linux/route" @@ -78,6 +80,10 @@ var ( }, } } + + noTrackSupportedProtos = []lb.L4Type{ + lb.TCP, lb.UDP, + } ) const ( @@ -254,6 +260,37 @@ func (m *Manager) removeCiliumRules(table string, prog runnable, match string) e return nil } +type podAndNameSpace struct { + podName, namespace string +} + +// noTrackHostPortsByPod stores the ports passed in with the annotation /no-track-host-ports +// indexed by pod name+namespace +type noTrackHostPortsByPod map[podAndNameSpace]set.Set[lb.L4Addr] + +func (ports noTrackHostPortsByPod) flatten() set.Set[lb.L4Addr] { + result := set.Set[lb.L4Addr]{} + + for _, p := range ports { + result.Merge(p) + } + + return result +} + +func (ports noTrackHostPortsByPod) exclude(key podAndNameSpace) noTrackHostPortsByPod { + result := make(noTrackHostPortsByPod) + + for k, p := range ports { + if key == k { + continue + } + result[k] = p + } + + return result +} + // Manager manages the iptables-related configuration for Cilium. type Manager struct { logger *slog.Logger @@ -280,13 +317,15 @@ type Manager struct { } type reconcilerParams struct { - clock clock.WithTicker - localNodeStore *node.LocalNodeStore - db *statedb.DB - devices statedb.Table[*tables.Device] - proxies chan reconciliationRequest[proxyInfo] - addNoTrackPod chan reconciliationRequest[noTrackPodInfo] - delNoTrackPod chan reconciliationRequest[noTrackPodInfo] + clock clock.WithTicker + localNodeStore *node.LocalNodeStore + db *statedb.DB + devices statedb.Table[*tables.Device] + proxies chan reconciliationRequest[proxyInfo] + addNoTrackPod chan reconciliationRequest[noTrackPodInfo] + delNoTrackPod chan reconciliationRequest[noTrackPodInfo] + addNoTrackHostPorts chan reconciliationRequest[noTrackHostPortsPodInfo] + delNoTrackHostPorts chan reconciliationRequest[podAndNameSpace] } type params struct { @@ -317,13 +356,15 @@ func newIptablesManager(p params) datapath.IptablesManager { sharedCfg: p.SharedCfg, argsInit: lock.NewStoppableWaitGroup(), reconcilerParams: reconcilerParams{ - clock: clock.RealClock{}, - localNodeStore: p.LocalNodeStore, - db: p.DB, - devices: p.Devices, - proxies: make(chan reconciliationRequest[proxyInfo]), - addNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), - delNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), + clock: clock.RealClock{}, + localNodeStore: p.LocalNodeStore, + db: p.DB, + devices: p.Devices, + proxies: make(chan reconciliationRequest[proxyInfo]), + addNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), + delNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), + addNoTrackHostPorts: make(chan reconciliationRequest[noTrackHostPortsPodInfo]), + delNoTrackHostPorts: make(chan reconciliationRequest[podAndNameSpace]), }, haveIp6tables: true, cniConfigManager: p.CNIConfigManager, @@ -474,6 +515,8 @@ func (m *Manager) Stop(ctx cell.HookContext) error { close(m.reconcilerParams.proxies) close(m.reconcilerParams.addNoTrackPod) close(m.reconcilerParams.delNoTrackPod) + close(m.reconcilerParams.addNoTrackHostPorts) + close(m.reconcilerParams.delNoTrackHostPorts) return nil } @@ -1112,6 +1155,30 @@ func (m *Manager) RemoveNoTrackRules(ip netip.Addr, port uint16) { <-reconciled } +func (m *Manager) AddNoTrackHostPorts(namespace, name string, ports []string) { + if !m.sharedCfg.InstallNoConntrackIptRules { + return + } + + podName := podAndNameSpace{podName: name, namespace: namespace} + + reconciled := make(chan struct{}) + m.reconcilerParams.addNoTrackHostPorts <- reconciliationRequest[noTrackHostPortsPodInfo]{noTrackHostPortsPodInfo{podName, ports}, reconciled} + <-reconciled +} + +func (m *Manager) RemoveNoTrackHostPorts(namespace, name string) { + if !m.sharedCfg.InstallNoConntrackIptRules { + return + } + + podName := podAndNameSpace{podName: name, namespace: namespace} + + reconciled := make(chan struct{}) + m.reconcilerParams.delNoTrackHostPorts <- reconciliationRequest[podAndNameSpace]{podName, reconciled} + <-reconciled +} + func (m *Manager) InstallProxyRules(proxyPort uint16, name string) { reconciled := make(chan struct{}) m.reconcilerParams.proxies <- reconciliationRequest[proxyInfo]{proxyInfo{name, proxyPort}, reconciled} @@ -1692,6 +1759,16 @@ func (m *Manager) installRules(state desiredState) error { } } + noTrackPorts := groupL4AddrsByProto(state.noTrackHostPorts.flatten().AsSlice()) + for _, proto := range noTrackSupportedProtos { + if ports, ok := noTrackPorts[proto]; ok && len(ports) > 0 { + if err := m.installHostNoTrackRules(proto, ports); err != nil { + return err + } + } + + } + for _, c := range ciliumChains { // do not install feeder for chains that are set to be disabled if isDisabledChain(m.cfg.DisableIptablesFeederRules, c.hook) { @@ -1972,3 +2049,168 @@ func allEgressMasqueradeCmds(allocRange string, snatDstExclusionCIDR string, } return cmds } + +// hostNoTrackMultiPorts installs or removes a notrack rule matching multiple ports. +// the use case for this is to skip conntrack when a pod uses hostNetwork to improve performance (pps/rps) +// since conntrack affects the performance under load - which can occur under DDoS or traffic spikes for instance. +func (m *Manager) hostNoTrackMultiPorts(prog iptablesInterface, cmd, proto string, ports []uint16) error { + // sort the slice containing the ports, and turn them into strings + slices.Sort(ports) + strPorts := make([]string, len(ports)) + for i, p := range ports { + strPorts[i] = strconv.FormatUint(uint64(p), 10) + } + + if err := prog.runProg([]string{ + "-t", "raw", + cmd, ciliumPreRawChain, + "-p", strings.ToLower(proto), + "--match", "multiport", + "--dports", strings.Join(strPorts, ","), + "-m", "comment", "--comment", "cilium no-track-host-ports", + "-j", "CT", + "--notrack"}); err != nil { + return err + } + + if err := prog.runProg([]string{ + "-t", "raw", + cmd, ciliumOutputRawChain, + "-p", strings.ToLower(proto), + "--match", "multiport", + "--sports", strings.Join(strPorts, ","), + "-m", "comment", "--comment", "cilium no-track-host-ports return traffic", + "-j", "CT", + "--notrack"}); err != nil { + return err + } + + return nil +} + +// groupL4AddrsByProto iterates over a slice of ports and returns a map with the port numbers +// grouped by protocol. +func groupL4AddrsByProto(ports []lb.L4Addr) map[lb.L4Type][]uint16 { + result := make(map[lb.L4Type][]uint16) + + for _, p := range ports { + result[p.Protocol] = append(result[p.Protocol], p.Port) + } + + return result +} + +// replaceNoTrackHostPortRules replaces noTrackHostPort rules on a state change. the new ruleset is added, and the previous one is removed. +func (m *Manager) replaceNoTrackHostPortRules(oldPorts, newPorts map[lb.L4Type][]uint16) error { + for _, proto := range noTrackSupportedProtos { + oldP := set.NewSet(oldPorts[proto]...) + newP := set.NewSet(newPorts[proto]...) + + if newP.Equal(oldP) { + continue + } + + if !newP.Empty() { + if err := m.installHostNoTrackRules(proto, newP.AsSlice()); err != nil { + return err + } + } + + if !oldP.Empty() { + if err := m.cleanupHostNoTrackRules(proto, oldP.AsSlice()); err != nil { + return err + } + } + } + + return nil +} + +// installHostNoTrackRules installs a hostNoTrack multiport rule +func (m *Manager) installHostNoTrackRules(proto lb.L4Type, p []uint16) error { + if m.sharedCfg.EnableIPv4 { + if err := m.hostNoTrackMultiPorts(ip4tables, "-A", proto, p); err != nil { + return err + } + } + + if m.sharedCfg.EnableIPv6 { + if err := m.hostNoTrackMultiPorts(ip6tables, "-A", proto, p); err != nil { + return err + } + } + + return nil +} + +// cleanupHostNoTrackRules cleans up a hostNoTrack multiport rule +func (m *Manager) cleanupHostNoTrackRules(proto lb.L4Type, p []uint16) error { + if m.sharedCfg.EnableIPv4 { + if err := m.hostNoTrackMultiPorts(ip4tables, "-D", proto, p); err != nil { + return err + } + } + + if m.sharedCfg.EnableIPv6 { + if err := m.hostNoTrackMultiPorts(ip6tables, "-D", proto, p); err != nil { + return err + } + } + + return nil +} + +// removeNoTrackHostPorts removes notrack rules if the global set changes after removing an entry for the pod. +func (m *Manager) removeNoTrackHostPorts(currentState noTrackHostPortsByPod, podName podAndNameSpace) error { + oldPorts := groupL4AddrsByProto(currentState.flatten().AsSlice()) + delete(currentState, podName) + newPorts := groupL4AddrsByProto(currentState.flatten().AsSlice()) + + return m.replaceNoTrackHostPortRules(oldPorts, newPorts) +} + +// setNoTrackHostPorts ensures that the notrack rules for host network pods are in place. +// it removes the previous ruleset and adds the new ruleset if the global set of ports have changed. +func (m *Manager) setNoTrackHostPorts(currentState noTrackHostPortsByPod, podName podAndNameSpace, ports []string) error { + parsedPorts := make([]lb.L4Addr, 0, len(ports)) + + for _, p := range ports { + if p == "" { + continue + } + + parsed, err := lb.L4AddrFromString(p) + if err != nil { + return fmt.Errorf("failed to parse port/proto for %s: %w", p, err) + } + + switch parsed.Protocol { + case lb.TCP, lb.UDP: + parsedPorts = append(parsedPorts, parsed) + default: + return fmt.Errorf("protocol %s is not unsupported for no-track-host-ports", parsed.Protocol) + } + } + + newSet := set.NewSet(parsedPorts...) + if newSet.Empty() { + return m.removeNoTrackHostPorts(currentState, podName) + } + + currentPodPorts, ok := currentState[podName] + if ok && currentPodPorts.Equal(newSet) { + // no changes + return nil + } + + // grab the previously installed state + oldPorts := groupL4AddrsByProto(currentState.flatten().AsSlice()) + + // update current state, since we now know it has changed (or is a new entry altogether) + currentState[podName] = newSet + + newPorts := groupL4AddrsByProto(currentState.flatten().AsSlice()) + + return m.replaceNoTrackHostPortRules(oldPorts, newPorts) + +} diff --git a/pkg/datapath/iptables/reconciler.go b/pkg/datapath/iptables/reconciler.go index 6c00ad3b07293..0643f6a89d7bb 100644 --- a/pkg/datapath/iptables/reconciler.go +++ b/pkg/datapath/iptables/reconciler.go @@ -24,10 +24,11 @@ import ( type desiredState struct { installRules bool - devices sets.Set[string] - localNodeInfo localNodeInfo - proxies map[string]proxyInfo - noTrackPods sets.Set[noTrackPodInfo] + devices sets.Set[string] + localNodeInfo localNodeInfo + proxies map[string]proxyInfo + noTrackPods sets.Set[noTrackPodInfo] + noTrackHostPorts noTrackHostPortsByPod } type localNodeInfo struct { @@ -112,6 +113,11 @@ type noTrackPodInfo struct { port uint16 } +type noTrackHostPortsPodInfo struct { + podKey podAndNameSpace + ports []string +} + func reconciliationLoop( ctx context.Context, log *slog.Logger, diff --git a/pkg/datapath/types/loader.go b/pkg/datapath/types/loader.go index 9d7c2a6bed057..53c474b455ccb 100644 --- a/pkg/datapath/types/loader.go +++ b/pkg/datapath/types/loader.go @@ -71,6 +71,11 @@ type IptablesManager interface { // See comments for InstallNoTrackRules. RemoveNoTrackRules(ip netip.Addr, port uint16) + + // AddNoTrackHostPorts/RemoveNoTrackHostPort are explicitly called when a pod has a valid "no-track-host-ports" annotation. + // causes iptables notrack rules to be added/removed so CT is skipped for pods using host networking on the requested ports. + AddNoTrackHostPorts(namespace, name string, ports []string) + RemoveNoTrackHostPorts(namespace, name string) } // CompilationLock is a interface over a mutex, it is used by both the loader, daemon From 9e4661b170cc461169a1ff16a7a64dfaee6d591c Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Thu, 21 Aug 2025 16:42:43 +0100 Subject: [PATCH 032/176] iptables: extend reconciler to handle noTrackHostPorts functionality handling no-track-host-ports events in the reconciler Signed-off-by: Bernardo Soares --- pkg/datapath/iptables/iptables.go | 2 + pkg/datapath/iptables/reconciler.go | 60 ++++++++++++++++++++++-- pkg/datapath/iptables/reconciler_test.go | 56 ++++++++++++++++++---- 3 files changed, 107 insertions(+), 11 deletions(-) diff --git a/pkg/datapath/iptables/iptables.go b/pkg/datapath/iptables/iptables.go index 7d47ac1c6d659..20758a37bd601 100644 --- a/pkg/datapath/iptables/iptables.go +++ b/pkg/datapath/iptables/iptables.go @@ -406,6 +406,8 @@ func newIptablesManager(p params) datapath.IptablesManager { iptMgr.doInstallProxyRules, iptMgr.installNoTrackRules, iptMgr.removeNoTrackRules, + iptMgr.setNoTrackHostPorts, + iptMgr.removeNoTrackHostPorts, ) }), ) diff --git a/pkg/datapath/iptables/reconciler.go b/pkg/datapath/iptables/reconciler.go index 0643f6a89d7bb..1b2f5a15c8de4 100644 --- a/pkg/datapath/iptables/reconciler.go +++ b/pkg/datapath/iptables/reconciler.go @@ -128,6 +128,8 @@ func reconciliationLoop( updateProxyRules func(proxyPort uint16, name string) error, installNoTrackRules func(addr netip.Addr, port uint16) error, removeNoTrackRules func(addr netip.Addr, port uint16) error, + addNoTrackHostPorts func(currentState noTrackHostPortsByPod, podName podAndNameSpace, ports []string) error, + removeNoTrackHostPorts func(currentState noTrackHostPortsByPod, podName podAndNameSpace) error, ) error { // The minimum interval between reconciliation attempts const minReconciliationInterval = 200 * time.Millisecond @@ -142,9 +144,10 @@ func reconciliationLoop( fullLogLimiter := logging.NewLimiter(10*time.Second, 3) state := desiredState{ - installRules: installIptRules, - proxies: make(map[string]proxyInfo), - noTrackPods: sets.New[noTrackPodInfo](), + installRules: installIptRules, + proxies: make(map[string]proxyInfo), + noTrackPods: sets.New[noTrackPodInfo](), + noTrackHostPorts: make(noTrackHostPortsByPod), } ctx, cancel := context.WithCancel(ctx) @@ -299,6 +302,53 @@ stop: } else { close(req.updated) } + + case req, ok := <-params.addNoTrackHostPorts: + if !ok { + break stop + } + + if firstInit { + stateChanged = true + updatedChs = append(updatedChs, req.updated) + continue + } + + if err := addNoTrackHostPorts(state.noTrackHostPorts, req.info.podKey, req.info.ports); err != nil { + if partialLogLimiter.Allow() { + log.Error("failed to set up no-track-host-ports, will retry a full reconciliation", logfields.Error, err) + } + + // incremental rules update failed, schedule a full iptables reconciliation + stateChanged = true + updatedChs = append(updatedChs, req.updated) + } else { + close(req.updated) + } + + case req, ok := <-params.delNoTrackHostPorts: + if !ok { + break stop + } + + if firstInit { + stateChanged = true + updatedChs = append(updatedChs, req.updated) + continue + } + + if err := removeNoTrackHostPorts(state.noTrackHostPorts, req.info); err != nil { + if partialLogLimiter.Allow() { + log.Error("failed to remove no-track-host-ports, will retry a full reconciliation", logfields.Error, err) + } + + // incremental rules update failed, schedule a full iptables reconciliation + stateChanged = true + updatedChs = append(updatedChs, req.updated) + } else { + close(req.updated) + } + case <-refresher.C(): stateChanged = true case <-ticker.C(): @@ -349,6 +399,10 @@ stop: } for range params.delNoTrackPod { } + for range params.addNoTrackHostPorts { + } + for range params.delNoTrackHostPorts { + } return nil } diff --git a/pkg/datapath/iptables/reconciler_test.go b/pkg/datapath/iptables/reconciler_test.go index a628b7bf549f0..95e8f3b20d379 100644 --- a/pkg/datapath/iptables/reconciler_test.go +++ b/pkg/datapath/iptables/reconciler_test.go @@ -20,8 +20,10 @@ import ( baseclocktest "k8s.io/utils/clock/testing" "github.com/cilium/cilium/pkg/cidr" + "github.com/cilium/cilium/pkg/container/set" "github.com/cilium/cilium/pkg/datapath/tables" "github.com/cilium/cilium/pkg/hive" + lb "github.com/cilium/cilium/pkg/loadbalancer" "github.com/cilium/cilium/pkg/lock" "github.com/cilium/cilium/pkg/node" "github.com/cilium/cilium/pkg/node/addressing" @@ -58,13 +60,15 @@ func TestReconciliationLoop(t *testing.T) { store = store_ health = health_.NewScope("iptables-reconciler-test") params = &reconcilerParams{ - clock: clock, - localNodeStore: store_, - db: db_, - devices: devices_, - proxies: make(chan reconciliationRequest[proxyInfo]), - addNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), - delNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), + clock: clock, + localNodeStore: store_, + db: db_, + devices: devices_, + proxies: make(chan reconciliationRequest[proxyInfo]), + addNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), + delNoTrackPod: make(chan reconciliationRequest[noTrackPodInfo]), + addNoTrackHostPorts: make(chan reconciliationRequest[noTrackHostPortsPodInfo]), + delNoTrackHostPorts: make(chan reconciliationRequest[podAndNameSpace]), } }), ) @@ -112,6 +116,35 @@ func TestReconciliationLoop(t *testing.T) { return nil } + setNoTrackHostPorts := func(currentState noTrackHostPortsByPod, pod podAndNameSpace, ports []string) error { + mu.Lock() + defer mu.Unlock() + + parsedPorts := make([]lb.L4Addr, 0, len(ports)) + + for _, p := range ports { + parsed, err := lb.L4AddrFromString(p) + + if err != nil { + return fmt.Errorf("failed to parse port/proto for %s: %w", p, err) + } + + parsedPorts = append(parsedPorts, parsed) + } + + currentState[pod] = set.NewSet(parsedPorts...) + + return nil + } + + removeNoTrackHostPorts := func(currentState noTrackHostPortsByPod, pod podAndNameSpace) error { + mu.Lock() + defer mu.Unlock() + currentState = currentState.exclude(pod) + assert.NotContains(t, currentState, pod) + return nil + } + testCases := []struct { name string action func() @@ -345,7 +378,12 @@ func TestReconciliationLoop(t *testing.T) { errs := make(chan error) go func() { defer close(errs) - errs <- reconciliationLoop(ctx, tlog, health, true, params, updateFunc, updateProxyFunc, installNoTrackFunc, removeNoTrackFunc) + errs <- reconciliationLoop( + ctx, tlog, health, true, + params, updateFunc, updateProxyFunc, + installNoTrackFunc, removeNoTrackFunc, + setNoTrackHostPorts, removeNoTrackHostPorts, + ) }() // wait for reconciler to react to the initial state @@ -408,6 +446,8 @@ func TestReconciliationLoop(t *testing.T) { close(params.proxies) close(params.addNoTrackPod) close(params.delNoTrackPod) + close(params.addNoTrackHostPorts) + close(params.delNoTrackHostPorts) cancel() assert.NoError(t, <-errs) } From 9bf9dd3fb0d51cb3867c83c2cc85e9db3e37485d Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Thu, 21 Aug 2025 16:43:29 +0100 Subject: [PATCH 033/176] pod watcher: handle no-track-host-ports annotation on pod events watcher looks for this newly added annotation and calls iptables module to execute the iptables changes Signed-off-by: Bernardo Soares --- pkg/annotation/k8s.go | 2 + pkg/k8s/watchers/pod.go | 112 ++++++++++++++++++++++-------------- pkg/k8s/watchers/watcher.go | 5 ++ 3 files changed, 77 insertions(+), 42 deletions(-) diff --git a/pkg/annotation/k8s.go b/pkg/annotation/k8s.go index bc3fee13948fe..f23df4dc0119b 100644 --- a/pkg/annotation/k8s.go +++ b/pkg/annotation/k8s.go @@ -218,6 +218,8 @@ const ( CECInjectCiliumFilters = CECPrefix + "/inject-cilium-filters" CECIsL7LB = CECPrefix + "/is-l7lb" CECUseOriginalSourceAddress = CECPrefix + "/use-original-source-address" + + NoTrackHostPorts = NetworkPrefix + "/no-track-host-ports" ) // CiliumPrefixRegex is a regex matching Cilium specific annotations. diff --git a/pkg/k8s/watchers/pod.go b/pkg/k8s/watchers/pod.go index db701e18e0157..89ca8b1a5aa07 100644 --- a/pkg/k8s/watchers/pod.go +++ b/pkg/k8s/watchers/pod.go @@ -51,6 +51,7 @@ import ( "github.com/cilium/cilium/pkg/policy" "github.com/cilium/cilium/pkg/source" "github.com/cilium/cilium/pkg/time" + ciliumTypes "github.com/cilium/cilium/pkg/types" "github.com/cilium/cilium/pkg/u8proto" wgTypes "github.com/cilium/cilium/pkg/wireguard/types" @@ -67,40 +68,42 @@ type k8sPodWatcherParams struct { K8sEventReporter *K8sEventReporter - Clientset k8sClient.Clientset - Resources agentK8s.Resources - K8sResourceSynced *k8sSynced.Resources - K8sAPIGroups *k8sSynced.APIGroups - EndpointManager endpointmanager.EndpointManager - PolicyUpdater *policy.Updater - IPCache *ipcache.IPCache - DB *statedb.DB - Pods statedb.Table[agentK8s.LocalPod] - NodeAddrs statedb.Table[datapathTables.NodeAddress] - CGroupManager cgroup.CGroupManager - LBConfig loadbalancer.Config - WgConfig wgTypes.WireguardConfig - IPSecConfig datapath.IPsecConfig + Clientset k8sClient.Clientset + Resources agentK8s.Resources + K8sResourceSynced *k8sSynced.Resources + K8sAPIGroups *k8sSynced.APIGroups + EndpointManager endpointmanager.EndpointManager + PolicyUpdater *policy.Updater + IPCache *ipcache.IPCache + DB *statedb.DB + Pods statedb.Table[agentK8s.LocalPod] + NodeAddrs statedb.Table[datapathTables.NodeAddress] + CGroupManager cgroup.CGroupManager + LBConfig loadbalancer.Config + WgConfig wgTypes.WireguardConfig + IPSecConfig datapath.IPsecConfig + HostNetworkManager datapath.IptablesManager } func newK8sPodWatcher(params k8sPodWatcherParams) *K8sPodWatcher { return &K8sPodWatcher{ - logger: params.Logger, - clientset: params.Clientset, - k8sEventReporter: params.K8sEventReporter, - k8sResourceSynced: params.K8sResourceSynced, - k8sAPIGroups: params.K8sAPIGroups, - endpointManager: params.EndpointManager, - policyManager: params.PolicyUpdater, - ipcache: params.IPCache, - cgroupManager: params.CGroupManager, - resources: params.Resources, - db: params.DB, - pods: params.Pods, - nodeAddrs: params.NodeAddrs, - lbConfig: params.LBConfig, - wgConfig: params.WgConfig, - ipsecConfig: params.IPSecConfig, + logger: params.Logger, + clientset: params.Clientset, + k8sEventReporter: params.K8sEventReporter, + k8sResourceSynced: params.K8sResourceSynced, + k8sAPIGroups: params.K8sAPIGroups, + endpointManager: params.EndpointManager, + policyManager: params.PolicyUpdater, + ipcache: params.IPCache, + cgroupManager: params.CGroupManager, + resources: params.Resources, + db: params.DB, + pods: params.Pods, + nodeAddrs: params.NodeAddrs, + lbConfig: params.LBConfig, + wgConfig: params.WgConfig, + ipsecConfig: params.IPSecConfig, + hostNetworkManager: params.HostNetworkManager, controllersStarted: make(chan struct{}), } @@ -118,18 +121,19 @@ type K8sPodWatcher struct { k8sResourceSynced *k8sSynced.Resources // k8sAPIGroups is a set of k8s API in use. They are setup in watchers, // and may be disabled while the agent runs. - k8sAPIGroups *k8sSynced.APIGroups - endpointManager endpointManager - policyManager policyManager - ipcache ipcacheManager - cgroupManager cgroupManager - resources agentK8s.Resources - db *statedb.DB - pods statedb.Table[agentK8s.LocalPod] - nodeAddrs statedb.Table[datapathTables.NodeAddress] - lbConfig loadbalancer.Config - wgConfig wgTypes.WireguardConfig - ipsecConfig datapath.IPsecConfig + k8sAPIGroups *k8sSynced.APIGroups + endpointManager endpointManager + policyManager policyManager + ipcache ipcacheManager + cgroupManager cgroupManager + resources agentK8s.Resources + db *statedb.DB + pods statedb.Table[agentK8s.LocalPod] + nodeAddrs statedb.Table[datapathTables.NodeAddress] + lbConfig loadbalancer.Config + wgConfig wgTypes.WireguardConfig + ipsecConfig datapath.IPsecConfig + hostNetworkManager hostNetworkManager // controllersStarted is a channel that is closed when all watchers that do not depend on // local node configuration have been started @@ -236,6 +240,16 @@ func (k *K8sPodWatcher) addK8sPodV1(pod *slim_corev1.Pod) error { return err } + hostPorts, ok := annotation.Get(pod, annotation.NoTrackHostPorts) + if ok && !pod.Spec.HostNetwork { + scopedLog.Warn(fmt.Sprintf("%s annotation present but pod does not have hostNetwork: true. ignoring", annotation.NoTrackHostPorts)) + } + + if pod.Spec.HostNetwork { + hostPorts = strings.ReplaceAll(hostPorts, " ", "") + k.hostNetworkManager.AddNoTrackHostPorts(pod.Namespace, pod.Name, strings.Split(hostPorts, ",")) + } + if pod.Spec.HostNetwork && !option.Config.EnableLocalRedirectPolicy { scopedLog.Debug("Skip pod event using host networking") return err @@ -285,6 +299,16 @@ func (k *K8sPodWatcher) updateK8sPodV1(oldK8sPod, newK8sPod *slim_corev1.Pod) er return err } + hostPorts, ok := annotation.Get(newK8sPod, annotation.NoTrackHostPorts) + if ok && !newK8sPod.Spec.HostNetwork { + scopedLog.Warn(fmt.Sprintf("%s annotation present but pod does not have hostNetwork: true. ignoring", annotation.NoTrackHostPorts)) + } + + if newK8sPod.Spec.HostNetwork { + hostPorts = strings.ReplaceAll(hostPorts, " ", "") + k.hostNetworkManager.AddNoTrackHostPorts(newK8sPod.Namespace, newK8sPod.Name, strings.Split(hostPorts, ",")) + } + if newK8sPod.Spec.HostNetwork && !option.Config.EnableLocalRedirectPolicy && !option.Config.EnableSocketLBTracing { scopedLog.Debug("Skip pod event using host networking") @@ -480,6 +504,10 @@ func (k *K8sPodWatcher) deleteK8sPodV1(pod *slim_corev1.Pod) error { logfields.HostIP, pod.Status.HostIP, ) + if pod.Spec.HostNetwork { + k.hostNetworkManager.RemoveNoTrackHostPorts(pod.Namespace, pod.Name) + } + k.cgroupManager.OnDeletePod(pod) skipped, err := k.deletePodHostData(pod) diff --git a/pkg/k8s/watchers/watcher.go b/pkg/k8s/watchers/watcher.go index c3569904ac62f..f681b513e34ec 100644 --- a/pkg/k8s/watchers/watcher.go +++ b/pkg/k8s/watchers/watcher.go @@ -88,6 +88,11 @@ type ipcacheManager interface { DeleteOnMetadataMatch(IP string, source source.Source, namespace, name string) (namedPortsChanged bool) } +type hostNetworkManager interface { + AddNoTrackHostPorts(namespace, name string, ports []string) + RemoveNoTrackHostPorts(namespace, name string) +} + type K8sWatcher struct { logger *slog.Logger resourceGroupsFn func(logger *slog.Logger, cfg WatcherConfiguration) (resourceGroups, waitForCachesOnly []string) From 19500c44dbc0a296124360b9ed594142c6ccbcf8 Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Tue, 26 Aug 2025 12:39:42 +0100 Subject: [PATCH 034/176] docs/examples: add doc and example on the no-track-host-ports configuration adding an example nginx pod with the annotation updated tuning.rst with notes on when it should be used Signed-off-by: Bernardo Soares --- Documentation/operations/performance/tuning.rst | 14 ++++++++++++++ examples/kubernetes/nginx-no-track-host-ports.yaml | 13 +++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 examples/kubernetes/nginx-no-track-host-ports.yaml diff --git a/Documentation/operations/performance/tuning.rst b/Documentation/operations/performance/tuning.rst index c8d728eb42b49..91ec45c773543 100644 --- a/Documentation/operations/performance/tuning.rst +++ b/Documentation/operations/performance/tuning.rst @@ -365,6 +365,20 @@ To enable the iptables connection-tracking bypass: --set installNoConntrackIptablesRules=true \\ --set kubeProxyReplacement=true +If a Pod has the ``hostNetwork`` flag enabled, the ports for which connection tracking should be skipped +must be explicitly listed using the ``network.cilium.io/no-track-host-ports`` annotation: + +.. code-block:: yaml + + apiVersion: v1 + kind: Pod + metadata: + annotations: + network.cilium.io/no-track-host-ports: "999/tcp,8123/tcp" + +.. note:: + Only UDP and TCP transport protocols are supported with the network.cilium.io/no-track-host-ports annotation at the time of writing. + Hubble ====== diff --git a/examples/kubernetes/nginx-no-track-host-ports.yaml b/examples/kubernetes/nginx-no-track-host-ports.yaml new file mode 100644 index 0000000000000..be57d9d62f60e --- /dev/null +++ b/examples/kubernetes/nginx-no-track-host-ports.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + name: example + annotations: + network.cilium.io/no-track-host-ports: "8080/tcp,80/tcp,443/tcp" +spec: + hostNetwork: true + containers: + - image: nginx + imagePullPolicy: Always + name: nginx From ce052cccd222e14f9ad0fdaad14287b1ced818c9 Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Fri, 29 Aug 2025 16:15:08 +0100 Subject: [PATCH 035/176] iptables: make iptables executables a member of iptables Manager struct improve testability by allowing iptables executable to be passed down the code path instead of using a global variable. Signed-off-by: Bernardo Soares --- pkg/datapath/iptables/custom_chain.go | 8 +- pkg/datapath/iptables/iptables.go | 132 +++++++++++++------------- 2 files changed, 71 insertions(+), 69 deletions(-) diff --git a/pkg/datapath/iptables/custom_chain.go b/pkg/datapath/iptables/custom_chain.go index 11b288262928a..5100d982c9050 100644 --- a/pkg/datapath/iptables/custom_chain.go +++ b/pkg/datapath/iptables/custom_chain.go @@ -130,7 +130,7 @@ func (c *customChain) doAdd(prog runnable) error { return nil } -func (c *customChain) add(ipv4, ipv6 bool) error { +func (c *customChain) add(ipv4, ipv6 bool, ip4tables, ip6tables iptablesInterface) error { if ipv4 { if err := c.doAdd(ip4tables); err != nil { return err @@ -162,7 +162,7 @@ func (c *customChain) doRename(prog runnable, newName string) error { return nil } -func (c *customChain) rename(ipv4, ipv6 bool, name string) error { +func (c *customChain) rename(ipv4, ipv6 bool, name string, ip4tables, ip6tables iptablesInterface) error { if ipv4 { if err := c.doRename(ip4tables, name); err != nil { return err @@ -201,7 +201,7 @@ func (c *customChain) doRemove(prog iptablesInterface) error { return nil } -func (c *customChain) remove(ipv4, ipv6 bool) error { +func (c *customChain) remove(ipv4, ipv6 bool, ip4tables, ip6tables iptablesInterface) error { if ipv4 { if err := c.doRemove(ip4tables); err != nil { return err @@ -233,7 +233,7 @@ func (c *customChain) doInstallFeeder(prog iptablesInterface, prepend bool) erro return nil } -func (c *customChain) installFeeder(ipv4, ipv6, prepend bool) error { +func (c *customChain) installFeeder(ipv4, ipv6, prepend bool, ip4tables, ip6tables iptablesInterface) error { if ipv4 { if err := c.doInstallFeeder(ip4tables, prepend); err != nil { return err diff --git a/pkg/datapath/iptables/iptables.go b/pkg/datapath/iptables/iptables.go index 20758a37bd601..1372ee5c4492d 100644 --- a/pkg/datapath/iptables/iptables.go +++ b/pkg/datapath/iptables/iptables.go @@ -125,12 +125,6 @@ func (ipt *ipt) initArgs(ctx context.Context, waitSeconds int) { } } -// package name is iptables so we use ip4tables internally for "iptables" -var ( - ip4tables = &ipt{prog: "iptables", ipset: ipset.CiliumNodeIPSetV4} - ip6tables = &ipt{prog: "ip6tables", ipset: ipset.CiliumNodeIPSetV6} -) - func (ipt *ipt) getProg() string { return ipt.prog } @@ -298,6 +292,8 @@ type Manager struct { // GetProxyPort() methods. lock lock.Mutex + ip4tables, ip6tables iptablesInterface + sysctl sysctl.Sysctl cfg Config @@ -370,6 +366,12 @@ func newIptablesManager(p params) datapath.IptablesManager { cniConfigManager: p.CNIConfigManager, } + ip4tables := &ipt{prog: "iptables", ipset: ipset.CiliumNodeIPSetV4} + ip6tables := &ipt{prog: "ip6tables", ipset: ipset.CiliumNodeIPSetV6} + + iptMgr.ip4tables = ip4tables + iptMgr.ip6tables = ip6tables + // init iptables/ip6tables wait arguments before using them in the reconciler or in the manager (e.g: GetProxyPorts) initDone := iptMgr.argsInit.Add() p.Lifecycle.Append(cell.Hook{ @@ -437,7 +439,7 @@ func (m *Manager) Start(ctx cell.HookContext) error { } for _, table := range []string{"nat", "mangle", "raw", "filter"} { - if err := ip4tables.runProg([]string{"-t", table, "-L", "-n"}); err != nil { + if err := m.ip4tables.runProg([]string{"-t", table, "-L", "-n"}); err != nil { if m.sharedCfg.InstallIptRules { m.logger.Warn("iptables table is not available on this system", logfields.Error, err, @@ -448,7 +450,7 @@ func (m *Manager) Start(ctx cell.HookContext) error { } for _, table := range []string{"mangle", "raw", "filter"} { - if err := ip6tables.runProg([]string{"-t", table, "-L", "-n"}); err != nil { + if err := m.ip6tables.runProg([]string{"-t", table, "-L", "-n"}); err != nil { if m.sharedCfg.InstallIptRules { m.logger.Debug("ip6tables table is not available on this system", logfields.Error, err, @@ -481,7 +483,7 @@ func (m *Manager) Start(ctx cell.HookContext) error { } } - if err := ip4tables.runProg([]string{"-t", "mangle", "-L", "-m", "socket", "-n"}); err != nil { + if err := m.ip4tables.runProg([]string{"-t", "mangle", "-L", "-m", "socket", "-n"}); err != nil { if m.sharedCfg.InstallIptRules { m.logger.Warn("iptables match socket is not available (try installing xt_socket kernel module)", logfields.Error, err) } @@ -550,12 +552,12 @@ func (m *Manager) removeRules(prefix string) error { // Set of tables that have had iptables rules in any Cilium version tables := []string{"nat", "mangle", "raw", "filter"} for _, t := range tables { - if err := m.removeCiliumRules(t, ip4tables, prefix+"CILIUM_"); err != nil { + if err := m.removeCiliumRules(t, m.ip4tables, prefix+"CILIUM_"); err != nil { return err } if m.haveIp6tables { - if err := m.removeCiliumRules(t, ip6tables, prefix+"CILIUM_"); err != nil { + if err := m.removeCiliumRules(t, m.ip6tables, prefix+"CILIUM_"); err != nil { return err } } @@ -563,7 +565,7 @@ func (m *Manager) removeRules(prefix string) error { for _, c := range ciliumChains { c.name = prefix + c.name - if err := c.remove(true, m.haveIp6tables); err != nil { + if err := c.remove(true, m.haveIp6tables, m.ip4tables, m.ip6tables); err != nil { return err } } @@ -574,7 +576,7 @@ func (m *Manager) removeRules(prefix string) error { // renameChains renames iptables chains installed by Cilium. func (m *Manager) renameChains(prefix string) error { for _, c := range ciliumChains { - if err := c.rename(true, m.haveIp6tables, prefix+c.name); err != nil { + if err := c.rename(true, m.haveIp6tables, prefix+c.name, m.ip4tables, m.ip6tables); err != nil { return err } } @@ -695,7 +697,7 @@ func (m *Manager) installStaticProxyRules() error { if m.sharedCfg.EnableIPv4 { // No conntrack for traffic to proxy - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "raw", "-A", ciliumPreRawChain, "-m", "mark", "--mark", matchToProxy, @@ -706,7 +708,7 @@ func (m *Manager) installStaticProxyRules() error { // Explicit ACCEPT for the proxy traffic. Needed when the INPUT defaults to DROP. // Matching needs to be the same as for the NOTRACK rule above. - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "filter", "-A", ciliumInputChain, "-m", "mark", "--mark", matchToProxy, @@ -716,7 +718,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy return traffic that is heading to lxc+ - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", "lxc+", @@ -727,7 +729,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy return traffic that is heading to cilium_host - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", defaults.HostDevice, @@ -739,7 +741,7 @@ func (m *Manager) installStaticProxyRules() error { // No conntrack for proxy forward traffic that is heading to cilium_host if m.sharedCfg.EnableIPSec { - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", defaults.HostDevice, @@ -751,7 +753,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy upstream traffic that is heading to lxc+ - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", "lxc+", @@ -762,7 +764,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy upstream traffic that is heading to cilium_host - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", defaults.HostDevice, @@ -774,7 +776,7 @@ func (m *Manager) installStaticProxyRules() error { // Explicit ACCEPT for the proxy return traffic. Needed when the OUTPUT defaults to DROP. // Matching needs to be the same as for the NOTRACK rule above. - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "filter", "-A", ciliumOutputChain, "-m", "mark", "--mark", matchFromProxy, @@ -785,7 +787,7 @@ func (m *Manager) installStaticProxyRules() error { // Explicit ACCEPT for the l7 proxy upstream traffic. Needed when the OUTPUT defaults to DROP. // TODO: See if this is really needed. We do not have an ACCEPT for normal proxy upstream traffic. - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "filter", "-A", ciliumOutputChain, "-m", "mark", "--mark", matchL7ProxyUpstream, @@ -796,7 +798,7 @@ func (m *Manager) installStaticProxyRules() error { if m.haveSocketMatch { // Direct inbound TPROXYed traffic towards the socket - if err := ip4tables.runProg(m.inboundProxyRedirectRule("-A")); err != nil { + if err := m.ip4tables.runProg(m.inboundProxyRedirectRule("-A")); err != nil { return err } } @@ -804,7 +806,7 @@ func (m *Manager) installStaticProxyRules() error { if m.sharedCfg.EnableIPv6 { // No conntrack for traffic to ingress proxy - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "raw", "-A", ciliumPreRawChain, "-m", "mark", "--mark", matchToProxy, @@ -815,7 +817,7 @@ func (m *Manager) installStaticProxyRules() error { // Explicit ACCEPT for the proxy traffic. Needed when the INPUT defaults to DROP. // Matching needs to be the same as for the NOTRACK rule above. - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "filter", "-A", ciliumInputChain, "-m", "mark", "--mark", matchToProxy, @@ -825,7 +827,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy return traffic that is heading to lxc+ - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", "lxc+", @@ -836,7 +838,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy return traffic that is heading to cilium_host - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", defaults.HostDevice, @@ -848,7 +850,7 @@ func (m *Manager) installStaticProxyRules() error { // No conntrack for proxy forward traffic that is heading to cilium_host if m.sharedCfg.EnableIPSec { - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", defaults.HostDevice, @@ -860,7 +862,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy upstream traffic that is heading to lxc+ - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", "lxc+", @@ -871,7 +873,7 @@ func (m *Manager) installStaticProxyRules() error { } // No conntrack for proxy upstream traffic that is heading to cilium_host - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "raw", "-A", ciliumOutputRawChain, "-o", defaults.HostDevice, @@ -883,7 +885,7 @@ func (m *Manager) installStaticProxyRules() error { // Explicit ACCEPT for the proxy return traffic. Needed when the OUTPUT defaults to DROP. // Matching needs to be the same as for the NOTRACK rule above. - if err := ip6tables.runProg([]string{ + if err := m.ip6tables.runProg([]string{ "-t", "filter", "-A", ciliumOutputChain, "-m", "mark", "--mark", matchFromProxy, @@ -894,7 +896,7 @@ func (m *Manager) installStaticProxyRules() error { if m.haveSocketMatch { // Direct inbound TPROXYed traffic towards the socket - if err := ip6tables.runProg(m.inboundProxyRedirectRule("-A")); err != nil { + if err := m.ip6tables.runProg(m.inboundProxyRedirectRule("-A")); err != nil { return err } } @@ -942,13 +944,13 @@ var tproxyMatch = regexp.MustCompile("CILIUM_PRE_mangle .*cilium: TPROXY") // copies old proxy rules func (m *Manager) copyProxyRules(oldChain string, match string) error { if m.sharedCfg.EnableIPv4 { - if err := m.doCopyProxyRules(ip4tables, "mangle", tproxyMatch, match, oldChain, ciliumPreMangleChain); err != nil { + if err := m.doCopyProxyRules(m.ip4tables, "mangle", tproxyMatch, match, oldChain, ciliumPreMangleChain); err != nil { return err } } if m.sharedCfg.EnableIPv6 { - if err := m.doCopyProxyRules(ip6tables, "mangle", tproxyMatch, match, oldChain, ciliumPreMangleChain); err != nil { + if err := m.doCopyProxyRules(m.ip6tables, "mangle", tproxyMatch, match, oldChain, ciliumPreMangleChain); err != nil { return err } } @@ -1195,12 +1197,12 @@ func (m *Manager) doInstallProxyRules(proxyPort uint16, name string) error { } if m.sharedCfg.EnableIPv4 { - if err := m.addProxyRules(ip4tables, "127.0.0.1", proxyPort, name); err != nil { + if err := m.addProxyRules(m.ip4tables, "127.0.0.1", proxyPort, name); err != nil { return err } } if m.sharedCfg.EnableIPv6 { - if err := m.addProxyRules(ip6tables, "::1", proxyPort, name); err != nil { + if err := m.addProxyRules(m.ip6tables, "::1", proxyPort, name); err != nil { return err } } @@ -1211,9 +1213,9 @@ func (m *Manager) doInstallProxyRules(proxyPort uint16, name string) error { // GetProxyPorts enumerates all existing TPROXY rules in the datapath installed earlier with // InstallProxyRules and returns all proxy ports found. func (m *Manager) GetProxyPorts() map[string]uint16 { - prog := ip4tables + prog := m.ip4tables if !m.sharedCfg.EnableIPv4 { - prog = ip6tables + prog = m.ip6tables } return m.doGetProxyPorts(prog) @@ -1269,12 +1271,12 @@ func (m *Manager) getDeliveryInterface(ifName string) string { func (m *Manager) installForwardChainRules(ifName, localDeliveryInterface, forwardChain string) error { if m.sharedCfg.EnableIPv4 { - if err := m.installForwardChainRulesIpX(ip4tables, ifName, localDeliveryInterface, forwardChain); err != nil { + if err := m.installForwardChainRulesIpX(m.ip4tables, ifName, localDeliveryInterface, forwardChain); err != nil { return err } } if m.sharedCfg.EnableIPv6 { - return m.installForwardChainRulesIpX(ip6tables, ifName, localDeliveryInterface, forwardChain) + return m.installForwardChainRulesIpX(m.ip6tables, ifName, localDeliveryInterface, forwardChain) } return nil @@ -1382,7 +1384,7 @@ func (m *Manager) installMasqueradeRules( devices = m.sharedCfg.MasqueradeInterfaces } family := netlink.FAMILY_V4 - if prog == ip6tables { + if prog == m.ip6tables { family = netlink.FAMILY_V6 } initialPass := true @@ -1528,7 +1530,7 @@ func (m *Manager) installMasqueradeRules( } loopbackAddr := "127.0.0.1" - if prog == ip6tables { + if prog == m.ip6tables { loopbackAddr = "::1" } @@ -1668,7 +1670,7 @@ func (m *Manager) doInstallRules(state desiredState, firstInit bool) error { func (m *Manager) installRules(state desiredState) error { // Install new rules for _, c := range ciliumChains { - if err := c.add(m.sharedCfg.EnableIPv4, m.sharedCfg.EnableIPv6); err != nil { + if err := c.add(m.sharedCfg.EnableIPv4, m.sharedCfg.EnableIPv6, m.ip4tables, m.ip6tables); err != nil { // do not return error for chain creation that are linked to disabled feeder rules if isDisabledChain(m.cfg.DisableIptablesFeederRules, c.hook) { m.logger.Warn( @@ -1682,7 +1684,7 @@ func (m *Manager) installRules(state desiredState) error { } } - if err := m.installTunnelNoTrackRules(ip4tables, ip6tables); err != nil { + if err := m.installTunnelNoTrackRules(m.ip4tables, m.ip6tables); err != nil { return fmt.Errorf("cannot install tunnel no track rules: %w", err) } @@ -1701,12 +1703,12 @@ func (m *Manager) installRules(state desiredState) error { } if m.sharedCfg.EnableIPv4 { - if err := m.installHostTrafficMarkRule(ip4tables); err != nil { + if err := m.installHostTrafficMarkRule(m.ip4tables); err != nil { return fmt.Errorf("cannot install host traffic mark rule: %w", err) } if m.sharedCfg.IptablesMasqueradingIPv4Enabled && state.localNodeInfo.internalIPv4 != nil { - if err := m.installMasqueradeRules(ip4tables, state.devices.UnsortedList(), localDeliveryInterface, + if err := m.installMasqueradeRules(m.ip4tables, state.devices.UnsortedList(), localDeliveryInterface, m.remoteSNATDstAddrExclusionCIDR(state.localNodeInfo.ipv4NativeRoutingCIDR, state.localNodeInfo.ipv4AllocCIDR), state.localNodeInfo.ipv4AllocCIDR, state.localNodeInfo.internalIPv4.String(), @@ -1717,12 +1719,12 @@ func (m *Manager) installRules(state desiredState) error { } if m.sharedCfg.EnableIPv6 { - if err := m.installHostTrafficMarkRule(ip6tables); err != nil { + if err := m.installHostTrafficMarkRule(m.ip6tables); err != nil { return fmt.Errorf("cannot install host traffic mark rule: %w", err) } if m.sharedCfg.IptablesMasqueradingIPv6Enabled && state.localNodeInfo.internalIPv6 != nil { - if err := m.installMasqueradeRules(ip6tables, state.devices.UnsortedList(), localDeliveryInterface, + if err := m.installMasqueradeRules(m.ip6tables, state.devices.UnsortedList(), localDeliveryInterface, m.remoteSNATDstAddrExclusionCIDR(state.localNodeInfo.ipv6NativeRoutingCIDR, state.localNodeInfo.ipv6AllocCIDR), state.localNodeInfo.ipv6AllocCIDR, state.localNodeInfo.internalIPv6.String(), @@ -1750,7 +1752,7 @@ func (m *Manager) installRules(state desiredState) error { podsCIDR := state.localNodeInfo.ipv4NativeRoutingCIDR if m.sharedCfg.InstallNoConntrackIptRules && podsCIDR != "" { - if err := m.addNoTrackPodTrafficRules(ip4tables, podsCIDR); err != nil { + if err := m.addNoTrackPodTrafficRules(m.ip4tables, podsCIDR); err != nil { return fmt.Errorf("cannot install pod traffic no CT rules: %w", err) } } @@ -1781,7 +1783,7 @@ func (m *Manager) installRules(state desiredState) error { continue } - if err := c.installFeeder(m.sharedCfg.EnableIPv4, m.sharedCfg.EnableIPv6, m.cfg.PrependIptablesChains); err != nil { + if err := c.installFeeder(m.sharedCfg.EnableIPv4, m.sharedCfg.EnableIPv6, m.cfg.PrependIptablesChains, m.ip4tables, m.ip6tables); err != nil { return fmt.Errorf("cannot install feeder rule: %w", err) } } @@ -1823,7 +1825,7 @@ func (m *Manager) addCiliumAcceptXfrmRules() error { return nil } - insertAcceptXfrm := func(ipt *ipt, table, chain string) error { + insertAcceptXfrm := func(ipt iptablesInterface, table, chain string) error { matchFromIPSecEncrypt := fmt.Sprintf("%#08x/%#08x", linux_defaults.RouteMarkDecrypt, linux_defaults.RouteMarkMask) matchFromIPSecDecrypt := fmt.Sprintf("%#08x/%#08x", linux_defaults.RouteMarkEncrypt, linux_defaults.RouteMarkMask) @@ -1850,13 +1852,13 @@ func (m *Manager) addCiliumAcceptXfrmRules() error { switch chain.table { case "filter", "nat": if m.sharedCfg.EnableIPv4 { - if err := insertAcceptXfrm(ip4tables, chain.table, chain.name); err != nil { + if err := insertAcceptXfrm(m.ip4tables, chain.table, chain.name); err != nil { return err } } // ip6tables chain exists only if chain.ipv6 is true if m.sharedCfg.EnableIPv6 && chain.ipv6 { - if err := insertAcceptXfrm(ip6tables, chain.table, chain.name); err != nil { + if err := insertAcceptXfrm(m.ip6tables, chain.table, chain.name); err != nil { return err } } @@ -1867,12 +1869,12 @@ func (m *Manager) addCiliumAcceptXfrmRules() error { func (m *Manager) addCiliumNoTrackXfrmRules() (err error) { if m.sharedCfg.EnableIPv4 { - if err = m.ciliumNoTrackXfrmRules(ip4tables, "-I"); err != nil { + if err = m.ciliumNoTrackXfrmRules(m.ip4tables, "-I"); err != nil { return } } if m.sharedCfg.EnableIPv6 { - return m.ciliumNoTrackXfrmRules(ip6tables, "-I") + return m.ciliumNoTrackXfrmRules(m.ip6tables, "-I") } return nil } @@ -1884,9 +1886,9 @@ func (m *Manager) installNoTrackRules(addr netip.Addr, port uint16) error { return nil } - prog := ip4tables + prog := m.ip4tables if addr.Is6() { - prog = ip6tables + prog = m.ip6tables } for _, p := range noTrackPorts(port) { if err := m.endpointNoTrackRules(prog, "-A", addr.String(), p); err != nil { @@ -1903,9 +1905,9 @@ func (m *Manager) removeNoTrackRules(addr netip.Addr, port uint16) error { return nil } - prog := ip4tables + prog := m.ip4tables if addr.Is6() { - prog = ip6tables + prog = m.ip6tables } for _, p := range noTrackPorts(port) { if err := m.endpointNoTrackRules(prog, "-D", addr.String(), p); err != nil { @@ -1968,7 +1970,7 @@ func (m *Manager) addCiliumENIRules() error { // Note: these rules need the xt_connmark module (iptables usually // loads it when required, unless loading modules after boot has been // disabled). - if err := ip4tables.runProg([]string{ + if err := m.ip4tables.runProg([]string{ "-t", "mangle", "-A", ciliumPreMangleChain, "-i", iface.Attrs().Name, @@ -1978,7 +1980,7 @@ func (m *Manager) addCiliumENIRules() error { return err } - return ip4tables.runProg([]string{ + return m.ip4tables.runProg([]string{ "-t", "mangle", "-A", ciliumPreMangleChain, "-i", "lxc+", @@ -2131,13 +2133,13 @@ func (m *Manager) replaceNoTrackHostPortRules(oldPorts, newPorts map[lb.L4Type][ // installHostNoTrackRules installs a hostNoTrack multiport rule func (m *Manager) installHostNoTrackRules(proto lb.L4Type, p []uint16) error { if m.sharedCfg.EnableIPv4 { - if err := m.hostNoTrackMultiPorts(ip4tables, "-A", proto, p); err != nil { + if err := m.hostNoTrackMultiPorts(m.ip4tables, "-A", proto, p); err != nil { return err } } if m.sharedCfg.EnableIPv6 { - if err := m.hostNoTrackMultiPorts(ip6tables, "-A", proto, p); err != nil { + if err := m.hostNoTrackMultiPorts(m.ip6tables, "-A", proto, p); err != nil { return err } } @@ -2148,13 +2150,13 @@ func (m *Manager) installHostNoTrackRules(proto lb.L4Type, p []uint16) error { // cleanupHostNoTrackRules cleans up a hostNoTrack multiport rule func (m *Manager) cleanupHostNoTrackRules(proto lb.L4Type, p []uint16) error { if m.sharedCfg.EnableIPv4 { - if err := m.hostNoTrackMultiPorts(ip4tables, "-D", proto, p); err != nil { + if err := m.hostNoTrackMultiPorts(m.ip4tables, "-D", proto, p); err != nil { return err } } if m.sharedCfg.EnableIPv6 { - if err := m.hostNoTrackMultiPorts(ip6tables, "-D", proto, p); err != nil { + if err := m.hostNoTrackMultiPorts(m.ip6tables, "-D", proto, p); err != nil { return err } } From 42478df6ddfbe6cf522fb8ea0ba48af4be610e84 Mon Sep 17 00:00:00 2001 From: Bernardo Soares Date: Fri, 29 Aug 2025 16:20:03 +0100 Subject: [PATCH 036/176] iptables: add test cases for no-track-host-ports adding test coverage for no-track-host-ports Signed-off-by: Bernardo Soares --- pkg/datapath/iptables/iptables_test.go | 173 +++++++++++++++++++++++ pkg/datapath/iptables/reconciler_test.go | 138 ++++++++++++++++-- 2 files changed, 302 insertions(+), 9 deletions(-) diff --git a/pkg/datapath/iptables/iptables_test.go b/pkg/datapath/iptables/iptables_test.go index 2a565c5af456d..28fe50a7fd412 100644 --- a/pkg/datapath/iptables/iptables_test.go +++ b/pkg/datapath/iptables/iptables_test.go @@ -862,3 +862,176 @@ func TestTunnelNoTrackRulesTunnelingDisabled(t *testing.T) { t.Error(err) } } + +func TestNoTrackHostPorts(t *testing.T) { + mockIp4tables := &mockIptables{t: t, prog: "iptables"} + mockIp6tables := &mockIptables{t: t, prog: "ip6tables"} + + testMgr := &Manager{ + haveIp6tables: false, + haveSocketMatch: true, + haveBPFSocketAssign: false, + ipEarlyDemuxDisabled: false, + sharedCfg: SharedConfig{ + EnableIPv4: true, + EnableIPv6: true, + }, + ip4tables: mockIp4tables, + ip6tables: mockIp6tables, + } + + testState := make(noTrackHostPortsByPod) + + var testPod, testPod2 podAndNameSpace + + t.Run("test adding notrack host port", func(t *testing.T) { + testPod = podAndNameSpace{namespace: "testns", podName: "testpod1"} + ports := []string{"443/tcp"} + + mockIp4tables.expectations = append(mockIp4tables.expectations, []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + mockIp6tables.expectations = append(mockIp6tables.expectations, []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod, ports)) + assert.Contains(t, testState, testPod) + + // add a second time does not error out or trigger iptables commands + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod, ports)) + + // add same port entry for another pod, make sure we dont see any new iptables commands + testPod2 = podAndNameSpace{namespace: "testns", podName: "testpod2"} + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod2, ports)) + + assert.Contains(t, testState, testPod) + assert.Contains(t, testState, testPod2) + + // add another port. we expect to see the new rules being added, and then the 2 previous rules being deleted + mockIp4tables.expectations = append(mockIp4tables.expectations, []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p tcp --match multiport --dports 443,999 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443,999 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + mockIp6tables.expectations = append(mockIp6tables.expectations, []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p tcp --match multiport --dports 443,999 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443,999 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod2, []string{"999/tcp", "443/tcp"})) + assert.NoError(t, mockIp4tables.checkExpectations()) + assert.NoError(t, mockIp6tables.checkExpectations()) + }) + + t.Run("test changing the port", func(t *testing.T) { + mockIp4tables.expectations = []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p tcp --match multiport --dports 443,999 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443,999 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -A CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + } + + mockIp6tables.expectations = []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p tcp --match multiport --dports 443,999 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443,999 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -A CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + } + + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod2, []string{"443/udp"})) + assert.NoError(t, mockIp4tables.checkExpectations()) + assert.NoError(t, mockIp6tables.checkExpectations()) + }) + + t.Run("test empty ports annotation", func(t *testing.T) { + testPod3 := podAndNameSpace{namespace: "123", podName: "321"} + mockIp4tables.expectations = []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p udp --match multiport --dports 443,8123 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p udp --match multiport --sports 443,8123 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + } + + mockIp6tables.expectations = []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p udp --match multiport --dports 443,8123 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p udp --match multiport --sports 443,8123 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + } + + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod3, []string{"8123/udp"})) + + mockIp4tables.expectations = append(mockIp4tables.expectations, []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p udp --match multiport --dports 443,8123 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p udp --match multiport --sports 443,8123 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + mockIp6tables.expectations = append(mockIp6tables.expectations, []expectation{ + {args: "-t raw -A CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -A CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + + {args: "-t raw -D CILIUM_PRE_raw -p udp --match multiport --dports 443,8123 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p udp --match multiport --sports 443,8123 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + // empty port should trigger a delete-like behaviour + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod3, strings.Split("", "/"))) + + assert.NoError(t, mockIp4tables.checkExpectations()) + assert.NoError(t, mockIp6tables.checkExpectations()) + }) + + t.Run("test deleting notrack host port", func(t *testing.T) { + mockIp4tables.expectations = []expectation{ + {args: "-t raw -D CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + } + + mockIp6tables.expectations = []expectation{ + {args: "-t raw -D CILIUM_PRE_raw -p udp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p udp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + } + + assert.NoError(t, testMgr.removeNoTrackHostPorts(testState, testPod2)) + + // now we update the previous one with an empty set. should cause rules to be deleted since this pod is the last reference for port 443 + mockIp4tables.expectations = append(mockIp4tables.expectations, []expectation{ + {args: "-t raw -D CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + mockIp6tables.expectations = append(mockIp6tables.expectations, []expectation{ + {args: "-t raw -D CILIUM_PRE_raw -p tcp --match multiport --dports 443 -m comment --comment cilium no-track-host-ports -j CT --notrack"}, + {args: "-t raw -D CILIUM_OUTPUT_raw -p tcp --match multiport --sports 443 -m comment --comment cilium no-track-host-ports return traffic -j CT --notrack"}, + }...) + + assert.NoError(t, testMgr.setNoTrackHostPorts(testState, testPod, nil)) + + assert.NoError(t, mockIp4tables.checkExpectations()) + assert.NoError(t, mockIp6tables.checkExpectations()) + assert.Empty(t, testState) + }) +} diff --git a/pkg/datapath/iptables/reconciler_test.go b/pkg/datapath/iptables/reconciler_test.go index 95e8f3b20d379..14dd8dc880d3c 100644 --- a/pkg/datapath/iptables/reconciler_test.go +++ b/pkg/datapath/iptables/reconciler_test.go @@ -116,7 +116,7 @@ func TestReconciliationLoop(t *testing.T) { return nil } - setNoTrackHostPorts := func(currentState noTrackHostPortsByPod, pod podAndNameSpace, ports []string) error { + setNoTrackHostPortsFunc := func(currentState noTrackHostPortsByPod, pod podAndNameSpace, ports []string) error { mu.Lock() defer mu.Unlock() @@ -132,16 +132,16 @@ func TestReconciliationLoop(t *testing.T) { parsedPorts = append(parsedPorts, parsed) } - currentState[pod] = set.NewSet(parsedPorts...) + state.noTrackHostPorts[pod] = set.NewSet(parsedPorts...) return nil } - removeNoTrackHostPorts := func(currentState noTrackHostPortsByPod, pod podAndNameSpace) error { + removeNoTrackHostPortsFunc := func(currentState noTrackHostPortsByPod, pod podAndNameSpace) error { mu.Lock() defer mu.Unlock() - currentState = currentState.exclude(pod) - assert.NotContains(t, currentState, pod) + state.noTrackHostPorts = currentState.exclude(pod) + assert.NotContains(t, state.noTrackHostPorts, pod) return nil } @@ -363,6 +363,106 @@ func TestReconciliationLoop(t *testing.T) { ), }, }, + { + name: "add no track host port", + action: func() { + params.addNoTrackHostPorts <- reconciliationRequest[noTrackHostPortsPodInfo]{ + info: noTrackHostPortsPodInfo{podKey: podAndNameSpace{podName: "mytest1", namespace: "mytestns"}, ports: []string{"443/tcp"}}, + updated: make(chan struct{}), + } + }, + expected: desiredState{ + installRules: true, + devices: sets.New("test-1", "test-2"), + localNodeInfo: localNodeInfo{ + internalIPv4: net.ParseIP("2.2.2.2"), + ipv4AllocCIDR: cidr.MustParseCIDR("6.6.6.0/24").String(), + ipv6AllocCIDR: cidr.MustParseCIDR("3002:bbbb::/96").String(), + }, + proxies: map[string]proxyInfo{ + "proxy-test-1": { + name: "proxy-test-1", + port: 9090, + }, + "proxy-test-2": { + name: "proxy-test-2", + port: 9091, + }, + }, + noTrackPods: sets.New( + noTrackPodInfo{netip.MustParseAddr("11.22.33.44"), 10002}, + ), + noTrackHostPorts: noTrackHostPortsByPod{ + podAndNameSpace{podName: "mytest1", namespace: "mytestns"}: set.NewSet(lb.L4Addr{Protocol: "TCP", Port: 443}), + }, + }, + }, + { + name: "change no track host port", + action: func() { + params.addNoTrackHostPorts <- reconciliationRequest[noTrackHostPortsPodInfo]{ + info: noTrackHostPortsPodInfo{podKey: podAndNameSpace{podName: "mytest1", namespace: "mytestns"}, ports: []string{"443/udp"}}, + updated: make(chan struct{}), + } + }, + expected: desiredState{ + installRules: true, + devices: sets.New("test-1", "test-2"), + localNodeInfo: localNodeInfo{ + internalIPv4: net.ParseIP("2.2.2.2"), + ipv4AllocCIDR: cidr.MustParseCIDR("6.6.6.0/24").String(), + ipv6AllocCIDR: cidr.MustParseCIDR("3002:bbbb::/96").String(), + }, + proxies: map[string]proxyInfo{ + "proxy-test-1": { + name: "proxy-test-1", + port: 9090, + }, + "proxy-test-2": { + name: "proxy-test-2", + port: 9091, + }, + }, + noTrackPods: sets.New( + noTrackPodInfo{netip.MustParseAddr("11.22.33.44"), 10002}, + ), + noTrackHostPorts: noTrackHostPortsByPod{ + podAndNameSpace{podName: "mytest1", namespace: "mytestns"}: set.NewSet(lb.L4Addr{Protocol: "UDP", Port: 443}), + }, + }, + }, + { + name: "delete no track host port", + action: func() { + params.delNoTrackHostPorts <- reconciliationRequest[podAndNameSpace]{ + info: podAndNameSpace{podName: "mytest1", namespace: "mytestns"}, + updated: make(chan struct{}), + } + }, + expected: desiredState{ + installRules: true, + devices: sets.New("test-1", "test-2"), + localNodeInfo: localNodeInfo{ + internalIPv4: net.ParseIP("2.2.2.2"), + ipv4AllocCIDR: cidr.MustParseCIDR("6.6.6.0/24").String(), + ipv6AllocCIDR: cidr.MustParseCIDR("3002:bbbb::/96").String(), + }, + proxies: map[string]proxyInfo{ + "proxy-test-1": { + name: "proxy-test-1", + port: 9090, + }, + "proxy-test-2": { + name: "proxy-test-2", + port: 9091, + }, + }, + noTrackPods: sets.New( + noTrackPodInfo{netip.MustParseAddr("11.22.33.44"), 10002}, + ), + noTrackHostPorts: noTrackHostPortsByPod{}, + }, + }, } ctx, cancel := context.WithCancel(context.Background()) @@ -382,7 +482,7 @@ func TestReconciliationLoop(t *testing.T) { ctx, tlog, health, true, params, updateFunc, updateProxyFunc, installNoTrackFunc, removeNoTrackFunc, - setNoTrackHostPorts, removeNoTrackHostPorts, + setNoTrackHostPortsFunc, removeNoTrackHostPortsFunc, ) }() @@ -417,7 +517,7 @@ func TestReconciliationLoop(t *testing.T) { return false } return true - }, 10*time.Second, 10*time.Millisecond, "expected state not reached. %v", tc.expected) + }, 10*time.Second, 1*time.Second, "expected state not reached. %v", tc.expected) }) } @@ -474,6 +574,19 @@ func assertIptablesState(current, expected desiredState) error { return fmt.Errorf("expected no tracking pods info to be %v, found %v", expected.noTrackPods.UnsortedList(), current.noTrackPods.UnsortedList()) } + for k, v := range current.noTrackHostPorts { + if !v.Equal(expected.noTrackHostPorts[k]) { + return fmt.Errorf("expected no-host-track-ports info to be %v, found %v", + expected.noTrackHostPorts[k].AsSlice(), v.AsSlice()) + } + } + for k, v := range expected.noTrackHostPorts { + if !v.Equal(current.noTrackHostPorts[k]) { + return fmt.Errorf("expected no-host-track-ports info to be %v, found %v", + v.AsSlice(), current.noTrackHostPorts[k].AsSlice()) + } + } + return nil } @@ -482,6 +595,12 @@ func (s desiredState) deepCopy() desiredState { copy(ipv4, s.localNodeInfo.internalIPv4) ipv6 := make(net.IP, len(s.localNodeInfo.internalIPv6)) copy(ipv6, s.localNodeInfo.internalIPv6) + + noTrackHostPorts := make(noTrackHostPortsByPod, len(s.noTrackHostPorts)) + for k, v := range s.noTrackHostPorts { + noTrackHostPorts[k] = v.Clone() + } + return desiredState{ installRules: s.installRules, devices: s.devices.Clone(), @@ -493,7 +612,8 @@ func (s desiredState) deepCopy() desiredState { ipv4NativeRoutingCIDR: s.localNodeInfo.ipv4NativeRoutingCIDR, ipv6NativeRoutingCIDR: s.localNodeInfo.ipv6NativeRoutingCIDR, }, - proxies: maps.Clone(s.proxies), - noTrackPods: s.noTrackPods.Clone(), + proxies: maps.Clone(s.proxies), + noTrackPods: s.noTrackPods.Clone(), + noTrackHostPorts: noTrackHostPorts, } } From a3e1f8f971a7af775db4d0622c84c5a8613b23e9 Mon Sep 17 00:00:00 2001 From: Liyi Huang Date: Thu, 31 Jul 2025 23:09:17 -0400 Subject: [PATCH 037/176] aws: fix bug for iterate the wrong subnets `n.k8sObj.Spec.ENI.SubnetIDs` is read from custom CNI config where `for _, subnetID := range n.k8sObj.Spec.ENI.SubnetIDs` should read all subnets in the route table with the node's subnet. Here is the example of the ENI spec block where the `SubnetIDs` is empty. ``` eni: availability-zone: us-east-1d disable-prefix-delegation: false first-interface-index: 0 instance-type: m5.large node-subnet-id: subnet-0a8316618efd8ca86 use-primary-address: false vpc-id: vpc-0101a04a3c189edb5 ``` Signed-off-by: Liyi Huang --- pkg/aws/eni/node.go | 14 ++++++-------- pkg/aws/eni/node_test.go | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/pkg/aws/eni/node.go b/pkg/aws/eni/node.go index 57f2648b8971e..b13a52760c3ca 100644 --- a/pkg/aws/eni/node.go +++ b/pkg/aws/eni/node.go @@ -958,7 +958,7 @@ func (n *Node) getEffectiveIPLimits(eni *eniTypes.ENI, limits int) (leftoverPref // findSubnetInSameRouteTableWithNodeSubnet returns the subnet with the most addresses // that is in the same route table as the node's subnet to make sure the pod traffic -// leaving secondary interfaces will be routed as the primary interface. +// leaving secondary interfaces is routed in the same way as the primary interface. func (n *Node) findSubnetInSameRouteTableWithNodeSubnet() *ipamTypes.Subnet { n.mutex.RLock() defer n.mutex.RUnlock() @@ -975,15 +975,13 @@ func (n *Node) findSubnetInSameRouteTableWithNodeSubnet() *ipamTypes.Subnet { for _, routeTable := range n.manager.routeTables { if _, ok := routeTable.Subnets[nodeSubnetID]; ok && routeTable.VirtualNetworkID == n.k8sObj.Spec.ENI.VpcID { - for _, subnetID := range n.k8sObj.Spec.ENI.SubnetIDs { + for subnetID := range routeTable.Subnets { if subnetID == nodeSubnetID { continue } - if _, ok := routeTable.Subnets[subnetID]; ok { - subnet := n.manager.subnets[subnetID] - if bestSubnet == nil || subnet.AvailableAddresses > bestSubnet.AvailableAddresses { - bestSubnet = subnet - } + subnet := n.manager.subnets[subnetID] + if (bestSubnet == nil || subnet.AvailableAddresses > bestSubnet.AvailableAddresses) && subnet.AvailabilityZone == n.k8sObj.Spec.ENI.AvailabilityZone { + bestSubnet = subnet } } } @@ -993,7 +991,7 @@ func (n *Node) findSubnetInSameRouteTableWithNodeSubnet() *ipamTypes.Subnet { } // checkSubnetInSameRouteTableWithNodeSubnet checks if the given subnet is in the same route table as the node's subnet -// to make sure the pod traffic leaving secondary interfaces will be routed as the primary interface. +// to make sure the pod traffic leaving secondary interfaces is routed in the same way as the primary interface. func (n *Node) checkSubnetInSameRouteTableWithNodeSubnet(subnet *ipamTypes.Subnet) bool { n.mutex.RLock() defer n.mutex.RUnlock() diff --git a/pkg/aws/eni/node_test.go b/pkg/aws/eni/node_test.go index b697b6f1883c1..1fb9135c3ad13 100644 --- a/pkg/aws/eni/node_test.go +++ b/pkg/aws/eni/node_test.go @@ -53,13 +53,14 @@ func Test_findSubnetInSameRouteTableWithNodeSubnet(t *testing.T) { Subnets: map[string]struct{}{ "subnet-1": {}, "subnet-2": {}, + "subnet-3": {}, }, }, "rt-2": &ipamTypes.RouteTable{ ID: "rt-2", VirtualNetworkID: "vpc-2", Subnets: map[string]struct{}{ - "subnet-3": {}, + "subnet-4": {}, }, }, } @@ -68,9 +69,9 @@ func Test_findSubnetInSameRouteTableWithNodeSubnet(t *testing.T) { k8sObj: &v2.CiliumNode{ Spec: v2.NodeSpec{ ENI: types.ENISpec{ - VpcID: "vpc-1", - NodeSubnetID: "subnet-1", - SubnetIDs: []string{"subnet-1", "subnet-2", "subnet-3"}, + VpcID: "vpc-1", + NodeSubnetID: "subnet-1", + AvailabilityZone: "us-east-1a", }, }, }, @@ -79,14 +80,22 @@ func Test_findSubnetInSameRouteTableWithNodeSubnet(t *testing.T) { "subnet-1": { ID: "subnet-1", AvailableAddresses: 10, + AvailabilityZone: "us-east-1a", }, "subnet-2": { ID: "subnet-2", AvailableAddresses: 20, + AvailabilityZone: "us-east-1a", }, "subnet-3": { ID: "subnet-3", + AvailableAddresses: 25, + AvailabilityZone: "us-east-1b", + }, + "subnet-4": { + ID: "subnet-4", AvailableAddresses: 15, + AvailabilityZone: "us-east-1a", }, }, routeTables: routeTableMap, From b137e63c8de2641b9a109e872bd6c53bfb7fc7d8 Mon Sep 17 00:00:00 2001 From: Hadrien Patte Date: Thu, 14 Aug 2025 21:14:33 +0200 Subject: [PATCH 038/176] build: Include hubble CLI dir in cilium container directories This standardizes the way the hubble CLI is built and installed in the cilium image. Standard targets are added to the hubble CLI Makefile to allow it to be built and installed along with other cilium container components. Signed-off-by: Hadrien Patte --- Makefile | 2 +- Makefile.defs | 9 +++++++++ hubble/Makefile | 33 +++++++++++++++++++++++++-------- images/cilium/Dockerfile | 8 +------- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 77a949132fb55..df1466e70c0c3 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ debug: all include Makefile.defs -SUBDIRS_CILIUM_CONTAINER := cilium-dbg daemon cilium-health bugtool tools/mount tools/sysctlfix plugins/cilium-cni +SUBDIRS_CILIUM_CONTAINER := cilium-dbg daemon cilium-health bugtool hubble tools/mount tools/sysctlfix plugins/cilium-cni SUBDIR_OPERATOR_CONTAINER := operator SUBDIR_RELAY_CONTAINER := hubble-relay SUBDIR_CLUSTERMESH_APISERVER_CONTAINER := clustermesh-apiserver diff --git a/Makefile.defs b/Makefile.defs index 851af483d135c..85cf250a9ffdf 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -195,6 +195,15 @@ else ifeq ($(CROSS_ARCH),amd64) CGO_CC = CC=x86_64-linux-gnu-gcc endif +ifneq ($(GOARCH),) + CGO_CC += GOARCH=$(GOARCH) +endif + +ifneq ($(GOOS),) + CGO_CC += GOOS=$(GOOS) +endif + + ifneq ($(GOEXPERIMENT),) GO_BUILD = GOEXPERIMENT=$(GOEXPERIMENT) CGO_ENABLED=$(CGO_ENABLED) $(CGO_CC) $(GO) build else diff --git a/hubble/Makefile b/hubble/Makefile index 4e002741637ac..4652745cd46e7 100644 --- a/hubble/Makefile +++ b/hubble/Makefile @@ -1,6 +1,8 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright Authors of Hubble +.DEFAULT_GOAL := all + CURR_DIR := $(shell dirname "$(realpath $(lastword $(MAKEFILE_LIST)))") include $(CURR_DIR)/../Makefile.defs @@ -9,32 +11,30 @@ include $(CURR_DIR)/../Makefile.defs TARGET := hubble +.PHONY: all all: $(TARGET) -.PHONY: all $(TARGET) release local-release clean - - SUBDIRS_HUBBLE_CLI := . TARGET_DIR=. # homebrew uses the github release's tarball of the source that does not contain the '.git' directory. GIT_BRANCH = $(shell command -v git >/dev/null 2>&1 && git rev-parse --abbrev-ref HEAD 2> /dev/null) GIT_HASH = $(shell command -v git >/dev/null 2>&1 && git rev-parse --short HEAD 2> /dev/null) -GOOS ?= -GOARCH ?= - GO_BUILD_LDFLAGS += -X "github.com/cilium/cilium/hubble/pkg.GitBranch=$(GIT_BRANCH)" \ -X "github.com/cilium/cilium/hubble/pkg.GitHash=$(GIT_HASH)" \ -X "github.com/cilium/cilium/hubble/pkg.Version=v$(VERSION)" +.PHONY: $(TARGET) $(TARGET): - GOOS=$(GOOS) GOARCH=$(GOARCH) $(GO_BUILD) -o $(TARGET_DIR)/$(@)$(EXT) $(SUBDIRS_HUBBLE_CLI) + $(GO_BUILD) -o $(TARGET_DIR)/$(@)$(EXT) $(SUBDIRS_HUBBLE_CLI) +.PHONY: release release: cd $(CURR_DIR)/../ && \ $(CONTAINER_ENGINE) run --rm --workdir /cilium --volume `pwd`:/cilium --user "$(shell id -u):$(shell id -g)" \ $(CILIUM_BUILDER_IMAGE) sh -c "$(MAKE) -C $(TARGET) local-release" +.PHONY: local-release local-release: clean set -o errexit; \ for OS in darwin linux windows; do \ @@ -62,5 +62,22 @@ local-release: clean rm -r release/$$OS; \ done; +.PHONY: install +install: install-binary install-bash-completion + +.PHONY: install-binary +install-binary: $(TARGET) + $(QUIET)$(INSTALL) -m 0755 -d $(DESTDIR)$(BINDIR) + $(QUIET)$(INSTALL) -m 0755 $(TARGET) $(DESTDIR)$(BINDIR) + +.PHONY: install-bash-completion +install-bash-completion: $(TARGET) + $(QUIET)$(INSTALL) -m 0755 -d $(DESTDIR)$(CONFDIR)/bash_completion.d + ./$(TARGET) completion bash > $(TARGET)_bash_completion + $(QUIET)$(INSTALL) -m 0644 -T $(TARGET)_bash_completion $(DESTDIR)$(CONFDIR)/bash_completion.d/$(TARGET) + +.PHONY: clean clean: - rm -f $(TARGET) + @$(ECHO_CLEAN) + -$(QUIET)rm -f $(TARGET) + $(QUIET)$(GO_CLEAN) diff --git a/images/cilium/Dockerfile b/images/cilium/Dockerfile index 59faab9f125c5..9a27875e55b9a 100644 --- a/images/cilium/Dockerfile +++ b/images/cilium/Dockerfile @@ -52,11 +52,7 @@ RUN --mount=type=bind,readwrite,target=/go/src/github.com/cilium/cilium \ # bash_completion is the same for both architectures. make GOARCH=${BUILDARCH} DESTDIR=/tmp/install/${TARGETOS}/${TARGETARCH} PKG_BUILD=1 $(echo $MODIFIERS | tr -d '"') \ install-bash-completion licenses-all && \ - mv LICENSE.all /tmp/install/${TARGETOS}/${TARGETARCH}/LICENSE.all && \ - mkdir -p /tmp/hubble/${TARGETOS}/${TARGETARCH} && \ - cd hubble && \ - make GOOS=${TARGETOS} GOARCH=${TARGETARCH} $(echo $MODIFIERS | tr -d '"') && \ - mv hubble /tmp/hubble/${TARGETOS}/${TARGETARCH}/hubble + mv LICENSE.all /tmp/install/${TARGETOS}/${TARGETARCH}/LICENSE.all # Extract debug symbols to /tmp/debug and strip the binaries if NOSTRIP is not set. # Use the appropriate objcopy for the target architecture. @@ -109,8 +105,6 @@ COPY --from=cilium-envoy /usr/bin/cilium-envoy /usr/bin/cilium-envoy-starter /us # local unix domain socket instead of Hubble Relay. ENV HUBBLE_SERVER=unix:///var/run/cilium/hubble.sock COPY --from=builder /tmp/install/${TARGETOS}/${TARGETARCH} / -COPY --from=builder /tmp/hubble/${TARGETOS}/${TARGETARCH}/hubble /usr/bin/hubble -RUN /usr/bin/hubble completion bash > /etc/bash_completion.d/hubble WORKDIR /home/cilium ENV INITSYSTEM="SYSTEMD" From 9923e7dedb5d5589d63fe47dd930a4262c69cc7b Mon Sep 17 00:00:00 2001 From: Hadrien Patte Date: Wed, 10 Sep 2025 10:39:58 +0200 Subject: [PATCH 039/176] Move all `go build` environment variables to `GO_BUILD_ENV` Signed-off-by: Hadrien Patte --- Makefile.defs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Makefile.defs b/Makefile.defs index 85cf250a9ffdf..f89465775be95 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -184,30 +184,27 @@ CGO_ENABLED ?= 0 GOEXPERIMENT ?= # Support CGO cross-compiling for amd64 and arm64 targets -CGO_CC = +GO_BUILD_ENV = CGO_ENABLED=$(CGO_ENABLED) CROSS_ARCH = ifneq ($(GOARCH),$(NATIVE_ARCH)) CROSS_ARCH = $(GOARCH) endif ifeq ($(CROSS_ARCH),arm64) - CGO_CC = CC=aarch64-linux-gnu-gcc + GO_BUILD_ENV += CC=aarch64-linux-gnu-gcc else ifeq ($(CROSS_ARCH),amd64) - CGO_CC = CC=x86_64-linux-gnu-gcc + GO_BUILD_ENV += CC=x86_64-linux-gnu-gcc endif ifneq ($(GOARCH),) - CGO_CC += GOARCH=$(GOARCH) + GO_BUILD_ENV += GOARCH=$(GOARCH) endif ifneq ($(GOOS),) - CGO_CC += GOOS=$(GOOS) + GO_BUILD_ENV += GOOS=$(GOOS) endif - ifneq ($(GOEXPERIMENT),) - GO_BUILD = GOEXPERIMENT=$(GOEXPERIMENT) CGO_ENABLED=$(CGO_ENABLED) $(CGO_CC) $(GO) build -else - GO_BUILD = CGO_ENABLED=$(CGO_ENABLED) $(CGO_CC) $(GO) build + GO_BUILD_ENV += GOEXPERIMENT=$(GOEXPERIMENT) endif ifneq ($(RACE),) @@ -240,7 +237,7 @@ ifeq ($(NOOPT),1) GO_BUILD_FLAGS += -gcflags="all=-N -l" endif -GO_BUILD += $(GO_BUILD_FLAGS) +GO_BUILD = $(GO_BUILD_ENV) $(GO) build $(GO_BUILD_FLAGS) GO_TEST = CGO_ENABLED=0 $(GO) test $(GO_TEST_FLAGS) GO_CLEAN = $(GO) clean $(GO_CLEAN_FLAGS) From d040b20669f25298a4f75458007e159ec1888f72 Mon Sep 17 00:00:00 2001 From: darox Date: Tue, 9 Sep 2025 13:14:49 +0200 Subject: [PATCH 040/176] sysdump: add resource usage of nodes and pods This commit adds support for capturing resource (CPU/memory) usage of nodes and pods when metrics server is installed. Two new files are included in the sysdump: - `k8s-node-memory-cpu-usage-.txt` - `k8s-pod-memory-cpu-usage-.txt` Signed-off-by: darox --- cilium-cli/sysdump/constants.go | 2 + cilium-cli/sysdump/sysdump.go | 158 ++ go.mod | 1 + go.sum | 2 + vendor/k8s.io/metrics/LICENSE | 201 ++ vendor/k8s.io/metrics/pkg/apis/metrics/doc.go | 21 + .../metrics/pkg/apis/metrics/register.go | 55 + .../k8s.io/metrics/pkg/apis/metrics/types.go | 101 + .../metrics/pkg/apis/metrics/v1beta1/doc.go | 24 + .../pkg/apis/metrics/v1beta1/generated.pb.go | 1757 +++++++++++++++++ .../pkg/apis/metrics/v1beta1/generated.proto | 96 + .../pkg/apis/metrics/v1beta1/register.go | 53 + .../metrics/pkg/apis/metrics/v1beta1/types.go | 102 + .../v1beta1/zz_generated.conversion.go | 209 ++ .../metrics/v1beta1/zz_generated.deepcopy.go | 186 ++ .../pkg/apis/metrics/zz_generated.deepcopy.go | 186 ++ vendor/modules.txt | 4 + 17 files changed, 3158 insertions(+) create mode 100644 vendor/k8s.io/metrics/LICENSE create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/doc.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/register.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/types.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/register.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/types.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go diff --git a/cilium-cli/sysdump/constants.go b/cilium-cli/sysdump/constants.go index e668612734479..39bcd406ee48a 100644 --- a/cilium-cli/sysdump/constants.go +++ b/cilium-cli/sysdump/constants.go @@ -96,6 +96,8 @@ const ( kubernetesEventsTableFileName = "k8s-events-.html" kubernetesLeasesFileName = "k8s-leases-.yaml" kubernetesMetricsFileName = "k8s-metrics-.yaml" + kubernetesTopNodesFileName = "k8s-node-memory-cpu-usage-.txt" + kubernetesTopPodsFileName = "k8s-pod-memory-cpu-usage-.txt" kubernetesNamespacesFileName = "k8s-namespaces-.yaml" kubernetesNetworkPoliciesFileName = "k8s-networkpolicies-.yaml" kubernetesNodesFileName = "k8s-nodes-.yaml" diff --git a/cilium-cli/sysdump/sysdump.go b/cilium-cli/sysdump/sysdump.go index 25b9c74c7aad5..56bd951febd15 100644 --- a/cilium-cli/sysdump/sysdump.go +++ b/cilium-cli/sysdump/sysdump.go @@ -9,6 +9,7 @@ import ( "bytes" "compress/gzip" "context" + "encoding/json" "errors" "fmt" "io" @@ -19,6 +20,7 @@ import ( "strconv" "strings" "sync" + "text/tabwriter" "time" "github.com/cilium/workerpool" @@ -32,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/kubectl/pkg/util/podutils" + metricsapi "k8s.io/metrics/pkg/apis/metrics/v1beta1" "github.com/cilium/cilium/cilium-cli/defaults" "github.com/cilium/cilium/cilium-cli/k8s" @@ -626,6 +629,52 @@ func (c *Collector) Run() error { return nil }, }, + { + Description: "Collecting Kubernetes nodes memory/cpu usage", + Quick: true, + Task: func(ctx context.Context) error { + // Use the raw client to get the table format directly from the metrics API + // This gives us the same output as kubectl top nodes + result, err := c.Client.GetRaw(ctx, "/apis/metrics.k8s.io/v1beta1/nodes") + if err != nil { + return fmt.Errorf("failed to collect Kubernetes nodes memory/cpu usage: %w", err) + } + + // Parse the JSON response and format as table + output, err := c.formatNodeMetricsAsTable(result) + if err != nil { + return fmt.Errorf("failed to format node memory/cpu usage metrics: %w", err) + } + + if err := c.WriteString(kubernetesTopNodesFileName, output); err != nil { + return fmt.Errorf("failed to collect Kubernetes nodes memory/cpu usage: %w", err) + } + return nil + }, + }, + { + Description: "Collecting Kubernetes pods memory/cpu usage", + Quick: true, + Task: func(ctx context.Context) error { + // Use the raw client to get the table format directly from the metrics API + // This gives us the same output as kubectl top pods + result, err := c.Client.GetRaw(ctx, "/apis/metrics.k8s.io/v1beta1/pods") + if err != nil { + return fmt.Errorf("failed to collect Kubernetes pods memory/cpu usage: %w", err) + } + + // Parse the JSON response and format as table + output, err := c.formatPodMetricsAsTable(result) + if err != nil { + return fmt.Errorf("failed to format pod memory/cpu usage metrics: %w", err) + } + + if err := c.WriteString(kubernetesTopPodsFileName, output); err != nil { + return fmt.Errorf("failed to collect Kubernetes pods memory/cpu usage: %w", err) + } + return nil + }, + }, { Description: "Collecting crashed test pod logs", Quick: false, @@ -3294,6 +3343,115 @@ func InitSysdumpFlags(cmd *cobra.Command, options *Options, optionPrefix string, hooks.AddSysdumpFlags(cmd.Flags()) } +// formatMetricsAsTable formats the raw metrics JSON into a table format like kubectl top nodes +func (c *Collector) formatNodeMetricsAsTable(rawMetrics string) (string, error) { + // Parse the metrics JSON + var nodeMetrics metricsapi.NodeMetricsList + if err := json.Unmarshal([]byte(rawMetrics), &nodeMetrics); err != nil { + return "", fmt.Errorf("failed to parse metrics JSON: %w", err) + } + + // Get node information to calculate percentages + nodes, err := c.Client.ListNodes(context.Background(), metav1.ListOptions{}) + if err != nil { + return "", fmt.Errorf("failed to get nodes: %w", err) + } + + // Create a map of node names to their capacity + nodeCapacities := make(map[string]corev1.ResourceList) + for _, node := range nodes.Items { + nodeCapacities[node.Name] = node.Status.Capacity + } + + var sb strings.Builder + tw := tabwriter.NewWriter(&sb, 0, 0, 2, ' ', 0) + fmt.Fprintln(tw, "NAME\tCPU(cores)\tCPU(%)\tMEMORY(bytes)\tMEMORY(%)") + + for _, metric := range nodeMetrics.Items { + name := metric.Name + + // Get current usage + cpuUsage := metric.Usage[corev1.ResourceCPU] + memUsage := metric.Usage[corev1.ResourceMemory] + + cpuMillis := cpuUsage.MilliValue() + memBytes := memUsage.Value() + memMi := float64(memBytes) / (1024 * 1024) + + // Calculate percentages if we have capacity info + cpuPercent := "" + memPercent := "" + + if capacity, exists := nodeCapacities[metric.Name]; exists { + if cpuCap := capacity[corev1.ResourceCPU]; !cpuCap.IsZero() { + cpuCapMillis := cpuCap.MilliValue() + cpuPct := float64(cpuMillis) / float64(cpuCapMillis) * 100 + cpuPercent = fmt.Sprintf("%.0f%%", cpuPct) + } + + if memCap := capacity[corev1.ResourceMemory]; !memCap.IsZero() { + memCapBytes := memCap.Value() + memPct := float64(memBytes) / float64(memCapBytes) * 100 + memPercent = fmt.Sprintf("%.0f%%", memPct) + } + } + + fmt.Fprintf(tw, "%s\t%dm\t%s\t%dMi\t%s\n", + name, + cpuMillis, + cpuPercent, + int64(memMi), + memPercent) + } + + tw.Flush() + + return sb.String(), nil +} + +// formatPodMetricsAsTable formats the raw pod metrics JSON into a table format like kubectl top pods +func (c *Collector) formatPodMetricsAsTable(rawMetrics string) (string, error) { + // Parse the metrics JSON + var podMetrics metricsapi.PodMetricsList + if err := json.Unmarshal([]byte(rawMetrics), &podMetrics); err != nil { + return "", fmt.Errorf("failed to parse pod metrics JSON: %w", err) + } + + var sb strings.Builder + tw := tabwriter.NewWriter(&sb, 0, 0, 2, ' ', 0) + fmt.Fprintln(tw, "NAMESPACE\tNAME\tCPU(cores)\tMEMORY(bytes)") + + for _, metric := range podMetrics.Items { + namespace := metric.Namespace + name := metric.Name + + // Sum CPU and memory usage across all containers in the pod + var totalCPUMillis int64 + var totalMemBytes int64 + + for _, container := range metric.Containers { + if cpuUsage, exists := container.Usage[corev1.ResourceCPU]; exists { + totalCPUMillis += cpuUsage.MilliValue() + } + if memUsage, exists := container.Usage[corev1.ResourceMemory]; exists { + totalMemBytes += memUsage.Value() + } + } + + memMi := float64(totalMemBytes) / (1024 * 1024) + + fmt.Fprintf(tw, "%s\t%s\t%dm\t%dMi\n", + namespace, + name, + totalCPUMillis, + int64(memMi)) + } + + tw.Flush() + + return sb.String(), nil +} + // Hooks to extend cilium-cli with additional sysdump tasks and related flags. type Hooks interface { AddSysdumpFlags(flags *pflag.FlagSet) diff --git a/go.mod b/go.mod index 557d2f5c2653e..0cb104bb4775d 100644 --- a/go.mod +++ b/go.mod @@ -132,6 +132,7 @@ require ( k8s.io/endpointslice v0.34.0 k8s.io/klog/v2 v2.130.1 k8s.io/kubectl v0.34.0 + k8s.io/metrics v0.34.0 k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d sigs.k8s.io/controller-runtime v0.21.0 sigs.k8s.io/gateway-api v1.3.1-0.20250611112659-17a60f668a0d diff --git a/go.sum b/go.sum index 4fdb5293a5183..f84dc5f179535 100644 --- a/go.sum +++ b/go.sum @@ -1068,6 +1068,8 @@ k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOP k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= k8s.io/kubectl v0.34.0 h1:NcXz4TPTaUwhiX4LU+6r6udrlm0NsVnSkP3R9t0dmxs= k8s.io/kubectl v0.34.0/go.mod h1:bmd0W5i+HuG7/p5sqicr0Li0rR2iIhXL0oUyLF3OjR4= +k8s.io/metrics v0.34.0 h1:nYSfG2+tnL6/MRC2I+sGHjtNEGoEoM/KktgGOoQFwws= +k8s.io/metrics v0.34.0/go.mod h1:KCuXmotE0v4AvoARKUP8NC4lUnbK/Du1mluGdor5h4M= k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0= k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= diff --git a/vendor/k8s.io/metrics/LICENSE b/vendor/k8s.io/metrics/LICENSE new file mode 100644 index 0000000000000..8dada3edaf50d --- /dev/null +++ b/vendor/k8s.io/metrics/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/doc.go b/vendor/k8s.io/metrics/pkg/apis/metrics/doc.go new file mode 100644 index 0000000000000..de79b6d058364 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/doc.go @@ -0,0 +1,21 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +groupName=metrics.k8s.io + +// Package metrics defines an API for exposing metrics. +package metrics diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/register.go b/vendor/k8s.io/metrics/pkg/apis/metrics/register.go new file mode 100644 index 0000000000000..9384e44b91212 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/register.go @@ -0,0 +1,55 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package metrics + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "metrics.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns back a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns back a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // SchemeBuilder is the scheme builder with scheme init functions to run for this API package + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme + AddToScheme = SchemeBuilder.AddToScheme +) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &NodeMetrics{}, + &NodeMetricsList{}, + &PodMetrics{}, + &PodMetricsList{}, + ) + return nil +} diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/types.go b/vendor/k8s.io/metrics/pkg/apis/metrics/types.go new file mode 100644 index 0000000000000..f1c58c76840d8 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/types.go @@ -0,0 +1,101 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package metrics + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +resourceName=nodes +// +genclient:readonly +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeMetrics sets resource usage metrics of a node. +type NodeMetrics struct { + metav1.TypeMeta + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta + + // The following fields define time interval from which metrics were + // collected from the interval [Timestamp-Window, Timestamp]. + Timestamp metav1.Time + Window metav1.Duration + + // The memory usage is the memory working set. + Usage corev1.ResourceList +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeMetricsList is a list of NodeMetrics. +type NodeMetricsList struct { + metav1.TypeMeta + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metav1.ListMeta + + // List of node metrics. + Items []NodeMetrics +} + +// +genclient +// +resourceName=pods +// +genclient:readonly +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PodMetrics sets resource usage metrics of a pod. +type PodMetrics struct { + metav1.TypeMeta + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta + + // The following fields define time interval from which metrics were + // collected from the interval [Timestamp-Window, Timestamp]. + Timestamp metav1.Time + Window metav1.Duration + + // Metrics for all containers are collected within the same time window. + Containers []ContainerMetrics +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PodMetricsList is a list of PodMetrics. +type PodMetricsList struct { + metav1.TypeMeta + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metav1.ListMeta + + // List of pod metrics. + Items []PodMetrics +} + +// ContainerMetrics sets resource usage metrics of a container. +type ContainerMetrics struct { + // Container name corresponding to the one from pod.spec.containers. + Name string + // The memory usage is the memory working set. + Usage corev1.ResourceList +} diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go new file mode 100644 index 0000000000000..760a9afbadfa6 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go @@ -0,0 +1,24 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:protobuf-gen=package +// +k8s:conversion-gen=k8s.io/metrics/pkg/apis/metrics +// +k8s:openapi-gen=true +// +groupName=metrics.k8s.io + +// Package v1beta1 is the v1beta1 version of the metrics API. +package v1beta1 diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go new file mode 100644 index 0000000000000..ae62aa8370072 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go @@ -0,0 +1,1757 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto + +package v1beta1 + +import ( + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + + k8s_io_api_core_v1 "k8s.io/api/core/v1" + k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource" + resource "k8s.io/apimachinery/pkg/api/resource" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *ContainerMetrics) Reset() { *m = ContainerMetrics{} } +func (*ContainerMetrics) ProtoMessage() {} +func (*ContainerMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_0eb2073129c5331c, []int{0} +} +func (m *ContainerMetrics) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContainerMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ContainerMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerMetrics.Merge(m, src) +} +func (m *ContainerMetrics) XXX_Size() int { + return m.Size() +} +func (m *ContainerMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerMetrics proto.InternalMessageInfo + +func (m *NodeMetrics) Reset() { *m = NodeMetrics{} } +func (*NodeMetrics) ProtoMessage() {} +func (*NodeMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_0eb2073129c5331c, []int{1} +} +func (m *NodeMetrics) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NodeMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *NodeMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeMetrics.Merge(m, src) +} +func (m *NodeMetrics) XXX_Size() int { + return m.Size() +} +func (m *NodeMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_NodeMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeMetrics proto.InternalMessageInfo + +func (m *NodeMetricsList) Reset() { *m = NodeMetricsList{} } +func (*NodeMetricsList) ProtoMessage() {} +func (*NodeMetricsList) Descriptor() ([]byte, []int) { + return fileDescriptor_0eb2073129c5331c, []int{2} +} +func (m *NodeMetricsList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NodeMetricsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *NodeMetricsList) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeMetricsList.Merge(m, src) +} +func (m *NodeMetricsList) XXX_Size() int { + return m.Size() +} +func (m *NodeMetricsList) XXX_DiscardUnknown() { + xxx_messageInfo_NodeMetricsList.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeMetricsList proto.InternalMessageInfo + +func (m *PodMetrics) Reset() { *m = PodMetrics{} } +func (*PodMetrics) ProtoMessage() {} +func (*PodMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_0eb2073129c5331c, []int{3} +} +func (m *PodMetrics) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodMetrics.Merge(m, src) +} +func (m *PodMetrics) XXX_Size() int { + return m.Size() +} +func (m *PodMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_PodMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_PodMetrics proto.InternalMessageInfo + +func (m *PodMetricsList) Reset() { *m = PodMetricsList{} } +func (*PodMetricsList) ProtoMessage() {} +func (*PodMetricsList) Descriptor() ([]byte, []int) { + return fileDescriptor_0eb2073129c5331c, []int{4} +} +func (m *PodMetricsList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodMetricsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodMetricsList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodMetricsList.Merge(m, src) +} +func (m *PodMetricsList) XXX_Size() int { + return m.Size() +} +func (m *PodMetricsList) XXX_DiscardUnknown() { + xxx_messageInfo_PodMetricsList.DiscardUnknown(m) +} + +var xxx_messageInfo_PodMetricsList proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ContainerMetrics)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics") + proto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics.UsageEntry") + proto.RegisterType((*NodeMetrics)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics") + proto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics.UsageEntry") + proto.RegisterType((*NodeMetricsList)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList") + proto.RegisterType((*PodMetrics)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics") + proto.RegisterType((*PodMetricsList)(nil), "k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList") +} + +func init() { + proto.RegisterFile("k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto", fileDescriptor_0eb2073129c5331c) +} + +var fileDescriptor_0eb2073129c5331c = []byte{ + // 646 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xbf, 0x6f, 0xd3, 0x4e, + 0x1c, 0xcd, 0x35, 0x49, 0xd5, 0x5e, 0xbe, 0xdf, 0x52, 0x3c, 0x55, 0x19, 0x9c, 0xca, 0x4b, 0x2b, + 0xa4, 0x9e, 0x69, 0xa8, 0xa0, 0xb0, 0x20, 0x99, 0x30, 0x20, 0x91, 0x02, 0x56, 0xf9, 0xcd, 0xc0, + 0xc5, 0x39, 0x9c, 0x23, 0xd8, 0x67, 0xd9, 0xe7, 0x54, 0xd9, 0x50, 0xc5, 0xc4, 0x84, 0xf8, 0xab, + 0x22, 0xa6, 0x8e, 0x1d, 0x50, 0x4a, 0xcc, 0xcc, 0x3f, 0xc0, 0x84, 0x7c, 0x3e, 0xc7, 0xa1, 0x09, + 0xa9, 0xe9, 0xc0, 0xd4, 0xcd, 0xfe, 0xf8, 0xde, 0x7b, 0x9f, 0x7b, 0x9f, 0x77, 0x27, 0xc3, 0x1b, + 0xdd, 0xdd, 0x00, 0x51, 0xa6, 0x3b, 0x84, 0xfb, 0xd4, 0x0a, 0x74, 0xaf, 0x6b, 0xeb, 0xd8, 0xa3, + 0xc1, 0xb8, 0xd0, 0xdb, 0x6e, 0x11, 0x8e, 0xb7, 0x75, 0x9b, 0xb8, 0xc4, 0xc7, 0x9c, 0xb4, 0x91, + 0xe7, 0x33, 0xce, 0x94, 0x8d, 0x04, 0x88, 0xe4, 0x3a, 0xe4, 0x75, 0x6d, 0x14, 0x03, 0xc7, 0x05, + 0x09, 0xac, 0x6e, 0xd9, 0x94, 0x77, 0xc2, 0x16, 0xb2, 0x98, 0xa3, 0xdb, 0xcc, 0x66, 0xba, 0xc0, + 0xb7, 0xc2, 0x37, 0xe2, 0x4d, 0xbc, 0x88, 0xa7, 0x84, 0xb7, 0xaa, 0xc9, 0x86, 0xb0, 0x47, 0x75, + 0x8b, 0xf9, 0x44, 0xef, 0x4d, 0x69, 0x57, 0x77, 0xb2, 0x35, 0x0e, 0xb6, 0x3a, 0xd4, 0x25, 0x7e, + 0x3f, 0xed, 0x5c, 0xf7, 0x49, 0xc0, 0x42, 0xdf, 0x22, 0x7f, 0x85, 0x12, 0xfb, 0xc5, 0xb3, 0xb4, + 0xf4, 0x3f, 0xa1, 0xfc, 0xd0, 0xe5, 0xd4, 0x99, 0x96, 0xb9, 0x7e, 0x16, 0x20, 0xb0, 0x3a, 0xc4, + 0xc1, 0xa7, 0x71, 0xda, 0x61, 0x11, 0xae, 0xde, 0x61, 0x2e, 0xc7, 0x31, 0xa2, 0x99, 0x98, 0xa8, + 0xac, 0xc3, 0x92, 0x8b, 0x1d, 0xb2, 0x06, 0xd6, 0xc1, 0xe6, 0xb2, 0xf1, 0xdf, 0x60, 0x58, 0x2b, + 0x44, 0xc3, 0x5a, 0x69, 0x0f, 0x3b, 0xc4, 0x14, 0x5f, 0x94, 0x11, 0x80, 0xe5, 0x30, 0xc0, 0x36, + 0x59, 0x5b, 0x58, 0x2f, 0x6e, 0x56, 0xea, 0x0d, 0x94, 0x73, 0x30, 0xe8, 0xb4, 0x18, 0x7a, 0x1c, + 0xd3, 0xdc, 0x75, 0xb9, 0xdf, 0x37, 0x3e, 0x00, 0x29, 0x55, 0x16, 0xc5, 0x9f, 0xc3, 0x5a, 0x6d, + 0x7a, 0x2e, 0xc8, 0x94, 0x56, 0xdf, 0xa7, 0x01, 0x3f, 0x3c, 0x99, 0xbb, 0x24, 0xee, 0xf8, 0xe3, + 0x49, 0x6d, 0x2b, 0xcf, 0xe4, 0xd0, 0xa3, 0x10, 0xbb, 0x9c, 0xf2, 0xbe, 0x99, 0xec, 0xac, 0xda, + 0x81, 0x30, 0xeb, 0x4d, 0x59, 0x85, 0xc5, 0x2e, 0xe9, 0x27, 0x96, 0x98, 0xf1, 0xa3, 0xd2, 0x80, + 0xe5, 0x1e, 0x7e, 0x17, 0xc6, 0x16, 0x80, 0xcd, 0x4a, 0x1d, 0xa5, 0x16, 0x4c, 0xaa, 0xa4, 0x3e, + 0xa0, 0x19, 0x2a, 0x02, 0x7c, 0x6b, 0x61, 0x17, 0x68, 0x3f, 0x4a, 0xb0, 0xb2, 0xc7, 0xda, 0x24, + 0xf5, 0xff, 0x35, 0x5c, 0x8a, 0x83, 0xd1, 0xc6, 0x1c, 0x0b, 0xc1, 0x4a, 0xfd, 0xea, 0x3c, 0x72, + 0x61, 0x32, 0x46, 0xbd, 0x6d, 0xf4, 0xa0, 0xf5, 0x96, 0x58, 0xbc, 0x49, 0x38, 0x36, 0x14, 0x69, + 0x25, 0xcc, 0x6a, 0xe6, 0x98, 0x55, 0x79, 0x09, 0x97, 0xe3, 0x54, 0x04, 0x1c, 0x3b, 0x9e, 0xec, + 0xff, 0x4a, 0x3e, 0x89, 0x7d, 0xea, 0x10, 0xe3, 0xb2, 0x24, 0x5f, 0xde, 0x4f, 0x49, 0xcc, 0x8c, + 0x4f, 0x79, 0x02, 0x17, 0x0f, 0xa8, 0xdb, 0x66, 0x07, 0x6b, 0xc5, 0xb3, 0x9d, 0xc9, 0x98, 0x1b, + 0xa1, 0x8f, 0x39, 0x65, 0xae, 0xb1, 0x22, 0xd9, 0x17, 0x9f, 0x0a, 0x16, 0x53, 0xb2, 0x29, 0x5f, + 0xc7, 0xa1, 0x2b, 0x89, 0xd0, 0xdd, 0xce, 0x1d, 0xba, 0x09, 0x73, 0x2f, 0xf2, 0x06, 0xb4, 0x2f, + 0x00, 0x5e, 0x9a, 0xb0, 0x24, 0xde, 0x98, 0xf2, 0x6a, 0x2a, 0x73, 0x39, 0xc7, 0x16, 0xa3, 0x45, + 0xe2, 0x56, 0xa5, 0x99, 0x4b, 0x69, 0x65, 0x22, 0x6f, 0xcf, 0x61, 0x99, 0x72, 0xe2, 0x04, 0xf2, + 0xba, 0xd8, 0x39, 0xcf, 0xe4, 0x8c, 0xff, 0xd3, 0x69, 0xdd, 0x8b, 0xa9, 0xcc, 0x84, 0x51, 0xfb, + 0x5c, 0x84, 0xf0, 0x21, 0x6b, 0x5f, 0x9c, 0x9d, 0xb9, 0x67, 0xc7, 0x81, 0xd0, 0x4a, 0x6f, 0xde, + 0x40, 0x9e, 0x9f, 0x9b, 0xe7, 0xbe, 0xb4, 0x33, 0x87, 0xc6, 0x5f, 0x02, 0x73, 0x42, 0x40, 0x1b, + 0x00, 0xb8, 0x92, 0x0d, 0xe5, 0x1f, 0x04, 0xec, 0xd9, 0xef, 0x01, 0xbb, 0x96, 0x7b, 0x6b, 0x59, + 0x97, 0xb3, 0xf3, 0x65, 0x34, 0x07, 0x23, 0xb5, 0x70, 0x34, 0x52, 0x0b, 0xc7, 0x23, 0xb5, 0xf0, + 0x3e, 0x52, 0xc1, 0x20, 0x52, 0xc1, 0x51, 0xa4, 0x82, 0xe3, 0x48, 0x05, 0xdf, 0x22, 0x15, 0x7c, + 0xfa, 0xae, 0x16, 0x5e, 0x6c, 0xe4, 0xfc, 0xa3, 0xf9, 0x15, 0x00, 0x00, 0xff, 0xff, 0x11, 0x63, + 0x3e, 0x0d, 0xfb, 0x08, 0x00, 0x00, +} + +func (m *ContainerMetrics) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContainerMetrics) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContainerMetrics) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Usage) > 0 { + keysForUsage := make([]string, 0, len(m.Usage)) + for k := range m.Usage { + keysForUsage = append(keysForUsage, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUsage) + for iNdEx := len(keysForUsage) - 1; iNdEx >= 0; iNdEx-- { + v := m.Usage[k8s_io_api_core_v1.ResourceName(keysForUsage[iNdEx])] + baseI := i + { + size, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(keysForUsage[iNdEx]) + copy(dAtA[i:], keysForUsage[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForUsage[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *NodeMetrics) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NodeMetrics) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NodeMetrics) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Usage) > 0 { + keysForUsage := make([]string, 0, len(m.Usage)) + for k := range m.Usage { + keysForUsage = append(keysForUsage, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUsage) + for iNdEx := len(keysForUsage) - 1; iNdEx >= 0; iNdEx-- { + v := m.Usage[k8s_io_api_core_v1.ResourceName(keysForUsage[iNdEx])] + baseI := i + { + size, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(keysForUsage[iNdEx]) + copy(dAtA[i:], keysForUsage[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForUsage[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x22 + } + } + { + size, err := m.Window.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Timestamp.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *NodeMetricsList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NodeMetricsList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NodeMetricsList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PodMetrics) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodMetrics) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodMetrics) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Containers) > 0 { + for iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + { + size, err := m.Window.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Timestamp.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PodMetricsList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodMetricsList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodMetricsList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ContainerMetrics) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Usage) > 0 { + for k, v := range m.Usage { + _ = k + _ = v + l = ((*resource.Quantity)(&v)).Size() + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + +func (m *NodeMetrics) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Timestamp.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Window.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Usage) > 0 { + for k, v := range m.Usage { + _ = k + _ = v + l = ((*resource.Quantity)(&v)).Size() + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + +func (m *NodeMetricsList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PodMetrics) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Timestamp.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Window.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Containers) > 0 { + for _, e := range m.Containers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PodMetricsList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *ContainerMetrics) String() string { + if this == nil { + return "nil" + } + keysForUsage := make([]string, 0, len(this.Usage)) + for k := range this.Usage { + keysForUsage = append(keysForUsage, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUsage) + mapStringForUsage := "k8s_io_api_core_v1.ResourceList{" + for _, k := range keysForUsage { + mapStringForUsage += fmt.Sprintf("%v: %v,", k, this.Usage[k8s_io_api_core_v1.ResourceName(k)]) + } + mapStringForUsage += "}" + s := strings.Join([]string{`&ContainerMetrics{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Usage:` + mapStringForUsage + `,`, + `}`, + }, "") + return s +} +func (this *NodeMetrics) String() string { + if this == nil { + return "nil" + } + keysForUsage := make([]string, 0, len(this.Usage)) + for k := range this.Usage { + keysForUsage = append(keysForUsage, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUsage) + mapStringForUsage := "k8s_io_api_core_v1.ResourceList{" + for _, k := range keysForUsage { + mapStringForUsage += fmt.Sprintf("%v: %v,", k, this.Usage[k8s_io_api_core_v1.ResourceName(k)]) + } + mapStringForUsage += "}" + s := strings.Join([]string{`&NodeMetrics{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Timestamp:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Timestamp), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `Window:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Window), "Duration", "v1.Duration", 1), `&`, ``, 1) + `,`, + `Usage:` + mapStringForUsage + `,`, + `}`, + }, "") + return s +} +func (this *NodeMetricsList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]NodeMetrics{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "NodeMetrics", "NodeMetrics", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&NodeMetricsList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *PodMetrics) String() string { + if this == nil { + return "nil" + } + repeatedStringForContainers := "[]ContainerMetrics{" + for _, f := range this.Containers { + repeatedStringForContainers += strings.Replace(strings.Replace(f.String(), "ContainerMetrics", "ContainerMetrics", 1), `&`, ``, 1) + "," + } + repeatedStringForContainers += "}" + s := strings.Join([]string{`&PodMetrics{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Timestamp:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Timestamp), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `Window:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Window), "Duration", "v1.Duration", 1), `&`, ``, 1) + `,`, + `Containers:` + repeatedStringForContainers + `,`, + `}`, + }, "") + return s +} +func (this *PodMetricsList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]PodMetrics{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "PodMetrics", "PodMetrics", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&PodMetricsList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *ContainerMetrics) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContainerMetrics: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContainerMetrics: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", 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 + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Usage == nil { + m.Usage = make(k8s_io_api_core_v1.ResourceList) + } + var mapkey k8s_io_api_core_v1.ResourceName + mapvalue := &resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Usage[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue)) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NodeMetrics) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NodeMetrics: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NodeMetrics: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Window", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Window.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Usage == nil { + m.Usage = make(k8s_io_api_core_v1.ResourceList) + } + var mapkey k8s_io_api_core_v1.ResourceName + mapvalue := &resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Usage[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue)) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NodeMetricsList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NodeMetricsList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NodeMetricsList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, NodeMetrics{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodMetrics) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodMetrics: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodMetrics: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Window", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Window.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Containers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Containers = append(m.Containers, ContainerMetrics{}) + if err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodMetricsList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodMetricsList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodMetricsList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, PodMetrics{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto new file mode 100644 index 0000000000000..602907938ad02 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.proto @@ -0,0 +1,96 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = "proto2"; + +package k8s.io.metrics.pkg.apis.metrics.v1beta1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "k8s.io/metrics/pkg/apis/metrics/v1beta1"; + +// ContainerMetrics sets resource usage metrics of a container. +message ContainerMetrics { + // Container name corresponding to the one from pod.spec.containers. + optional string name = 1; + + // The memory usage is the memory working set. + map usage = 2; +} + +// NodeMetrics sets resource usage metrics of a node. +message NodeMetrics { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // The following fields define time interval from which metrics were + // collected from the interval [Timestamp-Window, Timestamp]. + optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timestamp = 2; + + optional .k8s.io.apimachinery.pkg.apis.meta.v1.Duration window = 3; + + // The memory usage is the memory working set. + map usage = 4; +} + +// NodeMetricsList is a list of NodeMetrics. +message NodeMetricsList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of node metrics. + repeated NodeMetrics items = 2; +} + +// PodMetrics sets resource usage metrics of a pod. +message PodMetrics { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // The following fields define time interval from which metrics were + // collected from the interval [Timestamp-Window, Timestamp]. + optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timestamp = 2; + + optional .k8s.io.apimachinery.pkg.apis.meta.v1.Duration window = 3; + + // Metrics for all containers are collected within the same time window. + // +listType=atomic + repeated ContainerMetrics containers = 4; +} + +// PodMetricsList is a list of PodMetrics. +message PodMetricsList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of pod metrics. + repeated PodMetrics items = 2; +} + diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/register.go b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/register.go new file mode 100644 index 0000000000000..205d253c779d4 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/register.go @@ -0,0 +1,53 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "metrics.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // SchemeBuilder points to a list of functions added to Scheme. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + // AddToScheme applies all the stored functions to the scheme. + AddToScheme = SchemeBuilder.AddToScheme +) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &NodeMetrics{}, + &NodeMetricsList{}, + &PodMetrics{}, + &PodMetricsList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/types.go b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/types.go new file mode 100644 index 0000000000000..cdf01aa3d839e --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/types.go @@ -0,0 +1,102 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +resourceName=nodes +// +genclient:readonly +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeMetrics sets resource usage metrics of a node. +type NodeMetrics struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // The following fields define time interval from which metrics were + // collected from the interval [Timestamp-Window, Timestamp]. + Timestamp metav1.Time `json:"timestamp" protobuf:"bytes,2,opt,name=timestamp"` + Window metav1.Duration `json:"window" protobuf:"bytes,3,opt,name=window"` + + // The memory usage is the memory working set. + Usage v1.ResourceList `json:"usage" protobuf:"bytes,4,rep,name=usage,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeMetricsList is a list of NodeMetrics. +type NodeMetricsList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // List of node metrics. + Items []NodeMetrics `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +resourceName=pods +// +genclient:readonly +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PodMetrics sets resource usage metrics of a pod. +type PodMetrics struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // The following fields define time interval from which metrics were + // collected from the interval [Timestamp-Window, Timestamp]. + Timestamp metav1.Time `json:"timestamp" protobuf:"bytes,2,opt,name=timestamp"` + Window metav1.Duration `json:"window" protobuf:"bytes,3,opt,name=window"` + + // Metrics for all containers are collected within the same time window. + // +listType=atomic + Containers []ContainerMetrics `json:"containers" protobuf:"bytes,4,rep,name=containers"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PodMetricsList is a list of PodMetrics. +type PodMetricsList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // List of pod metrics. + Items []PodMetrics `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// ContainerMetrics sets resource usage metrics of a container. +type ContainerMetrics struct { + // Container name corresponding to the one from pod.spec.containers. + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + // The memory usage is the memory working set. + Usage v1.ResourceList `json:"usage" protobuf:"bytes,2,rep,name=usage,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity"` +} diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go new file mode 100644 index 0000000000000..112c4c707d900 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go @@ -0,0 +1,209 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1beta1 + +import ( + unsafe "unsafe" + + v1 "k8s.io/api/core/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + metrics "k8s.io/metrics/pkg/apis/metrics" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*ContainerMetrics)(nil), (*metrics.ContainerMetrics)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ContainerMetrics_To_metrics_ContainerMetrics(a.(*ContainerMetrics), b.(*metrics.ContainerMetrics), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*metrics.ContainerMetrics)(nil), (*ContainerMetrics)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_metrics_ContainerMetrics_To_v1beta1_ContainerMetrics(a.(*metrics.ContainerMetrics), b.(*ContainerMetrics), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*NodeMetrics)(nil), (*metrics.NodeMetrics)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_NodeMetrics_To_metrics_NodeMetrics(a.(*NodeMetrics), b.(*metrics.NodeMetrics), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*metrics.NodeMetrics)(nil), (*NodeMetrics)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_metrics_NodeMetrics_To_v1beta1_NodeMetrics(a.(*metrics.NodeMetrics), b.(*NodeMetrics), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*NodeMetricsList)(nil), (*metrics.NodeMetricsList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_NodeMetricsList_To_metrics_NodeMetricsList(a.(*NodeMetricsList), b.(*metrics.NodeMetricsList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*metrics.NodeMetricsList)(nil), (*NodeMetricsList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_metrics_NodeMetricsList_To_v1beta1_NodeMetricsList(a.(*metrics.NodeMetricsList), b.(*NodeMetricsList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*PodMetrics)(nil), (*metrics.PodMetrics)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_PodMetrics_To_metrics_PodMetrics(a.(*PodMetrics), b.(*metrics.PodMetrics), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*metrics.PodMetrics)(nil), (*PodMetrics)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_metrics_PodMetrics_To_v1beta1_PodMetrics(a.(*metrics.PodMetrics), b.(*PodMetrics), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*PodMetricsList)(nil), (*metrics.PodMetricsList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_PodMetricsList_To_metrics_PodMetricsList(a.(*PodMetricsList), b.(*metrics.PodMetricsList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*metrics.PodMetricsList)(nil), (*PodMetricsList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_metrics_PodMetricsList_To_v1beta1_PodMetricsList(a.(*metrics.PodMetricsList), b.(*PodMetricsList), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1beta1_ContainerMetrics_To_metrics_ContainerMetrics(in *ContainerMetrics, out *metrics.ContainerMetrics, s conversion.Scope) error { + out.Name = in.Name + out.Usage = *(*v1.ResourceList)(unsafe.Pointer(&in.Usage)) + return nil +} + +// Convert_v1beta1_ContainerMetrics_To_metrics_ContainerMetrics is an autogenerated conversion function. +func Convert_v1beta1_ContainerMetrics_To_metrics_ContainerMetrics(in *ContainerMetrics, out *metrics.ContainerMetrics, s conversion.Scope) error { + return autoConvert_v1beta1_ContainerMetrics_To_metrics_ContainerMetrics(in, out, s) +} + +func autoConvert_metrics_ContainerMetrics_To_v1beta1_ContainerMetrics(in *metrics.ContainerMetrics, out *ContainerMetrics, s conversion.Scope) error { + out.Name = in.Name + out.Usage = *(*v1.ResourceList)(unsafe.Pointer(&in.Usage)) + return nil +} + +// Convert_metrics_ContainerMetrics_To_v1beta1_ContainerMetrics is an autogenerated conversion function. +func Convert_metrics_ContainerMetrics_To_v1beta1_ContainerMetrics(in *metrics.ContainerMetrics, out *ContainerMetrics, s conversion.Scope) error { + return autoConvert_metrics_ContainerMetrics_To_v1beta1_ContainerMetrics(in, out, s) +} + +func autoConvert_v1beta1_NodeMetrics_To_metrics_NodeMetrics(in *NodeMetrics, out *metrics.NodeMetrics, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Timestamp = in.Timestamp + out.Window = in.Window + out.Usage = *(*v1.ResourceList)(unsafe.Pointer(&in.Usage)) + return nil +} + +// Convert_v1beta1_NodeMetrics_To_metrics_NodeMetrics is an autogenerated conversion function. +func Convert_v1beta1_NodeMetrics_To_metrics_NodeMetrics(in *NodeMetrics, out *metrics.NodeMetrics, s conversion.Scope) error { + return autoConvert_v1beta1_NodeMetrics_To_metrics_NodeMetrics(in, out, s) +} + +func autoConvert_metrics_NodeMetrics_To_v1beta1_NodeMetrics(in *metrics.NodeMetrics, out *NodeMetrics, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Timestamp = in.Timestamp + out.Window = in.Window + out.Usage = *(*v1.ResourceList)(unsafe.Pointer(&in.Usage)) + return nil +} + +// Convert_metrics_NodeMetrics_To_v1beta1_NodeMetrics is an autogenerated conversion function. +func Convert_metrics_NodeMetrics_To_v1beta1_NodeMetrics(in *metrics.NodeMetrics, out *NodeMetrics, s conversion.Scope) error { + return autoConvert_metrics_NodeMetrics_To_v1beta1_NodeMetrics(in, out, s) +} + +func autoConvert_v1beta1_NodeMetricsList_To_metrics_NodeMetricsList(in *NodeMetricsList, out *metrics.NodeMetricsList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]metrics.NodeMetrics)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1beta1_NodeMetricsList_To_metrics_NodeMetricsList is an autogenerated conversion function. +func Convert_v1beta1_NodeMetricsList_To_metrics_NodeMetricsList(in *NodeMetricsList, out *metrics.NodeMetricsList, s conversion.Scope) error { + return autoConvert_v1beta1_NodeMetricsList_To_metrics_NodeMetricsList(in, out, s) +} + +func autoConvert_metrics_NodeMetricsList_To_v1beta1_NodeMetricsList(in *metrics.NodeMetricsList, out *NodeMetricsList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]NodeMetrics)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_metrics_NodeMetricsList_To_v1beta1_NodeMetricsList is an autogenerated conversion function. +func Convert_metrics_NodeMetricsList_To_v1beta1_NodeMetricsList(in *metrics.NodeMetricsList, out *NodeMetricsList, s conversion.Scope) error { + return autoConvert_metrics_NodeMetricsList_To_v1beta1_NodeMetricsList(in, out, s) +} + +func autoConvert_v1beta1_PodMetrics_To_metrics_PodMetrics(in *PodMetrics, out *metrics.PodMetrics, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Timestamp = in.Timestamp + out.Window = in.Window + out.Containers = *(*[]metrics.ContainerMetrics)(unsafe.Pointer(&in.Containers)) + return nil +} + +// Convert_v1beta1_PodMetrics_To_metrics_PodMetrics is an autogenerated conversion function. +func Convert_v1beta1_PodMetrics_To_metrics_PodMetrics(in *PodMetrics, out *metrics.PodMetrics, s conversion.Scope) error { + return autoConvert_v1beta1_PodMetrics_To_metrics_PodMetrics(in, out, s) +} + +func autoConvert_metrics_PodMetrics_To_v1beta1_PodMetrics(in *metrics.PodMetrics, out *PodMetrics, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Timestamp = in.Timestamp + out.Window = in.Window + out.Containers = *(*[]ContainerMetrics)(unsafe.Pointer(&in.Containers)) + return nil +} + +// Convert_metrics_PodMetrics_To_v1beta1_PodMetrics is an autogenerated conversion function. +func Convert_metrics_PodMetrics_To_v1beta1_PodMetrics(in *metrics.PodMetrics, out *PodMetrics, s conversion.Scope) error { + return autoConvert_metrics_PodMetrics_To_v1beta1_PodMetrics(in, out, s) +} + +func autoConvert_v1beta1_PodMetricsList_To_metrics_PodMetricsList(in *PodMetricsList, out *metrics.PodMetricsList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]metrics.PodMetrics)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1beta1_PodMetricsList_To_metrics_PodMetricsList is an autogenerated conversion function. +func Convert_v1beta1_PodMetricsList_To_metrics_PodMetricsList(in *PodMetricsList, out *metrics.PodMetricsList, s conversion.Scope) error { + return autoConvert_v1beta1_PodMetricsList_To_metrics_PodMetricsList(in, out, s) +} + +func autoConvert_metrics_PodMetricsList_To_v1beta1_PodMetricsList(in *metrics.PodMetricsList, out *PodMetricsList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]PodMetrics)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_metrics_PodMetricsList_To_v1beta1_PodMetricsList is an autogenerated conversion function. +func Convert_metrics_PodMetricsList_To_v1beta1_PodMetricsList(in *metrics.PodMetricsList, out *PodMetricsList, s conversion.Scope) error { + return autoConvert_metrics_PodMetricsList_To_v1beta1_PodMetricsList(in, out, s) +} diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 0000000000000..f043d4642ffa7 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,186 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerMetrics) DeepCopyInto(out *ContainerMetrics) { + *out = *in + if in.Usage != nil { + in, out := &in.Usage, &out.Usage + *out = make(v1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerMetrics. +func (in *ContainerMetrics) DeepCopy() *ContainerMetrics { + if in == nil { + return nil + } + out := new(ContainerMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeMetrics) DeepCopyInto(out *NodeMetrics) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Timestamp.DeepCopyInto(&out.Timestamp) + out.Window = in.Window + if in.Usage != nil { + in, out := &in.Usage, &out.Usage + *out = make(v1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeMetrics. +func (in *NodeMetrics) DeepCopy() *NodeMetrics { + if in == nil { + return nil + } + out := new(NodeMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeMetrics) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeMetricsList) DeepCopyInto(out *NodeMetricsList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NodeMetrics, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeMetricsList. +func (in *NodeMetricsList) DeepCopy() *NodeMetricsList { + if in == nil { + return nil + } + out := new(NodeMetricsList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeMetricsList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodMetrics) DeepCopyInto(out *PodMetrics) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Timestamp.DeepCopyInto(&out.Timestamp) + out.Window = in.Window + if in.Containers != nil { + in, out := &in.Containers, &out.Containers + *out = make([]ContainerMetrics, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetrics. +func (in *PodMetrics) DeepCopy() *PodMetrics { + if in == nil { + return nil + } + out := new(PodMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodMetrics) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodMetricsList) DeepCopyInto(out *PodMetricsList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PodMetrics, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetricsList. +func (in *PodMetricsList) DeepCopy() *PodMetricsList { + if in == nil { + return nil + } + out := new(PodMetricsList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodMetricsList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} diff --git a/vendor/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go b/vendor/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go new file mode 100644 index 0000000000000..c063c9b28a1d5 --- /dev/null +++ b/vendor/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go @@ -0,0 +1,186 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package metrics + +import ( + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerMetrics) DeepCopyInto(out *ContainerMetrics) { + *out = *in + if in.Usage != nil { + in, out := &in.Usage, &out.Usage + *out = make(v1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerMetrics. +func (in *ContainerMetrics) DeepCopy() *ContainerMetrics { + if in == nil { + return nil + } + out := new(ContainerMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeMetrics) DeepCopyInto(out *NodeMetrics) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Timestamp.DeepCopyInto(&out.Timestamp) + out.Window = in.Window + if in.Usage != nil { + in, out := &in.Usage, &out.Usage + *out = make(v1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeMetrics. +func (in *NodeMetrics) DeepCopy() *NodeMetrics { + if in == nil { + return nil + } + out := new(NodeMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeMetrics) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeMetricsList) DeepCopyInto(out *NodeMetricsList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NodeMetrics, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeMetricsList. +func (in *NodeMetricsList) DeepCopy() *NodeMetricsList { + if in == nil { + return nil + } + out := new(NodeMetricsList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeMetricsList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodMetrics) DeepCopyInto(out *PodMetrics) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Timestamp.DeepCopyInto(&out.Timestamp) + out.Window = in.Window + if in.Containers != nil { + in, out := &in.Containers, &out.Containers + *out = make([]ContainerMetrics, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetrics. +func (in *PodMetrics) DeepCopy() *PodMetrics { + if in == nil { + return nil + } + out := new(PodMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodMetrics) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodMetricsList) DeepCopyInto(out *PodMetricsList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PodMetrics, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetricsList. +func (in *PodMetricsList) DeepCopy() *PodMetricsList { + if in == nil { + return nil + } + out := new(PodMetricsList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodMetricsList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 60406cfa2697d..9eef0af060fe0 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2656,6 +2656,10 @@ k8s.io/kubectl/pkg/util/podutils k8s.io/kubectl/pkg/util/templates k8s.io/kubectl/pkg/util/term k8s.io/kubectl/pkg/validation +# k8s.io/metrics v0.34.0 +## explicit; go 1.24.0 +k8s.io/metrics/pkg/apis/metrics +k8s.io/metrics/pkg/apis/metrics/v1beta1 # k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d ## explicit; go 1.18 k8s.io/utils/buffer From 6d7219bf34d2fe977c1626d6d15ddde5f18463e7 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 17:07:30 +0000 Subject: [PATCH 041/176] chore(deps): update docker.io/library/golang:1.25.1 docker digest to 8305f5f Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- cilium-cli/Dockerfile | 2 +- images/builder/Dockerfile | 2 +- images/cilium-docker-plugin/Dockerfile | 2 +- images/clustermesh-apiserver/Dockerfile | 2 +- images/hubble-relay/Dockerfile | 2 +- images/operator/Dockerfile | 2 +- images/runtime/Dockerfile | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cilium-cli/Dockerfile b/cilium-cli/Dockerfile index 83f82a3ac9316..edc55cf92831b 100644 --- a/cilium-cli/Dockerfile +++ b/cilium-cli/Dockerfile @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 ARG BASE_IMAGE=gcr.io/distroless/static:latest@sha256:f2ff10a709b0fd153997059b698ada702e4870745b6077eff03a5f4850ca91b6 -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. # Represents the plataform where the build is happening, do not mix with # TARGETARCH diff --git a/images/builder/Dockerfile b/images/builder/Dockerfile index 1935fb5aff277..2cfadca012c67 100644 --- a/images/builder/Dockerfile +++ b/images/builder/Dockerfile @@ -6,7 +6,7 @@ ARG COMPILERS_IMAGE=quay.io/cilium/image-compilers:1755973935-c5bf38b@sha256:448b126455a301c48d4189bfa9335f44d7d4524d69dcbc8151013ecb6ac0f042 ARG CILIUM_RUNTIME_IMAGE=quay.io/cilium/cilium-runtime:22e31ca0018cad492dcb99bc08368dc11fac28de@sha256:ae2f5413d4cbea8bfa2c6d05f499b5a6a3512bddf1844bb059e1a8b57b1137de ARG TESTER_IMAGE=quay.io/cilium/image-tester:1755531540-60ee83e@sha256:1b05459281d6613acb8573b2cd7f488a0d224eebf031770babbfc6a294501cf7 -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 ARG CILIUM_LLVM_IMAGE=quay.io/cilium/cilium-llvm:1755027449-dfe66ec@sha256:6a8632f1772dee0f1f287dd84f4010347c19f350347487603f16210674a3a787 FROM ${COMPILERS_IMAGE} AS compilers-image diff --git a/images/cilium-docker-plugin/Dockerfile b/images/cilium-docker-plugin/Dockerfile index 3951ff7b4a479..4e156b1c7d6af 100644 --- a/images/cilium-docker-plugin/Dockerfile +++ b/images/cilium-docker-plugin/Dockerfile @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 ARG BASE_IMAGE=scratch -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. # Represents the plataform where the build is happening, do not mix with diff --git a/images/clustermesh-apiserver/Dockerfile b/images/clustermesh-apiserver/Dockerfile index 05861982145fe..e560efc18f6e9 100644 --- a/images/clustermesh-apiserver/Dockerfile +++ b/images/clustermesh-apiserver/Dockerfile @@ -12,7 +12,7 @@ ARG BASE_IMAGE=gcr.io/distroless/static:nonroot@sha256:a9f88e0d99c1ceedbce565fad # chain attacks where an attacker has write access to our 3rd party dependency image registries. # 2. These digests must be to the *overall* digest, not the digest for a specific image. This is because the images will # be architecture specific, but the overall digest will contain all of the architectures. -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 # We don't use ETCD_IMAGE because that's used in Makefile.defs to select a ETCD image approrpate for the *host platform* # to run tests with. ARG ETCD_SERVER_IMAGE=gcr.io/etcd-development/etcd:v3.6.4@sha256:5d10878e4fd4ebfdf82bc142fb044542a3ca514c0ee169277643a84d6816892a diff --git a/images/hubble-relay/Dockerfile b/images/hubble-relay/Dockerfile index 1b1d8057eb759..6ed157c594866 100644 --- a/images/hubble-relay/Dockerfile +++ b/images/hubble-relay/Dockerfile @@ -6,7 +6,7 @@ # distroless images are signed by cosign and can be verified using: # $ cosign verify $IMAGE_NAME --certificate-oidc-issuer https://accounts.google.com --certificate-identity keyless@distroless.iam.gserviceaccount.com ARG BASE_IMAGE=gcr.io/distroless/static:nonroot@sha256:a9f88e0d99c1ceedbce565fad7d3f96744d15e6919c19c7dafe84a6dd9a80c61 -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. diff --git a/images/operator/Dockerfile b/images/operator/Dockerfile index 8a220a18a5d83..889c597727001 100644 --- a/images/operator/Dockerfile +++ b/images/operator/Dockerfile @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 ARG BASE_IMAGE=scratch -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 ARG ALPINE_IMAGE=docker.io/library/alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 diff --git a/images/runtime/Dockerfile b/images/runtime/Dockerfile index 4ccdfcf2167f3..384fbaf5064ee 100644 --- a/images/runtime/Dockerfile +++ b/images/runtime/Dockerfile @@ -3,7 +3,7 @@ # Copyright Authors of Cilium # SPDX-License-Identifier: Apache-2.0 -ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:a5e935dbd8bc3a5ea24388e376388c9a69b40628b6788a81658a801abbec8f2e +ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 ARG UBUNTU_IMAGE=docker.io/library/ubuntu:24.04@sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8 ARG CILIUM_LLVM_IMAGE=quay.io/cilium/cilium-llvm:1755027449-dfe66ec@sha256:6a8632f1772dee0f1f287dd84f4010347c19f350347487603f16210674a3a787 From 5fe9c86146492af96ac4f2ffe934d60b8e1da5e1 Mon Sep 17 00:00:00 2001 From: Cilium Imagebot Date: Mon, 15 Sep 2025 17:11:18 +0000 Subject: [PATCH 042/176] images: update cilium-{runtime,builder} Signed-off-by: Cilium Imagebot --- .devcontainer/devcontainer.json | 2 +- .github/actions/set-runtime-image/runtime-image.txt | 2 +- images/builder/Dockerfile | 2 +- images/cilium/Dockerfile | 4 ++-- images/hubble-relay/Dockerfile | 2 +- images/operator/Dockerfile | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a2f66cb112246..acb4f94b6aad6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "Cilium", - "image": "quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6", + "image": "quay.io/cilium/cilium-builder:f5e2620e352d7bc93f5fa2e2309786102e73c014@sha256:5afb2abd71a4725003c967ee47d9555df10da1e754c07ffc48dfa8e615b83fd5", "workspaceFolder": "/go/src/github.com/cilium/cilium", "workspaceMount": "source=${localWorkspaceFolder},target=/go/src/github.com/cilium/cilium,type=bind", "features": { diff --git a/.github/actions/set-runtime-image/runtime-image.txt b/.github/actions/set-runtime-image/runtime-image.txt index 4ff19f61a2d12..3688134bc8d1a 100644 --- a/.github/actions/set-runtime-image/runtime-image.txt +++ b/.github/actions/set-runtime-image/runtime-image.txt @@ -1 +1 @@ -quay.io/cilium/cilium-runtime:22e31ca0018cad492dcb99bc08368dc11fac28de@sha256:ae2f5413d4cbea8bfa2c6d05f499b5a6a3512bddf1844bb059e1a8b57b1137de \ No newline at end of file +quay.io/cilium/cilium-runtime:061e77638353be08d1a792ef38b8f4597344139d@sha256:db098a1d65275c3d3f8090706feaab9a30c437fb24942b25ffdea06a010c5bae \ No newline at end of file diff --git a/images/builder/Dockerfile b/images/builder/Dockerfile index 2cfadca012c67..09f7415138b8e 100644 --- a/images/builder/Dockerfile +++ b/images/builder/Dockerfile @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 ARG COMPILERS_IMAGE=quay.io/cilium/image-compilers:1755973935-c5bf38b@sha256:448b126455a301c48d4189bfa9335f44d7d4524d69dcbc8151013ecb6ac0f042 -ARG CILIUM_RUNTIME_IMAGE=quay.io/cilium/cilium-runtime:22e31ca0018cad492dcb99bc08368dc11fac28de@sha256:ae2f5413d4cbea8bfa2c6d05f499b5a6a3512bddf1844bb059e1a8b57b1137de +ARG CILIUM_RUNTIME_IMAGE=quay.io/cilium/cilium-runtime:061e77638353be08d1a792ef38b8f4597344139d@sha256:db098a1d65275c3d3f8090706feaab9a30c437fb24942b25ffdea06a010c5bae ARG TESTER_IMAGE=quay.io/cilium/image-tester:1755531540-60ee83e@sha256:1b05459281d6613acb8573b2cd7f488a0d224eebf031770babbfc6a294501cf7 ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 ARG CILIUM_LLVM_IMAGE=quay.io/cilium/cilium-llvm:1755027449-dfe66ec@sha256:6a8632f1772dee0f1f287dd84f4010347c19f350347487603f16210674a3a787 diff --git a/images/cilium/Dockerfile b/images/cilium/Dockerfile index 9a27875e55b9a..be1b6894deb84 100644 --- a/images/cilium/Dockerfile +++ b/images/cilium/Dockerfile @@ -3,8 +3,8 @@ # Copyright Authors of Cilium # SPDX-License-Identifier: Apache-2.0 -ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 -ARG CILIUM_RUNTIME_IMAGE=quay.io/cilium/cilium-runtime:22e31ca0018cad492dcb99bc08368dc11fac28de@sha256:ae2f5413d4cbea8bfa2c6d05f499b5a6a3512bddf1844bb059e1a8b57b1137de +ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:f5e2620e352d7bc93f5fa2e2309786102e73c014@sha256:5afb2abd71a4725003c967ee47d9555df10da1e754c07ffc48dfa8e615b83fd5 +ARG CILIUM_RUNTIME_IMAGE=quay.io/cilium/cilium-runtime:061e77638353be08d1a792ef38b8f4597344139d@sha256:db098a1d65275c3d3f8090706feaab9a30c437fb24942b25ffdea06a010c5bae # # cilium-envoy from github.com/cilium/proxy # diff --git a/images/hubble-relay/Dockerfile b/images/hubble-relay/Dockerfile index 6ed157c594866..2705b128398e4 100644 --- a/images/hubble-relay/Dockerfile +++ b/images/hubble-relay/Dockerfile @@ -7,7 +7,7 @@ # $ cosign verify $IMAGE_NAME --certificate-oidc-issuer https://accounts.google.com --certificate-identity keyless@distroless.iam.gserviceaccount.com ARG BASE_IMAGE=gcr.io/distroless/static:nonroot@sha256:a9f88e0d99c1ceedbce565fad7d3f96744d15e6919c19c7dafe84a6dd9a80c61 ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 -ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 +ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:f5e2620e352d7bc93f5fa2e2309786102e73c014@sha256:5afb2abd71a4725003c967ee47d9555df10da1e754c07ffc48dfa8e615b83fd5 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. # Represents the plataform where the build is happening, do not mix with diff --git a/images/operator/Dockerfile b/images/operator/Dockerfile index 889c597727001..7af24e3c051df 100644 --- a/images/operator/Dockerfile +++ b/images/operator/Dockerfile @@ -6,7 +6,7 @@ ARG BASE_IMAGE=scratch ARG GOLANG_IMAGE=docker.io/library/golang:1.25.1@sha256:8305f5fa8ea63c7b5bc85bd223ccc62941f852318ebfbd22f53bbd0b358c07e1 ARG ALPINE_IMAGE=docker.io/library/alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 -ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:ae90e3650b7d5fd1e470749980667ecda33d77db@sha256:655cd2c0d34d2ea927b0015058202c6458b0c4965d97090c310a8490e793e9e6 +ARG CILIUM_BUILDER_IMAGE=quay.io/cilium/cilium-builder:f5e2620e352d7bc93f5fa2e2309786102e73c014@sha256:5afb2abd71a4725003c967ee47d9555df10da1e754c07ffc48dfa8e615b83fd5 # BUILDPLATFORM is an automatic platform ARG enabled by Docker BuildKit. # Represents the plataform where the build is happening, do not mix with From f81d8964ce4afc578ac32e08addfa016dca2fd29 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Mon, 8 Sep 2025 06:54:52 +0300 Subject: [PATCH 043/176] ipsec: don't reduce post-encrypt MTU for tunnel overhead With the switch to encrypted overlay for IPsec (in v1.18) the overlay encapsulation happens *prior* to encryption. Thus there is no more need to reduce the post-encrypt MTU to allow for subsequent overlay encapsulation. Signed-off-by: Julian Wiedmann --- pkg/mtu/mtu.go | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/pkg/mtu/mtu.go b/pkg/mtu/mtu.go index 3813267979b01..85fd2a58d3ea4 100644 --- a/pkg/mtu/mtu.go +++ b/pkg/mtu/mtu.go @@ -106,25 +106,10 @@ func (c Configuration) Calculate(baseMTU int) RouteMTU { return RouteMTU{ DeviceMTU: c.getDeviceMTU(baseMTU), RouteMTU: c.getRouteMTU(baseMTU), - RoutePostEncryptMTU: c.getRoutePostEncryptMTU(baseMTU), + RoutePostEncryptMTU: c.getDeviceMTU(baseMTU), } } -// GetRoutePostEncryptMTU return the MTU to be used on the encryption routing -// table. This is the MTU without encryption overhead and in the tunnel -// case accounts for the tunnel overhead. -func (c *Configuration) getRoutePostEncryptMTU(baseMTU int) int { - if c.encapEnabled { - postEncryptMTU := baseMTU - c.tunnelOverhead - if postEncryptMTU == 0 { - return EthernetMTU - c.tunnelOverhead - } - return postEncryptMTU - - } - return c.getDeviceMTU(baseMTU) -} - // GetRouteMTU returns the MTU to be used on the network. When running in // tunneling mode and/or with encryption enabled, this will have tunnel and // encryption overhead accounted for. From 3c2c7a219e90de6faa56af49845d6c5684ae026e Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Tue, 16 Sep 2025 12:05:42 +0300 Subject: [PATCH 044/176] bpf: wireguard: delay L3 revalidation If BPF Host Routing is not enabled, we pass the packet back to the stack. In this case we don't need to revalidate the L3 header. Signed-off-by: Julian Wiedmann --- bpf/bpf_wireguard.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bpf/bpf_wireguard.c b/bpf/bpf_wireguard.c index dd67073296540..e777d7e7eac2a 100644 --- a/bpf/bpf_wireguard.c +++ b/bpf/bpf_wireguard.c @@ -87,13 +87,13 @@ handle_ipv6(struct __ctx_buff *ctx, __u32 identity, __s8 *ext_err __maybe_unused } #endif - if (!revalidate_data(ctx, &data, &data_end, &ip6)) - return DROP_INVALID; - #ifndef ENABLE_HOST_ROUTING return TC_ACT_OK; #endif + if (!revalidate_data(ctx, &data, &data_end, &ip6)) + return DROP_INVALID; + ep = lookup_ip6_endpoint(ip6); if (ep && !(ep->flags & ENDPOINT_MASK_HOST_DELIVERY)) { int l3_off = ETH_HLEN; @@ -196,9 +196,6 @@ handle_ipv4(struct __ctx_buff *ctx, __u32 identity, __s8 *ext_err __maybe_unused } #endif - if (!revalidate_data(ctx, &data, &data_end, &ip4)) - return DROP_INVALID; - #ifndef ENABLE_HOST_ROUTING /* Without bpf_redirect_neigh() helper, we cannot redirect a * packet to a local endpoint in the direct routing mode, as @@ -212,6 +209,9 @@ handle_ipv4(struct __ctx_buff *ctx, __u32 identity, __s8 *ext_err __maybe_unused return TC_ACT_OK; #endif + if (!revalidate_data(ctx, &data, &data_end, &ip4)) + return DROP_INVALID; + /* Lookup IPv4 address in list of local endpoints and host IPs */ ep = lookup_ip4_endpoint(ip4); if (ep && !(ep->flags & ENDPOINT_MASK_HOST_DELIVERY)) { From 7e4c82d1abae9348955d9ccfaac49f52f374c78c Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Tue, 16 Sep 2025 12:31:01 +0300 Subject: [PATCH 045/176] bpf: wireguard: prefer ctx_get_protocol over validate_ethertype() On a L3 device the validate_ethertype helper ends up calling ctx_get_protocol(). Short-cut this logic to stay in sync with the to-wireguard program. Signed-off-by: Julian Wiedmann --- bpf/bpf_wireguard.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bpf/bpf_wireguard.c b/bpf/bpf_wireguard.c index e777d7e7eac2a..9f55039758d9d 100644 --- a/bpf/bpf_wireguard.c +++ b/bpf/bpf_wireguard.c @@ -269,14 +269,10 @@ int cil_from_wireguard(struct __ctx_buff *ctx) int __maybe_unused ret; __u32 __maybe_unused identity = UNKNOWN_ID; __s8 __maybe_unused ext_err = 0; - __u16 proto = 0; + __u16 proto = ctx_get_protocol(ctx); ctx_skip_nodeport_clear(ctx); - /* Pass unknown traffic to the stack */ - if (!validate_ethertype(ctx, &proto)) - return TC_ACT_OK; - bpf_clear_meta(ctx); check_and_store_ip_trace_id(ctx); From 501ce9159960cb4c1cd0fb54c21c41a5994fb8e3 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Tue, 16 Sep 2025 12:06:07 +0300 Subject: [PATCH 046/176] bpf: wireguard: don't include eth.h Wireguard is a L3 device, we should not need any L2 code. Signed-off-by: Julian Wiedmann --- bpf/bpf_wireguard.c | 1 - 1 file changed, 1 deletion(-) diff --git a/bpf/bpf_wireguard.c b/bpf/bpf_wireguard.c index 9f55039758d9d..63efdc953519f 100644 --- a/bpf/bpf_wireguard.c +++ b/bpf/bpf_wireguard.c @@ -21,7 +21,6 @@ #include "lib/common.h" #include "lib/ipv6.h" #include "lib/ipv4.h" -#include "lib/eth.h" #include "lib/dbg.h" #include "lib/trace.h" #include "lib/l3.h" From d039eaae74c7b7a2b36c22c92507d0c9486a2ff7 Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Mon, 15 Sep 2025 19:52:53 +0200 Subject: [PATCH 047/176] clustermesh: add back GlobalServiceCache usage in the agent This partially revert this 3ab6ebf3f5500c3b8c1f68c334ce4051bd2caa88 that was removing the GlobalServiceCache in the agent so that we have a consistent behavior in the operator and the agents. For instance, the GlobalServiceCache ignored ClusterService with a shared=false value and while this isn't set anywhere like, doing something different in the agent and operator might lead to even more difference in the future. Signed-off-by: Arthur Outhenin-Chalandre Reported-by: Marco Iorio --- pkg/clustermesh/clustermesh.go | 26 ++++++++----------- pkg/clustermesh/remote_cluster_test.go | 3 +++ pkg/clustermesh/testdata/clusterservice.txtar | 11 ++++++++ 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/pkg/clustermesh/clustermesh.go b/pkg/clustermesh/clustermesh.go index e9ee06ca06f32..b5fccdc194033 100644 --- a/pkg/clustermesh/clustermesh.go +++ b/pkg/clustermesh/clustermesh.go @@ -110,6 +110,10 @@ type ClusterMesh struct { // common implements the common logic to connect to remote clusters. common common.ClusterMesh + // globalServices is a list of all global services. The datastructure + // is protected by its own mutex inside the structure. + globalServices *common.GlobalServiceCache + // nodeName is the name of the local node. This is used for logging and metrics nodeName string @@ -132,6 +136,7 @@ func NewClusterMesh(lifecycle cell.Lifecycle, c Configuration) *ClusterMesh { cm := &ClusterMesh{ conf: c, nodeName: nodeName, + globalServices: common.NewGlobalServiceCache(c.Logger), FeatureMetrics: c.FeatureMetrics, } @@ -162,20 +167,6 @@ func NewClusterMesh(lifecycle cell.Lifecycle, c Configuration) *ClusterMesh { return cm } -type clusterServiceObserver struct { - serviceMerger ServiceMerger -} - -func (obs *clusterServiceObserver) OnUpdate(key store.Key) { - svc := &(key.(*serviceStore.ValidatingClusterService).ClusterService) - obs.serviceMerger.MergeExternalServiceUpdate(svc) -} - -func (obs *clusterServiceObserver) OnDelete(key store.NamedKey) { - svc := &(key.(*serviceStore.ValidatingClusterService).ClusterService) - obs.serviceMerger.MergeExternalServiceDelete(svc) -} - func (cm *ClusterMesh) NewRemoteCluster(name string, status common.StatusFunc) common.RemoteCluster { rc := &remoteCluster{ name: name, @@ -209,7 +200,12 @@ func (cm *ClusterMesh) NewRemoteCluster(name string, status common.StatusFunc) c serviceStore.NamespacedNameValidator(), serviceStore.ClusterIDValidator(&rc.clusterID), ), - &clusterServiceObserver{serviceMerger: cm.conf.ServiceMerger}, + common.NewSharedServicesObserver( + rc.log, + cm.globalServices, + cm.conf.ServiceMerger.MergeExternalServiceUpdate, + cm.conf.ServiceMerger.MergeExternalServiceDelete, + ), store.RWSWithOnSyncCallback(func(ctx context.Context) { close(rc.synced.services) }), store.RWSWithEntriesMetric(cm.conf.Metrics.TotalServices.WithLabelValues(cm.conf.ClusterInfo.Name, cm.nodeName, rc.name)), ) diff --git a/pkg/clustermesh/remote_cluster_test.go b/pkg/clustermesh/remote_cluster_test.go index 193e2f6014d0d..a4dd02132c151 100644 --- a/pkg/clustermesh/remote_cluster_test.go +++ b/pkg/clustermesh/remote_cluster_test.go @@ -16,6 +16,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/cilium/cilium/pkg/clustermesh/common" serviceStore "github.com/cilium/cilium/pkg/clustermesh/store" "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/identity" @@ -165,6 +166,7 @@ func TestRemoteClusterRun(t *testing.T) { Logger: logger, }, FeatureMetrics: NewClusterMeshMetricsNoop(), + globalServices: common.NewGlobalServiceCache(logger), } rc := cm.NewRemoteCluster("foo", nil).(*remoteCluster) ready := make(chan error) @@ -294,6 +296,7 @@ func TestRemoteClusterClusterIDChange(t *testing.T) { Logger: logger, }, FeatureMetrics: NewClusterMeshMetricsNoop(), + globalServices: common.NewGlobalServiceCache(logger), } rc := cm.NewRemoteCluster("foo", nil).(*remoteCluster) diff --git a/pkg/clustermesh/testdata/clusterservice.txtar b/pkg/clustermesh/testdata/clusterservice.txtar index d2a17c6beb2c1..cb10e19c45228 100644 --- a/pkg/clustermesh/testdata/clusterservice.txtar +++ b/pkg/clustermesh/testdata/clusterservice.txtar @@ -33,6 +33,17 @@ kvstore/delete cilium/state/services/v1/cluster2/test/echo db/cmp backends backends-3.table db/cmp frontends frontends-with-clusterservice-3.table +# Marking the cluster service as not shared causes the remote backends to be removed +cp clusterservice3.json clusterservice3_v2.json +sed '"shared": true' '"shared": false' clusterservice3_v2.json +kvstore/update cilium/state/services/v1/cluster3/test/echo clusterservice3_v2.json +db/cmp frontends frontends.table + +# Switch back for next test +kvstore/update cilium/state/services/v1/cluster3/test/echo clusterservice3.json +db/cmp backends backends-3.table +db/cmp frontends frontends-with-clusterservice-3.table + # Removing the last cluster service gets us back to starting point kvstore/delete cilium/state/services/v1/cluster3/test/echo db/cmp frontends frontends.table From c0be0805a026f95f49323e80cdacd8f17cfed893 Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Tue, 16 Sep 2025 14:26:52 +0200 Subject: [PATCH 048/176] gha/conformance-clustermesh: let service nodeport be selected randomly Do not hardcode the nodeport assigned to the clustermesh-apiserver service, and instead let it be assigned randomly upon creation. This prevents the possibility of hitting a conflict with the port assigned to other services, which happens from time to time causing flakiness. The original reason for hardcoding the port no longer holds since cilium/cilium#24692 got fixed by [1]. [1]: 12acdb50e643 ("bpf/socklb: Don't resolve remote cluster NodePort services") Signed-off-by: Marco Iorio --- .github/workflows/conformance-clustermesh.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/conformance-clustermesh.yaml b/.github/workflows/conformance-clustermesh.yaml index e2c859a7d7e96..b4b2d78685e45 100644 --- a/.github/workflows/conformance-clustermesh.yaml +++ b/.github/workflows/conformance-clustermesh.yaml @@ -566,13 +566,12 @@ jobs: env: KVSTORE_ID: 1 run: | - # Explicitly configure the NodePort to make sure that it is different in - # each cluster, to workaround #24692 + # Let the NodePort to be selected randomly, to prevent the risk of conflicts. cilium --context ${{ env.contextName1 }} install \ ${{ steps.vars.outputs.cilium_install_defaults }} \ --helm-set cluster.name=${{ env.ciliumClusterName1 }} \ --helm-set cluster.id=1 \ - --helm-set clustermesh.apiserver.service.nodePort=32379 \ + --helm-set clustermesh.apiserver.service.nodePort=0 \ --helm-set clustermesh.apiserver.tls.authMode=${{ matrix.cm-auth-mode-1 }} \ ${{ steps.vars.outputs.cilium_install_multipool_ipam_cluster1 }} \ ${{ steps.kvstore.outputs.cilium_install_kvstore }} \ @@ -589,13 +588,12 @@ jobs: env: KVSTORE_ID: 2 run: | - # Explicitly configure the NodePort to make sure that it is different in - # each cluster, to workaround #24692 + # Let the NodePort to be selected randomly, to prevent the risk of conflicts. cilium --context ${{ env.contextName2 }} install \ ${{ steps.vars.outputs.cilium_install_defaults }} \ --helm-set cluster.name=${{ env.ciliumClusterName2 }} \ --helm-set cluster.id=${{ matrix.maxConnectedClusters }} \ - --helm-set clustermesh.apiserver.service.nodePort=32380 \ + --helm-set clustermesh.apiserver.service.nodePort=0 \ --helm-set clustermesh.apiserver.tls.authMode=${{ matrix.cm-auth-mode-2 }} \ ${{ steps.vars.outputs.cilium_install_multipool_ipam_cluster2 }} \ ${{ steps.kvstore.outputs.cilium_install_kvstore }} \ From fcac5661cf27ba01c7599a0b4bee53acb00f48a8 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 16 Sep 2025 15:24:14 +0200 Subject: [PATCH 049/176] docs/dsr: Remove IPIP example configuration This IPIP example for the DSR dispatch isn't enough to have IPIP work. It can create confusion as readers assume it's sufficient to make it work. So let's remove until we have a proper full example of how IPIP DSR dispatch might work. Signed-off-by: Paul Chaignon --- .../network/kubernetes/kubeproxy-free.rst | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Documentation/network/kubernetes/kubeproxy-free.rst b/Documentation/network/kubernetes/kubeproxy-free.rst index 8808d673268cd..46297bc4df8e4 100644 --- a/Documentation/network/kubernetes/kubeproxy-free.rst +++ b/Documentation/network/kubernetes/kubeproxy-free.rst @@ -801,20 +801,6 @@ annotation mode with SNAT default would look as follows: When using annotation-based DSR mode (``bpf.lbModeAnnotation=true``), as in the previous example, you must explicitly specify the ``loadBalancer.dsrDispatch`` parameter to define how DSR packets are dispatched to backends. Valid options are ``opt``, ``ipip``, and ``geneve``. - For example, for environments where Geneve encapsulation is not suitable, you can use IPIP instead: - - .. parsed-literal:: - - helm install cilium |CHART_RELEASE| \\ - --namespace kube-system \\ - --set routingMode=native \\ - --set kubeProxyReplacement=true \\ - --set loadBalancer.mode=snat \\ - --set loadBalancer.dsrDispatch=ipip \\ - --set bpf.lbModeAnnotation=true \\ - --set k8sServiceHost=${API_SERVER_IP} \\ - --set k8sServicePort=${API_SERVER_PORT} - Annotation-based Load Balancing Algorithm Selection *************************************************** From 5b81fcce92d8bc110c67d1a3504796a83a649989 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:58:34 +0200 Subject: [PATCH 050/176] policy: remove unused ProxyIDFromKey function It's unused since commit 3d6d72d6b232 ("policy: delete unrealizedRedirectPort"). Signed-off-by: Tobias Klauser --- pkg/policy/proxyid.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pkg/policy/proxyid.go b/pkg/policy/proxyid.go index df9af6b148ff9..efd18904a80b1 100644 --- a/pkg/policy/proxyid.go +++ b/pkg/policy/proxyid.go @@ -7,9 +7,6 @@ import ( "fmt" "strconv" "strings" - - "github.com/cilium/cilium/pkg/policy/trafficdirection" - "github.com/cilium/cilium/pkg/u8proto" ) // ProxyStatsKey returns a key for endpoint's proxy stats, which may aggregate stats from multiple @@ -59,11 +56,6 @@ func ProxyID(endpointID uint16, ingress bool, protocol string, port uint16, list return str.String() } -// ProxyIDFromKey returns a unique string to identify a proxy mapping. -func ProxyIDFromKey(endpointID uint16, key Key, listener string) string { - return ProxyID(endpointID, key.TrafficDirection() == trafficdirection.Ingress, u8proto.U8proto(key.Nexthdr).String(), key.DestPort, listener) -} - // ParseProxyID parses a proxy ID returned by ProxyID and returns its components. func ParseProxyID(proxyID string) (endpointID uint16, ingress bool, protocol string, port uint16, listener string, err error) { comps := strings.Split(proxyID, ":") From 0399e2f47d9517a7397aad20c0ccd56a24aae098 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:58:40 +0200 Subject: [PATCH 051/176] policy: define OriginForTest only for testing OriginForTest is a test helper and as such only used in tests. Define it in origin_test.go so it doesn't get built in non-test code. Also inline the only usage of the testOrigin type while at it. Signed-off-by: Tobias Klauser --- pkg/policy/origin.go | 10 ---------- pkg/policy/origin_test.go | 8 ++++++++ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/pkg/policy/origin.go b/pkg/policy/origin.go index e15cf5324ea5f..c5863efad2e37 100644 --- a/pkg/policy/origin.go +++ b/pkg/policy/origin.go @@ -130,16 +130,6 @@ func (ro ruleOrigin) Merge(other ruleOrigin) ruleOrigin { var NilRuleOrigin = newRuleOrigin(RuleMeta{labels: "[]"}) -type testOrigin map[CachedSelector]labels.LabelArrayList - -func OriginForTest(m testOrigin) map[CachedSelector]ruleOrigin { - res := make(map[CachedSelector]ruleOrigin, len(m)) - for cs, lbls := range m { - res[cs] = makeRuleOrigin(lbls, nil) - } - return res -} - // stringLabels is an interned labels.LabelArray.String() type stringLabels unique.Handle[labels.LabelArrayListString] diff --git a/pkg/policy/origin_test.go b/pkg/policy/origin_test.go index d56ba169a4e9f..5d350ff2042e7 100644 --- a/pkg/policy/origin_test.go +++ b/pkg/policy/origin_test.go @@ -11,6 +11,14 @@ import ( "github.com/cilium/cilium/pkg/labels" ) +func OriginForTest(m map[CachedSelector]labels.LabelArrayList) map[CachedSelector]ruleOrigin { + res := make(map[CachedSelector]ruleOrigin, len(m)) + for cs, lbls := range m { + res[cs] = makeRuleOrigin(lbls, nil) + } + return res +} + func TestRuleOrigin(t *testing.T) { lbls1 := labels.NewLabelsFromSortedList("k8s:a=1;k8s:b=1").LabelArray() lbls2 := labels.NewLabelsFromSortedList("k8s:a=2;k8s:b=2").LabelArray() From d01809e3a4f35057c4b39e308ec246a4796a7ea2 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:59:37 +0200 Subject: [PATCH 052/176] policy: remove unused NewRevertState function This has been unused since it was introduced in commit c22218cb769f ("policy: Make ChangeState.Old private"). Signed-off-by: Tobias Klauser --- pkg/policy/l4.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pkg/policy/l4.go b/pkg/policy/l4.go index 652cd07c9f1c2..51f93f5962f8c 100644 --- a/pkg/policy/l4.go +++ b/pkg/policy/l4.go @@ -601,15 +601,6 @@ type ChangeState struct { old mapStateMap // Old values of all modified or deleted keys, if not nil } -// NewRevertState returns an empty ChangeState suitable for reverting MapState changes. -// The private 'old' field is initialized so that old state can be restored if need be. -func NewRevertState() ChangeState { - return ChangeState{ - Adds: make(Keys), - old: make(mapStateMap), - } -} - func (c *ChangeState) Empty() bool { return len(c.Adds)+len(c.Deletes)+len(c.old) == 0 } From d71da39fd4b92532fb242d95582572e94c4525ac Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:59:39 +0200 Subject: [PATCH 053/176] policy: inline (*PerSelectorPolicy).getAuthType (*PerSelectorPolicy).getAuthType is only called in test code where the (*PerSelectorPolicy) receiver is always non-nil. Thus, inline the calls to getAuthType. Signed-off-by: Tobias Klauser --- pkg/policy/l4.go | 8 -------- pkg/policy/l4_test.go | 8 ++++---- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/pkg/policy/l4.go b/pkg/policy/l4.go index 51f93f5962f8c..a25253014aed0 100644 --- a/pkg/policy/l4.go +++ b/pkg/policy/l4.go @@ -224,14 +224,6 @@ func getAuthType(auth *api.Authentication) (bool, AuthType) { } } -// getAuthType returns the AuthType of the L4Filter. -func (a *PerSelectorPolicy) getAuthType() (bool, AuthType) { - if a == nil { - return false, types.AuthTypeDisabled - } - return getAuthType(a.Authentication) -} - // GetAuthRequirement returns the AuthRequirement of the L4Filter. func (a *PerSelectorPolicy) getAuthRequirement() AuthRequirement { if a == nil { diff --git a/pkg/policy/l4_test.go b/pkg/policy/l4_test.go index e4455f0327a21..bdee6901086d4 100644 --- a/pkg/policy/l4_test.go +++ b/pkg/policy/l4_test.go @@ -163,7 +163,7 @@ func TestCreateL4Filter(t *testing.T) { require.NoError(t, err) require.Len(t, filter.PerSelectorPolicies, 1) for _, sp := range filter.PerSelectorPolicies { - explicit, authType := sp.getAuthType() + explicit, authType := getAuthType(sp.Authentication) require.False(t, explicit) require.Equal(t, AuthTypeDisabled, authType) require.Equal(t, redirectTypeEnvoy, sp.redirectType()) @@ -173,7 +173,7 @@ func TestCreateL4Filter(t *testing.T) { require.NoError(t, err) require.Len(t, filter.PerSelectorPolicies, 1) for _, sp := range filter.PerSelectorPolicies { - explicit, authType := sp.getAuthType() + explicit, authType := getAuthType(sp.Authentication) require.False(t, explicit) require.Equal(t, AuthTypeDisabled, authType) require.Equal(t, redirectTypeEnvoy, sp.redirectType()) @@ -207,7 +207,7 @@ func TestCreateL4FilterAuthRequired(t *testing.T) { require.NoError(t, err) require.Len(t, filter.PerSelectorPolicies, 1) for _, sp := range filter.PerSelectorPolicies { - explicit, authType := sp.getAuthType() + explicit, authType := getAuthType(sp.Authentication) require.True(t, explicit) require.Equal(t, AuthTypeDisabled, authType) require.Equal(t, redirectTypeEnvoy, sp.redirectType()) @@ -217,7 +217,7 @@ func TestCreateL4FilterAuthRequired(t *testing.T) { require.NoError(t, err) require.Len(t, filter.PerSelectorPolicies, 1) for _, sp := range filter.PerSelectorPolicies { - explicit, authType := sp.getAuthType() + explicit, authType := getAuthType(sp.Authentication) require.True(t, explicit) require.Equal(t, AuthTypeDisabled, authType) require.Equal(t, redirectTypeEnvoy, sp.redirectType()) From e8558b0453e2c0e8de684a4547f7e9614633726d Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:59:41 +0200 Subject: [PATCH 054/176] labels: remove unused GenerateK8sLabelString function The function is unused since commit cf354e93c014 ("policy/trace: Remove redundant files"). Signed-off-by: Tobias Klauser --- pkg/labels/labels.go | 12 ------------ pkg/labels/labels_test.go | 8 -------- 2 files changed, 20 deletions(-) diff --git a/pkg/labels/labels.go b/pkg/labels/labels.go index de49863dfc1ce..b7a6394db007a 100644 --- a/pkg/labels/labels.go +++ b/pkg/labels/labels.go @@ -868,15 +868,3 @@ func parseSelectLabel(str string, delim byte) Label { return lbl } - -// generateLabelString generates the string representation of a label with -// the provided source, key, and value in the format "source:key=value". -func generateLabelString(source, key, value string) string { - return source + ":" + key + "=" + value -} - -// GenerateK8sLabelString generates the string representation of a label with -// the provided source, key, and value in the format "LabelSourceK8s:key=value". -func GenerateK8sLabelString(k, v string) string { - return generateLabelString(LabelSourceK8s, k, v) -} diff --git a/pkg/labels/labels_test.go b/pkg/labels/labels_test.go index d423a94bbe331..9dd9fb264e2b7 100644 --- a/pkg/labels/labels_test.go +++ b/pkg/labels/labels_test.go @@ -542,14 +542,6 @@ func BenchmarkLabel_String(b *testing.B) { } } -func BenchmarkGenerateLabelString(b *testing.B) { - b.ReportAllocs() - - for b.Loop() { - generateLabelString("foo", "key", "value") - } -} - func TestLabel_String(t *testing.T) { // with value l := NewLabel("io.kubernetes.pod.namespace", "kube-system", LabelSourceK8s) From 9613d5ebbf0887b7d446d67302244166178f3537 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:59:43 +0200 Subject: [PATCH 055/176] identity: remove unused RequiresGlobalIdentity function The function is unused since commit 09c7f7865377 ("identity: Add Entity-CIDR Selectability"). Signed-off-by: Tobias Klauser --- pkg/identity/identity.go | 6 ------ pkg/identity/identity_test.go | 10 ---------- 2 files changed, 16 deletions(-) diff --git a/pkg/identity/identity.go b/pkg/identity/identity.go index 506773edde431..a26af49e6bc8f 100644 --- a/pkg/identity/identity.go +++ b/pkg/identity/identity.go @@ -182,12 +182,6 @@ func (pair *IPIdentityPair) PrefixString() string { return ipstr + "/" + strconv.Itoa(ones) } -// RequiresGlobalIdentity returns true if the label combination requires a -// global identity -func RequiresGlobalIdentity(lbls labels.Labels) bool { - return ScopeForLabels(lbls) == IdentityScopeGlobal -} - // ScopeForLabels returns the identity scope to be used for the label set. // If all labels are either CIDR or reserved, then returns the CIDR scope. // Note: This assumes the caller has already called LookupReservedIdentityByLabels; diff --git a/pkg/identity/identity_test.go b/pkg/identity/identity_test.go index ecee7903a91e4..39e5ce7cba9b3 100644 --- a/pkg/identity/identity_test.go +++ b/pkg/identity/identity_test.go @@ -61,16 +61,6 @@ func TestIsReservedIdentity(t *testing.T) { require.False(t, NumericIdentity(123456).IsReservedIdentity()) } -func TestRequiresGlobalIdentity(t *testing.T) { - prefix := netip.MustParsePrefix("0.0.0.0/0") - require.False(t, RequiresGlobalIdentity(labels.GetCIDRLabels(prefix))) - - prefix = netip.MustParsePrefix("192.168.23.0/24") - require.False(t, RequiresGlobalIdentity(labels.GetCIDRLabels(prefix))) - - require.True(t, RequiresGlobalIdentity(labels.NewLabelsFromModel([]string{"k8s:foo=bar"}))) -} - func TestScopeForLabels(t *testing.T) { tests := []struct { lbls labels.Labels From 122c11e4c1e8e2da15c86dac031deb1de5c08e31 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 15:59:55 +0200 Subject: [PATCH 056/176] identity: remove unused DelReservedNumericIdentity The function is unused since it was introduced in commit 1256a0b4bc80 ("pkg/identity: add function to add reserved numeric identities"). Signed-off-by: Tobias Klauser --- pkg/identity/numericidentity.go | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/pkg/identity/numericidentity.go b/pkg/identity/numericidentity.go index 67c3778ed5808..f7608ff7f9817 100644 --- a/pkg/identity/numericidentity.go +++ b/pkg/identity/numericidentity.go @@ -426,23 +426,6 @@ func AddUserDefinedNumericIdentity(identity NumericIdentity, label string) error return nil } -// DelReservedNumericIdentity deletes the given Numeric Identity from the list -// of reservedIdentities. If the numeric identity is not between -// UserReservedNumericIdentity and MinimalNumericIdentity it will return -// ErrNotUserIdentity. -// Is not safe for concurrent use. -func DelReservedNumericIdentity(identity NumericIdentity) error { - if !IsUserReservedIdentity(identity) { - return ErrNotUserIdentity - } - label, ok := reservedIdentityNames[identity] - if ok { - delete(reservedIdentities, label) - delete(reservedIdentityNames, identity) - } - return nil -} - // NumericIdentity is the numeric representation of a security identity. // // Bits: From 3642fc4547a3dfa981d29baeecccec2f05e4cc0b Mon Sep 17 00:00:00 2001 From: Hadrien Patte Date: Tue, 16 Sep 2025 17:39:44 +0200 Subject: [PATCH 057/176] Update `checkpatch` and `startup-script` image digest This PR does the same thing as #41360. The initial issue has been resolved with https://github.com/cilium/image-tools/pull/386 but other PRs (https://github.com/cilium/image-tools/pull/387 and https://github.com/cilium/image-tools/pull/383) have been merged before the fix PR, causing the issue to happen again. Signed-off-by: Hadrien Patte --- Documentation/helm-values.rst | 2 +- bpf/Makefile.bpf | 2 +- install/kubernetes/Makefile.values | 2 +- install/kubernetes/cilium/README.md | 2 +- install/kubernetes/cilium/values.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/helm-values.rst b/Documentation/helm-values.rst index 1ce1809be9c83..55546f806c263 100644 --- a/Documentation/helm-values.rst +++ b/Documentation/helm-values.rst @@ -2947,7 +2947,7 @@ * - :spelling:ignore:`nodeinit.image` - node-init image. - object - - ``{"digest":"sha256:0c91245afb3a4ff78b5cc8c09226806e94a9a10eb0adb74a85e0eeed2a5cae8c","override":null,"pullPolicy":"Always","repository":"quay.io/cilium/startup-script","tag":"1755531540-60ee83e","useDigest":true}`` + - ``{"digest":"sha256:5bdca3c2dec2c79f58d45a7a560bf1098c2126350c901379fe850b7f78d3d757","override":null,"pullPolicy":"Always","repository":"quay.io/cilium/startup-script","tag":"1755531540-60ee83e","useDigest":true}`` * - :spelling:ignore:`nodeinit.nodeSelector` - Node labels for nodeinit pod assignment ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector - object diff --git a/bpf/Makefile.bpf b/bpf/Makefile.bpf index 9c0a3b3f7a899..f4bab4ee947ff 100644 --- a/bpf/Makefile.bpf +++ b/bpf/Makefile.bpf @@ -49,7 +49,7 @@ force: # TODO: revert addition of ignore MACRO_ARG_REUSE below once cilium-checkpatch # image is updated to ignore it. # -CHECKPATCH_IMAGE := quay.io/cilium/cilium-checkpatch:1755701578-b97bd7a@sha256:5c4df794425e29962aac25fd5c005fd39d737232121688ba8d08878f4815b232 +CHECKPATCH_IMAGE := quay.io/cilium/cilium-checkpatch:1755701578-b97bd7a@sha256:f1332fa6edbbd40882a59ceae4a7843a4095bd62288363740e84b82708624c50 ifneq ($(CHECKPATCH_DEBUG),) # Run script with "bash -x" CHECKPATCH_IMAGE_AND_ENTRY := \ diff --git a/install/kubernetes/Makefile.values b/install/kubernetes/Makefile.values index c54167e3dd51c..1cf68c6198810 100644 --- a/install/kubernetes/Makefile.values +++ b/install/kubernetes/Makefile.values @@ -33,7 +33,7 @@ export CERTGEN_DIGEST:=sha256:de7b97b1d19a34b674d0c4bc1da4db999f04ae355923a9a994 # renovate: datasource=docker export CILIUM_NODEINIT_REPO:=quay.io/cilium/startup-script export CILIUM_NODEINIT_VERSION:=1755531540-60ee83e -export CILIUM_NODEINIT_DIGEST:=sha256:0c91245afb3a4ff78b5cc8c09226806e94a9a10eb0adb74a85e0eeed2a5cae8c +export CILIUM_NODEINIT_DIGEST:=sha256:5bdca3c2dec2c79f58d45a7a560bf1098c2126350c901379fe850b7f78d3d757 # renovate: datasource=docker export CILIUM_ENVOY_REPO:=quay.io/cilium/cilium-envoy diff --git a/install/kubernetes/cilium/README.md b/install/kubernetes/cilium/README.md index 90cbd3781061d..a5e59e75f071f 100644 --- a/install/kubernetes/cilium/README.md +++ b/install/kubernetes/cilium/README.md @@ -786,7 +786,7 @@ contributors across the globe, there is almost always someone available to help. | nodeinit.extraEnv | list | `[]` | Additional nodeinit environment variables. | | nodeinit.extraVolumeMounts | list | `[]` | Additional nodeinit volumeMounts. | | nodeinit.extraVolumes | list | `[]` | Additional nodeinit volumes. | -| nodeinit.image | object | `{"digest":"sha256:0c91245afb3a4ff78b5cc8c09226806e94a9a10eb0adb74a85e0eeed2a5cae8c","override":null,"pullPolicy":"Always","repository":"quay.io/cilium/startup-script","tag":"1755531540-60ee83e","useDigest":true}` | node-init image. | +| nodeinit.image | object | `{"digest":"sha256:5bdca3c2dec2c79f58d45a7a560bf1098c2126350c901379fe850b7f78d3d757","override":null,"pullPolicy":"Always","repository":"quay.io/cilium/startup-script","tag":"1755531540-60ee83e","useDigest":true}` | node-init image. | | nodeinit.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for nodeinit pod assignment ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector | | nodeinit.podAnnotations | object | `{}` | Annotations to be added to node-init pods. | | nodeinit.podLabels | object | `{}` | Labels to be added to node-init pods. | diff --git a/install/kubernetes/cilium/values.yaml b/install/kubernetes/cilium/values.yaml index e65a98e03ca69..8826e0fd17c91 100644 --- a/install/kubernetes/cilium/values.yaml +++ b/install/kubernetes/cilium/values.yaml @@ -3089,7 +3089,7 @@ nodeinit: override: ~ repository: "quay.io/cilium/startup-script" tag: "1755531540-60ee83e" - digest: "sha256:0c91245afb3a4ff78b5cc8c09226806e94a9a10eb0adb74a85e0eeed2a5cae8c" + digest: "sha256:5bdca3c2dec2c79f58d45a7a560bf1098c2126350c901379fe850b7f78d3d757" useDigest: true pullPolicy: "Always" # -- The priority class to use for the nodeinit pod. From 8aea63849b89f81d7e8c71edb98221eabc20ad5c Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 16 Sep 2025 16:15:44 +0200 Subject: [PATCH 058/176] bpf: declare IP header pointer variables as __maybe_unused Use __maybe_unused to declare IP header pointer variables instead of relying on ENABLE_IPV{4,6} and conditionally declaring them. This helps readability and is in line with other areas of the code. Signed-off-by: Tobias Klauser --- bpf/lib/encrypt.h | 8 ++------ bpf/lib/wireguard.h | 4 +--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/bpf/lib/encrypt.h b/bpf/lib/encrypt.h index 2c00e34318733..2e8f02e9f4250 100644 --- a/bpf/lib/encrypt.h +++ b/bpf/lib/encrypt.h @@ -113,16 +113,12 @@ set_ipsec_encrypt(struct __ctx_buff *ctx, struct remote_endpoint_info *info, static __always_inline int do_decrypt(struct __ctx_buff *ctx, __u16 proto) { + struct ipv6hdr __maybe_unused *ip6; + struct iphdr __maybe_unused *ip4; void *data, *data_end; __u8 protocol = 0; __u16 node_id = 0; bool decrypted; -#ifdef ENABLE_IPV6 - struct ipv6hdr *ip6; -#endif -#ifdef ENABLE_IPV4 - struct iphdr *ip4; -#endif decrypted = ((ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_DECRYPT); diff --git a/bpf/lib/wireguard.h b/bpf/lib/wireguard.h index 25db29f6c25d6..fc6b2684439dc 100644 --- a/bpf/lib/wireguard.h +++ b/bpf/lib/wireguard.h @@ -195,10 +195,8 @@ static __always_inline bool strict_allow(struct __ctx_buff *ctx, __be16 proto) { struct remote_endpoint_info __maybe_unused *dest_info, __maybe_unused *src_info; bool __maybe_unused in_strict_cidr = false; + struct iphdr __maybe_unused *ip4; void *data, *data_end; -#ifdef ENABLE_IPV4 - struct iphdr *ip4; -#endif switch (proto) { #ifdef ENABLE_IPV4 From 11fecab3f09c8634cc3e01722b21b475fc40d030 Mon Sep 17 00:00:00 2001 From: asdfmi Date: Sun, 31 Aug 2025 11:04:31 +0000 Subject: [PATCH 059/176] ipam/multipool: respect ipam-cilium-node-update-rate for CiliumNode updates Signed-off-by: asdfmi --- pkg/ipam/multipool.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/ipam/multipool.go b/pkg/ipam/multipool.go index eb3bc3754e5f4..4cfad2da8265c 100644 --- a/pkg/ipam/multipool.go +++ b/pkg/ipam/multipool.go @@ -263,7 +263,7 @@ func newMultiPoolManager(logger *slog.Logger, conf *option.DaemonConfig, node ag k8sController := controller.NewManager() k8sUpdater, err := trigger.NewTrigger(trigger.Parameters{ - MinInterval: 15 * time.Second, + MinInterval: conf.IPAMCiliumNodeUpdateRate, TriggerFunc: func(reasons []string) { k8sController.TriggerController(multiPoolControllerName) }, From 1e81d0cfb08f7a3ed8335979ce8d9f50b7ec482b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Wed, 17 Sep 2025 09:16:01 +0200 Subject: [PATCH 060/176] workflows/release: add secrets for step 4 and 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The build images releases need to pass the secrets to the release workflow when using reusable workflow. This way, it is possible for the child workflow to access the secrets stored on an environment. Signed-off-by: André Martins --- .github/workflows/build-images-releases.yaml | 20 ++++++++++++++++++++ .github/workflows/release.yaml | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/.github/workflows/build-images-releases.yaml b/.github/workflows/build-images-releases.yaml index 3dc44c88be1b8..cd41cd6a386d0 100644 --- a/.github/workflows/build-images-releases.yaml +++ b/.github/workflows/build-images-releases.yaml @@ -225,6 +225,16 @@ jobs: with: step: "4-post-release" version: ${{ github.ref_name }} + # This is the intended behavior of GitHub Actions. Declaring entries under + # "secrets:" grants the called workflow permission to read + # CILIUM_RELEASE_BOT_PEM and CILIUM_RELEASE_BOT_APP_ID. It does not pass + # literal values here; the values are resolved only in the called + # workflow's scope. If the called workflow sets an environment + # (e.g., environment: TestEnvironment), environment-scoped secrets are + # populated there and become available to its steps. + secrets: + CILIUM_RELEASE_BOT_PEM: ${{ secrets.CILIUM_RELEASE_BOT_PEM }} + CILIUM_RELEASE_BOT_APP_ID: ${{ secrets.CILIUM_RELEASE_BOT_APP_ID }} call-publish-helm: name: Publish Helm Chart @@ -233,3 +243,13 @@ jobs: with: step: "5-publish-helm" version: ${{ github.ref_name }} + # This is the intended behavior of GitHub Actions. Declaring entries under + # "secrets:" grants the called workflow permission to read + # CILIUM_RELEASE_BOT_PEM and CILIUM_RELEASE_BOT_APP_ID. It does not pass + # literal values here; the values are resolved only in the called + # workflow's scope. If the called workflow sets an environment + # (e.g., environment: TestEnvironment), environment-scoped secrets are + # populated there and become available to its steps. + secrets: + CILIUM_RELEASE_BOT_PEM: ${{ secrets.CILIUM_RELEASE_BOT_PEM }} + CILIUM_RELEASE_BOT_APP_ID: ${{ secrets.CILIUM_RELEASE_BOT_APP_ID }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 330319253ea19..6f2adbba53f63 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -27,6 +27,11 @@ on: description: 'Which version are you releasing? (e.g. vX.Y.Z[-(pre|rc).W])' required: true type: string + secrets: + CILIUM_RELEASE_BOT_PEM: + required: true + CILIUM_RELEASE_BOT_APP_ID: + required: true permissions: # To be able to access the repository with `actions/checkout` From 99a6c659655d4854e9b55fcbd8bd680341391633 Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Thu, 4 Sep 2025 15:25:15 +0200 Subject: [PATCH 061/176] redirectpolicy: Fix race in marking desired-skiplbs initialized The desired-skiplbs table may not have been correctly marked initialized in cases where multiple initializers to the frontends table existed. This would've prevented the skiplbmap from being pruned by the reconciler. Fix is easy: keep the 'initWatches' non-nil until we've marked the table initialized. Signed-off-by: Jussi Maki --- pkg/loadbalancer/redirectpolicy/controller.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/loadbalancer/redirectpolicy/controller.go b/pkg/loadbalancer/redirectpolicy/controller.go index 62869b18d8eda..e7204a61424a8 100644 --- a/pkg/loadbalancer/redirectpolicy/controller.go +++ b/pkg/loadbalancer/redirectpolicy/controller.go @@ -169,8 +169,10 @@ func (c *lrpController) run(ctx context.Context, health cell.Health) error { if chanIsClosed(fesInitWatch) { // Mark desired SkipLBs as initialized to allow pruning c.desiredSkipLBInit(wtxn) + + // All initializers marked done, we can stop tracking these. + initWatches = nil } - initWatches = nil } } From 406f3dda65309f0136788b6b479b5a23db584e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Mon, 15 Sep 2025 15:47:45 +0200 Subject: [PATCH 062/176] .github/workflows: stop build CI images until base images are built MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add dependency on lint-images-base workflow completion before building CI images. This prevents wasting CI resources by ensuring base image validation succeeds before proceeding with expensive image builds. Uses a reusable workflow (wait-for-status-check.yaml) that leverages the GitHub CLI to poll for lint workflow completion, avoiding unnecessary resource consumption when base image checks fail. Signed-off-by: André Martins --- .github/workflows/build-images-ci.yaml | 16 +++ .github/workflows/wait-for-status-check.yaml | 122 +++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 .github/workflows/wait-for-status-check.yaml diff --git a/.github/workflows/build-images-ci.yaml b/.github/workflows/build-images-ci.yaml index c90471c5d32fd..eba190fadf89d 100644 --- a/.github/workflows/build-images-ci.yaml +++ b/.github/workflows/build-images-ci.yaml @@ -19,16 +19,32 @@ permissions: contents: read # Required to generate OIDC tokens for `sigstore/cosign-installer` authentication id-token: write + # To be able to check if base images were built + actions: read concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.after || (github.event_name == 'merge_group' && github.run_id) }} cancel-in-progress: true jobs: + wait-for-base-images: + name: Wait for lint checks + uses: ./.github/workflows/wait-for-status-check.yaml + with: + # Only run this job if the event is pull_request_target. + # This is to avoid waiting for base images on push to main or merge_group + # events as the lint-images-base does not run on those events. + if: ${{ github.event_name == 'pull_request_target' }} + sha: ${{ github.event.pull_request.head.sha || github.sha }} + lint-workflows: "lint-images-base.yaml" + timeout-minutes: 2 + poll-interval: 15 + build-and-push-prs: timeout-minutes: 45 name: Build and Push Images runs-on: ${{ vars.GH_RUNNER_EXTRA_POWER_UBUNTU_LATEST || 'ubuntu-24.04' }} + needs: wait-for-base-images outputs: sha: ${{ steps.tag.outputs.sha }} strategy: diff --git a/.github/workflows/wait-for-status-check.yaml b/.github/workflows/wait-for-status-check.yaml new file mode 100644 index 0000000000000..6be1054f5107f --- /dev/null +++ b/.github/workflows/wait-for-status-check.yaml @@ -0,0 +1,122 @@ +name: Wait for Lint Checks + +on: + workflow_call: + inputs: + if: + description: "Condition to run the wait (true/false)" + type: boolean + default: true + sha: + description: "SHA to check for lint workflow completion" + required: true + type: string + lint-workflows: + description: "Comma-separated list of lint workflow filenames to wait for" + required: false + type: string + default: "lint-images-base.yaml" + timeout-minutes: + description: "Maximum time to wait for lint workflows (in minutes)" + required: false + type: number + default: 30 + poll-interval: + description: "Polling interval in seconds" + required: false + type: number + default: 30 + +permissions: + actions: read + contents: read + +jobs: + wait-for-lint: + name: Wait for lint checks + runs-on: ubuntu-24.04 + timeout-minutes: ${{ inputs.timeout-minutes }} + steps: + - name: Wait for lint workflows to complete + if: ${{ inputs.if }} + env: + GH_TOKEN: ${{ github.token }} + run: | + # Parse input parameters + check_sha="${{ inputs.sha }}" + lint_workflows_str="${{ inputs.lint-workflows }}" + poll_interval="${{ inputs.poll-interval }}" + timeout_minutes="${{ inputs.timeout-minutes }}" + + echo "Waiting for lint workflows to complete for SHA: $check_sha" + echo "Lint workflows to check: $lint_workflows_str" + echo "Poll interval: ${poll_interval}s, Timeout: ${timeout_minutes}m" + + # Convert comma-separated workflows to array + IFS=',' read -ra lint_workflows <<< "$lint_workflows_str" + + max_attempts=$((timeout_minutes * 60 / poll_interval)) + attempt=0 + + while [[ $attempt -lt $max_attempts ]]; do + attempt=$((attempt + 1)) + echo "Attempt $attempt/$max_attempts" + + all_successful=true + + for workflow in "${lint_workflows[@]}"; do + # Trim whitespace + workflow=$(echo "$workflow" | xargs) + echo "Checking workflow: $workflow" + + # Use gh CLI to get the latest run for this workflow and commit + run_status=$(gh --repo ${{ github.repository }} run list --workflow "$workflow" --commit "$check_sha" --limit 1 --json status,conclusion --jq '.[0] // empty') + + if [[ -z "$run_status" ]]; then + echo "No workflow run found for SHA $check_sha" + all_successful=false + continue + fi + + status=$(echo "$run_status" | jq -r '.status') + conclusion=$(echo "$run_status" | jq -r '.conclusion') + + echo "Workflow status: $status, conclusion: $conclusion" + + case "$status" in + "completed") + if [[ "$conclusion" == "success" ]]; then + echo "✅ Workflow completed successfully" + else + echo "❌ Lint workflow $workflow failed with conclusion: $conclusion" + exit 1 + fi + ;; + "in_progress"|"queued") + echo "⏳ Workflow is still running..." + all_successful=false + ;; + *) + echo "❓ Unknown workflow status: $status" + all_successful=false + ;; + esac + done + + if [[ "$all_successful" == "true" ]]; then + echo "✅ All lint workflows completed successfully!" + exit 0 + fi + + if [[ $attempt -lt $max_attempts ]]; then + echo "Waiting ${poll_interval} seconds before next check..." + sleep "$poll_interval" + fi + done + + echo "❌ Timeout waiting for lint workflows to complete" + exit 1 + + - name: Return successful + if: ${{ !inputs.if }} + run: echo "Skipping wait as per input condition" From df02f94e0ebcd134178f4f2ae0180fa4eba897d9 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 14:11:12 +0000 Subject: [PATCH 063/176] fix(deps): update all go dependencies main Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- cilium-cli/connectivity/check/metrics.go | 3 +- go.mod | 40 +- go.sum | 82 +- pkg/hubble/metrics/metrics_test.go | 3 +- vendor/github.com/cilium/charts/README.md | 2 + .../cilium/charts/cilium-1.16.13.tgz | Bin 0 -> 205496 bytes .../cilium/charts/cilium-1.19.0-pre.0.tgz | Bin 0 -> 233812 bytes vendor/github.com/cilium/charts/index.yaml | 213 +++- .../github.com/docker/docker/api/swagger.yaml | 7 + .../docker/api/types/build/disk_usage.go | 2 + .../docker/api/types/container/disk_usage.go | 2 + .../api/types/container/network_settings.go | 53 +- .../api/types/filters/filters_deprecated.go | 61 ++ .../docker/docker/api/types/filters/parse.go | 34 - .../docker/api/types/image/disk_usage.go | 2 + .../docker/api/types/network/endpoint.go | 6 +- .../docker/docker/api/types/network/ipam.go | 45 +- .../docker/api/types/registry/authconfig.go | 4 +- .../docker/docker/api/types/swarm/runtime.go | 10 + .../docker/api/types/swarm/runtime/gen.go | 3 - .../api/types/swarm/runtime/plugin.pb.go | 808 --------------- .../api/types/swarm/runtime/plugin.proto | 19 - .../docker/api/types/swarm/runtime/runtime.go | 27 + .../docker/docker/api/types/swarm/task.go | 3 +- .../docker/api/types/system/disk_usage.go | 17 - .../docker/api/types/types_deprecated.go | 7 +- .../docker/api/types/volume/disk_usage.go | 2 + .../github.com/docker/docker/client/client.go | 4 +- .../docker/docker/client/client_unix.go | 11 + .../docker/docker/client/client_windows.go | 12 + .../docker/docker/client/container_stats.go | 4 +- .../docker/docker/client/image_build.go | 2 +- .../github.com/docker/docker/client/utils.go | 13 - .../docker/internal/lazyregexp/lazyregexp.go | 90 -- .../docker/internal/multierror/multierror.go | 46 - vendor/github.com/google/cel-go/cel/env.go | 29 +- .../github.com/google/cel-go/cel/folding.go | 2 +- .../github.com/google/cel-go/cel/program.go | 28 +- .../cel-go/cel/templates/authoring.tmpl | 6 +- .../github.com/google/cel-go/cel/validator.go | 8 + .../google/cel-go/common/types/pb/type.go | 2 +- vendor/github.com/google/cel-go/ext/native.go | 3 +- .../petermattis/goid/runtime_go1.23.go | 4 +- .../petermattis/goid/runtime_go1.25.go | 37 + .../client_golang/prometheus/desc.go | 3 +- .../prometheus/internal/go_runtime_metrics.go | 2 +- .../client_golang/prometheus/labels.go | 3 +- .../prometheus/testutil/testutil.go | 2 +- .../prometheus/common/expfmt/decode.go | 39 +- .../prometheus/common/expfmt/encode.go | 10 +- .../prometheus/common/expfmt/expfmt.go | 12 +- .../prometheus/common/expfmt/fuzz.go | 9 +- .../common/expfmt/openmetrics_create.go | 11 +- .../prometheus/common/expfmt/text_create.go | 8 +- .../prometheus/common/expfmt/text_parse.go | 44 +- .../prometheus/common/model/labels.go | 35 +- .../prometheus/common/model/labelset.go | 10 +- .../prometheus/common/model/metric.go | 196 +++- .../prometheus/common/model/time.go | 12 +- .../prometheus/common/model/value.go | 15 +- .../common/model/value_histogram.go | 10 +- .../prometheus/common/model/value_type.go | 4 +- .../github.com/sasha-s/go-deadlock/Readme.md | 2 +- vendor/github.com/spf13/cobra/.golangci.yml | 28 +- vendor/github.com/spf13/cobra/README.md | 24 +- vendor/github.com/spf13/cobra/SECURITY.md | 105 ++ vendor/github.com/spf13/cobra/command.go | 11 +- vendor/github.com/spf13/cobra/completions.go | 19 +- vendor/github.com/spf13/cobra/doc/man_docs.go | 4 +- vendor/github.com/spf13/cobra/doc/md_docs.go | 8 +- .../github.com/spf13/cobra/doc/rest_docs.go | 8 +- .../github.com/spf13/cobra/doc/yaml_docs.go | 2 +- vendor/github.com/spf13/pflag/flag.go | 36 +- vendor/github.com/spf13/pflag/golangflag.go | 34 + .../spf13/pflag/string_to_string.go | 10 +- vendor/github.com/spf13/pflag/time.go | 8 +- .../golang.org/x/sys/plan9/pwd_go15_plan9.go | 21 - vendor/golang.org/x/sys/plan9/pwd_plan9.go | 14 +- .../golang.org/x/sys/unix/affinity_linux.go | 4 +- .../golang.org/x/sys/unix/syscall_solaris.go | 2 +- .../x/sys/unix/zsyscall_solaris_amd64.go | 8 +- vendor/golang.org/x/sys/unix/ztypes_linux.go | 41 + .../golang.org/x/sys/windows/types_windows.go | 6 + .../x/sys/windows/zsyscall_windows.go | 966 +++++++++--------- .../helm/v3/pkg/chartutil/jsonschema.go | 50 + vendor/modules.txt | 58 +- .../pkg/apis/v1alpha1/serviceexport.go | 181 ++++ .../pkg/apis/v1alpha1/serviceimport.go | 74 ++ 88 files changed, 2041 insertions(+), 1864 deletions(-) create mode 100644 vendor/github.com/cilium/charts/cilium-1.16.13.tgz create mode 100644 vendor/github.com/cilium/charts/cilium-1.19.0-pre.0.tgz create mode 100644 vendor/github.com/docker/docker/api/types/filters/filters_deprecated.go delete mode 100644 vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go delete mode 100644 vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.pb.go delete mode 100644 vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.proto create mode 100644 vendor/github.com/docker/docker/api/types/swarm/runtime/runtime.go delete mode 100644 vendor/github.com/docker/docker/api/types/system/disk_usage.go delete mode 100644 vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go delete mode 100644 vendor/github.com/docker/docker/internal/multierror/multierror.go create mode 100644 vendor/github.com/petermattis/goid/runtime_go1.25.go create mode 100644 vendor/github.com/spf13/cobra/SECURITY.md delete mode 100644 vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go diff --git a/cilium-cli/connectivity/check/metrics.go b/cilium-cli/connectivity/check/metrics.go index f863a77618a62..522947edcd362 100644 --- a/cilium-cli/connectivity/check/metrics.go +++ b/cilium-cli/connectivity/check/metrics.go @@ -11,6 +11,7 @@ import ( dto "github.com/prometheus/client_model/go" "github.com/prometheus/common/expfmt" + "github.com/prometheus/common/model" "github.com/cilium/cilium/pkg/k8s/portforward" ) @@ -103,7 +104,7 @@ func (a *Action) collectMetricsForPod(pod Pod, port string) (promMetricsFamily, // parseMetrics transforms the response from the call to prometheus metric endpoint // into a dto model MetricFamily. func parseMetrics(reader io.Reader) (promMetricsFamily, error) { - var parser expfmt.TextParser + var parser = expfmt.NewTextParser(model.LegacyValidation) mf, err := parser.TextToMetricFamilies(reader) if err != nil { return nil, err diff --git a/go.mod b/go.mod index 0cb104bb4775d..4de6874524ace 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/aws/smithy-go v1.23.0 github.com/blang/semver/v4 v4.0.0 github.com/cespare/xxhash/v2 v2.3.0 - github.com/cilium/charts v0.0.0-20250815135331-8443b5068217 + github.com/cilium/charts v0.0.0-20250904103431-47fb6519b6bb github.com/cilium/coverbee v0.3.3-0.20240723084546-664438750fce github.com/cilium/dns v1.1.51-0.20240603182237-af788769786a github.com/cilium/ebpf v0.19.1-0.20250818092626-ae226118949d @@ -32,7 +32,7 @@ require ( github.com/containernetworking/cni v1.3.0 github.com/coreos/go-systemd/v22 v22.6.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc - github.com/docker/docker v28.3.3+incompatible + github.com/docker/docker v28.4.0+incompatible github.com/docker/libnetwork v0.8.0-dev.2.0.20210525090646-64b7a4574d14 github.com/envoyproxy/go-control-plane/contrib v1.32.5-0.20250809052208-d8ab4c219945 github.com/envoyproxy/go-control-plane/envoy v1.32.5-0.20250809052208-d8ab4c219945 @@ -48,7 +48,7 @@ require ( github.com/go-openapi/swag v0.24.1 github.com/go-openapi/validate v0.24.0 github.com/gogo/protobuf v1.3.2 - github.com/google/cel-go v0.26.0 + github.com/google/cel-go v0.26.1 github.com/google/go-cmp v0.7.0 github.com/google/go-github/v74 v74.0.0 github.com/google/go-licenses v1.6.1-0.20230903011517-706b9c60edd4 @@ -80,17 +80,17 @@ require ( github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 github.com/prometheus-community/pro-bing v0.7.0 - github.com/prometheus/client_golang v1.23.0 + github.com/prometheus/client_golang v1.23.2 github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.65.0 + github.com/prometheus/common v0.66.1 github.com/prometheus/procfs v0.17.0 github.com/russross/blackfriday/v2 v2.1.0 - github.com/sasha-s/go-deadlock v0.3.5 + github.com/sasha-s/go-deadlock v0.3.6 github.com/sirupsen/logrus v1.9.3 github.com/spf13/afero v1.14.0 github.com/spf13/cast v1.9.2 - github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.7 + github.com/spf13/cobra v1.10.1 + github.com/spf13/pflag v1.0.10 github.com/spf13/viper v1.20.1 github.com/spiffe/go-spiffe/v2 v2.6.0 github.com/spiffe/spire-api-sdk v1.12.4 @@ -109,20 +109,20 @@ require ( go.yaml.in/yaml/v3 v3.0.4 go4.org/netipx v0.0.0-20231129151722-fdeea329fbba golang.org/x/crypto v0.41.0 - golang.org/x/mod v0.27.0 + golang.org/x/mod v0.28.0 golang.org/x/net v0.43.0 - golang.org/x/oauth2 v0.30.0 - golang.org/x/sync v0.16.0 - golang.org/x/sys v0.35.0 - golang.org/x/term v0.34.0 - golang.org/x/text v0.28.0 - golang.org/x/time v0.12.0 + golang.org/x/oauth2 v0.31.0 + golang.org/x/sync v0.17.0 + golang.org/x/sys v0.36.0 + golang.org/x/term v0.35.0 + golang.org/x/text v0.29.0 + golang.org/x/time v0.13.0 golang.org/x/tools v0.36.0 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10 - google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c + google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 google.golang.org/grpc v1.75.0 google.golang.org/protobuf v1.36.8 - helm.sh/helm/v3 v3.18.5 + helm.sh/helm/v3 v3.18.6 k8s.io/api v0.34.0 k8s.io/apiextensions-apiserver v0.34.0 k8s.io/apimachinery v0.34.0 @@ -136,8 +136,8 @@ require ( k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d sigs.k8s.io/controller-runtime v0.21.0 sigs.k8s.io/gateway-api v1.3.1-0.20250611112659-17a60f668a0d - sigs.k8s.io/mcs-api v0.1.1-0.20250610011024-38bab5ba476b - sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257 + sigs.k8s.io/mcs-api v0.3.0 + sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b sigs.k8s.io/yaml v1.6.0 ) @@ -274,7 +274,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect - github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect + github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe // indirect github.com/pkg/errors v0.9.1 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/rivo/uniseg v0.4.4 // indirect diff --git a/go.sum b/go.sum index f84dc5f179535..9450668ab6e1f 100644 --- a/go.sum +++ b/go.sum @@ -118,8 +118,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= -github.com/cilium/charts v0.0.0-20250815135331-8443b5068217 h1:selLLU2HQb1FGxHdGF3o/m0s8fD1JMgc6paMmhwdrBA= -github.com/cilium/charts v0.0.0-20250815135331-8443b5068217/go.mod h1:M3C9VOlFvRzuV+a01t07Tw4uFLSfkCH3L542IWjf6BU= +github.com/cilium/charts v0.0.0-20250904103431-47fb6519b6bb h1:mqBXIakWvZaVjxTWW+iyWbGqWRuorB6Sbw+AVSeop38= +github.com/cilium/charts v0.0.0-20250904103431-47fb6519b6bb/go.mod h1:M3C9VOlFvRzuV+a01t07Tw4uFLSfkCH3L542IWjf6BU= github.com/cilium/controller-tools v0.16.5-1 h1:aJLd2riNwIP+qVwA9bFBu2GDk6fQVecJt/0bZF2IYOw= github.com/cilium/controller-tools v0.16.5-1/go.mod h1:8vztuRVzs8IuuJqKqbXCSlXcw+lkAv/M2sTpg55qjMY= github.com/cilium/coverbee v0.3.3-0.20240723084546-664438750fce h1:gqzXY3NuHllVVDw9vD49mlXx+9bYFPlg23rdrkQNFDM= @@ -200,8 +200,8 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= -github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI= -github.com/docker/docker v28.3.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.4.0+incompatible h1:KVC7bz5zJY/4AZe/78BIvCnPsLaC9T/zh72xnlrTTOk= +github.com/docker/docker v28.4.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -357,8 +357,8 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI= -github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM= +github.com/google/cel-go v0.26.1 h1:iPbVVEdkhTX++hpe3lzSk7D3G3QSYqLGoHOcEio+UXQ= +github.com/google/cel-go v0.26.1/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM= github.com/google/certificate-transparency-go v1.1.7 h1:IASD+NtgSTJLPdzkthwvAG1ZVbF2WtFg4IvoA68XGSw= github.com/google/certificate-transparency-go v1.1.7/go.mod h1:FSSBo8fyMVgqptbfF6j5p/XNdgQftAhSmXcIxV9iphE= github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= @@ -602,8 +602,8 @@ github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNH github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= -github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe h1:vHpqOnPlnkba8iSxU4j/CvDSS9J4+F4473esQsYLGoE= +github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= @@ -619,13 +619,13 @@ github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= github.com/prometheus-community/pro-bing v0.7.0 h1:KFYFbxC2f2Fp6c+TyxbCOEarf7rbnzr9Gw8eIb0RfZA= github.com/prometheus-community/pro-bing v0.7.0/go.mod h1:Moob9dvlY50Bfq6i88xIwfyw7xLFHH69LUgx9n5zqCE= -github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= -github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= -github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 h1:EaDatTxkdHG+U3Bk4EUr+DZ7fOGwTfezUiUJMaIcaho= @@ -648,8 +648,8 @@ github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsF github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ= github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= -github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= -github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= +github.com/sasha-s/go-deadlock v0.3.6 h1:TR7sfOnZ7x00tWPfD397Peodt57KzMDo+9Ae9rMiUmw= +github.com/sasha-s/go-deadlock v0.3.6/go.mod h1:CUqNyyvMxTyjFqDT7MRg9mb4Dv/btmGTqSR+rky/UXo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= @@ -666,11 +666,11 @@ github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA= github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo= github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE= github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M= -github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo= @@ -846,8 +846,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= +golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -874,8 +874,8 @@ golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= +golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -885,8 +885,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -920,25 +920,25 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= -golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -983,8 +983,8 @@ google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto/googleapis/api v0.0.0-20250728155136-f173205681a0 h1:0UOBWO4dC+e51ui0NFKSPbkHHiQ4TmrEfEZMLDyRmY8= google.golang.org/genproto/googleapis/api v0.0.0-20250728155136-f173205681a0/go.mod h1:8ytArBbtOy2xfht+y2fqKd5DRDJRUQhqbyEnQ4bDChs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c h1:qXWI/sQtv5UKboZ/zUk7h+mrf/lXORyI+n9DKDAusdg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1:pmJpJEvT846VzausCQ5d7KreSROcDqmO388w5YbnltA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -1038,8 +1038,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -helm.sh/helm/v3 v3.18.5 h1:Cc3Z5vd6kDrZq9wO9KxKLNEickiTho6/H/dBNRVSos4= -helm.sh/helm/v3 v3.18.5/go.mod h1:L/dXDR2r539oPlFP1PJqKAC1CUgqHJDLkxKpDGrWnyg= +helm.sh/helm/v3 v3.18.6 h1:S/2CqcYnNfLckkHLI0VgQbxgcDaU3N4A/46E3n9wSNY= +helm.sh/helm/v3 v3.18.6/go.mod h1:L/dXDR2r539oPlFP1PJqKAC1CUgqHJDLkxKpDGrWnyg= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.34.0 h1:L+JtP2wDbEYPUeNGbeSa/5GwFtIA662EmT2YSLOkAVE= @@ -1089,10 +1089,10 @@ sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I sigs.k8s.io/kustomize/api v0.20.1/go.mod h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM= sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78= sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po= -sigs.k8s.io/mcs-api v0.1.1-0.20250610011024-38bab5ba476b h1:Yw4HHwvbgioWqvyUauZM4pvf2QrMNM38ILbKV46Niio= -sigs.k8s.io/mcs-api v0.1.1-0.20250610011024-38bab5ba476b/go.mod h1:zZ5CK8uS6HaLkxY4HqsmcBHfzHuNMrY2uJy8T7jffK4= -sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257 h1:xxfmazcj83RrfIPC5nAjBpe/0/hI/m+/GaGV+ekJHGQ= -sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257/go.mod h1:58tAw+r41eczKabKA5KwwLabGlO6YLbtkYtKif9sDr0= +sigs.k8s.io/mcs-api v0.3.0 h1:LjRvgzjMrvO1904GP6XBJSnIX221DJMyQlZOYt9LAnM= +sigs.k8s.io/mcs-api v0.3.0/go.mod h1:zZ5CK8uS6HaLkxY4HqsmcBHfzHuNMrY2uJy8T7jffK4= +sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b h1:SGufLhphw+FS0rVHtCCOMlNqoKNYUpZ639FJqlIA1wo= +sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b/go.mod h1:IEVANHiCGLNsCWuPsZCJhCVzeWavUmxpJ8XgpTt9MpM= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/pkg/hubble/metrics/metrics_test.go b/pkg/hubble/metrics/metrics_test.go index 17fedb958962a..43b9a760b02fb 100644 --- a/pkg/hubble/metrics/metrics_test.go +++ b/pkg/hubble/metrics/metrics_test.go @@ -19,6 +19,7 @@ import ( grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/common/expfmt" + "github.com/prometheus/common/model" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "k8s.io/client-go/util/workqueue" @@ -375,7 +376,7 @@ func TestHubbleServerWithDynamicMetrics(t *testing.T) { } func assertMetricsFromServer(t *testing.T, in io.Reader, exportedMetrics map[string][]string) { - var parser expfmt.TextParser + var parser = expfmt.NewTextParser(model.LegacyValidation) mfMap, err := parser.TextToMetricFamilies(in) if err != nil { log.Fatal(err) diff --git a/vendor/github.com/cilium/charts/README.md b/vendor/github.com/cilium/charts/README.md index b8ef4ba7520e8..17fbb404bd283 100644 --- a/vendor/github.com/cilium/charts/README.md +++ b/vendor/github.com/cilium/charts/README.md @@ -1,5 +1,6 @@ This repository holds helm templates for the following Cilium releases: +* [v1.19.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.0/install/kubernetes/cilium)_) * [v1.18.1](https://github.com/cilium/cilium/releases/tag/v1.18.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.1/install/kubernetes/cilium)_) * [v1.18.0](https://github.com/cilium/cilium/releases/tag/v1.18.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0/install/kubernetes/cilium)_) * [v1.18.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.18.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-rc.1/install/kubernetes/cilium)_) @@ -23,6 +24,7 @@ This repository holds helm templates for the following Cilium releases: * [v1.17.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.2/install/kubernetes/cilium)_) * [v1.17.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.1/install/kubernetes/cilium)_) * [v1.17.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.0/install/kubernetes/cilium)_) +* [v1.16.13](https://github.com/cilium/cilium/releases/tag/v1.16.13) (_[source](https://github.com/cilium/cilium/tree/v1.16.13/install/kubernetes/cilium)_) * [v1.16.12](https://github.com/cilium/cilium/releases/tag/v1.16.12) (_[source](https://github.com/cilium/cilium/tree/v1.16.12/install/kubernetes/cilium)_) * [v1.16.11](https://github.com/cilium/cilium/releases/tag/v1.16.11) (_[source](https://github.com/cilium/cilium/tree/v1.16.11/install/kubernetes/cilium)_) * [v1.16.10](https://github.com/cilium/cilium/releases/tag/v1.16.10) (_[source](https://github.com/cilium/cilium/tree/v1.16.10/install/kubernetes/cilium)_) diff --git a/vendor/github.com/cilium/charts/cilium-1.16.13.tgz b/vendor/github.com/cilium/charts/cilium-1.16.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..696391adc23b12c57378ed3e08d119d00e85e2d4 GIT binary patch literal 205496 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 z

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

ZJk;B1a;s{T~WX7oD1 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/cilium/charts/cilium-1.19.0-pre.0.tgz b/vendor/github.com/cilium/charts/cilium-1.19.0-pre.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..669fa5c8cc397463af5de491a5f47af0651e6cbf GIT binary patch literal 233812 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ℑ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

{MywdsHeLl%6Y+!L=y{UQRfJX12 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 z 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 Ay8r+H literal 0 HcmV?d00001 diff --git a/vendor/github.com/cilium/charts/index.yaml b/vendor/github.com/cilium/charts/index.yaml index a511b4950deaa..b7f24e8766f51 100644 --- a/vendor/github.com/cilium/charts/index.yaml +++ b/vendor/github.com/cilium/charts/index.yaml @@ -1,6 +1,111 @@ apiVersion: v1 entries: cilium: + - annotations: + artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n version: v2\n name: ciliumnetworkpolicies.cilium.io\n + \ displayName: Cilium Network Policy\n description: |\n Cilium Network + Policies provide additional functionality beyond what\n is provided by + standard Kubernetes NetworkPolicy such as the ability\n to allow traffic + based on FQDNs, or to filter at Layer 7.\n- kind: CiliumClusterwideNetworkPolicy\n + \ version: v2\n name: ciliumclusterwidenetworkpolicies.cilium.io\n displayName: + Cilium Clusterwide Network Policy\n description: |\n Cilium Clusterwide + Network Policies support configuring network traffic\n policiies across + the entire cluster, including applying node firewalls.\n- kind: CiliumLocalRedirectPolicy\n + \ version: v2\n name: ciliumlocalredirectpolicies.cilium.io\n displayName: + Cilium Local Redirect Policy\n description: |\n Cilium Local Redirect + Policy allows local redirects to be configured\n within a node to support + use cases like Node-Local DNS or KIAM.\n- kind: CiliumNode\n version: v2\n + \ name: ciliumnodes.cilium.io\n displayName: Cilium Node\n description: + |\n Cilium Node represents a node managed by Cilium. It contains a\n specification + to control various node specific configuration aspects\n and a status section + to represent the status of the node.\n- kind: CiliumIdentity\n version: v2\n + \ name: ciliumidentities.cilium.io\n displayName: Cilium Identity\n description: + |\n Cilium Identity allows introspection into security identities that\n + \ Cilium allocates which identify sets of labels that are assigned to\n + \ individual endpoints in the cluster.\n- kind: CiliumEndpoint\n version: + v2\n name: ciliumendpoints.cilium.io\n displayName: Cilium Endpoint\n description: + |\n Cilium Endpoint represents the status of individual pods or nodes in\n + \ the cluster which are managed by Cilium, including enforcement status,\n + \ IP addressing and whether the networking is successfully operational.\n- + kind: CiliumEndpointSlice\n version: v2alpha1\n name: ciliumendpointslices.cilium.io\n + \ displayName: Cilium Endpoint Slice\n description: |\n Cilium Endpoint + Slice represents the status of groups of pods or nodes\n in the cluster + which are managed by Cilium, including enforcement status,\n IP addressing + and whether the networking is successfully operational.\n- kind: CiliumEgressGatewayPolicy\n + \ version: v2\n name: ciliumegressgatewaypolicies.cilium.io\n displayName: + Cilium Egress Gateway Policy\n description: |\n Cilium Egress Gateway + Policy provides control over the way that traffic\n leaves the cluster + and which source addresses to use for that traffic.\n- kind: CiliumClusterwideEnvoyConfig\n + \ version: v2\n name: ciliumclusterwideenvoyconfigs.cilium.io\n displayName: + Cilium Clusterwide Envoy Config\n description: |\n Cilium Clusterwide + Envoy Config specifies Envoy resources and K8s service mappings\n to be + provisioned into Cilium host proxy instances in cluster context.\n- kind: + CiliumEnvoyConfig\n version: v2\n name: ciliumenvoyconfigs.cilium.io\n displayName: + Cilium Envoy Config\n description: |\n Cilium Envoy Config specifies Envoy + resources and K8s service mappings\n to be provisioned into Cilium host + proxy instances in namespace context.\n- kind: CiliumNodeConfig\n version: + v2\n name: ciliumnodeconfigs.cilium.io\n displayName: Cilium Node Configuration\n + \ description: |\n CiliumNodeConfig is a list of configuration key-value + pairs. It is applied to\n nodes indicated by a label selector.\n- kind: + CiliumBGPPeeringPolicy\n version: v2alpha1\n name: ciliumbgppeeringpolicies.cilium.io\n + \ displayName: Cilium BGP Peering Policy\n description: |\n Cilium BGP + Peering Policy instructs Cilium to create specific BGP peering\n configurations.\n- + kind: CiliumBGPClusterConfig\n version: v2alpha1\n name: ciliumbgpclusterconfigs.cilium.io\n + \ displayName: Cilium BGP Cluster Config\n description: |\n Cilium BGP + Cluster Config instructs Cilium operator to create specific BGP cluster\n + \ configurations.\n- kind: CiliumBGPPeerConfig\n version: v2alpha1\n name: + ciliumbgppeerconfigs.cilium.io\n displayName: Cilium BGP Peer Config\n description: + |\n CiliumBGPPeerConfig is a common set of BGP peer configurations. It + can be referenced \n by multiple peers from CiliumBGPClusterConfig.\n- + kind: CiliumBGPAdvertisement\n version: v2alpha1\n name: ciliumbgpadvertisements.cilium.io\n + \ displayName: Cilium BGP Advertisement\n description: |\n CiliumBGPAdvertisement + is used to define source of BGP advertisement as well as BGP attributes \n + \ to be advertised with those prefixes.\n- kind: CiliumBGPNodeConfig\n version: + v2alpha1\n name: ciliumbgpnodeconfigs.cilium.io\n displayName: Cilium BGP + Node Config\n description: |\n CiliumBGPNodeConfig is read only node specific + BGP configuration. It is constructed by Cilium operator.\n It will also + contain node local BGP state information.\n- kind: CiliumBGPNodeConfigOverride\n + \ version: v2alpha1\n name: ciliumbgpnodeconfigoverrides.cilium.io\n displayName: + Cilium BGP Node Config Override\n description: |\n CiliumBGPNodeConfigOverride + can be used to override node specific BGP configuration.\n- kind: CiliumLoadBalancerIPPool\n + \ version: v2\n name: ciliumloadbalancerippools.cilium.io\n displayName: + Cilium Load Balancer IP Pool\n description: |\n Defining a Cilium Load + Balancer IP Pool instructs Cilium to assign IPs to LoadBalancer Services.\n- + kind: CiliumCIDRGroup\n version: v2alpha1\n name: ciliumcidrgroups.cilium.io\n + \ displayName: Cilium CIDR Group\n description: |\n CiliumCIDRGroup is + a list of CIDRs that can be referenced as a single entity from CiliumNetworkPolicies.\n- + kind: CiliumL2AnnouncementPolicy\n version: v2alpha1\n name: ciliuml2announcementpolicies.cilium.io\n + \ displayName: Cilium L2 Announcement Policy\n description: |\n CiliumL2AnnouncementPolicy + is a policy which determines which service IPs will be announced to\n the + local area network, by which nodes, and via which interfaces.\n- kind: CiliumPodIPPool\n + \ version: v2alpha1\n name: ciliumpodippools.cilium.io\n displayName: Cilium + Pod IP Pool\n description: |\n CiliumPodIPPool defines an IP pool that + can be used for pooled IPAM (i.e. the multi-pool IPAM mode).\n- kind: CiliumGatewayClassConfig\n + \ version: v2alpha1\n name: ciliumgatewayclassconfigs.cilium.io\n displayName: + Cilium Gateway Class Config\n description: |\n CiliumGatewayClassConfig + defines a configuration for Gateway API GatewayClass.\n" + apiVersion: v2 + appVersion: 1.19.0-pre.0 + created: "2025-09-03T14:03:43.90553266Z" + description: eBPF-based Networking, Security, and Observability + digest: 70ee18b777431140adecd48afc82c9f9dd905257a259bd1daa2026e1ffc06acb + home: https://cilium.io/ + icon: https://cdn.jsdelivr.net/gh/cilium/cilium@main/Documentation/images/logo-solo.svg + keywords: + - BPF + - eBPF + - Kubernetes + - Networking + - Security + - Observability + - Troubleshooting + kubeVersion: '>= 1.21.0-0' + name: cilium + sources: + - https://github.com/cilium/cilium + urls: + - cilium-1.19.0-pre.0.tgz + version: 1.19.0-pre.0 - annotations: artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n version: v2\n name: ciliumnetworkpolicies.cilium.io\n \ displayName: Cilium Network Policy\n description: |\n Cilium Network @@ -2424,6 +2529,112 @@ entries: urls: - cilium-1.17.0-pre.0.tgz version: 1.17.0-pre.0 + - annotations: + artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n version: v2\n name: ciliumnetworkpolicies.cilium.io\n + \ displayName: Cilium Network Policy\n description: |\n Cilium Network + Policies provide additional functionality beyond what\n is provided by + standard Kubernetes NetworkPolicy such as the ability\n to allow traffic + based on FQDNs, or to filter at Layer 7.\n- kind: CiliumClusterwideNetworkPolicy\n + \ version: v2\n name: ciliumclusterwidenetworkpolicies.cilium.io\n displayName: + Cilium Clusterwide Network Policy\n description: |\n Cilium Clusterwide + Network Policies support configuring network traffic\n policiies across + the entire cluster, including applying node firewalls.\n- kind: CiliumExternalWorkload\n + \ version: v2\n name: ciliumexternalworkloads.cilium.io\n displayName: Cilium + External Workload\n description: |\n Cilium External Workload supports + configuring the ability for external\n non-Kubernetes workloads to join + the cluster.\n- kind: CiliumLocalRedirectPolicy\n version: v2\n name: ciliumlocalredirectpolicies.cilium.io\n + \ displayName: Cilium Local Redirect Policy\n description: |\n Cilium + Local Redirect Policy allows local redirects to be configured\n within + a node to support use cases like Node-Local DNS or KIAM.\n- kind: CiliumNode\n + \ version: v2\n name: ciliumnodes.cilium.io\n displayName: Cilium Node\n + \ description: |\n Cilium Node represents a node managed by Cilium. It + contains a\n specification to control various node specific configuration + aspects\n and a status section to represent the status of the node.\n- + kind: CiliumIdentity\n version: v2\n name: ciliumidentities.cilium.io\n + \ displayName: Cilium Identity\n description: |\n Cilium Identity allows + introspection into security identities that\n Cilium allocates which identify + sets of labels that are assigned to\n individual endpoints in the cluster.\n- + kind: CiliumEndpoint\n version: v2\n name: ciliumendpoints.cilium.io\n displayName: + Cilium Endpoint\n description: |\n Cilium Endpoint represents the status + of individual pods or nodes in\n the cluster which are managed by Cilium, + including enforcement status,\n IP addressing and whether the networking + is successfully operational.\n- kind: CiliumEndpointSlice\n version: v2alpha1\n + \ name: ciliumendpointslices.cilium.io\n displayName: Cilium Endpoint Slice\n + \ description: |\n Cilium Endpoint Slice represents the status of groups + of pods or nodes\n in the cluster which are managed by Cilium, including + enforcement status,\n IP addressing and whether the networking is successfully + operational.\n- kind: CiliumEgressGatewayPolicy\n version: v2\n name: ciliumegressgatewaypolicies.cilium.io\n + \ displayName: Cilium Egress Gateway Policy\n description: |\n Cilium + Egress Gateway Policy provides control over the way that traffic\n leaves + the cluster and which source addresses to use for that traffic.\n- kind: CiliumClusterwideEnvoyConfig\n + \ version: v2\n name: ciliumclusterwideenvoyconfigs.cilium.io\n displayName: + Cilium Clusterwide Envoy Config\n description: |\n Cilium Clusterwide + Envoy Config specifies Envoy resources and K8s service mappings\n to be + provisioned into Cilium host proxy instances in cluster context.\n- kind: + CiliumEnvoyConfig\n version: v2\n name: ciliumenvoyconfigs.cilium.io\n displayName: + Cilium Envoy Config\n description: |\n Cilium Envoy Config specifies Envoy + resources and K8s service mappings\n to be provisioned into Cilium host + proxy instances in namespace context.\n- kind: CiliumBGPPeeringPolicy\n version: + v2alpha1\n name: ciliumbgppeeringpolicies.cilium.io\n displayName: Cilium + BGP Peering Policy\n description: |\n Cilium BGP Peering Policy instructs + Cilium to create specific BGP peering\n configurations.\n- kind: CiliumBGPClusterConfig\n + \ version: v2alpha1\n name: ciliumbgpclusterconfigs.cilium.io\n displayName: + Cilium BGP Cluster Config\n description: |\n Cilium BGP Cluster Config + instructs Cilium operator to create specific BGP cluster\n configurations.\n- + kind: CiliumBGPPeerConfig\n version: v2alpha1\n name: ciliumbgppeerconfigs.cilium.io\n + \ displayName: Cilium BGP Peer Config\n description: |\n CiliumBGPPeerConfig + is a common set of BGP peer configurations. It can be referenced \n by + multiple peers from CiliumBGPClusterConfig.\n- kind: CiliumBGPAdvertisement\n + \ version: v2alpha1\n name: ciliumbgpadvertisements.cilium.io\n displayName: + Cilium BGP Advertisement\n description: |\n CiliumBGPAdvertisement is + used to define source of BGP advertisement as well as BGP attributes \n to + be advertised with those prefixes.\n- kind: CiliumBGPNodeConfig\n version: + v2alpha1\n name: ciliumbgpnodeconfigs.cilium.io\n displayName: Cilium BGP + Node Config\n description: |\n CiliumBGPNodeConfig is read only node specific + BGP configuration. It is constructed by Cilium operator.\n It will also + contain node local BGP state information.\n- kind: CiliumBGPNodeConfigOverride\n + \ version: v2alpha1\n name: ciliumbgpnodeconfigoverrides.cilium.io\n displayName: + Cilium BGP Node Config Override\n description: |\n CiliumBGPNodeConfigOverride + can be used to override node specific BGP configuration.\n- kind: CiliumLoadBalancerIPPool\n + \ version: v2alpha1\n name: ciliumloadbalancerippools.cilium.io\n displayName: + Cilium Load Balancer IP Pool\n description: |\n Defining a Cilium Load + Balancer IP Pool instructs Cilium to assign IPs to LoadBalancer Services.\n- + kind: CiliumNodeConfig\n version: v2alpha1\n name: ciliumnodeconfigs.cilium.io\n + \ displayName: Cilium Node Configuration\n description: |\n CiliumNodeConfig + is a list of configuration key-value pairs. It is applied to\n nodes indicated + by a label selector.\n- kind: CiliumCIDRGroup\n version: v2alpha1\n name: + ciliumcidrgroups.cilium.io\n displayName: Cilium CIDR Group\n description: + |\n CiliumCIDRGroup is a list of CIDRs that can be referenced as a single + entity from CiliumNetworkPolicies.\n- kind: CiliumL2AnnouncementPolicy\n version: + v2alpha1\n name: ciliuml2announcementpolicies.cilium.io\n displayName: Cilium + L2 Announcement Policy\n description: |\n CiliumL2AnnouncementPolicy is + a policy which determines which service IPs will be announced to\n the + local area network, by which nodes, and via which interfaces.\n- kind: CiliumPodIPPool\n + \ version: v2alpha1\n name: ciliumpodippools.cilium.io\n displayName: Cilium + Pod IP Pool\n description: |\n CiliumPodIPPool defines an IP pool that + can be used for pooled IPAM (i.e. the multi-pool IPAM mode).\n" + apiVersion: v2 + appVersion: 1.16.13 + created: "2025-09-04T10:31:51.105837546Z" + description: eBPF-based Networking, Security, and Observability + digest: c46c2263d7807f9836a6a8af24da049e94368284db048b1195ab9d7da7450a52 + home: https://cilium.io/ + icon: https://cdn.jsdelivr.net/gh/cilium/cilium@main/Documentation/images/logo-solo.svg + keywords: + - BPF + - eBPF + - Kubernetes + - Networking + - Security + - Observability + - Troubleshooting + kubeVersion: '>= 1.21.0-0' + name: cilium + sources: + - https://github.com/cilium/cilium + urls: + - cilium-1.16.13.tgz + version: 1.16.13 - annotations: artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n version: v2\n name: ciliumnetworkpolicies.cilium.io\n \ displayName: Cilium Network Policy\n description: |\n Cilium Network @@ -25159,4 +25370,4 @@ entries: urls: - tetragon-0.8.0.tgz version: 0.8.0 -generated: "2025-08-15T13:50:42.749503377Z" +generated: "2025-09-04T10:31:51.094037783Z" diff --git a/vendor/github.com/docker/docker/api/swagger.yaml b/vendor/github.com/docker/docker/api/swagger.yaml index 3880635db128d..1401fa715359a 100644 --- a/vendor/github.com/docker/docker/api/swagger.yaml +++ b/vendor/github.com/docker/docker/api/swagger.yaml @@ -1608,6 +1608,8 @@ definitions: Bridge: description: | Name of the default bridge interface when dockerd's --bridge flag is set. + + Deprecated: This field is only set when the daemon is started with the --bridge flag specified. type: "string" example: "docker0" SandboxID: @@ -2234,6 +2236,10 @@ definitions: password: type: "string" email: + description: | + Email is an optional value associated with the username. + + > **Deprecated**: This field is deprecated since docker 1.11 (API v1.23) and will be removed in a future release. type: "string" serveraddress: type: "string" @@ -4392,6 +4398,7 @@ definitions: A counter that triggers an update even if no relevant parameters have been changed. type: "integer" + format: "uint64" Runtime: description: | Runtime is the type of runtime specified for the task executor. diff --git a/vendor/github.com/docker/docker/api/types/build/disk_usage.go b/vendor/github.com/docker/docker/api/types/build/disk_usage.go index e969b6d615f2b..cfd7333272c4b 100644 --- a/vendor/github.com/docker/docker/api/types/build/disk_usage.go +++ b/vendor/github.com/docker/docker/api/types/build/disk_usage.go @@ -1,6 +1,8 @@ package build // CacheDiskUsage contains disk usage for the build cache. +// +// Deprecated: this type is no longer used and will be removed in the next release. type CacheDiskUsage struct { TotalSize int64 Reclaimable int64 diff --git a/vendor/github.com/docker/docker/api/types/container/disk_usage.go b/vendor/github.com/docker/docker/api/types/container/disk_usage.go index 05b6cbe9c7097..d77538c2ab55e 100644 --- a/vendor/github.com/docker/docker/api/types/container/disk_usage.go +++ b/vendor/github.com/docker/docker/api/types/container/disk_usage.go @@ -1,6 +1,8 @@ package container // DiskUsage contains disk usage for containers. +// +// Deprecated: this type is no longer used and will be removed in the next release. type DiskUsage struct { TotalSize int64 Reclaimable int64 diff --git a/vendor/github.com/docker/docker/api/types/container/network_settings.go b/vendor/github.com/docker/docker/api/types/container/network_settings.go index afec0e54323ee..687145f2953a7 100644 --- a/vendor/github.com/docker/docker/api/types/container/network_settings.go +++ b/vendor/github.com/docker/docker/api/types/container/network_settings.go @@ -13,8 +13,11 @@ type NetworkSettings struct { } // NetworkSettingsBase holds networking state for a container when inspecting it. +// +// Deprecated: Most fields in NetworkSettingsBase are deprecated. Fields which aren't deprecated will move to +// NetworkSettings in v29.0, and this struct will be removed. type NetworkSettingsBase struct { - Bridge string // Bridge contains the name of the default bridge interface iff it was set through the daemon --bridge flag. + Bridge string // Deprecated: This field is only set when the daemon is started with the --bridge flag specified. SandboxID string // SandboxID uniquely represents a container's network stack SandboxKey string // SandboxKey identifies the sandbox Ports nat.PortMap // Ports is a collection of PortBinding indexed by Port @@ -35,18 +38,44 @@ type NetworkSettingsBase struct { SecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release. } -// DefaultNetworkSettings holds network information -// during the 2 release deprecation period. -// It will be removed in Docker 1.11. +// DefaultNetworkSettings holds the networking state for the default bridge, if the container is connected to that +// network. +// +// Deprecated: this struct is deprecated since Docker v1.11 and will be removed in v29. You should look for the default +// network in NetworkSettings.Networks instead. type DefaultNetworkSettings struct { - EndpointID string // EndpointID uniquely represents a service endpoint in a Sandbox - Gateway string // Gateway holds the gateway address for the network - GlobalIPv6Address string // GlobalIPv6Address holds network's global IPv6 address - GlobalIPv6PrefixLen int // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address - IPAddress string // IPAddress holds the IPv4 address for the network - IPPrefixLen int // IPPrefixLen represents mask length of network's IPv4 address - IPv6Gateway string // IPv6Gateway holds gateway address specific for IPv6 - MacAddress string // MacAddress holds the MAC address for the network + // EndpointID uniquely represents a service endpoint in a Sandbox + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + EndpointID string + // Gateway holds the gateway address for the network + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + Gateway string + // GlobalIPv6Address holds network's global IPv6 address + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + GlobalIPv6Address string + // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + GlobalIPv6PrefixLen int + // IPAddress holds the IPv4 address for the network + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + IPAddress string + // IPPrefixLen represents mask length of network's IPv4 address + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + IPPrefixLen int + // IPv6Gateway holds gateway address specific for IPv6 + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + IPv6Gateway string + // MacAddress holds the MAC address for the network + // + // Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead. + MacAddress string } // NetworkSettingsSummary provides a summary of container's networks diff --git a/vendor/github.com/docker/docker/api/types/filters/filters_deprecated.go b/vendor/github.com/docker/docker/api/types/filters/filters_deprecated.go new file mode 100644 index 0000000000000..4504cd7a7fefc --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/filters/filters_deprecated.go @@ -0,0 +1,61 @@ +package filters + +import ( + "encoding/json" + + "github.com/docker/docker/api/types/versions" +) + +// ToParamWithVersion encodes Args as a JSON string. If version is less than 1.22 +// then the encoded format will use an older legacy format where the values are a +// list of strings, instead of a set. +// +// Deprecated: do not use in any new code; use ToJSON instead +func ToParamWithVersion(version string, a Args) (string, error) { + out, err := ToJSON(a) + if out == "" || err != nil { + return "", nil + } + if version != "" && versions.LessThan(version, "1.22") { + return encodeLegacyFilters(out) + } + return out, nil +} + +// encodeLegacyFilters encodes Args in the legacy format as used in API v1.21 and older. +// where values are a list of strings, instead of a set. +// +// Don't use in any new code; use [filters.ToJSON]] instead. +func encodeLegacyFilters(currentFormat string) (string, error) { + // The Args.fields field is not exported, but used to marshal JSON, + // so we'll marshal to the new format, then unmarshal to get the + // fields, and marshal again. + // + // This is far from optimal, but this code is only used for deprecated + // API versions, so should not be hit commonly. + var argsFields map[string]map[string]bool + err := json.Unmarshal([]byte(currentFormat), &argsFields) + if err != nil { + return "", err + } + + buf, err := json.Marshal(convertArgsToSlice(argsFields)) + if err != nil { + return "", err + } + return string(buf), nil +} + +func convertArgsToSlice(f map[string]map[string]bool) map[string][]string { + m := map[string][]string{} + for k, v := range f { + values := []string{} + for kk := range v { + if v[kk] { + values = append(values, kk) + } + } + m[k] = values + } + return m +} diff --git a/vendor/github.com/docker/docker/api/types/filters/parse.go b/vendor/github.com/docker/docker/api/types/filters/parse.go index 86f4bdb28e170..396657bb1921b 100644 --- a/vendor/github.com/docker/docker/api/types/filters/parse.go +++ b/vendor/github.com/docker/docker/api/types/filters/parse.go @@ -8,8 +8,6 @@ import ( "encoding/json" "regexp" "strings" - - "github.com/docker/docker/api/types/versions" ) // Args stores a mapping of keys to a set of multiple values. @@ -63,24 +61,6 @@ func ToJSON(a Args) (string, error) { return string(buf), err } -// ToParamWithVersion encodes Args as a JSON string. If version is less than 1.22 -// then the encoded format will use an older legacy format where the values are a -// list of strings, instead of a set. -// -// Deprecated: do not use in any new code; use ToJSON instead -func ToParamWithVersion(version string, a Args) (string, error) { - if a.Len() == 0 { - return "", nil - } - - if version != "" && versions.LessThan(version, "1.22") { - buf, err := json.Marshal(convertArgsToSlice(a.fields)) - return string(buf), err - } - - return ToJSON(a) -} - // FromJSON decodes a JSON encoded string into Args func FromJSON(p string) (Args, error) { args := NewArgs() @@ -320,17 +300,3 @@ func deprecatedArgs(d map[string][]string) map[string]map[string]bool { } return m } - -func convertArgsToSlice(f map[string]map[string]bool) map[string][]string { - m := map[string][]string{} - for k, v := range f { - values := []string{} - for kk := range v { - if v[kk] { - values = append(values, kk) - } - } - m[k] = values - } - return m -} diff --git a/vendor/github.com/docker/docker/api/types/image/disk_usage.go b/vendor/github.com/docker/docker/api/types/image/disk_usage.go index b29d925cac48b..e847386a8d13f 100644 --- a/vendor/github.com/docker/docker/api/types/image/disk_usage.go +++ b/vendor/github.com/docker/docker/api/types/image/disk_usage.go @@ -1,6 +1,8 @@ package image // DiskUsage contains disk usage for images. +// +// Deprecated: this type is no longer used and will be removed in the next release. type DiskUsage struct { TotalSize int64 Reclaimable int64 diff --git a/vendor/github.com/docker/docker/api/types/network/endpoint.go b/vendor/github.com/docker/docker/api/types/network/endpoint.go index 167ac70ab56a0..cdc06c6c90011 100644 --- a/vendor/github.com/docker/docker/api/types/network/endpoint.go +++ b/vendor/github.com/docker/docker/api/types/network/endpoint.go @@ -4,8 +4,6 @@ import ( "errors" "fmt" "net" - - "github.com/docker/docker/internal/multierror" ) // EndpointSettings stores the network endpoint details @@ -99,7 +97,7 @@ func (cfg *EndpointIPAMConfig) IsInRange(v4Subnets []NetworkSubnet, v6Subnets [] errs = append(errs, err) } - return multierror.Join(errs...) + return errJoin(errs...) } func validateEndpointIPAddress(epAddr string, ipamSubnets []NetworkSubnet) error { @@ -149,5 +147,5 @@ func (cfg *EndpointIPAMConfig) Validate() error { } } - return multierror.Join(errs...) + return errJoin(errs...) } diff --git a/vendor/github.com/docker/docker/api/types/network/ipam.go b/vendor/github.com/docker/docker/api/types/network/ipam.go index f319e1402b081..f9a9ff9b358fa 100644 --- a/vendor/github.com/docker/docker/api/types/network/ipam.go +++ b/vendor/github.com/docker/docker/api/types/network/ipam.go @@ -4,8 +4,7 @@ import ( "errors" "fmt" "net/netip" - - "github.com/docker/docker/internal/multierror" + "strings" ) // IPAM represents IP Address Management @@ -72,7 +71,7 @@ func ValidateIPAM(ipam *IPAM, enableIPv6 bool) error { } } - if err := multierror.Join(errs...); err != nil { + if err := errJoin(errs...); err != nil { return fmt.Errorf("invalid network config:\n%w", err) } @@ -132,3 +131,43 @@ func validateAddress(address string, subnet netip.Prefix, subnetFamily ipFamily) return nil } + +func errJoin(errs ...error) error { + n := 0 + for _, err := range errs { + if err != nil { + n++ + } + } + if n == 0 { + return nil + } + e := &joinError{ + errs: make([]error, 0, n), + } + for _, err := range errs { + if err != nil { + e.errs = append(e.errs, err) + } + } + return e +} + +type joinError struct { + errs []error +} + +func (e *joinError) Error() string { + if len(e.errs) == 1 { + return strings.TrimSpace(e.errs[0].Error()) + } + stringErrs := make([]string, 0, len(e.errs)) + for _, subErr := range e.errs { + stringErrs = append(stringErrs, strings.ReplaceAll(subErr.Error(), "\n", "\n\t")) + } + return "* " + strings.Join(stringErrs, "\n* ") +} + +func (e *joinError) Unwrap() []error { + return e.errs +} diff --git a/vendor/github.com/docker/docker/api/types/registry/authconfig.go b/vendor/github.com/docker/docker/api/types/registry/authconfig.go index fa9037bdadfd8..4c6d7ab2badf3 100644 --- a/vendor/github.com/docker/docker/api/types/registry/authconfig.go +++ b/vendor/github.com/docker/docker/api/types/registry/authconfig.go @@ -32,8 +32,8 @@ type AuthConfig struct { Auth string `json:"auth,omitempty"` // Email is an optional value associated with the username. - // This field is deprecated and will be removed in a later - // version of docker. + // + // Deprecated: This field is deprecated since docker 1.11 (API v1.23) and will be removed in the next release. Email string `json:"email,omitempty"` ServerAddress string `json:"serveraddress,omitempty"` diff --git a/vendor/github.com/docker/docker/api/types/swarm/runtime.go b/vendor/github.com/docker/docker/api/types/swarm/runtime.go index 8a28320f7b854..3fda4ca65d1d5 100644 --- a/vendor/github.com/docker/docker/api/types/swarm/runtime.go +++ b/vendor/github.com/docker/docker/api/types/swarm/runtime.go @@ -1,5 +1,7 @@ package swarm +import "github.com/docker/docker/api/types/swarm/runtime" + // RuntimeType is the type of runtime used for the TaskSpec type RuntimeType string @@ -25,3 +27,11 @@ const ( type NetworkAttachmentSpec struct { ContainerID string } + +// RuntimeSpec defines the base payload which clients can specify for creating +// a service with the plugin runtime. +type RuntimeSpec = runtime.PluginSpec + +// RuntimePrivilege describes a permission the user has to accept +// upon installing a plugin. +type RuntimePrivilege = runtime.PluginPrivilege diff --git a/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go b/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go deleted file mode 100644 index 90e572cf9c90b..0000000000000 --- a/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go +++ /dev/null @@ -1,3 +0,0 @@ -//go:generate protoc --gogofaster_out=import_path=github.com/docker/docker/api/types/swarm/runtime:. plugin.proto - -package runtime diff --git a/vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.pb.go b/vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.pb.go deleted file mode 100644 index 32aaf0d519904..0000000000000 --- a/vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.pb.go +++ /dev/null @@ -1,808 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: plugin.proto - -package runtime - -import ( - fmt "fmt" - proto "github.com/gogo/protobuf/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -// PluginSpec defines the base payload which clients can specify for creating -// a service with the plugin runtime. -type PluginSpec struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Remote string `protobuf:"bytes,2,opt,name=remote,proto3" json:"remote,omitempty"` - Privileges []*PluginPrivilege `protobuf:"bytes,3,rep,name=privileges,proto3" json:"privileges,omitempty"` - Disabled bool `protobuf:"varint,4,opt,name=disabled,proto3" json:"disabled,omitempty"` - Env []string `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty"` -} - -func (m *PluginSpec) Reset() { *m = PluginSpec{} } -func (m *PluginSpec) String() string { return proto.CompactTextString(m) } -func (*PluginSpec) ProtoMessage() {} -func (*PluginSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_22a625af4bc1cc87, []int{0} -} -func (m *PluginSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PluginSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PluginSpec.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PluginSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_PluginSpec.Merge(m, src) -} -func (m *PluginSpec) XXX_Size() int { - return m.Size() -} -func (m *PluginSpec) XXX_DiscardUnknown() { - xxx_messageInfo_PluginSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_PluginSpec proto.InternalMessageInfo - -func (m *PluginSpec) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *PluginSpec) GetRemote() string { - if m != nil { - return m.Remote - } - return "" -} - -func (m *PluginSpec) GetPrivileges() []*PluginPrivilege { - if m != nil { - return m.Privileges - } - return nil -} - -func (m *PluginSpec) GetDisabled() bool { - if m != nil { - return m.Disabled - } - return false -} - -func (m *PluginSpec) GetEnv() []string { - if m != nil { - return m.Env - } - return nil -} - -// PluginPrivilege describes a permission the user has to accept -// upon installing a plugin. -type PluginPrivilege struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Value []string `protobuf:"bytes,3,rep,name=value,proto3" json:"value,omitempty"` -} - -func (m *PluginPrivilege) Reset() { *m = PluginPrivilege{} } -func (m *PluginPrivilege) String() string { return proto.CompactTextString(m) } -func (*PluginPrivilege) ProtoMessage() {} -func (*PluginPrivilege) Descriptor() ([]byte, []int) { - return fileDescriptor_22a625af4bc1cc87, []int{1} -} -func (m *PluginPrivilege) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PluginPrivilege) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PluginPrivilege.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PluginPrivilege) XXX_Merge(src proto.Message) { - xxx_messageInfo_PluginPrivilege.Merge(m, src) -} -func (m *PluginPrivilege) XXX_Size() int { - return m.Size() -} -func (m *PluginPrivilege) XXX_DiscardUnknown() { - xxx_messageInfo_PluginPrivilege.DiscardUnknown(m) -} - -var xxx_messageInfo_PluginPrivilege proto.InternalMessageInfo - -func (m *PluginPrivilege) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *PluginPrivilege) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - -func (m *PluginPrivilege) GetValue() []string { - if m != nil { - return m.Value - } - return nil -} - -func init() { - proto.RegisterType((*PluginSpec)(nil), "PluginSpec") - proto.RegisterType((*PluginPrivilege)(nil), "PluginPrivilege") -} - -func init() { proto.RegisterFile("plugin.proto", fileDescriptor_22a625af4bc1cc87) } - -var fileDescriptor_22a625af4bc1cc87 = []byte{ - // 225 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0xc8, 0x29, 0x4d, - 0xcf, 0xcc, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x9a, 0xc1, 0xc8, 0xc5, 0x15, 0x00, 0x16, - 0x08, 0x2e, 0x48, 0x4d, 0x16, 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95, 0x60, 0x54, 0x60, - 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0xc4, 0xb8, 0xd8, 0x8a, 0x52, 0x73, 0xf3, 0x4b, 0x52, 0x25, - 0x98, 0xc0, 0xa2, 0x50, 0x9e, 0x90, 0x01, 0x17, 0x57, 0x41, 0x51, 0x66, 0x59, 0x66, 0x4e, 0x6a, - 0x7a, 0x6a, 0xb1, 0x04, 0xb3, 0x02, 0xb3, 0x06, 0xb7, 0x91, 0x80, 0x1e, 0xc4, 0xb0, 0x00, 0x98, - 0x44, 0x10, 0x92, 0x1a, 0x21, 0x29, 0x2e, 0x8e, 0x94, 0xcc, 0xe2, 0xc4, 0xa4, 0x9c, 0xd4, 0x14, - 0x09, 0x16, 0x05, 0x46, 0x0d, 0x8e, 0x20, 0x38, 0x5f, 0x48, 0x80, 0x8b, 0x39, 0x35, 0xaf, 0x4c, - 0x82, 0x55, 0x81, 0x59, 0x83, 0x33, 0x08, 0xc4, 0x54, 0x8a, 0xe5, 0xe2, 0x47, 0x33, 0x0c, 0xab, - 0xf3, 0x14, 0xb8, 0xb8, 0x53, 0x52, 0x8b, 0x93, 0x8b, 0x32, 0x0b, 0x4a, 0x32, 0xf3, 0xf3, 0xa0, - 0x6e, 0x44, 0x16, 0x12, 0x12, 0xe1, 0x62, 0x2d, 0x4b, 0xcc, 0x29, 0x4d, 0x05, 0xbb, 0x91, 0x33, - 0x08, 0xc2, 0x71, 0x92, 0x38, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, - 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x24, 0x36, - 0x70, 0xd0, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x37, 0xea, 0xe2, 0xca, 0x2a, 0x01, 0x00, - 0x00, -} - -func (m *PluginSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PluginSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PluginSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Env[iNdEx]) - copy(dAtA[i:], m.Env[iNdEx]) - i = encodeVarintPlugin(dAtA, i, uint64(len(m.Env[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - if m.Disabled { - i-- - if m.Disabled { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - } - if len(m.Privileges) > 0 { - for iNdEx := len(m.Privileges) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Privileges[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPlugin(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Remote) > 0 { - i -= len(m.Remote) - copy(dAtA[i:], m.Remote) - i = encodeVarintPlugin(dAtA, i, uint64(len(m.Remote))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintPlugin(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PluginPrivilege) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PluginPrivilege) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PluginPrivilege) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Value) > 0 { - for iNdEx := len(m.Value) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Value[iNdEx]) - copy(dAtA[i:], m.Value[iNdEx]) - i = encodeVarintPlugin(dAtA, i, uint64(len(m.Value[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintPlugin(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintPlugin(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintPlugin(dAtA []byte, offset int, v uint64) int { - offset -= sovPlugin(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *PluginSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovPlugin(uint64(l)) - } - l = len(m.Remote) - if l > 0 { - n += 1 + l + sovPlugin(uint64(l)) - } - if len(m.Privileges) > 0 { - for _, e := range m.Privileges { - l = e.Size() - n += 1 + l + sovPlugin(uint64(l)) - } - } - if m.Disabled { - n += 2 - } - if len(m.Env) > 0 { - for _, s := range m.Env { - l = len(s) - n += 1 + l + sovPlugin(uint64(l)) - } - } - return n -} - -func (m *PluginPrivilege) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovPlugin(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovPlugin(uint64(l)) - } - if len(m.Value) > 0 { - for _, s := range m.Value { - l = len(s) - n += 1 + l + sovPlugin(uint64(l)) - } - } - return n -} - -func sovPlugin(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozPlugin(x uint64) (n int) { - return sovPlugin(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *PluginSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PluginSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PluginSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - 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 ErrInvalidLengthPlugin - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Remote", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - 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 ErrInvalidLengthPlugin - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Remote = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Privileges", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPlugin - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Privileges = append(m.Privileges, &PluginPrivilege{}) - if err := m.Privileges[len(m.Privileges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Disabled", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Disabled = bool(v != 0) - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - 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 ErrInvalidLengthPlugin - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPlugin(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPlugin - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PluginPrivilege) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PluginPrivilege: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PluginPrivilege: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - 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 ErrInvalidLengthPlugin - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - 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 ErrInvalidLengthPlugin - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPlugin - } - 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 ErrInvalidLengthPlugin - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPlugin - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Value = append(m.Value, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPlugin(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPlugin - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipPlugin(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPlugin - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPlugin - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPlugin - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthPlugin - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupPlugin - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthPlugin - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthPlugin = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowPlugin = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupPlugin = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.proto b/vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.proto deleted file mode 100644 index e311b36ba2cf5..0000000000000 --- a/vendor/github.com/docker/docker/api/types/swarm/runtime/plugin.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -// PluginSpec defines the base payload which clients can specify for creating -// a service with the plugin runtime. -message PluginSpec { - string name = 1; - string remote = 2; - repeated PluginPrivilege privileges = 3; - bool disabled = 4; - repeated string env = 5; -} - -// PluginPrivilege describes a permission the user has to accept -// upon installing a plugin. -message PluginPrivilege { - string name = 1; - string description = 2; - repeated string value = 3; -} diff --git a/vendor/github.com/docker/docker/api/types/swarm/runtime/runtime.go b/vendor/github.com/docker/docker/api/types/swarm/runtime/runtime.go new file mode 100644 index 0000000000000..95176b268186b --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/runtime/runtime.go @@ -0,0 +1,27 @@ +package runtime + +import "fmt" + +// PluginSpec defines the base payload which clients can specify for creating +// a service with the plugin runtime. +type PluginSpec struct { + Name string `json:"name,omitempty"` + Remote string `json:"remote,omitempty"` + Privileges []*PluginPrivilege `json:"privileges,omitempty"` + Disabled bool `json:"disabled,omitempty"` + Env []string `json:"env,omitempty"` +} + +// PluginPrivilege describes a permission the user has to accept +// upon installing a plugin. +type PluginPrivilege struct { + Name string `json:"name,omitempty"` + Description string `json:"description,omitempty"` + Value []string `json:"value,omitempty"` +} + +var ( + ErrInvalidLengthPlugin = fmt.Errorf("proto: negative length found during unmarshaling") // Deprecated: this error was only used internally and is no longer used. + ErrIntOverflowPlugin = fmt.Errorf("proto: integer overflow") // Deprecated: this error was only used internally and is no longer used. + ErrUnexpectedEndOfGroupPlugin = fmt.Errorf("proto: unexpected end of group") // Deprecated: this error was only used internally and is no longer used. +) diff --git a/vendor/github.com/docker/docker/api/types/swarm/task.go b/vendor/github.com/docker/docker/api/types/swarm/task.go index 4dc95e8b1ddee..e143f844fa8f4 100644 --- a/vendor/github.com/docker/docker/api/types/swarm/task.go +++ b/vendor/github.com/docker/docker/api/types/swarm/task.go @@ -4,7 +4,6 @@ import ( "time" "github.com/docker/docker/api/types/filters" - "github.com/docker/docker/api/types/swarm/runtime" ) // TaskState represents the state of a task. @@ -77,7 +76,7 @@ type TaskSpec struct { // NetworkAttachmentSpec is used if the `Runtime` field is set to // `attachment`. ContainerSpec *ContainerSpec `json:",omitempty"` - PluginSpec *runtime.PluginSpec `json:",omitempty"` + PluginSpec *RuntimeSpec `json:",omitempty"` NetworkAttachmentSpec *NetworkAttachmentSpec `json:",omitempty"` Resources *ResourceRequirements `json:",omitempty"` diff --git a/vendor/github.com/docker/docker/api/types/system/disk_usage.go b/vendor/github.com/docker/docker/api/types/system/disk_usage.go deleted file mode 100644 index 99078cf196d09..0000000000000 --- a/vendor/github.com/docker/docker/api/types/system/disk_usage.go +++ /dev/null @@ -1,17 +0,0 @@ -package system - -import ( - "github.com/docker/docker/api/types/build" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/image" - "github.com/docker/docker/api/types/volume" -) - -// DiskUsage contains response of Engine API for API 1.49 and greater: -// GET "/system/df" -type DiskUsage struct { - Images *image.DiskUsage - Containers *container.DiskUsage - Volumes *volume.DiskUsage - BuildCache *build.CacheDiskUsage -} diff --git a/vendor/github.com/docker/docker/api/types/types_deprecated.go b/vendor/github.com/docker/docker/api/types/types_deprecated.go index 8456a45607e2a..c9c20b8736046 100644 --- a/vendor/github.com/docker/docker/api/types/types_deprecated.go +++ b/vendor/github.com/docker/docker/api/types/types_deprecated.go @@ -46,15 +46,16 @@ type NetworkSettings = container.NetworkSettings // NetworkSettingsBase holds networking state for a container when inspecting it. // -// Deprecated: use [container.NetworkSettingsBase]. -type NetworkSettingsBase = container.NetworkSettingsBase +// Deprecated: [container.NetworkSettingsBase] will be removed in v29. Prefer +// accessing the fields it contains through [container.NetworkSettings]. +type NetworkSettingsBase = container.NetworkSettingsBase //nolint:staticcheck // ignore SA1019: NetworkSettingsBase is deprecated in v28.4. // DefaultNetworkSettings holds network information // during the 2 release deprecation period. // It will be removed in Docker 1.11. // // Deprecated: use [container.DefaultNetworkSettings]. -type DefaultNetworkSettings = container.DefaultNetworkSettings +type DefaultNetworkSettings = container.DefaultNetworkSettings //nolint:staticcheck // ignore SA1019: DefaultNetworkSettings is deprecated in v28.4. // SummaryNetworkSettings provides a summary of container's networks // in /containers/json. diff --git a/vendor/github.com/docker/docker/api/types/volume/disk_usage.go b/vendor/github.com/docker/docker/api/types/volume/disk_usage.go index 3d716c6e00d90..88974303a0b02 100644 --- a/vendor/github.com/docker/docker/api/types/volume/disk_usage.go +++ b/vendor/github.com/docker/docker/api/types/volume/disk_usage.go @@ -1,6 +1,8 @@ package volume // DiskUsage contains disk usage for volumes. +// +// Deprecated: this type is no longer used and will be removed in the next release. type DiskUsage struct { TotalSize int64 Reclaimable int64 diff --git a/vendor/github.com/docker/docker/client/client.go b/vendor/github.com/docker/docker/client/client.go index d6e014dddf81f..8acfb7f490e41 100644 --- a/vendor/github.com/docker/docker/client/client.go +++ b/vendor/github.com/docker/docker/client/client.go @@ -463,7 +463,9 @@ func (cli *Client) dialer() func(context.Context) (net.Conn, error) { case "unix": return net.Dial(cli.proto, cli.addr) case "npipe": - return sockets.DialPipe(cli.addr, 32*time.Second) + ctx, cancel := context.WithTimeout(ctx, 32*time.Second) + defer cancel() + return dialPipeContext(ctx, cli.addr) default: if tlsConfig := cli.tlsConfig(); tlsConfig != nil { return tls.Dial(cli.proto, cli.addr, tlsConfig) diff --git a/vendor/github.com/docker/docker/client/client_unix.go b/vendor/github.com/docker/docker/client/client_unix.go index e5b921b40642f..1fb9fbfb9e550 100644 --- a/vendor/github.com/docker/docker/client/client_unix.go +++ b/vendor/github.com/docker/docker/client/client_unix.go @@ -2,6 +2,17 @@ package client +import ( + "context" + "net" + "syscall" +) + // DefaultDockerHost defines OS-specific default host if the DOCKER_HOST // (EnvOverrideHost) environment variable is unset or empty. const DefaultDockerHost = "unix:///var/run/docker.sock" + +// dialPipeContext connects to a Windows named pipe. It is not supported on non-Windows. +func dialPipeContext(_ context.Context, _ string) (net.Conn, error) { + return nil, syscall.EAFNOSUPPORT +} diff --git a/vendor/github.com/docker/docker/client/client_windows.go b/vendor/github.com/docker/docker/client/client_windows.go index 19b954b2fd784..b471c0612403e 100644 --- a/vendor/github.com/docker/docker/client/client_windows.go +++ b/vendor/github.com/docker/docker/client/client_windows.go @@ -1,5 +1,17 @@ package client +import ( + "context" + "net" + + "github.com/Microsoft/go-winio" +) + // DefaultDockerHost defines OS-specific default host if the DOCKER_HOST // (EnvOverrideHost) environment variable is unset or empty. const DefaultDockerHost = "npipe:////./pipe/docker_engine" + +// dialPipeContext connects to a Windows named pipe. It is not supported on non-Windows. +func dialPipeContext(ctx context.Context, addr string) (net.Conn, error) { + return winio.DialPipeContext(ctx, addr) +} diff --git a/vendor/github.com/docker/docker/client/container_stats.go b/vendor/github.com/docker/docker/client/container_stats.go index 2244e0f4b94a4..076954f4c3e80 100644 --- a/vendor/github.com/docker/docker/client/container_stats.go +++ b/vendor/github.com/docker/docker/client/container_stats.go @@ -28,7 +28,7 @@ func (cli *Client) ContainerStats(ctx context.Context, containerID string, strea return container.StatsResponseReader{ Body: resp.Body, - OSType: getDockerOS(resp.Header.Get("Server")), + OSType: resp.Header.Get("Ostype"), }, nil } @@ -51,6 +51,6 @@ func (cli *Client) ContainerStatsOneShot(ctx context.Context, containerID string return container.StatsResponseReader{ Body: resp.Body, - OSType: getDockerOS(resp.Header.Get("Server")), + OSType: resp.Header.Get("Ostype"), }, nil } diff --git a/vendor/github.com/docker/docker/client/image_build.go b/vendor/github.com/docker/docker/client/image_build.go index 66ca75e4af285..1ed0878bfdb2d 100644 --- a/vendor/github.com/docker/docker/client/image_build.go +++ b/vendor/github.com/docker/docker/client/image_build.go @@ -40,7 +40,7 @@ func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, optio return build.ImageBuildResponse{ Body: resp.Body, - OSType: getDockerOS(resp.Header.Get("Server")), + OSType: resp.Header.Get("Ostype"), }, nil } diff --git a/vendor/github.com/docker/docker/client/utils.go b/vendor/github.com/docker/docker/client/utils.go index 67e1e6934b59d..7b82f185ac58f 100644 --- a/vendor/github.com/docker/docker/client/utils.go +++ b/vendor/github.com/docker/docker/client/utils.go @@ -8,12 +8,9 @@ import ( cerrdefs "github.com/containerd/errdefs" "github.com/docker/docker/api/types/filters" - "github.com/docker/docker/internal/lazyregexp" ocispec "github.com/opencontainers/image-spec/specs-go/v1" ) -var headerRegexp = lazyregexp.New(`\ADocker/.+\s\((.+)\)\z`) - type emptyIDError string func (e emptyIDError) InvalidParameter() {} @@ -31,16 +28,6 @@ func trimID(objType, id string) (string, error) { return id, nil } -// getDockerOS returns the operating system based on the server header from the daemon. -func getDockerOS(serverHeader string) string { - var osType string - matches := headerRegexp.FindStringSubmatch(serverHeader) - if len(matches) > 0 { - osType = matches[1] - } - return osType -} - // getFiltersQuery returns a url query with "filters" query term, based on the // filters provided. func getFiltersQuery(f filters.Args) (url.Values, error) { diff --git a/vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go b/vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go deleted file mode 100644 index 6334edb60dca3..0000000000000 --- a/vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code below was largely copied from golang.org/x/mod@v0.22; -// https://github.com/golang/mod/blob/v0.22.0/internal/lazyregexp/lazyre.go -// with some additional methods added. - -// Package lazyregexp is a thin wrapper over regexp, allowing the use of global -// regexp variables without forcing them to be compiled at init. -package lazyregexp - -import ( - "os" - "regexp" - "strings" - "sync" -) - -// Regexp is a wrapper around [regexp.Regexp], where the underlying regexp will be -// compiled the first time it is needed. -type Regexp struct { - str string - once sync.Once - rx *regexp.Regexp -} - -func (r *Regexp) re() *regexp.Regexp { - r.once.Do(r.build) - return r.rx -} - -func (r *Regexp) build() { - r.rx = regexp.MustCompile(r.str) - r.str = "" -} - -func (r *Regexp) FindSubmatch(s []byte) [][]byte { - return r.re().FindSubmatch(s) -} - -func (r *Regexp) FindAllStringSubmatch(s string, n int) [][]string { - return r.re().FindAllStringSubmatch(s, n) -} - -func (r *Regexp) FindStringSubmatch(s string) []string { - return r.re().FindStringSubmatch(s) -} - -func (r *Regexp) FindStringSubmatchIndex(s string) []int { - return r.re().FindStringSubmatchIndex(s) -} - -func (r *Regexp) ReplaceAllString(src, repl string) string { - return r.re().ReplaceAllString(src, repl) -} - -func (r *Regexp) FindString(s string) string { - return r.re().FindString(s) -} - -func (r *Regexp) FindAllString(s string, n int) []string { - return r.re().FindAllString(s, n) -} - -func (r *Regexp) MatchString(s string) bool { - return r.re().MatchString(s) -} - -func (r *Regexp) ReplaceAllStringFunc(src string, repl func(string) string) string { - return r.re().ReplaceAllStringFunc(src, repl) -} - -func (r *Regexp) SubexpNames() []string { - return r.re().SubexpNames() -} - -var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test") - -// New creates a new lazy regexp, delaying the compiling work until it is first -// needed. If the code is being run as part of tests, the regexp compiling will -// happen immediately. -func New(str string) *Regexp { - lr := &Regexp{str: str} - if inTest { - // In tests, always compile the regexps early. - lr.re() - } - return lr -} diff --git a/vendor/github.com/docker/docker/internal/multierror/multierror.go b/vendor/github.com/docker/docker/internal/multierror/multierror.go deleted file mode 100644 index e899f4de85c90..0000000000000 --- a/vendor/github.com/docker/docker/internal/multierror/multierror.go +++ /dev/null @@ -1,46 +0,0 @@ -package multierror - -import ( - "strings" -) - -// Join is a drop-in replacement for errors.Join with better formatting. -func Join(errs ...error) error { - n := 0 - for _, err := range errs { - if err != nil { - n++ - } - } - if n == 0 { - return nil - } - e := &joinError{ - errs: make([]error, 0, n), - } - for _, err := range errs { - if err != nil { - e.errs = append(e.errs, err) - } - } - return e -} - -type joinError struct { - errs []error -} - -func (e *joinError) Error() string { - if len(e.errs) == 1 { - return strings.TrimSpace(e.errs[0].Error()) - } - stringErrs := make([]string, 0, len(e.errs)) - for _, subErr := range e.errs { - stringErrs = append(stringErrs, strings.ReplaceAll(subErr.Error(), "\n", "\n\t")) - } - return "* " + strings.Join(stringErrs, "\n* ") -} - -func (e *joinError) Unwrap() []error { - return e.errs -} diff --git a/vendor/github.com/google/cel-go/cel/env.go b/vendor/github.com/google/cel-go/cel/env.go index bb3014464e522..58819e872a28f 100644 --- a/vendor/github.com/google/cel-go/cel/env.go +++ b/vendor/github.com/google/cel-go/cel/env.go @@ -27,6 +27,7 @@ import ( "github.com/google/cel-go/common/containers" "github.com/google/cel-go/common/decls" "github.com/google/cel-go/common/env" + "github.com/google/cel-go/common/functions" "github.com/google/cel-go/common/stdlib" "github.com/google/cel-go/common/types" "github.com/google/cel-go/common/types/ref" @@ -142,6 +143,9 @@ type Env struct { validators []ASTValidator costOptions []checker.CostOption + funcBindOnce sync.Once + functionBindings []*functions.Overload + // Internal parser representation prsr *parser.Parser prsrOpts []parser.Option @@ -320,18 +324,19 @@ func NewCustomEnv(opts ...EnvOption) (*Env, error) { return nil, err } return (&Env{ - variables: []*decls.VariableDecl{}, - functions: map[string]*decls.FunctionDecl{}, - macros: []parser.Macro{}, - Container: containers.DefaultContainer, - adapter: registry, - provider: registry, - features: map[int]bool{}, - appliedFeatures: map[int]bool{}, - libraries: map[string]SingletonLibrary{}, - validators: []ASTValidator{}, - progOpts: []ProgramOption{}, - costOptions: []checker.CostOption{}, + variables: []*decls.VariableDecl{}, + functions: map[string]*decls.FunctionDecl{}, + functionBindings: []*functions.Overload{}, + macros: []parser.Macro{}, + Container: containers.DefaultContainer, + adapter: registry, + provider: registry, + features: map[int]bool{}, + appliedFeatures: map[int]bool{}, + libraries: map[string]SingletonLibrary{}, + validators: []ASTValidator{}, + progOpts: []ProgramOption{}, + costOptions: []checker.CostOption{}, }).configure(opts) } diff --git a/vendor/github.com/google/cel-go/cel/folding.go b/vendor/github.com/google/cel-go/cel/folding.go index 40d843ecea302..d1ea6b19dbe13 100644 --- a/vendor/github.com/google/cel-go/cel/folding.go +++ b/vendor/github.com/google/cel-go/cel/folding.go @@ -38,7 +38,7 @@ func MaxConstantFoldIterations(limit int) ConstantFoldingOption { } } -// Adds an Activation which provides known values for the folding evaluator +// FoldKnownValues adds an Activation which provides known values for the folding evaluator // // Any values the activation provides will be used by the constant folder and turned into // literals in the AST. diff --git a/vendor/github.com/google/cel-go/cel/program.go b/vendor/github.com/google/cel-go/cel/program.go index 24f41a4a77ee0..ec3869bdb4a35 100644 --- a/vendor/github.com/google/cel-go/cel/program.go +++ b/vendor/github.com/google/cel-go/cel/program.go @@ -20,6 +20,7 @@ import ( "sync" "github.com/google/cel-go/common/ast" + "github.com/google/cel-go/common/functions" "github.com/google/cel-go/common/types" "github.com/google/cel-go/common/types/ref" "github.com/google/cel-go/interpreter" @@ -191,16 +192,25 @@ func newProgram(e *Env, a *ast.AST, opts []ProgramOption) (Program, error) { } } - // Add the function bindings created via Function() options. - for _, fn := range e.functions { - bindings, err := fn.Bindings() - if err != nil { - return nil, err - } - err = disp.Add(bindings...) - if err != nil { - return nil, err + e.funcBindOnce.Do(func() { + var bindings []*functions.Overload + e.functionBindings = []*functions.Overload{} + for _, fn := range e.functions { + bindings, err = fn.Bindings() + if err != nil { + return + } + e.functionBindings = append(e.functionBindings, bindings...) } + }) + if err != nil { + return nil, err + } + + // Add the function bindings created via Function() options. + err = disp.Add(e.functionBindings...) + if err != nil { + return nil, err } // Set the attribute factory after the options have been set. diff --git a/vendor/github.com/google/cel-go/cel/templates/authoring.tmpl b/vendor/github.com/google/cel-go/cel/templates/authoring.tmpl index d6b3da5c6c0be..d0b0133f151f0 100644 --- a/vendor/github.com/google/cel-go/cel/templates/authoring.tmpl +++ b/vendor/github.com/google/cel-go/cel/templates/authoring.tmpl @@ -1,4 +1,8 @@ -{{define "variable"}}{{.Name}} is a {{.Type}} +{{define "variable"}}{{.Name}} is a {{.Type}}{{if .Description}} + +{{range split .Description}} {{.}} +{{end}} +{{- end -}} {{- end -}} {{define "macro" -}} diff --git a/vendor/github.com/google/cel-go/cel/validator.go b/vendor/github.com/google/cel-go/cel/validator.go index 5f06b2dd55f30..952f88f41b8b3 100644 --- a/vendor/github.com/google/cel-go/cel/validator.go +++ b/vendor/github.com/google/cel-go/cel/validator.go @@ -45,6 +45,14 @@ var ( astValidatorFactories = map[string]ASTValidatorFactory{ nestingLimitValidatorName: func(val *env.Validator) (ASTValidator, error) { if limit, found := val.ConfigValue("limit"); found { + // In case of protos, config value is of type by google.protobuf.Value, which numeric values are always a double. + if val, isDouble := limit.(float64); isDouble { + if val != float64(int64(val)) { + return nil, fmt.Errorf("invalid validator: %s, limit value is not a whole number: %v", nestingLimitValidatorName, limit) + } + return ValidateComprehensionNestingLimit(int(val)), nil + } + if val, isInt := limit.(int); isInt { return ValidateComprehensionNestingLimit(val), nil } diff --git a/vendor/github.com/google/cel-go/common/types/pb/type.go b/vendor/github.com/google/cel-go/common/types/pb/type.go index bdd474c95af9a..171494f075a9e 100644 --- a/vendor/github.com/google/cel-go/common/types/pb/type.go +++ b/vendor/github.com/google/cel-go/common/types/pb/type.go @@ -472,7 +472,7 @@ func unwrap(desc description, msg proto.Message) (any, bool, error) { } return v.GetValue(), true, nil } - return msg, false, nil + return unwrapDynamic(desc, msg.ProtoReflect()) } // unwrapDynamic unwraps a reflected protobuf Message value. diff --git a/vendor/github.com/google/cel-go/ext/native.go b/vendor/github.com/google/cel-go/ext/native.go index 661984cbb1271..ceaa274b740ba 100644 --- a/vendor/github.com/google/cel-go/ext/native.go +++ b/vendor/github.com/google/cel-go/ext/native.go @@ -609,7 +609,8 @@ func newNativeTypes(fieldNameHandler NativeTypesFieldNameHandler, rawType reflec var iterateStructMembers func(reflect.Type) iterateStructMembers = func(t reflect.Type) { if k := t.Kind(); k == reflect.Pointer || k == reflect.Slice || k == reflect.Array || k == reflect.Map { - t = t.Elem() + iterateStructMembers(t.Elem()) + return } if t.Kind() != reflect.Struct { return diff --git a/vendor/github.com/petermattis/goid/runtime_go1.23.go b/vendor/github.com/petermattis/goid/runtime_go1.23.go index 146d81734a02d..45da87379f1f1 100644 --- a/vendor/github.com/petermattis/goid/runtime_go1.23.go +++ b/vendor/github.com/petermattis/goid/runtime_go1.23.go @@ -1,5 +1,5 @@ -//go:build gc && go1.23 -// +build gc,go1.23 +//go:build gc && go1.23 && !go1.25 +// +build gc,go1.23,!go1.25 package goid diff --git a/vendor/github.com/petermattis/goid/runtime_go1.25.go b/vendor/github.com/petermattis/goid/runtime_go1.25.go new file mode 100644 index 0000000000000..ae3ce8319b270 --- /dev/null +++ b/vendor/github.com/petermattis/goid/runtime_go1.25.go @@ -0,0 +1,37 @@ +//go:build gc && go1.25 +// +build gc,go1.25 + +package goid + +type stack struct { + lo uintptr + hi uintptr +} + +type gobuf struct { + sp uintptr + pc uintptr + g uintptr + ctxt uintptr + lr uintptr + bp uintptr +} + +type g struct { + stack stack + stackguard0 uintptr + stackguard1 uintptr + + _panic uintptr + _defer uintptr + m uintptr + sched gobuf + syscallsp uintptr + syscallpc uintptr + syscallbp uintptr + stktopsp uintptr + param uintptr + atomicstatus uint32 + stackLock uint32 + goid int64 // Here it is! +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go index ad347113c0480..2331b8b4f3b49 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/desc.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go @@ -95,7 +95,8 @@ func (v2) NewDesc(fqName, help string, variableLabels ConstrainableLabels, const help: help, variableLabels: variableLabels.compile(), } - if !model.IsValidMetricName(model.LabelValue(fqName)) { + //nolint:staticcheck // TODO: Don't use deprecated model.NameValidationScheme. + if !model.NameValidationScheme.IsValidMetricName(fqName) { d.err = fmt.Errorf("%q is not a valid metric name", fqName) return d } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go b/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go index f7f97ef92624a..d273b6640e4e8 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go @@ -67,7 +67,7 @@ func RuntimeMetricsToProm(d *metrics.Description) (string, string, string, bool) } // Our current conversion moves to legacy naming, so use legacy validation. - valid := model.IsValidLegacyMetricName(namespace + "_" + subsystem + "_" + name) + valid := model.LegacyValidation.IsValidMetricName(namespace + "_" + subsystem + "_" + name) switch d.Kind { case metrics.KindUint64: case metrics.KindFloat64: diff --git a/vendor/github.com/prometheus/client_golang/prometheus/labels.go b/vendor/github.com/prometheus/client_golang/prometheus/labels.go index c21911f292d4e..5fe8d3b4d2949 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/labels.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/labels.go @@ -184,5 +184,6 @@ func validateLabelValues(vals []string, expectedNumberOfValues int) error { } func checkLabelName(l string) bool { - return model.LabelName(l).IsValid() && !strings.HasPrefix(l, reservedLabelPrefix) + //nolint:staticcheck // TODO: Don't use deprecated model.NameValidationScheme. + return model.NameValidationScheme.IsValidLabelName(l) && !strings.HasPrefix(l, reservedLabelPrefix) } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go b/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go index 1258508e4f937..80a4d7c35585d 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go @@ -262,7 +262,7 @@ func CollectAndFormat(c prometheus.Collector, format expfmt.FormatType, metricNa // convertReaderToMetricFamily would read from a io.Reader object and convert it to a slice of // dto.MetricFamily. func convertReaderToMetricFamily(reader io.Reader) ([]*dto.MetricFamily, error) { - var tp expfmt.TextParser + tp := expfmt.NewTextParser(model.UTF8Validation) notNormalized, err := tp.TextToMetricFamilies(reader) if err != nil { return nil, fmt.Errorf("converting reader to metric families failed: %w", err) diff --git a/vendor/github.com/prometheus/common/expfmt/decode.go b/vendor/github.com/prometheus/common/expfmt/decode.go index 1448439b7f722..7b762370e270e 100644 --- a/vendor/github.com/prometheus/common/expfmt/decode.go +++ b/vendor/github.com/prometheus/common/expfmt/decode.go @@ -70,19 +70,34 @@ func ResponseFormat(h http.Header) Format { return FmtUnknown } -// NewDecoder returns a new decoder based on the given input format. -// If the input format does not imply otherwise, a text format decoder is returned. +// NewDecoder returns a new decoder based on the given input format. Metric +// names are validated based on the provided Format -- if the format requires +// escaping, raditional Prometheues validity checking is used. Otherwise, names +// are checked for UTF-8 validity. Supported formats include delimited protobuf +// and Prometheus text format. For historical reasons, this decoder fallbacks +// to classic text decoding for any other format. This decoder does not fully +// support OpenMetrics although it may often succeed due to the similarities +// between the formats. This decoder may not support the latest features of +// Prometheus text format and is not intended for high-performance applications. +// See: https://github.com/prometheus/common/issues/812 func NewDecoder(r io.Reader, format Format) Decoder { + scheme := model.LegacyValidation + if format.ToEscapingScheme() == model.NoEscaping { + scheme = model.UTF8Validation + } switch format.FormatType() { case TypeProtoDelim: - return &protoDecoder{r: bufio.NewReader(r)} + return &protoDecoder{r: bufio.NewReader(r), s: scheme} + case TypeProtoText, TypeProtoCompact: + return &errDecoder{err: fmt.Errorf("format %s not supported for decoding", format)} } - return &textDecoder{r: r} + return &textDecoder{r: r, s: scheme} } // protoDecoder implements the Decoder interface for protocol buffers. type protoDecoder struct { r protodelim.Reader + s model.ValidationScheme } // Decode implements the Decoder interface. @@ -93,7 +108,7 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error { if err := opts.UnmarshalFrom(d.r, v); err != nil { return err } - if !model.IsValidMetricName(model.LabelValue(v.GetName())) { + if !d.s.IsValidMetricName(v.GetName()) { return fmt.Errorf("invalid metric name %q", v.GetName()) } for _, m := range v.GetMetric() { @@ -107,7 +122,7 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error { if !model.LabelValue(l.GetValue()).IsValid() { return fmt.Errorf("invalid label value %q", l.GetValue()) } - if !model.LabelName(l.GetName()).IsValid() { + if !d.s.IsValidLabelName(l.GetName()) { return fmt.Errorf("invalid label name %q", l.GetName()) } } @@ -115,10 +130,20 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error { return nil } +// errDecoder is an error-state decoder that always returns the same error. +type errDecoder struct { + err error +} + +func (d *errDecoder) Decode(*dto.MetricFamily) error { + return d.err +} + // textDecoder implements the Decoder interface for the text protocol. type textDecoder struct { r io.Reader fams map[string]*dto.MetricFamily + s model.ValidationScheme err error } @@ -126,7 +151,7 @@ type textDecoder struct { func (d *textDecoder) Decode(v *dto.MetricFamily) error { if d.err == nil { // Read all metrics in one shot. - var p TextParser + p := NewTextParser(d.s) d.fams, d.err = p.TextToMetricFamilies(d.r) // If we don't get an error, store io.EOF for the end. if d.err == nil { diff --git a/vendor/github.com/prometheus/common/expfmt/encode.go b/vendor/github.com/prometheus/common/expfmt/encode.go index d7f3d76f55d97..73c24dfbc9cb5 100644 --- a/vendor/github.com/prometheus/common/expfmt/encode.go +++ b/vendor/github.com/prometheus/common/expfmt/encode.go @@ -18,14 +18,12 @@ import ( "io" "net/http" + "github.com/munnerz/goautoneg" + dto "github.com/prometheus/client_model/go" "google.golang.org/protobuf/encoding/protodelim" "google.golang.org/protobuf/encoding/prototext" "github.com/prometheus/common/model" - - "github.com/munnerz/goautoneg" - - dto "github.com/prometheus/client_model/go" ) // Encoder types encode metric families into an underlying wire protocol. @@ -61,7 +59,7 @@ func (ec encoderCloser) Close() error { // appropriate accepted type is found, FmtText is returned (which is the // Prometheus text format). This function will never negotiate FmtOpenMetrics, // as the support is still experimental. To include the option to negotiate -// FmtOpenMetrics, use NegotiateOpenMetrics. +// FmtOpenMetrics, use NegotiateIncludingOpenMetrics. func Negotiate(h http.Header) Format { escapingScheme := Format(fmt.Sprintf("; escaping=%s", Format(model.NameEscapingScheme.String()))) for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) { @@ -153,7 +151,7 @@ func NewEncoder(w io.Writer, format Format, options ...EncoderOption) Encoder { case TypeProtoDelim: return encoderCloser{ encode: func(v *dto.MetricFamily) error { - _, err := protodelim.MarshalTo(w, v) + _, err := protodelim.MarshalTo(w, model.EscapeMetricFamily(v, escapingScheme)) return err }, close: func() error { return nil }, diff --git a/vendor/github.com/prometheus/common/expfmt/expfmt.go b/vendor/github.com/prometheus/common/expfmt/expfmt.go index b26886560d74b..c34c7de432b1d 100644 --- a/vendor/github.com/prometheus/common/expfmt/expfmt.go +++ b/vendor/github.com/prometheus/common/expfmt/expfmt.go @@ -36,9 +36,11 @@ const ( ProtoType = `application/vnd.google.protobuf` ProtoProtocol = `io.prometheus.client.MetricFamily` // Deprecated: Use expfmt.NewFormat(expfmt.TypeProtoCompact) instead. - ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";" - OpenMetricsType = `application/openmetrics-text` + ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";" + OpenMetricsType = `application/openmetrics-text` + //nolint:revive // Allow for underscores. OpenMetricsVersion_0_0_1 = "0.0.1" + //nolint:revive // Allow for underscores. OpenMetricsVersion_1_0_0 = "1.0.0" // The Content-Type values for the different wire protocols. Do not do direct @@ -54,8 +56,10 @@ const ( // Deprecated: Use expfmt.NewFormat(expfmt.TypeProtoCompact) instead. FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text` // Deprecated: Use expfmt.NewFormat(expfmt.TypeOpenMetrics) instead. + //nolint:revive // Allow for underscores. FmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8` // Deprecated: Use expfmt.NewFormat(expfmt.TypeOpenMetrics) instead. + //nolint:revive // Allow for underscores. FmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8` ) @@ -188,8 +192,8 @@ func (f Format) FormatType() FormatType { // Format contains a escaping=allow-utf-8 term, it will select NoEscaping. If a valid // "escaping" term exists, that will be used. Otherwise, the global default will // be returned. -func (format Format) ToEscapingScheme() model.EscapingScheme { - for _, p := range strings.Split(string(format), ";") { +func (f Format) ToEscapingScheme() model.EscapingScheme { + for _, p := range strings.Split(string(f), ";") { toks := strings.Split(p, "=") if len(toks) != 2 { continue diff --git a/vendor/github.com/prometheus/common/expfmt/fuzz.go b/vendor/github.com/prometheus/common/expfmt/fuzz.go index dfac962a4e7e8..0290f6abc40b3 100644 --- a/vendor/github.com/prometheus/common/expfmt/fuzz.go +++ b/vendor/github.com/prometheus/common/expfmt/fuzz.go @@ -17,7 +17,11 @@ package expfmt -import "bytes" +import ( + "bytes" + + "github.com/prometheus/common/model" +) // Fuzz text metric parser with with github.com/dvyukov/go-fuzz: // @@ -26,9 +30,8 @@ import "bytes" // // Further input samples should go in the folder fuzz/corpus. func Fuzz(in []byte) int { - parser := TextParser{} + parser := NewTextParser(model.UTF8Validation) _, err := parser.TextToMetricFamilies(bytes.NewReader(in)) - if err != nil { return 0 } diff --git a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go index a21ed4ec1f8cd..8dbf6d04ed651 100644 --- a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go +++ b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go @@ -22,11 +22,10 @@ import ( "strconv" "strings" + dto "github.com/prometheus/client_model/go" "google.golang.org/protobuf/types/known/timestamppb" "github.com/prometheus/common/model" - - dto "github.com/prometheus/client_model/go" ) type encoderOption struct { @@ -249,7 +248,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E // Finally the samples, one line for each. if metricType == dto.MetricType_COUNTER && strings.HasSuffix(name, "_total") { - compliantName = compliantName + "_total" + compliantName += "_total" } for _, metric := range in.Metric { switch metricType { @@ -477,7 +476,7 @@ func writeOpenMetricsNameAndLabelPairs( if name != "" { // If the name does not pass the legacy validity check, we must put the // metric name inside the braces, quoted. - if !model.IsValidLegacyMetricName(name) { + if !model.LegacyValidation.IsValidMetricName(name) { metricInsideBraces = true err := w.WriteByte(separator) written++ @@ -641,11 +640,11 @@ func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) { if err != nil { return written, err } - err = (*e).Timestamp.CheckValid() + err = e.Timestamp.CheckValid() if err != nil { return written, err } - ts := (*e).Timestamp.AsTime() + ts := e.Timestamp.AsTime() // TODO(beorn7): Format this directly from components of ts to // avoid overflow/underflow and precision issues of the float // conversion. diff --git a/vendor/github.com/prometheus/common/expfmt/text_create.go b/vendor/github.com/prometheus/common/expfmt/text_create.go index 4b86434b33275..c4e9c1bbc3a79 100644 --- a/vendor/github.com/prometheus/common/expfmt/text_create.go +++ b/vendor/github.com/prometheus/common/expfmt/text_create.go @@ -22,9 +22,9 @@ import ( "strings" "sync" - "github.com/prometheus/common/model" - dto "github.com/prometheus/client_model/go" + + "github.com/prometheus/common/model" ) // enhancedWriter has all the enhanced write functions needed here. bufio.Writer @@ -354,7 +354,7 @@ func writeNameAndLabelPairs( if name != "" { // If the name does not pass the legacy validity check, we must put the // metric name inside the braces. - if !model.IsValidLegacyMetricName(name) { + if !model.LegacyValidation.IsValidMetricName(name) { metricInsideBraces = true err := w.WriteByte(separator) written++ @@ -498,7 +498,7 @@ func writeInt(w enhancedWriter, i int64) (int, error) { // writeName writes a string as-is if it complies with the legacy naming // scheme, or escapes it in double quotes if not. func writeName(w enhancedWriter, name string) (int, error) { - if model.IsValidLegacyMetricName(name) { + if model.LegacyValidation.IsValidMetricName(name) { return w.WriteString(name) } var written int diff --git a/vendor/github.com/prometheus/common/expfmt/text_parse.go b/vendor/github.com/prometheus/common/expfmt/text_parse.go index 4067978a178eb..8f2edde32447f 100644 --- a/vendor/github.com/prometheus/common/expfmt/text_parse.go +++ b/vendor/github.com/prometheus/common/expfmt/text_parse.go @@ -78,6 +78,14 @@ type TextParser struct { // These indicate if the metric name from the current line being parsed is inside // braces and if that metric name was found respectively. currentMetricIsInsideBraces, currentMetricInsideBracesIsPresent bool + // scheme sets the desired ValidationScheme for names. Defaults to the invalid + // UnsetValidation. + scheme model.ValidationScheme +} + +// NewTextParser returns a new TextParser with the provided nameValidationScheme. +func NewTextParser(nameValidationScheme model.ValidationScheme) TextParser { + return TextParser{scheme: nameValidationScheme} } // TextToMetricFamilies reads 'in' as the simple and flat text-based exchange @@ -126,6 +134,7 @@ func (p *TextParser) TextToMetricFamilies(in io.Reader) (map[string]*dto.MetricF func (p *TextParser) reset(in io.Reader) { p.metricFamiliesByName = map[string]*dto.MetricFamily{} + p.currentLabelPairs = nil if p.buf == nil { p.buf = bufio.NewReader(in) } else { @@ -216,6 +225,9 @@ func (p *TextParser) startComment() stateFn { return nil } p.setOrCreateCurrentMF() + if p.err != nil { + return nil + } if p.skipBlankTab(); p.err != nil { return nil // Unexpected end of input. } @@ -244,6 +256,9 @@ func (p *TextParser) readingMetricName() stateFn { return nil } p.setOrCreateCurrentMF() + if p.err != nil { + return nil + } // Now is the time to fix the type if it hasn't happened yet. if p.currentMF.Type == nil { p.currentMF.Type = dto.MetricType_UNTYPED.Enum() @@ -311,6 +326,9 @@ func (p *TextParser) startLabelName() stateFn { switch p.currentByte { case ',': p.setOrCreateCurrentMF() + if p.err != nil { + return nil + } if p.currentMF.Type == nil { p.currentMF.Type = dto.MetricType_UNTYPED.Enum() } @@ -319,6 +337,10 @@ func (p *TextParser) startLabelName() stateFn { return p.startLabelName case '}': p.setOrCreateCurrentMF() + if p.err != nil { + p.currentLabelPairs = nil + return nil + } if p.currentMF.Type == nil { p.currentMF.Type = dto.MetricType_UNTYPED.Enum() } @@ -341,6 +363,12 @@ func (p *TextParser) startLabelName() stateFn { p.currentLabelPair = &dto.LabelPair{Name: proto.String(p.currentToken.String())} if p.currentLabelPair.GetName() == string(model.MetricNameLabel) { p.parseError(fmt.Sprintf("label name %q is reserved", model.MetricNameLabel)) + p.currentLabelPairs = nil + return nil + } + if !p.scheme.IsValidLabelName(p.currentLabelPair.GetName()) { + p.parseError(fmt.Sprintf("invalid label name %q", p.currentLabelPair.GetName())) + p.currentLabelPairs = nil return nil } // Special summary/histogram treatment. Don't add 'quantile' and 'le' @@ -353,13 +381,12 @@ func (p *TextParser) startLabelName() stateFn { labels := make(map[string]struct{}) for _, l := range p.currentLabelPairs { lName := l.GetName() - if _, exists := labels[lName]; !exists { - labels[lName] = struct{}{} - } else { + if _, exists := labels[lName]; exists { p.parseError(fmt.Sprintf("duplicate label names for metric %q", p.currentMF.GetName())) p.currentLabelPairs = nil return nil } + labels[lName] = struct{}{} } return p.startLabelValue } @@ -440,7 +467,8 @@ func (p *TextParser) readingValue() stateFn { // When we are here, we have read all the labels, so for the // special case of a summary/histogram, we can finally find out // if the metric already exists. - if p.currentMF.GetType() == dto.MetricType_SUMMARY { + switch p.currentMF.GetType() { + case dto.MetricType_SUMMARY: signature := model.LabelsToSignature(p.currentLabels) if summary := p.summaries[signature]; summary != nil { p.currentMetric = summary @@ -448,7 +476,7 @@ func (p *TextParser) readingValue() stateFn { p.summaries[signature] = p.currentMetric p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric) } - } else if p.currentMF.GetType() == dto.MetricType_HISTOGRAM { + case dto.MetricType_HISTOGRAM: signature := model.LabelsToSignature(p.currentLabels) if histogram := p.histograms[signature]; histogram != nil { p.currentMetric = histogram @@ -456,7 +484,7 @@ func (p *TextParser) readingValue() stateFn { p.histograms[signature] = p.currentMetric p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric) } - } else { + default: p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric) } if p.readTokenUntilWhitespace(); p.err != nil { @@ -805,6 +833,10 @@ func (p *TextParser) setOrCreateCurrentMF() { p.currentIsHistogramCount = false p.currentIsHistogramSum = false name := p.currentToken.String() + if !p.scheme.IsValidMetricName(name) { + p.parseError(fmt.Sprintf("invalid metric name %q", name)) + return + } if p.currentMF = p.metricFamiliesByName[name]; p.currentMF != nil { return } diff --git a/vendor/github.com/prometheus/common/model/labels.go b/vendor/github.com/prometheus/common/model/labels.go index de83afe93e90f..dfeb34be5f3ae 100644 --- a/vendor/github.com/prometheus/common/model/labels.go +++ b/vendor/github.com/prometheus/common/model/labels.go @@ -32,6 +32,12 @@ const ( // MetricNameLabel is the label name indicating the metric name of a // timeseries. MetricNameLabel = "__name__" + // MetricTypeLabel is the label name indicating the metric type of + // timeseries as per the PROM-39 proposal. + MetricTypeLabel = "__type__" + // MetricUnitLabel is the label name indicating the metric unit of + // timeseries as per the PROM-39 proposal. + MetricUnitLabel = "__unit__" // SchemeLabel is the name of the label that holds the scheme on which to // scrape a target. @@ -100,34 +106,21 @@ type LabelName string // IsValid returns true iff the name matches the pattern of LabelNameRE when // NameValidationScheme is set to LegacyValidation, or valid UTF-8 if // NameValidationScheme is set to UTF8Validation. +// +// Deprecated: This method should not be used and may be removed in the future. +// Use [ValidationScheme.IsValidLabelName] instead. func (ln LabelName) IsValid() bool { - if len(ln) == 0 { - return false - } - switch NameValidationScheme { - case LegacyValidation: - return ln.IsValidLegacy() - case UTF8Validation: - return utf8.ValidString(string(ln)) - default: - panic(fmt.Sprintf("Invalid name validation scheme requested: %d", NameValidationScheme)) - } + return NameValidationScheme.IsValidLabelName(string(ln)) } // IsValidLegacy returns true iff name matches the pattern of LabelNameRE for // legacy names. It does not use LabelNameRE for the check but a much faster // hardcoded implementation. +// +// Deprecated: This method should not be used and may be removed in the future. +// Use [LegacyValidation.IsValidLabelName] instead. func (ln LabelName) IsValidLegacy() bool { - if len(ln) == 0 { - return false - } - for i, b := range ln { - // TODO: Apply De Morgan's law. Make sure there are tests for this. - if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) { //nolint:staticcheck - return false - } - } - return true + return LegacyValidation.IsValidLabelName(string(ln)) } // UnmarshalYAML implements the yaml.Unmarshaler interface. diff --git a/vendor/github.com/prometheus/common/model/labelset.go b/vendor/github.com/prometheus/common/model/labelset.go index d0ad88da3346c..9de47b2568eea 100644 --- a/vendor/github.com/prometheus/common/model/labelset.go +++ b/vendor/github.com/prometheus/common/model/labelset.go @@ -114,10 +114,10 @@ func (ls LabelSet) Clone() LabelSet { } // Merge is a helper function to non-destructively merge two label sets. -func (l LabelSet) Merge(other LabelSet) LabelSet { - result := make(LabelSet, len(l)) +func (ls LabelSet) Merge(other LabelSet) LabelSet { + result := make(LabelSet, len(ls)) - for k, v := range l { + for k, v := range ls { result[k] = v } @@ -140,7 +140,7 @@ func (ls LabelSet) FastFingerprint() Fingerprint { } // UnmarshalJSON implements the json.Unmarshaler interface. -func (l *LabelSet) UnmarshalJSON(b []byte) error { +func (ls *LabelSet) UnmarshalJSON(b []byte) error { var m map[LabelName]LabelValue if err := json.Unmarshal(b, &m); err != nil { return err @@ -153,6 +153,6 @@ func (l *LabelSet) UnmarshalJSON(b []byte) error { return fmt.Errorf("%q is not a valid label name", ln) } } - *l = LabelSet(m) + *ls = LabelSet(m) return nil } diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go index a6b01755bd4c8..3feebf328ae61 100644 --- a/vendor/github.com/prometheus/common/model/metric.go +++ b/vendor/github.com/prometheus/common/model/metric.go @@ -14,6 +14,7 @@ package model import ( + "encoding/json" "errors" "fmt" "regexp" @@ -23,6 +24,7 @@ import ( "unicode/utf8" dto "github.com/prometheus/client_model/go" + "go.yaml.in/yaml/v2" "google.golang.org/protobuf/proto" ) @@ -62,16 +64,151 @@ var ( type ValidationScheme int const ( + // UnsetValidation represents an undefined ValidationScheme. + // Should not be used in practice. + UnsetValidation ValidationScheme = iota + // LegacyValidation is a setting that requires that all metric and label names // conform to the original Prometheus character requirements described by // MetricNameRE and LabelNameRE. - LegacyValidation ValidationScheme = iota + LegacyValidation // UTF8Validation only requires that metric and label names be valid UTF-8 // strings. UTF8Validation ) +var _ interface { + yaml.Marshaler + yaml.Unmarshaler + json.Marshaler + json.Unmarshaler + fmt.Stringer +} = new(ValidationScheme) + +// String returns the string representation of s. +func (s ValidationScheme) String() string { + switch s { + case UnsetValidation: + return "unset" + case LegacyValidation: + return "legacy" + case UTF8Validation: + return "utf8" + default: + panic(fmt.Errorf("unhandled ValidationScheme: %d", s)) + } +} + +// MarshalYAML implements the yaml.Marshaler interface. +func (s ValidationScheme) MarshalYAML() (any, error) { + switch s { + case UnsetValidation: + return "", nil + case LegacyValidation, UTF8Validation: + return s.String(), nil + default: + panic(fmt.Errorf("unhandled ValidationScheme: %d", s)) + } +} + +// UnmarshalYAML implements the yaml.Unmarshaler interface. +func (s *ValidationScheme) UnmarshalYAML(unmarshal func(any) error) error { + var scheme string + if err := unmarshal(&scheme); err != nil { + return err + } + return s.Set(scheme) +} + +// MarshalJSON implements the json.Marshaler interface. +func (s ValidationScheme) MarshalJSON() ([]byte, error) { + switch s { + case UnsetValidation: + return json.Marshal("") + case UTF8Validation, LegacyValidation: + return json.Marshal(s.String()) + default: + return nil, fmt.Errorf("unhandled ValidationScheme: %d", s) + } +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +func (s *ValidationScheme) UnmarshalJSON(bytes []byte) error { + var repr string + if err := json.Unmarshal(bytes, &repr); err != nil { + return err + } + return s.Set(repr) +} + +// Set implements the pflag.Value interface. +func (s *ValidationScheme) Set(text string) error { + switch text { + case "": + // Don't change the value. + case LegacyValidation.String(): + *s = LegacyValidation + case UTF8Validation.String(): + *s = UTF8Validation + default: + return fmt.Errorf("unrecognized ValidationScheme: %q", text) + } + return nil +} + +// IsValidMetricName returns whether metricName is valid according to s. +func (s ValidationScheme) IsValidMetricName(metricName string) bool { + switch s { + case LegacyValidation: + if len(metricName) == 0 { + return false + } + for i, b := range metricName { + if !isValidLegacyRune(b, i) { + return false + } + } + return true + case UTF8Validation: + if len(metricName) == 0 { + return false + } + return utf8.ValidString(metricName) + default: + panic(fmt.Sprintf("Invalid name validation scheme requested: %s", s.String())) + } +} + +// IsValidLabelName returns whether labelName is valid according to s. +func (s ValidationScheme) IsValidLabelName(labelName string) bool { + switch s { + case LegacyValidation: + if len(labelName) == 0 { + return false + } + for i, b := range labelName { + // TODO: Apply De Morgan's law. Make sure there are tests for this. + if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) { //nolint:staticcheck + return false + } + } + return true + case UTF8Validation: + if len(labelName) == 0 { + return false + } + return utf8.ValidString(labelName) + default: + panic(fmt.Sprintf("Invalid name validation scheme requested: %s", s)) + } +} + +// Type implements the pflag.Value interface. +func (ValidationScheme) Type() string { + return "validationScheme" +} + type EscapingScheme int const ( @@ -101,7 +238,7 @@ const ( // Accept header, the default NameEscapingScheme will be used. EscapingKey = "escaping" - // Possible values for Escaping Key: + // Possible values for Escaping Key. AllowUTF8 = "allow-utf-8" // No escaping required. EscapeUnderscores = "underscores" EscapeDots = "dots" @@ -175,34 +312,22 @@ func (m Metric) FastFingerprint() Fingerprint { // IsValidMetricName returns true iff name matches the pattern of MetricNameRE // for legacy names, and iff it's valid UTF-8 if the UTF8Validation scheme is // selected. +// +// Deprecated: This function should not be used and might be removed in the future. +// Use [ValidationScheme.IsValidMetricName] instead. func IsValidMetricName(n LabelValue) bool { - switch NameValidationScheme { - case LegacyValidation: - return IsValidLegacyMetricName(string(n)) - case UTF8Validation: - if len(n) == 0 { - return false - } - return utf8.ValidString(string(n)) - default: - panic(fmt.Sprintf("Invalid name validation scheme requested: %d", NameValidationScheme)) - } + return NameValidationScheme.IsValidMetricName(string(n)) } // IsValidLegacyMetricName is similar to IsValidMetricName but always uses the // legacy validation scheme regardless of the value of NameValidationScheme. // This function, however, does not use MetricNameRE for the check but a much // faster hardcoded implementation. +// +// Deprecated: This function should not be used and might be removed in the future. +// Use [LegacyValidation.IsValidMetricName] instead. func IsValidLegacyMetricName(n string) bool { - if len(n) == 0 { - return false - } - for i, b := range n { - if !isValidLegacyRune(b, i) { - return false - } - } - return true + return LegacyValidation.IsValidMetricName(n) } // EscapeMetricFamily escapes the given metric names and labels with the given @@ -310,13 +435,14 @@ func EscapeName(name string, scheme EscapingScheme) string { case DotsEscaping: // Do not early return for legacy valid names, we still escape underscores. for i, b := range name { - if b == '_' { + switch { + case b == '_': escaped.WriteString("__") - } else if b == '.' { + case b == '.': escaped.WriteString("_dot_") - } else if isValidLegacyRune(b, i) { + case isValidLegacyRune(b, i): escaped.WriteRune(b) - } else { + default: escaped.WriteString("__") } } @@ -327,13 +453,14 @@ func EscapeName(name string, scheme EscapingScheme) string { } escaped.WriteString("U__") for i, b := range name { - if b == '_' { + switch { + case b == '_': escaped.WriteString("__") - } else if isValidLegacyRune(b, i) { + case isValidLegacyRune(b, i): escaped.WriteRune(b) - } else if !utf8.ValidRune(b) { + case !utf8.ValidRune(b): escaped.WriteString("_FFFD_") - } else { + default: escaped.WriteRune('_') escaped.WriteString(strconv.FormatInt(int64(b), 16)) escaped.WriteRune('_') @@ -345,7 +472,7 @@ func EscapeName(name string, scheme EscapingScheme) string { } } -// lower function taken from strconv.atoi +// lower function taken from strconv.atoi. func lower(c byte) byte { return c | ('x' - 'X') } @@ -409,11 +536,12 @@ func UnescapeName(name string, scheme EscapingScheme) string { } r := lower(escapedName[i]) utf8Val *= 16 - if r >= '0' && r <= '9' { + switch { + case r >= '0' && r <= '9': utf8Val += uint(r) - '0' - } else if r >= 'a' && r <= 'f' { + case r >= 'a' && r <= 'f': utf8Val += uint(r) - 'a' + 10 - } else { + default: return name } i++ diff --git a/vendor/github.com/prometheus/common/model/time.go b/vendor/github.com/prometheus/common/model/time.go index fed9e87b9151e..1730b0fdc1210 100644 --- a/vendor/github.com/prometheus/common/model/time.go +++ b/vendor/github.com/prometheus/common/model/time.go @@ -126,14 +126,14 @@ func (t *Time) UnmarshalJSON(b []byte) error { p := strings.Split(string(b), ".") switch len(p) { case 1: - v, err := strconv.ParseInt(string(p[0]), 10, 64) + v, err := strconv.ParseInt(p[0], 10, 64) if err != nil { return err } *t = Time(v * second) case 2: - v, err := strconv.ParseInt(string(p[0]), 10, 64) + v, err := strconv.ParseInt(p[0], 10, 64) if err != nil { return err } @@ -143,7 +143,7 @@ func (t *Time) UnmarshalJSON(b []byte) error { if prec < 0 { p[1] = p[1][:dotPrecision] } else if prec > 0 { - p[1] = p[1] + strings.Repeat("0", prec) + p[1] += strings.Repeat("0", prec) } va, err := strconv.ParseInt(p[1], 10, 32) @@ -170,15 +170,15 @@ func (t *Time) UnmarshalJSON(b []byte) error { // This type should not propagate beyond the scope of input/output processing. type Duration time.Duration -// Set implements pflag/flag.Value +// Set implements pflag/flag.Value. func (d *Duration) Set(s string) error { var err error *d, err = ParseDuration(s) return err } -// Type implements pflag.Value -func (d *Duration) Type() string { +// Type implements pflag.Value. +func (*Duration) Type() string { return "duration" } diff --git a/vendor/github.com/prometheus/common/model/value.go b/vendor/github.com/prometheus/common/model/value.go index 8050637d82230..a9995a37eeeaa 100644 --- a/vendor/github.com/prometheus/common/model/value.go +++ b/vendor/github.com/prometheus/common/model/value.go @@ -191,7 +191,8 @@ func (ss SampleStream) String() string { } func (ss SampleStream) MarshalJSON() ([]byte, error) { - if len(ss.Histograms) > 0 && len(ss.Values) > 0 { + switch { + case len(ss.Histograms) > 0 && len(ss.Values) > 0: v := struct { Metric Metric `json:"metric"` Values []SamplePair `json:"values"` @@ -202,7 +203,7 @@ func (ss SampleStream) MarshalJSON() ([]byte, error) { Histograms: ss.Histograms, } return json.Marshal(&v) - } else if len(ss.Histograms) > 0 { + case len(ss.Histograms) > 0: v := struct { Metric Metric `json:"metric"` Histograms []SampleHistogramPair `json:"histograms"` @@ -211,7 +212,7 @@ func (ss SampleStream) MarshalJSON() ([]byte, error) { Histograms: ss.Histograms, } return json.Marshal(&v) - } else { + default: v := struct { Metric Metric `json:"metric"` Values []SamplePair `json:"values"` @@ -258,7 +259,7 @@ func (s Scalar) String() string { // MarshalJSON implements json.Marshaler. func (s Scalar) MarshalJSON() ([]byte, error) { v := strconv.FormatFloat(float64(s.Value), 'f', -1, 64) - return json.Marshal([...]interface{}{s.Timestamp, string(v)}) + return json.Marshal([...]interface{}{s.Timestamp, v}) } // UnmarshalJSON implements json.Unmarshaler. @@ -349,9 +350,9 @@ func (m Matrix) Len() int { return len(m) } func (m Matrix) Less(i, j int) bool { return m[i].Metric.Before(m[j].Metric) } func (m Matrix) Swap(i, j int) { m[i], m[j] = m[j], m[i] } -func (mat Matrix) String() string { - matCp := make(Matrix, len(mat)) - copy(matCp, mat) +func (m Matrix) String() string { + matCp := make(Matrix, len(m)) + copy(matCp, m) sort.Sort(matCp) strs := make([]string, len(matCp)) diff --git a/vendor/github.com/prometheus/common/model/value_histogram.go b/vendor/github.com/prometheus/common/model/value_histogram.go index 895e6a3e8393e..91ce5b7a45c21 100644 --- a/vendor/github.com/prometheus/common/model/value_histogram.go +++ b/vendor/github.com/prometheus/common/model/value_histogram.go @@ -86,22 +86,22 @@ func (s *HistogramBucket) Equal(o *HistogramBucket) bool { return s == o || (s.Boundaries == o.Boundaries && s.Lower == o.Lower && s.Upper == o.Upper && s.Count == o.Count) } -func (b HistogramBucket) String() string { +func (s HistogramBucket) String() string { var sb strings.Builder - lowerInclusive := b.Boundaries == 1 || b.Boundaries == 3 - upperInclusive := b.Boundaries == 0 || b.Boundaries == 3 + lowerInclusive := s.Boundaries == 1 || s.Boundaries == 3 + upperInclusive := s.Boundaries == 0 || s.Boundaries == 3 if lowerInclusive { sb.WriteRune('[') } else { sb.WriteRune('(') } - fmt.Fprintf(&sb, "%g,%g", b.Lower, b.Upper) + fmt.Fprintf(&sb, "%g,%g", s.Lower, s.Upper) if upperInclusive { sb.WriteRune(']') } else { sb.WriteRune(')') } - fmt.Fprintf(&sb, ":%v", b.Count) + fmt.Fprintf(&sb, ":%v", s.Count) return sb.String() } diff --git a/vendor/github.com/prometheus/common/model/value_type.go b/vendor/github.com/prometheus/common/model/value_type.go index 726c50ee638c6..078910f46b732 100644 --- a/vendor/github.com/prometheus/common/model/value_type.go +++ b/vendor/github.com/prometheus/common/model/value_type.go @@ -66,8 +66,8 @@ func (et *ValueType) UnmarshalJSON(b []byte) error { return nil } -func (e ValueType) String() string { - switch e { +func (et ValueType) String() string { + switch et { case ValNone: return "" case ValScalar: diff --git a/vendor/github.com/sasha-s/go-deadlock/Readme.md b/vendor/github.com/sasha-s/go-deadlock/Readme.md index 792d8a205a439..a1eb793c00ded 100644 --- a/vendor/github.com/sasha-s/go-deadlock/Readme.md +++ b/vendor/github.com/sasha-s/go-deadlock/Readme.md @@ -1,4 +1,4 @@ -# Online deadlock detection in go (golang). [![Try it online](https://img.shields.io/badge/try%20it-online-blue.svg)](https://wandbox.org/permlink/hJc6QCZowxbNm9WW) [![Docs](https://godoc.org/github.com/sasha-s/go-deadlock?status.svg)](https://godoc.org/github.com/sasha-s/go-deadlock) [![Build Status](https://travis-ci.com/sasha-s/go-deadlock.svg?branch=master)](https://travis-ci.com/sasha-s/go-deadlock) [![codecov](https://codecov.io/gh/sasha-s/go-deadlock/branch/master/graph/badge.svg)](https://codecov.io/gh/sasha-s/go-deadlock) [![version](https://badge.fury.io/gh/sasha-s%2Fgo-deadlock.svg)](https://github.com/sasha-s/go-deadlock/releases) [![Go Report Card](https://goreportcard.com/badge/github.com/sasha-s/go-deadlock)](https://goreportcard.com/report/github.com/sasha-s/go-deadlock) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +# Online deadlock detection in go (golang). [![Try it online](https://img.shields.io/badge/try%20it-online-blue.svg)](https://wandbox.org/permlink/hJc6QCZowxbNm9WW) [![Docs](https://godoc.org/github.com/sasha-s/go-deadlock?status.svg)](https://godoc.org/github.com/sasha-s/go-deadlock) [![codecov](https://codecov.io/gh/sasha-s/go-deadlock/branch/master/graph/badge.svg)](https://codecov.io/gh/sasha-s/go-deadlock) [![version](https://badge.fury.io/gh/sasha-s%2Fgo-deadlock.svg)](https://github.com/sasha-s/go-deadlock/releases) [![Go Report Card](https://goreportcard.com/badge/github.com/sasha-s/go-deadlock)](https://goreportcard.com/report/github.com/sasha-s/go-deadlock) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) ## Why Deadlocks happen and are painful to debug. diff --git a/vendor/github.com/spf13/cobra/.golangci.yml b/vendor/github.com/spf13/cobra/.golangci.yml index 2c8f4808c1a32..6acf8ab1ea049 100644 --- a/vendor/github.com/spf13/cobra/.golangci.yml +++ b/vendor/github.com/spf13/cobra/.golangci.yml @@ -12,14 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +version: "2" + run: - deadline: 5m + timeout: 5m + +formatters: + enable: + - gofmt + - goimports linters: - disable-all: true + default: none enable: #- bodyclose - # - deadcode ! deprecated since v1.49.0; replaced by 'unused' #- depguard #- dogsled #- dupl @@ -30,28 +36,24 @@ linters: - goconst - gocritic #- gocyclo - - gofmt - - goimports - #- gomnd #- goprintffuncname - gosec - - gosimple - govet - ineffassign #- lll - misspell + #- mnd #- nakedret #- noctx - nolintlint #- rowserrcheck - #- scopelint - staticcheck - #- structcheck ! deprecated since v1.49.0; replaced by 'unused' - - stylecheck - #- typecheck - unconvert #- unparam - unused - # - varcheck ! deprecated since v1.49.0; replaced by 'unused' #- whitespace - fast: false + exclusions: + presets: + - common-false-positives + - legacy + - std-error-handling diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md index 71757151c333b..8416275f48ee0 100644 --- a/vendor/github.com/spf13/cobra/README.md +++ b/vendor/github.com/spf13/cobra/README.md @@ -1,8 +1,14 @@ - -![cobra logo](https://github.com/user-attachments/assets/cbc3adf8-0dff-46e9-a88d-5e2d971c169e) +

Cobra is a library for creating powerful modern CLI applications. +Visit Cobra.dev for extensive documentation + + Cobra is used in many Go projects such as [Kubernetes](https://kubernetes.io/), [Hugo](https://gohugo.io), and [GitHub CLI](https://github.com/cli/cli) to name a few. [This list](site/content/projects_using_cobra.md) contains a more extensive list of projects using Cobra. @@ -11,6 +17,20 @@ name a few. [This list](site/content/projects_using_cobra.md) contains a more ex [![Go Reference](https://pkg.go.dev/badge/github.com/spf13/cobra.svg)](https://pkg.go.dev/github.com/spf13/cobra) [![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cobra)](https://goreportcard.com/report/github.com/spf13/cobra) [![Slack](https://img.shields.io/badge/Slack-cobra-brightgreen)](https://gophers.slack.com/archives/CD3LP1199) +
+
+ Supported by: +
+
+ + Warp sponsorship + + +### [Warp, the AI terminal for devs](https://www.warp.dev/cobra) +[Try Cobra in Warp today](https://www.warp.dev/cobra)
+ +
+
# Overview diff --git a/vendor/github.com/spf13/cobra/SECURITY.md b/vendor/github.com/spf13/cobra/SECURITY.md new file mode 100644 index 0000000000000..54e60c28c14ce --- /dev/null +++ b/vendor/github.com/spf13/cobra/SECURITY.md @@ -0,0 +1,105 @@ +# Security Policy + +## Reporting a Vulnerability + +The `cobra` maintainers take security issues seriously and +we appreciate your efforts to _**responsibly**_ disclose your findings. +We will make every effort to swiftly respond and address concerns. + +To report a security vulnerability: + +1. **DO NOT** create a public GitHub issue for the vulnerability! +2. **DO NOT** create a public GitHub Pull Request with a fix for the vulnerability! +3. Send an email to `cobra-security@googlegroups.com`. +4. Include the following details in your report: + - Description of the vulnerability + - Steps to reproduce + - Potential impact of the vulnerability (to your downstream project, to the Go ecosystem, etc.) + - Any potential mitigations you've already identified +5. Allow up to 7 days for an initial response. + You should receive an acknowledgment of your report and an estimated timeline for a fix. +6. (Optional) If you have a fix and would like to contribute your patch, please work + directly with the maintainers via `cobra-security@googlegroups.com` to + coordinate pushing the patch to GitHub, cutting a new release, and disclosing the change. + +## Response Process + +When a security vulnerability report is received, the `cobra` maintainers will: + +1. Confirm receipt of the vulnerability report within 7 days. +2. Assess the report to determine if it constitutes a security vulnerability. +3. If confirmed, assign the vulnerability a severity level and create a timeline for addressing it. +4. Develop and test a fix. +5. Patch the vulnerability and make a new GitHub release: the maintainers will coordinate disclosure with the reporter. +6. Create a new GitHub Security Advisory to inform the broader Go ecosystem + +## Disclosure Policy + +The `cobra` maintainers follow a coordinated disclosure process: + +1. Security vulnerabilities will be addressed as quickly as possible. +2. A CVE (Common Vulnerabilities and Exposures) identifier will be requested for significant vulnerabilities + that are within `cobra` itself. +3. Once a fix is ready, the maintainers will: + - Release a new version containing the fix. + - Update the security advisory with details about the vulnerability. + - Credit the reporter (unless they wish to remain anonymous). + - Credit the fixer (unless they wish to remain anonymous, this may be the same as the reporter). + - Announce the vulnerability through appropriate channels + (GitHub Security Advisory, mailing lists, GitHub Releases, etc.) + +## Supported Versions + +Security fixes will typically only be released for the most recent major release. + +## Upstream Security Issues + +`cobra` generally will not accept vulnerability reports that originate in upstream +dependencies. I.e., if there is a problem in Go code that `cobra` depends on, +it is best to engage that project's maintainers and owners. + +This security policy primarily pertains only to `cobra` itself but if you believe you've +identified a problem that originates in an upstream dependency and is being widely +distributed by `cobra`, please follow the disclosure procedure above: the `cobra` +maintainers will work with you to determine the severity and ecosystem impact. + +## Security Updates and CVEs + +Information about known security vulnerabilities and CVEs affecting `cobra` will +be published as GitHub Security Advisories at +https://github.com/spf13/cobra/security/advisories. + +All users are encouraged to watch the repository and upgrade promptly when +security releases are published. + +## `cobra` Security Best Practices for Users + +When using `cobra` in your CLIs, the `cobra` maintainers recommend the following: + +1. Always use the latest version of `cobra`. +2. [Use Go modules](https://go.dev/blog/using-go-modules) for dependency management. +3. Always use the latest possible version of Go. + +## Security Best Practices for Contributors + +When contributing to `cobra`: + +1. Be mindful of security implications when adding new features or modifying existing ones. +2. Be aware of `cobra`'s extremely large reach: it is used in nearly every Go CLI + (like Kubernetes, Docker, Prometheus, etc. etc.) +3. Write tests that explicitly cover edge cases and potential issues. +4. If you discover a security issue while working on `cobra`, please report it + following the process above rather than opening a public pull request or issue that + addresses the vulnerability. +5. Take personal sec-ops seriously and secure your GitHub account: use [two-factor authentication](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa), + [sign your commits with a GPG or SSH key](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification), + etc. + +## Acknowledgments + +The `cobra` maintainers would like to thank all security researchers and +community members who help keep cobra, its users, and the entire Go ecosystem secure through responsible disclosures!! + +--- + +*This security policy is inspired by the [Open Web Application Security Project (OWASP)](https://owasp.org/) guidelines and security best practices.* diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index dbb2c298ba089..78088db69ca25 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -39,7 +39,7 @@ const ( ) // FParseErrWhitelist configures Flag parse errors to be ignored -type FParseErrWhitelist flag.ParseErrorsWhitelist +type FParseErrWhitelist flag.ParseErrorsAllowlist // Group Structure to manage groups for commands type Group struct { @@ -1296,6 +1296,11 @@ Simply type ` + c.DisplayName() + ` help [path to command] for full details.`, c.Printf("Unknown help topic %#q\n", args) CheckErr(c.Root().Usage()) } else { + // FLow the context down to be used in help text + if cmd.ctx == nil { + cmd.ctx = c.ctx + } + cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown cmd.InitDefaultVersionFlag() // make possible 'version' flag to be shown CheckErr(cmd.Help()) @@ -1872,7 +1877,7 @@ func (c *Command) ParseFlags(args []string) error { c.mergePersistentFlags() // do it here after merging all flags and just before parse - c.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist) + c.Flags().ParseErrorsAllowlist = flag.ParseErrorsAllowlist(c.FParseErrWhitelist) err := c.Flags().Parse(args) // Print warnings if they occurred (e.g. deprecated flag messages). @@ -2020,7 +2025,7 @@ func defaultUsageFunc(w io.Writer, in interface{}) error { fmt.Fprint(w, trimRightSpace(c.InheritedFlags().FlagUsages())) } if c.HasHelpSubCommands() { - fmt.Fprintf(w, "\n\nAdditional help topcis:") + fmt.Fprintf(w, "\n\nAdditional help topics:") for _, subcmd := range c.Commands() { if subcmd.IsAdditionalHelpTopicCommand() { fmt.Fprintf(w, "\n %s %s", rpad(subcmd.CommandPath(), subcmd.CommandPathPadding()), subcmd.Short) diff --git a/vendor/github.com/spf13/cobra/completions.go b/vendor/github.com/spf13/cobra/completions.go index a1752f7631758..d3607c2d2fefd 100644 --- a/vendor/github.com/spf13/cobra/completions.go +++ b/vendor/github.com/spf13/cobra/completions.go @@ -115,6 +115,13 @@ type CompletionOptions struct { DisableDescriptions bool // HiddenDefaultCmd makes the default 'completion' command hidden HiddenDefaultCmd bool + // DefaultShellCompDirective sets the ShellCompDirective that is returned + // if no special directive can be determined + DefaultShellCompDirective *ShellCompDirective +} + +func (receiver *CompletionOptions) SetDefaultShellCompDirective(directive ShellCompDirective) { + receiver.DefaultShellCompDirective = &directive } // Completion is a string that can be used for completions @@ -375,7 +382,7 @@ func (c *Command) getCompletions(args []string) (*Command, []Completion, ShellCo // Error while attempting to parse flags if flagErr != nil { // If error type is flagCompError and we don't want flagCompletion we should ignore the error - if _, ok := flagErr.(*flagCompError); !(ok && !flagCompletion) { + if _, ok := flagErr.(*flagCompError); !ok || flagCompletion { return finalCmd, []Completion{}, ShellCompDirectiveDefault, flagErr } } @@ -480,6 +487,14 @@ func (c *Command) getCompletions(args []string) (*Command, []Completion, ShellCo } } else { directive = ShellCompDirectiveDefault + // check current and parent commands for a custom DefaultShellCompDirective + for cmd := finalCmd; cmd != nil; cmd = cmd.parent { + if cmd.CompletionOptions.DefaultShellCompDirective != nil { + directive = *cmd.CompletionOptions.DefaultShellCompDirective + break + } + } + if flag == nil { foundLocalNonPersistentFlag := false // If TraverseChildren is true on the root command we don't check for @@ -773,7 +788,7 @@ See each sub-command's help for details on how to use the generated script. // shell completion for it (prog __complete completion '') subCmd, cmdArgs, err := c.Find(args) if err != nil || subCmd.Name() != compCmdName && - !(subCmd.Name() == ShellCompRequestCmd && len(cmdArgs) > 1 && cmdArgs[0] == compCmdName) { + (subCmd.Name() != ShellCompRequestCmd || len(cmdArgs) <= 1 || cmdArgs[0] != compCmdName) { // The completion command is not being called or being completed so we remove it. c.RemoveCommand(completionCmd) return diff --git a/vendor/github.com/spf13/cobra/doc/man_docs.go b/vendor/github.com/spf13/cobra/doc/man_docs.go index 2138f24882b35..560bc20c75da7 100644 --- a/vendor/github.com/spf13/cobra/doc/man_docs.go +++ b/vendor/github.com/spf13/cobra/doc/man_docs.go @@ -212,7 +212,7 @@ func genMan(cmd *cobra.Command, header *GenManHeader) []byte { manPrintOptions(buf, cmd) if len(cmd.Example) > 0 { buf.WriteString("# EXAMPLE\n") - buf.WriteString(fmt.Sprintf("```\n%s\n```\n", cmd.Example)) + fmt.Fprintf(buf, "```\n%s\n```\n", cmd.Example) } if hasSeeAlso(cmd) { buf.WriteString("# SEE ALSO\n") @@ -240,7 +240,7 @@ func genMan(cmd *cobra.Command, header *GenManHeader) []byte { buf.WriteString(strings.Join(seealsos, ", ") + "\n") } if !cmd.DisableAutoGenTag { - buf.WriteString(fmt.Sprintf("# HISTORY\n%s Auto generated by spf13/cobra\n", header.Date.Format("2-Jan-2006"))) + fmt.Fprintf(buf, "# HISTORY\n%s Auto generated by spf13/cobra\n", header.Date.Format("2-Jan-2006")) } return buf.Bytes() } diff --git a/vendor/github.com/spf13/cobra/doc/md_docs.go b/vendor/github.com/spf13/cobra/doc/md_docs.go index 12592223ba47b..6eae7ccfb6d90 100644 --- a/vendor/github.com/spf13/cobra/doc/md_docs.go +++ b/vendor/github.com/spf13/cobra/doc/md_docs.go @@ -69,12 +69,12 @@ func GenMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) } if cmd.Runnable() { - buf.WriteString(fmt.Sprintf("```\n%s\n```\n\n", cmd.UseLine())) + fmt.Fprintf(buf, "```\n%s\n```\n\n", cmd.UseLine()) } if len(cmd.Example) > 0 { buf.WriteString("### Examples\n\n") - buf.WriteString(fmt.Sprintf("```\n%s\n```\n\n", cmd.Example)) + fmt.Fprintf(buf, "```\n%s\n```\n\n", cmd.Example) } if err := printOptions(buf, cmd, name); err != nil { @@ -87,7 +87,7 @@ func GenMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) pname := parent.CommandPath() link := pname + markdownExtension link = strings.ReplaceAll(link, " ", "_") - buf.WriteString(fmt.Sprintf("* [%s](%s)\t - %s\n", pname, linkHandler(link), parent.Short)) + fmt.Fprintf(buf, "* [%s](%s)\t - %s\n", pname, linkHandler(link), parent.Short) cmd.VisitParents(func(c *cobra.Command) { if c.DisableAutoGenTag { cmd.DisableAutoGenTag = c.DisableAutoGenTag @@ -105,7 +105,7 @@ func GenMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) cname := name + " " + child.Name() link := cname + markdownExtension link = strings.ReplaceAll(link, " ", "_") - buf.WriteString(fmt.Sprintf("* [%s](%s)\t - %s\n", cname, linkHandler(link), child.Short)) + fmt.Fprintf(buf, "* [%s](%s)\t - %s\n", cname, linkHandler(link), child.Short) } buf.WriteString("\n") } diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs.go b/vendor/github.com/spf13/cobra/doc/rest_docs.go index c33acc2baa91a..4901ca9801c9d 100644 --- a/vendor/github.com/spf13/cobra/doc/rest_docs.go +++ b/vendor/github.com/spf13/cobra/doc/rest_docs.go @@ -82,13 +82,13 @@ func GenReSTCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string, str buf.WriteString("\n" + long + "\n\n") if cmd.Runnable() { - buf.WriteString(fmt.Sprintf("::\n\n %s\n\n", cmd.UseLine())) + fmt.Fprintf(buf, "::\n\n %s\n\n", cmd.UseLine()) } if len(cmd.Example) > 0 { buf.WriteString("Examples\n") buf.WriteString("~~~~~~~~\n\n") - buf.WriteString(fmt.Sprintf("::\n\n%s\n\n", indentString(cmd.Example, " "))) + fmt.Fprintf(buf, "::\n\n%s\n\n", indentString(cmd.Example, " ")) } if err := printOptionsReST(buf, cmd, name); err != nil { @@ -101,7 +101,7 @@ func GenReSTCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string, str parent := cmd.Parent() pname := parent.CommandPath() ref = strings.ReplaceAll(pname, " ", "_") - buf.WriteString(fmt.Sprintf("* %s \t - %s\n", linkHandler(pname, ref), parent.Short)) + fmt.Fprintf(buf, "* %s \t - %s\n", linkHandler(pname, ref), parent.Short) cmd.VisitParents(func(c *cobra.Command) { if c.DisableAutoGenTag { cmd.DisableAutoGenTag = c.DisableAutoGenTag @@ -118,7 +118,7 @@ func GenReSTCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string, str } cname := name + " " + child.Name() ref = strings.ReplaceAll(cname, " ", "_") - buf.WriteString(fmt.Sprintf("* %s \t - %s\n", linkHandler(cname, ref), child.Short)) + fmt.Fprintf(buf, "* %s \t - %s\n", linkHandler(cname, ref), child.Short) } buf.WriteString("\n") } diff --git a/vendor/github.com/spf13/cobra/doc/yaml_docs.go b/vendor/github.com/spf13/cobra/doc/yaml_docs.go index 2b26d6ec0f3ef..3719717037170 100644 --- a/vendor/github.com/spf13/cobra/doc/yaml_docs.go +++ b/vendor/github.com/spf13/cobra/doc/yaml_docs.go @@ -153,7 +153,7 @@ func genFlagResult(flags *pflag.FlagSet) []cmdOption { // Todo, when we mark a shorthand is deprecated, but specify an empty message. // The flag.ShorthandDeprecated is empty as the shorthand is deprecated. // Using len(flag.ShorthandDeprecated) > 0 can't handle this, others are ok. - if !(len(flag.ShorthandDeprecated) > 0) && len(flag.Shorthand) > 0 { + if len(flag.ShorthandDeprecated) == 0 && len(flag.Shorthand) > 0 { opt := cmdOption{ flag.Name, flag.Shorthand, diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go index d4dfbc5ea0b3e..2fd3c57597a23 100644 --- a/vendor/github.com/spf13/pflag/flag.go +++ b/vendor/github.com/spf13/pflag/flag.go @@ -137,12 +137,17 @@ const ( PanicOnError ) -// ParseErrorsWhitelist defines the parsing errors that can be ignored -type ParseErrorsWhitelist struct { +// ParseErrorsAllowlist defines the parsing errors that can be ignored +type ParseErrorsAllowlist struct { // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags UnknownFlags bool } +// ParseErrorsWhitelist defines the parsing errors that can be ignored. +// +// Deprecated: use [ParseErrorsAllowlist] instead. This type will be removed in a future release. +type ParseErrorsWhitelist = ParseErrorsAllowlist + // NormalizedName is a flag name that has been normalized according to rules // for the FlagSet (e.g. making '-' and '_' equivalent). type NormalizedName string @@ -158,8 +163,13 @@ type FlagSet struct { // help/usage messages. SortFlags bool - // ParseErrorsWhitelist is used to configure a whitelist of errors - ParseErrorsWhitelist ParseErrorsWhitelist + // ParseErrorsAllowlist is used to configure an allowlist of errors + ParseErrorsAllowlist ParseErrorsAllowlist + + // ParseErrorsAllowlist is used to configure an allowlist of errors. + // + // Deprecated: use [FlagSet.ParseErrorsAllowlist] instead. This field will be removed in a future release. + ParseErrorsWhitelist ParseErrorsAllowlist name string parsed bool @@ -928,7 +938,6 @@ func VarP(value Value, name, shorthand, usage string) { // returns the error. func (f *FlagSet) fail(err error) error { if f.errorHandling != ContinueOnError { - fmt.Fprintln(f.Output(), err) f.usage() } return err @@ -986,6 +995,8 @@ func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []strin f.usage() return a, ErrHelp case f.ParseErrorsWhitelist.UnknownFlags: + fallthrough + case f.ParseErrorsAllowlist.UnknownFlags: // --unknown=unknownval arg ... // we do not want to lose arg in this case if len(split) >= 2 { @@ -1044,6 +1055,8 @@ func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parse err = ErrHelp return case f.ParseErrorsWhitelist.UnknownFlags: + fallthrough + case f.ParseErrorsAllowlist.UnknownFlags: // '-f=arg arg ...' // we do not want to lose arg in this case if len(shorthands) > 2 && shorthands[1] == '=' { @@ -1158,12 +1171,12 @@ func (f *FlagSet) Parse(arguments []string) error { } f.parsed = true + f.args = make([]string, 0, len(arguments)) + if len(arguments) == 0 { return nil } - f.args = make([]string, 0, len(arguments)) - set := func(flag *Flag, value string) error { return f.Set(flag.Name, value) } @@ -1174,7 +1187,10 @@ func (f *FlagSet) Parse(arguments []string) error { case ContinueOnError: return err case ExitOnError: - fmt.Println(err) + if err == ErrHelp { + os.Exit(0) + } + fmt.Fprintln(f.Output(), err) os.Exit(2) case PanicOnError: panic(err) @@ -1200,6 +1216,10 @@ func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) case ContinueOnError: return err case ExitOnError: + if err == ErrHelp { + os.Exit(0) + } + fmt.Fprintln(f.Output(), err) os.Exit(2) case PanicOnError: panic(err) diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go index f563907e28ffc..e62eab53810c3 100644 --- a/vendor/github.com/spf13/pflag/golangflag.go +++ b/vendor/github.com/spf13/pflag/golangflag.go @@ -8,6 +8,7 @@ import ( goflag "flag" "reflect" "strings" + "time" ) // go test flags prefixes @@ -113,6 +114,38 @@ func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) { f.addedGoFlagSets = append(f.addedGoFlagSets, newSet) } +// CopyToGoFlagSet will add all current flags to the given Go flag set. +// Deprecation remarks get copied into the usage description. +// Whenever possible, a flag gets added for which Go flags shows +// a proper type in the help message. +func (f *FlagSet) CopyToGoFlagSet(newSet *goflag.FlagSet) { + f.VisitAll(func(flag *Flag) { + usage := flag.Usage + if flag.Deprecated != "" { + usage += " (DEPRECATED: " + flag.Deprecated + ")" + } + + switch value := flag.Value.(type) { + case *stringValue: + newSet.StringVar((*string)(value), flag.Name, flag.DefValue, usage) + case *intValue: + newSet.IntVar((*int)(value), flag.Name, *(*int)(value), usage) + case *int64Value: + newSet.Int64Var((*int64)(value), flag.Name, *(*int64)(value), usage) + case *uintValue: + newSet.UintVar((*uint)(value), flag.Name, *(*uint)(value), usage) + case *uint64Value: + newSet.Uint64Var((*uint64)(value), flag.Name, *(*uint64)(value), usage) + case *durationValue: + newSet.DurationVar((*time.Duration)(value), flag.Name, *(*time.Duration)(value), usage) + case *float64Value: + newSet.Float64Var((*float64)(value), flag.Name, *(*float64)(value), usage) + default: + newSet.Var(flag.Value, flag.Name, usage) + } + }) +} + // ParseSkippedFlags explicitly Parses go test flags (i.e. the one starting with '-test.') with goflag.Parse(), // since by default those are skipped by pflag.Parse(). // Typical usage example: `ParseGoTestFlags(os.Args[1:], goflag.CommandLine)` @@ -125,3 +158,4 @@ func ParseSkippedFlags(osArgs []string, goFlagSet *goflag.FlagSet) error { } return goFlagSet.Parse(skippedFlags) } + diff --git a/vendor/github.com/spf13/pflag/string_to_string.go b/vendor/github.com/spf13/pflag/string_to_string.go index 890a01afc0300..1d1e3bf91a35e 100644 --- a/vendor/github.com/spf13/pflag/string_to_string.go +++ b/vendor/github.com/spf13/pflag/string_to_string.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/csv" "fmt" + "sort" "strings" ) @@ -62,8 +63,15 @@ func (s *stringToStringValue) Type() string { } func (s *stringToStringValue) String() string { + keys := make([]string, 0, len(*s.value)) + for k := range *s.value { + keys = append(keys, k) + } + sort.Strings(keys) + records := make([]string, 0, len(*s.value)>>1) - for k, v := range *s.value { + for _, k := range keys { + v := (*s.value)[k] records = append(records, k+"="+v) } diff --git a/vendor/github.com/spf13/pflag/time.go b/vendor/github.com/spf13/pflag/time.go index dc024807e0c75..3dee424791a88 100644 --- a/vendor/github.com/spf13/pflag/time.go +++ b/vendor/github.com/spf13/pflag/time.go @@ -48,7 +48,13 @@ func (d *timeValue) Type() string { return "time" } -func (d *timeValue) String() string { return d.Time.Format(time.RFC3339Nano) } +func (d *timeValue) String() string { + if d.Time.IsZero() { + return "" + } else { + return d.Time.Format(time.RFC3339Nano) + } +} // GetTime return the time value of a flag with the given name func (f *FlagSet) GetTime(name string) (time.Time, error) { diff --git a/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go b/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go deleted file mode 100644 index 73687de748ada..0000000000000 --- a/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.5 - -package plan9 - -import "syscall" - -func fixwd() { - syscall.Fixwd() -} - -func Getwd() (wd string, err error) { - return syscall.Getwd() -} - -func Chdir(path string) error { - return syscall.Chdir(path) -} diff --git a/vendor/golang.org/x/sys/plan9/pwd_plan9.go b/vendor/golang.org/x/sys/plan9/pwd_plan9.go index fb945821847a8..7a76489db161c 100644 --- a/vendor/golang.org/x/sys/plan9/pwd_plan9.go +++ b/vendor/golang.org/x/sys/plan9/pwd_plan9.go @@ -2,22 +2,18 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !go1.5 - package plan9 +import "syscall" + func fixwd() { + syscall.Fixwd() } func Getwd() (wd string, err error) { - fd, err := open(".", O_RDONLY) - if err != nil { - return "", err - } - defer Close(fd) - return Fd2path(fd) + return syscall.Getwd() } func Chdir(path string) error { - return chdir(path) + return syscall.Chdir(path) } diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go index 6e5c81acd0491..3c7a6d6e2f1d2 100644 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -38,9 +38,7 @@ func SchedSetaffinity(pid int, set *CPUSet) error { // Zero clears the set s, so that it contains no CPUs. func (s *CPUSet) Zero() { - for i := range s { - s[i] = 0 - } + clear(s[:]) } func cpuBitsIndex(cpu int) int { diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index abc3955477c7d..18a3d9bdabc1c 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -629,7 +629,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Kill(pid int, signum syscall.Signal) (err error) //sys Lchown(path string, uid int, gid int) (err error) //sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten +//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_listen //sys Lstat(path string, stat *Stat_t) (err error) //sys Madvise(b []byte, advice int) (err error) //sys Mkdir(path string, mode uint32) (err error) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index c6545413c45b4..b4609c20c24df 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -72,7 +72,7 @@ import ( //go:cgo_import_dynamic libc_kill kill "libc.so" //go:cgo_import_dynamic libc_lchown lchown "libc.so" //go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" +//go:cgo_import_dynamic libc___xnet_listen __xnet_listen "libsocket.so" //go:cgo_import_dynamic libc_lstat lstat "libc.so" //go:cgo_import_dynamic libc_madvise madvise "libc.so" //go:cgo_import_dynamic libc_mkdir mkdir "libc.so" @@ -221,7 +221,7 @@ import ( //go:linkname procKill libc_kill //go:linkname procLchown libc_lchown //go:linkname procLink libc_link -//go:linkname proc__xnet_llisten libc___xnet_llisten +//go:linkname proc__xnet_listen libc___xnet_listen //go:linkname procLstat libc_lstat //go:linkname procMadvise libc_madvise //go:linkname procMkdir libc_mkdir @@ -371,7 +371,7 @@ var ( procKill, procLchown, procLink, - proc__xnet_llisten, + proc__xnet_listen, procLstat, procMadvise, procMkdir, @@ -1178,7 +1178,7 @@ func Link(path string, link string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_listen)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index cd236443f6453..944e75a11cb1d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -632,6 +632,8 @@ const ( IFA_FLAGS = 0x8 IFA_RT_PRIORITY = 0x9 IFA_TARGET_NETNSID = 0xa + IFAL_LABEL = 0x2 + IFAL_ADDRESS = 0x1 RT_SCOPE_UNIVERSE = 0x0 RT_SCOPE_SITE = 0xc8 RT_SCOPE_LINK = 0xfd @@ -689,6 +691,7 @@ const ( SizeofRtAttr = 0x4 SizeofIfInfomsg = 0x10 SizeofIfAddrmsg = 0x8 + SizeofIfAddrlblmsg = 0xc SizeofIfaCacheinfo = 0x10 SizeofRtMsg = 0xc SizeofRtNexthop = 0x8 @@ -740,6 +743,15 @@ type IfAddrmsg struct { Index uint32 } +type IfAddrlblmsg struct { + Family uint8 + _ uint8 + Prefixlen uint8 + Flags uint8 + Index uint32 + Seq uint32 +} + type IfaCacheinfo struct { Prefered uint32 Valid uint32 @@ -3052,6 +3064,23 @@ const ( ) const ( + TCA_UNSPEC = 0x0 + TCA_KIND = 0x1 + TCA_OPTIONS = 0x2 + TCA_STATS = 0x3 + TCA_XSTATS = 0x4 + TCA_RATE = 0x5 + TCA_FCNT = 0x6 + TCA_STATS2 = 0x7 + TCA_STAB = 0x8 + TCA_PAD = 0x9 + TCA_DUMP_INVISIBLE = 0xa + TCA_CHAIN = 0xb + TCA_HW_OFFLOAD = 0xc + TCA_INGRESS_BLOCK = 0xd + TCA_EGRESS_BLOCK = 0xe + TCA_DUMP_FLAGS = 0xf + TCA_EXT_WARN_MSG = 0x10 RTNLGRP_NONE = 0x0 RTNLGRP_LINK = 0x1 RTNLGRP_NOTIFY = 0x2 @@ -3086,6 +3115,18 @@ const ( RTNLGRP_IPV6_MROUTE_R = 0x1f RTNLGRP_NEXTHOP = 0x20 RTNLGRP_BRVLAN = 0x21 + RTNLGRP_MCTP_IFADDR = 0x22 + RTNLGRP_TUNNEL = 0x23 + RTNLGRP_STATS = 0x24 + RTNLGRP_IPV4_MCADDR = 0x25 + RTNLGRP_IPV6_MCADDR = 0x26 + RTNLGRP_IPV6_ACADDR = 0x27 + TCA_ROOT_UNSPEC = 0x0 + TCA_ROOT_TAB = 0x1 + TCA_ROOT_FLAGS = 0x2 + TCA_ROOT_COUNT = 0x3 + TCA_ROOT_TIME_DELTA = 0x4 + TCA_ROOT_EXT_WARN_MSG = 0x5 ) type CapUserHeader struct { diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 958bcf47a3864..993a2297dbe1a 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -1976,6 +1976,12 @@ const ( SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 ) +// FILE_ZERO_DATA_INFORMATION from winioctl.h +type FileZeroDataInformation struct { + FileOffset int64 + BeyondFinalZero int64 +} + const ( ComputerNameNetBIOS = 0 ComputerNameDnsHostname = 1 diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index a58bc48b8edee..641a5f4b775aa 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -546,25 +546,25 @@ var ( ) func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) + r0, _, _ := syscall.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) + r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) + r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { - r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) + r0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error)) ret = Errno(r0) return } @@ -574,7 +574,7 @@ func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, if resetToDefault { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + r1, _, e1 := syscall.SyscallN(procAdjustTokenGroups.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { err = errnoErr(e1) } @@ -586,7 +586,7 @@ func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tok if disableAllPrivileges { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + r1, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { err = errnoErr(e1) } @@ -594,7 +594,7 @@ func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tok } func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) + r1, _, e1 := syscall.SyscallN(procAllocateAndInitializeSid.Addr(), uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid))) if r1 == 0 { err = errnoErr(e1) } @@ -602,7 +602,7 @@ func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, s } func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) + r0, _, _ := syscall.SyscallN(procBuildSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -610,7 +610,7 @@ func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries } func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procChangeServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -618,7 +618,7 @@ func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err err } func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) + r1, _, e1 := syscall.SyscallN(procChangeServiceConfigW.Addr(), uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName))) if r1 == 0 { err = errnoErr(e1) } @@ -626,7 +626,7 @@ func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, e } func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) + r1, _, e1 := syscall.SyscallN(procCheckTokenMembership.Addr(), uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) if r1 == 0 { err = errnoErr(e1) } @@ -634,7 +634,7 @@ func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) ( } func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -642,7 +642,7 @@ func CloseServiceHandle(handle Handle) (err error) { } func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) + r1, _, e1 := syscall.SyscallN(procControlService.Addr(), uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -650,7 +650,7 @@ func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err } func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) + r1, _, e1 := syscall.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen))) if r1 == 0 { err = errnoErr(e1) } @@ -658,7 +658,7 @@ func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR } func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) + r1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid))) if r1 == 0 { err = errnoErr(e1) } @@ -675,7 +675,7 @@ func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision ui } func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -683,7 +683,7 @@ func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision } func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) + r1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid))) if r1 == 0 { err = errnoErr(e1) } @@ -691,7 +691,7 @@ func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { } func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) + r1, _, e1 := syscall.SyscallN(procCopySid.Addr(), uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) if r1 == 0 { err = errnoErr(e1) } @@ -703,7 +703,7 @@ func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, proc if inheritHandles { _p0 = 1 } - r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) + r1, _, e1 := syscall.SyscallN(procCreateProcessAsUserW.Addr(), uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) if r1 == 0 { err = errnoErr(e1) } @@ -711,7 +711,7 @@ func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, proc } func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -720,7 +720,7 @@ func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access } func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid))) if r1 == 0 { err = errnoErr(e1) } @@ -728,7 +728,7 @@ func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, s } func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -736,7 +736,7 @@ func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16 } func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + r1, _, e1 := syscall.SyscallN(procCryptGenRandom.Addr(), uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) if r1 == 0 { err = errnoErr(e1) } @@ -744,7 +744,7 @@ func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { } func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -752,7 +752,7 @@ func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { } func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteService.Addr(), uintptr(service)) if r1 == 0 { err = errnoErr(e1) } @@ -760,7 +760,7 @@ func DeleteService(service Handle) (err error) { } func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -768,7 +768,7 @@ func DeregisterEventSource(handle Handle) (err error) { } func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) + r1, _, e1 := syscall.SyscallN(procDuplicateTokenEx.Addr(), uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) if r1 == 0 { err = errnoErr(e1) } @@ -776,7 +776,7 @@ func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes } func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) + r1, _, e1 := syscall.SyscallN(procEnumDependentServicesW.Addr(), uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) if r1 == 0 { err = errnoErr(e1) } @@ -784,7 +784,7 @@ func EnumDependentServices(service Handle, activityState uint32, services *ENUM_ } func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) + r1, _, e1 := syscall.SyscallN(procEnumServicesStatusExW.Addr(), uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName))) if r1 == 0 { err = errnoErr(e1) } @@ -792,13 +792,13 @@ func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serv } func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + r0, _, _ := syscall.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2))) isEqual = r0 != 0 return } func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid))) if r1 != 0 { err = errnoErr(e1) } @@ -806,7 +806,7 @@ func FreeSid(sid *SID) (err error) { } func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { - r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) + r1, _, e1 := syscall.SyscallN(procGetAce.Addr(), uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) if r1 == 0 { err = errnoErr(e1) } @@ -814,7 +814,7 @@ func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { } func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid))) len = uint32(r0) return } @@ -829,7 +829,7 @@ func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, security } func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + r0, _, _ := syscall.SyscallN(procGetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -837,7 +837,7 @@ func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securi } func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) if r1 == 0 { err = errnoErr(e1) } @@ -853,7 +853,7 @@ func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl if *daclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1))) *daclPresent = _p0 != 0 *daclDefaulted = _p1 != 0 if r1 == 0 { @@ -867,7 +867,7 @@ func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefau if *groupDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) *groupDefaulted = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -876,7 +876,7 @@ func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefau } func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd))) len = uint32(r0) return } @@ -886,7 +886,7 @@ func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefau if *ownerDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) *ownerDefaulted = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -895,7 +895,7 @@ func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefau } func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -911,7 +911,7 @@ func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl if *saclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1))) *saclPresent = _p0 != 0 *saclDefaulted = _p1 != 0 if r1 == 0 { @@ -921,7 +921,7 @@ func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl } func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + r0, _, _ := syscall.SyscallN(procGetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -929,25 +929,25 @@ func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformati } func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid))) authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) return } func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + r0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index)) subAuthority = (*uint32)(unsafe.Pointer(r0)) return } func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid))) count = (*uint8)(unsafe.Pointer(r0)) return } func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) + r1, _, e1 := syscall.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen))) if r1 == 0 { err = errnoErr(e1) } @@ -955,7 +955,7 @@ func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint } func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) + r1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel)) if r1 == 0 { err = errnoErr(e1) } @@ -963,7 +963,7 @@ func ImpersonateSelf(impersonationlevel uint32) (err error) { } func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { - r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) + r1, _, e1 := syscall.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision)) if r1 == 0 { err = errnoErr(e1) } @@ -979,7 +979,7 @@ func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint if rebootAfterShutdown { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) + r1, _, e1 := syscall.SyscallN(procInitiateSystemShutdownExW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) if r1 == 0 { err = errnoErr(e1) } @@ -987,7 +987,7 @@ func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint } func isTokenRestricted(tokenHandle Token) (ret bool, err error) { - r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle)) ret = r0 != 0 if !ret { err = errnoErr(e1) @@ -996,25 +996,25 @@ func isTokenRestricted(tokenHandle Token) (ret bool, err error) { } func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + r0, _, _ := syscall.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd))) isValid = r0 != 0 return } func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid))) isValid = r0 != 0 return } func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + r0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType)) isWellKnown = r0 != 0 return } func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + r1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) if r1 == 0 { err = errnoErr(e1) } @@ -1022,7 +1022,7 @@ func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen } func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + r1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) if r1 == 0 { err = errnoErr(e1) } @@ -1030,7 +1030,7 @@ func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint3 } func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + r1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) if r1 == 0 { err = errnoErr(e1) } @@ -1038,7 +1038,7 @@ func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err err } func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) + r1, _, e1 := syscall.SyscallN(procMakeAbsoluteSD.Addr(), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize))) if r1 == 0 { err = errnoErr(e1) } @@ -1046,7 +1046,7 @@ func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DE } func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) + r1, _, e1 := syscall.SyscallN(procMakeSelfRelativeSD.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) if r1 == 0 { err = errnoErr(e1) } @@ -1054,7 +1054,7 @@ func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURIT } func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { - r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) + r0, _, _ := syscall.SyscallN(procNotifyServiceStatusChangeW.Addr(), uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1062,7 +1062,7 @@ func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERV } func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) + r1, _, e1 := syscall.SyscallN(procOpenProcessToken.Addr(), uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } @@ -1070,7 +1070,7 @@ func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { } func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + r0, _, e1 := syscall.SyscallN(procOpenSCManagerW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1079,7 +1079,7 @@ func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (ha } func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) + r0, _, e1 := syscall.SyscallN(procOpenServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1092,7 +1092,7 @@ func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token if openAsSelf { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + r1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } @@ -1100,7 +1100,7 @@ func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token } func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1108,7 +1108,7 @@ func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize } func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1120,7 +1120,7 @@ func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInf if err != nil { return } - r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) + r1, _, e1 := syscall.SyscallN(procQueryServiceDynamicInformation.Addr(), uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) if r1 == 0 { err = errnoErr(e1) } @@ -1128,7 +1128,7 @@ func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInf } func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1136,7 +1136,7 @@ func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, b } func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -1144,7 +1144,7 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { } func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1152,7 +1152,7 @@ func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize } func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + r0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1160,7 +1160,7 @@ func RegCloseKey(key Handle) (regerrno error) { } func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + r0, _, _ := syscall.SyscallN(procRegEnumKeyExW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1176,7 +1176,7 @@ func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, if asynchronous { _p1 = 1 } - r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) + r0, _, _ := syscall.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1184,7 +1184,7 @@ func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, } func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + r0, _, _ := syscall.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1192,7 +1192,7 @@ func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint } func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + r0, _, _ := syscall.SyscallN(procRegQueryInfoKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1200,7 +1200,7 @@ func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint } func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + r0, _, _ := syscall.SyscallN(procRegQueryValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1208,7 +1208,7 @@ func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32 } func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + r0, _, e1 := syscall.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1217,7 +1217,7 @@ func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Hand } func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) + r0, _, e1 := syscall.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1226,7 +1226,7 @@ func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, cont } func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) + r1, _, e1 := syscall.SyscallN(procReportEventW.Addr(), uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) if r1 == 0 { err = errnoErr(e1) } @@ -1234,7 +1234,7 @@ func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrS } func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + r1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr()) if r1 == 0 { err = errnoErr(e1) } @@ -1242,7 +1242,7 @@ func RevertToSelf() (err error) { } func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { - r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1250,7 +1250,7 @@ func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCE } func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { - r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) + r1, _, e1 := syscall.SyscallN(procSetKernelObjectSecurity.Addr(), uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) if r1 == 0 { err = errnoErr(e1) } @@ -1267,7 +1267,7 @@ func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, security } func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1275,7 +1275,7 @@ func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securi } func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) if r1 == 0 { err = errnoErr(e1) } @@ -1291,7 +1291,7 @@ func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl * if daclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1)) if r1 == 0 { err = errnoErr(e1) } @@ -1303,7 +1303,7 @@ func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaul if groupDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -1315,7 +1315,7 @@ func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaul if ownerDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -1323,7 +1323,7 @@ func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaul } func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + syscall.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) return } @@ -1336,7 +1336,7 @@ func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl * if saclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1)) if r1 == 0 { err = errnoErr(e1) } @@ -1344,7 +1344,7 @@ func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl * } func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1352,7 +1352,7 @@ func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformati } func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) + r1, _, e1 := syscall.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus))) if r1 == 0 { err = errnoErr(e1) } @@ -1360,7 +1360,7 @@ func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) } func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) + r1, _, e1 := syscall.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token)) if r1 == 0 { err = errnoErr(e1) } @@ -1368,7 +1368,7 @@ func SetThreadToken(thread *Handle, token Token) (err error) { } func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen)) if r1 == 0 { err = errnoErr(e1) } @@ -1376,7 +1376,7 @@ func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint } func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + r1, _, e1 := syscall.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable))) if r1 == 0 { err = errnoErr(e1) } @@ -1384,7 +1384,7 @@ func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { } func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) + r1, _, e1 := syscall.SyscallN(procStartServiceW.Addr(), uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) if r1 == 0 { err = errnoErr(e1) } @@ -1392,7 +1392,7 @@ func StartService(service Handle, numArgs uint32, argVectors **uint16) (err erro } func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext))) if r1 == 0 { err = errnoErr(e1) } @@ -1400,7 +1400,7 @@ func CertAddCertificateContextToStore(store Handle, certContext *CertContext, ad } func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -1408,7 +1408,7 @@ func CertCloseStore(store Handle, flags uint32) (err error) { } func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + r0, _, e1 := syscall.SyscallN(procCertCreateCertificateContext.Addr(), uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { err = errnoErr(e1) @@ -1417,7 +1417,7 @@ func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, en } func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext))) if r1 == 0 { err = errnoErr(e1) } @@ -1425,13 +1425,13 @@ func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { } func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { - r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + r0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext))) dupContext = (*CertContext)(unsafe.Pointer(r0)) return } func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + r0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext))) context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { err = errnoErr(e1) @@ -1440,7 +1440,7 @@ func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (contex } func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) + r0, _, e1 := syscall.SyscallN(procCertFindCertificateInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) cert = (*CertContext)(unsafe.Pointer(r0)) if cert == nil { err = errnoErr(e1) @@ -1449,7 +1449,7 @@ func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags } func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) + r0, _, e1 := syscall.SyscallN(procCertFindChainInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) certchain = (*CertChainContext)(unsafe.Pointer(r0)) if certchain == nil { err = errnoErr(e1) @@ -1458,18 +1458,18 @@ func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint3 } func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { - r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) + r0, _, _ := syscall.SyscallN(procCertFindExtension.Addr(), uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) ret = (*CertExtension)(unsafe.Pointer(r0)) return } func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + syscall.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx))) return } func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx))) if r1 == 0 { err = errnoErr(e1) } @@ -1477,7 +1477,7 @@ func CertFreeCertificateContext(ctx *CertContext) (err error) { } func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + r1, _, e1 := syscall.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx))) if r1 == 0 { err = errnoErr(e1) } @@ -1485,13 +1485,13 @@ func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, a } func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { - r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + r0, _, _ := syscall.SyscallN(procCertGetNameStringW.Addr(), uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) chars = uint32(r0) return } func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + r0, _, e1 := syscall.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1500,7 +1500,7 @@ func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptPr } func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + r0, _, e1 := syscall.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name))) store = Handle(r0) if store == 0 { err = errnoErr(e1) @@ -1509,7 +1509,7 @@ func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { } func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -1521,7 +1521,7 @@ func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, paramete if *callerFreeProvOrNCryptKey { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) *callerFreeProvOrNCryptKey = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -1530,7 +1530,7 @@ func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, paramete } func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen))) if r1 == 0 { err = errnoErr(e1) } @@ -1538,7 +1538,7 @@ func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte } func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) if r1 == 0 { err = errnoErr(e1) } @@ -1546,7 +1546,7 @@ func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, } func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) + r1, _, e1 := syscall.SyscallN(procCryptQueryObject.Addr(), uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context))) if r1 == 0 { err = errnoErr(e1) } @@ -1554,7 +1554,7 @@ func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentT } func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) if r1 == 0 { err = errnoErr(e1) } @@ -1562,7 +1562,7 @@ func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBl } func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procPFXImportCertStore.Addr(), uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) store = Handle(r0) if store == 0 { err = errnoErr(e1) @@ -1571,7 +1571,7 @@ func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (sto } func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + r0, _, _ := syscall.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2))) same = r0 != 0 return } @@ -1586,7 +1586,7 @@ func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSR } func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + r0, _, _ := syscall.SyscallN(procDnsQuery_W.Addr(), uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) if r0 != 0 { status = syscall.Errno(r0) } @@ -1594,12 +1594,12 @@ func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DN } func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + syscall.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype)) return } func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + r0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1607,7 +1607,7 @@ func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si } func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + r0, _, _ := syscall.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1615,7 +1615,7 @@ func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si } func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { - r0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0) + r0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle)) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1623,7 +1623,7 @@ func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { } func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1631,7 +1631,7 @@ func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapter } func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + r0, _, _ := syscall.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1639,7 +1639,7 @@ func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { } func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + r0, _, _ := syscall.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1647,7 +1647,7 @@ func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcod } func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1655,7 +1655,7 @@ func GetIfEntry(pIfRow *MibIfRow) (errcode error) { } func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0) + r0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1663,7 +1663,7 @@ func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { } func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1675,7 +1675,7 @@ func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsa if initialNotification { _p0 = 1 } - r0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + r0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1687,7 +1687,7 @@ func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext if initialNotification { _p0 = 1 } - r0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + r0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1695,7 +1695,7 @@ func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext } func AddDllDirectory(path *uint16) (cookie uintptr, err error) { - r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r0, _, e1 := syscall.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path))) cookie = uintptr(r0) if cookie == 0 { err = errnoErr(e1) @@ -1704,7 +1704,7 @@ func AddDllDirectory(path *uint16) (cookie uintptr, err error) { } func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) + r1, _, e1 := syscall.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process)) if r1 == 0 { err = errnoErr(e1) } @@ -1712,7 +1712,7 @@ func AssignProcessToJobObject(job Handle, process Handle) (err error) { } func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + r1, _, e1 := syscall.SyscallN(procCancelIo.Addr(), uintptr(s)) if r1 == 0 { err = errnoErr(e1) } @@ -1720,7 +1720,7 @@ func CancelIo(s Handle) (err error) { } func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) + r1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o))) if r1 == 0 { err = errnoErr(e1) } @@ -1728,7 +1728,7 @@ func CancelIoEx(s Handle, o *Overlapped) (err error) { } func ClearCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procClearCommBreak.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1736,7 +1736,7 @@ func ClearCommBreak(handle Handle) (err error) { } func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) + r1, _, e1 := syscall.SyscallN(procClearCommError.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) if r1 == 0 { err = errnoErr(e1) } @@ -1744,7 +1744,7 @@ func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error } func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procCloseHandle.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1752,12 +1752,12 @@ func CloseHandle(handle Handle) (err error) { } func ClosePseudoConsole(console Handle) { - syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) + syscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console)) return } func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -1765,7 +1765,7 @@ func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { } func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + r1, _, e1 := syscall.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa))) if r1 == 0 { err = errnoErr(e1) } @@ -1773,7 +1773,7 @@ func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { } func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1782,7 +1782,7 @@ func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, d } func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1791,7 +1791,7 @@ func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialStat } func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1800,7 +1800,7 @@ func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxS } func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1809,7 +1809,7 @@ func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes } func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procCreateHardLinkW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) if r1&0xff == 0 { err = errnoErr(e1) } @@ -1817,7 +1817,7 @@ func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr } func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1826,7 +1826,7 @@ func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, thr } func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) + r0, _, e1 := syscall.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1835,7 +1835,7 @@ func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, } func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1848,7 +1848,7 @@ func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16 if initialOwner { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procCreateMutexW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1857,7 +1857,7 @@ func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16 } func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + r0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa))) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1866,7 +1866,7 @@ func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances u } func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -1878,7 +1878,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA if inheritHandles { _p0 = 1 } - r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreateProcessW.Addr(), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) if r1 == 0 { err = errnoErr(e1) } @@ -1886,7 +1886,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA } func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { - r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) + r0, _, _ := syscall.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole))) if r0 != 0 { hr = syscall.Errno(r0) } @@ -1894,7 +1894,7 @@ func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pcons } func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procCreateSymbolicLinkW.Addr(), uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) if r1&0xff == 0 { err = errnoErr(e1) } @@ -1902,7 +1902,7 @@ func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags u } func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + r0, _, e1 := syscall.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1911,7 +1911,7 @@ func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, er } func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + r1, _, e1 := syscall.SyscallN(procDefineDosDeviceW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) if r1 == 0 { err = errnoErr(e1) } @@ -1919,7 +1919,7 @@ func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err } func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -1927,12 +1927,12 @@ func DeleteFile(path *uint16) (err error) { } func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { - syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) + syscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist))) return } func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint))) if r1 == 0 { err = errnoErr(e1) } @@ -1940,7 +1940,7 @@ func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { } func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -1948,7 +1948,7 @@ func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBuff } func DisconnectNamedPipe(pipe Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) + r1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe)) if r1 == 0 { err = errnoErr(e1) } @@ -1960,7 +1960,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP if bInheritHandle { _p0 = 1 } - r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + r1, _, e1 := syscall.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions)) if r1 == 0 { err = errnoErr(e1) } @@ -1968,7 +1968,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP } func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) + r1, _, e1 := syscall.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc)) if r1 == 0 { err = errnoErr(e1) } @@ -1976,12 +1976,12 @@ func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { } func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + syscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode)) return } func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -1990,7 +1990,7 @@ func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, } func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindClose.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1998,7 +1998,7 @@ func FindClose(handle Handle) (err error) { } func FindCloseChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2019,7 +2019,7 @@ func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter if watchSubtree { _p1 = 1 } - r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + r0, _, e1 := syscall.SyscallN(procFindFirstChangeNotificationW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2028,7 +2028,7 @@ func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter } func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + r0, _, e1 := syscall.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data))) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2037,7 +2037,7 @@ func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err erro } func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + r0, _, e1 := syscall.SyscallN(procFindFirstVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2046,7 +2046,7 @@ func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, b } func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + r0, _, e1 := syscall.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2055,7 +2055,7 @@ func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, er } func FindNextChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2063,7 +2063,7 @@ func FindNextChangeNotification(handle Handle) (err error) { } func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + r1, _, e1 := syscall.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) if r1 == 0 { err = errnoErr(e1) } @@ -2071,7 +2071,7 @@ func findNextFile1(handle Handle, data *win32finddata1) (err error) { } func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procFindNextVolumeMountPointW.Addr(), uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2079,7 +2079,7 @@ func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uin } func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procFindNextVolumeW.Addr(), uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2087,7 +2087,7 @@ func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) } func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + r0, _, e1 := syscall.SyscallN(procFindResourceW.Addr(), uintptr(module), uintptr(name), uintptr(resType)) resInfo = Handle(r0) if resInfo == 0 { err = errnoErr(e1) @@ -2096,7 +2096,7 @@ func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, } func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume)) if r1 == 0 { err = errnoErr(e1) } @@ -2104,7 +2104,7 @@ func FindVolumeClose(findVolume Handle) (err error) { } func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint)) if r1 == 0 { err = errnoErr(e1) } @@ -2112,7 +2112,7 @@ func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { } func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2120,7 +2120,7 @@ func FlushFileBuffers(handle Handle) (err error) { } func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -2132,7 +2132,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu if len(buf) > 0 { _p0 = &buf[0] } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + r0, _, e1 := syscall.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2141,7 +2141,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu } func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs))) if r1 == 0 { err = errnoErr(e1) } @@ -2149,7 +2149,7 @@ func FreeEnvironmentStrings(envs *uint16) (err error) { } func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeLibrary.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2157,7 +2157,7 @@ func FreeLibrary(handle Handle) (err error) { } func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + r1, _, e1 := syscall.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID)) if r1 == 0 { err = errnoErr(e1) } @@ -2165,19 +2165,19 @@ func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err erro } func GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetACP.Addr()) acp = uint32(r0) return } func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + r0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber)) ret = uint32(r0) return } func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat))) if r1 == 0 { err = errnoErr(e1) } @@ -2185,7 +2185,7 @@ func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { } func GetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) if r1 == 0 { err = errnoErr(e1) } @@ -2193,7 +2193,7 @@ func GetCommState(handle Handle, lpDCB *DCB) (err error) { } func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) if r1 == 0 { err = errnoErr(e1) } @@ -2201,13 +2201,13 @@ func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { } func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr()) cmd = (*uint16)(unsafe.Pointer(r0)) return } func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + r1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { err = errnoErr(e1) } @@ -2215,7 +2215,7 @@ func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { } func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + r1, _, e1 := syscall.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { err = errnoErr(e1) } @@ -2223,7 +2223,7 @@ func GetComputerName(buf *uint16, n *uint32) (err error) { } func GetConsoleCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr()) cp = uint32(r0) if cp == 0 { err = errnoErr(e1) @@ -2232,7 +2232,7 @@ func GetConsoleCP() (cp uint32, err error) { } func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + r1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode))) if r1 == 0 { err = errnoErr(e1) } @@ -2240,7 +2240,7 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) { } func GetConsoleOutputCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr()) cp = uint32(r0) if cp == 0 { err = errnoErr(e1) @@ -2249,7 +2249,7 @@ func GetConsoleOutputCP() (cp uint32, err error) { } func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + r1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -2257,7 +2257,7 @@ func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) ( } func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + r0, _, e1 := syscall.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2266,19 +2266,19 @@ func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { } func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCurrentProcessId.Addr()) pid = uint32(r0) return } func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr()) id = uint32(r0) return } func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes))) if r1 == 0 { err = errnoErr(e1) } @@ -2286,13 +2286,13 @@ func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint6 } func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName))) driveType = uint32(r0) return } func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr()) envs = (*uint16)(unsafe.Pointer(r0)) if envs == nil { err = errnoErr(e1) @@ -2301,7 +2301,7 @@ func GetEnvironmentStrings() (envs *uint16, err error) { } func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procGetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2310,7 +2310,7 @@ func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32 } func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + r1, _, e1 := syscall.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode))) if r1 == 0 { err = errnoErr(e1) } @@ -2318,7 +2318,7 @@ func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { } func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procGetFileAttributesExW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -2326,7 +2326,7 @@ func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { } func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name))) attrs = uint32(r0) if attrs == INVALID_FILE_ATTRIBUTES { err = errnoErr(e1) @@ -2335,7 +2335,7 @@ func GetFileAttributes(name *uint16) (attrs uint32, err error) { } func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) if r1 == 0 { err = errnoErr(e1) } @@ -2343,7 +2343,7 @@ func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (e } func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen)) if r1 == 0 { err = errnoErr(e1) } @@ -2351,7 +2351,7 @@ func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, } func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) if r1 == 0 { err = errnoErr(e1) } @@ -2359,7 +2359,7 @@ func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim } func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFileType.Addr(), uintptr(filehandle)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2368,7 +2368,7 @@ func GetFileType(filehandle Handle) (n uint32, err error) { } func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2377,7 +2377,7 @@ func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32 } func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2386,13 +2386,13 @@ func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) ( } func GetLargePageMinimum() (size uintptr) { - r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetLargePageMinimum.Addr()) size = uintptr(r0) return } func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetLastError.Addr()) if r0 != 0 { lasterr = syscall.Errno(r0) } @@ -2400,7 +2400,7 @@ func GetLastError() (lasterr error) { } func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + r0, _, e1 := syscall.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2409,7 +2409,7 @@ func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err } func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetLogicalDrives.Addr()) drivesBitMask = uint32(r0) if drivesBitMask == 0 { err = errnoErr(e1) @@ -2418,7 +2418,7 @@ func GetLogicalDrives() (drivesBitMask uint32, err error) { } func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + r0, _, e1 := syscall.SyscallN(procGetLongPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2427,13 +2427,13 @@ func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err er } func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + r0, _, _ := syscall.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber)) ret = uint32(r0) return } func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2442,7 +2442,7 @@ func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, } func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + r1, _, e1 := syscall.SyscallN(procGetModuleHandleExW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) if r1 == 0 { err = errnoErr(e1) } @@ -2450,7 +2450,7 @@ func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err er } func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID))) if r1 == 0 { err = errnoErr(e1) } @@ -2458,7 +2458,7 @@ func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err erro } func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2466,7 +2466,7 @@ func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, m } func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances))) if r1 == 0 { err = errnoErr(e1) } @@ -2474,7 +2474,7 @@ func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint3 } func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID))) if r1 == 0 { err = errnoErr(e1) } @@ -2486,7 +2486,7 @@ func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wa if wait { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -2494,7 +2494,7 @@ func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wa } func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetPriorityClass.Addr(), uintptr(process)) ret = uint32(r0) if ret == 0 { err = errnoErr(e1) @@ -2512,7 +2512,7 @@ func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { } func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + r0, _, e1 := syscall.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname))) proc = uintptr(r0) if proc == 0 { err = errnoErr(e1) @@ -2521,7 +2521,7 @@ func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { } func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetProcessId.Addr(), uintptr(process)) id = uint32(r0) if id == 0 { err = errnoErr(e1) @@ -2530,7 +2530,7 @@ func GetProcessId(process Handle) (id uint32, err error) { } func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2538,7 +2538,7 @@ func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uin } func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) + r1, _, e1 := syscall.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags))) if r1 == 0 { err = errnoErr(e1) } @@ -2546,7 +2546,7 @@ func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { } func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) + r1, _, e1 := syscall.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime))) if r1 == 0 { err = errnoErr(e1) } @@ -2554,12 +2554,12 @@ func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, } func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { - syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) + syscall.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags))) return } func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) + r1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout)) if r1 == 0 { err = errnoErr(e1) } @@ -2567,7 +2567,7 @@ func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overl } func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + r0, _, e1 := syscall.SyscallN(procGetShortPathNameW.Addr(), uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2576,12 +2576,12 @@ func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uin } func getStartupInfo(startupInfo *StartupInfo) { - syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + syscall.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo))) return } func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2590,7 +2590,7 @@ func GetStdHandle(stdhandle uint32) (handle Handle, err error) { } func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2599,7 +2599,7 @@ func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { } func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2607,17 +2607,17 @@ func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint } func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + syscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) return } func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + syscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) return } func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2626,7 +2626,7 @@ func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err erro } func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + r0, _, e1 := syscall.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2635,7 +2635,7 @@ func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { } func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2643,13 +2643,13 @@ func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint } func getTickCount64() (ms uint64) { - r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetTickCount64.Addr()) ms = uint64(r0) return } func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi))) rc = uint32(r0) if rc == 0xffffffff { err = errnoErr(e1) @@ -2658,7 +2658,7 @@ func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { } func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2666,7 +2666,7 @@ func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16 } func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetVersion.Addr()) ver = uint32(r0) if ver == 0 { err = errnoErr(e1) @@ -2675,7 +2675,7 @@ func GetVersion() (ver uint32, err error) { } func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + r1, _, e1 := syscall.SyscallN(procGetVolumeInformationByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2683,7 +2683,7 @@ func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeN } func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + r1, _, e1 := syscall.SyscallN(procGetVolumeInformationW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2691,7 +2691,7 @@ func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volume } func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + r1, _, e1 := syscall.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) if r1 == 0 { err = errnoErr(e1) } @@ -2699,7 +2699,7 @@ func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint } func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procGetVolumePathNameW.Addr(), uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2707,7 +2707,7 @@ func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength ui } func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength))) if r1 == 0 { err = errnoErr(e1) } @@ -2715,7 +2715,7 @@ func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16 } func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2724,7 +2724,7 @@ func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { } func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -2736,7 +2736,7 @@ func IsWow64Process(handle Handle, isWow64 *bool) (err error) { if *isWow64 { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + r1, _, e1 := syscall.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0))) *isWow64 = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -2749,7 +2749,7 @@ func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint1 if err != nil { return } - r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + r1, _, e1 := syscall.SyscallN(procIsWow64Process2.Addr(), uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) if r1 == 0 { err = errnoErr(e1) } @@ -2766,7 +2766,7 @@ func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, e } func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procLoadLibraryExW.Addr(), uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2784,7 +2784,7 @@ func LoadLibrary(libname string) (handle Handle, err error) { } func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + r0, _, e1 := syscall.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2793,7 +2793,7 @@ func _LoadLibrary(libname *uint16) (handle Handle, err error) { } func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + r0, _, e1 := syscall.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo)) resData = Handle(r0) if resData == 0 { err = errnoErr(e1) @@ -2802,7 +2802,7 @@ func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { } func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + r0, _, e1 := syscall.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length)) ptr = uintptr(r0) if ptr == 0 { err = errnoErr(e1) @@ -2811,7 +2811,7 @@ func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { } func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + r0, _, e1 := syscall.SyscallN(procLocalFree.Addr(), uintptr(hmem)) handle = Handle(r0) if handle != 0 { err = errnoErr(e1) @@ -2820,7 +2820,7 @@ func LocalFree(hmem Handle) (handle Handle, err error) { } func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) + r1, _, e1 := syscall.SyscallN(procLockFileEx.Addr(), uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -2828,7 +2828,7 @@ func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, byt } func LockResource(resData Handle) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + r0, _, e1 := syscall.SyscallN(procLockResource.Addr(), uintptr(resData)) addr = uintptr(r0) if addr == 0 { err = errnoErr(e1) @@ -2837,7 +2837,7 @@ func LockResource(resData Handle) (addr uintptr, err error) { } func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + r0, _, e1 := syscall.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length)) addr = uintptr(r0) if addr == 0 { err = errnoErr(e1) @@ -2846,7 +2846,7 @@ func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow ui } func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + r1, _, e1 := syscall.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2854,7 +2854,7 @@ func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { } func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + r1, _, e1 := syscall.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2862,7 +2862,7 @@ func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { } func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procMoveFileExW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -2870,7 +2870,7 @@ func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { } func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + r1, _, e1 := syscall.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to))) if r1 == 0 { err = errnoErr(e1) } @@ -2878,7 +2878,7 @@ func MoveFile(from *uint16, to *uint16) (err error) { } func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + r0, _, e1 := syscall.SyscallN(procMultiByteToWideChar.Addr(), uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) nwrite = int32(r0) if nwrite == 0 { err = errnoErr(e1) @@ -2891,7 +2891,7 @@ func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle H if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procOpenEventW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2904,7 +2904,7 @@ func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle H if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procOpenMutexW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2917,7 +2917,7 @@ func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (ha if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + r0, _, e1 := syscall.SyscallN(procOpenProcess.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2930,7 +2930,7 @@ func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (hand if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + r0, _, e1 := syscall.SyscallN(procOpenThread.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2939,7 +2939,7 @@ func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (hand } func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + r1, _, e1 := syscall.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -2947,7 +2947,7 @@ func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overla } func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + r1, _, e1 := syscall.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2955,7 +2955,7 @@ func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { } func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + r1, _, e1 := syscall.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2963,7 +2963,7 @@ func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { } func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) + r1, _, e1 := syscall.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid))) if r1 == 0 { err = errnoErr(e1) } @@ -2971,7 +2971,7 @@ func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { } func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procPulseEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -2979,7 +2979,7 @@ func PulseEvent(event Handle) (err error) { } func PurgeComm(handle Handle, dwFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0) + r1, _, e1 := syscall.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags)) if r1 == 0 { err = errnoErr(e1) } @@ -2987,7 +2987,7 @@ func PurgeComm(handle Handle, dwFlags uint32) (err error) { } func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + r0, _, e1 := syscall.SyscallN(procQueryDosDeviceW.Addr(), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2996,7 +2996,7 @@ func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint3 } func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -3004,7 +3004,7 @@ func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size } func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) + r1, _, e1 := syscall.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen))) if r1 == 0 { err = errnoErr(e1) } @@ -3012,7 +3012,7 @@ func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobO } func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + r1, _, e1 := syscall.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl))) if r1 == 0 { err = errnoErr(e1) } @@ -3024,7 +3024,7 @@ func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree if watchSubTree { _p0 = 1 } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + r1, _, e1 := syscall.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == 0 { err = errnoErr(e1) } @@ -3036,7 +3036,7 @@ func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3044,7 +3044,7 @@ func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( } func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) + r1, _, e1 := syscall.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead))) if r1 == 0 { err = errnoErr(e1) } @@ -3052,7 +3052,7 @@ func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size u } func ReleaseMutex(mutex Handle) (err error) { - r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) + r1, _, e1 := syscall.SyscallN(procReleaseMutex.Addr(), uintptr(mutex)) if r1 == 0 { err = errnoErr(e1) } @@ -3060,7 +3060,7 @@ func ReleaseMutex(mutex Handle) (err error) { } func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3068,7 +3068,7 @@ func RemoveDirectory(path *uint16) (err error) { } func RemoveDllDirectory(cookie uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0) + r1, _, e1 := syscall.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie)) if r1 == 0 { err = errnoErr(e1) } @@ -3076,7 +3076,7 @@ func RemoveDllDirectory(cookie uintptr) (err error) { } func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procResetEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -3084,7 +3084,7 @@ func ResetEvent(event Handle) (err error) { } func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { - r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) + r0, _, _ := syscall.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size)) if r0 != 0 { hr = syscall.Errno(r0) } @@ -3092,7 +3092,7 @@ func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { } func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + r0, _, e1 := syscall.SyscallN(procResumeThread.Addr(), uintptr(thread)) ret = uint32(r0) if ret == 0xffffffff { err = errnoErr(e1) @@ -3101,7 +3101,7 @@ func ResumeThread(thread Handle) (ret uint32, err error) { } func SetCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetCommBreak.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3109,7 +3109,7 @@ func SetCommBreak(handle Handle) (err error) { } func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) + r1, _, e1 := syscall.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask)) if r1 == 0 { err = errnoErr(e1) } @@ -3117,7 +3117,7 @@ func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { } func SetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + r1, _, e1 := syscall.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) if r1 == 0 { err = errnoErr(e1) } @@ -3125,7 +3125,7 @@ func SetCommState(handle Handle, lpDCB *DCB) (err error) { } func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + r1, _, e1 := syscall.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) if r1 == 0 { err = errnoErr(e1) } @@ -3133,7 +3133,7 @@ func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { } func SetConsoleCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp)) if r1 == 0 { err = errnoErr(e1) } @@ -3141,7 +3141,7 @@ func SetConsoleCP(cp uint32) (err error) { } func setConsoleCursorPosition(console Handle, position uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position)) if r1 == 0 { err = errnoErr(e1) } @@ -3149,7 +3149,7 @@ func setConsoleCursorPosition(console Handle, position uint32) (err error) { } func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode)) if r1 == 0 { err = errnoErr(e1) } @@ -3157,7 +3157,7 @@ func SetConsoleMode(console Handle, mode uint32) (err error) { } func SetConsoleOutputCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp)) if r1 == 0 { err = errnoErr(e1) } @@ -3165,7 +3165,7 @@ func SetConsoleOutputCP(cp uint32) (err error) { } func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3173,7 +3173,7 @@ func SetCurrentDirectory(path *uint16) (err error) { } func SetDefaultDllDirectories(directoryFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags)) if r1 == 0 { err = errnoErr(e1) } @@ -3190,7 +3190,7 @@ func SetDllDirectory(path string) (err error) { } func _SetDllDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3198,7 +3198,7 @@ func _SetDllDirectory(path *uint16) (err error) { } func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetEndOfFile.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3206,7 +3206,7 @@ func SetEndOfFile(handle Handle) (err error) { } func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + r1, _, e1 := syscall.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value))) if r1 == 0 { err = errnoErr(e1) } @@ -3214,13 +3214,13 @@ func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { } func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + r0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode)) ret = uint32(r0) return } func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -3228,7 +3228,7 @@ func SetEvent(event Handle) (err error) { } func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + r1, _, e1 := syscall.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs)) if r1 == 0 { err = errnoErr(e1) } @@ -3236,7 +3236,7 @@ func SetFileAttributes(name *uint16, attrs uint32) (err error) { } func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3244,7 +3244,7 @@ func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) } func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen)) if r1 == 0 { err = errnoErr(e1) } @@ -3252,7 +3252,7 @@ func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inB } func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence)) newlowoffset = uint32(r0) if newlowoffset == 0xffffffff { err = errnoErr(e1) @@ -3261,7 +3261,7 @@ func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence } func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) if r1 == 0 { err = errnoErr(e1) } @@ -3269,7 +3269,7 @@ func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim } func SetFileValidData(handle Handle, validDataLength int64) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) + r1, _, e1 := syscall.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength)) if r1 == 0 { err = errnoErr(e1) } @@ -3277,7 +3277,7 @@ func SetFileValidData(handle Handle, validDataLength int64) (err error) { } func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procSetHandleInformation.Addr(), uintptr(handle), uintptr(mask), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3285,7 +3285,7 @@ func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) } func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength)) ret = int(r0) if ret == 0 { err = errnoErr(e1) @@ -3294,7 +3294,7 @@ func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobOb } func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout))) if r1 == 0 { err = errnoErr(e1) } @@ -3302,7 +3302,7 @@ func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uin } func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + r1, _, e1 := syscall.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass)) if r1 == 0 { err = errnoErr(e1) } @@ -3314,7 +3314,7 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { if disable { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + r1, _, e1 := syscall.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -3322,7 +3322,7 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { } func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3330,7 +3330,7 @@ func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { } func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3338,7 +3338,7 @@ func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr } func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + r1, _, e1 := syscall.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3346,7 +3346,7 @@ func SetStdHandle(stdhandle uint32, handle Handle) (err error) { } func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + r1, _, e1 := syscall.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName))) if r1 == 0 { err = errnoErr(e1) } @@ -3354,7 +3354,7 @@ func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { } func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + r1, _, e1 := syscall.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName))) if r1 == 0 { err = errnoErr(e1) } @@ -3362,7 +3362,7 @@ func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err erro } func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) + r1, _, e1 := syscall.SyscallN(procSetupComm.Addr(), uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) if r1 == 0 { err = errnoErr(e1) } @@ -3370,7 +3370,7 @@ func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { } func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { - r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + r0, _, e1 := syscall.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo)) size = uint32(r0) if size == 0 { err = errnoErr(e1) @@ -3383,13 +3383,13 @@ func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { if alertable { _p0 = 1 } - r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + r0, _, _ := syscall.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0)) ret = uint32(r0) return } func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + r1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode)) if r1 == 0 { err = errnoErr(e1) } @@ -3397,7 +3397,7 @@ func TerminateJobObject(job Handle, exitCode uint32) (err error) { } func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + r1, _, e1 := syscall.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode)) if r1 == 0 { err = errnoErr(e1) } @@ -3405,7 +3405,7 @@ func TerminateProcess(handle Handle, exitcode uint32) (err error) { } func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + r1, _, e1 := syscall.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -3413,7 +3413,7 @@ func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { } func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + r1, _, e1 := syscall.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -3421,7 +3421,7 @@ func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { } func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procUnlockFileEx.Addr(), uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3429,7 +3429,7 @@ func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint3 } func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + r1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr)) if r1 == 0 { err = errnoErr(e1) } @@ -3437,7 +3437,7 @@ func UnmapViewOfFile(addr uintptr) (err error) { } func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize))) if r1 == 0 { err = errnoErr(e1) } @@ -3445,7 +3445,7 @@ func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, } func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + r0, _, e1 := syscall.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect)) value = uintptr(r0) if value == 0 { err = errnoErr(e1) @@ -3454,7 +3454,7 @@ func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint3 } func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + r1, _, e1 := syscall.SyscallN(procVirtualFree.Addr(), uintptr(address), uintptr(size), uintptr(freetype)) if r1 == 0 { err = errnoErr(e1) } @@ -3462,7 +3462,7 @@ func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { } func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3470,7 +3470,7 @@ func VirtualLock(addr uintptr, length uintptr) (err error) { } func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + r1, _, e1 := syscall.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect))) if r1 == 0 { err = errnoErr(e1) } @@ -3478,7 +3478,7 @@ func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect } func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) + r1, _, e1 := syscall.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect))) if r1 == 0 { err = errnoErr(e1) } @@ -3486,7 +3486,7 @@ func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect } func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) + r1, _, e1 := syscall.SyscallN(procVirtualQuery.Addr(), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3494,7 +3494,7 @@ func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintpt } func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) + r1, _, e1 := syscall.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3502,7 +3502,7 @@ func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformat } func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3510,13 +3510,13 @@ func VirtualUnlock(addr uintptr, length uintptr) (err error) { } func WTSGetActiveConsoleSessionId() (sessionID uint32) { - r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr()) sessionID = uint32(r0) return } func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) + r1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3528,7 +3528,7 @@ func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMil if waitAll { _p0 = 1 } - r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + r0, _, e1 := syscall.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds)) event = uint32(r0) if event == 0xffffffff { err = errnoErr(e1) @@ -3537,7 +3537,7 @@ func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMil } func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + r0, _, e1 := syscall.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds)) event = uint32(r0) if event == 0xffffffff { err = errnoErr(e1) @@ -3546,7 +3546,7 @@ func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, } func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + r1, _, e1 := syscall.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved))) if r1 == 0 { err = errnoErr(e1) } @@ -3558,7 +3558,7 @@ func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3566,7 +3566,7 @@ func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) } func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) + r1, _, e1 := syscall.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten))) if r1 == 0 { err = errnoErr(e1) } @@ -3574,7 +3574,7 @@ func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size } func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3582,12 +3582,12 @@ func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32 } func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + syscall.SyscallN(procGetAcceptExSockaddrs.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen))) return } func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + r1, _, e1 := syscall.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3595,7 +3595,7 @@ func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint } func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + r0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3603,7 +3603,7 @@ func NetApiBufferFree(buf *byte) (neterr error) { } func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + r0, _, _ := syscall.SyscallN(procNetGetJoinInformation.Addr(), uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3611,7 +3611,7 @@ func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (nete } func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { - r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) + r0, _, _ := syscall.SyscallN(procNetUserEnum.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3619,7 +3619,7 @@ func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, pr } func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + r0, _, _ := syscall.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3627,7 +3627,7 @@ func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **by } func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + r0, _, _ := syscall.SyscallN(procNtCreateFile.Addr(), uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3635,7 +3635,7 @@ func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO } func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { - r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3643,7 +3643,7 @@ func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, i } func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + r0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3651,7 +3651,7 @@ func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe } func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) + r0, _, _ := syscall.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3659,7 +3659,7 @@ func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInf } func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) + r0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3667,7 +3667,7 @@ func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, } func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) + r0, _, _ := syscall.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3675,7 +3675,7 @@ func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.P } func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) + r0, _, _ := syscall.SyscallN(procNtSetSystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3683,13 +3683,13 @@ func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoL } func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) + r0, _, _ := syscall.SyscallN(procRtlAddFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) ret = r0 != 0 return } func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3697,13 +3697,13 @@ func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { } func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable))) ret = r0 != 0 return } func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3711,7 +3711,7 @@ func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFile } func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3719,18 +3719,18 @@ func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString } func RtlGetCurrentPeb() (peb *PEB) { - r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr()) peb = (*PEB)(unsafe.Pointer(r0)) return } func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { - syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) + syscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) return } func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3738,23 +3738,23 @@ func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { } func RtlInitString(destinationString *NTString, sourceString *byte) { - syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + syscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) return } func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { - syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + syscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) return } func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { - r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus)) ret = syscall.Errno(r0) return } func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + r0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3762,7 +3762,7 @@ func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { } func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + r0, _, _ := syscall.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3770,7 +3770,7 @@ func coCreateGuid(pguid *GUID) (ret error) { } func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { - r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + r0, _, _ := syscall.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3778,7 +3778,7 @@ func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable * } func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { - r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + r0, _, _ := syscall.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3786,23 +3786,23 @@ func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { } func CoTaskMemFree(address unsafe.Pointer) { - syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + syscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address)) return } func CoUninitialize() { - syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) + syscall.SyscallN(procCoUninitialize.Addr()) return } func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + r0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) chars = int32(r0) return } func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -3810,7 +3810,7 @@ func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uin } func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) + r1, _, e1 := syscall.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag)) if r1 == 0 { err = errnoErr(e1) } @@ -3818,7 +3818,7 @@ func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *u } func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) + r1, _, e1 := syscall.SyscallN(procEnumProcesses.Addr(), uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) if r1 == 0 { err = errnoErr(e1) } @@ -3826,7 +3826,7 @@ func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err } func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -3834,7 +3834,7 @@ func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uin } func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -3842,7 +3842,7 @@ func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size u } func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb)) if r1 == 0 { err = errnoErr(e1) } @@ -3850,7 +3850,7 @@ func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb } func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + r1, _, e1 := syscall.SyscallN(procQueryWorkingSetEx.Addr(), uintptr(process), uintptr(pv), uintptr(cb)) if r1 == 0 { err = errnoErr(e1) } @@ -3862,7 +3862,7 @@ func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callb if ret != nil { return } - r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + r0, _, _ := syscall.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3874,12 +3874,12 @@ func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { if err != nil { return } - syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) + syscall.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription)) return } func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + r1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { err = errnoErr(e1) } @@ -3887,7 +3887,7 @@ func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err er } func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + r1, _, e1 := syscall.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { err = errnoErr(e1) } @@ -3895,7 +3895,7 @@ func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint } func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + r1, _, e1 := syscall.SyscallN(procSetupDiBuildDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) if r1 == 0 { err = errnoErr(e1) } @@ -3903,7 +3903,7 @@ func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiCallClassInstaller.Addr(), uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3911,7 +3911,7 @@ func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInf } func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet)) if r1 == 0 { err = errnoErr(e1) } @@ -3919,7 +3919,7 @@ func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { } func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -3927,7 +3927,7 @@ func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGu } func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -3935,7 +3935,7 @@ func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSiz } func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) handle = DevInfo(r0) if handle == DevInfo(InvalidHandle) { err = errnoErr(e1) @@ -3944,7 +3944,7 @@ func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineN } func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3952,7 +3952,7 @@ func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUI } func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet)) if r1 == 0 { err = errnoErr(e1) } @@ -3960,7 +3960,7 @@ func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { } func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) if r1 == 0 { err = errnoErr(e1) } @@ -3968,7 +3968,7 @@ func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiEnumDeviceInfo.Addr(), uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3976,7 +3976,7 @@ func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfo } func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3984,7 +3984,7 @@ func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, d } func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) handle = DevInfo(r0) if handle == DevInfo(InvalidHandle) { err = errnoErr(e1) @@ -3993,7 +3993,7 @@ func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintp } func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4001,7 +4001,7 @@ func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData))) if r1 == 0 { err = errnoErr(e1) } @@ -4009,7 +4009,7 @@ func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailDa } func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) if r1 == 0 { err = errnoErr(e1) } @@ -4017,7 +4017,7 @@ func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInf } func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4025,7 +4025,7 @@ func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDevicePropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -4033,7 +4033,7 @@ func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4041,7 +4041,7 @@ func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *Dev } func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4049,7 +4049,7 @@ func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4057,7 +4057,7 @@ func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4065,7 +4065,7 @@ func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) + r0, _, e1 := syscall.SyscallN(procSetupDiOpenDevRegKey.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) key = Handle(r0) if key == InvalidHandle { err = errnoErr(e1) @@ -4074,7 +4074,7 @@ func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Sc } func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize)) if r1 == 0 { err = errnoErr(e1) } @@ -4082,7 +4082,7 @@ func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) if r1 == 0 { err = errnoErr(e1) } @@ -4090,7 +4090,7 @@ func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInf } func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize)) if r1 == 0 { err = errnoErr(e1) } @@ -4098,7 +4098,7 @@ func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *Dev } func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4106,7 +4106,7 @@ func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4114,7 +4114,7 @@ func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupUninstallOEMInfW.Addr(), uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -4122,7 +4122,7 @@ func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (er } func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + r0, _, e1 := syscall.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc))) argv = (**uint16)(unsafe.Pointer(r0)) if argv == nil { err = errnoErr(e1) @@ -4131,7 +4131,7 @@ func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { } func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + r0, _, _ := syscall.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -4139,7 +4139,7 @@ func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **u } func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + r1, _, e1 := syscall.SyscallN(procShellExecuteW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) if r1 <= 32 { err = errnoErr(e1) } @@ -4147,12 +4147,12 @@ func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *ui } func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { - syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + syscall.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param)) return } func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + r1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param)) if r1 == 0 { err = errnoErr(e1) } @@ -4160,7 +4160,7 @@ func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { } func ExitWindowsEx(flags uint32, reason uint32) (err error) { - r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) + r1, _, e1 := syscall.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason)) if r1 == 0 { err = errnoErr(e1) } @@ -4168,7 +4168,7 @@ func ExitWindowsEx(flags uint32, reason uint32) (err error) { } func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { - r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + r0, _, e1 := syscall.SyscallN(procGetClassNameW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) copied = int32(r0) if copied == 0 { err = errnoErr(e1) @@ -4177,19 +4177,19 @@ func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, e } func GetDesktopWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetDesktopWindow.Addr()) hwnd = HWND(r0) return } func GetForegroundWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr()) hwnd = HWND(r0) return } func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + r1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -4197,19 +4197,19 @@ func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { } func GetKeyboardLayout(tid uint32) (hkl Handle) { - r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) + r0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid)) hkl = Handle(r0) return } func GetShellWindow() (shellWindow HWND) { - r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetShellWindow.Addr()) shellWindow = HWND(r0) return } func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + r0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid))) tid = uint32(r0) if tid == 0 { err = errnoErr(e1) @@ -4218,25 +4218,25 @@ func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { } func IsWindow(hwnd HWND) (isWindow bool) { - r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindow.Addr(), uintptr(hwnd)) isWindow = r0 != 0 return } func IsWindowUnicode(hwnd HWND) (isUnicode bool) { - r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd)) isUnicode = r0 != 0 return } func IsWindowVisible(hwnd HWND) (isVisible bool) { - r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd)) isVisible = r0 != 0 return } func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) + r0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags)) hkl = Handle(r0) if hkl == 0 { err = errnoErr(e1) @@ -4245,7 +4245,7 @@ func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { } func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + r0, _, e1 := syscall.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype)) ret = int32(r0) if ret == 0 { err = errnoErr(e1) @@ -4254,13 +4254,13 @@ func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret i } func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { - r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) + r0, _, _ := syscall.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl)) ret = int32(r0) return } func UnloadKeyboardLayout(hkl Handle) (err error) { - r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) + r1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl)) if r1 == 0 { err = errnoErr(e1) } @@ -4272,7 +4272,7 @@ func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) ( if inheritExisting { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procCreateEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -4280,7 +4280,7 @@ func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) ( } func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block))) if r1 == 0 { err = errnoErr(e1) } @@ -4288,7 +4288,7 @@ func DestroyEnvironmentBlock(block *uint16) (err error) { } func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + r1, _, e1 := syscall.SyscallN(procGetUserProfileDirectoryW.Addr(), uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) if r1 == 0 { err = errnoErr(e1) } @@ -4305,7 +4305,7 @@ func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32 } func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) + r0, _, e1 := syscall.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle))) bufSize = uint32(r0) if bufSize == 0 { err = errnoErr(e1) @@ -4323,7 +4323,7 @@ func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer u } func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer)) if r1 == 0 { err = errnoErr(e1) } @@ -4340,7 +4340,7 @@ func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer } func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4348,7 +4348,7 @@ func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPoint } func TimeBeginPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) + r1, _, e1 := syscall.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period)) if r1 != 0 { err = errnoErr(e1) } @@ -4356,7 +4356,7 @@ func TimeBeginPeriod(period uint32) (err error) { } func TimeEndPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) + r1, _, e1 := syscall.SyscallN(proctimeEndPeriod.Addr(), uintptr(period)) if r1 != 0 { err = errnoErr(e1) } @@ -4364,7 +4364,7 @@ func TimeEndPeriod(period uint32) (err error) { } func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { - r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + r0, _, _ := syscall.SyscallN(procWinVerifyTrustEx.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -4372,12 +4372,12 @@ func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) } func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + syscall.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo))) return } func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result))) if r0 != 0 { sockerr = syscall.Errno(r0) } @@ -4385,7 +4385,7 @@ func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, resul } func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + r1, _, e1 := syscall.SyscallN(procWSACleanup.Addr()) if r1 == socket_error { err = errnoErr(e1) } @@ -4393,7 +4393,7 @@ func WSACleanup() (err error) { } func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { - r1, _, e1 := syscall.Syscall(procWSADuplicateSocketW.Addr(), 3, uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) if r1 != 0 { err = errnoErr(e1) } @@ -4401,7 +4401,7 @@ func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err } func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + r0, _, e1 := syscall.SyscallN(procWSAEnumProtocolsW.Addr(), uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) n = int32(r0) if n == -1 { err = errnoErr(e1) @@ -4414,7 +4414,7 @@ func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, f if wait { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + r1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags))) if r1 == 0 { err = errnoErr(e1) } @@ -4422,7 +4422,7 @@ func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, f } func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + r1, _, e1 := syscall.SyscallN(procWSAIoctl.Addr(), uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == socket_error { err = errnoErr(e1) } @@ -4430,7 +4430,7 @@ func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbo } func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceBeginW.Addr(), uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) if r1 == socket_error { err = errnoErr(e1) } @@ -4438,7 +4438,7 @@ func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) } func WSALookupServiceEnd(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle)) if r1 == socket_error { err = errnoErr(e1) } @@ -4446,7 +4446,7 @@ func WSALookupServiceEnd(handle Handle) (err error) { } func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { - r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet))) if r1 == socket_error { err = errnoErr(e1) } @@ -4454,7 +4454,7 @@ func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WS } func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4462,7 +4462,7 @@ func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32 } func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + r1, _, e1 := syscall.SyscallN(procWSARecvFrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4470,7 +4470,7 @@ func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *ui } func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4478,7 +4478,7 @@ func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, } func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + r1, _, e1 := syscall.SyscallN(procWSASendTo.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4486,7 +4486,7 @@ func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32 } func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procWSASocketW.Addr(), uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -4495,7 +4495,7 @@ func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, } func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + r0, _, _ := syscall.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data))) if r0 != 0 { sockerr = syscall.Errno(r0) } @@ -4503,7 +4503,7 @@ func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { } func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + r1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4511,7 +4511,7 @@ func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { } func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + r1, _, e1 := syscall.SyscallN(procclosesocket.Addr(), uintptr(s)) if r1 == socket_error { err = errnoErr(e1) } @@ -4519,7 +4519,7 @@ func Closesocket(s Handle) (err error) { } func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + r1, _, e1 := syscall.SyscallN(procconnect.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4536,7 +4536,7 @@ func GetHostByName(name string) (h *Hostent, err error) { } func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name))) h = (*Hostent)(unsafe.Pointer(r0)) if h == nil { err = errnoErr(e1) @@ -4545,7 +4545,7 @@ func _GetHostByName(name *byte) (h *Hostent, err error) { } func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4562,7 +4562,7 @@ func GetProtoByName(name string) (p *Protoent, err error) { } func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name))) p = (*Protoent)(unsafe.Pointer(r0)) if p == nil { err = errnoErr(e1) @@ -4585,7 +4585,7 @@ func GetServByName(name string, proto string) (s *Servent, err error) { } func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + r0, _, e1 := syscall.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto))) s = (*Servent)(unsafe.Pointer(r0)) if s == nil { err = errnoErr(e1) @@ -4594,7 +4594,7 @@ func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { } func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4602,7 +4602,7 @@ func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { } func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + r1, _, e1 := syscall.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4610,7 +4610,7 @@ func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int3 } func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + r1, _, e1 := syscall.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog)) if r1 == socket_error { err = errnoErr(e1) } @@ -4618,7 +4618,7 @@ func listen(s Handle, backlog int32) (err error) { } func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + r0, _, _ := syscall.SyscallN(procntohs.Addr(), uintptr(netshort)) u = uint16(r0) return } @@ -4628,7 +4628,7 @@ func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen * if len(buf) > 0 { _p0 = &buf[0] } - r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall.SyscallN(procrecvfrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int32(r0) if n == -1 { err = errnoErr(e1) @@ -4641,7 +4641,7 @@ func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) ( if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + r1, _, e1 := syscall.SyscallN(procsendto.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4649,7 +4649,7 @@ func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) ( } func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + r1, _, e1 := syscall.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4657,7 +4657,7 @@ func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32 } func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + r1, _, e1 := syscall.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how)) if r1 == socket_error { err = errnoErr(e1) } @@ -4665,7 +4665,7 @@ func shutdown(s Handle, how int32) (err error) { } func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + r0, _, e1 := syscall.SyscallN(procsocket.Addr(), uintptr(af), uintptr(typ), uintptr(protocol)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -4674,7 +4674,7 @@ func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { } func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) + r1, _, e1 := syscall.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count))) if r1 == 0 { err = errnoErr(e1) } @@ -4682,12 +4682,12 @@ func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessio } func WTSFreeMemory(ptr uintptr) { - syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) + syscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr)) return } func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + r1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } diff --git a/vendor/helm.sh/helm/v3/pkg/chartutil/jsonschema.go b/vendor/helm.sh/helm/v3/pkg/chartutil/jsonschema.go index 77e90b10a6865..d712316c59cc5 100644 --- a/vendor/helm.sh/helm/v3/pkg/chartutil/jsonschema.go +++ b/vendor/helm.sh/helm/v3/pkg/chartutil/jsonschema.go @@ -18,15 +18,57 @@ package chartutil import ( "bytes" + "crypto/tls" "errors" "fmt" "strings" + "time" "github.com/santhosh-tekuri/jsonschema/v6" + "net/http" + + "helm.sh/helm/v3/internal/version" "helm.sh/helm/v3/pkg/chart" ) +// HTTPURLLoader implements a loader for HTTP/HTTPS URLs +type HTTPURLLoader http.Client + +func (l *HTTPURLLoader) Load(urlStr string) (any, error) { + client := (*http.Client)(l) + + req, err := http.NewRequest(http.MethodGet, urlStr, nil) + if err != nil { + return nil, fmt.Errorf("failed to create HTTP request for %s: %w", urlStr, err) + } + req.Header.Set("User-Agent", version.GetUserAgent()) + + resp, err := client.Do(req) + if err != nil { + return nil, fmt.Errorf("HTTP request failed for %s: %w", urlStr, err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("HTTP request to %s returned status %d (%s)", urlStr, resp.StatusCode, http.StatusText(resp.StatusCode)) + } + + return jsonschema.UnmarshalJSON(resp.Body) +} + +// newHTTPURLLoader creates a HTTP URL loader with proxy support. +func newHTTPURLLoader() *HTTPURLLoader { + httpLoader := HTTPURLLoader(http.Client{ + Timeout: 15 * time.Second, + Transport: &http.Transport{ + Proxy: http.ProxyFromEnvironment, + TLSClientConfig: &tls.Config{}, + }, + }) + return &httpLoader +} + // ValidateAgainstSchema checks that values does not violate the structure laid out in schema func ValidateAgainstSchema(chrt *chart.Chart, values map[string]interface{}) error { var sb strings.Builder @@ -68,7 +110,15 @@ func ValidateAgainstSingleSchema(values Values, schemaJSON []byte) (reterr error return err } + // Configure compiler with loaders for different URL schemes + loader := jsonschema.SchemeURLLoader{ + "file": jsonschema.FileLoader{}, + "http": newHTTPURLLoader(), + "https": newHTTPURLLoader(), + } + compiler := jsonschema.NewCompiler() + compiler.UseLoader(loader) err = compiler.AddResource("file:///values.schema.json", schema) if err != nil { return err diff --git a/vendor/modules.txt b/vendor/modules.txt index 9eef0af060fe0..3c8bbc50b7eff 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -248,7 +248,7 @@ github.com/chai2010/gettext-go github.com/chai2010/gettext-go/mo github.com/chai2010/gettext-go/plural github.com/chai2010/gettext-go/po -# github.com/cilium/charts v0.0.0-20250815135331-8443b5068217 +# github.com/cilium/charts v0.0.0-20250904103431-47fb6519b6bb ## explicit; go 1.17 github.com/cilium/charts # github.com/cilium/coverbee v0.3.3-0.20240723084546-664438750fce @@ -426,7 +426,7 @@ github.com/dgryski/go-farm # github.com/distribution/reference v0.6.0 ## explicit; go 1.20 github.com/distribution/reference -# github.com/docker/docker v28.3.3+incompatible +# github.com/docker/docker v28.4.0+incompatible ## explicit github.com/docker/docker/api github.com/docker/docker/api/types @@ -450,8 +450,6 @@ github.com/docker/docker/api/types/time github.com/docker/docker/api/types/versions github.com/docker/docker/api/types/volume github.com/docker/docker/client -github.com/docker/docker/internal/lazyregexp -github.com/docker/docker/internal/multierror github.com/docker/docker/pkg/homedir github.com/docker/docker/pkg/ioutils github.com/docker/docker/pkg/plugingetter @@ -951,7 +949,7 @@ github.com/golang/protobuf/proto # github.com/google/btree v1.1.3 ## explicit; go 1.18 github.com/google/btree -# github.com/google/cel-go v0.26.0 +# github.com/google/cel-go v0.26.1 ## explicit; go 1.22.0 github.com/google/cel-go/cel github.com/google/cel-go/checker @@ -1322,7 +1320,7 @@ github.com/pelletier/go-toml/v2/unstable # github.com/peterbourgon/diskv v2.0.1+incompatible ## explicit github.com/peterbourgon/diskv -# github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 +# github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe ## explicit; go 1.17 github.com/petermattis/goid # github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c @@ -1346,7 +1344,7 @@ github.com/pmezard/go-difflib/difflib # github.com/prometheus-community/pro-bing v0.7.0 ## explicit; go 1.23.0 github.com/prometheus-community/pro-bing -# github.com/prometheus/client_golang v1.23.0 +# github.com/prometheus/client_golang v1.23.2 ## explicit; go 1.23.0 github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header @@ -1361,7 +1359,7 @@ github.com/prometheus/client_golang/prometheus/testutil/promlint/validations # github.com/prometheus/client_model v0.6.2 ## explicit; go 1.22.0 github.com/prometheus/client_model/go -# github.com/prometheus/common v0.65.0 +# github.com/prometheus/common v0.66.1 ## explicit; go 1.23.0 github.com/prometheus/common/expfmt github.com/prometheus/common/model @@ -1387,7 +1385,7 @@ github.com/sagikazarmark/locafero ## explicit; go 1.21 github.com/santhosh-tekuri/jsonschema/v6 github.com/santhosh-tekuri/jsonschema/v6/kind -# github.com/sasha-s/go-deadlock v0.3.5 +# github.com/sasha-s/go-deadlock v0.3.6 ## explicit github.com/sasha-s/go-deadlock # github.com/sergi/go-diff v1.3.1 @@ -1414,11 +1412,11 @@ github.com/spf13/afero/mem ## explicit; go 1.21.0 github.com/spf13/cast github.com/spf13/cast/internal -# github.com/spf13/cobra v1.9.1 +# github.com/spf13/cobra v1.10.1 ## explicit; go 1.15 github.com/spf13/cobra github.com/spf13/cobra/doc -# github.com/spf13/pflag v1.0.7 +# github.com/spf13/pflag v1.0.10 ## explicit; go 1.12 github.com/spf13/pflag # github.com/spf13/viper v1.20.1 @@ -1677,8 +1675,8 @@ golang.org/x/exp/slices golang.org/x/exp/slog golang.org/x/exp/slog/internal golang.org/x/exp/slog/internal/buffer -# golang.org/x/mod v0.27.0 -## explicit; go 1.23.0 +# golang.org/x/mod v0.28.0 +## explicit; go 1.24.0 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/modfile golang.org/x/mod/module @@ -1708,26 +1706,26 @@ golang.org/x/net/netutil golang.org/x/net/proxy golang.org/x/net/trace golang.org/x/net/websocket -# golang.org/x/oauth2 v0.30.0 -## explicit; go 1.23.0 +# golang.org/x/oauth2 v0.31.0 +## explicit; go 1.24.0 golang.org/x/oauth2 golang.org/x/oauth2/internal -# golang.org/x/sync v0.16.0 -## explicit; go 1.23.0 +# golang.org/x/sync v0.17.0 +## explicit; go 1.24.0 golang.org/x/sync/errgroup golang.org/x/sync/semaphore golang.org/x/sync/singleflight -# golang.org/x/sys v0.35.0 -## explicit; go 1.23.0 +# golang.org/x/sys v0.36.0 +## explicit; go 1.24.0 golang.org/x/sys/cpu golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/term v0.34.0 -## explicit; go 1.23.0 +# golang.org/x/term v0.35.0 +## explicit; go 1.24.0 golang.org/x/term -# golang.org/x/text v0.28.0 -## explicit; go 1.23.0 +# golang.org/x/text v0.29.0 +## explicit; go 1.24.0 golang.org/x/text/cases golang.org/x/text/encoding golang.org/x/text/encoding/charmap @@ -1757,8 +1755,8 @@ golang.org/x/text/secure/bidirule golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm -# golang.org/x/time v0.12.0 -## explicit; go 1.23.0 +# golang.org/x/time v0.13.0 +## explicit; go 1.24.0 golang.org/x/time/rate # golang.org/x/tools v0.36.0 ## explicit; go 1.23.0 @@ -1832,8 +1830,8 @@ gomodules.xyz/jsonpatch/v2 google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations google.golang.org/genproto/googleapis/api/expr/v1alpha1 -# google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c -## explicit; go 1.23.0 +# google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 +## explicit; go 1.24.0 google.golang.org/genproto/googleapis/rpc/status # google.golang.org/grpc v1.75.0 ## explicit; go 1.23.0 @@ -1972,7 +1970,7 @@ gopkg.in/yaml.v2 gopkg.in/yaml.v3 # gotest.tools/v3 v3.5.0 ## explicit; go 1.17 -# helm.sh/helm/v3 v3.18.5 +# helm.sh/helm/v3 v3.18.6 ## explicit; go 1.24.0 helm.sh/helm/v3/internal/fileutil helm.sh/helm/v3/internal/resolver @@ -2874,7 +2872,7 @@ sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field sigs.k8s.io/kustomize/kyaml/yaml/merge2 sigs.k8s.io/kustomize/kyaml/yaml/schema sigs.k8s.io/kustomize/kyaml/yaml/walk -# sigs.k8s.io/mcs-api v0.1.1-0.20250610011024-38bab5ba476b +# sigs.k8s.io/mcs-api v0.3.0 ## explicit; go 1.23.0 sigs.k8s.io/mcs-api/pkg/apis/v1alpha1 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned @@ -2882,7 +2880,7 @@ sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/fake sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/scheme sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/typed/apis/v1alpha1 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/typed/apis/v1alpha1/fake -# sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257 +# sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b ## explicit; go 1.23.0 sigs.k8s.io/mcs-api/controllers # sigs.k8s.io/randfill v1.0.0 diff --git a/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceexport.go b/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceexport.go index 869b8142d4152..fb79ead9afc6d 100644 --- a/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceexport.go +++ b/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceexport.go @@ -20,6 +20,18 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +const ( + // ServiceExportPluralName is the plural name of ServiceExport + ServiceExportPluralName = "serviceexports" + // ServiceExportKindName is the kind name of ServiceExport + ServiceExportKindName = "ServiceExport" + // ServiceExportFullName is the full name of ServiceExport + ServiceExportFullName = ServiceExportPluralName + "." + GroupName +) + +// ServiceExportVersionedName is the versioned name of ServiceExport +var ServiceExportVersionedName = ServiceExportKindName + "/" + GroupVersion.Version + // +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:shortName={svcex,svcexport} @@ -66,6 +78,8 @@ const ( // service export has been recognized as valid by an mcs-controller. // This will be false if the service is found to be unexportable // (ExternalName, not found). + // + // Deprecated: use ServiceExportConditionValid instead ServiceExportValid = "Valid" // ServiceExportConflict means that there is a conflict between two // exports for the same Service. When "True", the condition message @@ -73,6 +87,8 @@ const ( // field(s) under contention, which cluster won, and why. // Users should not expect detailed per-cluster information in the // conflict message. + // + // Deprecated: use ServiceExportConditionConflict instead ServiceExportConflict = "Conflict" ) @@ -88,3 +104,168 @@ type ServiceExportList struct { // +listType=set Items []ServiceExport `json:"items"` } + +// ServiceExportConditionType is a type of condition associated with a +// ServiceExport. This type should be used with the ServiceExportStatus.Conditions +// field. +type ServiceExportConditionType string + +// ServiceExportConditionReason defines the set of reasons that explain why a +// particular ServiceExport condition type has been raised. +type ServiceExportConditionReason string + +// NewServiceExportCondition creates a new ServiceExport condition +func NewServiceExportCondition(t ServiceExportConditionType, status metav1.ConditionStatus, reason ServiceExportConditionReason, msg string) metav1.Condition { + return metav1.Condition{ + Type: string(t), + Status: status, + Reason: string(reason), + Message: msg, + LastTransitionTime: metav1.Now(), + } +} + +const ( + // ServiceExportConditionValid is true when the Service Export is valid. + // This does not indicate whether or not the configuration has been exported + // to a control plane / data plane. + // + // + // Possible reasons for this condition to be true are: + // + // * "Valid" + // + // Possible reasons for this condition to be False are: + // + // * "NoService" + // * "InvalidServiceType" + // + // Controllers may raise this condition with other reasons, + // but should prefer to use the reasons listed above to improve + // interoperability. + ServiceExportConditionValid ServiceExportConditionType = "Valid" + + // ServiceExportReasonValid is used with the "Valid" condition when the + // condition is True. + ServiceExportReasonValid ServiceExportConditionReason = "Valid" + + // ServiceExportReasonNoService is used with the "Valid" condition when + // the associated Service does not exist. + ServiceExportReasonNoService ServiceExportConditionReason = "NoService" + + // ServiceExportReasonInvalidServiceType is used with the "Valid" + // condition when the associated Service has an invalid type + // (per the KEP at least the ExternalName type). + ServiceExportReasonInvalidServiceType ServiceExportConditionReason = "InvalidServiceType" +) + +const ( + // ServiceExportConditionReady is true when the service is exported + // to some control plane or data plane or ready to be pulled. + // + // + // Possible reasons for this condition to be true are: + // + // * "Exported" + // * "Ready" + // + // Possible reasons for this condition to be False are: + // + // * "Pending" + // * "Failed" + // + // Possible reasons for this condition to be Unknown are: + // + // * "Pending" + // + // Controllers may raise this condition with other reasons, + // but should prefer to use the reasons listed above to improve + // interoperability. + ServiceExportConditionReady ServiceExportConditionType = "Ready" + + // ServiceExportReasonExported is used with the "Ready" condition + // when the condition is True and the service has been exported. + // This would be used when an implementation exports a service + // to a control plane or data plane. + ServiceExportReasonExported ServiceExportConditionReason = "Exported" + + // ServiceExportReasonReady is used with the "Ready" condition + // when the condition is True and the service has been exported. + // This would typically be used in an implementation that uses a + // pull model. + ServiceExportReasonReady ServiceExportConditionReason = "Ready" + + // ServiceExportReasonPending is used with the "Ready" condition + // when the service is in the process of being exported. + ServiceExportReasonPending ServiceExportConditionReason = "Pending" + + // ServiceExportReasonFailed is used with the "Ready" condition + // when the service failed to be exported with the message providing + // the specific reason. + ServiceExportReasonFailed ServiceExportConditionReason = "Failed" +) + +const ( + // ServiceExportConditionConflict indicates that some property of an + // exported service has conflicting values across the constituent + // ServiceExports. This condition must be at least raised on the + // conflicting ServiceExport and is recommended to be raised on all on + // all the constituent ServiceExports if feasible. + // + // + // Possible reasons for this condition to be true are: + // + // * "PortConflict" + // * "TypeConflict" + // * "SessionAffinityConflict" + // * "SessionAffinityConfigConflict" + // * "AnnotationsConflict" + // * "LabelsConflict" + // + // When multiple conflicts occurs the above reasons may be combined + // using commas. + // + // Possible reasons for this condition to be False are: + // + // * "NoConflicts" + // + // Controllers may raise this condition with other reasons, + // but should prefer to use the reasons listed above to improve + // interoperability. + ServiceExportConditionConflict ServiceExportConditionType = "Conflict" + + // ServiceExportReasonPortConflict is used with the "Conflict" condition + // when the exported service has a conflict related to port configuration. + // This includes when ports on resulting imported services would have + // duplicated names (including unnamed/empty name) or duplicated + // port/protocol pairs. + ServiceExportReasonPortConflict ServiceExportConditionReason = "PortConflict" + + // ServiceExportReasonTypeConflict is used with the "Conflict" condition + // when the exported service has a conflict related to the service type + // (eg headless vs non-headless). + ServiceExportReasonTypeConflict ServiceExportConditionReason = "TypeConflict" + + // ServiceExportReasonSessionAffinityConflict is used with the "Conflict" + // condition when the exported service has a conflict related to session affinity. + ServiceExportReasonSessionAffinityConflict ServiceExportConditionReason = "SessionAffinityConflict" + + // ServiceExportReasonSessionAffinityConfigConflict is used with the + // "Conflict" condition when the exported service has a conflict related + // to session affinity config. + ServiceExportReasonSessionAffinityConfigConflict ServiceExportConditionReason = "SessionAffinityConfigConflict" + + // ServiceExportReasonLabelsConflict is used with the "Conflict" + // condition when the ServiceExport has a conflict related to exported + // labels. + ServiceExportReasonLabelsConflict ServiceExportConditionReason = "LabelsConflict" + + // ServiceExportReasonAnnotationsConflict is used with the "Conflict" + // condition when the ServiceExport has a conflict related to exported + // annotations. + ServiceExportReasonAnnotationsConflict ServiceExportConditionReason = "AnnotationsConflict" + + // ServiceExportReasonNoConflicts is used with the "Conflict" condition + // when the condition is False. + ServiceExportReasonNoConflicts ServiceExportConditionReason = "NoConflicts" +) diff --git a/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceimport.go b/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceimport.go index d6b908ddd4e00..8810a632d1f5b 100644 --- a/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceimport.go +++ b/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/serviceimport.go @@ -21,6 +21,18 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +const ( + // ServiceImportPluralName is the plural name of ServiceImport + ServiceImportPluralName = "serviceimports" + // ServiceImportKindName is the kind name of ServiceImport + ServiceImportKindName = "ServiceImport" + // ServiceImportFullName is the full name of ServiceImport + ServiceImportFullName = ServiceImportPluralName + "." + GroupName +) + +// ServiceImportVersionedName is the versioned name of ServiceImport +var ServiceImportVersionedName = ServiceImportKindName + "/" + GroupVersion.Version + // +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:shortName={svcim,svcimport} @@ -120,6 +132,12 @@ type ServiceImportStatus struct { // +listType=map // +listMapKey=cluster Clusters []ClusterStatus `json:"clusters,omitempty"` + // +optional + // +patchStrategy=merge + // +patchMergeKey=type + // +listType=map + // +listMapKey=type + Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` } // ClusterStatus contains service configuration mapped to a specific source cluster @@ -141,3 +159,59 @@ type ServiceImportList struct { // +listType=set Items []ServiceImport `json:"items"` } + +// ServiceImportConditionType is a type of condition associated with a +// ServiceImport. This type should be used with the ServiceImportStatus.Conditions +// field. +type ServiceImportConditionType string + +// ServiceImportConditionReason defines the set of reasons that explain why a +// particular ServiceImport condition type has been raised. +type ServiceImportConditionReason string + +// NewServiceImportCondition creates a new ServiceImport condition +func NewServiceImportCondition(t ServiceImportConditionType, status metav1.ConditionStatus, reason ServiceImportConditionReason, msg string) metav1.Condition { + return metav1.Condition{ + Type: string(t), + Status: status, + Reason: string(reason), + Message: msg, + LastTransitionTime: metav1.Now(), + } +} + +const ( + // ServiceImportConditionReady is true when the Service Import is ready. + // + // + // Possible reasons for this condition to be true are: + // + // * "Ready" + // + // Possible reasons for this condition to be False are: + // + // * "Pending" + // * "IPFamilyNotSupported" + // + // Possible reasons for this condition to be Unknown are: + // + // * "Pending" + // + // Controllers may raise this condition with other reasons, + // but should prefer to use the reasons listed above to improve + // interoperability. + ServiceImportConditionReady ServiceImportConditionType = "Ready" + + // ServiceImportReasonReady is used with the "Ready" condition when the + // condition is True. + ServiceImportReasonReady ServiceImportConditionReason = "Ready" + + // ServiceImportReasonPending is used with the "Ready" condition when + // the ServiceImport is in the process of being created or updated. + ServiceImportReasonPending ServiceImportConditionReason = "Pending" + + // ServiceImportReasonIPFamilyNotSupported is used with the "Ready" + // condition when the service can not be imported due to IP families + // mismatch. + ServiceImportReasonIPFamilyNotSupported ServiceImportConditionReason = "IPFamilyNotSupported" +) From b02aaad70b9aba2d6158f34393bdba3803a63753 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Wed, 17 Sep 2025 10:56:22 +0200 Subject: [PATCH 064/176] hubble: allow overrrides if building from outside the tree After commit 9695b5979772 ("Support triggering Makefiles from outside the tree"), the overrides to the hubble build are no longer considered if hubble is built from outside the tree. Fix that by sourcing Makefile.override from $(CURR_DIR), like other includes Makefiles. Fixes: 9695b5979772 ("Support triggering Makefiles from outside the tree") Signed-off-by: Tobias Klauser --- hubble/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hubble/Makefile b/hubble/Makefile index 4652745cd46e7..45cd088066467 100644 --- a/hubble/Makefile +++ b/hubble/Makefile @@ -7,7 +7,7 @@ CURR_DIR := $(shell dirname "$(realpath $(lastword $(MAKEFILE_LIST)))") include $(CURR_DIR)/../Makefile.defs # Add the ability to override variables --include Makefile.override +-include $(CURR_DIR)/Makefile.override TARGET := hubble From a711b8b7b2123bc8f6bd90633af326bd3e597121 Mon Sep 17 00:00:00 2001 From: Joe Stringer Date: Mon, 15 Sep 2025 07:48:21 -0700 Subject: [PATCH 065/176] docs: Clarify list of capabilities in threat model This list is not intended to be comprehensive, but some of these other Linux capabilities also introduce some of the STRIDE threats described in the section below. Add them to clarify how these capabilities are treated in the threat model. Signed-off-by: Joe Stringer --- Documentation/security/threat-model.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/security/threat-model.rst b/Documentation/security/threat-model.rst index 7a134ba7e6a82..72111d154ea03 100644 --- a/Documentation/security/threat-model.rst +++ b/Documentation/security/threat-model.rst @@ -187,16 +187,15 @@ Recommended Controls Limited-privilege Host Attacker ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -In this scenario, the attacker is someone with the ability to run -arbitrary code with direct access to the host PID or network namespace -(or both), but without "root" privileges that would allow them to -disable Cilium components or undermine the eBPF and other kernel state -Cilium relies on. +In this scenario, the attacker is someone with the ability to run arbitrary +code with direct access to the host PID or network namespace (or both), but +without "root"-equivalent privileges that would allow them to disable Cilium +components or undermine the eBPF and other kernel state Cilium relies on. This level of access could exist for a variety of reasons, including: -- Pods or other containers running in the host PID or network - namespace, but not with "root" privileges. This includes +- Pods or other containers running in the host PID or network namespace, + but without "root" privileges or capabilities. This includes ``hostNetwork: true`` and ``hostPID: true`` containers. - Non-"root" SSH or other console access to a node. - A containerized workload that has "escaped" the container namespace @@ -303,7 +302,8 @@ the local host. This access could exist for several reasons, including: - A containerized workload that has escaped the container namespace as a privileged user. - Pods running with ``privileged: true`` or other significant - capabilities like ``CAP_SYS_ADMIN`` or ``CAP_BPF``. + capabilities like ``CAP_BPF``, ``CAP_NET_ADMIN``, ``CAP_NET_RAW``, or + ``CAP_SYS_ADMIN``. .. image:: images/cilium_threat_model_root.png From 8cb80a65ac125d20ca9a06e32962222ac98f7663 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 09:07:59 +0000 Subject: [PATCH 066/176] chore(deps): update all lvh-images main Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/actions/e2e/configs.yaml | 62 +++++++++---------- .github/actions/e2e/ipsec_configs.yaml | 16 ++--- .github/actions/ginkgo/main-k8s-versions.yaml | 4 +- .../workflows/tests-datapath-verifier.yaml | 12 ++-- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/.github/actions/e2e/configs.yaml b/.github/actions/e2e/configs.yaml index ac9cf3117d788..fa9913ede83fa 100644 --- a/.github/actions/e2e/configs.yaml +++ b/.github/actions/e2e/configs.yaml @@ -8,7 +8,7 @@ misc: 'bpfClockProbe=false,cni.uninstall=false,tls.readSecretsOnlyFromSecretsNamespace=false,tls.secretSync.enabled=false' - name: '2' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -16,7 +16,7 @@ misc: 'bpfClockProbe=false,cni.uninstall=false,tls.readSecretsOnlyFromSecretsNamespace=false,tls.secretSync.enabled=false' - name: '3' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -24,7 +24,7 @@ kvstore: 'true' - name: '4' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -36,7 +36,7 @@ ingress-controller: 'true' - name: '5' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250812.093650' + kernel: '5.15-20250915.013221' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -49,7 +49,7 @@ ingress-controller: 'true' - name: '6' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.1-20250812.093650' + kernel: '6.1-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -63,7 +63,7 @@ bgp-control-plane: 'true' - name: '7' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -78,7 +78,7 @@ misc: 'bpfClockProbe=false,cni.uninstall=false,tls.secretsBackend=k8s,tls.secretSync.enabled=true' - name: '8' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'geneve' @@ -89,7 +89,7 @@ skip-include-conn-disrupt-test-ns-traffic: 'true' - name: '9' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -103,7 +103,7 @@ ingress-controller: 'true' - name: '10' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250812.093650' + kernel: '5.15-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -116,7 +116,7 @@ kvstore: 'true' - name: '11' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.1-20250812.093650' + kernel: '6.1-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -132,7 +132,7 @@ node-local-dns: 'true' - name: '12' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -157,7 +157,7 @@ # explains why 5.4 might cause north-south-loadbalancing tests to # fail. # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250812.093650' + kernel: '5.15-20250915.013221' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -169,7 +169,7 @@ ingress-controller: 'true' - name: '15' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -181,7 +181,7 @@ ciliumendpointslice: 'true' - name: '16' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250812.093650' + kernel: '5.15-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -195,7 +195,7 @@ ingress-controller: 'true' - name: '17' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -206,7 +206,7 @@ ingress-controller: 'true' - name: '18' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit-l2,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -217,7 +217,7 @@ ingress-controller: 'true' - name: '19' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit' kube-proxy: 'none' kpr: 'true' @@ -228,7 +228,7 @@ kvstore: 'true' - name: '20' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit-l2' kube-proxy: 'none' kpr: 'true' @@ -238,7 +238,7 @@ ingress-controller: 'true' - name: '21' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit' kube-proxy: 'none' kpr: 'true' @@ -248,7 +248,7 @@ ingress-controller: 'true' - name: '22' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit-l2' kube-proxy: 'none' kpr: 'true' @@ -258,7 +258,7 @@ ingress-controller: 'true' - name: '23' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit' kube-proxy: 'none' kpr: 'true' @@ -270,7 +270,7 @@ host-fw: 'true' - name: '24' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -283,7 +283,7 @@ ingress-controller: 'true' - name: '25' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' misc: 'bpf.datapathMode=netkit-l2,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -296,7 +296,7 @@ ingress-controller: 'true' - name: '26' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.6-20250812.093650' + kernel: '6.6-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -307,7 +307,7 @@ ingress-controller: 'true' - name: '27' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.6-20250812.093650' + kernel: '6.6-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -318,7 +318,7 @@ ingress-controller: 'true' - name: '28' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.6-20250812.093650' + kernel: '6.6-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -330,7 +330,7 @@ ingress-controller: 'true' - name: '29' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -343,7 +343,7 @@ skip-upgrade: 'true' - name: '30' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -354,7 +354,7 @@ ingress-controller: 'true' - name: '31' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -366,7 +366,7 @@ ingress-controller: 'true' - name: '32' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250812.093650' + kernel: '5.15-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -378,7 +378,7 @@ skip-upgrade: 'true' - name: '33' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'iptables' kpr: 'false' ipv6: 'true' diff --git a/.github/actions/e2e/ipsec_configs.yaml b/.github/actions/e2e/ipsec_configs.yaml index dffadd2402cfc..a0ca4eb8de526 100644 --- a/.github/actions/e2e/ipsec_configs.yaml +++ b/.github/actions/e2e/ipsec_configs.yaml @@ -9,7 +9,7 @@ key-two: 'rfc4106-gcm-aes' - name: 'ipsec-2' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -18,7 +18,7 @@ key-two: 'cbc-aes-sha256' - name: 'ipsec-3' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -29,7 +29,7 @@ kvstore: 'true' - name: 'ipsec-4' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'geneve' @@ -40,7 +40,7 @@ kvstore: 'true' - name: 'ipsec-5' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -51,7 +51,7 @@ key-two: 'cbc-aes-sha256' - name: 'ipsec-6' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250812.093650' + kernel: '5.10-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -65,7 +65,7 @@ key-two: 'rfc4106-gcm-aes' - name: 'ipsec-7' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250812.093650' + kernel: '5.15-20250915.013221' kube-proxy: 'iptables' kpr: 'false' tunnel: 'vxlan' @@ -76,7 +76,7 @@ skip-upgrade: 'true' - name: 'ipsec-8' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -89,7 +89,7 @@ key-two: 'rfc4106-gcm-aes' - name: 'ipsec-9' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250812.093650' + kernel: '6.12-20250915.013221' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' diff --git a/.github/actions/ginkgo/main-k8s-versions.yaml b/.github/actions/ginkgo/main-k8s-versions.yaml index 8698280be8030..126db9aa4ff70 100644 --- a/.github/actions/ginkgo/main-k8s-versions.yaml +++ b/.github/actions/ginkgo/main-k8s-versions.yaml @@ -6,7 +6,7 @@ include: # renovate: datasource=docker kube-image: "quay.io/cilium/kindest-node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a" # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: "6.12-20250812.093650" + kernel: "6.12-20250915.013221" kernel-type: "latest" - k8s-version: "1.33" @@ -30,5 +30,5 @@ include: # renovate: datasource=docker kube-image: "quay.io/cilium/kindest-node:v1.31.0@sha256:d2b2a8cd6fa282b9a4126938341a4d2924dfa96f60b1f983d519498c9cde1a99" # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: "5.10-20250812.093650" + kernel: "5.10-20250915.013221" kernel-type: "stable" diff --git a/.github/workflows/tests-datapath-verifier.yaml b/.github/workflows/tests-datapath-verifier.yaml index 2178cd3c46788..b8186e89eef28 100644 --- a/.github/workflows/tests-datapath-verifier.yaml +++ b/.github/workflows/tests-datapath-verifier.yaml @@ -90,22 +90,22 @@ jobs: - kernel: 'rhel8.6-20250812.093650' ci-kernel: '510' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '5.10-20250812.093650' + - kernel: '5.10-20250915.013221' ci-kernel: '510' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '5.15-20250812.093650' + - kernel: '5.15-20250915.013221' ci-kernel: '510' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '6.1-20250812.093650' + - kernel: '6.1-20250915.013221' ci-kernel: '61' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '6.6-20250812.093650' + - kernel: '6.6-20250915.013221' ci-kernel: '61' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '6.12-20250812.093650' + - kernel: '6.12-20250915.013221' ci-kernel: '61' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: 'bpf-next-20250812.093650' + - kernel: 'bpf-next-20250915.013221' ci-kernel: 'netnext' timeout-minutes: 60 steps: From 43a190fa6ba5a26414f176c12fdba8b4f9c3718c Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Wed, 17 Sep 2025 14:47:42 +0200 Subject: [PATCH 067/176] test/operator: fix TestUpdateUsedCIDIsReverted flakiness The TestUpdateUsedCIDIsReverted test is currently flaky, due to asserting security labels matching only once, even if they are expected to be updated in the background. Let's get this fixed by letting the check be retried via EventuallyWithT. Signed-off-by: Marco Iorio --- operator/pkg/ciliumidentity/controller_test.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/operator/pkg/ciliumidentity/controller_test.go b/operator/pkg/ciliumidentity/controller_test.go index 3ee39444a63b4..7c8755b370ea9 100644 --- a/operator/pkg/ciliumidentity/controller_test.go +++ b/operator/pkg/ciliumidentity/controller_test.go @@ -419,17 +419,13 @@ func TestUpdateUsedCIDIsReverted(t *testing.T) { require.EventuallyWithT(t, func(ct *assert.CollectT) { cids := store.List() - assert.Len(ct, cids, 1) - if len(cids) != 1 { + if !assert.Len(ct, cids, 1) { return } cid = cids[0] - if !cmp.Equal(cid.SecurityLabels, cid1.SecurityLabels) { - t.Fatalf("expected labels %v, got %v", cid.SecurityLabels, cid1.SecurityLabels) - } + assert.Equal(ct, cid1.SecurityLabels, cid.SecurityLabels) }, WaitUntilTimeout, 100*time.Millisecond) - } func TestDeleteUsedCIDIsRecreated(t *testing.T) { From d7f0d9557e8b869945b201a9d2ddf80f3fd7802a Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Wed, 17 Sep 2025 12:00:36 +0200 Subject: [PATCH 068/176] cli/clustermesh: remove leftover global services status info The support for exposing and displaying the count of global services got dropped in the blamed commit. Let's also clean up the leftover global services status info, which otherwise always displays incorrect information. Fixes: 3ab6ebf3f550 ("clustermesh: remove GlobalServiceCache in cilium-agent") Signed-off-by: Marco Iorio --- .../network/clustermesh/clustermesh.rst | 2 -- cilium-cli/clustermesh/clustermesh.go | 25 ++++++------------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/Documentation/network/clustermesh/clustermesh.rst b/Documentation/network/clustermesh/clustermesh.rst index 5706779a9acb5..050643001b587 100644 --- a/Documentation/network/clustermesh/clustermesh.rst +++ b/Documentation/network/clustermesh/clustermesh.rst @@ -231,7 +231,6 @@ then this will also wait for the LoadBalancer to be assigned an IP. - 10.168.0.89:2379 ✅ Service "clustermesh-apiserver" of type "LoadBalancer" found 🔌 Cluster Connections: - 🔀 Global services: [ min:0 / avg:0.0 / max:0 ] Connect Clusters @@ -267,7 +266,6 @@ The output will look something like this: ✅ All 2 nodes are connected to all clusters [min:1 / avg:1.0 / max:1] 🔌 Cluster Connections: - cilium-cli-ci-multicluster-2-168: 2/2 configured, 2/2 connected - 🔀 Global services: [ min:6 / avg:6.0 / max:6 ] If this step does not complete successfully, proceed to the troubleshooting section. diff --git a/cilium-cli/clustermesh/clustermesh.go b/cilium-cli/clustermesh/clustermesh.go index fb56839ed9ac0..854a36942123f 100644 --- a/cilium-cli/clustermesh/clustermesh.go +++ b/cilium-cli/clustermesh/clustermesh.go @@ -629,12 +629,11 @@ type ClusterStats struct { } type ConnectivityStatus struct { - GlobalServices StatisticalStatus `json:"global_services,omitempty"` - Connected StatisticalStatus `json:"connected,omitempty"` - Clusters map[string]*ClusterStats `json:"clusters,omitempty"` - Total int64 `json:"total,omitempty"` - NotReady int64 `json:"not_ready,omitempty"` - Errors status.ErrorCountMapMap `json:"errors,omitempty"` + Connected StatisticalStatus `json:"connected,omitempty"` + Clusters map[string]*ClusterStats `json:"clusters,omitempty"` + Total int64 `json:"total,omitempty"` + NotReady int64 `json:"not_ready,omitempty"` + Errors status.ErrorCountMapMap `json:"errors,omitempty"` } func (c *ConnectivityStatus) addError(pod, cluster string, err error) { @@ -788,10 +787,9 @@ func (k *K8sClusterMesh) determineStatusConnectivity(ctx context.Context, secret collector func(ctx context.Context, ciliumPod string) (*status.ClusterMeshAgentConnectivityStatus, error), ) (*ConnectivityStatus, error) { stats := &ConnectivityStatus{ - GlobalServices: StatisticalStatus{Min: -1}, - Connected: StatisticalStatus{Min: -1}, - Errors: status.ErrorCountMapMap{}, - Clusters: map[string]*ClusterStats{}, + Connected: StatisticalStatus{Min: -1}, + Errors: status.ErrorCountMapMap{}, + Clusters: map[string]*ClusterStats{}, } // Retrieve the remote clusters to connect to from the clustermesh configuration, @@ -831,7 +829,6 @@ func (k *K8sClusterMesh) determineStatusConnectivity(ctx context.Context, secret } if len(pods.Items) > 0 { - stats.GlobalServices.Avg /= float64(len(pods.Items)) stats.Connected.Avg /= float64(len(pods.Items)) } @@ -961,12 +958,6 @@ func (k *K8sClusterMesh) outputConnectivityStatus(agents, kvstoremesh *Connectiv k.Log("🔌 No cluster connected") } - k.Log("") - k.Log("🔀 Global services: [ min:%d / avg:%.1f / max:%d ]", - agents.GlobalServices.Min, - agents.GlobalServices.Avg, - agents.GlobalServices.Max) - k.Log("") errCount := len(agents.Errors) if kvstoremesh != nil { From 091c0c16822f2a0ee588789e3757316d8707e7e1 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Wed, 17 Sep 2025 14:28:56 +0200 Subject: [PATCH 069/176] CODEOWNERS: assign Hubble metrics documentation to @cilium/hubble-metrics This team is better suited to review changes to this part of the documentation. Signed-off-by: Tobias Klauser --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index aec3ca799cedf..60c6b9afffca8 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -434,6 +434,7 @@ Makefile* @cilium/build /Documentation/network/servicemesh/ @cilium/sig-servicemesh @cilium/docs-structure /Documentation/observability/ @cilium/sig-policy @cilium/docs-structure /Documentation/observability/hubble* @cilium/sig-hubble @cilium/docs-structure +/Documentation/observability/metrics.rst @cilium/hubble-metrics @cilium/docs-structure /Documentation/operations/performance/ @cilium/sig-datapath @cilium/docs-structure /Documentation/operations/system_requirements.rst @cilium/sig-datapath @cilium/docs-structure /Documentation/operations/troubleshooting_clustermesh.rst @cilium/sig-clustermesh @cilium/docs-structure From eb37efd67a016d8731f3a67a36156bc789a4f3ee Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Wed, 17 Sep 2025 14:29:03 +0200 Subject: [PATCH 070/176] docs: fix typo in Hubble metrics section Signed-off-by: Tobias Klauser --- Documentation/observability/metrics.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/observability/metrics.rst b/Documentation/observability/metrics.rst index 86edc2fdf5f4a..fe67bb23d6583 100644 --- a/Documentation/observability/metrics.rst +++ b/Documentation/observability/metrics.rst @@ -95,7 +95,7 @@ option is set in the ``scrape_configs`` section: Hubble Metrics ============== -While Cilium metrics allow you to monitor the state Cilium itself, +While Cilium metrics allow you to monitor the state of Cilium itself, Hubble metrics on the other hand allow you to monitor the network behavior of your Cilium-managed Kubernetes pods with respect to connectivity and security. From 87d36a65113c263f7abe2874b873f9bec761bd45 Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Thu, 4 Sep 2025 14:15:25 +0200 Subject: [PATCH 071/176] k8s/client/testutils: Fix k8s/{summary,get} for objs added vie Clientset The k8s commands maintained a "seenResources" set of known object resources and this didn't include anything added via the clientset. Fix this by looking up the known resources from the tracker. Signed-off-by: Jussi Maki --- pkg/k8s/client/testutils/fake.go | 38 ++++++----- pkg/k8s/client/testutils/object_tracker.go | 66 +++++++++++++++++++- pkg/k8s/client/testutils/script_test.go | 16 +++++ pkg/k8s/client/testutils/testdata/fake.txtar | 15 ++++- 4 files changed, 110 insertions(+), 25 deletions(-) diff --git a/pkg/k8s/client/testutils/fake.go b/pkg/k8s/client/testutils/fake.go index 4f716f7e37492..310bcf04a3348 100644 --- a/pkg/k8s/client/testutils/fake.go +++ b/pkg/k8s/client/testutils/fake.go @@ -31,7 +31,6 @@ import ( mcsapi_fake "sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/fake" k8sYaml "sigs.k8s.io/yaml" - "github.com/cilium/cilium/pkg/container" k8sclient "github.com/cilium/cilium/pkg/k8s/client" cilium_fake "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/fake" slim_clientset "github.com/cilium/cilium/pkg/k8s/slim/k8s/client/clientset/versioned" @@ -77,6 +76,8 @@ type FakeClientset struct { *APIExtFakeClientset k8sclient.ClientsetGetters + ot *statedbObjectTracker + SlimFakeClientset *SlimFakeClientset trackers []struct { @@ -156,6 +157,7 @@ func NewFakeClientsetWithVersion(log *slog.Logger, ot *statedbObjectTracker, ver client.SlimFakeClientset.Resources = resources client.CiliumFakeClientset.Resources = resources client.APIExtFakeClientset.Resources = resources + client.ot = ot otx := ot.For("*", testutils.Scheme, testutils.Decoder()) prependReactors(client.SlimFakeClientset, otx) @@ -238,9 +240,6 @@ func showGVR(gvr schema.GroupVersionResource) string { } func FakeClientCommands(fc *FakeClientset) map[string]script.Cmd { - // Use a InsertOrderedMap to keep e.g. k8s/summary output stable. - seenResources := container.NewInsertOrderedMap[schema.GroupVersionKind, schema.GroupVersionResource]() - addUpdateOrDelete := func(s *script.State, action string, files []string) error { for _, file := range files { b, err := os.ReadFile(s.Path(file)) @@ -261,7 +260,6 @@ func FakeClientCommands(fc *FakeClientset) map[string]script.Cmd { if err != nil { return fmt.Errorf("accessor: %w", err) } - seenResources.Insert(*gvk, gvr) name := objMeta.GetName() ns := objMeta.GetNamespace() @@ -373,14 +371,14 @@ func FakeClientCommands(fc *FakeClientset) map[string]script.Cmd { } var gvr schema.GroupVersionResource - for _, r := range seenResources.All() { - res := showGVR(r) + for gvrk := range fc.ot.getGVRKs() { + res := showGVR(gvrk.GroupVersionResource) if res == args[0] { - gvr = r + gvr = gvrk.GroupVersionResource break } else if strings.Contains(res, args[0]) { s.Logf("Using closest match %q\n", res) - gvr = r + gvr = gvrk.GroupVersionResource break } } @@ -435,16 +433,16 @@ func FakeClientCommands(fc *FakeClientset) map[string]script.Cmd { var gvr schema.GroupVersionResource var gvk schema.GroupVersionKind - for k, r := range seenResources.All() { - res := showGVR(r) + for gvrk := range fc.ot.getGVRKs() { + res := showGVR(gvrk.GroupVersionResource) if res == args[0] { - gvr = r - gvk = k + gvr = gvrk.GroupVersionResource + gvk = gvrk.groupVersionKind() break } else if strings.Contains(res, args[0]) { s.Logf("Using closest match %q\n", res) - gvr = r - gvk = k + gvr = gvrk.GroupVersionResource + gvk = gvrk.groupVersionKind() break } } @@ -490,11 +488,11 @@ func FakeClientCommands(fc *FakeClientset) map[string]script.Cmd { } for _, tc := range fc.trackers { fmt.Fprintf(out, "%s:\n", tc.domain) - for gvk, gvr := range seenResources.All() { - objs, err := tc.tracker.List(gvr, gvk, "") + for gvrk := range fc.ot.getGVRKs() { + objs, err := tc.tracker.List(gvrk.GroupVersionResource, gvrk.groupVersionKind(), "") if err == nil { lst, _ := meta.ExtractList(objs) - fmt.Fprintf(out, "- %s: %d\n", showGVR(gvr), len(lst)) + fmt.Fprintf(out, "- %s: %d\n", showGVR(gvrk.GroupVersionResource), len(lst)) } } } @@ -509,8 +507,8 @@ func FakeClientCommands(fc *FakeClientset) map[string]script.Cmd { func(s *script.State, args ...string) (script.WaitFunc, error) { return func(s *script.State) (stdout string, stderr string, err error) { var buf strings.Builder - for _, gvr := range seenResources.All() { - fmt.Fprintf(&buf, "%s\n", showGVR(gvr)) + for gvrk := range fc.ot.getGVRKs() { + fmt.Fprintf(&buf, "%s\n", showGVR(gvrk.GroupVersionResource)) } stdout = buf.String() return diff --git a/pkg/k8s/client/testutils/object_tracker.go b/pkg/k8s/client/testutils/object_tracker.go index 9cc490647729e..c50a75bd6df07 100644 --- a/pkg/k8s/client/testutils/object_tracker.go +++ b/pkg/k8s/client/testutils/object_tracker.go @@ -6,6 +6,7 @@ package testutils import ( "encoding/json" "fmt" + "iter" "log/slog" "reflect" "strconv" @@ -28,6 +29,7 @@ import ( "k8s.io/client-go/testing" "k8s.io/client-go/util/jsonpath" + "github.com/cilium/cilium/pkg/container" "github.com/cilium/cilium/pkg/k8s/testutils" "github.com/cilium/cilium/pkg/logging/logfields" ) @@ -72,6 +74,7 @@ func newStateDBObjectTracker(db *statedb.DB, log *slog.Logger) (*statedbObjectTr type object struct { objectId + kind string deleted bool o runtime.Object } @@ -132,6 +135,30 @@ var ( } ) +type gvrk struct { + schema.GroupVersionResource + kind string +} + +func (g gvrk) groupVersionKind() schema.GroupVersionKind { + return schema.GroupVersionKind{ + Group: g.Group, + Version: g.Version, + Kind: g.kind, + } +} + +func (s *statedbObjectTracker) getGVRKs() iter.Seq[gvrk] { + rs := container.NewInsertOrderedMap[schema.GroupVersionResource, gvrk]() + for obj := range s.tbl.All(s.db.ReadTxn()) { + rs.Insert(obj.gvr, gvrk{ + GroupVersionResource: obj.gvr, + kind: obj.kind, + }) + } + return rs.Values() +} + // For returns a object tracker for a specific use-case (domain) that is separate from others. func (s *statedbObjectTracker) For(domain string, scheme *runtime.Scheme, decoder runtime.Decoder) *statedbObjectTracker { o := *s @@ -219,7 +246,9 @@ func (s *statedbObjectTracker) Add(obj runtime.Object) error { s.tbl.Insert(wtxn, object{ objectId: newObjectId(s.domain, gvr, objMeta.GetNamespace(), objMeta.GetName()), - o: obj}) + o: obj, + kind: gvk.Kind, + }) } return nil } @@ -282,6 +311,18 @@ func (s *statedbObjectTracker) Create(gvr schema.GroupVersionResource, obj runti logfieldClientset, s.domain, logfields.Object, obj) + gvks, _, err := s.scheme.ObjectKinds(obj) + if err != nil { + s.log.Debug("Create", logfields.Error, err) + return err + } + if len(gvks) == 0 { + err = fmt.Errorf("no kind found for %+v", gvr) + s.log.Debug("Create", logfields.Error, err) + return err + } + gvk := gvks[0] + obj = obj.DeepCopyObject() newMeta, err := meta.Accessor(obj) if err != nil { @@ -296,7 +337,9 @@ func (s *statedbObjectTracker) Create(gvr schema.GroupVersionResource, obj runti newMeta.SetResourceVersion(strconv.FormatUint(version, 10)) old, found, _ := s.tbl.Insert(wtxn, object{ objectId: newObjectId(s.domain, gvr, ns, newMeta.GetName()), - o: obj}) + o: obj, + kind: gvk.Kind, + }) if found && !old.deleted { wtxn.Abort() gr := gvr.GroupResource() @@ -370,6 +413,9 @@ func (s *statedbObjectTracker) List(gvr schema.GroupVersionResource, gvk schema. } list, err := s.scheme.New(listGVK) + if err != nil { + list, err = testutils.KubernetesScheme.New(listGVK) + } if err != nil { return nil, err } @@ -446,6 +492,18 @@ func (s *statedbObjectTracker) Update(gvr schema.GroupVersionResource, obj runti } func (s *statedbObjectTracker) updateOrPatch(what string, gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.UpdateOptions) error { + gvks, _, err := s.scheme.ObjectKinds(obj) + if err != nil { + s.log.Debug(what, logfields.Error, err) + return err + } + if len(gvks) == 0 { + err = fmt.Errorf("no kind found for %+v", gvr) + s.log.Debug(what, logfields.Error, err) + return err + } + gvk := gvks[0] + obj = obj.DeepCopyObject() newMeta, err := meta.Accessor(obj) if err != nil { @@ -464,7 +522,9 @@ func (s *statedbObjectTracker) updateOrPatch(what string, gvr schema.GroupVersio logfields.Object, obj, logfieldResourceVersion, version) - oldObj, found, _ := s.tbl.Insert(wtxn, object{objectId: newObjectId(s.domain, gvr, ns, newMeta.GetName()), o: obj}) + oldObj, found, _ := s.tbl.Insert(wtxn, + object{objectId: newObjectId(s.domain, gvr, ns, newMeta.GetName()), o: obj, kind: gvk.Kind}, + ) if !found || oldObj.deleted { wtxn.Abort() gr := gvr.GroupResource() diff --git a/pkg/k8s/client/testutils/script_test.go b/pkg/k8s/client/testutils/script_test.go index b4d8f5290ec88..f4be06669f55e 100644 --- a/pkg/k8s/client/testutils/script_test.go +++ b/pkg/k8s/client/testutils/script_test.go @@ -9,14 +9,17 @@ import ( "maps" "testing" + "github.com/cilium/hive/cell" "github.com/cilium/hive/hivetest" "github.com/cilium/hive/script" "github.com/cilium/hive/script/scripttest" "github.com/spf13/pflag" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/cilium/cilium/pkg/hive" + v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" "github.com/cilium/cilium/pkg/time" ) @@ -32,6 +35,19 @@ func TestScript(t *testing.T) { func(t testing.TB, args []string) *script.Engine { h := hive.New( FakeClientCell(), + + // Also add an object through the clientset interface to check that it can be seen and retrieved + // using the k8s commands. + cell.Invoke(func(cs *FakeClientset) error { + _, err := cs.CiliumFakeClientset.CiliumV2().CiliumNodes().Create( + ctx, + &v2.CiliumNode{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + }, + metav1.CreateOptions{}, + ) + return err + }), ) flags := pflag.NewFlagSet("", pflag.ContinueOnError) h.RegisterFlags(flags) diff --git a/pkg/k8s/client/testutils/testdata/fake.txtar b/pkg/k8s/client/testutils/testdata/fake.txtar index c279a4e604cf9..f17cbe2e3810a 100644 --- a/pkg/k8s/client/testutils/testdata/fake.txtar +++ b/pkg/k8s/client/testutils/testdata/fake.txtar @@ -5,6 +5,11 @@ hive/start +# Test that we can retrieve the CiliumNode object added via [Clientset] in the invoke +# of the test runner. +k8s/get ciliumnodes test -o actual.yaml +! empty actual.yaml + # Add object for the Kubernetes and Slim clientsets k8s/add service.yaml k8s/update service.yaml @@ -60,6 +65,7 @@ ID *;/v1, Resource=services;test/echo *v1.Service false *;apiextensions.k8s.io/v1, Resource=customresourcedefinitions;/ciliumenvoyconfigs.cilium.io *v1.CustomResourceDefinition false *;cilium.io/v2, Resource=ciliumenvoyconfigs;default/cec *v2.CiliumEnvoyConfig false +*;cilium.io/v2, Resource=ciliumnodes;/test *v2.CiliumNode false *;multicluster.x-k8s.io/v1alpha1, Resource=serviceexports;/test *v1alpha1.ServiceExport false k8s;/v1, Resource=limitranges;bar/foo *v1.LimitRange false k8s;/v1, Resource=services;test/echo *v1.Service false @@ -69,6 +75,7 @@ ID *;/v1, Resource=services;test/echo true *;apiextensions.k8s.io/v1, Resource=customresourcedefinitions;/ciliumenvoyconfigs.cilium.io true *;cilium.io/v2, Resource=ciliumenvoyconfigs;default/cec true +*;cilium.io/v2, Resource=ciliumnodes;/test false *;multicluster.x-k8s.io/v1alpha1, Resource=serviceexports;/test true k8s;/v1, Resource=limitranges;bar/foo true k8s;/v1, Resource=services;test/echo true @@ -76,18 +83,22 @@ k8s;/v1, Resource=services;test/echo -- summary.expected -- *: - v1.services: 1 -- cilium.io.v2.ciliumenvoyconfigs: 1 - apiextensions.k8s.io.v1.customresourcedefinitions: 1 +- cilium.io.v2.ciliumenvoyconfigs: 1 +- cilium.io.v2.ciliumnodes: 1 - multicluster.x-k8s.io.v1alpha1.serviceexports: 1 +- v1.limitranges: 0 k8s: - v1.services: 1 - v1.limitranges: 1 -- summary.empty -- *: - v1.services: 0 -- cilium.io.v2.ciliumenvoyconfigs: 0 - apiextensions.k8s.io.v1.customresourcedefinitions: 0 +- cilium.io.v2.ciliumenvoyconfigs: 0 +- cilium.io.v2.ciliumnodes: 1 - multicluster.x-k8s.io.v1alpha1.serviceexports: 0 +- v1.limitranges: 0 k8s: - v1.services: 0 - v1.limitranges: 0 From 88fdc2f119e1655ef0fbe926e963156e2016be01 Mon Sep 17 00:00:00 2001 From: Jarno Rajahalme Date: Wed, 17 Sep 2025 12:35:06 +0200 Subject: [PATCH 072/176] envoy: Add config for websocket upgrades Adding config for websocket upgrades allows Envoy HTTP filter to pass-through websocket upgrades, while having no effect on non-websocket connections. Fixes: #11672 Signed-off-by: Jarno Rajahalme --- pkg/envoy/xds_server.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/envoy/xds_server.go b/pkg/envoy/xds_server.go index 974fceaba6fac..e857b09502f60 100644 --- a/pkg/envoy/xds_server.go +++ b/pkg/envoy/xds_server.go @@ -395,7 +395,10 @@ func (s *xdsServer) getHttpFilterChainProto(clusterName string, tls bool, isIngr } hcmConfig := &envoy_config_http.HttpConnectionManager{ - StatPrefix: "proxy", + StatPrefix: "proxy", + UpgradeConfigs: []*envoy_config_http.HttpConnectionManager_UpgradeConfig{ + {UpgradeType: "websocket"}, + }, UseRemoteAddress: &wrapperspb.BoolValue{Value: true}, SkipXffAppend: true, XffNumTrustedHops: xffNumTrustedHops, From 71d355cd87afffcfaefd70d164e07284aca7aa47 Mon Sep 17 00:00:00 2001 From: Aditi Ghag Date: Thu, 11 Sep 2025 15:11:25 -0700 Subject: [PATCH 073/176] agent: Add health config cell Let the Hive framework populate these configurations. A separate cell is introduced instead of adding the configurations directly to the Cilium health cell, because other dependency modules (such as IPAM) also reference them. These modules are not yet modularized, and the Cilium health cell itself depends on them. This commit does not move all usages of the global health configurations, since some non-modularized modules still reference configurations from DaemonConfig. Signed-off-by: Aditi Ghag --- CODEOWNERS | 1 + Documentation/cmdref/cilium-agent_hive.md | 2 + .../cmdref/cilium-agent_hive_dot-graph.md | 2 + daemon/cmd/cells.go | 5 ++ daemon/cmd/daemon.go | 4 ++ daemon/cmd/daemon_main.go | 10 ++-- pkg/health/health_manager.go | 8 ++- pkg/healthconfig/cell.go | 52 +++++++++++++++++++ pkg/healthconfig/healthconfig_test.go | 34 ++++++++++++ 9 files changed, 110 insertions(+), 8 deletions(-) create mode 100644 pkg/healthconfig/cell.go create mode 100644 pkg/healthconfig/healthconfig_test.go diff --git a/CODEOWNERS b/CODEOWNERS index 60c6b9afffca8..4074ba0c75c81 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -559,6 +559,7 @@ Makefile* @cilium/build /pkg/fswatcher/ @cilium/sig-datapath @cilium/sig-hubble /pkg/gops/ @cilium/sig-agent /pkg/health/ @cilium/sig-agent +/pkg/healthconfig/ @cilium/sig-agent /pkg/hive/ @cilium/sig-foundations /pkg/hubble/ @cilium/sig-hubble /pkg/hubble/metrics @cilium/hubble-metrics diff --git a/Documentation/cmdref/cilium-agent_hive.md b/Documentation/cmdref/cilium-agent_hive.md index a55011a3f984e..9014213c562a1 100644 --- a/Documentation/cmdref/cilium-agent_hive.md +++ b/Documentation/cmdref/cilium-agent_hive.md @@ -61,9 +61,11 @@ cilium-agent hive [flags] --enable-drift-checker Enables support for config drift checker (default true) --enable-dynamic-config Enables support for dynamic agent config (default true) --enable-dynamic-lifecycle-manager Enables support for dynamic lifecycle management + --enable-endpoint-health-checking Enable connectivity health checking between virtual endpoints (default true) --enable-gateway-api Enables Envoy secret sync for Gateway API related TLS secrets --enable-gops Enable gops server (default true) --enable-health-check-nodeport Enables a healthcheck nodePort server for NodePort services with 'healthCheckNodePort' being set (default true) + --enable-health-checking Enable connectivity health checking (default true) --enable-hubble Enable hubble server --enable-hubble-open-metrics Enable exporting hubble metrics in OpenMetrics format. --enable-ingress-controller Enables Envoy secret sync for Ingress controller related TLS secrets diff --git a/Documentation/cmdref/cilium-agent_hive_dot-graph.md b/Documentation/cmdref/cilium-agent_hive_dot-graph.md index 8a1be080652b4..0c60a5be748db 100644 --- a/Documentation/cmdref/cilium-agent_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-agent_hive_dot-graph.md @@ -67,9 +67,11 @@ cilium-agent hive dot-graph [flags] --enable-drift-checker Enables support for config drift checker (default true) --enable-dynamic-config Enables support for dynamic agent config (default true) --enable-dynamic-lifecycle-manager Enables support for dynamic lifecycle management + --enable-endpoint-health-checking Enable connectivity health checking between virtual endpoints (default true) --enable-gateway-api Enables Envoy secret sync for Gateway API related TLS secrets --enable-gops Enable gops server (default true) --enable-health-check-nodeport Enables a healthcheck nodePort server for NodePort services with 'healthCheckNodePort' being set (default true) + --enable-health-checking Enable connectivity health checking (default true) --enable-hubble Enable hubble server --enable-hubble-open-metrics Enable exporting hubble metrics in OpenMetrics format. --enable-ingress-controller Enables Envoy secret sync for Ingress controller related TLS secrets diff --git a/daemon/cmd/cells.go b/daemon/cmd/cells.go index 2024e1fea86b7..843cee932af13 100644 --- a/daemon/cmd/cells.go +++ b/daemon/cmd/cells.go @@ -13,6 +13,8 @@ import ( "github.com/cilium/statedb" "google.golang.org/grpc" + "github.com/cilium/cilium/pkg/healthconfig" + healthApi "github.com/cilium/cilium/api/v1/health/server" "github.com/cilium/cilium/api/v1/server" "github.com/cilium/cilium/daemon/cmd/cni" @@ -332,6 +334,9 @@ var ( // Cilium health infrastructure (host and endpoint connectivity) health.Cell, + // Cilium health config + healthconfig.Cell, + // Cilium Status Collector status.Cell, diff --git a/daemon/cmd/daemon.go b/daemon/cmd/daemon.go index e64ce47be9f31..d2f37f98227e8 100644 --- a/daemon/cmd/daemon.go +++ b/daemon/cmd/daemon.go @@ -34,6 +34,7 @@ import ( "github.com/cilium/cilium/pkg/endpoint/regeneration" "github.com/cilium/cilium/pkg/endpointmanager" "github.com/cilium/cilium/pkg/health" + "github.com/cilium/cilium/pkg/healthconfig" "github.com/cilium/cilium/pkg/identity" identitycell "github.com/cilium/cilium/pkg/identity/cache/cell" "github.com/cilium/cilium/pkg/identity/identitymanager" @@ -133,6 +134,8 @@ type Daemon struct { lbConfig loadbalancer.Config kprCfg kpr.KPRConfig + healthConfig healthconfig.CiliumHealthConfig + ipsecAgent datapath.IPsecAgent } @@ -346,6 +349,7 @@ func newDaemon(ctx context.Context, cleaner *daemonCleanup, params *daemonParams ipsecAgent: params.IPsecAgent, ciliumHealth: params.CiliumHealth, endpointAPIFence: params.EndpointAPIFence, + healthConfig: params.HealthConfig, } // initialize endpointRestoreComplete channel as soon as possible so that subsystems diff --git a/daemon/cmd/daemon_main.go b/daemon/cmd/daemon_main.go index b7c1974b2de63..9152ac5af8c51 100644 --- a/daemon/cmd/daemon_main.go +++ b/daemon/cmd/daemon_main.go @@ -53,6 +53,7 @@ import ( "github.com/cilium/cilium/pkg/fqdn/bootstrap" "github.com/cilium/cilium/pkg/fqdn/namemanager" "github.com/cilium/cilium/pkg/health" + "github.com/cilium/cilium/pkg/healthconfig" "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/identity" identitycell "github.com/cilium/cilium/pkg/identity/cache/cell" @@ -227,18 +228,12 @@ func InitGlobalFlags(logger *slog.Logger, cmd *cobra.Command, vp *viper.Viper) { flags.Bool(option.EnableEndpointRoutes, defaults.EnableEndpointRoutes, "Use per endpoint routes instead of routing via cilium_host") option.BindEnv(vp, option.EnableEndpointRoutes) - flags.Bool(option.EnableHealthChecking, defaults.EnableHealthChecking, "Enable connectivity health checking") - option.BindEnv(vp, option.EnableHealthChecking) - flags.Bool(option.AgentHealthRequireK8sConnectivity, true, "Require Kubernetes connectivity in agent health endpoint") option.BindEnv(vp, option.AgentHealthRequireK8sConnectivity) flags.Bool(option.EnableHealthCheckLoadBalancerIP, defaults.EnableHealthCheckLoadBalancerIP, "Enable access of the healthcheck nodePort on the LoadBalancerIP. Needs --enable-health-check-nodeport to be enabled") option.BindEnv(vp, option.EnableHealthCheckLoadBalancerIP) - flags.Bool(option.EnableEndpointHealthChecking, defaults.EnableEndpointHealthChecking, "Enable connectivity health checking between virtual endpoints") - option.BindEnv(vp, option.EnableEndpointHealthChecking) - flags.Int(option.HealthCheckICMPFailureThreshold, defaults.HealthCheckICMPFailureThreshold, "Number of ICMP requests sent for each run of the health checker. If at least one ICMP response is received, the node or endpoint is marked as healthy.") option.BindEnv(vp, option.HealthCheckICMPFailureThreshold) @@ -1317,6 +1312,7 @@ type daemonParams struct { KPRConfig kpr.KPRConfig EndpointAPIFence endpointapi.Fence IPSecConfig datapath.IPsecConfig + HealthConfig healthconfig.CiliumHealthConfig } func newDaemonPromise(params daemonParams) (promise.Promise[*Daemon], legacy.DaemonInitialization) { @@ -1516,7 +1512,7 @@ func startDaemon(d *Daemon, restoredEndpoints *endpointRestoreState, cleaner *da } bootstrapStats.healthCheck.Start() - if option.Config.EnableHealthChecking { + if d.healthConfig.IsHealthCheckingEnabled() { if err := d.ciliumHealth.Init(d.ctx, d.healthEndpointRouting, cleaner.cleanupFuncs.Add); err != nil { return fmt.Errorf("failed to initialize cilium health: %w", err) } diff --git a/pkg/health/health_manager.go b/pkg/health/health_manager.go index 9ba7cf32dbd67..7e961f02ebd0c 100644 --- a/pkg/health/health_manager.go +++ b/pkg/health/health_manager.go @@ -11,6 +11,8 @@ import ( "github.com/cilium/hive/cell" + "github.com/cilium/cilium/pkg/healthconfig" + healthApi "github.com/cilium/cilium/api/v1/health/server" "github.com/cilium/cilium/api/v1/models" "github.com/cilium/cilium/pkg/controller" @@ -62,6 +64,8 @@ type ciliumHealthManager struct { ctrlMgr *controller.Manager ciliumHealth *CiliumHealth + + healthConfig healthconfig.CiliumHealthConfig } type ciliumHealthParams struct { @@ -77,6 +81,7 @@ type ciliumHealthParams struct { EndpointCreator endpointcreator.EndpointCreator EndpointManager endpointmanager.EndpointManager K8sClientSet k8sClient.Clientset + Config healthconfig.CiliumHealthConfig } func newCiliumHealthManager(params ciliumHealthParams) CiliumHealthManager { @@ -90,6 +95,7 @@ func newCiliumHealthManager(params ciliumHealthParams) CiliumHealthManager { endpointCreator: params.EndpointCreator, endpointManager: params.EndpointManager, k8sClientSet: params.K8sClientSet, + healthConfig: params.Config, } return h @@ -106,7 +112,7 @@ func (h *ciliumHealthManager) Init(ctx context.Context, routingInfo *linuxroutin h.ciliumHealth = ch // If endpoint health checking is disabled, the virtual endpoint does not need to be launched - if !option.Config.EnableEndpointHealthChecking { + if !h.healthConfig.IsEndpointHealthCheckingEnabled() { return nil } diff --git a/pkg/healthconfig/cell.go b/pkg/healthconfig/cell.go new file mode 100644 index 0000000000000..5b6e669f02f7d --- /dev/null +++ b/pkg/healthconfig/cell.go @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package healthconfig + +import ( + "github.com/cilium/hive/cell" + "github.com/spf13/pflag" +) + +const ( + EnableHealthCheckingName = "enable-health-checking" + EnableEndpointHealthCheckingName = "enable-endpoint-health-checking" +) + +// Cell provides the Cilium health config. +var Cell = cell.Module( + "cilium-health-config", + "Cilium health config", + cell.Config[CiliumHealthConfig](defaultConfig), +) + +type Config struct { + EnableHealthChecking bool `mapstructure:"enable-health-checking"` + EnableEndpointHealthChecking bool `mapstructure:"enable-endpoint-health-checking"` +} + +var defaultConfig = Config{ + EnableHealthChecking: true, + EnableEndpointHealthChecking: true, +} + +type CiliumHealthConfig interface { + cell.Flagger + // IsHealthCheckingEnabled checks whether health server API and active health checks are enabled + IsHealthCheckingEnabled() bool + // IsEndpointHealthCheckingEnabled checks whether enables active checks to virtual health endpoints are enabled + IsEndpointHealthCheckingEnabled() bool +} + +func (c Config) IsHealthCheckingEnabled() bool { + return c.EnableHealthChecking +} + +func (c Config) IsEndpointHealthCheckingEnabled() bool { + return c.EnableEndpointHealthChecking +} + +func (c Config) Flags(flags *pflag.FlagSet) { + flags.Bool(EnableHealthCheckingName, c.EnableHealthChecking, "Enable connectivity health checking") + flags.Bool(EnableEndpointHealthCheckingName, c.EnableEndpointHealthChecking, "Enable connectivity health checking between virtual endpoints") +} diff --git a/pkg/healthconfig/healthconfig_test.go b/pkg/healthconfig/healthconfig_test.go new file mode 100644 index 0000000000000..e0984023f0a03 --- /dev/null +++ b/pkg/healthconfig/healthconfig_test.go @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package healthconfig + +import ( + "context" + "testing" + + "github.com/cilium/hive" + "github.com/cilium/hive/cell" + "github.com/cilium/hive/hivetest" + "github.com/spf13/pflag" + "github.com/stretchr/testify/require" +) + +func Test_healthConfig(t *testing.T) { + var hc CiliumHealthConfig + hive := hive.New( + Cell, + cell.Invoke(func(cfg CiliumHealthConfig) { hc = cfg }), + ) + + flags := pflag.NewFlagSet("", pflag.ContinueOnError) + hive.RegisterFlags(flags) + flags.Set(EnableHealthCheckingName, "false") + flags.Set(EnableEndpointHealthCheckingName, "false") + + tlog := hivetest.Logger(t) + require.NoError(t, hive.Start(tlog, context.Background())) + + require.False(t, hc.IsHealthCheckingEnabled()) + require.False(t, hc.IsEndpointHealthCheckingEnabled()) +} From 51f226823844e0af7ec55e4a5d966899ae8de528 Mon Sep 17 00:00:00 2001 From: Aditi Ghag Date: Fri, 12 Sep 2025 16:04:50 -0700 Subject: [PATCH 074/176] pkg/health: Knob to turn off active health checks The knob is currently used to test the standalone health server API. It can also be extended in the future. Signed-off-by: Aditi Ghag --- pkg/health/health_connectivity_node.go | 2 +- pkg/health/server/server.go | 24 +++++++++++++++--------- pkg/healthconfig/cell.go | 6 ++++++ 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/pkg/health/health_connectivity_node.go b/pkg/health/health_connectivity_node.go index 2d6bf46b600e6..3f6972fd15944 100644 --- a/pkg/health/health_connectivity_node.go +++ b/pkg/health/health_connectivity_node.go @@ -56,7 +56,7 @@ func (h *ciliumHealthManager) launchCiliumNodeHealth(spec *healthApi.Spec, initi HealthAPISpec: spec, } - ch.server, err = server.NewServer(h.logger, config) + ch.server, err = server.NewServer(h.logger, config, h.healthConfig.IsActiveHealthCheckingEnabled()) if err != nil { return nil, fmt.Errorf("failed to instantiate cilium-health server: %w", err) } diff --git a/pkg/health/server/server.go b/pkg/health/server/server.go index ed909c9cc22b4..444904eb52907 100644 --- a/pkg/health/server/server.go +++ b/pkg/health/server/server.go @@ -69,6 +69,9 @@ type Server struct { localStatus *healthModels.SelfStatus nodesSeen map[string]struct{} + + // Enable/disable periodic health and connectivity checks + enableActiveChecks bool } // DumpUptime returns the time that this server has been running. @@ -386,9 +389,11 @@ func (s *Server) Serve() (err error) { errors <- s.httpPathServer.Serve() }() - go func() { - errors <- s.runActiveServices() - }() + if s.enableActiveChecks { + go func() { + errors <- s.runActiveServices() + }() + } // Block for the first error, then return. err = <-errors @@ -424,13 +429,14 @@ func (s *Server) newServer(logger *slog.Logger, spec *healthApi.Spec) *healthApi } // NewServer creates a server to handle health requests. -func NewServer(logger *slog.Logger, config Config) (*Server, error) { +func NewServer(logger *slog.Logger, config Config, enableActiveChecks bool) (*Server, error) { server := &Server{ - logger: logger, - startTime: time.Now(), - Config: config, - connectivity: &healthReport{}, - nodesSeen: make(map[string]struct{}), + logger: logger, + startTime: time.Now(), + Config: config, + connectivity: &healthReport{}, + nodesSeen: make(map[string]struct{}), + enableActiveChecks: enableActiveChecks, } cl, err := ciliumPkg.NewClient(config.CiliumURI) diff --git a/pkg/healthconfig/cell.go b/pkg/healthconfig/cell.go index 5b6e669f02f7d..d2f31ebf78d81 100644 --- a/pkg/healthconfig/cell.go +++ b/pkg/healthconfig/cell.go @@ -36,6 +36,8 @@ type CiliumHealthConfig interface { IsHealthCheckingEnabled() bool // IsEndpointHealthCheckingEnabled checks whether enables active checks to virtual health endpoints are enabled IsEndpointHealthCheckingEnabled() bool + // IsActiveHealthCheckingEnabled checks whether periodic active health checks are enabled + IsActiveHealthCheckingEnabled() bool } func (c Config) IsHealthCheckingEnabled() bool { @@ -46,6 +48,10 @@ func (c Config) IsEndpointHealthCheckingEnabled() bool { return c.EnableEndpointHealthChecking } +func (c Config) IsActiveHealthCheckingEnabled() bool { + return true +} + func (c Config) Flags(flags *pflag.FlagSet) { flags.Bool(EnableHealthCheckingName, c.EnableHealthChecking, "Enable connectivity health checking") flags.Bool(EnableEndpointHealthCheckingName, c.EnableEndpointHealthChecking, "Enable connectivity health checking between virtual endpoints") From c2952c5b3feba8004c18e5b7ef558a251c4d2419 Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Wed, 20 Aug 2025 11:33:36 +0200 Subject: [PATCH 075/176] node: Set Cluster on the skeleton node Not having the cluster name set on the local node lead to duplicate objects. This does require that uses of LocalNodeStore in tests will need to provide the [ClusterInfo]. Signed-off-by: Jussi Maki --- pkg/ciliumenvoyconfig/script_test.go | 2 ++ pkg/datapath/tables/node_address_test.go | 15 ++++++++--- pkg/dial/resolver_test.go | 1 + pkg/loadbalancer/benchmark/benchmark.go | 4 +++ pkg/loadbalancer/cell/cell_test.go | 4 ++- pkg/loadbalancer/healthserver/script_test.go | 1 + .../redirectpolicy/script_test.go | 2 ++ pkg/loadbalancer/repl/main.go | 4 ++- pkg/loadbalancer/tests/script_test.go | 2 ++ pkg/loadbalancer/writer/writer_test.go | 10 +++---- pkg/node/local_node_store.go | 27 ++++++++++++++----- pkg/node/local_node_store_test.go | 7 +++++ pkg/xds/experimental/client/cell_test.go | 9 ++++--- 13 files changed, 66 insertions(+), 22 deletions(-) diff --git a/pkg/ciliumenvoyconfig/script_test.go b/pkg/ciliumenvoyconfig/script_test.go index 1d4364ae6e8ca..ae9c36fe7e28d 100644 --- a/pkg/ciliumenvoyconfig/script_test.go +++ b/pkg/ciliumenvoyconfig/script_test.go @@ -35,6 +35,7 @@ import ( "google.golang.org/protobuf/proto" daemonk8s "github.com/cilium/cilium/daemon/k8s" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" "github.com/cilium/cilium/pkg/endpoint/regeneration" "github.com/cilium/cilium/pkg/envoy" @@ -118,6 +119,7 @@ func TestScript(t *testing.T) { }, ), node.LocalNodeStoreTestCell, + cell.Provide(func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }), cell.Invoke(func(lns_ *node.LocalNodeStore) { lns = lns_ }), ), tableCells, diff --git a/pkg/datapath/tables/node_address_test.go b/pkg/datapath/tables/node_address_test.go index 525139bd29e0e..c888e5252a0aa 100644 --- a/pkg/datapath/tables/node_address_test.go +++ b/pkg/datapath/tables/node_address_test.go @@ -20,6 +20,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/defaults" "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/node" @@ -796,6 +797,7 @@ func fixture(t *testing.T, addressScopeMax int, beforeStart func(*hive.Hive)) (* NodeAddressCell, node.LocalNodeStoreCell, cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, NewDeviceTable, statedb.RWTable[*Device].ToTable, NewRouteTable, @@ -1088,10 +1090,15 @@ func TestNodeAddressFromRoute(t *testing.T) { statedb.RWTable[*Route].ToTable, ), NodeAddressCell, - cell.Provide(func() node.LocalNodeSynchronizer { return testLocalNodeSync{} }), - cell.Provide(func() *option.DaemonConfig { - return &option.DaemonConfig{AddressScopeMax: defaults.AddressScopeMax} - }), + cell.Provide( + func() node.LocalNodeSynchronizer { return testLocalNodeSync{} }, + func() *option.DaemonConfig { + return &option.DaemonConfig{AddressScopeMax: defaults.AddressScopeMax} + }, + func() cmtypes.ClusterInfo { + return cmtypes.ClusterInfo{} + }, + ), // Capture table handles for use in the test. cell.Invoke(func(db_ *statedb.DB, d statedb.RWTable[*Device], r statedb.RWTable[*Route], na statedb.Table[NodeAddress]) { diff --git a/pkg/dial/resolver_test.go b/pkg/dial/resolver_test.go index a911207e9f092..b366e217fc6cd 100644 --- a/pkg/dial/resolver_test.go +++ b/pkg/dial/resolver_test.go @@ -184,6 +184,7 @@ func TestServiceBackendResolver(t *testing.T) { writer.Cell, cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, ServiceBackendResolverFactory("test1"), func() *option.DaemonConfig { return &option.DaemonConfig{} }, diff --git a/pkg/loadbalancer/benchmark/benchmark.go b/pkg/loadbalancer/benchmark/benchmark.go index a528366acafa2..d28b8aceffb1b 100644 --- a/pkg/loadbalancer/benchmark/benchmark.go +++ b/pkg/loadbalancer/benchmark/benchmark.go @@ -25,6 +25,7 @@ import ( k8sRuntime "k8s.io/apimachinery/pkg/runtime" daemonk8s "github.com/cilium/cilium/daemon/k8s" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/k8s" @@ -539,6 +540,9 @@ func testHive(maps lbmaps.LBMaps, node.LocalNodeStoreTestCell, cell.Provide( + func() cmtypes.ClusterInfo { + return cmtypes.ClusterInfo{} + }, func() loadbalancer.Config { return loadbalancer.Config{ UserConfig: loadbalancer.DefaultUserConfig, diff --git a/pkg/loadbalancer/cell/cell_test.go b/pkg/loadbalancer/cell/cell_test.go index 2c319d31c4895..12fb1b3a61947 100644 --- a/pkg/loadbalancer/cell/cell_test.go +++ b/pkg/loadbalancer/cell/cell_test.go @@ -12,6 +12,7 @@ import ( "github.com/stretchr/testify/require" daemonk8s "github.com/cilium/cilium/daemon/k8s" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" envoyCfg "github.com/cilium/cilium/pkg/envoy/config" "github.com/cilium/cilium/pkg/hive" @@ -38,8 +39,9 @@ func TestCell(t *testing.T) { metrics.Cell, kpr.Cell, Cell, - cell.Provide(source.NewSources), cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, + source.NewSources, tables.NewNodeAddressTable, statedb.RWTable[tables.NodeAddress].ToTable, func() *option.DaemonConfig { diff --git a/pkg/loadbalancer/healthserver/script_test.go b/pkg/loadbalancer/healthserver/script_test.go index 856d1c66faaa7..7e375fce5e2be 100644 --- a/pkg/loadbalancer/healthserver/script_test.go +++ b/pkg/loadbalancer/healthserver/script_test.go @@ -86,6 +86,7 @@ func TestScript(t *testing.T) { maglev.Cell, node.LocalNodeStoreTestCell, cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, func(cfg loadbalancer.TestConfig) *loadbalancer.TestConfig { return &cfg }, tables.NewNodeAddressTable, statedb.RWTable[tables.NodeAddress].ToTable, diff --git a/pkg/loadbalancer/redirectpolicy/script_test.go b/pkg/loadbalancer/redirectpolicy/script_test.go index beb41f7a04680..971b26f2b02a2 100644 --- a/pkg/loadbalancer/redirectpolicy/script_test.go +++ b/pkg/loadbalancer/redirectpolicy/script_test.go @@ -22,6 +22,7 @@ import ( "github.com/stretchr/testify/require" daemonk8s "github.com/cilium/cilium/daemon/k8s" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" envoyCfg "github.com/cilium/cilium/pkg/envoy/config" "github.com/cilium/cilium/pkg/hive" @@ -78,6 +79,7 @@ func TestScript(t *testing.T) { node.LocalNodeStoreTestCell, maglev.Cell, cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, source.NewSources, func() *loadbalancer.TestConfig { return &loadbalancer.TestConfig{} }, tables.NewNodeAddressTable, diff --git a/pkg/loadbalancer/repl/main.go b/pkg/loadbalancer/repl/main.go index 806eb43355922..98b444ce9c642 100644 --- a/pkg/loadbalancer/repl/main.go +++ b/pkg/loadbalancer/repl/main.go @@ -12,6 +12,7 @@ import ( "github.com/spf13/pflag" daemonk8s "github.com/cilium/cilium/daemon/k8s" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" envoyCfg "github.com/cilium/cilium/pkg/envoy/config" "github.com/cilium/cilium/pkg/hive" @@ -89,8 +90,9 @@ var Hive = hive.New( metrics.Cell, cell.Config(loadbalancer.TestConfig{}), cell.Config(envoyCfg.SecretSyncConfig{}), - cell.Provide(source.NewSources), cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, + source.NewSources, tables.NewNodeAddressTable, statedb.RWTable[tables.NodeAddress].ToTable, func() *option.DaemonConfig { diff --git a/pkg/loadbalancer/tests/script_test.go b/pkg/loadbalancer/tests/script_test.go index 893e52a6966cf..279e884d160eb 100644 --- a/pkg/loadbalancer/tests/script_test.go +++ b/pkg/loadbalancer/tests/script_test.go @@ -26,6 +26,7 @@ import ( "github.com/stretchr/testify/require" daemonk8s "github.com/cilium/cilium/daemon/k8s" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" envoyCfg "github.com/cilium/cilium/pkg/envoy/config" "github.com/cilium/cilium/pkg/hive" @@ -89,6 +90,7 @@ func TestScript(t *testing.T) { maglev.Cell, node.LocalNodeStoreTestCell, cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, func(cfg loadbalancer.TestConfig) *loadbalancer.TestConfig { return &cfg }, tables.NewNodeAddressTable, statedb.RWTable[tables.NodeAddress].ToTable, diff --git a/pkg/loadbalancer/writer/writer_test.go b/pkg/loadbalancer/writer/writer_test.go index de409117f6043..373cfdf4d6eba 100644 --- a/pkg/loadbalancer/writer/writer_test.go +++ b/pkg/loadbalancer/writer/writer_test.go @@ -18,8 +18,9 @@ import ( "github.com/cilium/statedb/reconciler" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "k8s.io/utils/ptr" - "github.com/cilium/cilium/pkg/clustermesh/types" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/datapath/tables" "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/kpr" @@ -27,8 +28,6 @@ import ( "github.com/cilium/cilium/pkg/node" "github.com/cilium/cilium/pkg/option" "github.com/cilium/cilium/pkg/source" - - "k8s.io/utils/ptr" ) type testParams struct { @@ -50,6 +49,7 @@ func fixture(t testing.TB) (p testParams) { node.LocalNodeStoreTestCell, Cell, cell.Provide( + func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }, func() *option.DaemonConfig { return &option.DaemonConfig{} }, tables.NewNodeAddressTable, statedb.RWTable[tables.NodeAddress].ToTable, @@ -66,10 +66,10 @@ func fixture(t testing.TB) (p testParams) { return p } -func intToAddr(i int) types.AddrCluster { +func intToAddr(i int) cmtypes.AddrCluster { var addr [4]byte binary.BigEndian.PutUint32(addr[:], 0x0100_0000+uint32(i)) - addrCluster, _ := types.AddrClusterFromIP(addr[:]) + addrCluster, _ := cmtypes.AddrClusterFromIP(addr[:]) return addrCluster } diff --git a/pkg/node/local_node_store.go b/pkg/node/local_node_store.go index 854f880d29a5f..2eb08040669d9 100644 --- a/pkg/node/local_node_store.go +++ b/pkg/node/local_node_store.go @@ -11,6 +11,7 @@ import ( "github.com/cilium/hive/job" "github.com/cilium/statedb" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/node/types" "github.com/cilium/cilium/pkg/rate" "github.com/cilium/cilium/pkg/source" @@ -43,12 +44,13 @@ var LocalNodeStoreCell = cell.Module( type LocalNodeStoreParams struct { cell.In - Logger *slog.Logger - Lifecycle cell.Lifecycle - Sync LocalNodeSynchronizer - DB *statedb.DB - Nodes statedb.RWTable[*LocalNode] - Jobs job.Group + Logger *slog.Logger + Lifecycle cell.Lifecycle + Sync LocalNodeSynchronizer + DB *statedb.DB + Nodes statedb.RWTable[*LocalNode] + Jobs job.Group + ClusterInfo cmtypes.ClusterInfo } // LocalNodeStore is the canonical owner for the local node object and provides @@ -69,7 +71,9 @@ func NewLocalNodeStore(params LocalNodeStoreParams) (*LocalNodeStore, error) { params.Nodes.Insert(wtxn, &LocalNode{ Node: types.Node{ - Name: types.GetName(), + Name: types.GetName(), + Cluster: params.ClusterInfo.Name, + ClusterID: params.ClusterInfo.ID, // Explicitly initialize the labels and annotations maps, so that // we don't need to always check for nil values. Labels: make(map[string]string), @@ -86,6 +90,9 @@ func NewLocalNodeStore(params LocalNodeStoreParams) (*LocalNodeStore, error) { OnStart: func(ctx cell.HookContext) error { wtxn := params.DB.WriteTxn(params.Nodes) n, _, _ := params.Nodes.Get(wtxn, LocalNodeQuery) + // Delete the initial one as name might change. + params.Nodes.Delete(wtxn, n) + n = n.DeepCopy() err := params.Sync.InitLocalNode(ctx, n) params.Nodes.Insert(wtxn, n) @@ -184,11 +191,17 @@ func (s *LocalNodeStore) Update(update func(*LocalNode)) { if !found { panic("BUG: No local node exists") } + orig := ln ln = ln.DeepCopy() update(ln) if ln.Local == nil { panic("BUG: Updated LocalNode has nil Local") } + if orig.Fullname() != ln.Fullname() { + // Name or cluster has changed, delete first to remove it from the name index. + s.nodes.Delete(txn, orig) + } + s.nodes.Insert(txn, ln) } diff --git a/pkg/node/local_node_store_test.go b/pkg/node/local_node_store_test.go index b6ba849f52610..a918f91bfce2f 100644 --- a/pkg/node/local_node_store_test.go +++ b/pkg/node/local_node_store_test.go @@ -13,6 +13,7 @@ import ( "github.com/cilium/hive/hivetest" "github.com/stretchr/testify/assert" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" "github.com/cilium/cilium/pkg/hive" . "github.com/cilium/cilium/pkg/node" ) @@ -78,6 +79,12 @@ func TestLocalNodeStore(t *testing.T) { hive := hive.New( LocalNodeStoreCell, + cell.Provide(func() cmtypes.ClusterInfo { + return cmtypes.ClusterInfo{ + Name: "test", + ID: 1, + } + }), cell.Provide(func() LocalNodeSynchronizer { return ts }), cell.Invoke(observe), cell.Invoke(update), diff --git a/pkg/xds/experimental/client/cell_test.go b/pkg/xds/experimental/client/cell_test.go index 7a7e64d9daea1..2fcd8343a41e4 100644 --- a/pkg/xds/experimental/client/cell_test.go +++ b/pkg/xds/experimental/client/cell_test.go @@ -7,14 +7,14 @@ import ( "fmt" "testing" - "github.com/cilium/cilium/pkg/hive" - "github.com/cilium/cilium/pkg/node" - "github.com/cilium/hive/cell" "github.com/cilium/hive/hivetest" - discoverypb "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3" core_v1 "k8s.io/api/core/v1" + + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" + "github.com/cilium/cilium/pkg/hive" + "github.com/cilium/cilium/pkg/node" ) func TestCell_SuccessfullyRunClient(t *testing.T) { @@ -26,6 +26,7 @@ func TestCell_SuccessfullyRunClient(t *testing.T) { cell.Provide(NewInsecureGRPCOptionsProvider), node.LocalNodeStoreTestCell, Cell, + cell.Provide(func() cmtypes.ClusterInfo { return cmtypes.ClusterInfo{} }), cell.Invoke(func(localNodeStore *node.LocalNodeStore) { localNodeStore.Update(func(n *node.LocalNode) { hLog.Info("Update localNodeStore") From 7bc56c71de7d07f00c9117445ca5b8a5944f3111 Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Wed, 20 Aug 2025 13:18:19 +0200 Subject: [PATCH 076/176] node: Skip equal objects in Update() Don't commit unchanged node objects to avoid unnecessary wakeups. Signed-off-by: Jussi Maki --- pkg/node/local_node_store.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/node/local_node_store.go b/pkg/node/local_node_store.go index 2eb08040669d9..85d66db1af022 100644 --- a/pkg/node/local_node_store.go +++ b/pkg/node/local_node_store.go @@ -186,7 +186,7 @@ func (s *LocalNodeStore) Get(ctx context.Context) (LocalNode, error) { // Update modifies the local node with a mutator. func (s *LocalNodeStore) Update(update func(*LocalNode)) { txn := s.db.WriteTxn(s.nodes) - defer txn.Commit() + defer txn.Abort() ln, _, found := s.nodes.Get(txn, LocalNodeQuery) if !found { panic("BUG: No local node exists") @@ -197,12 +197,19 @@ func (s *LocalNodeStore) Update(update func(*LocalNode)) { if ln.Local == nil { panic("BUG: Updated LocalNode has nil Local") } + + if ln.DeepEqual(orig) { + // No changes. + return + } + if orig.Fullname() != ln.Fullname() { // Name or cluster has changed, delete first to remove it from the name index. s.nodes.Delete(txn, orig) } s.nodes.Insert(txn, ln) + txn.Commit() } func NewTestLocalNodeStore(mockNode LocalNode) *LocalNodeStore { From d9a34565d3899a185ca640fad704f6df5305b9ca Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 14 Sep 2025 00:57:15 +0000 Subject: [PATCH 077/176] chore(deps): update all github action dependencies Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/conformance-aws-cni.yaml | 2 +- .github/workflows/conformance-eks.yaml | 2 +- .github/workflows/conformance-gke.yaml | 2 +- .github/workflows/net-perf-gke.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- .github/workflows/scale-cleanup-kops.yaml | 2 +- .github/workflows/scale-test-100-gce.yaml | 2 +- .github/workflows/scale-test-5-gce.yaml | 2 +- .github/workflows/scale-test-clustermesh.yaml | 4 ++-- .github/workflows/scale-test-egw.yaml | 6 +++--- .github/workflows/scale-test-node-throughput-gce.yaml | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/conformance-aws-cni.yaml b/.github/workflows/conformance-aws-cni.yaml index 2a54806ef511c..f1fc7e6aee91f 100644 --- a/.github/workflows/conformance-aws-cni.yaml +++ b/.github/workflows/conformance-aws-cni.yaml @@ -63,7 +63,7 @@ env: # renovate: datasource=github-releases depName=eksctl-io/eksctl eksctl_version: v0.214.0 # renovate: datasource=github-releases depName=kubernetes/kubernetes - kubectl_version: v1.34.0 + kubectl_version: v1.34.1 jobs: echo-inputs: diff --git a/.github/workflows/conformance-eks.yaml b/.github/workflows/conformance-eks.yaml index 1d308c2b5ef1e..bf338301264a3 100644 --- a/.github/workflows/conformance-eks.yaml +++ b/.github/workflows/conformance-eks.yaml @@ -64,7 +64,7 @@ env: # renovate: datasource=github-releases depName=eksctl-io/eksctl eksctl_version: v0.214.0 # renovate: datasource=github-releases depName=kubernetes/kubernetes - kubectl_version: v1.34.0 + kubectl_version: v1.34.1 jobs: echo-inputs: diff --git a/.github/workflows/conformance-gke.yaml b/.github/workflows/conformance-gke.yaml index 7b1e0193aa80e..5efcc3b4ac63d 100644 --- a/.github/workflows/conformance-gke.yaml +++ b/.github/workflows/conformance-gke.yaml @@ -62,7 +62,7 @@ env: clusterName: ${{ github.repository_owner }}-${{ github.event.repository.name }}-${{ github.run_id }}-${{ github.run_attempt }} USE_GKE_GCLOUD_AUTH_PLUGIN: True # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 jobs: echo-inputs: diff --git a/.github/workflows/net-perf-gke.yaml b/.github/workflows/net-perf-gke.yaml index 56b5cc6a16ae5..33a4353b6b3c0 100644 --- a/.github/workflows/net-perf-gke.yaml +++ b/.github/workflows/net-perf-gke.yaml @@ -65,7 +65,7 @@ env: USE_GKE_GCLOUD_AUTH_PLUGIN: True gcp_zone: us-east5-a # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 jobs: echo-inputs: diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index a9654edd641d5..7d5bf3ce69c06 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Self-hosted Renovate - uses: renovatebot/github-action@7876d7a812254599d262d62b6b2c2706018258a2 # v43.0.10 + uses: renovatebot/github-action@6927a58a017ee9ac468a34a5b0d2a9a9bd45cac3 # v43.0.11 env: # default to DEBUG log level, this is always useful LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} diff --git a/.github/workflows/scale-cleanup-kops.yaml b/.github/workflows/scale-cleanup-kops.yaml index 871a4dcaf860f..e776d60e61f8b 100644 --- a/.github/workflows/scale-cleanup-kops.yaml +++ b/.github/workflows/scale-cleanup-kops.yaml @@ -26,7 +26,7 @@ env: # renovate: datasource=golang-version depName=go go_version: 1.25.1 # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 jobs: cleanup-kops-clusters: diff --git a/.github/workflows/scale-test-100-gce.yaml b/.github/workflows/scale-test-100-gce.yaml index b1cf7a2377cd5..042e3a6738c81 100644 --- a/.github/workflows/scale-test-100-gce.yaml +++ b/.github/workflows/scale-test-100-gce.yaml @@ -62,7 +62,7 @@ env: test_name: scale-100 cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 jobs: echo-inputs: diff --git a/.github/workflows/scale-test-5-gce.yaml b/.github/workflows/scale-test-5-gce.yaml index a8900e012d7b7..2ba8978922a64 100644 --- a/.github/workflows/scale-test-5-gce.yaml +++ b/.github/workflows/scale-test-5-gce.yaml @@ -64,7 +64,7 @@ env: test_name: scale-5 cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 jobs: echo-inputs: diff --git a/.github/workflows/scale-test-clustermesh.yaml b/.github/workflows/scale-test-clustermesh.yaml index 71b2453f9e405..8e9f98b2f138b 100644 --- a/.github/workflows/scale-test-clustermesh.yaml +++ b/.github/workflows/scale-test-clustermesh.yaml @@ -60,9 +60,9 @@ env: # renovate: datasource=golang-version depName=go go_version: 1.25.1 # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 # renovate: datasource=git-refs depName=https://github.com/cilium/scaffolding branch=main - cmapisrv_mock_ref: 38f6ed0ddf54dc548187536c385d2d722e265dad + cmapisrv_mock_ref: 90181df5116fe4d900bb0b9752021cb4c3474a97 test_name: scale-clustermesh cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} diff --git a/.github/workflows/scale-test-egw.yaml b/.github/workflows/scale-test-egw.yaml index c77bc3e9c3bd8..226d51d761620 100644 --- a/.github/workflows/scale-test-egw.yaml +++ b/.github/workflows/scale-test-egw.yaml @@ -72,14 +72,14 @@ env: # renovate: datasource=github-releases depName=eksctl-io/eksctl eksctl_version: v0.214.0 # renovate: datasource=github-releases depName=kubernetes/kubernetes - kubectl_version: v1.34.0 + kubectl_version: v1.34.1 # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 # Hosted under quay.io/cilium/egw-scale-utils and built by # a workflow in cilium/scaffolding. # renovate: datasource=git-refs depName=https://github.com/cilium/scaffolding branch=main - egw_utils_ref: 38f6ed0ddf54dc548187536c385d2d722e265dad + egw_utils_ref: 90181df5116fe4d900bb0b9752021cb4c3474a97 test_name: egw cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} diff --git a/.github/workflows/scale-test-node-throughput-gce.yaml b/.github/workflows/scale-test-node-throughput-gce.yaml index 3dd9fb779f684..55bae957ce2c0 100644 --- a/.github/workflows/scale-test-node-throughput-gce.yaml +++ b/.github/workflows/scale-test-node-throughput-gce.yaml @@ -43,7 +43,7 @@ env: cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} GCP_PERF_RESULTS_BUCKET: gs://cilium-scale-results # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 537.0.0 + gcloud_version: 538.0.0 jobs: install-and-scaletest: From 9b0ca64812e542fbf09654395947237e83b4bcd7 Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Tue, 16 Sep 2025 16:19:13 +0200 Subject: [PATCH 078/176] redirectpolicy: Fix comparison of BackendParams The LRP controller tries to avoid calling SetBackends() if the set of backends has not changed (this avoids changing frontends and reconciling). The code was only comparing the backend address as that was the only relevant field before. Now that the port names are set also we'll need to include that in comparison. To avoid similar issues in the future add BackendParams.Equal and use that to compare. The flake in question was: scripttest.go:273: FAIL: testdata/address-matcher-named-ports.txtar:46: db/cmp backends backends-single.table: table mismatch: Address Instances - 10.244.2.1:50/TCP test/lrp-addr-single:local-redirect (test) + 10.244.2.1:50/TCP test/lrp-addr-single:local-redirect Due to the address-matcher-named-ports.txtar using the same pod object in two test steps the test ended up using the older version that was missing the port name and due to the skipping logic it didn't update after the pod was updated. Signed-off-by: Jussi Maki --- pkg/loadbalancer/backend.go | 16 ++++ pkg/loadbalancer/loadbalancer.go | 10 +++ pkg/loadbalancer/loadbalancer_test.go | 22 +++++ pkg/loadbalancer/redirectpolicy/controller.go | 6 +- pkg/loadbalancer/zz_generated.deepequal.go | 88 +++++++++++++++++++ 5 files changed, 141 insertions(+), 1 deletion(-) diff --git a/pkg/loadbalancer/backend.go b/pkg/loadbalancer/backend.go index cd77ebaf2fcdd..9cb975c844e6f 100644 --- a/pkg/loadbalancer/backend.go +++ b/pkg/loadbalancer/backend.go @@ -22,6 +22,8 @@ const ( ) // BackendParams defines the parameters of a backend for insertion into the backends table. +// +deepequal-gen=true +// +deepequal-gen:private-method=true type BackendParams struct { Address L3n4Addr @@ -55,6 +57,7 @@ type BackendParams struct { Unhealthy bool // UnhealthyUpdatedAt is the timestamp for when [Unhealthy] was last updated. + // +deepequal-gen=false UnhealthyUpdatedAt *time.Time } @@ -78,8 +81,21 @@ func (bep *BackendParams) GetZone() string { return bep.Zone.Zone } +func (bep *BackendParams) GetUnhealthyUpdatedAt() time.Time { + if bep.UnhealthyUpdatedAt == nil { + return time.Time{} + } + return *bep.UnhealthyUpdatedAt +} + +func (bep *BackendParams) DeepEqual(other *BackendParams) bool { + return bep.deepEqual(other) && + bep.GetUnhealthyUpdatedAt().Equal(other.GetUnhealthyUpdatedAt()) +} + // BackendZone locates the backend to a specific zone and specifies what zones // the backend should be used in for topology aware routing. +// +deepequal-gen=true type BackendZone struct { // Zone where backend is located. Zone string diff --git a/pkg/loadbalancer/loadbalancer.go b/pkg/loadbalancer/loadbalancer.go index ac652a8879c97..c978ef55e4e7b 100644 --- a/pkg/loadbalancer/loadbalancer.go +++ b/pkg/loadbalancer/loadbalancer.go @@ -832,6 +832,16 @@ func (l L3n4Addr) AddrCluster() cmtypes.AddrCluster { return l.rep().addrCluster } +func (l *L3n4Addr) DeepEqual(other *L3n4Addr) bool { + if l == nil && other == nil { + return true + } + if other == nil || l == nil { + return false + } + return *l == *other +} + // NewL3n4Addr creates a new L3n4Addr. func NewL3n4Addr(protocol L4Type, addrCluster cmtypes.AddrCluster, portNumber uint16, scope uint8) L3n4Addr { lbport := NewL4Addr(protocol, portNumber) diff --git a/pkg/loadbalancer/loadbalancer_test.go b/pkg/loadbalancer/loadbalancer_test.go index 545571a2772e9..26cc780bbbe8d 100644 --- a/pkg/loadbalancer/loadbalancer_test.go +++ b/pkg/loadbalancer/loadbalancer_test.go @@ -79,6 +79,28 @@ func TestL4Addr_Equals(t *testing.T) { } } +func TestL3n4Addr_DeepEqual(t *testing.T) { + var v4, v6 L3n4Addr + require.NoError(t, v4.ParseFromString("1.1.1.1:80/TCP")) + require.NoError(t, v6.ParseFromString("[2001::1]:80/TCP")) + + assert.True(t, v4.DeepEqual(&v4)) + assert.True(t, v6.DeepEqual(&v6)) + assert.False(t, v4.DeepEqual(&v6)) + assert.False(t, v6.DeepEqual(&v4)) + + var nilp *L3n4Addr + assert.True(t, nilp.DeepEqual(nil)) + assert.False(t, nilp.DeepEqual(&v4)) + + var v4_2, v6_2 L3n4Addr + require.NoError(t, v4_2.ParseFromString("1.1.1.1:80/TCP")) + require.NoError(t, v6_2.ParseFromString("[2001::1]:80/TCP")) + + assert.True(t, v4.DeepEqual(&v4_2)) + assert.True(t, v6.DeepEqual(&v6_2)) +} + func TestL3n4Addr_Bytes(t *testing.T) { v4 := cmtypes.MustParseAddrCluster("1.1.1.1") v4c3 := cmtypes.MustParseAddrCluster("1.1.1.1@3") diff --git a/pkg/loadbalancer/redirectpolicy/controller.go b/pkg/loadbalancer/redirectpolicy/controller.go index e7204a61424a8..08fbb4acaccd3 100644 --- a/pkg/loadbalancer/redirectpolicy/controller.go +++ b/pkg/loadbalancer/redirectpolicy/controller.go @@ -404,8 +404,12 @@ func (c *lrpController) updateRedirectBackends(wtxn writer.WriteTxn, ws *statedb newCount := len(beps) orphanCount := 0 for be := range c.p.Writer.Backends().List(wtxn, lb.BackendByServiceName(lrpServiceName)) { + inst := be.GetInstance(lrpServiceName) + if inst == nil { + continue + } if slices.ContainsFunc(beps, func(bep lb.BackendParams) bool { - return bep.Address == be.Address + return inst.DeepEqual(&bep) }) { newCount-- } else { diff --git a/pkg/loadbalancer/zz_generated.deepequal.go b/pkg/loadbalancer/zz_generated.deepequal.go index 405ce2a3781a9..ce8f432a6e5fd 100644 --- a/pkg/loadbalancer/zz_generated.deepequal.go +++ b/pkg/loadbalancer/zz_generated.deepequal.go @@ -8,6 +8,94 @@ package loadbalancer +// deepEqual is an autogenerated deepequal function, deeply comparing the +// receiver with other. in must be non-nil. +func (in *BackendParams) deepEqual(other *BackendParams) bool { + if other == nil { + return false + } + + if !in.Address.DeepEqual(&other.Address) { + return false + } + + if ((in.PortNames != nil) && (other.PortNames != nil)) || ((in.PortNames == nil) != (other.PortNames == nil)) { + in, other := &in.PortNames, &other.PortNames + if other == nil { + return false + } + + if len(*in) != len(*other) { + return false + } else { + for i, inElement := range *in { + if inElement != (*other)[i] { + return false + } + } + } + } + + if in.Weight != other.Weight { + return false + } + if in.NodeName != other.NodeName { + return false + } + if (in.Zone == nil) != (other.Zone == nil) { + return false + } else if in.Zone != nil { + if !in.Zone.DeepEqual(other.Zone) { + return false + } + } + + if in.ClusterID != other.ClusterID { + return false + } + if in.Source != other.Source { + return false + } + if in.State != other.State { + return false + } + if in.Unhealthy != other.Unhealthy { + return false + } + + return true +} + +// DeepEqual is an autogenerated deepequal function, deeply comparing the +// receiver with other. in must be non-nil. +func (in *BackendZone) DeepEqual(other *BackendZone) bool { + if other == nil { + return false + } + + if in.Zone != other.Zone { + return false + } + if ((in.ForZones != nil) && (other.ForZones != nil)) || ((in.ForZones == nil) != (other.ForZones == nil)) { + in, other := &in.ForZones, &other.ForZones + if other == nil { + return false + } + + if len(*in) != len(*other) { + return false + } else { + for i, inElement := range *in { + if inElement != (*other)[i] { + return false + } + } + } + } + + return true +} + // DeepEqual is an autogenerated deepequal function, deeply comparing the // receiver with other. in must be non-nil. func (in *Config) DeepEqual(other *Config) bool { From 398fe8775240370dac0e88347959dabf6530356d Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Tue, 16 Sep 2025 15:34:48 +0200 Subject: [PATCH 079/176] redirectpolicy: Forget watch set on deletion When an orphan LRP was deleted we didn't forget the WatchSet for it. This was then reused when an LRP with the same name was added back. This didn't cause actual problems since the WatchSet contained a watch channel for the LRP itself which was removed and thus the channel was closed and we processed the new LRP. So this commit just makes sure we don't hold onto the old watch channels. Extend the tests to remove and add a policy to test this edge case even though it wasn't broken. Signed-off-by: Jussi Maki --- pkg/loadbalancer/redirectpolicy/controller.go | 6 ++++-- .../redirectpolicy/testdata/address.txtar | 20 ++++++++++++++++++ .../redirectpolicy/testdata/service.txtar | 21 +++++++++++++++---- 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/pkg/loadbalancer/redirectpolicy/controller.go b/pkg/loadbalancer/redirectpolicy/controller.go index 08fbb4acaccd3..91a3e799fe9f5 100644 --- a/pkg/loadbalancer/redirectpolicy/controller.go +++ b/pkg/loadbalancer/redirectpolicy/controller.go @@ -152,6 +152,7 @@ func (c *lrpController) run(ctx context.Context, health cell.Health) error { cleanup(wtxn) } delete(cleanupFuncs, lrpID) + delete(watchSets, lrpID) if c.p.LRPMetrics != nil { c.p.LRPMetrics.DelLRPConfig(lrpID) } @@ -274,7 +275,7 @@ func (c *lrpController) processRedirectPolicy(wtxn writer.WriteTxn, lrpID lb.Ser matchingPods = append(matchingPods, getPodInfo(pod)) } } - c.updateRedirectBackends(wtxn, ws, lrp, matchingPods) + c.updateRedirectBackends(wtxn, lrp, matchingPods) c.updateSkipLB(wtxn, ws, lrp, matchingPods) c.updateRedirects(wtxn, ws, cleanup, lrp, matchingPods) @@ -356,7 +357,7 @@ func (c *lrpController) updateRedirects(wtxn writer.WriteTxn, ws *statedb.WatchS return cleanup } -func (c *lrpController) updateRedirectBackends(wtxn writer.WriteTxn, ws *statedb.WatchSet, lrp *LocalRedirectPolicy, pods []podInfo) { +func (c *lrpController) updateRedirectBackends(wtxn writer.WriteTxn, lrp *LocalRedirectPolicy, pods []podInfo) { portNameMatches := func(portName string) bool { for bePortName := range lrp.BackendPortsByPortName { if string(bePortName) == strings.ToLower(portName) { @@ -580,6 +581,7 @@ func (c *lrpController) frontendsToSkip(txn statedb.ReadTxn, ws *statedb.WatchSe feAddrs := []lb.L3n4Addr{} fes, watch := c.p.Writer.Frontends().ListWatch(txn, lb.FrontendByServiceName(targetName)) ws.Add(watch) + for fe := range fes { if lrp.LRPType == lrpConfigTypeAddr || fe.RedirectTo != nil { feAddrs = append(feAddrs, fe.Address) diff --git a/pkg/loadbalancer/redirectpolicy/testdata/address.txtar b/pkg/loadbalancer/redirectpolicy/testdata/address.txtar index 71ecccae8b1c1..dc29061805ad4 100644 --- a/pkg/loadbalancer/redirectpolicy/testdata/address.txtar +++ b/pkg/loadbalancer/redirectpolicy/testdata/address.txtar @@ -45,6 +45,18 @@ db/cmp localredirectpolicies lrp-fixed.table lb/maps-dump lbmaps.actual * cmp lbmaps.actual maps-v4.expected +# Policy can be deleted and added back and we'll get to same state +k8s/delete lrp-addr.yaml + +# Policy and service table is now empty +* db/empty localredirectpolicies services + +# Adding it back gets us to the same state as before +k8s/add lrp-addr.yaml +db/cmp localredirectpolicies lrp-fixed.table +db/cmp services services-ipv4.table +db/cmp frontends frontends-ipv4.table + # Remove the remaining policy k8s/delete lrp-addr.yaml @@ -68,11 +80,19 @@ Name Source test/lrp-addr-ipv6:local-redirect k8s test/lrp-addr:local-redirect k8s +-- services-ipv4.table -- +Name Source +test/lrp-addr:local-redirect k8s + -- frontends.table -- Address Type ServiceName Backends RedirectTo Status 169.254.169.254:8080/TCP LocalRedirect test/lrp-addr:local-redirect 10.244.2.1:80/TCP Done [2001::1]:8080/TCP LocalRedirect test/lrp-addr-ipv6:local-redirect [2002::2]:80/TCP Done +-- frontends-ipv4.table -- +Address Type ServiceName Backends RedirectTo Status +169.254.169.253:8080/TCP LocalRedirect test/lrp-addr:local-redirect 10.244.2.1:80/TCP Done + -- backends.table -- Address Instances 10.244.2.1:80/TCP test/lrp-addr-ipv6:local-redirect (tcp), test/lrp-addr:local-redirect (tcp) diff --git a/pkg/loadbalancer/redirectpolicy/testdata/service.txtar b/pkg/loadbalancer/redirectpolicy/testdata/service.txtar index c0fddcff1fcb6..f57bc10ac53eb 100644 --- a/pkg/loadbalancer/redirectpolicy/testdata/service.txtar +++ b/pkg/loadbalancer/redirectpolicy/testdata/service.txtar @@ -53,6 +53,19 @@ sed 'name: "foo"' 'name: "tcp"' lrp-svc.yaml k8s/update lrp-svc.yaml db/cmp frontends frontends.table +# Policy can be deleted and added back and we'll get to same state +k8s/delete lrp-svc.yaml + +# Policy table is now empty +* db/empty localredirectpolicies +db/cmp services services-before.table + +# Adding it back gets us to the same state as before +k8s/add lrp-svc.yaml +db/cmp localredirectpolicies lrp.table +db/cmp services services.table +db/cmp frontends frontends.table + # Removing policy reverts (but we'll get new backend id) k8s/delete lrp-svc.yaml db/cmp services services-before.table @@ -160,8 +173,8 @@ SVC: ID=7 ADDR=[1001::1]:7070/UDP SLOT=1 BEID=11 COUNT=0 QCOUNT=0 FLAGS=LocalRed SVC: ID=8 ADDR=[1001::1]:8080/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=LocalRedirect SVC: ID=8 ADDR=[1001::1]:8080/TCP SLOT=1 BEID=12 COUNT=0 QCOUNT=0 FLAGS=LocalRedirect -- maps-after.expected -- -BE: ID=16 ADDR=10.244.1.1:7070/UDP STATE=active -BE: ID=17 ADDR=10.244.1.1:8080/TCP STATE=active +BE: ID=22 ADDR=10.244.1.1:7070/UDP STATE=active +BE: ID=23 ADDR=10.244.1.1:8080/TCP STATE=active REV: ID=5 ADDR=169.254.169.254:7070 REV: ID=6 ADDR=169.254.169.254:8080 REV: ID=7 ADDR=[1001::1]:7070 @@ -169,9 +182,9 @@ REV: ID=8 ADDR=[1001::1]:8080 SVC: ID=0 ADDR=169.254.169.254:0/ANY SLOT=0 LBALG=undef AFFTimeout=0 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable SVC: ID=0 ADDR=[1001::1]:0/ANY SLOT=0 LBALG=undef AFFTimeout=0 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable SVC: ID=5 ADDR=169.254.169.254:7070/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=ClusterIP+non-routable -SVC: ID=5 ADDR=169.254.169.254:7070/UDP SLOT=1 BEID=16 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable +SVC: ID=5 ADDR=169.254.169.254:7070/UDP SLOT=1 BEID=22 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable SVC: ID=6 ADDR=169.254.169.254:8080/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=1 QCOUNT=0 FLAGS=ClusterIP+non-routable -SVC: ID=6 ADDR=169.254.169.254:8080/TCP SLOT=1 BEID=17 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable +SVC: ID=6 ADDR=169.254.169.254:8080/TCP SLOT=1 BEID=23 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable SVC: ID=7 ADDR=[1001::1]:7070/UDP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable SVC: ID=8 ADDR=[1001::1]:8080/TCP SLOT=0 LBALG=undef AFFTimeout=0 COUNT=0 QCOUNT=0 FLAGS=ClusterIP+non-routable -- lrp-svc.yaml -- From 625234d2bb5c0be365b1df8880457612c47139dd Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Wed, 17 Sep 2025 12:16:38 +0200 Subject: [PATCH 080/176] pkg/loadbalancer/tests: Fix expected output in graceful-termination The other backend should have been removed. The expected output had both and due to timing this only failed in stress testing. Signed-off-by: Jussi Maki --- pkg/loadbalancer/tests/testdata/graceful-termination.txtar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/loadbalancer/tests/testdata/graceful-termination.txtar b/pkg/loadbalancer/tests/testdata/graceful-termination.txtar index 234005a0d5263..6aedb52ecadc2 100644 --- a/pkg/loadbalancer/tests/testdata/graceful-termination.txtar +++ b/pkg/loadbalancer/tests/testdata/graceful-termination.txtar @@ -121,7 +121,7 @@ Address Type ServiceName Status Backends -- frontends-terminating4.table -- Address Type ServiceName Status Backends -10.96.116.33:8081/TCP ClusterIP test/graceful-term-svc Done 10.244.0.112:8081/TCP, 10.244.0.113:8081/TCP +10.96.116.33:8081/TCP ClusterIP test/graceful-term-svc Done 10.244.0.113:8081/TCP -- backends.table -- Address Instances NodeName From 2f3377286f27d324cbe8e94db62c8b99a45bfde6 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 8 Sep 2025 21:26:01 +0200 Subject: [PATCH 081/176] Revert "helm: add clustermesh nodeport config warning about #24692" This reverts commit 9e83a6f79940c86a95fff33de89d7ded225da25c. The bug described in this commit has been fixed in 12acdb50e643 ("bpf/socklb: Don't resolve remote cluster NodePort services"). We can therefore remove the warning. Reported-by: Marco Iorio Signed-off-by: Paul Chaignon --- Documentation/helm-values.rst | 2 +- install/kubernetes/cilium/README.md | 2 +- install/kubernetes/cilium/values.yaml | 8 -------- install/kubernetes/cilium/values.yaml.tmpl | 8 -------- 4 files changed, 2 insertions(+), 18 deletions(-) diff --git a/Documentation/helm-values.rst b/Documentation/helm-values.rst index 55546f806c263..985bf221308bd 100644 --- a/Documentation/helm-values.rst +++ b/Documentation/helm-values.rst @@ -845,7 +845,7 @@ - list - ``[]`` * - :spelling:ignore:`clustermesh.apiserver.service.nodePort` - - Optional port to use as the node port for apiserver access. WARNING: make sure to configure a different NodePort in each cluster if kube-proxy replacement is enabled, as Cilium is currently affected by a known bug (#24692) when NodePorts are handled by the KPR implementation. If a service with the same NodePort exists both in the local and the remote cluster, all traffic originating from inside the cluster and targeting the corresponding NodePort will be redirected to a local backend, regardless of whether the destination node belongs to the local or the remote cluster. + - Optional port to use as the node port for apiserver access. - int - ``32379`` * - :spelling:ignore:`clustermesh.apiserver.service.type` diff --git a/install/kubernetes/cilium/README.md b/install/kubernetes/cilium/README.md index a5e59e75f071f..b6afc6e8ac1ee 100644 --- a/install/kubernetes/cilium/README.md +++ b/install/kubernetes/cilium/README.md @@ -261,7 +261,7 @@ contributors across the globe, there is almost always someone available to help. | clustermesh.apiserver.service.loadBalancerClass | string | `nil` | Configure a loadBalancerClass. Allows to configure the loadBalancerClass on the clustermesh-apiserver LB service in case the Service type is set to LoadBalancer (requires Kubernetes 1.24+). | | clustermesh.apiserver.service.loadBalancerIP | string | `nil` | Configure a specific loadBalancerIP. Allows to configure a specific loadBalancerIP on the clustermesh-apiserver LB service in case the Service type is set to LoadBalancer. | | clustermesh.apiserver.service.loadBalancerSourceRanges | list | `[]` | Configure loadBalancerSourceRanges. Allows to configure the source IP ranges allowed to access the clustermesh-apiserver LB service in case the Service type is set to LoadBalancer. | -| clustermesh.apiserver.service.nodePort | int | `32379` | Optional port to use as the node port for apiserver access. WARNING: make sure to configure a different NodePort in each cluster if kube-proxy replacement is enabled, as Cilium is currently affected by a known bug (#24692) when NodePorts are handled by the KPR implementation. If a service with the same NodePort exists both in the local and the remote cluster, all traffic originating from inside the cluster and targeting the corresponding NodePort will be redirected to a local backend, regardless of whether the destination node belongs to the local or the remote cluster. | +| clustermesh.apiserver.service.nodePort | int | `32379` | Optional port to use as the node port for apiserver access. | | clustermesh.apiserver.service.type | string | `"NodePort"` | The type of service used for apiserver access. | | clustermesh.apiserver.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for the clustermesh-apiserver deployment | | clustermesh.apiserver.tls.admin | object | `{"cert":"","key":""}` | base64 encoded PEM values for the clustermesh-apiserver admin certificate and private key. Used if 'auto' is not enabled. | diff --git a/install/kubernetes/cilium/values.yaml b/install/kubernetes/cilium/values.yaml index 8826e0fd17c91..212fde75fc5d2 100644 --- a/install/kubernetes/cilium/values.yaml +++ b/install/kubernetes/cilium/values.yaml @@ -3510,14 +3510,6 @@ clustermesh: # -- The type of service used for apiserver access. type: NodePort # -- Optional port to use as the node port for apiserver access. - # - # WARNING: make sure to configure a different NodePort in each cluster if - # kube-proxy replacement is enabled, as Cilium is currently affected by a known - # bug (#24692) when NodePorts are handled by the KPR implementation. If a service - # with the same NodePort exists both in the local and the remote cluster, all - # traffic originating from inside the cluster and targeting the corresponding - # NodePort will be redirected to a local backend, regardless of whether the - # destination node belongs to the local or the remote cluster. nodePort: 32379 # -- Annotations for the clustermesh-apiserver service. # Example annotations to configure an internal load balancer on different cloud providers: diff --git a/install/kubernetes/cilium/values.yaml.tmpl b/install/kubernetes/cilium/values.yaml.tmpl index 4b13c4c4b81ca..188e3ca978aca 100644 --- a/install/kubernetes/cilium/values.yaml.tmpl +++ b/install/kubernetes/cilium/values.yaml.tmpl @@ -3540,14 +3540,6 @@ clustermesh: # -- The type of service used for apiserver access. type: NodePort # -- Optional port to use as the node port for apiserver access. - # - # WARNING: make sure to configure a different NodePort in each cluster if - # kube-proxy replacement is enabled, as Cilium is currently affected by a known - # bug (#24692) when NodePorts are handled by the KPR implementation. If a service - # with the same NodePort exists both in the local and the remote cluster, all - # traffic originating from inside the cluster and targeting the corresponding - # NodePort will be redirected to a local backend, regardless of whether the - # destination node belongs to the local or the remote cluster. nodePort: 32379 # -- Annotations for the clustermesh-apiserver service. # Example annotations to configure an internal load balancer on different cloud providers: From 68965977e33b4e2a8c2d64a9b1be5ffe89e87045 Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Tue, 9 Sep 2025 13:22:04 +0200 Subject: [PATCH 082/176] verifier-complexity: Add load permutation for `EthHeaderLength` Add a load permutation of `EthHeaderLength`, which is 14 by default, but can be set to 0 when loading programs for l2-less devices. Signed-off-by: Dylan Reimerink --- pkg/datapath/loader/verifier_load_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/datapath/loader/verifier_load_test.go b/pkg/datapath/loader/verifier_load_test.go index 016dc8fb1ad5c..4db19606bda38 100644 --- a/pkg/datapath/loader/verifier_load_test.go +++ b/pkg/datapath/loader/verifier_load_test.go @@ -24,11 +24,17 @@ func lxcLoadPermutations() iter.Seq[*config.BPFLXC] { func hostLoadPermutations() iter.Seq[*config.BPFHost] { return func(yield func(*config.BPFHost) bool) { - for permutation := range permute(2) { + for permutation := range permute(3) { cfg := config.NewBPFHost(*config.NewNode()) cfg.Node.TracingIPOptionType = 1 cfg.SecctxFromIPCache = permutation[0] cfg.EnableRemoteNodeMasquerade = permutation[1] + if permutation[2] { + cfg.EthHeaderLength = 0 + } else { + cfg.EthHeaderLength = 14 + } + if !yield(cfg) { return } From de679382fe1ed0b325c4d3cc76ab88af6752fac1 Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Tue, 9 Sep 2025 13:26:21 +0200 Subject: [PATCH 083/176] ICMPv6: Fix verifier error when loading on l2-less devices The ICMPv6 code was assuming that `ETH_HLEN` is always equal to the size of `struct ethhdr`, which is not the case on L3 devices. This leads to verifier errors when loading with l2 announcements on a L3 device. Signed-off-by: Dylan Reimerink --- bpf/lib/icmp6.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bpf/lib/icmp6.h b/bpf/lib/icmp6.h index 25e870613b915..dc45dd00fae0e 100644 --- a/bpf/lib/icmp6.h +++ b/bpf/lib/icmp6.h @@ -534,6 +534,10 @@ bool icmp6_ndisc_validate(struct __ctx_buff *ctx, const struct ipv6hdr *ip6, struct ethhdr *eth = ctx_data(ctx); union macaddr *dmac; + /* On l2-less devices there is no MAC address, and we cannot proceed */ + if (sizeof(struct ethhdr) != ETH_HLEN) + return false; + if ((void *)eth + ETH_HLEN > ctx_data_end(ctx)) return false; From 92ec20bb3121e781175255d9310f93e46cd29bfd Mon Sep 17 00:00:00 2001 From: alimehrabikoshki <79400736+alimehrabikoshki@users.noreply.github.com> Date: Thu, 21 Aug 2025 16:42:02 +0100 Subject: [PATCH 084/176] operator/pkg/lbipam: fix LoadBalancerIPPool conditions update logic When deleting services that have an IP assigned from a LoadBalancerIPPool, the cilium.io/IPsUsed condition is not decremented properly. This commit adds a test for this behaviour. Additionally, when shrinking an IP pool, the IPsAvailable condition is not decremented properly. Both issues have the same root cause of setPoolCondition() being chained with ||, leading to short-circuit execution of only the conditions up to the first "true" return. Signed-off-by: alimehrabikoshki <79400736+alimehrabikoshki@users.noreply.github.com> --- operator/pkg/lbipam/lbipam.go | 10 ++-- operator/pkg/lbipam/lbipam_test.go | 74 ++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 6 deletions(-) diff --git a/operator/pkg/lbipam/lbipam.go b/operator/pkg/lbipam/lbipam.go index b3e69d6dafecf..82cb6211a4465 100644 --- a/operator/pkg/lbipam/lbipam.go +++ b/operator/pkg/lbipam/lbipam.go @@ -1679,17 +1679,15 @@ func (ipam *LBIPAM) updatePoolCounts(pool *cilium_api_v2.CiliumLoadBalancerIPPoo totalCounts.Used += used } - if ipam.setPoolCondition(pool, ciliumPoolIPsTotalCondition, meta_v1.ConditionUnknown, "noreason", totalCounts.Total.String()) || - ipam.setPoolCondition(pool, ciliumPoolIPsAvailableCondition, meta_v1.ConditionUnknown, "noreason", totalCounts.Available.String()) || - ipam.setPoolCondition(pool, ciliumPoolIPsUsedCondition, meta_v1.ConditionUnknown, "noreason", strconv.FormatUint(totalCounts.Used, 10)) { - modifiedPoolStatus = true - } + totalChanged := ipam.setPoolCondition(pool, ciliumPoolIPsTotalCondition, meta_v1.ConditionUnknown, "noreason", totalCounts.Total.String()) + availableChanged := ipam.setPoolCondition(pool, ciliumPoolIPsAvailableCondition, meta_v1.ConditionUnknown, "noreason", totalCounts.Available.String()) + usedChanged := ipam.setPoolCondition(pool, ciliumPoolIPsUsedCondition, meta_v1.ConditionUnknown, "noreason", strconv.FormatUint(totalCounts.Used, 10)) available, _ := new(big.Float).SetInt(totalCounts.Available).Float64() ipam.metrics.AvailableIPs.WithLabelValues(pool.Name).Set(available) ipam.metrics.UsedIPs.WithLabelValues(pool.Name).Set(float64(totalCounts.Used)) - return modifiedPoolStatus + return totalChanged || availableChanged || usedChanged } func (ipam *LBIPAM) setPoolCondition( diff --git a/operator/pkg/lbipam/lbipam_test.go b/operator/pkg/lbipam/lbipam_test.go index 4422e1d726dc7..4cff2cc71e4cc 100644 --- a/operator/pkg/lbipam/lbipam_test.go +++ b/operator/pkg/lbipam/lbipam_test.go @@ -824,6 +824,9 @@ func TestServiceDelete(t *testing.T) { }, }, } + ipsUsed := getPoolStatusCount(fixture.GetPool("pool-a"), ciliumPoolIPsUsedCondition) + require.Equal(t, "0", ipsUsed) + fixture.UpsertSvc(t, svcA) svcA = fixture.GetSvc("default", "service-a") @@ -834,6 +837,8 @@ func TestServiceDelete(t *testing.T) { if net.ParseIP(svcA.Status.LoadBalancer.Ingress[0].IP).To4() == nil { t.Error("Expected service to receive a IPv4 address") } + ipsUsed = getPoolStatusCount(fixture.GetPool("pool-a"), ciliumPoolIPsUsedCondition) + require.Equal(t, "1", ipsUsed) svcIP := svcA.Status.LoadBalancer.Ingress[0].IP @@ -846,6 +851,9 @@ func TestServiceDelete(t *testing.T) { if _, has := fixture.lbipam.rangesStore.ranges[0].alloc.Get(netip.MustParseAddr(svcIP)); has { t.Fatal("Service IP hasn't been released") } + ipsUsed = getPoolStatusCount(fixture.GetPool("pool-a"), ciliumPoolIPsUsedCondition) + require.Equal(t, "0", ipsUsed) + } // TestReallocOnInit tests the edge case where an existing service has an IP assigned for which there is no IP Pool. @@ -2856,3 +2864,69 @@ func TestLBIPAMRestartOnFullPool(t *testing.T) { } } } + +func TestPoolShrink(t *testing.T) { + // Pool with two blocks + poolA := mkPool(poolAUID, "pool-a", []string{"10.0.10.0/24", "10.0.11.0/24"}) + fixture := mkTestFixture(t, true, true) + fixture.UpsertPool(t, poolA) + + // Check initial state + p := fixture.GetPool("pool-a") + totalCount := getPoolStatusCount(p, ciliumPoolIPsTotalCondition) + require.Equal(t, "512", totalCount, "IPsTotal should be 512 initially") + availableCount := getPoolStatusCount(p, ciliumPoolIPsAvailableCondition) + require.Equal(t, "512", availableCount, "IPsAvailable should be 512 initially") + usedCount := getPoolStatusCount(p, ciliumPoolIPsUsedCondition) + require.Equal(t, "0", usedCount, "IPsUsed should be 0 initially") + + // Create service to allocate one IP + svcA := &slim_core_v1.Service{ + ObjectMeta: slim_meta_v1.ObjectMeta{ + Name: "service-a", + Namespace: "default", + UID: serviceAUID, + }, + Spec: slim_core_v1.ServiceSpec{ + Type: slim_core_v1.ServiceTypeLoadBalancer, + IPFamilies: []slim_core_v1.IPFamily{ + slim_core_v1.IPv4Protocol, + }, + }, + } + fixture.UpsertSvc(t, svcA) + svcA = fixture.GetSvc("default", "service-a") + require.Len(t, svcA.Status.LoadBalancer.Ingress, 1, "Expected service to receive exactly one ingress IP") + + p = fixture.GetPool("pool-a") + require.Equal(t, "512", getPoolStatusCount(p, ciliumPoolIPsTotalCondition), "IPsTotal should be 512") + require.Equal(t, "511", getPoolStatusCount(p, ciliumPoolIPsAvailableCondition), "IPsAvailable should be 511") + require.Equal(t, "1", getPoolStatusCount(p, ciliumPoolIPsUsedCondition), "IPsUsed should be 1") + + svcIP, err := netip.ParseAddr(svcA.Status.LoadBalancer.Ingress[0].IP) + require.NoError(t, err) + blockToKeep := "10.0.10.0/24" + if !netip.MustParsePrefix(blockToKeep).Contains(svcIP) { + blockToKeep = "10.0.11.0/24" + } + + poolA = fixture.GetPool("pool-a") + poolA.Spec.Blocks = []cilium_api_v2.CiliumLoadBalancerIPPoolIPBlock{ + {Cidr: cilium_api_v2.IPv4orIPv6CIDR(blockToKeep)}, + } + fixture.UpsertPool(t, poolA) + + p = fixture.GetPool("pool-a") + require.Equal(t, "256", getPoolStatusCount(p, ciliumPoolIPsTotalCondition), "IPsTotal should be 256") + require.Equal(t, "255", getPoolStatusCount(p, ciliumPoolIPsAvailableCondition), "IPsAvailable should be 255") + require.Equal(t, "1", getPoolStatusCount(p, ciliumPoolIPsUsedCondition), "IPsUsed should be 1") +} + +func getPoolStatusCount(pool *cilium_api_v2.CiliumLoadBalancerIPPool, condType string) string { + for _, cond := range pool.Status.Conditions { + if cond.Type == condType { + return cond.Message + } + } + return "" +} From 521fc4a63145621790ca826af351a64fb99cbc6d Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 07:18:52 +0000 Subject: [PATCH 085/176] chore(deps): update renovate dependencies to v41.116.6 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/renovate-config-validator.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate-config-validator.yaml b/.github/workflows/renovate-config-validator.yaml index 7bf7fb3f55d05..1c231163d8894 100644 --- a/.github/workflows/renovate-config-validator.yaml +++ b/.github/workflows/renovate-config-validator.yaml @@ -18,7 +18,7 @@ jobs: - name: Validate configuration run: | # renovate: datasource=docker - export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.97.7@sha256:e9016393f1deb97b58bd3d79606dbc166d9a308f24632af7a4f5af5b6f4640f2 + export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.116.6@sha256:3a49664d9bb6cd393d7cec7b09f9e2cb7ed08731978d4fe294a1b349052f1c47 docker run --rm --entrypoint "renovate-config-validator" \ -v "${{ github.workspace }}/.github/renovate.json5":"/renovate.json5" \ ${RENOVATE_IMAGE} "/renovate.json5" diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 7d5bf3ce69c06..88977f82e8ff2 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -40,7 +40,7 @@ jobs: LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} with: # renovate: datasource=github-releases depName=renovatebot/renovate - renovate-version: 41.97.7 + renovate-version: 41.116.6 docker-user: root docker-cmd-file: .github/actions/renovate/entrypoint.sh configurationFile: .github/renovate.json5 From ca6a68939c98b6f08143d953ef523b6bf3aa9fef Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 07:18:35 +0000 Subject: [PATCH 086/176] fix(deps): update kubernetes packages to v0.34.1 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- go.mod | 20 +++++----- go.sum | 40 +++++++++---------- .../pkg/apiserver/validation/formats.go | 8 ++-- vendor/modules.txt | 20 +++++----- 4 files changed, 45 insertions(+), 43 deletions(-) diff --git a/go.mod b/go.mod index 4de6874524ace..aa49b97e01c72 100644 --- a/go.mod +++ b/go.mod @@ -123,16 +123,16 @@ require ( google.golang.org/grpc v1.75.0 google.golang.org/protobuf v1.36.8 helm.sh/helm/v3 v3.18.6 - k8s.io/api v0.34.0 - k8s.io/apiextensions-apiserver v0.34.0 - k8s.io/apimachinery v0.34.0 - k8s.io/cli-runtime v0.34.0 - k8s.io/client-go v0.34.0 - k8s.io/component-base v0.34.0 + k8s.io/api v0.34.1 + k8s.io/apiextensions-apiserver v0.34.1 + k8s.io/apimachinery v0.34.1 + k8s.io/cli-runtime v0.34.1 + k8s.io/client-go v0.34.1 + k8s.io/component-base v0.34.1 k8s.io/endpointslice v0.34.0 k8s.io/klog/v2 v2.130.1 - k8s.io/kubectl v0.34.0 - k8s.io/metrics v0.34.0 + k8s.io/kubectl v0.34.1 + k8s.io/metrics v0.34.1 k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d sigs.k8s.io/controller-runtime v0.21.0 sigs.k8s.io/gateway-api v1.3.1-0.20250611112659-17a60f668a0d @@ -315,8 +315,8 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.0 // indirect - k8s.io/apiserver v0.34.0 // indirect - k8s.io/code-generator v0.34.0 // indirect + k8s.io/apiserver v0.34.1 // indirect + k8s.io/code-generator v0.34.1 // indirect k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect oras.land/oras-go/v2 v2.6.0 // indirect diff --git a/go.sum b/go.sum index 9450668ab6e1f..3bc0bd6bab4f4 100644 --- a/go.sum +++ b/go.sum @@ -1042,22 +1042,22 @@ helm.sh/helm/v3 v3.18.6 h1:S/2CqcYnNfLckkHLI0VgQbxgcDaU3N4A/46E3n9wSNY= helm.sh/helm/v3 v3.18.6/go.mod h1:L/dXDR2r539oPlFP1PJqKAC1CUgqHJDLkxKpDGrWnyg= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.34.0 h1:L+JtP2wDbEYPUeNGbeSa/5GwFtIA662EmT2YSLOkAVE= -k8s.io/api v0.34.0/go.mod h1:YzgkIzOOlhl9uwWCZNqpw6RJy9L2FK4dlJeayUoydug= -k8s.io/apiextensions-apiserver v0.34.0 h1:B3hiB32jV7BcyKcMU5fDaDxk882YrJ1KU+ZSkA9Qxoc= -k8s.io/apiextensions-apiserver v0.34.0/go.mod h1:hLI4GxE1BDBy9adJKxUxCEHBGZtGfIg98Q+JmTD7+g0= -k8s.io/apimachinery v0.34.0 h1:eR1WO5fo0HyoQZt1wdISpFDffnWOvFLOOeJ7MgIv4z0= -k8s.io/apimachinery v0.34.0/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.0 h1:Z51fw1iGMqN7uJ1kEaynf2Aec1Y774PqU+FVWCFV3Jg= -k8s.io/apiserver v0.34.0/go.mod h1:52ti5YhxAvewmmpVRqlASvaqxt0gKJxvCeW7ZrwgazQ= -k8s.io/cli-runtime v0.34.0 h1:N2/rUlJg6TMEBgtQ3SDRJwa8XyKUizwjlOknT1mB2Cw= -k8s.io/cli-runtime v0.34.0/go.mod h1:t/skRecS73Piv+J+FmWIQA2N2/rDjdYSQzEE67LUUs8= -k8s.io/client-go v0.34.0 h1:YoWv5r7bsBfb0Hs2jh8SOvFbKzzxyNo0nSb0zC19KZo= -k8s.io/client-go v0.34.0/go.mod h1:ozgMnEKXkRjeMvBZdV1AijMHLTh3pbACPvK7zFR+QQY= -k8s.io/code-generator v0.34.0 h1:Ze2i1QsvUprIlX3oHiGv09BFQRLCz+StA8qKwwFzees= -k8s.io/code-generator v0.34.0/go.mod h1:Py2+4w2HXItL8CGhks8uI/wS3Y93wPKO/9mBQUYNua0= -k8s.io/component-base v0.34.0 h1:bS8Ua3zlJzapklsB1dZgjEJuJEeHjj8yTu1gxE2zQX8= -k8s.io/component-base v0.34.0/go.mod h1:RSCqUdvIjjrEm81epPcjQ/DS+49fADvGSCkIP3IC6vg= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apiextensions-apiserver v0.34.1 h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI= +k8s.io/apiextensions-apiserver v0.34.1/go.mod h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/apiserver v0.34.1 h1:U3JBGdgANK3dfFcyknWde1G6X1F4bg7PXuvlqt8lITA= +k8s.io/apiserver v0.34.1/go.mod h1:eOOc9nrVqlBI1AFCvVzsob0OxtPZUCPiUJL45JOTBG0= +k8s.io/cli-runtime v0.34.1 h1:btlgAgTrYd4sk8vJTRG6zVtqBKt9ZMDeQZo2PIzbL7M= +k8s.io/cli-runtime v0.34.1/go.mod h1:aVA65c+f0MZiMUPbseU/M9l1Wo2byeaGwUuQEQVVveE= +k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= +k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= +k8s.io/code-generator v0.34.1 h1:WpphT26E+j7tEgIUfFr5WfbJrktCGzB3JoJH9149xYc= +k8s.io/code-generator v0.34.1/go.mod h1:DeWjekbDnJWRwpw3s0Jat87c+e0TgkxoR4ar608yqvg= +k8s.io/component-base v0.34.1 h1:v7xFgG+ONhytZNFpIz5/kecwD+sUhVE6HU7qQUiRM4A= +k8s.io/component-base v0.34.1/go.mod h1:mknCpLlTSKHzAQJJnnHVKqjxR7gBeHRv0rPXA7gdtQ0= k8s.io/endpointslice v0.34.0 h1:VdOz9ofkp74+SsuxEO7CEpcvsuCe7zAx0bDJdDU0114= k8s.io/endpointslice v0.34.0/go.mod h1:aUArEJwcmRHkFG91fXsMmJXlGzlsRNfWsWNlaq6Rhqo= k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q= @@ -1066,10 +1066,10 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/kubectl v0.34.0 h1:NcXz4TPTaUwhiX4LU+6r6udrlm0NsVnSkP3R9t0dmxs= -k8s.io/kubectl v0.34.0/go.mod h1:bmd0W5i+HuG7/p5sqicr0Li0rR2iIhXL0oUyLF3OjR4= -k8s.io/metrics v0.34.0 h1:nYSfG2+tnL6/MRC2I+sGHjtNEGoEoM/KktgGOoQFwws= -k8s.io/metrics v0.34.0/go.mod h1:KCuXmotE0v4AvoARKUP8NC4lUnbK/Du1mluGdor5h4M= +k8s.io/kubectl v0.34.1 h1:1qP1oqT5Xc93K+H8J7ecpBjaz511gan89KO9Vbsh/OI= +k8s.io/kubectl v0.34.1/go.mod h1:JRYlhJpGPyk3dEmJ+BuBiOB9/dAvnrALJEiY/C5qa6A= +k8s.io/metrics v0.34.1 h1:374Rexmp1xxgRt64Bi0TsjAM8cA/Y8skwCoPdjtIslE= +k8s.io/metrics v0.34.1/go.mod h1:Drf5kPfk2NJrlpcNdSiAAHn/7Y9KqxpRNagByM7Ei80= k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0= k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/formats.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/formats.go index c11f1c627a741..5c0397909b656 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/formats.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/formats.go @@ -113,9 +113,11 @@ func GetUnrecognizedFormats(schema *spec.Schema, compatibilityVersion *version.V return unrecognizedFormats } - normalized := strings.ReplaceAll(schema.Format, "-", "") // go-openapi default format name normalization - if !supportedFormatsAtVersion(compatibilityVersion).supported.Has(normalized) { - unrecognizedFormats = append(unrecognizedFormats, schema.Format) + if len(schema.Type) == 1 && schema.Type[0] == "string" { + normalized := strings.ReplaceAll(schema.Format, "-", "") // go-openapi default format name normalization + if !supportedFormatsAtVersion(compatibilityVersion).supported.Has(normalized) { + unrecognizedFormats = append(unrecognizedFormats, schema.Format) + } } return unrecognizedFormats diff --git a/vendor/modules.txt b/vendor/modules.txt index 3c8bbc50b7eff..a69de80a948af 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2012,7 +2012,7 @@ helm.sh/helm/v3/pkg/strvals helm.sh/helm/v3/pkg/time helm.sh/helm/v3/pkg/time/ctime helm.sh/helm/v3/pkg/uploader -# k8s.io/api v0.34.0 +# k8s.io/api v0.34.1 ## explicit; go 1.24.0 k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 @@ -2074,7 +2074,7 @@ k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 k8s.io/api/storagemigration/v1alpha1 -# k8s.io/apiextensions-apiserver v0.34.0 +# k8s.io/apiextensions-apiserver v0.34.1 ## explicit; go 1.24.0 k8s.io/apiextensions-apiserver/pkg/apis/apiextensions k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 @@ -2092,7 +2092,7 @@ k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextension k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1 k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake k8s.io/apiextensions-apiserver/pkg/features -# k8s.io/apimachinery v0.34.0 +# k8s.io/apimachinery v0.34.1 ## explicit; go 1.24.0 k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -2165,7 +2165,7 @@ k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/apiserver v0.34.0 +# k8s.io/apiserver v0.34.1 ## explicit; go 1.24.0 k8s.io/apiserver/pkg/apis/cel k8s.io/apiserver/pkg/authentication/serviceaccount @@ -2180,13 +2180,13 @@ k8s.io/apiserver/pkg/endpoints/deprecation k8s.io/apiserver/pkg/features k8s.io/apiserver/pkg/util/compatibility k8s.io/apiserver/pkg/util/feature -# k8s.io/cli-runtime v0.34.0 +# k8s.io/cli-runtime v0.34.1 ## explicit; go 1.24.0 k8s.io/cli-runtime/pkg/genericclioptions k8s.io/cli-runtime/pkg/genericiooptions k8s.io/cli-runtime/pkg/printers k8s.io/cli-runtime/pkg/resource -# k8s.io/client-go v0.34.0 +# k8s.io/client-go v0.34.1 ## explicit; go 1.24.0 k8s.io/client-go/applyconfigurations k8s.io/client-go/applyconfigurations/admissionregistration/v1 @@ -2545,7 +2545,7 @@ k8s.io/client-go/util/jsonpath k8s.io/client-go/util/keyutil k8s.io/client-go/util/retry k8s.io/client-go/util/workqueue -# k8s.io/code-generator v0.34.0 +# k8s.io/code-generator v0.34.1 ## explicit; go 1.24.0 k8s.io/code-generator k8s.io/code-generator/cmd/applyconfiguration-gen @@ -2585,7 +2585,7 @@ k8s.io/code-generator/cmd/validation-gen/validators k8s.io/code-generator/pkg/namer k8s.io/code-generator/pkg/util k8s.io/code-generator/third_party/forked/golang/reflect -# k8s.io/component-base v0.34.0 +# k8s.io/component-base v0.34.1 ## explicit; go 1.24.0 k8s.io/component-base/cli/flag k8s.io/component-base/compatibility @@ -2642,7 +2642,7 @@ k8s.io/kube-openapi/pkg/validation/spec k8s.io/kube-openapi/pkg/validation/strfmt k8s.io/kube-openapi/pkg/validation/strfmt/bson k8s.io/kube-openapi/pkg/validation/validate -# k8s.io/kubectl v0.34.0 +# k8s.io/kubectl v0.34.1 ## explicit; go 1.24.0 k8s.io/kubectl/pkg/cmd/util k8s.io/kubectl/pkg/scheme @@ -2654,7 +2654,7 @@ k8s.io/kubectl/pkg/util/podutils k8s.io/kubectl/pkg/util/templates k8s.io/kubectl/pkg/util/term k8s.io/kubectl/pkg/validation -# k8s.io/metrics v0.34.0 +# k8s.io/metrics v0.34.1 ## explicit; go 1.24.0 k8s.io/metrics/pkg/apis/metrics k8s.io/metrics/pkg/apis/metrics/v1beta1 From 18c3afe702528b8b48ac9b17dae6cfa38c867318 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Mon, 18 Aug 2025 10:06:58 +0200 Subject: [PATCH 087/176] pkg: add svcrouteconfig package Add a new flag `--enable-no-endpoints-routable` to enable routing to services with zero endpoints. This can later be imported by e.g. socketLB and/or BGP to withdraw routes when service has no active endpoint. Signed-off-by: Ondrej Blazek --- pkg/svcrouteconfig/cell.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkg/svcrouteconfig/cell.go diff --git a/pkg/svcrouteconfig/cell.go b/pkg/svcrouteconfig/cell.go new file mode 100644 index 0000000000000..34b732b5a0acc --- /dev/null +++ b/pkg/svcrouteconfig/cell.go @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package svcrouteconfig + +import ( + "github.com/cilium/hive/cell" + "github.com/spf13/pflag" +) + +var Cell = cell.Module( + "service-route-config", + "Service route configuration", + + cell.Config(DefaultConfig), +) + +type RoutesConfig struct { + EnableNoServiceEndpointsRoutable bool +} + +var DefaultConfig = RoutesConfig{ + EnableNoServiceEndpointsRoutable: true, +} + +func (def RoutesConfig) Flags(flags *pflag.FlagSet) { + flags.Bool("enable-no-service-endpoints-routable", def.EnableNoServiceEndpointsRoutable, "Enable routes when service has 0 endpoints") +} From 77737c18d1279db84cb7eaebdd8347e4b27bbaba Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Wed, 13 Aug 2025 14:47:59 +0200 Subject: [PATCH 088/176] bgp: withdraw a service when there are no endpoints Signed-off-by: Ondrej Blazek --- daemon/cmd/cells.go | 3 + pkg/bgpv1/manager/reconciler/service.go | 85 +++++++++++++---------- pkg/bgpv1/manager/reconcilerv2/service.go | 39 +++++++---- 3 files changed, 78 insertions(+), 49 deletions(-) diff --git a/daemon/cmd/cells.go b/daemon/cmd/cells.go index 843cee932af13..587aee65dc922 100644 --- a/daemon/cmd/cells.go +++ b/daemon/cmd/cells.go @@ -80,6 +80,7 @@ import ( "github.com/cilium/cilium/pkg/signal" "github.com/cilium/cilium/pkg/source" "github.com/cilium/cilium/pkg/status" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) var ( @@ -342,6 +343,8 @@ var ( // Cilium Debuginfo API debugapi.Cell, + + svcrouteconfig.Cell, ) ) diff --git a/pkg/bgpv1/manager/reconciler/service.go b/pkg/bgpv1/manager/reconciler/service.go index 727437c12894a..2786d34e1e50d 100644 --- a/pkg/bgpv1/manager/reconciler/service.go +++ b/pkg/bgpv1/manager/reconciler/service.go @@ -25,6 +25,7 @@ import ( slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" "github.com/cilium/cilium/pkg/loadbalancer" ciliumslices "github.com/cilium/cilium/pkg/slices" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) type LBServiceReconcilerOut struct { @@ -34,14 +35,15 @@ type LBServiceReconcilerOut struct { } type ServiceReconciler struct { - diffStore store.DiffStore[*slim_corev1.Service] - epDiffStore store.DiffStore[*k8s.Endpoints] + diffStore store.DiffStore[*slim_corev1.Service] + epDiffStore store.DiffStore[*k8s.Endpoints] + routesConfig svcrouteconfig.RoutesConfig } // LBServiceReconcilerMetadata keeps a map of services to the respective advertised Paths type LBServiceReconcilerMetadata map[resource.Key][]*types.Path -type localServices map[loadbalancer.ServiceName]struct{} +type routableServices map[loadbalancer.ServiceName]struct{} // pathReference holds reference information about an advertised path type pathReference struct { @@ -52,15 +54,16 @@ type pathReference struct { // pathReferencesMap holds path references of resources producing path advertisement, indexed by path's NLRI string type pathReferencesMap map[string]*pathReference -func NewServiceReconciler(diffStore store.DiffStore[*slim_corev1.Service], epDiffStore store.DiffStore[*k8s.Endpoints]) LBServiceReconcilerOut { +func NewServiceReconciler(diffStore store.DiffStore[*slim_corev1.Service], epDiffStore store.DiffStore[*k8s.Endpoints], routesConfig svcrouteconfig.RoutesConfig) LBServiceReconcilerOut { if diffStore == nil { return LBServiceReconcilerOut{} } return LBServiceReconcilerOut{ Reconciler: &ServiceReconciler{ - diffStore: diffStore, - epDiffStore: epDiffStore, + diffStore: diffStore, + epDiffStore: epDiffStore, + routesConfig: routesConfig, }, } } @@ -134,8 +137,8 @@ func (r *ServiceReconciler) requiresFullReconciliation(p ReconcileParams) bool { } // Populate locally available services used for externalTrafficPolicy=local handling -func (r *ServiceReconciler) populateLocalServices(localNodeName string) (localServices, error) { - ls := make(localServices) +func (r *ServiceReconciler) populateRoutableServices(localNodeName string) (routableServices, error) { + rs := make(routableServices) epList, err := r.epDiffStore.List() if err != nil { @@ -144,7 +147,7 @@ func (r *ServiceReconciler) populateLocalServices(localNodeName string) (localSe endpointsLoop: for _, eps := range epList { - _, exists, err := r.resolveSvcFromEndpoints(eps) + svc, exists, err := r.resolveSvcFromEndpoints(eps) if err != nil { // Cannot resolve service from endpoints. We have nothing to do here. continue @@ -155,25 +158,36 @@ endpointsLoop: continue } + if len(eps.Backends) == 0 && !r.routesConfig.EnableNoServiceEndpointsRoutable { + continue + } + svcID := eps.ServiceName - for _, be := range eps.Backends { - if !be.Conditions.IsTerminating() && be.NodeName == localNodeName { - // At least one endpoint is available on this node. We - // can make unavailable to available. - if _, found := ls[svcID]; !found { - ls[svcID] = struct{}{} + if svc.Spec.ExternalTrafficPolicy == slim_corev1.ServiceExternalTrafficPolicyLocal || + (svc.Spec.InternalTrafficPolicy != nil && *svc.Spec.InternalTrafficPolicy == slim_corev1.ServiceInternalTrafficPolicyLocal) { + for _, be := range eps.Backends { + if !be.Conditions.IsTerminating() && be.NodeName == localNodeName { + // At least one endpoint is available on this node. We + // can make unavailable to available. + if _, found := rs[svcID]; !found { + rs[svcID] = struct{}{} + } + continue endpointsLoop } - continue endpointsLoop } + } else { + // For eTP/iTP=Cluster any endpoint is valid + rs[svcID] = struct{}{} } + } - return ls, nil + return rs, nil } -func hasLocalEndpoints(svc *slim_corev1.Service, ls localServices) bool { - _, found := ls[loadbalancer.NewServiceName(svc.GetNamespace(), svc.GetName())] +func hasValidEndpoints(svc *slim_corev1.Service, rs routableServices) bool { + _, found := rs[loadbalancer.NewServiceName(svc.GetNamespace(), svc.GetName())] return found } @@ -184,12 +198,12 @@ func (r *ServiceReconciler) fullReconciliation(ctx context.Context, p ReconcileP if err != nil { return err } - ls, err := r.populateLocalServices(p.CiliumNode.Name) + rs, err := r.populateRoutableServices(p.CiliumNode.Name) if err != nil { return err } for _, svc := range toReconcile { - if err := r.reconcileService(ctx, p.CurrentServer, p.DesiredConfig, svc, ls, pathRefs); err != nil { + if err := r.reconcileService(ctx, p.CurrentServer, p.DesiredConfig, svc, rs, pathRefs); err != nil { return fmt.Errorf("failed to reconcile service %s/%s: %w", svc.Namespace, svc.Name, err) } } @@ -208,7 +222,7 @@ func (r *ServiceReconciler) svcDiffReconciliation(ctx context.Context, p Reconci if err != nil { return err } - ls, err := r.populateLocalServices(p.CiliumNode.Name) + ls, err := r.populateRoutableServices(p.CiliumNode.Name) if err != nil { return err } @@ -316,7 +330,7 @@ func (r *ServiceReconciler) diffReconciliationServiceList(sc *instance.ServerWit // svcDesiredRoutes determines which, if any routes should be announced for the given service. This determines the // desired state. -func (r *ServiceReconciler) svcDesiredRoutes(newc *v2alpha1api.CiliumBGPVirtualRouter, svc *slim_corev1.Service, ls localServices) ([]netip.Prefix, error) { +func (r *ServiceReconciler) svcDesiredRoutes(newc *v2alpha1api.CiliumBGPVirtualRouter, svc *slim_corev1.Service, rs routableServices) ([]netip.Prefix, error) { if newc.ServiceSelector == nil { // If the vRouter has no service selector, there are no desired routes. return nil, nil @@ -338,22 +352,21 @@ func (r *ServiceReconciler) svcDesiredRoutes(newc *v2alpha1api.CiliumBGPVirtualR for _, svcAdv := range newc.ServiceAdvertisements { switch svcAdv { case v2alpha1api.BGPLoadBalancerIPAddr: - desiredRoutes = append(desiredRoutes, r.lbSvcDesiredRoutes(svc, ls)...) + desiredRoutes = append(desiredRoutes, r.lbSvcDesiredRoutes(svc, rs)...) case v2alpha1api.BGPClusterIPAddr: - desiredRoutes = append(desiredRoutes, r.clusterIPDesiredRoutes(svc, ls)...) + desiredRoutes = append(desiredRoutes, r.clusterIPDesiredRoutes(svc, rs)...) case v2alpha1api.BGPExternalIPAddr: - desiredRoutes = append(desiredRoutes, r.externalIPDesiredRoutes(svc, ls)...) + desiredRoutes = append(desiredRoutes, r.externalIPDesiredRoutes(svc, rs)...) } } return desiredRoutes, err } -func (r *ServiceReconciler) externalIPDesiredRoutes(svc *slim_corev1.Service, ls localServices) []netip.Prefix { +func (r *ServiceReconciler) externalIPDesiredRoutes(svc *slim_corev1.Service, rs routableServices) []netip.Prefix { var desiredRoutes []netip.Prefix // Ignore externalTrafficPolicy == Local && no local endpoints. - if svc.Spec.ExternalTrafficPolicy == slim_corev1.ServiceExternalTrafficPolicyLocal && - !hasLocalEndpoints(svc, ls) { + if !hasValidEndpoints(svc, rs) && (!r.routesConfig.EnableNoServiceEndpointsRoutable || svc.Spec.ExternalTrafficPolicy == slim_corev1.ServiceExternalTrafficPolicyLocal) { return desiredRoutes } for _, extIP := range svc.Spec.ExternalIPs { @@ -369,11 +382,10 @@ func (r *ServiceReconciler) externalIPDesiredRoutes(svc *slim_corev1.Service, ls return desiredRoutes } -func (r *ServiceReconciler) clusterIPDesiredRoutes(svc *slim_corev1.Service, ls localServices) []netip.Prefix { +func (r *ServiceReconciler) clusterIPDesiredRoutes(svc *slim_corev1.Service, rs routableServices) []netip.Prefix { var desiredRoutes []netip.Prefix // Ignore internalTrafficPolicy == Local && no local endpoints. - if svc.Spec.InternalTrafficPolicy != nil && *svc.Spec.InternalTrafficPolicy == slim_corev1.ServiceInternalTrafficPolicyLocal && - !hasLocalEndpoints(svc, ls) { + if !hasValidEndpoints(svc, rs) && (!r.routesConfig.EnableNoServiceEndpointsRoutable || svc.Spec.InternalTrafficPolicy != nil && *svc.Spec.InternalTrafficPolicy == slim_corev1.ServiceInternalTrafficPolicyLocal) { return desiredRoutes } if svc.Spec.ClusterIP == "" || len(svc.Spec.ClusterIPs) == 0 || svc.Spec.ClusterIP == corev1.ClusterIPNone { @@ -399,14 +411,13 @@ func (r *ServiceReconciler) clusterIPDesiredRoutes(svc *slim_corev1.Service, ls return desiredRoutes } -func (r *ServiceReconciler) lbSvcDesiredRoutes(svc *slim_corev1.Service, ls localServices) []netip.Prefix { +func (r *ServiceReconciler) lbSvcDesiredRoutes(svc *slim_corev1.Service, rs routableServices) []netip.Prefix { var desiredRoutes []netip.Prefix if svc.Spec.Type != slim_corev1.ServiceTypeLoadBalancer { return desiredRoutes } // Ignore externalTrafficPolicy == Local && no local endpoints. - if svc.Spec.ExternalTrafficPolicy == slim_corev1.ServiceExternalTrafficPolicyLocal && - !hasLocalEndpoints(svc, ls) { + if !hasValidEndpoints(svc, rs) && (!r.routesConfig.EnableNoServiceEndpointsRoutable || svc.Spec.ExternalTrafficPolicy == slim_corev1.ServiceExternalTrafficPolicyLocal) { return desiredRoutes } // Ignore service managed by an unsupported LB class. @@ -428,9 +439,9 @@ func (r *ServiceReconciler) lbSvcDesiredRoutes(svc *slim_corev1.Service, ls loca } // reconcileService gets the desired routes of a given service and makes sure that is what is being announced. -func (r *ServiceReconciler) reconcileService(ctx context.Context, sc *instance.ServerWithConfig, newc *v2alpha1api.CiliumBGPVirtualRouter, svc *slim_corev1.Service, ls localServices, pathRefs pathReferencesMap) error { +func (r *ServiceReconciler) reconcileService(ctx context.Context, sc *instance.ServerWithConfig, newc *v2alpha1api.CiliumBGPVirtualRouter, svc *slim_corev1.Service, rs routableServices, pathRefs pathReferencesMap) error { - desiredRoutes, err := r.svcDesiredRoutes(newc, svc, ls) + desiredRoutes, err := r.svcDesiredRoutes(newc, svc, rs) if err != nil { return fmt.Errorf("failed to retrieve svc desired routes: %w", err) } diff --git a/pkg/bgpv1/manager/reconcilerv2/service.go b/pkg/bgpv1/manager/reconcilerv2/service.go index 85e9a7c524373..e6c5c5a7de56d 100644 --- a/pkg/bgpv1/manager/reconcilerv2/service.go +++ b/pkg/bgpv1/manager/reconcilerv2/service.go @@ -28,6 +28,7 @@ import ( "github.com/cilium/cilium/pkg/loadbalancer" ciliumoption "github.com/cilium/cilium/pkg/option" "github.com/cilium/cilium/pkg/rate" + "github.com/cilium/cilium/pkg/svcrouteconfig" "github.com/cilium/cilium/pkg/time" ) @@ -47,8 +48,9 @@ type ServiceReconcilerIn struct { DaemonConfig *ciliumoption.DaemonConfig Signaler *signaler.BGPCPSignaler - DB *statedb.DB - Frontends statedb.Table[*loadbalancer.Frontend] + DB *statedb.DB + Frontends statedb.Table[*loadbalancer.Frontend] + RoutesConfig svcrouteconfig.RoutesConfig } type ServiceReconciler struct { @@ -59,6 +61,7 @@ type ServiceReconciler struct { db *statedb.DB frontends statedb.Table[*loadbalancer.Frontend] metadata map[string]ServiceReconcilerMetadata + routesConfig svcrouteconfig.RoutesConfig } // ServiceReconcilerMetadata holds per-instance reconciler state. @@ -82,6 +85,7 @@ func NewServiceReconciler(in ServiceReconcilerIn) ServiceReconcilerOut { db: in.DB, frontends: in.Frontends, metadata: make(map[string]ServiceReconcilerMetadata), + routesConfig: in.RoutesConfig, } in.JobGroup.Add( job.OneShot("frontend-events", r.processFrontendEvents), @@ -367,13 +371,19 @@ func (r *ServiceReconciler) updateServiceAdvertisementsMetadata(p ReconcileParam r.setMetadata(p.BGPInstance, serviceMetadata) } -func hasLocalBackends(p ReconcileParams, fe *loadbalancer.Frontend) bool { +// hasBackends loops through Frontend backends and returns: +// 1) true, false - backends > 0, no local backend +// 2) true, true - backends > 0, at least 1 local backend +// 3) false, false - no backends, no local backend +func hasBackends(p ReconcileParams, fe *loadbalancer.Frontend) (hasBackends, hasLocalBackends bool) { for backend := range fe.Backends { + hasBackends = true if backend.NodeName == p.CiliumNode.Name && backend.State == loadbalancer.BackendStateActive { - return true + hasLocalBackends = true + return } } - return false + return } func (r *ServiceReconciler) fullReconciliationServiceList(p ReconcileParams) (toReconcile []*loadbalancer.Service, toWithdraw []loadbalancer.ServiceName, rx statedb.ReadTxn, err error) { @@ -436,7 +446,6 @@ func (r *ServiceReconciler) diffReconciliationServiceList(p ReconcileParams) (to } func (r *ServiceReconciler) getDesiredPaths(p ReconcileParams, desiredPeerAdverts PeerAdvertisements, toReconcile []*loadbalancer.Service, toWithdraw []loadbalancer.ServiceName, rx statedb.ReadTxn) (ResourceAFPathsMap, error) { - desiredServiceAFPaths := make(ResourceAFPathsMap) for _, svc := range toReconcile { key := resource.Key{Name: svc.Name.Name(), Namespace: svc.Name.Namespace()} @@ -543,8 +552,10 @@ func (r *ServiceReconciler) getExternalIPPaths(p ReconcileParams, frontends []*l if fe.Type != loadbalancer.SVCTypeExternalIPs { continue } - // Ignore externalTrafficPolicy == Local && no local EPs. - if fe.Service.ExtTrafficPolicy == loadbalancer.SVCTrafficPolicyLocal && !hasLocalBackends(p, fe) { + + hasBackends, hasLocalBackends := hasBackends(p, fe) + // Ignore externalTrafficPolicy == Local && no local EPs or ignore when there are no backends and EnableNoServiceEndpointsRoutable == false. + if (fe.Service.ExtTrafficPolicy == loadbalancer.SVCTrafficPolicyLocal && !hasLocalBackends) || (!r.routesConfig.EnableNoServiceEndpointsRoutable && !hasBackends) { continue } @@ -566,8 +577,10 @@ func (r *ServiceReconciler) getClusterIPPaths(p ReconcileParams, frontends []*lo if fe.Type != loadbalancer.SVCTypeClusterIP { continue } - // Ignore internalTrafficPolicy == Local && no local EPs. - if fe.Service.IntTrafficPolicy == loadbalancer.SVCTrafficPolicyLocal && !hasLocalBackends(p, fe) { + + hasBackends, hasLocalBackends := hasBackends(p, fe) + // Ignore internalTrafficPolicy == Local && no local EPs or ignore when there are no backends and EnableNoServiceEndpointsRoutable == false. + if fe.Service.IntTrafficPolicy == loadbalancer.SVCTrafficPolicyLocal && !hasLocalBackends || (!r.routesConfig.EnableNoServiceEndpointsRoutable && !hasBackends) { continue } @@ -594,8 +607,10 @@ func (r *ServiceReconciler) getLoadBalancerIPPaths(p ReconcileParams, svc *loadb if fe.Type != loadbalancer.SVCTypeLoadBalancer { continue } - // Ignore externalTrafficPolicy == Local && no local EPs. - if fe.Service.ExtTrafficPolicy == loadbalancer.SVCTrafficPolicyLocal && !hasLocalBackends(p, fe) { + + hasBackends, hasLocalBackends := hasBackends(p, fe) + // Ignore externalTrafficPolicy == Local && no local EPs or ignore when there are no backends and EnableNoServiceEndpointsRoutable == false. + if (fe.Service.ExtTrafficPolicy == loadbalancer.SVCTrafficPolicyLocal && !hasLocalBackends) || (!r.routesConfig.EnableNoServiceEndpointsRoutable && !hasBackends) { continue } From f671b469ec9077191f901ec06c938e2b55244aa4 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Wed, 13 Aug 2025 14:49:11 +0200 Subject: [PATCH 089/176] socketLB: include svcRouteConfig package Previously it was not possible to access services with 0 endpoints via socketLB and all packets were dropped with EHOSTUNREACH. With these changes it is possible to access services with 0 endpoints which can resolve in traffic being forwarded to another DC that can serve the same service (e.g. one with the same loadbalancerIP). Signed-off-by: Ondrej Blazek --- bpf/bpf_sock.c | 29 +++++++++++++++++++++++++---- bpf/include/bpf/config/sock.h | 13 +++++++++++++ bpf/lib/lb.h | 12 ++++++++++++ pkg/datapath/config/gen.go | 1 + pkg/datapath/config/sock_config.go | 20 ++++++++++++++++++++ pkg/datapath/loader/base.go | 2 +- pkg/datapath/loader/loader.go | 4 ++++ pkg/socketlb/socketlb.go | 8 +++++++- 8 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 bpf/include/bpf/config/sock.h create mode 100644 pkg/datapath/config/sock_config.go diff --git a/bpf/bpf_sock.c b/bpf/bpf_sock.c index 2f495940d367e..9c19c73813cd5 100644 --- a/bpf/bpf_sock.c +++ b/bpf/bpf_sock.c @@ -5,6 +5,7 @@ #include #include +#include #include #define SKIP_CALLS_MAP 1 @@ -284,8 +285,18 @@ static __always_inline int __sock4_xlate_fwd(struct bpf_sock_addr *ctx, svc = sock4_wildcard_lookup_full(&key, in_hostns); if (!svc) return -ENXIO; - if (svc->count == 0 && !lb4_svc_is_l7_loadbalancer(svc)) - return -EHOSTUNREACH; + if (svc->count == 0 && !lb4_svc_is_l7_loadbalancer(svc)) { + /* Drop packet when service has no endpoints when this flag is enabled (default) */ + if (CONFIG(enable_no_service_endpoints_routable)) + return -EHOSTUNREACH; + /* Also drop the packet when eTP/iTP is set to Local, allow otherwise. */ + if ((lb4_svc_is_external(svc) && (svc->flags & SVC_FLAG_EXT_LOCAL_SCOPE)) || + (!lb4_svc_is_external(svc) && + (svc->flags2 & SVC_FLAG_INT_LOCAL_SCOPE))) { + return -EHOSTUNREACH; + } + return 0; + } send_trace_sock_notify4(ctx_full, XLATE_PRE_DIRECTION_FWD, dst_ip, bpf_ntohs(dst_port), is_connect); @@ -994,8 +1005,18 @@ static __always_inline int __sock6_xlate_fwd(struct bpf_sock_addr *ctx, svc = sock6_wildcard_lookup_full(&key, in_hostns); if (!svc) return sock6_xlate_v4_in_v6(ctx, udp_only, is_connect); - if (svc->count == 0 && !lb6_svc_is_l7_loadbalancer(svc)) - return -EHOSTUNREACH; + if (svc->count == 0 && !lb6_svc_is_l7_loadbalancer(svc)) { + /* Drop packet when service has no endpoints when this flag is enabled (default) */ + if (CONFIG(enable_no_service_endpoints_routable)) + return -EHOSTUNREACH; + /* Also drop the packet when eTP/iTP is set to Local, allow otherwise. */ + if ((lb6_svc_is_external(svc) && (svc->flags & SVC_FLAG_EXT_LOCAL_SCOPE)) || + (!lb6_svc_is_external(svc) && + (svc->flags2 & SVC_FLAG_INT_LOCAL_SCOPE))) { + return -EHOSTUNREACH; + } + return 0; + } send_trace_sock_notify6(ctx, XLATE_PRE_DIRECTION_FWD, &key.address, bpf_ntohs(dst_port), is_connect); diff --git a/bpf/include/bpf/config/sock.h b/bpf/include/bpf/config/sock.h new file mode 100644 index 0000000000000..6004da486bb3e --- /dev/null +++ b/bpf/include/bpf/config/sock.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* Copyright Authors of Cilium */ + +/* This configuration data is specific to socketLB (bpf_sock.c). Do not + * import into any other program. + */ + +#pragma once + +#include + +DECLARE_CONFIG(bool, enable_no_service_endpoints_routable, + "Enable routes when service has 0 endpoints") diff --git a/bpf/lib/lb.h b/bpf/lib/lb.h index 332616af3ea25..ab24576bacb54 100644 --- a/bpf/lib/lb.h +++ b/bpf/lib/lb.h @@ -398,6 +398,18 @@ bool lb6_svc_is_l7_loadbalancer(const struct lb6_service *svc __maybe_unused) #endif } +static __always_inline +bool lb4_svc_is_external(const struct lb4_service *svc __maybe_unused) +{ + return svc->flags & (SVC_FLAG_EXTERNAL_IP | SVC_FLAG_LOADBALANCER | SVC_FLAG_NODEPORT); +} + +static __always_inline +bool lb6_svc_is_external(const struct lb6_service *svc __maybe_unused) +{ + return svc->flags & (SVC_FLAG_EXTERNAL_IP | SVC_FLAG_LOADBALANCER | SVC_FLAG_NODEPORT); +} + static __always_inline int reverse_map_l4_port(struct __ctx_buff *ctx, __u8 nexthdr, __be16 old_port, __be16 port, int l4_off, struct csum_offset *csum_off) diff --git a/pkg/datapath/config/gen.go b/pkg/datapath/config/gen.go index f28d43d229e0f..16b5cdd9e053d 100644 --- a/pkg/datapath/config/gen.go +++ b/pkg/datapath/config/gen.go @@ -13,3 +13,4 @@ package config //go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_overlay.o -embed Node -kind object -name BPFOverlay -out overlay_config.go //go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_network.o -embed Node -kind object -name BPFNetwork -out network_config.go //go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_wireguard.o -embed Node -kind object -name BPFWireguard -out wireguard_config.go +//go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_sock.o -kind object -name BPFSocket -out sock_config.go diff --git a/pkg/datapath/config/sock_config.go b/pkg/datapath/config/sock_config.go new file mode 100644 index 0000000000000..2ad86a58b3d07 --- /dev/null +++ b/pkg/datapath/config/sock_config.go @@ -0,0 +1,20 @@ +// Code generated by dpgen. DO NOT EDIT. + +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package config + +// BPFSocket is a configuration struct for a Cilium datapath object. Warning: do +// not instantiate directly! Always use [NewBPFSocket] to ensure the default +// values configured in the ELF are honored. +type BPFSocket struct { + // Pass traffic with extended IP protocols. + EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` + // Enable routes when service has 0 endpoints. + EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` +} + +func NewBPFSocket() *BPFSocket { + return &BPFSocket{false, false} +} diff --git a/pkg/datapath/loader/base.go b/pkg/datapath/loader/base.go index 0c50e2d00a145..8073687b53e6e 100644 --- a/pkg/datapath/loader/base.go +++ b/pkg/datapath/loader/base.go @@ -470,7 +470,7 @@ func (l *loader) Reinitialize(ctx context.Context, lnc *datapath.LocalNodeConfig if err := compileWithOptions(ctx, l.logger, "bpf_sock.c", "bpf_sock.o", nil); err != nil { logging.Fatal(l.logger, "failed to compile bpf_sock.c", logfields.Error, err) } - if err := socketlb.Enable(l.logger, l.sysctl, lnc.KPRConfig); err != nil { + if err := socketlb.Enable(l.logger, l.sysctl, lnc.KPRConfig, l.svcRouteConfig); err != nil { return err } } else { diff --git a/pkg/datapath/loader/loader.go b/pkg/datapath/loader/loader.go index 83be3e22ce4ff..34599a0cabfa6 100644 --- a/pkg/datapath/loader/loader.go +++ b/pkg/datapath/loader/loader.go @@ -38,6 +38,7 @@ import ( "github.com/cilium/cilium/pkg/maps/policymap" "github.com/cilium/cilium/pkg/node/manager" "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) const ( @@ -83,6 +84,7 @@ type loader struct { compilationLock datapath.CompilationLock configWriter datapath.ConfigWriter nodeConfigNotifier *manager.NodeConfigNotifier + svcRouteConfig svcrouteconfig.RoutesConfig } type Params struct { @@ -94,6 +96,7 @@ type Params struct { CompilationLock datapath.CompilationLock ConfigWriter datapath.ConfigWriter NodeConfigNotifier *manager.NodeConfigNotifier + ServiceRouteConfig svcrouteconfig.RoutesConfig // Force map initialisation before loader. You should not use these otherwise. // Some of the entries in this slice may be nil. @@ -111,6 +114,7 @@ func newLoader(p Params) *loader { compilationLock: p.CompilationLock, configWriter: p.ConfigWriter, nodeConfigNotifier: p.NodeConfigNotifier, + svcRouteConfig: p.ServiceRouteConfig, } } diff --git a/pkg/socketlb/socketlb.go b/pkg/socketlb/socketlb.go index 877a9bf88e77f..ab25fe510156c 100644 --- a/pkg/socketlb/socketlb.go +++ b/pkg/socketlb/socketlb.go @@ -14,9 +14,11 @@ import ( "github.com/cilium/cilium/pkg/bpf" "github.com/cilium/cilium/pkg/cgroups" + "github.com/cilium/cilium/pkg/datapath/config" "github.com/cilium/cilium/pkg/datapath/linux/sysctl" "github.com/cilium/cilium/pkg/kpr" "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) const ( @@ -56,7 +58,7 @@ func cgroupLinkPath() string { // options have changed. // It expects bpf_sock.c to be compiled previously, so that bpf_sock.o is present // in the Runtime dir. -func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig) error { +func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig, svcCfg svcrouteconfig.RoutesConfig) error { if err := os.MkdirAll(cgroupLinkPath(), 0777); err != nil { return fmt.Errorf("create bpffs link directory: %w", err) } @@ -66,10 +68,14 @@ func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig) err return fmt.Errorf("failed to load collection spec for bpf_sock.o: %w", err) } + cfg := config.NewBPFSocket() + cfg.EnableNoServiceEndpointsRoutable = svcCfg.EnableNoServiceEndpointsRoutable + coll, commit, err := bpf.LoadCollection(logger, spec, &bpf.CollectionOptions{ CollectionOptions: ebpf.CollectionOptions{ Maps: ebpf.MapOptions{PinPath: bpf.TCGlobalsPath()}, }, + Constants: cfg, }) var ve *ebpf.VerifierError if errors.As(err, &ve) { From 9a50ef046105b53b56359b99322344926bfb3e93 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Wed, 13 Aug 2025 14:53:39 +0200 Subject: [PATCH 090/176] docs: mention new enable-no-endpoint-routes flag * update helm to include enableNoServiceEndpointsRoutable top level flag Signed-off-by: Ondrej Blazek --- Documentation/cmdref/cilium-agent.md | 1 + Documentation/cmdref/cilium-agent_hive.md | 1 + .../cmdref/cilium-agent_hive_dot-graph.md | 1 + Documentation/helm-values.rst | 4 ++++ .../bgp-control-plane-operation.rst | 16 +++++++++++----- install/kubernetes/cilium/README.md | 1 + .../cilium/templates/cilium-configmap.yaml | 4 ++++ install/kubernetes/cilium/values.schema.json | 3 +++ install/kubernetes/cilium/values.yaml | 2 ++ install/kubernetes/cilium/values.yaml.tmpl | 2 ++ 10 files changed, 30 insertions(+), 5 deletions(-) diff --git a/Documentation/cmdref/cilium-agent.md b/Documentation/cmdref/cilium-agent.md index 2a32269998644..e26085321a83a 100644 --- a/Documentation/cmdref/cilium-agent.md +++ b/Documentation/cmdref/cilium-agent.md @@ -165,6 +165,7 @@ cilium-agent [flags] --enable-masquerade-to-route-source Masquerade packets to the source IP provided from the routing layer rather than interface address --enable-monitor Enable the monitor unix domain socket server (default true) --enable-nat46x64-gateway Enable NAT46 and NAT64 gateway + --enable-no-service-endpoints-routable Enable routes when service has 0 endpoints (default true) --enable-node-selector-labels Enable use of node label based identity --enable-pmtu-discovery Enable path MTU discovery to send ICMP fragmentation-needed replies to the client --enable-policy string Enable policy enforcement (default "default") diff --git a/Documentation/cmdref/cilium-agent_hive.md b/Documentation/cmdref/cilium-agent_hive.md index 9014213c562a1..b0d8b1065d794 100644 --- a/Documentation/cmdref/cilium-agent_hive.md +++ b/Documentation/cmdref/cilium-agent_hive.md @@ -80,6 +80,7 @@ cilium-agent hive [flags] --enable-l2-neigh-discovery Enables L2 neighbor discovery used by kube-proxy-replacement and IPsec --enable-l2-pod-announcements Enable announcing Pod IPs with Gratuitous ARP and NDP --enable-monitor Enable the monitor unix domain socket server (default true) + --enable-no-service-endpoints-routable Enable routes when service has 0 endpoints (default true) --enable-policy-secrets-sync Enables Envoy secret sync for Secrets used in CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy --enable-route-mtu-for-cni-chaining Enable route MTU for pod netns when CNI chaining is used --enable-service-topology Enable support for service topology aware hints diff --git a/Documentation/cmdref/cilium-agent_hive_dot-graph.md b/Documentation/cmdref/cilium-agent_hive_dot-graph.md index 0c60a5be748db..99863dbd3577c 100644 --- a/Documentation/cmdref/cilium-agent_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-agent_hive_dot-graph.md @@ -86,6 +86,7 @@ cilium-agent hive dot-graph [flags] --enable-l2-neigh-discovery Enables L2 neighbor discovery used by kube-proxy-replacement and IPsec --enable-l2-pod-announcements Enable announcing Pod IPs with Gratuitous ARP and NDP --enable-monitor Enable the monitor unix domain socket server (default true) + --enable-no-service-endpoints-routable Enable routes when service has 0 endpoints (default true) --enable-policy-secrets-sync Enables Envoy secret sync for Secrets used in CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy --enable-route-mtu-for-cni-chaining Enable route MTU for pod netns when CNI chaining is used --enable-service-topology Enable support for service topology aware hints diff --git a/Documentation/helm-values.rst b/Documentation/helm-values.rst index 985bf221308bd..78d775094cfed 100644 --- a/Documentation/helm-values.rst +++ b/Documentation/helm-values.rst @@ -1256,6 +1256,10 @@ - Enables masquerading to the source of the route for traffic leaving the node from endpoints. - bool - ``false`` + * - :spelling:ignore:`enableNoServiceEndpointsRoutable` + - Enable routing to a service that has zero endpoints + - bool + - ``true`` * - :spelling:ignore:`enableNonDefaultDenyPolicies` - Enable Non-Default-Deny policies - bool diff --git a/Documentation/network/bgp-control-plane/bgp-control-plane-operation.rst b/Documentation/network/bgp-control-plane/bgp-control-plane-operation.rst index a272effb45af9..4535e98377301 100644 --- a/Documentation/network/bgp-control-plane/bgp-control-plane-operation.rst +++ b/Documentation/network/bgp-control-plane/bgp-control-plane-operation.rst @@ -466,11 +466,17 @@ Service Losing All Backends If all service backends are gone due to an outage or a configuration mistake, BGP Control Plane behaves differently depending on the Service's -``externalTrafficPolicy``. When the ``externalTrafficPolicy`` is set to -``Cluster``, the Service's VIP remains advertised from all nodes selected by the -``CiliumBGPPeeringPolicy`` or ``CiliumBGPClusterConfig``. When the ``externalTrafficPolicy`` -is set to ``Local``, the advertisement stops entirely because the Service's VIP is only advertised -from the node where the Service backends are running. +``externalTrafficPolicy`` and ``--enable-no-service-endpoints-routable`` flag. + +When the ``externalTrafficPolicy`` is set to ``Cluster``, then the +Service's VIP remains advertised from all nodes selected by the +``CiliumBGPPeeringPolicy`` or ``CiliumBGPClusterConfig`` **only** when +``--enable-no-service-endpoints-routable`` is true (the default). If the flag is +set to ``false`` then Service's VIP is withdrawn. + +When the ``externalTrafficPolicy`` is set to ``Local``, the advertisement stops +entirely because the Service's VIP is only advertised from the node where the +Service backends are running no matter on the value of ``--enable-no-service-endpoints-routable``. Mitigation '''''''''' diff --git a/install/kubernetes/cilium/README.md b/install/kubernetes/cilium/README.md index b6afc6e8ac1ee..6e31c7a1e96b6 100644 --- a/install/kubernetes/cilium/README.md +++ b/install/kubernetes/cilium/README.md @@ -364,6 +364,7 @@ contributors across the globe, there is almost always someone available to help. | enableInternalTrafficPolicy | bool | `true` | Enable Internal Traffic Policy | | enableLBIPAM | bool | `true` | Enable LoadBalancer IP Address Management | | enableMasqueradeRouteSource | bool | `false` | Enables masquerading to the source of the route for traffic leaving the node from endpoints. | +| enableNoServiceEndpointsRoutable | bool | `true` | Enable routing to a service that has zero endpoints | | enableNonDefaultDenyPolicies | bool | `true` | Enable Non-Default-Deny policies | | enableXTSocketFallback | bool | `true` | Enables the fallback compatibility solution for when the xt_socket kernel module is missing and it is needed for the datapath L7 redirection to work properly. See documentation for details on when this can be disabled: https://docs.cilium.io/en/stable/operations/system_requirements/#linux-kernel. | | encryption.enabled | bool | `false` | Enable transparent network encryption. | diff --git a/install/kubernetes/cilium/templates/cilium-configmap.yaml b/install/kubernetes/cilium/templates/cilium-configmap.yaml index 5e2cacf8672a1..7453b8f5e541e 100644 --- a/install/kubernetes/cilium/templates/cilium-configmap.yaml +++ b/install/kubernetes/cilium/templates/cilium-configmap.yaml @@ -773,6 +773,10 @@ data: kube-proxy-replacement-healthz-bind-address: {{ default "" .Values.kubeProxyReplacementHealthzBindAddr | quote}} {{- end }} +{{- if hasKey .Values "enableNoServiceEndpointsRoutable" }} + enable-no-service-endpoints-routable: {{ .Values.enableNoServiceEndpointsRoutable | quote }} +{{- end }} + {{- if $socketLB }} {{- if hasKey $socketLB "enabled" }} bpf-lb-sock: {{ $socketLB.enabled | quote }} diff --git a/install/kubernetes/cilium/values.schema.json b/install/kubernetes/cilium/values.schema.json index 9b3192e05661e..5d2d123ea8bc1 100644 --- a/install/kubernetes/cilium/values.schema.json +++ b/install/kubernetes/cilium/values.schema.json @@ -1834,6 +1834,9 @@ "enableMasqueradeRouteSource": { "type": "boolean" }, + "enableNoServiceEndpointsRoutable": { + "type": "boolean" + }, "enableNonDefaultDenyPolicies": { "type": "boolean" }, diff --git a/install/kubernetes/cilium/values.yaml b/install/kubernetes/cilium/values.yaml index 212fde75fc5d2..8ceab16ed7b6f 100644 --- a/install/kubernetes/cilium/values.yaml +++ b/install/kubernetes/cilium/values.yaml @@ -1155,6 +1155,8 @@ healthCheckICMPFailureThreshold: 3 hostFirewall: # -- Enables the enforcement of host policies in the eBPF datapath. enabled: false +# -- Enable routing to a service that has zero endpoints +enableNoServiceEndpointsRoutable: true # -- Configure socket LB socketLB: # -- Enable socket LB diff --git a/install/kubernetes/cilium/values.yaml.tmpl b/install/kubernetes/cilium/values.yaml.tmpl index 188e3ca978aca..1f329c19503bc 100644 --- a/install/kubernetes/cilium/values.yaml.tmpl +++ b/install/kubernetes/cilium/values.yaml.tmpl @@ -1165,6 +1165,8 @@ healthCheckICMPFailureThreshold: 3 hostFirewall: # -- Enables the enforcement of host policies in the eBPF datapath. enabled: false +# -- Enable routing to a service that has zero endpoints +enableNoServiceEndpointsRoutable: true # -- Configure socket LB socketLB: # -- Enable socket LB From fbc5ca8a58127c9da1352bda46fcfacd0671dfdf Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Wed, 13 Aug 2025 14:54:23 +0200 Subject: [PATCH 091/176] test: add testfile for enable-no-endpoints-routable=false Signed-off-by: Ondrej Blazek --- pkg/bgpv1/test/fixtures.go | 4 + pkg/bgpv1/test/script_test.go | 17 +- .../test/testdata/svc-no-endpoints.txtar | 168 ++++++++++++++++++ 3 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 pkg/bgpv1/test/testdata/svc-no-endpoints.txtar diff --git a/pkg/bgpv1/test/fixtures.go b/pkg/bgpv1/test/fixtures.go index b895fcd663d2f..9b28597c8043d 100644 --- a/pkg/bgpv1/test/fixtures.go +++ b/pkg/bgpv1/test/fixtures.go @@ -40,6 +40,7 @@ import ( "github.com/cilium/cilium/pkg/loadbalancer" "github.com/cilium/cilium/pkg/metrics" "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) // cilium BGP config @@ -189,6 +190,9 @@ func newFixture(t testing.TB, ctx context.Context, conf fixtureConfig) (*fixture // CiliumLoadBalancerIPPool cell.Provide(k8sPkg.LBIPPoolsResource), + // Routes config + cell.Config(svcrouteconfig.DefaultConfig), + // cilium node cell.Provide(func(lc cell.Lifecycle, c k8sClient.Clientset, mp workqueue.MetricsProvider) daemon_k8s.LocalCiliumNodeResource { store := resource.New[*cilium_api_v2.CiliumNode]( diff --git a/pkg/bgpv1/test/script_test.go b/pkg/bgpv1/test/script_test.go index e51af5a03356f..b9a0dec80e9ed 100644 --- a/pkg/bgpv1/test/script_test.go +++ b/pkg/bgpv1/test/script_test.go @@ -30,12 +30,14 @@ import ( "github.com/cilium/cilium/pkg/datapath/linux/safenetlink" "github.com/cilium/cilium/pkg/datapath/tables" envoyCfg "github.com/cilium/cilium/pkg/envoy/config" + "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/kpr" "github.com/cilium/cilium/pkg/loadbalancer" lbcell "github.com/cilium/cilium/pkg/loadbalancer/cell" "github.com/cilium/cilium/pkg/maglev" "github.com/cilium/cilium/pkg/node" "github.com/cilium/cilium/pkg/source" + "github.com/cilium/cilium/pkg/svcrouteconfig" ciliumhive "github.com/cilium/cilium/pkg/hive" ipamOption "github.com/cilium/cilium/pkg/ipam/option" @@ -55,9 +57,10 @@ const ( testLinkName = "cilium-bgp-test" // test arguments - testPeeringIPsFlag = "test-peering-ips" - ipamFlag = "ipam" - probeTCPMD5Flag = "probe-tcp-md5" + testPeeringIPsFlag = "test-peering-ips" + bgpNoEndpointsRoutableFlag = "bgp-no-endpoints-routable" + ipamFlag = "ipam" + probeTCPMD5Flag = "probe-tcp-md5" ) func TestPrivilegedScript(t *testing.T) { @@ -86,6 +89,7 @@ func TestPrivilegedScript(t *testing.T) { peeringIPs := flags.StringSlice(testPeeringIPsFlag, nil, "List of IPs used for peering in the test") ipam := flags.String(ipamFlag, ipamOption.IPAMKubernetes, "IPAM used by the test") probeTCPMD5 := flags.Bool(probeTCPMD5Flag, false, "Probe if TCP_MD5SIG socket option is available") + noEndpointsRoutable := flags.Bool(bgpNoEndpointsRoutableFlag, true, "") require.NoError(t, flags.Parse(args), "Error parsing test flags") if *probeTCPMD5 { @@ -101,6 +105,7 @@ func TestPrivilegedScript(t *testing.T) { // BGP cell bgpv1.Cell, + svcrouteconfig.Cell, // Provide statedb tables cell.Provide( @@ -152,6 +157,12 @@ func TestPrivilegedScript(t *testing.T) { }), ) + hive.AddConfigOverride( + h, + func(cfg *svcrouteconfig.RoutesConfig) { + cfg.EnableNoServiceEndpointsRoutable = *noEndpointsRoutable + }) + hiveLog := hivetest.Logger(t, hivetest.LogLevel(slog.LevelInfo)) t.Cleanup(func() { assert.NoError(t, h.Stop(hiveLog, context.TODO())) diff --git a/pkg/bgpv1/test/testdata/svc-no-endpoints.txtar b/pkg/bgpv1/test/testdata/svc-no-endpoints.txtar new file mode 100644 index 0000000000000..b75d87ee61735 --- /dev/null +++ b/pkg/bgpv1/test/testdata/svc-no-endpoints.txtar @@ -0,0 +1,168 @@ +#! --test-peering-ips=10.99.4.111,10.99.4.112 --bgp-no-endpoints-routable=false + +# Tests sharing of the same LB VIP across multiple services. +# VIP should be advertised if one of the shared services disappears but the other one remains. + +# Start the hive +hive start + +# Configure gobgp server +gobgp/add-server test 65010 10.99.4.111 1790 + +# Configure peers on GoBGP +gobgp/add-peer 10.99.4.112 65001 + +# Add k8s services +k8s/add service-1.yaml + +# Configure BGP on Cilium +k8s/add cilium-node.yaml bgp-node-config.yaml bgp-peer-config.yaml bgp-advertisement.yaml + +# Wait for peering to be established +gobgp/wait-state 10.99.4.112 ESTABLISHED + +# Validate that LB IP is NOT advertised +gobgp/routes -o routes.actual +* cmp gobgp-routes-empty.expected routes.actual + +# Add corresponding endpointSlices +k8s/add endpoints1.yaml + +# Validate that LB IP is advertised +gobgp/routes -o routes.actual +* cmp gobgp-routes.expected routes.actual + +# Delete one service +k8s/delete service-1.yaml +sleep 0.1s # give some time for the change to propagate to avoid false positive + +# Validate that LB IP is still advertised +gobgp/routes -o routes.actual +* cmp gobgp-routes-empty.expected routes.actual + +##### + +-- cilium-node.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumNode +metadata: + name: test-node +spec: + addresses: + - ip: 10.99.4.112 + type: InternalIP + ipam: + podCIDRs: + - 10.244.1.0/24 + +-- bgp-node-config.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumBGPNodeConfig +metadata: + name: test-node +spec: + bgpInstances: + - localASN: 65001 + name: tor-65001 + peers: + - name: gobgp-peer-1 + peerASN: 65010 + peerAddress: 10.99.4.111 + localAddress: 10.99.4.112 + peerConfigRef: + name: gobgp-peer-config + +-- bgp-peer-config.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumBGPPeerConfig +metadata: + name: gobgp-peer-config +spec: + transport: + peerPort: 1790 + timers: + connectRetryTimeSeconds: 1 + families: + - afi: ipv4 + safi: unicast + advertisements: + matchLabels: + advertise: services + +-- bgp-advertisement.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumBGPAdvertisement +metadata: + name: lb-only + labels: + advertise: services +spec: + advertisements: + - advertisementType: Service + service: + addresses: + - LoadBalancerIP + selector: + matchExpressions: + - { key: bgp, operator: In, values: [ advertise ] } + +-- service-1.yaml -- +apiVersion: v1 +kind: Service +metadata: + name: echo1 + namespace: test + labels: + bgp: advertise + annotations: + "lbipam.cilium.io/sharing-key": "1234" +spec: + type: LoadBalancer + clusterIP: 10.96.50.104 + clusterIPs: + - 10.96.50.104 + externalTrafficPolicy: Cluster + internalTrafficPolicy: Cluster + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + name: echo + sessionAffinity: None +status: + loadBalancer: + ingress: + - ip: 172.16.1.1 + +-- endpoints1.yaml -- +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice +metadata: + labels: + kubernetes.io/service-name: echo1 + name: echo-eps1 + namespace: test +addressType: IPv4 +endpoints: +- addresses: + - 10.244.1.20 + conditions: + ready: true + serving: true + terminating: false + nodeName: test-node +ports: +- name: http + port: 80 + protocol: TCP + +-- gobgp-routes.expected -- +Prefix NextHop Attrs +172.16.1.1/32 10.99.4.112 [{Origin: i} {AsPath: 65001} {Nexthop: 10.99.4.112}] +-- gobgp-routes-empty.expected -- +Prefix NextHop Attrs From 6e084e15513a2911cbbce1983e4fb7417fcc00e5 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Mon, 18 Aug 2025 10:02:03 +0200 Subject: [PATCH 092/176] bgp: include svcrouteconfig pkg in reconciler unit tests Signed-off-by: Ondrej Blazek --- pkg/bgpv1/manager/reconciler/preflight_test.go | 5 +++-- pkg/bgpv1/manager/reconciler/service_test.go | 11 ++++++----- pkg/bgpv1/manager/reconcilerv2/service_test.go | 2 ++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/bgpv1/manager/reconciler/preflight_test.go b/pkg/bgpv1/manager/reconciler/preflight_test.go index 1c57af21e4b5b..35838f4e42db5 100644 --- a/pkg/bgpv1/manager/reconciler/preflight_test.go +++ b/pkg/bgpv1/manager/reconciler/preflight_test.go @@ -22,6 +22,7 @@ import ( slim_corev1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) // We use similar local listen ports as the tests in the pkg/bgpv1/test package. @@ -249,7 +250,7 @@ func TestReconcileAfterServerReinit(t *testing.T) { require.NoError(t, err) diffstore.Upsert(obj) - reconciler := NewServiceReconciler(diffstore, epDiffStore) + reconciler := NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig) err = reconciler.Reconciler.Reconcile(context.Background(), params) require.NoError(t, err) @@ -271,7 +272,7 @@ func TestReconcileAfterServerReinit(t *testing.T) { require.NoError(t, err) // Update LB service - reconciler = NewServiceReconciler(diffstore, epDiffStore) + reconciler = NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig) err = reconciler.Reconciler.Reconcile(context.Background(), params) require.NoError(t, err) } diff --git a/pkg/bgpv1/manager/reconciler/service_test.go b/pkg/bgpv1/manager/reconciler/service_test.go index d4219111e2b8a..a050ebd9b1c11 100644 --- a/pkg/bgpv1/manager/reconciler/service_test.go +++ b/pkg/bgpv1/manager/reconciler/service_test.go @@ -25,6 +25,7 @@ import ( slim_corev1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" "github.com/cilium/cilium/pkg/loadbalancer" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) func TestServiceReconcilerWithLoadBalancer(t *testing.T) { @@ -640,7 +641,7 @@ func TestServiceReconcilerWithLoadBalancer(t *testing.T) { diffstore := store.NewFakeDiffStore[*slim_corev1.Service]() epDiffStore := store.NewFakeDiffStore[*k8s.Endpoints]() - reconciler := NewServiceReconciler(diffstore, epDiffStore).Reconciler.(*ServiceReconciler) + reconciler := NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig).Reconciler.(*ServiceReconciler) reconciler.Init(testSC) defer reconciler.Cleanup(testSC) @@ -1292,7 +1293,7 @@ func TestServiceReconcilerWithClusterIP(t *testing.T) { diffstore := store.NewFakeDiffStore[*slim_corev1.Service]() epDiffStore := store.NewFakeDiffStore[*k8s.Endpoints]() - reconciler := NewServiceReconciler(diffstore, epDiffStore).Reconciler.(*ServiceReconciler) + reconciler := NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig).Reconciler.(*ServiceReconciler) reconciler.Init(testSC) defer reconciler.Cleanup(testSC) @@ -1943,7 +1944,7 @@ func TestServiceReconcilerWithExternalIP(t *testing.T) { diffstore := store.NewFakeDiffStore[*slim_corev1.Service]() epDiffStore := store.NewFakeDiffStore[*k8s.Endpoints]() - reconciler := NewServiceReconciler(diffstore, epDiffStore).Reconciler.(*ServiceReconciler) + reconciler := NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig).Reconciler.(*ServiceReconciler) reconciler.Init(testSC) defer reconciler.Cleanup(testSC) @@ -2173,7 +2174,7 @@ func TestEPUpdateOnly(t *testing.T) { diffstore := store.NewFakeDiffStore[*slim_corev1.Service]() epDiffStore := store.NewFakeDiffStore[*k8s.Endpoints]() - reconciler := NewServiceReconciler(diffstore, epDiffStore).Reconciler.(*ServiceReconciler) + reconciler := NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig).Reconciler.(*ServiceReconciler) reconciler.Init(testSC) defer reconciler.Cleanup(testSC) @@ -2314,7 +2315,7 @@ func TestServiceReconcilerWithExternalIPAndClusterIP(t *testing.T) { diffstore := store.NewFakeDiffStore[*slim_corev1.Service]() epDiffStore := store.NewFakeDiffStore[*k8s.Endpoints]() - reconciler := NewServiceReconciler(diffstore, epDiffStore).Reconciler.(*ServiceReconciler) + reconciler := NewServiceReconciler(diffstore, epDiffStore, svcrouteconfig.DefaultConfig).Reconciler.(*ServiceReconciler) reconciler.Init(testSC) defer reconciler.Cleanup(testSC) diff --git a/pkg/bgpv1/manager/reconcilerv2/service_test.go b/pkg/bgpv1/manager/reconcilerv2/service_test.go index 6b48189ae290a..deb524416555b 100644 --- a/pkg/bgpv1/manager/reconcilerv2/service_test.go +++ b/pkg/bgpv1/manager/reconcilerv2/service_test.go @@ -33,6 +33,7 @@ import ( "github.com/cilium/cilium/pkg/loadbalancer" ciliumoption "github.com/cilium/cilium/pkg/option" "github.com/cilium/cilium/pkg/source" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) // svcTestStep represents one step in the service reconciler test execution. @@ -2594,6 +2595,7 @@ func newServiceTestFixture(t *testing.T, config option.BGPConfig) *svcTestFixtur return loadbalancer.Config{} }, ), + svcrouteconfig.Cell, cell.Invoke(func(db *statedb.DB, table statedb.RWTable[*loadbalancer.Frontend]) { f.db = db f.frontends = table From 2ba6ccf8567651d5d6efeed0e0cf482b5c3538e8 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Mon, 18 Aug 2025 11:12:18 +0200 Subject: [PATCH 093/176] codeowners: add svcrouteconfig package Signed-off-by: Ondrej Blazek --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index 4074ba0c75c81..399f9804a88cc 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -638,6 +638,7 @@ Makefile* @cilium/build /pkg/source @cilium/ipcache /pkg/spanstat/ @cilium/sig-agent /pkg/status/ @cilium/sig-agent +/pkg/svcrouteconfig/ @cilium/sig-datapath @cilium/sig-bgp /pkg/testutils/ @cilium/ci-structure /pkg/testutils/scriptnet @cilium/sig-foundations /pkg/time @cilium/sig-agent From 247fc47a5b297b9e77273bb3db39bfa2804cc911 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Tue, 19 Aug 2025 12:34:01 +0200 Subject: [PATCH 094/176] datapath: embed Node into BPFSocket Signed-off-by: Ondrej Blazek --- .../contributing/development/datapath_config.rst | 4 ++-- pkg/datapath/{loader => config}/config.go | 7 +++---- pkg/datapath/config/gen.go | 2 +- pkg/datapath/config/sock_config.go | 12 +++++++----- pkg/datapath/loader/base.go | 4 ++-- pkg/datapath/loader/loader.go | 12 ++++++------ pkg/datapath/loader/xdp.go | 2 +- pkg/socketlb/socketlb.go | 10 +++++----- 8 files changed, 27 insertions(+), 26 deletions(-) rename pkg/datapath/{loader => config}/config.go (85%) diff --git a/Documentation/contributing/development/datapath_config.rst b/Documentation/contributing/development/datapath_config.rst index 8392fbf8c69ca..2913a4271d064 100644 --- a/Documentation/contributing/development/datapath_config.rst +++ b/Documentation/contributing/development/datapath_config.rst @@ -169,11 +169,11 @@ This will show up in the Go scaffolding as: Foo uint64 `config:"foo"` } -Populate it in the agent through ``pkg/datapath/loader.nodeConfig()``: +Populate it in the agent through ``pkg/datapath/config.NodeConfig()``: .. code-block:: go - func nodeConfig(lnc *datapath.LocalNodeConfiguration) config.Node { + func NodeConfig(lnc *datapath.LocalNodeConfiguration) Node { ... node.Foo = 42 ... diff --git a/pkg/datapath/loader/config.go b/pkg/datapath/config/config.go similarity index 85% rename from pkg/datapath/loader/config.go rename to pkg/datapath/config/config.go index 1b2ec526b0a19..1448cebabd5f8 100644 --- a/pkg/datapath/loader/config.go +++ b/pkg/datapath/config/config.go @@ -1,17 +1,16 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright Authors of Cilium -package loader +package config import ( - "github.com/cilium/cilium/pkg/datapath/config" "github.com/cilium/cilium/pkg/datapath/linux/probes" datapath "github.com/cilium/cilium/pkg/datapath/types" "github.com/cilium/cilium/pkg/option" ) -func nodeConfig(lnc *datapath.LocalNodeConfiguration) config.Node { - node := *config.NewNode() +func NodeConfig(lnc *datapath.LocalNodeConfiguration) Node { + node := *NewNode() if lnc.ServiceLoopbackIPv4 != nil { node.ServiceLoopbackIPv4 = [4]byte(lnc.ServiceLoopbackIPv4.To4()) diff --git a/pkg/datapath/config/gen.go b/pkg/datapath/config/gen.go index 16b5cdd9e053d..86f42e3c2f345 100644 --- a/pkg/datapath/config/gen.go +++ b/pkg/datapath/config/gen.go @@ -13,4 +13,4 @@ package config //go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_overlay.o -embed Node -kind object -name BPFOverlay -out overlay_config.go //go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_network.o -embed Node -kind object -name BPFNetwork -out network_config.go //go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_wireguard.o -embed Node -kind object -name BPFWireguard -out wireguard_config.go -//go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_sock.o -kind object -name BPFSocket -out sock_config.go +//go:generate go run github.com/cilium/cilium/tools/dpgen -path ../../../bpf/bpf_sock.o -embed Node -kind object -name BPFSock -out sock_config.go diff --git a/pkg/datapath/config/sock_config.go b/pkg/datapath/config/sock_config.go index 2ad86a58b3d07..70d168f849560 100644 --- a/pkg/datapath/config/sock_config.go +++ b/pkg/datapath/config/sock_config.go @@ -5,16 +5,18 @@ package config -// BPFSocket is a configuration struct for a Cilium datapath object. Warning: do -// not instantiate directly! Always use [NewBPFSocket] to ensure the default +// BPFSock is a configuration struct for a Cilium datapath object. Warning: do +// not instantiate directly! Always use [NewBPFSock] to ensure the default // values configured in the ELF are honored. -type BPFSocket struct { +type BPFSock struct { // Pass traffic with extended IP protocols. EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` // Enable routes when service has 0 endpoints. EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` + + Node } -func NewBPFSocket() *BPFSocket { - return &BPFSocket{false, false} +func NewBPFSock(node Node) *BPFSock { + return &BPFSock{false, false, node} } diff --git a/pkg/datapath/loader/base.go b/pkg/datapath/loader/base.go index 8073687b53e6e..75da04dee5bb0 100644 --- a/pkg/datapath/loader/base.go +++ b/pkg/datapath/loader/base.go @@ -227,7 +227,7 @@ func (l *loader) reinitializeIPSec(lnc *datapath.LocalNodeConfiguration) error { CollectionOptions: ebpf.CollectionOptions{ Maps: ebpf.MapOptions{PinPath: bpf.TCGlobalsPath()}, }, - Constants: config.NewBPFNetwork(nodeConfig(lnc)), + Constants: config.NewBPFNetwork(config.NodeConfig(lnc)), }) if err != nil { return err @@ -470,7 +470,7 @@ func (l *loader) Reinitialize(ctx context.Context, lnc *datapath.LocalNodeConfig if err := compileWithOptions(ctx, l.logger, "bpf_sock.c", "bpf_sock.o", nil); err != nil { logging.Fatal(l.logger, "failed to compile bpf_sock.c", logfields.Error, err) } - if err := socketlb.Enable(l.logger, l.sysctl, lnc.KPRConfig, l.svcRouteConfig); err != nil { + if err := socketlb.Enable(l.logger, l.sysctl, lnc, l.svcRouteConfig); err != nil { return err } } else { diff --git a/pkg/datapath/loader/loader.go b/pkg/datapath/loader/loader.go index 34599a0cabfa6..09855f21a430a 100644 --- a/pkg/datapath/loader/loader.go +++ b/pkg/datapath/loader/loader.go @@ -177,7 +177,7 @@ func bpfMasqAddrs(ifName string, cfg *datapath.LocalNodeConfiguration) (masq4, m // netdevRewrites prepares configuration data for attaching bpf_host.c to the // specified externally-facing network device. func netdevRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNodeConfiguration, link netlink.Link) (*config.BPFHost, map[string]string) { - cfg := config.NewBPFHost(nodeConfig(lnc)) + cfg := config.NewBPFHost(config.NodeConfig(lnc)) // External devices can be L2-less, in which case it won't have a MAC address // and its ethernet header length is set to 0. @@ -342,7 +342,7 @@ func reloadHostEndpoint(logger *slog.Logger, ep datapath.Endpoint, lnc *datapath // ciliumHostRewrites prepares configuration data for attaching bpf_host.c to // the cilium_host network device. func ciliumHostRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNodeConfiguration) (*config.BPFHost, map[string]string) { - cfg := config.NewBPFHost(nodeConfig(lnc)) + cfg := config.NewBPFHost(config.NodeConfig(lnc)) em := ep.GetNodeMAC() if len(em) != 6 { @@ -414,7 +414,7 @@ func attachCiliumHost(logger *slog.Logger, ep datapath.Endpoint, lnc *datapath.L // ciliumNetRewrites prepares configuration data for attaching bpf_host.c to // the cilium_net network device. func ciliumNetRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNodeConfiguration, link netlink.Link) (*config.BPFHost, map[string]string) { - cfg := config.NewBPFHost(nodeConfig(lnc)) + cfg := config.NewBPFHost(config.NodeConfig(lnc)) cfg.SecurityLabel = ep.GetIdentity().Uint32() @@ -570,7 +570,7 @@ func attachNetworkDevices(logger *slog.Logger, ep datapath.Endpoint, lnc *datapa // endpointRewrites prepares configuration data for attaching bpf_lxc.c to the // specified workload endpoint. func endpointRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNodeConfiguration) (*config.BPFLXC, map[string]string) { - cfg := config.NewBPFLXC(nodeConfig(lnc)) + cfg := config.NewBPFLXC(config.NodeConfig(lnc)) if ep.IPv4Address().IsValid() { cfg.EndpointIPv4 = ep.IPv4Address().As4() @@ -709,7 +709,7 @@ func replaceOverlayDatapath(ctx context.Context, logger *slog.Logger, lnc *datap return fmt.Errorf("loading eBPF ELF %s: %w", overlayObj, err) } - cfg := config.NewBPFOverlay(nodeConfig(lnc)) + cfg := config.NewBPFOverlay(config.NodeConfig(lnc)) cfg.InterfaceIfindex = uint32(device.Attrs().Index) cfg.EnableExtendedIPProtocols = option.Config.EnableExtendedIPProtocols @@ -756,7 +756,7 @@ func replaceWireguardDatapath(ctx context.Context, logger *slog.Logger, lnc *dat return fmt.Errorf("loading eBPF ELF %s: %w", wireguardObj, err) } - cfg := config.NewBPFWireguard(nodeConfig(lnc)) + cfg := config.NewBPFWireguard(config.NodeConfig(lnc)) cfg.InterfaceIfindex = uint32(device.Attrs().Index) if !option.Config.EnableHostLegacyRouting { diff --git a/pkg/datapath/loader/xdp.go b/pkg/datapath/loader/xdp.go index c874b97e42d08..016f102ea443e 100644 --- a/pkg/datapath/loader/xdp.go +++ b/pkg/datapath/loader/xdp.go @@ -148,7 +148,7 @@ func compileAndLoadXDPProg(ctx context.Context, logger *slog.Logger, lnc *datapa return fmt.Errorf("loading eBPF ELF %s: %w", objPath, err) } - cfg := config.NewBPFXDP(nodeConfig(lnc)) + cfg := config.NewBPFXDP(config.NodeConfig(lnc)) cfg.InterfaceIfindex = uint32(iface.Attrs().Index) cfg.DeviceMTU = uint16(iface.Attrs().MTU) diff --git a/pkg/socketlb/socketlb.go b/pkg/socketlb/socketlb.go index ab25fe510156c..ebad5a991782f 100644 --- a/pkg/socketlb/socketlb.go +++ b/pkg/socketlb/socketlb.go @@ -16,7 +16,7 @@ import ( "github.com/cilium/cilium/pkg/cgroups" "github.com/cilium/cilium/pkg/datapath/config" "github.com/cilium/cilium/pkg/datapath/linux/sysctl" - "github.com/cilium/cilium/pkg/kpr" + datapath "github.com/cilium/cilium/pkg/datapath/types" "github.com/cilium/cilium/pkg/option" "github.com/cilium/cilium/pkg/svcrouteconfig" ) @@ -58,7 +58,7 @@ func cgroupLinkPath() string { // options have changed. // It expects bpf_sock.c to be compiled previously, so that bpf_sock.o is present // in the Runtime dir. -func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig, svcCfg svcrouteconfig.RoutesConfig) error { +func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, lnc *datapath.LocalNodeConfiguration, svcCfg svcrouteconfig.RoutesConfig) error { if err := os.MkdirAll(cgroupLinkPath(), 0777); err != nil { return fmt.Errorf("create bpffs link directory: %w", err) } @@ -68,7 +68,7 @@ func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig, svc return fmt.Errorf("failed to load collection spec for bpf_sock.o: %w", err) } - cfg := config.NewBPFSocket() + cfg := config.NewBPFSock(config.NodeConfig(lnc)) cfg.EnableNoServiceEndpointsRoutable = svcCfg.EnableNoServiceEndpointsRoutable coll, commit, err := bpf.LoadCollection(logger, spec, &bpf.CollectionOptions{ @@ -103,7 +103,7 @@ func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig, svc enabled[GetPeerName4] = true } - if kprCfg.KubeProxyReplacement && option.Config.NodePortBindProtection { + if lnc.KPRConfig.KubeProxyReplacement && option.Config.NodePortBindProtection { enabled[PostBind4] = true } @@ -125,7 +125,7 @@ func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, kprCfg kpr.KPRConfig, svc enabled[GetPeerName6] = true } - if kprCfg.KubeProxyReplacement && option.Config.NodePortBindProtection { + if lnc.KPRConfig.KubeProxyReplacement && option.Config.NodePortBindProtection { enabled[PostBind6] = true } From a2faf4a8b2ac506d87d13df70b4b929f8918ece9 Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Fri, 5 Sep 2025 22:41:27 +0200 Subject: [PATCH 095/176] datapath: add svcrouteConfig to LNC * update lxc, nodeport logic around NO_SERVICE_BACKEND with new flag Signed-off-by: Ondrej Blazek --- bpf/bpf_lxc.c | 26 ++++++++++++-------- bpf/lib/lb.h | 26 ++++++++++++++++++++ bpf/lib/nodeport.h | 17 +++++++++---- pkg/datapath/config/host_config.go | 4 ++- pkg/datapath/config/lxc_config.go | 4 ++- pkg/datapath/config/overlay_config.go | 4 ++- pkg/datapath/config/wireguard_config.go | 4 ++- pkg/datapath/config/xdp_config.go | 4 ++- pkg/datapath/loader/base.go | 2 +- pkg/datapath/loader/loader.go | 8 +++--- pkg/datapath/orchestrator/localnodeconfig.go | 3 +++ pkg/datapath/orchestrator/orchestrator.go | 3 +++ pkg/datapath/types/node.go | 3 +++ pkg/datapath/types/zz_generated.deepequal.go | 4 +++ pkg/socketlb/socketlb.go | 5 ++-- 15 files changed, 89 insertions(+), 28 deletions(-) diff --git a/bpf/bpf_lxc.c b/bpf/bpf_lxc.c index 99c7c51aad237..00ff8e0cde39e 100644 --- a/bpf/bpf_lxc.c +++ b/bpf/bpf_lxc.c @@ -127,14 +127,17 @@ static __always_inline int __per_packet_lb_svc_xlate_4(void *ctx, struct iphdr * l4_off, &key, &tuple, svc, &ct_state_new, false, &cluster_id, ext_err, ENDPOINT_NETNS_COOKIE); + if (IS_ERR(ret)) { + if (ret == DROP_NO_SERVICE) { + if (!CONFIG(enable_no_service_endpoints_routable)) + return handle_nonroutable_endpoints_v4(svc); #ifdef SERVICE_NO_BACKEND_RESPONSE - if (ret == DROP_NO_SERVICE) - ret = tail_call_internal(ctx, CILIUM_CALL_IPV4_NO_SERVICE, - ext_err); + ret = tail_call_internal(ctx, CILIUM_CALL_IPV4_NO_SERVICE, + ext_err); #endif - - if (IS_ERR(ret)) + } return ret; + } } skip_service_lookup: /* Store state to be picked up on the continuation tail call. */ @@ -200,14 +203,17 @@ static __always_inline int __per_packet_lb_svc_xlate_6(void *ctx, struct ipv6hdr l4_off, &key, &tuple, svc, &ct_state_new, false, ext_err, ENDPOINT_NETNS_COOKIE); + if (IS_ERR(ret)) { + if (ret == DROP_NO_SERVICE) { + if (!CONFIG(enable_no_service_endpoints_routable)) + return handle_nonroutable_endpoints_v6(svc); #ifdef SERVICE_NO_BACKEND_RESPONSE - if (ret == DROP_NO_SERVICE) - ret = tail_call_internal(ctx, CILIUM_CALL_IPV6_NO_SERVICE, - ext_err); + ret = tail_call_internal(ctx, CILIUM_CALL_IPV6_NO_SERVICE, + ext_err); #endif - - if (IS_ERR(ret)) + } return ret; + } } skip_service_lookup: diff --git a/bpf/lib/lb.h b/bpf/lib/lb.h index ab24576bacb54..984caed2ad000 100644 --- a/bpf/lib/lb.h +++ b/bpf/lib/lb.h @@ -2432,3 +2432,29 @@ __wsum icmp_wsum_accumulate(void *data_start, void *data_end, int sample_len) } #endif /* SERVICE_NO_BACKEND_RESPONSE */ + +static __always_inline +int handle_nonroutable_endpoints_v4(struct lb4_service *svc) +{ + if ((lb4_svc_is_external(svc) && + (svc->flags & SVC_FLAG_EXT_LOCAL_SCOPE)) || + (!lb4_svc_is_external(svc) && + (svc->flags2 & SVC_FLAG_INT_LOCAL_SCOPE))) { + return DROP_NO_SERVICE; + } + /* continue via the slowpath */ + return CTX_ACT_OK; +} + +static __always_inline +int handle_nonroutable_endpoints_v6(struct lb6_service *svc) +{ + if ((lb6_svc_is_external(svc) && + (svc->flags & SVC_FLAG_EXT_LOCAL_SCOPE)) || + (!lb6_svc_is_external(svc) && + (svc->flags2 & SVC_FLAG_INT_LOCAL_SCOPE))) { + return DROP_NO_SERVICE; + } + /* continue via the slowpath */ + return CTX_ACT_OK; +} diff --git a/bpf/lib/nodeport.h b/bpf/lib/nodeport.h index de297f63008ae..bfe757bc578ed 100644 --- a/bpf/lib/nodeport.h +++ b/bpf/lib/nodeport.h @@ -27,6 +27,8 @@ #include "fib.h" #include "srv6.h" +DECLARE_CONFIG(bool, enable_no_service_endpoints_routable, + "Enable routes when service has 0 endpoints") DECLARE_CONFIG(__u16, device_mtu, "MTU of the device the bpf program is attached to (default: MTU set in node_config.h by agent)") ASSIGN_CONFIG(__u16, device_mtu, MTU) #define THIS_MTU CONFIG(device_mtu) /* Backwards compatibility */ @@ -1351,13 +1353,15 @@ static __always_inline int nodeport_svc_lb6(struct __ctx_buff *ctx, key, tuple, svc, &ct_state_svc, nodeport_xlate6(svc, tuple), ext_err, 0); if (IS_ERR(ret)) { -#ifdef SERVICE_NO_BACKEND_RESPONSE if (ret == DROP_NO_SERVICE) { + if (!CONFIG(enable_no_service_endpoints_routable)) + return handle_nonroutable_endpoints_v6(svc); +#ifdef SERVICE_NO_BACKEND_RESPONSE edt_set_aggregate(ctx, 0); ret = tail_call_internal(ctx, CILIUM_CALL_IPV6_NO_SERVICE, - ext_err); - } + ext_err); #endif + } if (ret == LB_PUNT_TO_STACK) { *punt_to_stack = true; return CTX_ACT_OK; @@ -2706,14 +2710,17 @@ static __always_inline int nodeport_svc_lb4(struct __ctx_buff *ctx, nodeport_xlate4(svc, tuple), &cluster_id, ext_err, 0); } if (IS_ERR(ret)) { -#ifdef SERVICE_NO_BACKEND_RESPONSE if (ret == DROP_NO_SERVICE) { + if (!CONFIG(enable_no_service_endpoints_routable)) + return handle_nonroutable_endpoints_v4(svc); + +#ifdef SERVICE_NO_BACKEND_RESPONSE /* Packet is TX'ed back out, avoid EDT false-positives: */ edt_set_aggregate(ctx, 0); ret = tail_call_internal(ctx, CILIUM_CALL_IPV4_NO_SERVICE, ext_err); - } #endif + } if (ret == LB_PUNT_TO_STACK) { *punt_to_stack = true; return CTX_ACT_OK; diff --git a/pkg/datapath/config/host_config.go b/pkg/datapath/config/host_config.go index fe1ae07c87fa9..c85698b9874e5 100644 --- a/pkg/datapath/config/host_config.go +++ b/pkg/datapath/config/host_config.go @@ -14,6 +14,8 @@ type BPFHost struct { DeviceMTU uint16 `config:"device_mtu"` // Pass traffic with extended IP protocols. EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` + // Enable routes when service has 0 endpoints. + EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` // Masquerade traffic to remote nodes. EnableRemoteNodeMasquerade bool `config:"enable_remote_node_masquerade"` // Length of the Ethernet header on this device. May be set to zero on L2-less @@ -38,7 +40,7 @@ type BPFHost struct { } func NewBPFHost(node Node) *BPFHost { - return &BPFHost{0x5dc, false, false, 0xe, 0x0, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, + return &BPFHost{0x5dc, false, false, false, 0xe, 0x0, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, [4]byte{0x0, 0x0, 0x0, 0x0}, [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, false, 0x0, node} diff --git a/pkg/datapath/config/lxc_config.go b/pkg/datapath/config/lxc_config.go index cd13d705bf63d..d858be27a7581 100644 --- a/pkg/datapath/config/lxc_config.go +++ b/pkg/datapath/config/lxc_config.go @@ -14,6 +14,8 @@ type BPFLXC struct { DeviceMTU uint16 `config:"device_mtu"` // Pass traffic with extended IP protocols. EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` + // Enable routes when service has 0 endpoints. + EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` // Masquerade traffic to remote nodes. EnableRemoteNodeMasquerade bool `config:"enable_remote_node_masquerade"` // The endpoint's security ID. @@ -45,7 +47,7 @@ type BPFLXC struct { } func NewBPFLXC(node Node) *BPFLXC { - return &BPFLXC{0x5dc, false, false, 0x0, [4]byte{0x0, 0x0, 0x0, 0x0}, + return &BPFLXC{0x5dc, false, false, false, 0x0, [4]byte{0x0, 0x0, 0x0, 0x0}, [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x0, 0x0, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, [4]byte{0x0, 0x0, 0x0, 0x0}, diff --git a/pkg/datapath/config/overlay_config.go b/pkg/datapath/config/overlay_config.go index ff631279585b9..55a5ec9728f8e 100644 --- a/pkg/datapath/config/overlay_config.go +++ b/pkg/datapath/config/overlay_config.go @@ -14,6 +14,8 @@ type BPFOverlay struct { DeviceMTU uint16 `config:"device_mtu"` // Pass traffic with extended IP protocols. EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` + // Enable routes when service has 0 endpoints. + EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` // Masquerade traffic to remote nodes. EnableRemoteNodeMasquerade bool `config:"enable_remote_node_masquerade"` // Ifindex of the interface the bpf program is attached to. @@ -31,7 +33,7 @@ type BPFOverlay struct { } func NewBPFOverlay(node Node) *BPFOverlay { - return &BPFOverlay{0x5dc, false, false, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, + return &BPFOverlay{0x5dc, false, false, false, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, [4]byte{0x0, 0x0, 0x0, 0x0}, [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, false, node} diff --git a/pkg/datapath/config/wireguard_config.go b/pkg/datapath/config/wireguard_config.go index 122bb50def7a3..c8b1200991a41 100644 --- a/pkg/datapath/config/wireguard_config.go +++ b/pkg/datapath/config/wireguard_config.go @@ -14,6 +14,8 @@ type BPFWireguard struct { DeviceMTU uint16 `config:"device_mtu"` // Pass traffic with extended IP protocols. EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` + // Enable routes when service has 0 endpoints. + EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` // Masquerade traffic to remote nodes. EnableRemoteNodeMasquerade bool `config:"enable_remote_node_masquerade"` // Ifindex of the interface the bpf program is attached to. @@ -31,7 +33,7 @@ type BPFWireguard struct { } func NewBPFWireguard(node Node) *BPFWireguard { - return &BPFWireguard{0x5dc, false, false, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, + return &BPFWireguard{0x5dc, false, false, false, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, [4]byte{0x0, 0x0, 0x0, 0x0}, [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, false, node} diff --git a/pkg/datapath/config/xdp_config.go b/pkg/datapath/config/xdp_config.go index 065a325123920..73e18901d0184 100644 --- a/pkg/datapath/config/xdp_config.go +++ b/pkg/datapath/config/xdp_config.go @@ -14,6 +14,8 @@ type BPFXDP struct { DeviceMTU uint16 `config:"device_mtu"` // Pass traffic with extended IP protocols. EnableExtendedIPProtocols bool `config:"enable_extended_ip_protocols"` + // Enable routes when service has 0 endpoints. + EnableNoServiceEndpointsRoutable bool `config:"enable_no_service_endpoints_routable"` // Masquerade traffic to remote nodes. EnableRemoteNodeMasquerade bool `config:"enable_remote_node_masquerade"` // Ifindex of the interface the bpf program is attached to. @@ -31,7 +33,7 @@ type BPFXDP struct { } func NewBPFXDP(node Node) *BPFXDP { - return &BPFXDP{0x5dc, false, false, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, + return &BPFXDP{0x5dc, false, false, false, 0x0, [8]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, [4]byte{0x0, 0x0, 0x0, 0x0}, [16]byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, false, node} diff --git a/pkg/datapath/loader/base.go b/pkg/datapath/loader/base.go index 75da04dee5bb0..cdee3716d50c0 100644 --- a/pkg/datapath/loader/base.go +++ b/pkg/datapath/loader/base.go @@ -470,7 +470,7 @@ func (l *loader) Reinitialize(ctx context.Context, lnc *datapath.LocalNodeConfig if err := compileWithOptions(ctx, l.logger, "bpf_sock.c", "bpf_sock.o", nil); err != nil { logging.Fatal(l.logger, "failed to compile bpf_sock.c", logfields.Error, err) } - if err := socketlb.Enable(l.logger, l.sysctl, lnc, l.svcRouteConfig); err != nil { + if err := socketlb.Enable(l.logger, l.sysctl, lnc); err != nil { return err } } else { diff --git a/pkg/datapath/loader/loader.go b/pkg/datapath/loader/loader.go index 09855f21a430a..6a5838764447c 100644 --- a/pkg/datapath/loader/loader.go +++ b/pkg/datapath/loader/loader.go @@ -38,7 +38,6 @@ import ( "github.com/cilium/cilium/pkg/maps/policymap" "github.com/cilium/cilium/pkg/node/manager" "github.com/cilium/cilium/pkg/option" - "github.com/cilium/cilium/pkg/svcrouteconfig" ) const ( @@ -84,7 +83,6 @@ type loader struct { compilationLock datapath.CompilationLock configWriter datapath.ConfigWriter nodeConfigNotifier *manager.NodeConfigNotifier - svcRouteConfig svcrouteconfig.RoutesConfig } type Params struct { @@ -96,7 +94,6 @@ type Params struct { CompilationLock datapath.CompilationLock ConfigWriter datapath.ConfigWriter NodeConfigNotifier *manager.NodeConfigNotifier - ServiceRouteConfig svcrouteconfig.RoutesConfig // Force map initialisation before loader. You should not use these otherwise. // Some of the entries in this slice may be nil. @@ -114,7 +111,6 @@ func newLoader(p Params) *loader { compilationLock: p.CompilationLock, configWriter: p.ConfigWriter, nodeConfigNotifier: p.NodeConfigNotifier, - svcRouteConfig: p.ServiceRouteConfig, } } @@ -213,6 +209,7 @@ func netdevRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNodeCo cfg.EnableExtendedIPProtocols = option.Config.EnableExtendedIPProtocols cfg.HostEpID = uint16(lnc.HostEndpointID) + cfg.EnableNoServiceEndpointsRoutable = lnc.SvcRouteConfig.EnableNoServiceEndpointsRoutable renames := map[string]string{ // Rename the calls map to include the device's ifindex. @@ -429,6 +426,7 @@ func ciliumNetRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNod } cfg.EnableExtendedIPProtocols = option.Config.EnableExtendedIPProtocols + cfg.EnableNoServiceEndpointsRoutable = lnc.SvcRouteConfig.EnableNoServiceEndpointsRoutable ifindex := link.Attrs().Index cfg.InterfaceIfindex = uint32(ifindex) @@ -597,6 +595,7 @@ func endpointRewrites(ep datapath.EndpointConfiguration, lnc *datapath.LocalNode cfg.PolicyVerdictLogFilter = ep.GetPolicyVerdictLogFilter() cfg.HostEpID = uint16(lnc.HostEndpointID) + cfg.EnableNoServiceEndpointsRoutable = lnc.SvcRouteConfig.EnableNoServiceEndpointsRoutable renames := map[string]string{ // Rename the calls and policy maps to include the endpoint's id. @@ -713,6 +712,7 @@ func replaceOverlayDatapath(ctx context.Context, logger *slog.Logger, lnc *datap cfg.InterfaceIfindex = uint32(device.Attrs().Index) cfg.EnableExtendedIPProtocols = option.Config.EnableExtendedIPProtocols + cfg.EnableNoServiceEndpointsRoutable = lnc.SvcRouteConfig.EnableNoServiceEndpointsRoutable var obj overlayObjects commit, err := bpf.LoadAndAssign(logger, &obj, spec, &bpf.CollectionOptions{ diff --git a/pkg/datapath/orchestrator/localnodeconfig.go b/pkg/datapath/orchestrator/localnodeconfig.go index 5d2d2bf51698c..0214d7a86acbc 100644 --- a/pkg/datapath/orchestrator/localnodeconfig.go +++ b/pkg/datapath/orchestrator/localnodeconfig.go @@ -23,6 +23,7 @@ import ( "github.com/cilium/cilium/pkg/mtu" "github.com/cilium/cilium/pkg/node" "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/svcrouteconfig" wgTypes "github.com/cilium/cilium/pkg/wireguard/types" ) @@ -52,6 +53,7 @@ func newLocalNodeConfig( xdpConfig xdp.Config, lbConfig loadbalancer.Config, kprCfg kpr.KPRConfig, + svcCfg svcrouteconfig.RoutesConfig, maglevConfig maglev.Config, mtuTbl statedb.Table[mtu.RouteMTU], wgCfg wgTypes.WireguardConfig, @@ -128,6 +130,7 @@ func newLocalNodeConfig( XDPConfig: xdpConfig, LBConfig: lbConfig, KPRConfig: kprCfg, + SvcRouteConfig: svcCfg, MaglevConfig: maglevConfig, }, common.MergeChannels(watchChans...), nil } diff --git a/pkg/datapath/orchestrator/orchestrator.go b/pkg/datapath/orchestrator/orchestrator.go index 594234e8530b1..98f0032e8daef 100644 --- a/pkg/datapath/orchestrator/orchestrator.go +++ b/pkg/datapath/orchestrator/orchestrator.go @@ -35,6 +35,7 @@ import ( "github.com/cilium/cilium/pkg/promise" "github.com/cilium/cilium/pkg/proxy" "github.com/cilium/cilium/pkg/rate" + "github.com/cilium/cilium/pkg/svcrouteconfig" "github.com/cilium/cilium/pkg/time" wgTypes "github.com/cilium/cilium/pkg/wireguard/types" ) @@ -109,6 +110,7 @@ type orchestratorParams struct { XDPConfig xdp.Config LBConfig loadbalancer.Config KPRConfig kpr.KPRConfig + SvcRouteConfig svcrouteconfig.RoutesConfig MaglevConfig maglev.Config WgConfig wgTypes.WireguardConfig IPsecConfig datapath.IPsecConfig @@ -210,6 +212,7 @@ func (o *orchestrator) reconciler(ctx context.Context, health cell.Health) error o.params.XDPConfig, o.params.LBConfig, o.params.KPRConfig, + o.params.SvcRouteConfig, o.params.MaglevConfig, o.params.MTU, o.params.WgConfig, diff --git a/pkg/datapath/types/node.go b/pkg/datapath/types/node.go index a4952ac85e35d..86580276b8bf2 100644 --- a/pkg/datapath/types/node.go +++ b/pkg/datapath/types/node.go @@ -14,6 +14,7 @@ import ( "github.com/cilium/cilium/pkg/loadbalancer" "github.com/cilium/cilium/pkg/maglev" nodeTypes "github.com/cilium/cilium/pkg/node/types" + "github.com/cilium/cilium/pkg/svcrouteconfig" ) type MTUConfiguration interface { @@ -202,6 +203,8 @@ type LocalNodeConfiguration struct { MaglevConfig maglev.Config KPRConfig kpr.KPRConfig + + SvcRouteConfig svcrouteconfig.RoutesConfig } func (cfg *LocalNodeConfiguration) DeviceNames() []string { diff --git a/pkg/datapath/types/zz_generated.deepequal.go b/pkg/datapath/types/zz_generated.deepequal.go index bccebdfee8d0e..0e42c29e0bfe3 100644 --- a/pkg/datapath/types/zz_generated.deepequal.go +++ b/pkg/datapath/types/zz_generated.deepequal.go @@ -303,5 +303,9 @@ func (in *LocalNodeConfiguration) DeepEqual(other *LocalNodeConfiguration) bool return false } + if in.SvcRouteConfig != other.SvcRouteConfig { + return false + } + return true } diff --git a/pkg/socketlb/socketlb.go b/pkg/socketlb/socketlb.go index ebad5a991782f..09da470bcbe0a 100644 --- a/pkg/socketlb/socketlb.go +++ b/pkg/socketlb/socketlb.go @@ -18,7 +18,6 @@ import ( "github.com/cilium/cilium/pkg/datapath/linux/sysctl" datapath "github.com/cilium/cilium/pkg/datapath/types" "github.com/cilium/cilium/pkg/option" - "github.com/cilium/cilium/pkg/svcrouteconfig" ) const ( @@ -58,7 +57,7 @@ func cgroupLinkPath() string { // options have changed. // It expects bpf_sock.c to be compiled previously, so that bpf_sock.o is present // in the Runtime dir. -func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, lnc *datapath.LocalNodeConfiguration, svcCfg svcrouteconfig.RoutesConfig) error { +func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, lnc *datapath.LocalNodeConfiguration) error { if err := os.MkdirAll(cgroupLinkPath(), 0777); err != nil { return fmt.Errorf("create bpffs link directory: %w", err) } @@ -69,7 +68,7 @@ func Enable(logger *slog.Logger, sysctl sysctl.Sysctl, lnc *datapath.LocalNodeCo } cfg := config.NewBPFSock(config.NodeConfig(lnc)) - cfg.EnableNoServiceEndpointsRoutable = svcCfg.EnableNoServiceEndpointsRoutable + cfg.EnableNoServiceEndpointsRoutable = lnc.SvcRouteConfig.EnableNoServiceEndpointsRoutable coll, commit, err := bpf.LoadCollection(logger, spec, &bpf.CollectionOptions{ CollectionOptions: ebpf.CollectionOptions{ From 8ab0e356109b6370c80a6b9c2724130211845a1b Mon Sep 17 00:00:00 2001 From: Ondrej Blazek Date: Fri, 5 Sep 2025 22:42:33 +0200 Subject: [PATCH 096/176] bpf: define enable_no_service_endpoints_routable in tests Signed-off-by: Ondrej Blazek --- bpf/tests/tc_lb_no_backend_nonroutable.c | 170 ++++++++++++++++++++++ bpf/tests/tc_lxc_lb4_no_backend.c | 2 + bpf/tests/tc_lxc_lb6_no_backend.c | 2 + bpf/tests/tc_nodeport_lb4_no_backend.c | 1 + bpf/tests/tc_nodeport_lb4_wildcard_drop.c | 2 + bpf/tests/tc_nodeport_lb6_no_backend.c | 2 + bpf/tests/tc_nodeport_lb6_wildcard_drop.c | 2 + bpf/tests/tc_nodeport_test.c | 1 + bpf/tests/xdp_nodeport_lb4_test.c | 2 + 9 files changed, 184 insertions(+) create mode 100644 bpf/tests/tc_lb_no_backend_nonroutable.c diff --git a/bpf/tests/tc_lb_no_backend_nonroutable.c b/bpf/tests/tc_lb_no_backend_nonroutable.c new file mode 100644 index 0000000000000..cb4309bb92946 --- /dev/null +++ b/bpf/tests/tc_lb_no_backend_nonroutable.c @@ -0,0 +1,170 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +/* Copyright Authors of Cilium */ + +#include +#include "common.h" + +/* Enable CT debug output */ +#undef QUIET_CT + +#include "pktgen.h" + +/* Enable code paths under test*/ +#define ENABLE_IPV4 + +/* Skip ingress policy checks */ +#define USE_BPF_PROG_FOR_INGRESS_POLICY + +#include + +/* Set the LXC source address to be the address of pod one */ +ASSIGN_CONFIG(union v4addr, endpoint_ipv4, { .be32 = v4_pod_one}) +ASSIGN_CONFIG(union v4addr, service_loopback_ipv4, { .be32 = v4_svc_loopback }) +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, false) + +#include "lib/endpoint.h" +#include "lib/ipcache.h" +#include "lib/lb.h" +#include "lib/policy.h" + +struct { + __uint(type, BPF_MAP_TYPE_PROG_ARRAY); + __uint(key_size, sizeof(__u32)); + __uint(max_entries, 2); + __array(values, int()); +} entry_call_map __section(".maps") = { + .values = { + [0] = &cil_from_container, + [1] = &cil_to_container, + }, +}; + +/* Setup for this test: + * +-------ClusterIP--------+ +----------Pod 1---------+ + * | v4_svc_one:tcp_svc_one | -> | v4_pod_one:tcp_svc_one | + * +------------------------+ +------------------------+ + * ^ | + * \---------------------------/ + */ + +static __always_inline int build_packet(struct __ctx_buff *ctx, + __be16 sport) +{ + struct pktgen builder; + volatile const __u8 *src = mac_one; + volatile const __u8 *dst = mac_two; + struct tcphdr *l4; + void *data; + + /* Init packet builder */ + pktgen__init(&builder, ctx); + + l4 = pktgen__push_ipv4_tcp_packet(&builder, + (__u8 *)src, (__u8 *)dst, + v4_pod_one, v4_svc_one, + sport, tcp_svc_one); + if (!l4) + return TEST_ERROR; + + data = pktgen__push_data(&builder, default_data, sizeof(default_data)); + + if (!data) + return TEST_ERROR; + + /* Calc lengths, set protocol fields and calc checksums */ + pktgen__finish(&builder); + + return 0; +} + +/* Test that a packet for a SVC without any backend does not get dropped (enable_no_endpoints_routable=false). */ +SETUP("tc", "tc_lb_no_backend_nonroutable") +int tc_lb_no_backend_nonroutable_setup(struct __ctx_buff *ctx) +{ + int ret; + + ret = build_packet(ctx, tcp_src_two); + if (ret) + return ret; + + lb_v4_add_service_with_flags(v4_svc_one, tcp_svc_one, IPPROTO_TCP, 0, 1, + SVC_FLAG_LOADBALANCER, 0); + + /* avoid policy drop */ + policy_add_egress_allow_all_entry(); + + /* Jump into the entrypoint */ + tail_call_static(ctx, entry_call_map, 0); + /* Fail if we didn't jump */ + return TEST_ERROR; +} + +CHECK("tc", "tc_lb_no_backend_nonroutable") +int tc_lb_no_backend_nonroutable_check(const struct __ctx_buff *ctx) +{ + __u32 expected_status = TC_ACT_OK; + __u32 *status_code; + void *data_end; + void *data; + + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(__u32) > data_end) + test_fatal("status code out of bounds"); + + status_code = data; + + if (*status_code != expected_status) + test_fatal("status code is %lu, expected %lu", *status_code, expected_status); + + test_finish(); +} + +/* Test that a packet for a SVC without any backend with eTP=Local gets dropped. */ +SETUP("tc", "tc_lb_no_backend_nonroutable_etp") +int tc_lb_no_backend_nonroutable_etp_setup(struct __ctx_buff *ctx) +{ + int ret; + + ret = build_packet(ctx, tcp_src_two); + if (ret) + return ret; + + lb_v4_add_service_with_flags(v4_svc_one, tcp_svc_one, IPPROTO_TCP, 0, 1, + SVC_FLAG_LOADBALANCER | SVC_FLAG_EXT_LOCAL_SCOPE, 0); + + /* avoid policy drop */ + policy_add_egress_allow_all_entry(); + + /* Jump into the entrypoint */ + tail_call_static(ctx, entry_call_map, 0); + /* Fail if we didn't jump */ + return TEST_ERROR; +} + +CHECK("tc", "tc_lb_no_backend_nonroutable_etp") +int tc_lb_no_backend_nonroutable_etp_check(const struct __ctx_buff *ctx) +{ + __u32 expected_status = TC_ACT_SHOT; + __u32 *status_code; + void *data_end; + void *data; + + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(__u32) > data_end) + test_fatal("status code out of bounds"); + + status_code = data; + + if (*status_code != expected_status) + test_fatal("status code is %lu, expected %lu", *status_code, expected_status); + + test_finish(); +} diff --git a/bpf/tests/tc_lxc_lb4_no_backend.c b/bpf/tests/tc_lxc_lb4_no_backend.c index 2a039bcd7a8ba..5e474ed02acf3 100644 --- a/bpf/tests/tc_lxc_lb4_no_backend.c +++ b/bpf/tests/tc_lxc_lb4_no_backend.c @@ -25,6 +25,8 @@ static volatile const __u8 lb_mac[ETH_ALEN] = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x #include +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) + #include "lib/ipcache.h" #include "lib/lb.h" diff --git a/bpf/tests/tc_lxc_lb6_no_backend.c b/bpf/tests/tc_lxc_lb6_no_backend.c index 90dfe88eb8303..a00ba1c260be4 100644 --- a/bpf/tests/tc_lxc_lb6_no_backend.c +++ b/bpf/tests/tc_lxc_lb6_no_backend.c @@ -25,6 +25,8 @@ static volatile const __u8 lb_mac[ETH_ALEN] = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x #include +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) + #include "lib/ipcache.h" #include "lib/lb.h" diff --git a/bpf/tests/tc_nodeport_lb4_no_backend.c b/bpf/tests/tc_nodeport_lb4_no_backend.c index 16008ac307076..1db122fa4a7fa 100644 --- a/bpf/tests/tc_nodeport_lb4_no_backend.c +++ b/bpf/tests/tc_nodeport_lb4_no_backend.c @@ -27,6 +27,7 @@ static volatile const __u8 lb_mac[ETH_ALEN] = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x #include ASSIGN_CONFIG(union v4addr, nat_ipv4_masquerade, { .be32 = FRONTEND_IP}) +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) #include "lib/ipcache.h" #include "lib/lb.h" diff --git a/bpf/tests/tc_nodeport_lb4_wildcard_drop.c b/bpf/tests/tc_nodeport_lb4_wildcard_drop.c index a70dac1cb48bf..1164687020745 100644 --- a/bpf/tests/tc_nodeport_lb4_wildcard_drop.c +++ b/bpf/tests/tc_nodeport_lb4_wildcard_drop.c @@ -27,6 +27,8 @@ static volatile const __u8 lb_mac[ETH_ALEN] = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x #include +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) + #include "lib/ipcache.h" #include "lib/lb.h" diff --git a/bpf/tests/tc_nodeport_lb6_no_backend.c b/bpf/tests/tc_nodeport_lb6_no_backend.c index 370fef0d3b7b5..8b74672421f3d 100644 --- a/bpf/tests/tc_nodeport_lb6_no_backend.c +++ b/bpf/tests/tc_nodeport_lb6_no_backend.c @@ -26,6 +26,8 @@ static volatile const __u8 lb_mac[ETH_ALEN] = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x #include +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) + #include "lib/ipcache.h" #include "lib/lb.h" diff --git a/bpf/tests/tc_nodeport_lb6_wildcard_drop.c b/bpf/tests/tc_nodeport_lb6_wildcard_drop.c index 90c69206d222b..c0d34364ad337 100644 --- a/bpf/tests/tc_nodeport_lb6_wildcard_drop.c +++ b/bpf/tests/tc_nodeport_lb6_wildcard_drop.c @@ -22,6 +22,8 @@ static volatile const __u8 lb_mac[ETH_ALEN] = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x #include +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) + #include "lib/ipcache.h" #include "lib/lb.h" diff --git a/bpf/tests/tc_nodeport_test.c b/bpf/tests/tc_nodeport_test.c index 3a968d0e325f8..7dd16f0060d35 100644 --- a/bpf/tests/tc_nodeport_test.c +++ b/bpf/tests/tc_nodeport_test.c @@ -26,6 +26,7 @@ ASSIGN_CONFIG(union v6addr, service_loopback_ipv6, { .addr = v6_svc_loopback }) #define POD_IPV6 v6_pod_one #define SERVICE_IPV6 v6_node_three +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) #include "lib/endpoint.h" #include "lib/ipcache.h" diff --git a/bpf/tests/xdp_nodeport_lb4_test.c b/bpf/tests/xdp_nodeport_lb4_test.c index c693e2f1f2e20..1f00ffdf51466 100644 --- a/bpf/tests/xdp_nodeport_lb4_test.c +++ b/bpf/tests/xdp_nodeport_lb4_test.c @@ -24,6 +24,8 @@ long mock_fib_lookup(__maybe_unused void *ctx, struct bpf_fib_lookup *params, #include "bpf_xdp.c" #include "lib/nodeport.h" +ASSIGN_CONFIG(bool, enable_no_service_endpoints_routable, true) + #include "lib/lb.h" struct { From ea3dbb8d278bca3af4559d1370a354564357859e Mon Sep 17 00:00:00 2001 From: Yash Israni Date: Wed, 17 Sep 2025 15:03:25 +0530 Subject: [PATCH 097/176] docs: fix broken Chainguard SBOM link [ Quentin: squashed and rebased commits ] Signed-off-by: Yash Israni Signed-off-by: Quentin Monnet --- Documentation/configuration/sbom.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/configuration/sbom.rst b/Documentation/configuration/sbom.rst index 06ed352a313d2..c7fb9311a1469 100644 --- a/Documentation/configuration/sbom.rst +++ b/Documentation/configuration/sbom.rst @@ -16,10 +16,10 @@ insight into the software supply chain and any potential concerns related to license compliance and security that might exist. The Cilium SBOM is generated using the `syft`_ tool. To learn more about SBOM, see -`what an SBOM can do for you`_. +`what is an SBOM`_. .. _`syft`: https://github.com/anchore/syft -.. _`what an SBOM can do for you`: https://www.chainguard.dev/unchained/what-an-sbom-can-do-for-you +.. _`what is an SBOM`: https://edu.chainguard.dev/open-source/sbom/what-is-an-sbom/ Prerequisites ============= From b0ca76f9ed500d0896f9e373e8d85406638a51ee Mon Sep 17 00:00:00 2001 From: Tony Norlin Date: Wed, 17 Sep 2025 13:55:34 +0200 Subject: [PATCH 098/176] Add documentation about dynamic Hubble Metrics [CFP-30788]. Signed-off-by: Tony Norlin --- Documentation/observability/metrics.rst | 160 ++++++++++++++++++++++-- 1 file changed, 153 insertions(+), 7 deletions(-) diff --git a/Documentation/observability/metrics.rst b/Documentation/observability/metrics.rst index fe67bb23d6583..2b6e3ea201add 100644 --- a/Documentation/observability/metrics.rst +++ b/Documentation/observability/metrics.rst @@ -47,6 +47,12 @@ if you want to disable them, set Helm value ``operator.prometheus.enabled=false` --set prometheus.enabled=true \\ --set operator.prometheus.enabled=true +Cilium Metrics Scraping +----------------------- + +Prometheus Port Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + The ports can be configured via ``prometheus.port``, ``envoy.prometheus.port``, or ``operator.prometheus.port`` respectively. @@ -90,6 +96,15 @@ option is set in the ``scrape_configs`` section: replacement: ${1}:${2} target_label: __address__ +Prometheus Operator ServiceMonitor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can automatically create a +`Prometheus Operator `__ +``ServiceMonitor`` by setting ``prometheus.serviceMonitor.enabled=true``, or +``envoy.prometheus.serviceMonitor.enabled=true``, or +``operator.prometheus.serviceMonitor.enabled=true`` respectively. + .. _hubble_metrics: Hubble Metrics @@ -99,17 +114,27 @@ While Cilium metrics allow you to monitor the state of Cilium itself, Hubble metrics on the other hand allow you to monitor the network behavior of your Cilium-managed Kubernetes pods with respect to connectivity and security. -Installation ------------- - -To deploy Cilium with Hubble metrics enabled, you need to enable Hubble with -``hubble.enabled=true`` and provide a set of Hubble metrics you want to -enable via ``hubble.metrics.enabled``. - Some of the metrics can also be configured with additional options. See the :ref:`Hubble exported metrics` section for the full list of available metrics and their options. +Static or dynamic exporter +-------------------------- + +Hubble Metrics can either be configured with a static or dynamic exporter. + +The dynamic metrics exporter allows you to change defined metrics as needed +without requiring an agent restart. + + +Installation with a static metrics exporter +------------------------------------------- + +To deploy Cilium with Hubble Metrics static exporter enabled, you need to enable +Hubble with ``hubble.enabled=true`` and provide a set of Hubble metrics you want to +enable via ``hubble.metrics.enabled``. + + .. parsed-literal:: helm install cilium |CHART_RELEASE| \\ @@ -120,6 +145,120 @@ section for the full list of available metrics and their options. --set hubble.metrics.enableOpenMetrics=true \\ --set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,httpV2:exemplars=true;labelsContext=source_ip\\,source_namespace\\,source_workload\\,destination_ip\\,destination_namespace\\,destination_workload\\,traffic_direction}" + +Installation with a dynamic metrics exporter +-------------------------------------------- + +To deploy Cilium with Hubble dynamic metrics enabled, you need to enable Hubble +with ``hubble.enabled=true`` and ``hubble.metrics.dynamic.enabled=true``. + +In this example, a ``ConfigMap`` with a set of metrics will be applied before +enabling the exporter, but the desired set of metrics (together with the +``ConfigMap``) can be created during installation. + +See the :ref:`helm_reference` (keys with ``hubble.metrics.dynamic.*``) + + + +.. code-block:: yaml + + apiVersion: v1 + kind: ConfigMap + metadata: + name: cilium-dynamic-metrics-config + namespace: kube-system + data: + dynamic-metrics.yaml: | + metrics: + - name: dns + - contextOptions: + - name: sourceContext + values: + - workload-name + - reserved-identity + - name: destinationContext + values: + - workload-name + - reserved-identity + name: flow + - name: drop + - name: tcp + - contextOptions: + - name: sourceContext + values: + - workload-name + - reserved-identity + name: icmp + - contextOptions: + - name: exemplars + values: + - true + - name: labelsContext + values: + - source_ip + - source_namespace + - source_workload + - destination_ip + - destination_namespace + - destination_workload + - traffic_direction + - name: sourceContext + values: + - workload-name + - reserved-identity + - name: destinationContext + values: + - workload-name + - reserved-identity + name: httpV2 + - contextOptions: + - name: sourceContext + values: + - app + - workload-name + - pod + - reserved-identity + - name: destinationContext + values: + - app + - workload-name + - pod + - dns + - reserved-identity + - name: labelsContext + values: + - source_namespace + - destination_namespace + excludeFilters: + - destination_pod: + - default/ + name: policy + +Deploy the :term:`ConfigMap`: + +.. code-block:: shell-session + + kubectl apply -f dynamic-metrics.yaml + +.. parsed-literal:: + + helm install cilium |CHART_RELEASE| \\ + --namespace kube-system \\ + --set prometheus.enabled=true \\ + --set operator.prometheus.enabled=true \\ + --set hubble.enabled=true \\ + --set hubble.metrics.enableOpenMetrics=true \\ + --set hubble.metrics.enabled=[] \\ + --set hubble.metrics.dynamic.enabled=true \\ + --set hubble.metrics.dynamic.config.configMapName=cilium-dynamic-metrics-config \\ + --set hubble.metrics.dynamic.config.createConfigMap=false + +Hubble Metrics Scraping +----------------------- + +Prometheus Port Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + The port of the Hubble metrics can be configured with the ``hubble.metrics.port`` Helm value. @@ -160,6 +299,13 @@ have it scrape all Hubble metrics from the endpoints automatically: regex: (.+)(?::\d+);(\d+) replacement: $1:$2 +Prometheus Operator ServiceMonitor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can automatically create a +`Prometheus Operator `__ +``ServiceMonitor`` by setting ``hubble.metrics.serviceMonitor.enabled=true``. + .. _hubble_open_metrics: OpenMetrics From 1337c87c9955d2183f7ac5999d9fb4388162a445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Mon, 21 Jul 2025 17:02:46 +0200 Subject: [PATCH 099/176] Add vanilla cloud-provider configs for conformance tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce vanilla configurations for cloud providers to enable testing Cilium with minimal, default settings. This provides a baseline for conformance, ensuring core functionality without extra features. Signed-off-by: André Martins --- .github/workflows/conformance-aks.yaml | 58 ++++++++++++++++++++---- .github/workflows/conformance-eks.yaml | 52 ++++++++++++++++++--- .github/workflows/conformance-gke.yaml | 63 ++++++++++++++++++++++---- 3 files changed, 151 insertions(+), 22 deletions(-) diff --git a/.github/workflows/conformance-aks.yaml b/.github/workflows/conformance-aks.yaml index ae61d28909026..71f968e287c89 100644 --- a/.github/workflows/conformance-aks.yaml +++ b/.github/workflows/conformance-aks.yaml @@ -2,6 +2,31 @@ name: Conformance AKS (ci-aks) # Any change in triggers needs to be reflected in the concurrency group. on: + workflow_call: + inputs: + PR-number: + description: "Pull request number." + required: false + type: string + context-ref: + description: "Context in which the workflow runs. If PR is from a fork, will be the PR target branch (general case). If PR is NOT from a fork, will be the PR branch itself (this allows committers to test changes to workflows directly from PRs)." + required: false + type: string + SHA: + description: "SHA under test (head of the PR branch)." + required: false + type: string + extra-args: + description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." + required: false + type: string + default: '{}' + is-workflow-call: + description: "Distinguish if it's a workflow_call event." + required: false + type: boolean + default: true + workflow_dispatch: inputs: PR-number: @@ -20,9 +45,9 @@ on: push: branches: - 'renovate/main-**' - # Run every 8 hours + # Run every 12 hours schedule: - - cron: '0 0/8 * * *' + - cron: '0 0/12 * * *' # By specifying the access of one of the scopes, all of those that are not # specified are set to 'none'. @@ -44,7 +69,10 @@ concurrency: # - Event type # - A unique identifier depending on event type: # - schedule: SHA - # - workflow_dispatch: PR number + # - workflow_dispatch: PR number. Because in workflow_call the parent context + # is used, we need to add a prefix name ('aks') for the concurrency group + # so that workflows that are executed in parallel don't conflict with each + # other. # # This structure ensures a unique concurrency group name is generated for each # type of testing, such that re-runs will cancel the previous run. @@ -54,7 +82,7 @@ concurrency: ${{ (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) + (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'aks')) }} cancel-in-progress: true @@ -220,14 +248,20 @@ jobs: OWNER="${OWNER//[.\/]/-}" fi + # Check if ipsec is requested via extra-args + IPSEC=$(echo '${{ inputs.extra-args }}' | jq -r '.["ipsec"] // empty') + if [[ "$IPSEC" == "true" ]]; then + echo "::notice::IPsec enabled - setting ipsec=true for all matrix entries" + fi + # We explicity set the cluster-pool Pod CIDR here to not clash with the AKS default Service CIDRs # which are 10.0.0.0/16 and fd12:3456:789a:1::/108 CILIUM_INSTALL_DEFAULTS="${{ steps.default_vars.outputs.cilium_install_defaults }} \ --datapath-mode=aks-byocni \ - --helm-set cluster.name=${{ env.name }} \ - --helm-set loadBalancer.l7.backend=envoy \ + --helm-set=cluster.name=${{ env.name }} \ + --helm-set=loadBalancer.l7.backend=envoy \ --helm-set=azure.resourceGroup=${{ env.name }} \ - --helm-set kubeProxyReplacement=true \ + --helm-set=kubeProxyReplacement=true \ --helm-set=bpf.masquerade=true \ --helm-set=ipv4.enabled=true \ --helm-set=ipv6.enabled=true \ @@ -240,6 +274,7 @@ jobs: echo connectivity_test_defaults=${CONNECTIVITY_TEST_DEFAULTS} >> $GITHUB_OUTPUT echo sha=${{ steps.default_vars.outputs.sha }} >> $GITHUB_OUTPUT echo owner=${OWNER} >> $GITHUB_OUTPUT + echo ipsec=${IPSEC} >> $GITHUB_OUTPUT - name: Login to Azure uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0 @@ -327,28 +362,34 @@ jobs: json-filename: "${{ env.job_name }} (${{ join(matrix.*, ', ') }}) - 1" - name: Clean up Cilium + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium uninstall --wait - name: Create custom IPsec secret + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium encrypt create-key --auth-algo rfc4106-gcm-aes - name: Install Cilium with encryption + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium install ${{ steps.vars.outputs.cilium_install_defaults }} \ --helm-set encryption.enabled=true \ --helm-set encryption.type=ipsec - name: Enable Relay + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium hubble enable - name: Wait for Cilium status to be ready + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium status --wait --interactive=false --wait-duration=10m - name: Run sequential connectivity test with IPSec (${{ join(matrix.*, ', ') }}) + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium connectivity test ${{ steps.vars.outputs.connectivity_test_defaults }} --force-deploy \ --test "seq-.*" \ @@ -356,6 +397,7 @@ jobs: --junit-property github_job_step="Run connectivity test with IPSec (${{ join(matrix.*, ', ') }})" - name: Run concurrent connectivity test with IPSec (${{ join(matrix.*, ', ') }}) + if: ${{ steps.vars.outputs.ipsec == 'true' }} run: | cilium connectivity test ${{ steps.vars.outputs.connectivity_test_defaults }} --force-deploy \ --test-concurrency=${{ env.test_concurrency }} \ @@ -378,7 +420,7 @@ jobs: merge-upload-and-status: name: Merge Upload and Status - if: ${{ always() }} + if: ${{ always() && !inputs.is-workflow-call }} needs: installation-and-connectivity uses: ./.github/workflows/common-post-jobs.yaml secrets: inherit diff --git a/.github/workflows/conformance-eks.yaml b/.github/workflows/conformance-eks.yaml index bf338301264a3..7d3110a02ea81 100644 --- a/.github/workflows/conformance-eks.yaml +++ b/.github/workflows/conformance-eks.yaml @@ -2,6 +2,34 @@ name: Conformance EKS (ci-eks) # Any change in triggers needs to be reflected in the concurrency group. on: + workflow_call: + inputs: + PR-number: + description: "Pull request number." + required: true + type: string + context-ref: + description: "Context in which the workflow runs. If PR is from a fork, will be the PR target branch (general case). If PR is NOT from a fork, will be the PR branch itself (this allows committers to test changes to workflows directly from PRs)." + required: true + type: string + SHA: + description: "SHA under test (head of the PR branch)." + required: true + type: string + extra-args: + description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." + required: false + default: '{}' + type: string + is-workflow-call: + description: "Distinguish if it's a workflow_call event." + required: false + type: boolean + default: true + secrets: + AWS_PR_ASSUME_ROLE: + required: true + workflow_dispatch: inputs: PR-number: @@ -20,9 +48,9 @@ on: push: branches: - 'renovate/main-**' - # Run every 8 hours + # Run every 12 hours schedule: - - cron: '0 1/8 * * *' + - cron: '0 1/12 * * *' # By specifying the access of one of the scopes, all of those that are not # specified are set to 'none'. @@ -44,7 +72,10 @@ concurrency: # - Event type # - A unique identifier depending on event type: # - schedule: SHA - # - workflow_dispatch: PR number + # - workflow_dispatch: PR number. Because in workflow_call the parent context + # is used, we need to add a prefix name ('eks') for the concurrency group + # so that workflows that are executed in parallel don't conflict with each + # other. # # This structure ensures a unique concurrency group name is generated for each # type of testing, such that re-runs will cancel the previous run. @@ -54,7 +85,7 @@ concurrency: ${{ (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) + (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'eks')) }} cancel-in-progress: true @@ -150,6 +181,15 @@ jobs: id: set-matrix run: | cp /tmp/matrix.json /tmp/result.json + + # Check if ipsec is requested via extra-args + IPSEC=$(echo '${{ inputs.extra-args }}' | jq -r '.["ipsec"] // false') + if [[ "$IPSEC" == "true" ]]; then + echo "::notice::IPsec enabled - setting ipsec=true for all matrix entries" + jq '.include |= map(. + {"ipsec": true})' /tmp/result.json > /tmp/result.json.tmp + mv /tmp/result.json.tmp /tmp/result.json + fi + jq -c '.include[]' /tmp/matrix.json | while read i; do VERSION=$(echo $i | jq -r '.version') aws eks describe-cluster-versions | jq -r '.clusterVersions[].clusterVersion' > /tmp/output @@ -223,7 +263,7 @@ jobs: CILIUM_INSTALL_DEFAULTS="${{ steps.default_vars.outputs.cilium_install_defaults }} \ --helm-set=cluster.name=${{ env.clusterName }} \ --helm-set=hubble.relay.enabled=true \ - --helm-set loadBalancer.l7.backend=envoy \ + --helm-set=loadBalancer.l7.backend=envoy \ --wait=false" if [[ "${{ matrix.ipsec }}" == "true" ]]; then CILIUM_INSTALL_DEFAULTS+=" --helm-set encryption.enabled=true --helm-set encryption.type=ipsec" @@ -381,7 +421,7 @@ jobs: merge-upload-and-status: name: Merge Upload and Status - if: ${{ always() }} + if: ${{ always() && !inputs.is-workflow-call }} needs: installation-and-connectivity uses: ./.github/workflows/common-post-jobs.yaml secrets: inherit diff --git a/.github/workflows/conformance-gke.yaml b/.github/workflows/conformance-gke.yaml index 5efcc3b4ac63d..57981f8f5ac6d 100644 --- a/.github/workflows/conformance-gke.yaml +++ b/.github/workflows/conformance-gke.yaml @@ -2,6 +2,31 @@ name: Conformance GKE (ci-gke) # Any change in triggers needs to be reflected in the concurrency group. on: + workflow_call: + inputs: + PR-number: + description: "Pull request number." + required: false + type: string + context-ref: + description: "Context in which the workflow runs. If PR is from a fork, will be the PR target branch (general case). If PR is NOT from a fork, will be the PR branch itself (this allows committers to test changes to workflows directly from PRs)." + required: false + type: string + SHA: + description: "SHA under test (head of the PR branch)." + required: false + type: string + extra-args: + description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." + required: false + type: string + default: '{}' + is-workflow-call: + description: "Distinguish if it's a workflow_call event." + required: false + type: boolean + default: true + workflow_dispatch: inputs: PR-number: @@ -20,9 +45,9 @@ on: push: branches: - 'renovate/main-**' - # Run every 8 hours + # Run every 12 hours schedule: - - cron: '0 2/8 * * *' + - cron: '0 3/12 * * *' # By specifying the access of one of the scopes, all of those that are not # specified are set to 'none'. @@ -44,7 +69,10 @@ concurrency: # - Event type # - A unique identifier depending on event type: # - schedule: SHA - # - workflow_dispatch: PR number + # - workflow_dispatch: PR number. Because in workflow_call the parent context + # is used, we need to add a prefix name ('gke') for the concurrency group + # so that workflows that are executed in parallel don't conflict with each + # other. # # This structure ensures a unique concurrency group name is generated for each # type of testing, such that re-runs will cancel the previous run. @@ -54,7 +82,7 @@ concurrency: ${{ (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) + (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'gke')) }} cancel-in-progress: true @@ -120,6 +148,8 @@ jobs: # main -> event_name = schedule # other stable branches -> PR-number starting with v (e.g. v1.14) VERSIONS=$(echo ${{ inputs.extra-args }} | awk -F'=' '{print $2}') + IPSEC=$(echo '${{ inputs.extra-args }}' | jq -r '.["ipsec"] // empty') + # shellcheck disable=SC2193 if [[ "${{ github.event_name }}" == "schedule" || "${{ inputs.PR-number }}" == v* || "$VERSIONS" == "all" ]];then cp gke.json /tmp/matrix.json @@ -127,6 +157,23 @@ jobs: jq '{ "k8s": [ .k8s[] | select(.default) ], "config": .config}' gke.json > /tmp/matrix.json fi + # Add IPsec options to all configurations if ipsec is true + if [[ "$IPSEC" == "true" ]]; then + echo "::notice::IPsec enabled - setting ipsec=true for all matrix entries" + echo "Adding IPsec encryption options to all configurations" + jq '.config |= map( + # Add -ipsec suffix to type unless it already contains ipsec + .type = (if (.type | test("ipsec")) then .type else .type + "-ipsec" end) | + # Add IPsec helm options to cilium-install-opts + if .["cilium-install-opts"] then + .["cilium-install-opts"] += " --helm-set=encryption.enabled=true --helm-set=encryption.type=ipsec" + else + .["cilium-install-opts"] = "--helm-set=encryption.enabled=true --helm-set=encryption.type=ipsec" + end + )' /tmp/matrix.json > /tmp/matrix.json.tmp + mv /tmp/matrix.json.tmp /tmp/matrix.json + fi + echo "Generated matrix:" cat /tmp/matrix.json @@ -254,7 +301,7 @@ jobs: --helm-set=cluster.name=${{ env.clusterName }}-${{ matrix.config.index }} \ --helm-set=hubble.relay.enabled=true \ --helm-set=agentNotReadyTaintKey=ignore-taint.cluster-autoscaler.kubernetes.io/cilium-agent-not-ready \ - --helm-set loadBalancer.l7.backend=envoy \ + --helm-set=loadBalancer.l7.backend=envoy \ --wait=false" CONNECTIVITY_TEST_DEFAULTS="${{ steps.e2e_config.outputs.test_flags }}" @@ -338,7 +385,7 @@ jobs: install/kubernetes/cilium - name: Create custom IPsec secret - if: ${{ matrix.config.type == 'ipsec' || matrix.config.type == 'tunnel-ipsec' }} + if: ${{ contains(fromJSON('["no-tunnel-ipsec", "tunnel-ipsec", "tunnel-ingress-controller-ipsec"]'), matrix.config.type) }} run: | cilium encrypt create-key --auth-algo rfc4106-gcm-aes @@ -367,7 +414,7 @@ jobs: if: ${{ always() }} uses: ./.github/actions/post-logic with: - artifacts_suffix: "${{ env.job_name }} (${{ join(matrix.k8s.*, ', ') }}, ${{ join(matrix.config.*, ', ') }})" + artifacts_suffix: "${{ env.job_name }} (${{ join(matrix.k8s.*, ', ') }}, ${{ matrix.config.type }})" job_status: "${{ job.status }}" - name: Clean up ESP allow firewall rule @@ -388,7 +435,7 @@ jobs: merge-upload-and-status: name: Merge Upload and Status - if: ${{ always() }} + if: ${{ always() && !inputs.is-workflow-call }} needs: installation-and-connectivity uses: ./.github/workflows/common-post-jobs.yaml secrets: inherit From a34335b0614c2d4b21ca596abc15b26a24b2637b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Wed, 17 Sep 2025 11:06:31 +0200 Subject: [PATCH 100/176] workflows/conformance-ipsec: introduce ipsec cloud conformance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With the introduction of the vanilla workflows, we can introduce feature-specific workflows. This will allow feature-specific workflows to quickly determine if their features are the root cause of regressions or not by comparing their results with the vanilla-workflows results. Signed-off-by: André Martins --- .github/actions/eks/k8s-versions.yaml | 2 - .github/actions/gke/test-config-helm.yaml | 8 +- .github/ariane-config.yaml | 3 + .github/workflows/conformance-ipsec.yaml | 138 ++++++++++++++++++++++ 4 files changed, 142 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/conformance-ipsec.yaml diff --git a/.github/actions/eks/k8s-versions.yaml b/.github/actions/eks/k8s-versions.yaml index 00bef4560f321..9530629d6128a 100644 --- a/.github/actions/eks/k8s-versions.yaml +++ b/.github/actions/eks/k8s-versions.yaml @@ -9,10 +9,8 @@ include: - version: "1.32" region: ca-central-1 default: true - ipsec: true kpr: true aws-eni-pd: true - version: "1.33" region: us-east-1 - ipsec: true default: true diff --git a/.github/actions/gke/test-config-helm.yaml b/.github/actions/gke/test-config-helm.yaml index 369fc84eea4b4..843858a6e1c7f 100644 --- a/.github/actions/gke/test-config-helm.yaml +++ b/.github/actions/gke/test-config-helm.yaml @@ -6,13 +6,7 @@ config: - type: "tunnel" index: 2 cilium-install-opts: "--datapath-mode=tunnel" - - type: "ipsec" - index: 3 - cilium-install-opts: "--helm-set=encryption.enabled=true --helm-set=encryption.type=ipsec" - - type: "tunnel-ipsec" - index: 4 - cilium-install-opts: "--helm-set=encryption.enabled=true --helm-set=encryption.type=ipsec --datapath-mode=tunnel" - type: "tunnel-ingress-controller" - index: 5 + index: 3 cilium-install-opts: "--helm-set=kubeProxyReplacement=true --helm-set=ingressController.enabled=true" nodes: 1 diff --git a/.github/ariane-config.yaml b/.github/ariane-config.yaml index bee94325e17ad..ee235abed19f7 100644 --- a/.github/ariane-config.yaml +++ b/.github/ariane-config.yaml @@ -38,6 +38,9 @@ triggers: /ci-ipsec-upgrade: workflows: - tests-ipsec-upgrade.yaml + /ci-ipsec: + workflows: + - conformance-ipsec.yaml /ci-ipsec-e2e: workflows: - conformance-ipsec-e2e.yaml diff --git a/.github/workflows/conformance-ipsec.yaml b/.github/workflows/conformance-ipsec.yaml new file mode 100644 index 0000000000000..304db02837d4f --- /dev/null +++ b/.github/workflows/conformance-ipsec.yaml @@ -0,0 +1,138 @@ +name: Conformance IPsec (ci-ipsec) + +# Any change in triggers needs to be reflected in the concurrency group. +on: + workflow_dispatch: + inputs: + PR-number: + description: "Pull request number." + required: true + context-ref: + description: "Context in which the workflow runs. If PR is from a fork, will be the PR target branch (general case). If PR is NOT from a fork, will be the PR branch itself (this allows committers to test changes to workflows directly from PRs)." + required: true + SHA: + description: "SHA under test (head of the PR branch)." + required: true + extra-args: + description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." + required: false + default: '{}' + # Run every 12 hours + schedule: + - cron: '0 4/12 * * *' + +# By specifying the access of one of the scopes, all of those that are not +# specified are set to 'none'. +permissions: + # To read actions state with catchpoint/workflow-telemetry-action + actions: read + # To be able to access the repository with actions/checkout + contents: read + # To allow retrieving information from the PR API + pull-requests: read + # To be able to set commit status + statuses: write + # To be able to request the JWT from GitHub's OIDC provider + id-token: write + +concurrency: + # Structure: + # - Parent concurrency group name to avoid deadlock with child workflows + # - Workflow name + # - Event type + # - A unique identifier depending on event type: + # - schedule: SHA + # - workflow_dispatch: PR number + # + # This structure ensures a unique concurrency group name is generated for each + # type of testing, such that re-runs will cancel the previous run. + group: | + parent + ${{ github.workflow }} + ${{ github.event_name }} + ${{ + (github.event_name == 'push' && github.sha) || + (github.event_name == 'schedule' && github.sha) || + (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) + }} + cancel-in-progress: true + +jobs: + echo-inputs: + if: ${{ github.event_name == 'workflow_dispatch' }} + name: Echo Workflow Dispatch Inputs + runs-on: ubuntu-24.04 + steps: + - name: Echo Workflow Dispatch Inputs + run: | + echo '${{ tojson(inputs) }}' + + commit-status-start: + name: Commit Status Start + runs-on: ubuntu-24.04 + steps: + - name: Set initial commit status + uses: myrotvorets/set-commit-status-action@3730c0a348a2ace3c110851bed53331bc6406e9f # v2.0.1 + with: + sha: ${{ inputs.SHA || github.sha }} + + wait-for-images: + name: Wait for images + runs-on: ubuntu-24.04 + timeout-minutes: 30 + steps: + - name: Checkout context ref (trusted) + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + ref: ${{ inputs.context-ref || github.sha }} + persist-credentials: false + + - name: Wait for images + uses: ./.github/actions/wait-for-images + with: + SHA: ${{ inputs.SHA || github.sha }} + images: cilium-ci operator-generic-ci hubble-relay-ci + + conformance-aks-ipsec: + name: Conformance AKS with IPsec + needs: wait-for-images + uses: ./.github/workflows/conformance-aks.yaml + secrets: inherit + with: + PR-number: ${{ inputs.PR-number || github.ref_name }} + context-ref: ${{ inputs.context-ref || github.sha }} + SHA: ${{ inputs.SHA || github.sha }} + extra-args: '{"ipsec": true}' + + conformance-eks-ipsec: + name: Conformance EKS with IPsec + needs: wait-for-images + uses: ./.github/workflows/conformance-eks.yaml + secrets: inherit + with: + PR-number: ${{ inputs.PR-number || github.ref_name }} + context-ref: ${{ inputs.context-ref || github.sha }} + SHA: ${{ inputs.SHA || github.sha }} + extra-args: '{"ipsec": true}' + + conformance-gke-ipsec: + name: Conformance GKE with IPsec + needs: wait-for-images + uses: ./.github/workflows/conformance-gke.yaml + secrets: inherit + with: + PR-number: ${{ inputs.PR-number || github.ref_name }} + context-ref: ${{ inputs.context-ref || github.sha }} + SHA: ${{ inputs.SHA || github.sha }} + extra-args: '{"ipsec": true}' + + merge-upload-and-status: + name: Merge Upload and Status + if: ${{ always() }} + needs: [conformance-aks-ipsec, conformance-eks-ipsec, conformance-gke-ipsec] + uses: ./.github/workflows/common-post-jobs.yaml + secrets: inherit + with: + context-ref: ${{ inputs.context-ref || github.sha }} + sha: ${{ inputs.SHA || github.sha }} + result: ${{ (needs.conformance-aks-ipsec.result == 'failure' || needs.conformance-eks-ipsec.result == 'failure' || needs.conformance-gke-ipsec.result == 'failure') && 'failure' || 'success' }} From 21331c8b38cf90782512295ce6ba39639b45bbab Mon Sep 17 00:00:00 2001 From: Fabio Falzoi Date: Thu, 4 Sep 2025 17:05:41 +0200 Subject: [PATCH 101/176] ipam: Register k8s sync metrics for cluster-pool In cluster-pool IPAM mode the allocator creates a metrics set related to the activity of the internal trigger. Specifically, the trigger is called (and the related metrics are updated) each time the internal status of the CiliumNode, including the allocated pod CIDRs, is synced to k8s. There is however an issue, since the metrics are not correctly registered to the metrics registry, therefore they are not actually available. This commit registers the metrics so that they can be correctly exposed and visible with the `cilium-operator-generic metrics list` command. Signed-off-by: Fabio Falzoi --- pkg/ipam/allocator/clusterpool/clusterpool.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/ipam/allocator/clusterpool/clusterpool.go b/pkg/ipam/allocator/clusterpool/clusterpool.go index fb8e4ee46a106..f334da7c31d34 100644 --- a/pkg/ipam/allocator/clusterpool/clusterpool.go +++ b/pkg/ipam/allocator/clusterpool/clusterpool.go @@ -66,7 +66,7 @@ func (a *AllocatorOperator) Init(ctx context.Context, logger *slog.Logger, reg * } // Start kicks of Operator allocation. -func (a *AllocatorOperator) Start(ctx context.Context, updater ipam.CiliumNodeGetterUpdater, _ *metrics.Registry) (allocator.NodeEventHandler, error) { +func (a *AllocatorOperator) Start(ctx context.Context, updater ipam.CiliumNodeGetterUpdater, reg *metrics.Registry) (allocator.NodeEventHandler, error) { a.logger.Info( "Starting ClusterPool IP allocator", logfields.IPv4CIDRs, operatorOption.Config.ClusterPoolIPv4CIDR, @@ -78,7 +78,9 @@ func (a *AllocatorOperator) Start(ctx context.Context, updater ipam.CiliumNodeGe ) if operatorOption.Config.EnableMetrics { - iMetrics = ipamMetrics.NewTriggerMetrics(metrics.Namespace, "k8s_sync") + triggerMetrics := ipamMetrics.NewTriggerMetrics(metrics.Namespace, "k8s_sync") + triggerMetrics.Register(reg) + iMetrics = triggerMetrics } else { iMetrics = &ipamMetrics.NoOpMetricsObserver{} } From dfb5a388745bb26a393b717a7ab16a6cb18d91ae Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Tue, 16 Sep 2025 18:24:33 +0200 Subject: [PATCH 102/176] operator: extract and rework kvstore nodes GC logic Extract the logic handling the garbage collection of stale node entries from the kvstore into a separate cell, and rework it. The goal of this refactoring is twofold, on the one hand simplifying and modernizing this legacy logic, which is now fairly complex to follow. On the other one, addressing a race condition that recently started affecting CI runs more frequently, leading to flakiness. Specifically, we recently started witnessing node entries for newly started agents being deleted as the corresponding CiliumNode does not exists, or has not been observed yet. While this is mostly specific to CI environments, and the agent would automatically recreate the kvstore entry, it still causes unnecessary churn. The reworked version prevents this issue by no longer comparing the two snapshots at bootstrap, but instead unifying it with the runtime logic and always queuing all observed kvstore events for processing after a 1m delay, to increase the chances of observing the corresponding CiliumNode as well. Yet, if not observed in time (e.g., due to issues during creation), the entry would not be deleted as long as there's a Cilium pod running on that node, following the same logic of the runtime GC. As a bonus, let's also add a script test to validate that everything works as expected, and prevent regressions. Signed-off-by: Marco Iorio --- .../cmdref/cilium-operator-alibabacloud.md | 2 +- .../cilium-operator-alibabacloud_hive.md | 1 + ...um-operator-alibabacloud_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-operator-aws.md | 2 +- .../cmdref/cilium-operator-aws_hive.md | 1 + .../cilium-operator-aws_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-operator-azure.md | 2 +- .../cmdref/cilium-operator-azure_hive.md | 1 + .../cilium-operator-azure_hive_dot-graph.md | 1 + .../cmdref/cilium-operator-generic.md | 2 +- .../cmdref/cilium-operator-generic_hive.md | 1 + .../cilium-operator-generic_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-operator.md | 2 +- Documentation/cmdref/cilium-operator_hive.md | 1 + .../cmdref/cilium-operator_hive_dot-graph.md | 1 + operator/cmd/allocator_test.go | 4 +- operator/cmd/cilium_node.go | 173 +------------ operator/cmd/flags.go | 3 - operator/cmd/root.go | 16 +- operator/option/config.go | 7 - operator/pkg/kvstore/nodesgc/cell.go | 27 ++ operator/pkg/kvstore/nodesgc/gc.go | 236 ++++++++++++++++++ operator/pkg/kvstore/nodesgc/script_test.go | 104 ++++++++ .../kvstore/nodesgc/testdata/disabled.txtar | 42 ++++ .../kvstore/nodesgc/testdata/enabled.txtar | 178 +++++++++++++ 25 files changed, 620 insertions(+), 190 deletions(-) create mode 100644 operator/pkg/kvstore/nodesgc/cell.go create mode 100644 operator/pkg/kvstore/nodesgc/gc.go create mode 100644 operator/pkg/kvstore/nodesgc/script_test.go create mode 100644 operator/pkg/kvstore/nodesgc/testdata/disabled.txtar create mode 100644 operator/pkg/kvstore/nodesgc/testdata/enabled.txtar diff --git a/Documentation/cmdref/cilium-operator-alibabacloud.md b/Documentation/cmdref/cilium-operator-alibabacloud.md index 4739f8b6be1f9..fb293cba2933f 100644 --- a/Documentation/cmdref/cilium-operator-alibabacloud.md +++ b/Documentation/cmdref/cilium-operator-alibabacloud.md @@ -133,7 +133,7 @@ cilium-operator-alibabacloud [flags] --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag - --synchronize-k8s-nodes Synchronize Kubernetes nodes to kvstore and perform CNP GC (default true) + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --synchronize-k8s-services Synchronize Kubernetes services to kvstore (default true) --taint-sync-workers int Number of workers used to synchronize node tains and conditions (default 10) --unmanaged-pod-watcher-interval int Interval to check for unmanaged kube-dns pods (0 to disable) (default 15) diff --git a/Documentation/cmdref/cilium-operator-alibabacloud_hive.md b/Documentation/cmdref/cilium-operator-alibabacloud_hive.md index c2ab07ffbff20..208429afa05e9 100644 --- a/Documentation/cmdref/cilium-operator-alibabacloud_hive.md +++ b/Documentation/cmdref/cilium-operator-alibabacloud_hive.md @@ -95,6 +95,7 @@ cilium-operator-alibabacloud hive [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md index 20e4513e70e2d..5d1bd9eadb2cb 100644 --- a/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md @@ -100,6 +100,7 @@ cilium-operator-alibabacloud hive dot-graph [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-aws.md b/Documentation/cmdref/cilium-operator-aws.md index 4043458e6f147..abcd5d940da13 100644 --- a/Documentation/cmdref/cilium-operator-aws.md +++ b/Documentation/cmdref/cilium-operator-aws.md @@ -141,7 +141,7 @@ cilium-operator-aws [flags] --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag - --synchronize-k8s-nodes Synchronize Kubernetes nodes to kvstore and perform CNP GC (default true) + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --synchronize-k8s-services Synchronize Kubernetes services to kvstore (default true) --taint-sync-workers int Number of workers used to synchronize node tains and conditions (default 10) --unmanaged-pod-watcher-interval int Interval to check for unmanaged kube-dns pods (0 to disable) (default 15) diff --git a/Documentation/cmdref/cilium-operator-aws_hive.md b/Documentation/cmdref/cilium-operator-aws_hive.md index 235ca0a751bc0..dda7512ebdd56 100644 --- a/Documentation/cmdref/cilium-operator-aws_hive.md +++ b/Documentation/cmdref/cilium-operator-aws_hive.md @@ -95,6 +95,7 @@ cilium-operator-aws hive [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md index 22062b6c8c64d..ed04e148cc003 100644 --- a/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md @@ -100,6 +100,7 @@ cilium-operator-aws hive dot-graph [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-azure.md b/Documentation/cmdref/cilium-operator-azure.md index e41f52d93a953..9dfca36209ba3 100644 --- a/Documentation/cmdref/cilium-operator-azure.md +++ b/Documentation/cmdref/cilium-operator-azure.md @@ -136,7 +136,7 @@ cilium-operator-azure [flags] --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag - --synchronize-k8s-nodes Synchronize Kubernetes nodes to kvstore and perform CNP GC (default true) + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --synchronize-k8s-services Synchronize Kubernetes services to kvstore (default true) --taint-sync-workers int Number of workers used to synchronize node tains and conditions (default 10) --unmanaged-pod-watcher-interval int Interval to check for unmanaged kube-dns pods (0 to disable) (default 15) diff --git a/Documentation/cmdref/cilium-operator-azure_hive.md b/Documentation/cmdref/cilium-operator-azure_hive.md index eccde5deeb34f..d711cfad55a8f 100644 --- a/Documentation/cmdref/cilium-operator-azure_hive.md +++ b/Documentation/cmdref/cilium-operator-azure_hive.md @@ -95,6 +95,7 @@ cilium-operator-azure hive [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md index 13a30143ce2fa..323b8b5c51594 100644 --- a/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md @@ -100,6 +100,7 @@ cilium-operator-azure hive dot-graph [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-generic.md b/Documentation/cmdref/cilium-operator-generic.md index a3364cb26cfe5..e8c7bdcf431e7 100644 --- a/Documentation/cmdref/cilium-operator-generic.md +++ b/Documentation/cmdref/cilium-operator-generic.md @@ -132,7 +132,7 @@ cilium-operator-generic [flags] --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag - --synchronize-k8s-nodes Synchronize Kubernetes nodes to kvstore and perform CNP GC (default true) + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --synchronize-k8s-services Synchronize Kubernetes services to kvstore (default true) --taint-sync-workers int Number of workers used to synchronize node tains and conditions (default 10) --unmanaged-pod-watcher-interval int Interval to check for unmanaged kube-dns pods (0 to disable) (default 15) diff --git a/Documentation/cmdref/cilium-operator-generic_hive.md b/Documentation/cmdref/cilium-operator-generic_hive.md index 8531f3f496a5d..b42a8ab7ebefc 100644 --- a/Documentation/cmdref/cilium-operator-generic_hive.md +++ b/Documentation/cmdref/cilium-operator-generic_hive.md @@ -95,6 +95,7 @@ cilium-operator-generic hive [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md index b2fdff1c78b94..4d5368103f149 100644 --- a/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md @@ -100,6 +100,7 @@ cilium-operator-generic hive dot-graph [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator.md b/Documentation/cmdref/cilium-operator.md index 11f8d5ec13690..e3a9ee776ecd4 100644 --- a/Documentation/cmdref/cilium-operator.md +++ b/Documentation/cmdref/cilium-operator.md @@ -146,7 +146,7 @@ cilium-operator [flags] --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag - --synchronize-k8s-nodes Synchronize Kubernetes nodes to kvstore and perform CNP GC (default true) + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --synchronize-k8s-services Synchronize Kubernetes services to kvstore (default true) --taint-sync-workers int Number of workers used to synchronize node tains and conditions (default 10) --unmanaged-pod-watcher-interval int Interval to check for unmanaged kube-dns pods (0 to disable) (default 15) diff --git a/Documentation/cmdref/cilium-operator_hive.md b/Documentation/cmdref/cilium-operator_hive.md index ceecee9422b5f..ea13a5d716d82 100644 --- a/Documentation/cmdref/cilium-operator_hive.md +++ b/Documentation/cmdref/cilium-operator_hive.md @@ -95,6 +95,7 @@ cilium-operator hive [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/Documentation/cmdref/cilium-operator_hive_dot-graph.md b/Documentation/cmdref/cilium-operator_hive_dot-graph.md index 50ccea7dbfcce..ccd2a0e2b3d58 100644 --- a/Documentation/cmdref/cilium-operator_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator_hive_dot-graph.md @@ -100,6 +100,7 @@ cilium-operator hive dot-graph [flags] --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created + --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) ``` diff --git a/operator/cmd/allocator_test.go b/operator/cmd/allocator_test.go index c79247a5470bf..d1d3d9db8420f 100644 --- a/operator/cmd/allocator_test.go +++ b/operator/cmd/allocator_test.go @@ -93,8 +93,8 @@ func podCIDRAllocatorOverlapTestRun(t *testing.T) { }, nil, &ciliumNodeUpdateImplementation{clientset: fakeSet}, nil) // start synchronization. - cns := newCiliumNodeSynchronizer(logger, fakeSet, nil, podCidrManager, false, nil) - if err := cns.Start(ctx, &wg, nil); err != nil { + cns := newCiliumNodeSynchronizer(logger, fakeSet, podCidrManager, nil) + if err := cns.Start(ctx, &wg); err != nil { t.Fatal(err) } diff --git a/operator/cmd/cilium_node.go b/operator/cmd/cilium_node.go index ab47b92ee3dc1..35030a035809d 100644 --- a/operator/cmd/cilium_node.go +++ b/operator/cmd/cilium_node.go @@ -10,43 +10,22 @@ import ( "reflect" "strings" "sync" - "time" "k8s.io/apimachinery/pkg/api/errors" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - operatorK8s "github.com/cilium/cilium/operator/k8s" operatorOption "github.com/cilium/cilium/operator/option" "github.com/cilium/cilium/pkg/annotation" "github.com/cilium/cilium/pkg/ipam/allocator" cilium_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" k8sClient "github.com/cilium/cilium/pkg/k8s/client" "github.com/cilium/cilium/pkg/k8s/informer" - "github.com/cilium/cilium/pkg/k8s/resource" - corev1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" - "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/labels" "github.com/cilium/cilium/pkg/k8s/utils" - "github.com/cilium/cilium/pkg/kvstore" - "github.com/cilium/cilium/pkg/kvstore/store" - "github.com/cilium/cilium/pkg/logging" "github.com/cilium/cilium/pkg/logging/logfields" - nodeStore "github.com/cilium/cilium/pkg/node/store" - nodeTypes "github.com/cilium/cilium/pkg/node/types" - "github.com/cilium/cilium/pkg/option" ) -// ciliumNodeName is only used to implement NamedKey interface. -type ciliumNodeName struct { - cluster string - name string -} - -func (c *ciliumNodeName) GetKeyName() string { - return nodeTypes.GetKeyNodeName(c.cluster, c.name) -} - // ciliumNodeManagerQueueSyncedKey indicates that the caches // are synced. The underscore prefix ensures that it can never // clash with a real key, as Kubernetes does not allow object @@ -54,11 +33,9 @@ func (c *ciliumNodeName) GetKeyName() string { const ciliumNodeManagerQueueSyncedKey = "_ciliumNodeManagerQueueSynced" type ciliumNodeSynchronizer struct { - logger *slog.Logger - clientset k8sClient.Clientset - kvstoreClient kvstore.Client - nodeManager allocator.NodeEventHandler - withKVStore bool + logger *slog.Logger + clientset k8sClient.Clientset + nodeManager allocator.NodeEventHandler // ciliumNodeStore contains all CiliumNodes present in k8s. ciliumNodeStore cache.Store @@ -68,13 +45,11 @@ type ciliumNodeSynchronizer struct { workqueueMetricsProvider workqueue.MetricsProvider } -func newCiliumNodeSynchronizer(logger *slog.Logger, clientset k8sClient.Clientset, kvstoreClient kvstore.Client, nodeManager allocator.NodeEventHandler, withKVStore bool, workqueueMetricsProvider workqueue.MetricsProvider) *ciliumNodeSynchronizer { +func newCiliumNodeSynchronizer(logger *slog.Logger, clientset k8sClient.Clientset, nodeManager allocator.NodeEventHandler, workqueueMetricsProvider workqueue.MetricsProvider) *ciliumNodeSynchronizer { return &ciliumNodeSynchronizer{ - logger: logger, - clientset: clientset, - kvstoreClient: kvstoreClient, - nodeManager: nodeManager, - withKVStore: withKVStore, + logger: logger, + clientset: clientset, + nodeManager: nodeManager, k8sCiliumNodesCacheSynced: make(chan struct{}), ciliumNodeManagerQueueSynced: make(chan struct{}), @@ -82,13 +57,9 @@ func newCiliumNodeSynchronizer(logger *slog.Logger, clientset k8sClient.Clientse } } -func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, podsStore resource.Store[*corev1.Pod]) error { +func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup) error { var ( - ciliumNodeKVStore *store.SharedStore - err error nodeManagerSyncHandler func(key string) error - kvStoreSyncHandler func(key string) error - connectedToKVStore = make(chan struct{}) resourceEventHandler = cache.ResourceEventHandlerFuncs{} ) @@ -96,81 +67,14 @@ func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, Name: "node_manager", MetricsProvider: s.workqueueMetricsProvider, } - var kvStoreQueueConfig = workqueue.TypedRateLimitingQueueConfig[string]{ - Name: "kvstore", - MetricsProvider: s.workqueueMetricsProvider, - } if operatorOption.Config.EnableMetrics { ciliumNodeManagerQueueConfig.MetricsProvider = s.workqueueMetricsProvider - kvStoreQueueConfig.MetricsProvider = s.workqueueMetricsProvider } var ciliumNodeManagerQueue = workqueue.NewTypedRateLimitingQueueWithConfig[string](workqueue.DefaultTypedControllerRateLimiter[string](), ciliumNodeManagerQueueConfig) - var kvStoreQueue = workqueue.NewTypedRateLimitingQueueWithConfig[string]( - workqueue.NewTypedItemExponentialFailureRateLimiter[string](1*time.Second, 120*time.Second), - kvStoreQueueConfig, - ) - - // KVStore is enabled -> we will run the event handler to sync objects into - // KVStore. - if s.withKVStore { - // Connect to the KVStore asynchronously so that we are able to start - // the operator without relying on the KVStore to be up. - // Start a goroutine to GC all CiliumNodes from the KVStore that are - // no longer running. - wg.Add(1) - go func() { - defer wg.Done() - - s.logger.InfoContext(ctx, "Starting to synchronize CiliumNode custom resources to KVStore") - - ciliumNodeKVStore, err = store.JoinSharedStore(s.logger, - store.Configuration{ - Backend: s.kvstoreClient, - Prefix: nodeStore.NodeStorePrefix, - KeyCreator: nodeStore.KeyCreator, - - // We never upsert anything in this store, - // so let's disable synchronization. - SynchronizationInterval: 0, - }) - - if err != nil { - logging.Fatal(s.logger, "Unable to setup node watcher", logfields.Error, err) - } - close(connectedToKVStore) - - <-s.k8sCiliumNodesCacheSynced - // Since we processed all events received from k8s we know that - // at this point the list in ciliumNodeStore should be the source of - // truth and we need to delete all nodes in the kvNodeStore that are - // *not* present in the ciliumNodeStore. - listOfCiliumNodes := s.ciliumNodeStore.ListKeys() - - kvStoreNodes := ciliumNodeKVStore.SharedKeysMap() - for _, ciliumNode := range listOfCiliumNodes { - // The remaining kvStoreNodes are leftovers that need to be GCed - kvStoreNodeName := nodeTypes.GetKeyNodeName(option.Config.ClusterName, ciliumNode) - delete(kvStoreNodes, kvStoreNodeName) - } - - if len(listOfCiliumNodes) == 0 && len(kvStoreNodes) != 0 { - s.logger.WarnContext(ctx, "Preventing GC of nodes in the KVStore due the nonexistence of any CiliumNodes in kube-apiserver") - return - } - - for _, kvStoreNode := range kvStoreNodes { - // Only delete the nodes that belong to our cluster - if strings.HasPrefix(kvStoreNode.GetKeyName(), option.Config.ClusterName) { - ciliumNodeKVStore.DeleteLocalKey(ctx, kvStoreNode) - } - } - }() - } else { - s.logger.InfoContext(ctx, "Starting to synchronize CiliumNode custom resources") - } + s.logger.InfoContext(ctx, "Starting to synchronize CiliumNode custom resources") if s.nodeManager != nil { nodeManagerSyncHandler = s.syncHandlerConstructor( @@ -190,47 +94,11 @@ func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, }) } - if s.withKVStore { - ciliumPodsSelector, err := labels.Parse(operatorOption.Config.CiliumPodLabels) - if err != nil { - return fmt.Errorf("unable to parse cilium pod selector: %w", err) - } - - kvStoreSyncHandler = s.syncHandlerConstructor( - func(node *cilium_v2.CiliumNode) error { - // Check if a Cilium agent is still running on the given node, and - // in that case retry later, because it would recognize the deletion - // event and recreate the kvstore entry right away. Hence, defeating - // the whole purpose of this GC logic, and leading to the node entry - // being eventually deleted by the lease expiration only. - pods, err := podsStore.ByIndex(operatorK8s.PodNodeNameIndex, node.GetName()) - if err != nil { - return fmt.Errorf("retrieving pods indexed by node %q: %w", node.GetName(), err) - } - - for _, pod := range pods { - if utils.IsPodRunning(pod.Status) && ciliumPodsSelector.Matches(labels.Set(pod.Labels)) { - return fmt.Errorf("skipping deletion from kvstore, as Cilium agent is still running on %q", node.GetName()) - } - } - - nodeDel := ciliumNodeName{ - cluster: option.Config.ClusterName, - name: node.Name, - } - ciliumNodeKVStore.DeleteLocalKey(ctx, &nodeDel) - return nil - }, - func(node *cilium_v2.CiliumNode) error { - return nil - }) - } - // If both nodeManager and KVStore are nil, then we don't need to handle // any watcher events, but we will need to keep all CiliumNodes in // memory because 'ciliumNodeStore' is used across the operator // to get the latest state of a CiliumNode. - if s.withKVStore || s.nodeManager != nil { + if s.nodeManager != nil { resourceEventHandler = cache.ResourceEventHandlerFuncs{ AddFunc: func(obj any) { key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) @@ -241,9 +109,6 @@ func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, if s.nodeManager != nil { ciliumNodeManagerQueue.Add(key) } - if s.withKVStore { - kvStoreQueue.Add(key) - } }, UpdateFunc: func(oldObj, newObj any) { if oldNode := informer.CastInformerEvent[cilium_v2.CiliumNode](s.logger, oldObj); oldNode != nil { @@ -259,9 +124,6 @@ func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, if s.nodeManager != nil { ciliumNodeManagerQueue.Add(key) } - if s.withKVStore { - kvStoreQueue.Add(key) - } } else { s.logger.WarnContext(ctx, "Unknown CiliumNode object type received", @@ -286,9 +148,6 @@ func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, if s.nodeManager != nil { ciliumNodeManagerQueue.Add(key) } - if s.withKVStore { - kvStoreQueue.Add(key) - } }, } } @@ -322,23 +181,11 @@ func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup, } }() } - // Start handling events for KVStore **after** nodeManagerSyncHandler - // otherwise Cilium Operator will block until the KVStore is available. - // Only handle events if kvStoreSyncHandler is not nil. If it is nil - // then there isn't any event handler set for CiliumNodes events. - if s.withKVStore && kvStoreSyncHandler != nil { - <-connectedToKVStore - s.logger.InfoContext(ctx, "Connected to the KVStore, syncing CiliumNodes to the KVStore") - // infinite loop it will block code execution - for s.processNextWorkItem(kvStoreQueue, kvStoreSyncHandler) { - } - } }() wg.Add(1) go func() { defer wg.Done() - defer kvStoreQueue.ShutDown() defer ciliumNodeManagerQueue.ShutDown() ciliumNodeInformer.Run(ctx.Done()) diff --git a/operator/cmd/flags.go b/operator/cmd/flags.go index 5e6a87aa9d9b9..c45091f6c14b5 100644 --- a/operator/cmd/flags.go +++ b/operator/cmd/flags.go @@ -214,9 +214,6 @@ func InitGlobalFlags(logger *slog.Logger, cmd *cobra.Command, vp *viper.Viper) { flags.Bool(operatorOption.SyncK8sServices, true, "Synchronize Kubernetes services to kvstore") option.BindEnv(vp, operatorOption.SyncK8sServices) - flags.Bool(operatorOption.SyncK8sNodes, true, "Synchronize Kubernetes nodes to kvstore and perform CNP GC") - option.BindEnv(vp, operatorOption.SyncK8sNodes) - flags.Int(operatorOption.UnmanagedPodWatcherInterval, 15, "Interval to check for unmanaged kube-dns pods (0 to disable)") option.BindEnv(vp, operatorOption.UnmanagedPodWatcherInterval) diff --git a/operator/cmd/root.go b/operator/cmd/root.go index a0166f7dfa502..345a9d46d6f8e 100644 --- a/operator/cmd/root.go +++ b/operator/cmd/root.go @@ -43,6 +43,7 @@ import ( gatewayapi "github.com/cilium/cilium/operator/pkg/gateway-api" "github.com/cilium/cilium/operator/pkg/ingress" "github.com/cilium/cilium/operator/pkg/kvstore/locksweeper" + "github.com/cilium/cilium/operator/pkg/kvstore/nodesgc" "github.com/cilium/cilium/operator/pkg/lbipam" "github.com/cilium/cilium/operator/pkg/networkpolicy" "github.com/cilium/cilium/operator/pkg/nodeipam" @@ -310,6 +311,9 @@ var ( // configuration to describe, in form of prometheus metrics, which // features are enabled on the operator. features.Cell, + + // GC of stale node entries in the KVStore + nodesgc.Cell, ), ) @@ -533,7 +537,6 @@ type params struct { cell.In Lifecycle cell.Lifecycle Clientset k8sClient.Clientset - KVStoreClient kvstore.Client Resources operatorK8s.Resources SvcResolver *dial.ServiceResolver CfgClusterMeshPolicy cmtypes.PolicyConfig @@ -549,7 +552,6 @@ func registerLegacyOnLeader(p params) { ctx: ctx, cancel: cancel, clientset: p.Clientset, - kvstoreClient: p.KVStoreClient, resources: p.Resources, cfgClusterMeshPolicy: p.CfgClusterMeshPolicy, workqueueMetricsProvider: p.WorkQueueMetricsProvider, @@ -567,7 +569,6 @@ type legacyOnLeader struct { ctx context.Context cancel context.CancelFunc clientset k8sClient.Clientset - kvstoreClient kvstore.Client wg sync.WaitGroup resources operatorK8s.Resources cfgClusterMeshPolicy cmtypes.PolicyConfig @@ -611,7 +612,6 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { var ( nodeManager allocator.NodeEventHandler - withKVStore bool ) legacy.logger.InfoContext(ctx, @@ -650,10 +650,6 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { nodeManager = nm } - if legacy.kvstoreClient.IsEnabled() && legacy.clientset.IsEnabled() && operatorOption.Config.SyncK8sNodes { - withKVStore = true - } - if legacy.clientset.IsEnabled() && (operatorOption.Config.RemoveCiliumNodeTaints || operatorOption.Config.SetCiliumIsUpCondition) { legacy.logger.InfoContext(ctx, @@ -669,7 +665,7 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { watcherLogger) } - ciliumNodeSynchronizer := newCiliumNodeSynchronizer(legacy.logger, legacy.clientset, legacy.kvstoreClient, nodeManager, withKVStore, legacy.workqueueMetricsProvider) + ciliumNodeSynchronizer := newCiliumNodeSynchronizer(legacy.logger, legacy.clientset, nodeManager, legacy.workqueueMetricsProvider) if legacy.clientset.IsEnabled() { // ciliumNodeSynchronizer uses operatorWatchers.PodStore for IPAM surge @@ -681,7 +677,7 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { } operatorWatchers.PodStore = podStore.CacheStore() - if err := ciliumNodeSynchronizer.Start(legacy.ctx, &legacy.wg, podStore); err != nil { + if err := ciliumNodeSynchronizer.Start(legacy.ctx, &legacy.wg); err != nil { logging.Fatal(legacy.logger, "Unable to setup cilium node synchronizer", logfields.Error, err) } diff --git a/operator/option/config.go b/operator/option/config.go index 955569a2ac8d6..eb59868b06729 100644 --- a/operator/option/config.go +++ b/operator/option/config.go @@ -49,9 +49,6 @@ const ( // SyncK8sServices synchronizes k8s services into the kvstore SyncK8sServices = "synchronize-k8s-services" - // SyncK8sNodes synchronizes k8s nodes into the kvstore - SyncK8sNodes = "synchronize-k8s-nodes" - // UnmanagedPodWatcherInterval is the interval to check for unmanaged kube-dns pods (0 to disable) UnmanagedPodWatcherInterval = "unmanaged-pod-watcher-interval" @@ -231,9 +228,6 @@ type OperatorConfig struct { // SyncK8sServices synchronizes k8s services into the kvstore SyncK8sServices bool - // SyncK8sNodes synchronizes k8s nodes into the kvstore - SyncK8sNodes bool - // UnmanagedPodWatcherInterval is the interval to check for unmanaged kube-dns pods (0 to disable) UnmanagedPodWatcherInterval int @@ -401,7 +395,6 @@ func (c *OperatorConfig) Populate(logger *slog.Logger, vp *viper.Viper) { c.EnableMetrics = vp.GetBool(EnableMetrics) c.EndpointGCInterval = vp.GetDuration(EndpointGCInterval) c.SyncK8sServices = vp.GetBool(SyncK8sServices) - c.SyncK8sNodes = vp.GetBool(SyncK8sNodes) c.UnmanagedPodWatcherInterval = vp.GetInt(UnmanagedPodWatcherInterval) c.NodeCIDRMaskSizeIPv4 = vp.GetInt(NodeCIDRMaskSizeIPv4) c.NodeCIDRMaskSizeIPv6 = vp.GetInt(NodeCIDRMaskSizeIPv6) diff --git a/operator/pkg/kvstore/nodesgc/cell.go b/operator/pkg/kvstore/nodesgc/cell.go new file mode 100644 index 0000000000000..16ef886b1295d --- /dev/null +++ b/operator/pkg/kvstore/nodesgc/cell.go @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package nodesgc + +import ( + "github.com/cilium/hive/cell" + "github.com/spf13/pflag" +) + +// Cell handles the garbage collection of stale node entries from the kvstore. +var Cell = cell.Module( + "kvstore-nodes-gc", + "GC of stale KVStore node entries", + + cell.Config(Config{Enable: true}), + cell.ProvidePrivate(newGC), + cell.Invoke(func(*gc) {}), +) + +type Config struct { + Enable bool `mapstructure:"synchronize-k8s-nodes"` +} + +func (def Config) Flags(flags *pflag.FlagSet) { + flags.Bool("synchronize-k8s-nodes", def.Enable, "Perform GC of stale node entries from the KVStore") +} diff --git a/operator/pkg/kvstore/nodesgc/gc.go b/operator/pkg/kvstore/nodesgc/gc.go new file mode 100644 index 0000000000000..a39f326936f36 --- /dev/null +++ b/operator/pkg/kvstore/nodesgc/gc.go @@ -0,0 +1,236 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package nodesgc + +import ( + "context" + "fmt" + "log/slog" + "path" + "time" + + "github.com/cilium/hive/cell" + "github.com/cilium/hive/job" + "k8s.io/client-go/util/workqueue" + + operatorK8s "github.com/cilium/cilium/operator/k8s" + operatorOption "github.com/cilium/cilium/operator/option" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" + cilium_api_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" + k8sClient "github.com/cilium/cilium/pkg/k8s/client" + "github.com/cilium/cilium/pkg/k8s/resource" + slim_corev1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" + "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/labels" + "github.com/cilium/cilium/pkg/k8s/utils" + "github.com/cilium/cilium/pkg/kvstore" + "github.com/cilium/cilium/pkg/kvstore/store" + "github.com/cilium/cilium/pkg/logging/logfields" + nodeStore "github.com/cilium/cilium/pkg/node/store" + nodeTypes "github.com/cilium/cilium/pkg/node/types" +) + +var ( + // wqRateLimiter is the rate limiter used for the working queue. It can be overridden for testing purposes. + wqRateLimiter = workqueue.NewTypedItemExponentialFailureRateLimiter[nodeName](1*time.Second, 120*time.Second) + + // kvstoreUpsertQueueDelay is the delay before checking whether a newly observed kvstore entry should be + // deleted or not. It is meant to give time to the corresponding CiliumNode to be created as well before + // attempting deletion, as an additional safety measure in addition to checking whether a Cilium agent is + // running on that node. It can be overridden for testing purposes. + kvstoreUpsertQueueDelay = 1 * time.Minute +) + +type nodeName string + +type gc struct { + logger *slog.Logger + jg job.Group + cinfo cmtypes.ClusterInfo + + client kvstore.Client + ciliumNodes resource.Resource[*cilium_api_v2.CiliumNode] + pods resource.Resource[*slim_corev1.Pod] + podsSelector labels.Selector + + queue workqueue.TypedRateLimitingInterface[nodeName] +} + +func newGC(in struct { + cell.In + + Logger *slog.Logger + JobGroup job.Group + + Config Config + ClusterInfo cmtypes.ClusterInfo + + WQMetricsProvider workqueue.MetricsProvider + + Clientset k8sClient.Clientset + KVStoreClient kvstore.Client + StoreFactory store.Factory + + CiliumNodes resource.Resource[*cilium_api_v2.CiliumNode] + Pods resource.Resource[*slim_corev1.Pod] +}) (*gc, error) { + if !in.Clientset.IsEnabled() || !in.KVStoreClient.IsEnabled() || !in.Config.Enable { + return nil, nil + } + + selector, err := labels.Parse(operatorOption.Config.CiliumPodLabels) + if err != nil { + return nil, fmt.Errorf("unable to parse cilium pod selector: %w", err) + } + + g := gc{ + logger: in.Logger, + jg: in.JobGroup, + cinfo: in.ClusterInfo, + + client: in.KVStoreClient, + ciliumNodes: in.CiliumNodes, + pods: in.Pods, + podsSelector: selector, + + queue: workqueue.NewTypedRateLimitingQueueWithConfig( + wqRateLimiter, + workqueue.TypedRateLimitingQueueConfig[nodeName]{ + Name: "kvstore-nodes", + MetricsProvider: in.WQMetricsProvider, + }, + ), + } + + in.JobGroup.Add( + job.OneShot("gc", g.run), + job.OneShot("watch-k8s", func(ctx context.Context, health cell.Health) error { + health.OK("Primed") + + for ev := range g.ciliumNodes.Events(ctx) { + switch ev.Kind { + case resource.Delete: + // Enqueue deleted CiliumNodes, to GC the corresponding kvstore + // entry if still present. + g.queue.Add(nodeName(ev.Key.Name)) + case resource.Sync: + health.OK("Synced") + } + + ev.Done(nil) + } + + // We are terminating, shutdown the queue as well + health.OK("Shutting down") + g.queue.ShutDownWithDrain() + return nil + }), + job.OneShot("watch-kvstore", func(ctx context.Context, health cell.Health) error { + health.OK("Primed") + in.StoreFactory.NewWatchStore(g.cinfo.Name, nodeStore.KeyCreator, &observer{g.queue}, + store.RWSWithOnSyncCallback(func(context.Context) { health.OK("Synced") }), + ).Watch(ctx, g.client, path.Join(nodeStore.NodeStorePrefix, g.cinfo.Name)) + return nil + }), + ) + + return &g, nil +} + +func (g *gc) run(ctx context.Context, health cell.Health) error { + health.OK("Initializing") + + ciliumNodes, err := g.ciliumNodes.Store(ctx) + if err != nil { + return fmt.Errorf("retrieving CiliumNodes store: %w", err) + } + + pods, err := g.pods.Store(ctx) + if err != nil { + return fmt.Errorf("retrieving Pods store: %w", err) + } + + health.OK("Initialized") + for g.processNextWorkItem(func(nodeName nodeName) error { + // Check if the CiliumNode still exists, or got recreated, as we don't + // need to do anything in that case. + if _, exists, err := ciliumNodes.GetByKey(resource.Key{Name: string(nodeName)}); err != nil { + return fmt.Errorf("retrieving CiliumNode %q: %w", nodeName, err) + } else if exists { + return nil + } + + // Check if a Cilium agent is still running on the given node, and + // in that case retry later, because it would recognize the deletion + // event and recreate the kvstore entry right away. Hence, defeating + // the whole purpose of this GC logic, and leading to the node entry + // being eventually deleted by the lease expiration only. + found, err := pods.ByIndex(operatorK8s.PodNodeNameIndex, string(nodeName)) + if err != nil { + return fmt.Errorf("retrieving pods indexed by node %q: %w", nodeName, err) + } + + for _, pod := range found { + if utils.IsPodRunning(pod.Status) && g.podsSelector.Matches(labels.Set(pod.Labels)) { + return fmt.Errorf("delaying deletion from kvstore, as Cilium agent is still running on %q", nodeName) + } + } + + key := path.Join(nodeStore.NodeStorePrefix, nodeTypes.GetKeyNodeName(g.cinfo.Name, string(nodeName))) + if err := g.client.Delete(ctx, key); err != nil { + return fmt.Errorf("deleting node from kvstore: %w", err) + } + + g.logger.Info("Successfully deleted stale node entry from kvstore", logfields.NodeName, nodeName) + health.OK("Stale node entry GCed") + return nil + }) { + } + + return nil +} + +func (g *gc) processNextWorkItem(handler func(nodeName nodeName) error) bool { + nodeName, quit := g.queue.Get() + if quit { + return false + } + + defer g.queue.Done(nodeName) + + err := handler(nodeName) + if err == nil { + if g.queue.NumRequeues(nodeName) > 0 { + g.logger.Info("Successfully reconciled node after retries", logfields.NodeName, nodeName) + } + g.queue.Forget(nodeName) + return true + } + + const silentRetries = 5 + log := g.logger.Info + if g.queue.NumRequeues(nodeName) >= silentRetries { + log = g.logger.Warn + } + + log("Failed reconciling node, will retry", + logfields.Error, err, + logfields.NodeName, nodeName, + ) + + g.queue.AddRateLimited(nodeName) + return true +} + +type observer struct { + queue workqueue.TypedRateLimitingInterface[nodeName] +} + +func (o *observer) OnUpdate(key store.Key) { + // Add the entry after a delay, as an extra safety measure, in addition to + // checking whether there's no Cilium pod running on that node, to prevent + // deleting newly created entries due to race conditions. + o.queue.AddAfter(nodeName(key.(*nodeTypes.Node).Name), kvstoreUpsertQueueDelay) +} + +func (o *observer) OnDelete(store.NamedKey) {} diff --git a/operator/pkg/kvstore/nodesgc/script_test.go b/operator/pkg/kvstore/nodesgc/script_test.go new file mode 100644 index 0000000000000..586bc5088afec --- /dev/null +++ b/operator/pkg/kvstore/nodesgc/script_test.go @@ -0,0 +1,104 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package nodesgc + +import ( + "context" + "flag" + "log/slog" + "maps" + "testing" + + uhive "github.com/cilium/hive" + "github.com/cilium/hive/cell" + "github.com/cilium/hive/hivetest" + "github.com/cilium/hive/script" + "github.com/cilium/hive/script/scripttest" + "github.com/cilium/statedb" + "github.com/spf13/pflag" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "k8s.io/client-go/util/workqueue" + + operatorK8s "github.com/cilium/cilium/operator/k8s" + operatorOption "github.com/cilium/cilium/operator/option" + cmtypes "github.com/cilium/cilium/pkg/clustermesh/types" + "github.com/cilium/cilium/pkg/hive" + k8sClient "github.com/cilium/cilium/pkg/k8s/client/testutils" + k8sTestutils "github.com/cilium/cilium/pkg/k8s/testutils" + "github.com/cilium/cilium/pkg/k8s/version" + "github.com/cilium/cilium/pkg/kvstore" + "github.com/cilium/cilium/pkg/kvstore/store" + "github.com/cilium/cilium/pkg/logging" + "github.com/cilium/cilium/pkg/testutils" + "github.com/cilium/cilium/pkg/time" +) + +var debug = flag.Bool("debug", false, "Enable debug logging") + +func TestScript(t *testing.T) { + defer testutils.GoleakVerifyNone(t) + + version.Force(k8sTestutils.DefaultVersion) + + var opts []hivetest.LogOption + if *debug { + opts = append(opts, hivetest.LogLevel(slog.LevelDebug)) + logging.SetLogLevelToDebug() + } + log := hivetest.Logger(t, opts...) + + // Override the settings for testing purposes + wqRateLimiter = workqueue.NewTypedItemExponentialFailureRateLimiter[nodeName](10*time.Millisecond, 10*time.Millisecond) + kvstoreUpsertQueueDelay = 0 * time.Second + operatorOption.Config.CiliumPodLabels = "k8s-app=cilium" + + setup := func(t testing.TB, args []string) *script.Engine { + h := hive.New( + cell.Config(cmtypes.DefaultClusterInfo), + + cell.Provide( + func() store.Factory { return store.NewFactory(hivetest.Logger(t), store.MetricsProvider()) }, + + func(db *statedb.DB) (kvstore.Client, uhive.ScriptCmdsOut) { + client := kvstore.NewInMemoryClient(db, "__local__") + return client, uhive.NewScriptCmds(kvstore.Commands(client)) + }, + ), + + k8sClient.FakeClientCell(), + operatorK8s.ResourcesCell, + + Cell, + ) + + flags := pflag.NewFlagSet("", pflag.ContinueOnError) + h.RegisterFlags(flags) + + // Parse the shebang arguments in the script. + require.NoError(t, flags.Parse(args), "flags.Parse") + + t.Cleanup(func() { + assert.NoError(t, h.Stop(log, context.Background())) + }) + + cmds, err := h.ScriptCommands(log) + require.NoError(t, err, "ScriptCommands") + maps.Insert(cmds, maps.All(script.DefaultCmds())) + + return &script.Engine{ + Cmds: cmds, + RetryInterval: 10 * time.Millisecond, + } + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + t.Cleanup(cancel) + + scripttest.Test(t, + ctx, + setup, + []string{}, + "testdata/*.txtar") +} diff --git a/operator/pkg/kvstore/nodesgc/testdata/disabled.txtar b/operator/pkg/kvstore/nodesgc/testdata/disabled.txtar new file mode 100644 index 0000000000000..09d85451ed0ac --- /dev/null +++ b/operator/pkg/kvstore/nodesgc/testdata/disabled.txtar @@ -0,0 +1,42 @@ +#! --cluster-name=foo --synchronize-k8s-nodes=false + +# Initialize the kvstore state with a bunch of nodes. +kvstore/update cilium/state/nodes/v1/foo/node-1 node-1.json +kvstore/update cilium/state/nodes/v1/foo/node-2 node-2.json +kvstore/update cilium/state/nodes/v1/foo/node-3 node-3.json + +# Initialize the kubernetes state with a bunch of CiliumNodes. +k8s/add cilium-node-1.yaml + +hive/start + +# Wait for a little bit for things to settle. +sleep 500ms + +# Assert that nothing got touched, as GC is disabled. +kvstore/list --keys-only cilium/state/nodes keys.actual +cmp keys.actual keys.expected + +### + +-- node-1.json -- +{ "cluster": "foo", "name": "node-1" } + +-- node-2.json -- +{ "cluster": "foo", "name": "node-2" } + +-- node-3.json -- +{ "cluster": "foo", "name": "node-3" } + + +-- cilium-node-1.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumNode +metadata: + name: node-1 + + +-- keys.expected -- +# cilium/state/nodes/v1/foo/node-1 +# cilium/state/nodes/v1/foo/node-2 +# cilium/state/nodes/v1/foo/node-3 diff --git a/operator/pkg/kvstore/nodesgc/testdata/enabled.txtar b/operator/pkg/kvstore/nodesgc/testdata/enabled.txtar new file mode 100644 index 0000000000000..2d13a5bada546 --- /dev/null +++ b/operator/pkg/kvstore/nodesgc/testdata/enabled.txtar @@ -0,0 +1,178 @@ +#! --cluster-name=foo + +# Initialize the kvstore state with a bunch of nodes. +kvstore/update cilium/state/nodes/v1/foo/node-1 node-1.json +kvstore/update cilium/state/nodes/v1/foo/node-2 node-2.json +kvstore/update cilium/state/nodes/v1/foo/node-3 node-3.json +kvstore/update cilium/state/nodes/v1/other/cluster node-other-cluster.json + +# Initialize the kubernetes state with a bunch of CiliumNodes and pods. +k8s/add cilium-node-1.yaml +k8s/add cilium-node-2.yaml +k8s/add cilium-node-4.yaml + +k8s/add pod-node-1a.yaml +k8s/add pod-node-1b.yaml +k8s/add pod-node-3a.yaml +k8s/add pod-node-5a.yaml + +hive/start + +# Assert that the nodes for which there's no corresponding CiliumNode are deleted. +# Entries for other clusters should not be touched. +kvstore/list --keys-only cilium/state/nodes keys.actual +* cmp keys.actual keys.expected.v1 + +# Creating a kvstore entry for a non-existing CiliumNode should cause it to be +# immediately deleted (as we are setting the delay to 0 for testing purposes). +kvstore/update cilium/state/nodes/v1/foo/node-3 node-3.json + +# Wait for garbage collection. +kvstore/list --keys-only cilium/state/nodes keys.actual +* cmp keys.actual keys.expected.v1 + +# Creating a kvstore entry for an existing CiliumNode should not trigger GC. +kvstore/update cilium/state/nodes/v1/foo/node-4 node-4.json + +# Wait for a bit of time so that things can settle, and ensure that the entry +# was actually not deleted. +sleep 50ms + +kvstore/list --keys-only cilium/state/nodes keys.actual +cmp keys.actual keys.expected.v2 + +# Deleting a CiliumNode should trigger the GC of the corresponding kvstore entry. +k8s/delete cilium-node-2.yaml + +# Wait for garbage collection. +kvstore/list --keys-only cilium/state/nodes keys.actual +* cmp keys.actual keys.expected.v3 + +# Deleting a CiliumNode should not trigger the GC of the corresponding kvstore +# entry if a Cilium pod is still running. +k8s/delete cilium-node-1.yaml + +# Wait for a bit of time so that things can settle, and ensure that the entry +# was actually not deleted. +sleep 50ms + +kvstore/list --keys-only cilium/state/nodes keys.actual +cmp keys.actual keys.expected.v3 + +# Deleting the pod should now cause the entry to be deleted. +k8s/delete pod-node-1a.yaml + +# Wait for garbage collection. +kvstore/list --keys-only cilium/state/nodes keys.actual +* cmp keys.actual keys.expected.v4 + +# Creating a kvstore entry for a node where Cilium is running should not trigger GC. +kvstore/update cilium/state/nodes/v1/foo/node-5 node-5.json + +# Wait for a bit of time so that things can settle, and ensure that the entry +# was actually not deleted. +sleep 50ms + +kvstore/list --keys-only cilium/state/nodes keys.actual +cmp keys.actual keys.expected.v5 + +### + +-- node-1.json -- +{ "cluster": "foo", "name": "node-1" } + +-- node-2.json -- +{ "cluster": "foo", "name": "node-2" } + +-- node-3.json -- +{ "cluster": "foo", "name": "node-3" } + +-- node-4.json -- +{ "cluster": "foo", "name": "node-4" } + +-- node-5.json -- +{ "cluster": "foo", "name": "node-5" } + +-- node-other-cluster.json -- +{ "cluster": "other", "name": "cluster" } + + +-- cilium-node-1.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumNode +metadata: + name: node-1 + +-- cilium-node-2.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumNode +metadata: + name: node-2 + +-- cilium-node-4.yaml -- +apiVersion: cilium.io/v2 +kind: CiliumNode +metadata: + name: node-4 + +-- pod-node-1a.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: cilium-42lwq + labels: + k8s-app: cilium + app.kubernetes.io/name: cilium-agent + app.kubernetes.io/part-of: cilium +spec: + nodeName: node-1 + +-- pod-node-1b.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: foobar +spec: + nodeName: node-1 + +-- pod-node-3a.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: qux + labels: + k8s-app: other +spec: + nodeName: node-3 + +-- pod-node-5a.yaml -- +apiVersion: v1 +kind: Pod +metadata: + name: cilium-cl4dn + labels: + k8s-app: cilium +spec: + nodeName: node-5 + + +-- keys.expected.v1 -- +# cilium/state/nodes/v1/foo/node-1 +# cilium/state/nodes/v1/foo/node-2 +# cilium/state/nodes/v1/other/cluster +-- keys.expected.v2 -- +# cilium/state/nodes/v1/foo/node-1 +# cilium/state/nodes/v1/foo/node-2 +# cilium/state/nodes/v1/foo/node-4 +# cilium/state/nodes/v1/other/cluster +-- keys.expected.v3 -- +# cilium/state/nodes/v1/foo/node-1 +# cilium/state/nodes/v1/foo/node-4 +# cilium/state/nodes/v1/other/cluster +-- keys.expected.v4 -- +# cilium/state/nodes/v1/foo/node-4 +# cilium/state/nodes/v1/other/cluster +-- keys.expected.v5 -- +# cilium/state/nodes/v1/foo/node-4 +# cilium/state/nodes/v1/foo/node-5 +# cilium/state/nodes/v1/other/cluster From 7bbddb5c01a7d9f988bc03c086fb8806e32da518 Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Tue, 16 Sep 2025 18:49:04 +0200 Subject: [PATCH 103/176] operator: migrate CiliumNodeGC to using resource.Store In preparation for the removal of the bespoke CiliumNode informer/store, let's migrate the only remaining user over to resource.Store, and adapt it accordingly. Signed-off-by: Marco Iorio --- operator/cmd/root.go | 2 +- operator/watchers/cilium_node_gc.go | 26 ++++++++++-------- operator/watchers/cilium_node_gc_test.go | 35 +++++++++++++----------- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/operator/cmd/root.go b/operator/cmd/root.go index 345a9d46d6f8e..e1acd60b9709d 100644 --- a/operator/cmd/root.go +++ b/operator/cmd/root.go @@ -682,7 +682,7 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { } if operatorOption.Config.NodesGCInterval != 0 { - operatorWatchers.RunCiliumNodeGC(legacy.ctx, &legacy.wg, legacy.clientset, ciliumNodeSynchronizer.ciliumNodeStore, + operatorWatchers.RunCiliumNodeGC(legacy.ctx, &legacy.wg, legacy.clientset, legacy.resources.CiliumNodes, operatorOption.Config.NodesGCInterval, watcherLogger, legacy.workqueueMetricsProvider) } } diff --git a/operator/watchers/cilium_node_gc.go b/operator/watchers/cilium_node_gc.go index e660279bb2a70..d03aa09515fc2 100644 --- a/operator/watchers/cilium_node_gc.go +++ b/operator/watchers/cilium_node_gc.go @@ -5,7 +5,6 @@ package watchers import ( "context" - "fmt" "log/slog" "strings" "sync" @@ -13,13 +12,13 @@ import ( k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" "github.com/cilium/cilium/pkg/controller" cilium_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" k8sClient "github.com/cilium/cilium/pkg/k8s/client" ciliumv2 "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2" + "github.com/cilium/cilium/pkg/k8s/resource" "github.com/cilium/cilium/pkg/lock" "github.com/cilium/cilium/pkg/logging/logfields" ) @@ -67,7 +66,7 @@ func (c *ciliumNodeGCCandidate) Delete(nodeName string) { } // RunCiliumNodeGC performs garbage collector for cilium node resource -func RunCiliumNodeGC(ctx context.Context, wg *sync.WaitGroup, clientset k8sClient.Clientset, ciliumNodeStore cache.Store, interval time.Duration, logger *slog.Logger, +func RunCiliumNodeGC(ctx context.Context, wg *sync.WaitGroup, clientset k8sClient.Clientset, ciliumNodes resource.Resource[*cilium_v2.CiliumNode], interval time.Duration, logger *slog.Logger, mp workqueue.MetricsProvider) { nodesInit(wg, clientset.Slim(), ctx.Done(), mp) @@ -78,6 +77,11 @@ func RunCiliumNodeGC(ctx context.Context, wg *sync.WaitGroup, clientset k8sClien return } + ciliumNodeStore, err := ciliumNodes.Store(ctx) + if err != nil { + return + } + logger.InfoContext(ctx, "Starting to garbage collect stale CiliumNode custom resources") candidateStore := newCiliumNodeGCCandidate() @@ -102,9 +106,13 @@ func RunCiliumNodeGC(ctx context.Context, wg *sync.WaitGroup, clientset k8sClien }() } -func performCiliumNodeGC(ctx context.Context, client ciliumv2.CiliumNodeInterface, ciliumNodeStore cache.Store, +func performCiliumNodeGC(ctx context.Context, client ciliumv2.CiliumNodeInterface, ciliumNodeStore resource.Store[*cilium_v2.CiliumNode], nodeGetter slimNodeGetter, interval time.Duration, candidateStore *ciliumNodeGCCandidate, logger *slog.Logger) error { - for _, nodeName := range ciliumNodeStore.ListKeys() { + iter := ciliumNodeStore.IterKeys() + for iter.Next() { + key := iter.Key() + nodeName := key.Name + scopedLog := logger.With(logfields.NodeName, nodeName) _, err := nodeGetter.GetK8sSlimNode(nodeName) if err == nil { @@ -117,18 +125,12 @@ func performCiliumNodeGC(ctx context.Context, client ciliumv2.CiliumNodeInterfac return err } - obj, _, err := ciliumNodeStore.GetByKey(nodeName) + cn, _, err := ciliumNodeStore.GetByKey(key) if err != nil { scopedLog.ErrorContext(ctx, "Unable to fetch CiliumNode from store", logfields.Error, err) return err } - cn, ok := obj.(*cilium_v2.CiliumNode) - if !ok { - scopedLog.ErrorContext(ctx, fmt.Sprintf("Object stored in store is not *cilium_v2.CiliumNode but %T", obj)) - return err - } - // if there is owner references, let k8s handle garbage collection if len(cn.GetOwnerReferences()) > 0 { continue diff --git a/operator/watchers/cilium_node_gc_test.go b/operator/watchers/cilium_node_gc_test.go index 917bdd93dd885..7fba0ae807c55 100644 --- a/operator/watchers/cilium_node_gc_test.go +++ b/operator/watchers/cilium_node_gc_test.go @@ -11,34 +11,30 @@ import ( "github.com/stretchr/testify/assert" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/cache" + operatorK8s "github.com/cilium/cilium/operator/k8s" v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" - "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/fake" + k8sClient "github.com/cilium/cilium/pkg/k8s/client/testutils" slim_corev1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" ) func Test_performCiliumNodeGC(t *testing.T) { - cns := []runtime.Object{ - &v2.CiliumNode{ + cns := []*v2.CiliumNode{ + { ObjectMeta: metav1.ObjectMeta{ Name: "valid-node", }, - }, - &v2.CiliumNode{ + }, { ObjectMeta: metav1.ObjectMeta{ Name: "invalid-node", }, - }, - &v2.CiliumNode{ + }, { ObjectMeta: metav1.ObjectMeta{ Name: "invalid-node-with-owner-ref", OwnerReferences: []metav1.OwnerReference{{}}, }, - }, - &v2.CiliumNode{ + }, { ObjectMeta: metav1.ObjectMeta{ Name: "invalid-node-with-annotation", Annotations: map[string]string{skipGCAnnotationKey: "true"}, @@ -46,12 +42,19 @@ func Test_performCiliumNodeGC(t *testing.T) { }, } - fcn := fake.NewSimpleClientset(cns...).CiliumV2().CiliumNodes() - fCNStore := cache.NewStore(cache.MetaNamespaceKeyFunc) + _, cs := k8sClient.NewFakeClientset(hivetest.Logger(t)) + fcn := cs.CiliumV2().CiliumNodes() for _, cn := range cns { - fCNStore.Add(cn) + _, err := fcn.Create(t.Context(), cn, metav1.CreateOptions{}) + assert.NoError(t, err) } + ciliumNodes, err := operatorK8s.CiliumNodeResource(hivetest.Lifecycle(t), cs, nil) + assert.NoError(t, err) + + store, err := ciliumNodes.Store(t.Context()) + assert.NoError(t, err) + interval := time.Nanosecond fng := &fakeNodeGetter{ OnGetK8sSlimNode: func(nodeName string) (*slim_corev1.Node, error) { @@ -65,7 +68,7 @@ func Test_performCiliumNodeGC(t *testing.T) { candidateStore := newCiliumNodeGCCandidate() // check if the invalid node is added to GC candidate - err := performCiliumNodeGC(t.Context(), fcn, fCNStore, fng, interval, candidateStore, hivetest.Logger(t)) + err = performCiliumNodeGC(t.Context(), fcn, store, fng, interval, candidateStore, hivetest.Logger(t)) assert.NoError(t, err) assert.Len(t, candidateStore.nodesToRemove, 1) _, exists := candidateStore.nodesToRemove["invalid-node"] @@ -73,7 +76,7 @@ func Test_performCiliumNodeGC(t *testing.T) { // check if the invalid node is actually GC-ed time.Sleep(interval) - err = performCiliumNodeGC(t.Context(), fcn, fCNStore, fng, interval, candidateStore, hivetest.Logger(t)) + err = performCiliumNodeGC(t.Context(), fcn, store, fng, interval, candidateStore, hivetest.Logger(t)) assert.NoError(t, err) assert.Empty(t, candidateStore.nodesToRemove) _, exists = candidateStore.nodesToRemove["invalid-node"] From 521921f0e93d5e82e926cbdb81ec8514916e56be Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Tue, 16 Sep 2025 19:00:25 +0200 Subject: [PATCH 104/176] operator: remove legacy cilium node synchronizer logic Drop the legacy and convoluted cilium node synchronizer logic, and simply reimplement it on top of resource.Resource. Ideally, we'd want to completely extract this logic, but that's a far larger refactoring that involves the whole IPAM subsystem, that's out of scope here. Still, this is sufficient for the current cleanup goal. Signed-off-by: Marco Iorio --- operator/cmd/allocator_test.go | 60 +++---- operator/cmd/cilium_node.go | 282 ++++----------------------------- operator/cmd/root.go | 50 ++---- 3 files changed, 62 insertions(+), 330 deletions(-) diff --git a/operator/cmd/allocator_test.go b/operator/cmd/allocator_test.go index d1d3d9db8420f..518ac37d9f668 100644 --- a/operator/cmd/allocator_test.go +++ b/operator/cmd/allocator_test.go @@ -12,9 +12,12 @@ import ( "time" "github.com/cilium/hive/hivetest" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + operatorK8s "github.com/cilium/cilium/operator/k8s" "github.com/cilium/cilium/pkg/ipam/allocator/clusterpool/cidralloc" "github.com/cilium/cilium/pkg/ipam/allocator/podcidr" "github.com/cilium/cilium/pkg/ipam/cidrset" @@ -22,7 +25,6 @@ import ( cilium_api_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" cilium_fake "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/fake" k8sClient "github.com/cilium/cilium/pkg/k8s/client/testutils" - "github.com/cilium/cilium/pkg/testutils" ) // TestPodCIDRAllocatorOverlap tests that, on startup all nodes with assigned podCIDRs are processed so that nodes @@ -38,7 +40,6 @@ func TestPodCIDRAllocatorOverlap(t *testing.T) { } func podCIDRAllocatorOverlapTestRun(t *testing.T) { - logger := hivetest.Logger(t) var wg sync.WaitGroup defer wg.Wait() @@ -48,14 +49,10 @@ func podCIDRAllocatorOverlapTestRun(t *testing.T) { // Create a new CIDR allocator _, cidr, err := net.ParseCIDR("10.129.0.0/16") - if err != nil { - panic(err) - } + require.NoError(t, err) set, err := cidrset.NewCIDRSet(cidr, 24) - if err != nil { - panic(err) - } + require.NoError(t, err) // Create a mock APIServer client where we have 2 existing nodes, one with a PodCIDR and one without. // When List'ed from the client, first node-a is returned then node-b @@ -87,56 +84,45 @@ func podCIDRAllocatorOverlapTestRun(t *testing.T) { CiliumFakeClientset: fakeClient, } + ciliumNodes, err := operatorK8s.CiliumNodeResource(hivetest.Lifecycle(t), fakeSet, nil) + require.NoError(t, err) + // Create a new pod manager with only our IPv4 allocator and fake client set. podCidrManager := podcidr.NewNodesPodCIDRManager(hivetest.Logger(t), []cidralloc.CIDRAllocator{ set, }, nil, &ciliumNodeUpdateImplementation{clientset: fakeSet}, nil) // start synchronization. - cns := newCiliumNodeSynchronizer(logger, fakeSet, podCidrManager, nil) - if err := cns.Start(ctx, &wg); err != nil { - t.Fatal(err) - } - - // Wait for the "node manager synced" signal, just like we would normally. - <-cns.ciliumNodeManagerQueueSynced - - // Trigger the Resync after the cache sync signal - podCidrManager.Resync(ctx, time.Time{}) + wg.Go(func() { + watchCiliumNodes(ctx, ciliumNodes, podCidrManager, true) + }) - err = testutils.WaitUntil(func() bool { + require.EventuallyWithT(t, func(c *assert.CollectT) { // Get node A from the mock APIServer nodeAInt, err := fakeClient.Tracker().Get(ciliumnodesResource, "", "node-a") - if err != nil { - return false + if !assert.NoError(c, err) { + return } nodeA := nodeAInt.(*cilium_api_v2.CiliumNode) // Get node B from the mock APIServer nodeBInt, err := fakeClient.Tracker().Get(ciliumnodesResource, "", "node-b") - if err != nil { - return false + if !assert.NoError(c, err) { + return } nodeB := nodeBInt.(*cilium_api_v2.CiliumNode) - if len(nodeA.Spec.IPAM.PodCIDRs) != 1 { - return false + if !assert.Len(c, nodeA.Spec.IPAM.PodCIDRs, 1) { + return } - if len(nodeB.Spec.IPAM.PodCIDRs) != 1 { - return false + if !assert.Len(c, nodeB.Spec.IPAM.PodCIDRs, 1) { + return } - // The PodCIDRs should be distinct. - if nodeA.Spec.IPAM.PodCIDRs[0] == nodeB.Spec.IPAM.PodCIDRs[0] { - t.Fatal("Node A and Node B are assigned overlapping PodCIDRs") - } - - return true - }, 2*time.Minute) - if err != nil { - t.Fatalf("nodes have no pod CIDR: %s", err) - } + assert.NotEqual(c, nodeA.Spec.IPAM.PodCIDRs, nodeB.Spec.IPAM.PodCIDRs, + "Node A and Node B should not be assigned overlapping PodCIDRs") + }, 2*time.Minute, 10*time.Millisecond) } var ciliumnodesResource = schema.GroupVersionResource{Group: "cilium.io", Version: "v2", Resource: "ciliumnodes"} diff --git a/operator/cmd/cilium_node.go b/operator/cmd/cilium_node.go index 35030a035809d..abfe0a4c94646 100644 --- a/operator/cmd/cilium_node.go +++ b/operator/cmd/cilium_node.go @@ -5,275 +5,49 @@ package cmd import ( "context" - "fmt" - "log/slog" - "reflect" "strings" - "sync" + "time" - "k8s.io/apimachinery/pkg/api/errors" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/workqueue" - operatorOption "github.com/cilium/cilium/operator/option" "github.com/cilium/cilium/pkg/annotation" "github.com/cilium/cilium/pkg/ipam/allocator" cilium_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" k8sClient "github.com/cilium/cilium/pkg/k8s/client" - "github.com/cilium/cilium/pkg/k8s/informer" - "github.com/cilium/cilium/pkg/k8s/utils" - "github.com/cilium/cilium/pkg/logging/logfields" + "github.com/cilium/cilium/pkg/k8s/resource" ) -// ciliumNodeManagerQueueSyncedKey indicates that the caches -// are synced. The underscore prefix ensures that it can never -// clash with a real key, as Kubernetes does not allow object -// names to start with an underscore. -const ciliumNodeManagerQueueSyncedKey = "_ciliumNodeManagerQueueSynced" - -type ciliumNodeSynchronizer struct { - logger *slog.Logger - clientset k8sClient.Clientset - nodeManager allocator.NodeEventHandler - - // ciliumNodeStore contains all CiliumNodes present in k8s. - ciliumNodeStore cache.Store - - k8sCiliumNodesCacheSynced chan struct{} - ciliumNodeManagerQueueSynced chan struct{} - workqueueMetricsProvider workqueue.MetricsProvider -} - -func newCiliumNodeSynchronizer(logger *slog.Logger, clientset k8sClient.Clientset, nodeManager allocator.NodeEventHandler, workqueueMetricsProvider workqueue.MetricsProvider) *ciliumNodeSynchronizer { - return &ciliumNodeSynchronizer{ - logger: logger, - clientset: clientset, - nodeManager: nodeManager, - - k8sCiliumNodesCacheSynced: make(chan struct{}), - ciliumNodeManagerQueueSynced: make(chan struct{}), - workqueueMetricsProvider: workqueueMetricsProvider, - } -} - -func (s *ciliumNodeSynchronizer) Start(ctx context.Context, wg *sync.WaitGroup) error { - var ( - nodeManagerSyncHandler func(key string) error - resourceEventHandler = cache.ResourceEventHandlerFuncs{} - ) - - var ciliumNodeManagerQueueConfig = workqueue.TypedRateLimitingQueueConfig[string]{ - Name: "node_manager", - MetricsProvider: s.workqueueMetricsProvider, - } - - if operatorOption.Config.EnableMetrics { - ciliumNodeManagerQueueConfig.MetricsProvider = s.workqueueMetricsProvider - } - - var ciliumNodeManagerQueue = workqueue.NewTypedRateLimitingQueueWithConfig[string](workqueue.DefaultTypedControllerRateLimiter[string](), ciliumNodeManagerQueueConfig) - - s.logger.InfoContext(ctx, "Starting to synchronize CiliumNode custom resources") - - if s.nodeManager != nil { - nodeManagerSyncHandler = s.syncHandlerConstructor( - func(node *cilium_v2.CiliumNode) error { - s.nodeManager.Delete(node) - return nil - }, - func(node *cilium_v2.CiliumNode) error { - value, ok := node.Annotations[annotation.IPAMIgnore] - if ok && strings.ToLower(value) == "true" { - return nil - } - - // node is deep copied before it is stored in pkg/aws/eni - s.nodeManager.Upsert(node) - return nil - }) - } - - // If both nodeManager and KVStore are nil, then we don't need to handle - // any watcher events, but we will need to keep all CiliumNodes in - // memory because 'ciliumNodeStore' is used across the operator - // to get the latest state of a CiliumNode. - if s.nodeManager != nil { - resourceEventHandler = cache.ResourceEventHandlerFuncs{ - AddFunc: func(obj any) { - key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) - if err != nil { - s.logger.WarnContext(ctx, "Unable to process CiliumNode Add event", logfields.Error, err) - return - } - if s.nodeManager != nil { - ciliumNodeManagerQueue.Add(key) - } - }, - UpdateFunc: func(oldObj, newObj any) { - if oldNode := informer.CastInformerEvent[cilium_v2.CiliumNode](s.logger, oldObj); oldNode != nil { - if newNode := informer.CastInformerEvent[cilium_v2.CiliumNode](s.logger, newObj); newNode != nil { - if oldNode.DeepEqual(newNode) { - return - } - key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(newObj) - if err != nil { - s.logger.WarnContext(ctx, "Unable to process CiliumNode Update event", logfields.Error, err) - return - } - if s.nodeManager != nil { - ciliumNodeManagerQueue.Add(key) - } - } else { - s.logger.WarnContext(ctx, - "Unknown CiliumNode object type received", - logfields.Type, reflect.TypeOf(newNode), - logfields.Node, newNode, - ) - } - } else { - s.logger.WarnContext(ctx, - "Unknown CiliumNode object type received", - logfields.Type, reflect.TypeOf(oldNode), - logfields.Node, oldNode, - ) - } - }, - DeleteFunc: func(obj any) { - key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) - if err != nil { - s.logger.WarnContext(ctx, "Unable to process CiliumNode Delete event", logfields.Error, err) - return - } - if s.nodeManager != nil { - ciliumNodeManagerQueue.Add(key) - } - }, - } - } - - // TODO: The operator is currently storing a full copy of the - // CiliumNode resource, as the resource grows, we may want to consider - // introducing a slim version of it. - var ciliumNodeInformer cache.Controller - s.ciliumNodeStore, ciliumNodeInformer = informer.NewInformer( - utils.ListerWatcherFromTyped[*cilium_v2.CiliumNodeList](s.clientset.CiliumV2().CiliumNodes()), - &cilium_v2.CiliumNode{}, - 0, - resourceEventHandler, - nil, - ) - - wg.Add(1) - go func() { - defer wg.Done() - - cache.WaitForCacheSync(ctx.Done(), ciliumNodeInformer.HasSynced) - close(s.k8sCiliumNodesCacheSynced) - ciliumNodeManagerQueue.Add(ciliumNodeManagerQueueSyncedKey) - s.logger.InfoContext(ctx, "CiliumNodes caches synced with Kubernetes") - // Only handle events if nodeManagerSyncHandler is not nil. If it is nil - // then there isn't any event handler set for CiliumNodes events. - if nodeManagerSyncHandler != nil { - go func() { - // infinite loop. run in a goroutine to unblock code execution - for s.processNextWorkItem(ciliumNodeManagerQueue, nodeManagerSyncHandler) { - } - }() - } - }() - - wg.Add(1) - go func() { - defer wg.Done() - defer ciliumNodeManagerQueue.ShutDown() - - ciliumNodeInformer.Run(ctx.Done()) - }() - - return nil -} - -func (s *ciliumNodeSynchronizer) syncHandlerConstructor(notFoundHandler, foundHandler func(node *cilium_v2.CiliumNode) error) func(key string) error { - return func(key string) error { - _, name, err := cache.SplitMetaNamespaceKey(key) - if err != nil { - s.logger.Error("Unable to process CiliumNode event", logfields.Error, err) - return err - } - obj, exists, err := s.ciliumNodeStore.GetByKey(name) - - // Delete handling - if !exists || errors.IsNotFound(err) { - return notFoundHandler(&cilium_v2.CiliumNode{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: name, - }, - }) - } - if err != nil { - s.logger.Warn("Unable to retrieve CiliumNode from watcher store", logfields.Error, err) - return err - } - cn, ok := obj.(*cilium_v2.CiliumNode) - if !ok { - tombstone, ok := obj.(cache.DeletedFinalStateUnknown) - if !ok { - return fmt.Errorf("couldn't get object from tombstone %T", obj) - } - cn, ok = tombstone.Obj.(*cilium_v2.CiliumNode) - if !ok { - return fmt.Errorf("tombstone contained object that is not a *cilium_v2.CiliumNode %T", obj) +func watchCiliumNodes(ctx context.Context, ciliumNodes resource.Resource[*cilium_v2.CiliumNode], handler allocator.NodeEventHandler, withResync bool) { + // We will use CiliumNodes as the source of truth for the podCIDRs. + // Once the CiliumNodes are synchronized with the operator we will + // be able to watch for K8s Node events which they will be used + // to create the remaining CiliumNodes. + for ev := range ciliumNodes.Events(ctx) { + switch ev.Kind { + case resource.Upsert: + value, ok := ev.Object.Annotations[annotation.IPAMIgnore] + if !ok || strings.ToLower(value) != "true" { + handler.Upsert(ev.Object) } - } - if cn.DeletionTimestamp != nil { - return notFoundHandler(cn) - } - return foundHandler(cn) - } -} -// processNextWorkItem process all events from the workqueue. -func (s *ciliumNodeSynchronizer) processNextWorkItem(queue workqueue.TypedRateLimitingInterface[string], syncHandler func(key string) error) bool { - key, quit := queue.Get() - if quit { - return false - } - defer queue.Done(key) - - if key == ciliumNodeManagerQueueSyncedKey { - close(s.ciliumNodeManagerQueueSynced) - return true - } - - err := syncHandler(key) - if err == nil { - // If err is nil we can forget it from the queue, if it is not nil - // the queue handler will retry to process this key until it succeeds. - if queue.NumRequeues(key) > 0 { - s.logger.Info("CiliumNode successfully reconciled after retries", logfields.NodeName, key) + case resource.Delete: + handler.Delete(ev.Object) + + case resource.Sync: + // We don't want CiliumNodes that don't have podCIDRs to be + // allocated with a podCIDR already being used by another node. + // For this reason we will call Resync after all CiliumNodes are + // synced with the operator to signal the node manager, since it + // knows all podCIDRs that are currently set in the cluster, that + // it can allocate podCIDRs for the nodes that don't have a podCIDR + // set. + if withResync { + handler.Resync(ctx, time.Time{}) + } } - queue.Forget(key) - return true - } - const silentRetries = 5 - if queue.NumRequeues(key) < silentRetries { - s.logger.Info("Failed reconciling CiliumNode, will retry", - logfields.Error, err, - logfields.NodeName, key, - ) - } else { - s.logger.Warn( - "Failed reconciling CiliumNode, will retry", - logfields.Error, err, - logfields.NodeName, key, - ) + ev.Done(nil) } - - queue.AddRateLimited(key) - - return true } type ciliumNodeUpdateImplementation struct { diff --git a/operator/cmd/root.go b/operator/cmd/root.go index e1acd60b9709d..226b369158dda 100644 --- a/operator/cmd/root.go +++ b/operator/cmd/root.go @@ -12,7 +12,6 @@ import ( "path/filepath" "sync" "sync/atomic" - "time" "github.com/cilium/hive/cell" "github.com/spf13/cobra" @@ -60,7 +59,6 @@ import ( "github.com/cilium/cilium/pkg/dial" "github.com/cilium/cilium/pkg/gops" "github.com/cilium/cilium/pkg/hive" - "github.com/cilium/cilium/pkg/ipam/allocator" ipamOption "github.com/cilium/cilium/pkg/ipam/option" "github.com/cilium/cilium/pkg/k8s" "github.com/cilium/cilium/pkg/k8s/apis" @@ -610,10 +608,6 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { }() } - var ( - nodeManager allocator.NodeEventHandler - ) - legacy.logger.InfoContext(ctx, "Initializing IPAM", logfields.Mode, option.Config.IPAM, @@ -647,7 +641,17 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { logging.Fatal(legacy.logger, fmt.Sprintf("Unable to start %s allocator", ipamMode), logfields.Error, err) } - nodeManager = nm + legacy.wg.Go(func() { + // The NodeEventHandler uses operatorWatchers.PodStore for IPAM surge allocation. + podStore, err := legacy.resources.Pods.Store(legacy.ctx) + if err != nil { + logging.Fatal(legacy.logger, "Unable to retrieve Pod store from Pod resource watcher", logfields.Error, err) + } + operatorWatchers.PodStore = podStore.CacheStore() + + withResync := option.Config.IPAM == ipamOption.IPAMClusterPool || option.Config.IPAM == ipamOption.IPAMMultiPool + watchCiliumNodes(legacy.ctx, legacy.resources.CiliumNodes, nm, withResync) + }) } if legacy.clientset.IsEnabled() && @@ -665,45 +669,13 @@ func (legacy *legacyOnLeader) onStart(ctx cell.HookContext) error { watcherLogger) } - ciliumNodeSynchronizer := newCiliumNodeSynchronizer(legacy.logger, legacy.clientset, nodeManager, legacy.workqueueMetricsProvider) - if legacy.clientset.IsEnabled() { - // ciliumNodeSynchronizer uses operatorWatchers.PodStore for IPAM surge - // allocation. Initializing PodStore from Pod resource is temporary until - // ciliumNodeSynchronizer is migrated to a cell. - podStore, err := legacy.resources.Pods.Store(legacy.ctx) - if err != nil { - logging.Fatal(legacy.logger, "Unable to retrieve Pod store from Pod resource watcher", logfields.Error, err) - } - operatorWatchers.PodStore = podStore.CacheStore() - - if err := ciliumNodeSynchronizer.Start(legacy.ctx, &legacy.wg); err != nil { - logging.Fatal(legacy.logger, "Unable to setup cilium node synchronizer", logfields.Error, err) - } - if operatorOption.Config.NodesGCInterval != 0 { operatorWatchers.RunCiliumNodeGC(legacy.ctx, &legacy.wg, legacy.clientset, legacy.resources.CiliumNodes, operatorOption.Config.NodesGCInterval, watcherLogger, legacy.workqueueMetricsProvider) } } - if option.Config.IPAM == ipamOption.IPAMClusterPool || option.Config.IPAM == ipamOption.IPAMMultiPool { - // We will use CiliumNodes as the source of truth for the podCIDRs. - // Once the CiliumNodes are synchronized with the operator we will - // be able to watch for K8s Node events which they will be used - // to create the remaining CiliumNodes. - <-ciliumNodeSynchronizer.ciliumNodeManagerQueueSynced - - // We don't want CiliumNodes that don't have podCIDRs to be - // allocated with a podCIDR already being used by another node. - // For this reason we will call Resync after all CiliumNodes are - // synced with the operator to signal the node manager, since it - // knows all podCIDRs that are currently set in the cluster, that - // it can allocate podCIDRs for the nodes that don't have a podCIDR - // set. - nodeManager.Resync(legacy.ctx, time.Time{}) - } - if option.Config.IdentityAllocationMode == option.IdentityAllocationModeCRD || option.Config.IdentityAllocationMode == option.IdentityAllocationModeDoubleWriteReadKVstore || option.Config.IdentityAllocationMode == option.IdentityAllocationModeDoubleWriteReadCRD { From 88bda5a0675f4a69f9f7f87dc4228864cacd0b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Mon, 2 Jun 2025 11:07:37 +0200 Subject: [PATCH 105/176] bpf: unify CFLAGS handling in Makefile.clang MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit unifies CFLAGS deduction into a common Makefile.clang for both BPF unit tests and main 'all' target (used by lint and verifier tests). Signed-off-by: Marc Suñé --- bpf/.gitignore | 3 +++ bpf/Makefile | 2 +- bpf/Makefile.bpf | 17 ++--------------- bpf/Makefile.clang | 19 +++++++++++++++++++ bpf/tests/Makefile | 10 ++-------- 5 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 bpf/Makefile.clang diff --git a/bpf/.gitignore b/bpf/.gitignore index fb86fb107256c..ea4ae692efd6b 100644 --- a/bpf/.gitignore +++ b/bpf/.gitignore @@ -7,6 +7,9 @@ compile_commands.json # ignore CLANG intermediate compilation tmp files *.o.tmp +# ignore generated CFLAGS +**.clang_flags.mk + # ignore scapy autgen and python cache tests/scapy/__pycache__/* tests/output/* diff --git a/bpf/Makefile b/bpf/Makefile index 2719c99439fd5..a66d9dd7f38ae 100644 --- a/bpf/Makefile +++ b/bpf/Makefile @@ -243,9 +243,9 @@ clean: $(QUIET) $(foreach TARGET,$(SUBDIRS), \ $(MAKE) $(SUBMAKEOPTS) -C $(TARGET) clean;) $(QUIET)rm -fr *.o *.ll *.i *.s + $(QUIET)rm -f $(CLANG_FLAGS_FILE) $(QUIET)rm -f $(TARGET) - BEAR_CLI = $(shell which bear 2> /dev/null) gen_compile_commands: ifeq (, $(BEAR_CLI)) diff --git a/bpf/Makefile.bpf b/bpf/Makefile.bpf index f4bab4ee947ff..6f4e8a36e4267 100644 --- a/bpf/Makefile.bpf +++ b/bpf/Makefile.bpf @@ -3,26 +3,13 @@ FLAGS := -I$(ROOT_DIR)/bpf -I$(ROOT_DIR)/bpf/include -O2 -g -CLANG_FLAGS := ${FLAGS} --target=bpf -std=gnu99 -nostdinc -# eBPF verifier enforces unaligned access checks where necessary, so don't -# let clang complain too early. -CLANG_FLAGS += -ftrap-function=__undefined_trap -CLANG_FLAGS += -Wall -Wextra -Werror -Wshadow -CLANG_FLAGS += -Wno-address-of-packed-member -CLANG_FLAGS += -Wno-unknown-warning-option -CLANG_FLAGS += -Wno-gnu-variable-sized-type-not-at-end -CLANG_FLAGS += -Wimplicit-int-conversion -Wenum-conversion -CLANG_FLAGS += -Wimplicit-fallthrough -CLANG_FLAGS += -mcpu=v3 +# Note, FLAGS needs to be defined before inclusion +include $(ROOT_DIR)/bpf/Makefile.clang LIB := $(shell find $(ROOT_DIR)/bpf -name '*.h') BPF_C := $(patsubst %.o,%.c,$(BPF)) BPF_ASM := $(patsubst %.o,%.s,$(BPF)) -CLANG ?= clang -HOST_CC ?= gcc -HOST_STRIP ?= strip - ifeq ($(CROSS_ARCH),arm64) HOST_CC = aarch64-linux-gnu-gcc HOST_STRIP = aarch64-linux-gnu-strip diff --git a/bpf/Makefile.clang b/bpf/Makefile.clang new file mode 100644 index 0000000000000..581fe1922e154 --- /dev/null +++ b/bpf/Makefile.clang @@ -0,0 +1,19 @@ +CLANG ?= clang +HOST_CC ?= gcc +HOST_STRIP ?= strip + +# Base CFLAGS (CLANG_FLAGS) are read from pkg/datapath/loader/compile.go +# to keep them synced with the loader + +CLANG_FLAGS_FILE := $(shell realpath --relative-to=$(CURDIR) $(ROOT_DIR)/bpf/.clang_flags.mk) +CLANG_CFLAGS_GO := $(ROOT_DIR)/pkg/datapath/loader/tools/clang_cflags.go +LOADER_GO_FILES := $(shell find $(ROOT_DIR)/pkg/datapath/loader -type f -name '*.go') + +# Rebuild only when go files are modified in the loader +$(CLANG_FLAGS_FILE): $(LOADER_GO_FILES) + $(QUIET) echo 'CLANG_FLAGS := $(FLAGS) '`$(GO) run $(CLANG_CFLAGS_GO)` > $@ + +-include $(CLANG_FLAGS_FILE) + +# Mimics the mcpu values set by cilium-agent. See GetBPFCPU(). +CLANG_FLAGS += -mcpu=v3 diff --git a/bpf/tests/Makefile b/bpf/tests/Makefile index e28c6693919e6..87037b4efc003 100644 --- a/bpf/tests/Makefile +++ b/bpf/tests/Makefile @@ -5,20 +5,14 @@ include ../../Makefile.defs MAKEFLAGS += -r -CLANG ?= clang - FLAGS := -I$(ROOT_DIR)/bpf -I$(ROOT_DIR)/bpf/include -g -# Base CFLAGS (CLANG_FLAGS) are read from pkg/datapath/loader/compile.go -# to keep them synced with the loader -CLANG_FLAGS := $(FLAGS) $(shell $(GO) run $(ROOT_DIR)/pkg/datapath/loader/tools/clang_cflags.go) +# Note, FLAGS needs to be defined before inclusion +include ../Makefile.clang # Create dependency files for each .o file. CLANG_FLAGS += -MD -# Mimics the mcpu values set by cilium-agent. See GetBPFCPU(). -CLANG_FLAGS += -mcpu=v3 - # Autogenerated scapy pkts SCAPY_HDR := $(ROOT_DIR)/bpf/tests/output/gen_pkts.h SCAPY_HDR_TS := $(ROOT_DIR)/bpf/tests/output/gen_pkts.h.stamp From b53211c4559c3efe92023267dcf2d6aeaa226b4d Mon Sep 17 00:00:00 2001 From: Tam Mach Date: Thu, 18 Sep 2025 22:19:51 +1000 Subject: [PATCH 106/176] gha: Correct k8s version for f12-datapath-service-ns-misc Fixes: e471a29bedae04a5581db3c6e0816e28e7f630f4 Signed-off-by: Tam Mach --- .github/actions/ginkgo/main-focus.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/ginkgo/main-focus.yaml b/.github/actions/ginkgo/main-focus.yaml index 4afd0bbfcbb6f..d39f17bc615c0 100644 --- a/.github/actions/ginkgo/main-focus.yaml +++ b/.github/actions/ginkgo/main-focus.yaml @@ -247,7 +247,7 @@ exclude: - k8s-version: "1.32" focus: "f11-datapath-service-ns-tc" - - k8s-version: "1.28" + - k8s-version: "1.32" focus: "f12-datapath-service-ns-misc" - k8s-version: "1.32" From 601da7ea5b43182a58247e725513c5186a58fed9 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 18 Sep 2025 11:07:36 +0300 Subject: [PATCH 107/176] bpf: add THIS_IS_L3_DEV helper macro Clean up the various ways of looking at ETH_HLEN to determine whether the current interface is of L3 type. Signed-off-by: Julian Wiedmann --- bpf/bpf_host.c | 4 ++-- bpf/lib/classifiers.h | 2 +- bpf/lib/common.h | 4 +++- bpf/lib/fib.h | 2 +- bpf/lib/icmp6.h | 2 +- bpf/lib/nodeport.h | 4 ++-- bpf/tests/classifiers_common.h | 2 +- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 11b09c8c6e2a7..5bd70fdede57d 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -354,7 +354,7 @@ handle_ipv6_cont(struct __ctx_buff *ctx, __u32 secctx, const bool from_host, ret = maybe_add_l2_hdr(ctx, ep->ifindex, &l2_hdr_required); if (ret != 0) return ret; - if (l2_hdr_required && ETH_HLEN == 0) { + if (l2_hdr_required && THIS_IS_L3_DEV) { /* l2 header is added */ l3_off += __ETH_HLEN; } @@ -763,7 +763,7 @@ handle_ipv4_cont(struct __ctx_buff *ctx, __u32 secctx, const bool from_host, ret = maybe_add_l2_hdr(ctx, ep->ifindex, &l2_hdr_required); if (ret != 0) return ret; - if (l2_hdr_required && ETH_HLEN == 0) { + if (l2_hdr_required && THIS_IS_L3_DEV) { /* l2 header is added */ l3_off += __ETH_HLEN; if (!____revalidate_data_pull(ctx, &data, &data_end, diff --git a/bpf/lib/classifiers.h b/bpf/lib/classifiers.h index 2cdf3d63ff685..0e30927bc8527 100644 --- a/bpf/lib/classifiers.h +++ b/bpf/lib/classifiers.h @@ -122,7 +122,7 @@ ctx_classify(struct __ctx_buff *ctx, __be16 proto, enum trace_point obs_point __ proto = ctx_get_protocol(ctx); /* Check whether the packet comes from a L3 device (no ethernet). */ - if (ETH_HLEN == 0) + if (THIS_IS_L3_DEV) flags |= CLS_FLAG_L3_DEV; /* Check if IPv6 packet. */ diff --git a/bpf/lib/common.h b/bpf/lib/common.h index ee4ff4c80ed39..49f96e1447fca 100644 --- a/bpf/lib/common.h +++ b/bpf/lib/common.h @@ -105,6 +105,8 @@ union v6addr { #define d2 d.d2 } __packed; +#define THIS_IS_L3_DEV (ETH_HLEN == 0) + static __always_inline bool validate_ethertype_l2_off(struct __ctx_buff *ctx, int l2_off, __u16 *proto) { @@ -113,7 +115,7 @@ static __always_inline bool validate_ethertype_l2_off(struct __ctx_buff *ctx, void *data = ctx_data(ctx); struct ethhdr *eth; - if (ETH_HLEN == 0) { + if (THIS_IS_L3_DEV) { /* The packet is received on L2-less device. Determine L3 * protocol from skb->protocol. */ diff --git a/bpf/lib/fib.h b/bpf/lib/fib.h index c03c7f23e3f11..822a7497e4ad3 100644 --- a/bpf/lib/fib.h +++ b/bpf/lib/fib.h @@ -33,7 +33,7 @@ maybe_add_l2_hdr(struct __ctx_buff *ctx __maybe_unused, * skip L2 addr settings. */ *l2_hdr_required = false; - } else if (ETH_HLEN == 0) { + } else if (THIS_IS_L3_DEV) { /* The packet is going to be redirected from L3 to L2 * device, so we need to create L2 header first. */ diff --git a/bpf/lib/icmp6.h b/bpf/lib/icmp6.h index dc45dd00fae0e..09190995e0eed 100644 --- a/bpf/lib/icmp6.h +++ b/bpf/lib/icmp6.h @@ -535,7 +535,7 @@ bool icmp6_ndisc_validate(struct __ctx_buff *ctx, const struct ipv6hdr *ip6, union macaddr *dmac; /* On l2-less devices there is no MAC address, and we cannot proceed */ - if (sizeof(struct ethhdr) != ETH_HLEN) + if (THIS_IS_L3_DEV) return false; if ((void *)eth + ETH_HLEN > ctx_data_end(ctx)) diff --git a/bpf/lib/nodeport.h b/bpf/lib/nodeport.h index bfe757bc578ed..27805b3768720 100644 --- a/bpf/lib/nodeport.h +++ b/bpf/lib/nodeport.h @@ -115,7 +115,7 @@ nodeport_add_tunnel_encap(struct __ctx_buff *ctx, __u32 src_ip, __be16 src_port, * Otherwise, the kernel will drop such request in * https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/net/core/filter.c?h=v6.7.4#n2147 */ - if (ETH_HLEN == 0) { + if (THIS_IS_L3_DEV) { int ret; ret = add_l2_hdr(ctx); @@ -148,7 +148,7 @@ nodeport_add_tunnel_encap_opt(struct __ctx_buff *ctx, __u32 src_ip, __be16 src_p * Otherwise, the kernel will drop such request in * https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/net/core/filter.c?h=v6.7.4#n2147 */ - if (ETH_HLEN == 0) { + if (THIS_IS_L3_DEV) { int ret; ret = add_l2_hdr(ctx); diff --git a/bpf/tests/classifiers_common.h b/bpf/tests/classifiers_common.h index 05b4c23e0d536..b634d547283b7 100644 --- a/bpf/tests/classifiers_common.h +++ b/bpf/tests/classifiers_common.h @@ -44,7 +44,7 @@ ASSIGN_CONFIG(__u32, trace_payload_len_overlay, 20UL); static __always_inline void adjust_l2(struct __ctx_buff *ctx) { - if (ETH_HLEN != 0) + if (!THIS_IS_L3_DEV) return; void *data = (void *)(long)ctx->data; From 77a41c6a1c5c3d9d869fb7067860e1e001970b88 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 18 Sep 2025 11:18:35 +0300 Subject: [PATCH 108/176] bpf: host: simplify logic for BPF Host Routing on L3 device Adding a L2 header prior to the BPF redirect is only needed if the current device is a L3 interface. Move the corresponding check all the way to the top. While at it also clean up the comment, cilium_wg0 is now handled by bpf_wireguard. Signed-off-by: Julian Wiedmann --- bpf/bpf_host.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 5bd70fdede57d..7f13506b99d25 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -347,14 +347,14 @@ handle_ipv6_cont(struct __ctx_buff *ctx, __u32 secctx, const bool from_host, return CTX_ACT_OK; #ifdef ENABLE_HOST_ROUTING - /* add L2 header for L2-less interface, such as cilium_wg0 */ - if (!from_host) { + /* add L2 header for L2-less interface: */ + if (!from_host && THIS_IS_L3_DEV) { bool l2_hdr_required = true; ret = maybe_add_l2_hdr(ctx, ep->ifindex, &l2_hdr_required); if (ret != 0) return ret; - if (l2_hdr_required && THIS_IS_L3_DEV) { + if (l2_hdr_required) { /* l2 header is added */ l3_off += __ETH_HLEN; } @@ -756,14 +756,14 @@ handle_ipv4_cont(struct __ctx_buff *ctx, __u32 secctx, const bool from_host, return CTX_ACT_OK; #ifdef ENABLE_HOST_ROUTING - /* add L2 header for L2-less interface, such as cilium_wg0 */ - if (!from_host) { + /* add L2 header for L2-less interface: */ + if (!from_host && THIS_IS_L3_DEV) { bool l2_hdr_required = true; ret = maybe_add_l2_hdr(ctx, ep->ifindex, &l2_hdr_required); if (ret != 0) return ret; - if (l2_hdr_required && THIS_IS_L3_DEV) { + if (l2_hdr_required) { /* l2 header is added */ l3_off += __ETH_HLEN; if (!____revalidate_data_pull(ctx, &data, &data_end, From 3c3b908dcbd458c0b60d0423964332a2f786688b Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 18 Sep 2025 11:20:31 +0300 Subject: [PATCH 109/176] bpf: wireguard: don't revalidate IPv6 header after pushing L2 header This revalidation is only required in the IPv4 path, while ipv6_local_delivery() doesn't take an `ip6` parameter. Signed-off-by: Julian Wiedmann --- bpf/bpf_wireguard.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/bpf/bpf_wireguard.c b/bpf/bpf_wireguard.c index 63efdc953519f..b6bc587c782f7 100644 --- a/bpf/bpf_wireguard.c +++ b/bpf/bpf_wireguard.c @@ -104,13 +104,8 @@ handle_ipv6(struct __ctx_buff *ctx, __u32 identity, __s8 *ext_err __maybe_unused ret = maybe_add_l2_hdr(ctx, ep->ifindex, &l2_hdr_required); if (ret != 0) return ret; - if (l2_hdr_required) { + if (l2_hdr_required) l3_off += __ETH_HLEN; - if (!____revalidate_data_pull(ctx, &data, &data_end, - (void **)&ip6, sizeof(*ip6), - false, l3_off)) - return DROP_INVALID; - } #endif return ipv6_local_delivery(ctx, l3_off, identity, MARK_MAGIC_IDENTITY, ep, From 621032c22d9e6668e7943a288d70217a3253af5d Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Thu, 18 Sep 2025 11:21:32 +0300 Subject: [PATCH 110/176] bpf: host: skip L2 announcement on L3 device Lift the "is L3 device?" check up into handle_l2_announcement(), so that it also covers the IPv4 case. Signed-off-by: Julian Wiedmann --- bpf/bpf_host.c | 4 ++++ bpf/lib/icmp6.h | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 7f13506b99d25..71dcc81b88d8d 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -987,6 +987,10 @@ int handle_l2_announcement(struct __ctx_buff *ctx, struct ipv6hdr *ip6) int ret; __u64 time; + /* Announcing L2 addresses for a L3 device makes no sense: */ + if (THIS_IS_L3_DEV) + return CTX_ACT_OK; + time = config_get(RUNTIME_CONFIG_AGENT_LIVENESS); if (!time) return CTX_ACT_OK; diff --git a/bpf/lib/icmp6.h b/bpf/lib/icmp6.h index 09190995e0eed..25e870613b915 100644 --- a/bpf/lib/icmp6.h +++ b/bpf/lib/icmp6.h @@ -534,10 +534,6 @@ bool icmp6_ndisc_validate(struct __ctx_buff *ctx, const struct ipv6hdr *ip6, struct ethhdr *eth = ctx_data(ctx); union macaddr *dmac; - /* On l2-less devices there is no MAC address, and we cannot proceed */ - if (THIS_IS_L3_DEV) - return false; - if ((void *)eth + ETH_HLEN > ctx_data_end(ctx)) return false; From 6f2e1f0af43b4eb4e4d6e7f821f6a85f358bfc5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Thu, 18 Sep 2025 16:29:22 +0200 Subject: [PATCH 111/176] .github/workflows: remove reviewers requested by auto-committer[bot] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The auto-committer[bot] triggers review requests when it builds and pushes the images into the PR. To prevent more notification noise for those reviewers, and if the ciliumbot is going to approve the PR, we should remove the reviewers from that PR automatically. Signed-off-by: André Martins --- .github/workflows/auto-approve.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-approve.yaml b/.github/workflows/auto-approve.yaml index f2e72af2ba529..b641c0357541e 100644 --- a/.github/workflows/auto-approve.yaml +++ b/.github/workflows/auto-approve.yaml @@ -12,7 +12,8 @@ jobs: runs-on: ubuntu-24.04 if: ${{ github.event.pull_request.user.login == 'cilium-renovate[bot]' && - github.triggering_actor == 'cilium-renovate[bot]' && + (github.triggering_actor == 'cilium-renovate[bot]' || + github.triggering_actor == 'auto-committer[bot]') && github.event.requested_reviewer.login == 'ciliumbot' }} steps: @@ -36,12 +37,13 @@ jobs: - name: Approve PR # Approve the PR if all the following conditions are true: - # - the PR review was requested by renovate bot and - # - the PR was also created by renovate bot + # - the PR was created by renovate bot and + # - the PR review was requested by renovate bot or auto-committer[bot] and # - the requested reviewer was the trusted 'ciliumbot' if: ${{ github.event.pull_request.user.login == 'cilium-renovate[bot]' && - github.triggering_actor == 'cilium-renovate[bot]' && + (github.triggering_actor == 'cilium-renovate[bot]' || + github.triggering_actor == 'auto-committer[bot]') && github.event.requested_reviewer.login == 'ciliumbot' }} env: From 078624ff4650ab0d64bfc6b954f3066cabe2f581 Mon Sep 17 00:00:00 2001 From: Tom Hadlaw Date: Fri, 8 Aug 2025 16:02:30 -0700 Subject: [PATCH 112/176] operator: manually register certwatcher metrics. These where previously included in the operator metrics by virtue of the global registry having them registered via the k8s controller runtime library. Following 89f3a4317a98f4a577da337cd303e90695cab771 we don't rely on the global registry anymore and instead use one provided via hive. This broke this metrics from being picked up by gather. Instead we will now register this manually. Signed-off-by: Tom Hadlaw --- operator/metrics/metrics.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/operator/metrics/metrics.go b/operator/metrics/metrics.go index 4f9d5b4259f7a..94f6e5362a28f 100644 --- a/operator/metrics/metrics.go +++ b/operator/metrics/metrics.go @@ -10,6 +10,7 @@ import ( "github.com/cilium/hive/cell" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/collectors" + k8sCtrlMetrics "sigs.k8s.io/controller-runtime/pkg/certwatcher/metrics" "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/metrics" @@ -71,6 +72,9 @@ func initializeMetrics(p params) { metrics.WorkQueueRetries, ) + p.Registry.Register(k8sCtrlMetrics.ReadCertificateTotal) + p.Registry.Register(k8sCtrlMetrics.ReadCertificateErrors) + metrics.InitOperatorMetrics() p.Registry.MustRegister(metrics.ErrorsWarnings) metrics.FlushLoggingMetrics() From 262db0d81bf7684aa93847d17947d6c0cb986b2f Mon Sep 17 00:00:00 2001 From: Antony Reynaud Date: Fri, 19 Sep 2025 11:14:13 +0200 Subject: [PATCH 113/176] ci: bump libtinfo to v6 for ci-integration Signed-off-by: Antony Reynaud --- .github/workflows/integration-test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml index 56af2a60f58f0..1a9a33cd2e922 100644 --- a/.github/workflows/integration-test.yaml +++ b/.github/workflows/integration-test.yaml @@ -100,7 +100,7 @@ jobs: if: ${{ startsWith(matrix.arch, 'ubuntu-latest') || startsWith(matrix.arch, 'ubuntu-24.04') }} shell: bash run: | - # This is required for libtinfo5 + # This is required for libtinfo6 uri="http://security.ubuntu.com/ubuntu" arch="amd64" if [ ${{ runner.arch }} == "ARM64" ]; then @@ -120,7 +120,7 @@ jobs: - name: Install Dependencies shell: bash run: | - sudo apt update && sudo apt install -y --no-install-recommends build-essential make libtinfo5 + sudo apt update && sudo apt install -y --no-install-recommends build-essential make libtinfo6 - name: Checkout context ref (trusted) uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From 587027df3c173e3b3e9b1b516cb93231482d127b Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Thu, 18 Sep 2025 15:54:29 +0200 Subject: [PATCH 114/176] endpointsynchronizer: suppress warning log when endpoint is terminating We sometimes see CI failures caused by warnings along the lines of: > msg="Error getting CEP" [...] error="Get \"https://10.245.0.1:443/apis/cilium.io/v2/namespaces/.../ciliumendpoints/...?resourceVersion=0\": context canceled" In case the get operation gets interrupted because the endpoint is terminating, and the controller's context gets canceled. Let's silence them, as completely legitimate, so that they don't get flagged causing failures. Signed-off-by: Marco Iorio --- pkg/endpointmanager/endpointsynchronizer.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/endpointmanager/endpointsynchronizer.go b/pkg/endpointmanager/endpointsynchronizer.go index da513aefd7400..9a72b7c819eb0 100644 --- a/pkg/endpointmanager/endpointsynchronizer.go +++ b/pkg/endpointmanager/endpointsynchronizer.go @@ -204,6 +204,11 @@ func (epSync *EndpointSynchronizer) RunK8sCiliumEndpointSync(e *endpoint.Endpoin // continue the execution so we update the endpoint // status immediately upon endpoint creation + + case errors.Is(err, context.Canceled): + // Do not log a warning in case of errors due to the + // endpoint being terminated. + return nil default: scopedLog.Warn("Error getting CEP", logfields.Error, err) return err From c8d05c91638051e63b2c5604270580978dc63da3 Mon Sep 17 00:00:00 2001 From: Yusho Yamaguchi Date: Sat, 6 Sep 2025 12:47:43 +0900 Subject: [PATCH 115/176] Move L3-csum updating before L4 processing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The calculation of the L3 checksum (IP checksum) does not depend on changes to the L4 header or payload, so it should be performed before processing the L4 header. The `snat_v4_rewrite_headers()` function also rewrites the headers of the inner packet contained in the payload of an ICMP error packet. https://github.com/cilium/cilium/issues/33844 https://github.com/cilium/cilium/pull/40194 As mentioned in above issue/PR, nodes that comply with the RFC1191 may send ICMP error packets where the inner packet’s TCP header is truncated and does not include the checksum. In such cases, the L4 checksum (in the TCP header) of the inner packet cannot be recalculated. In this case, `snat_v4_rewrite_headers()` returns an error by early-return, and the L3 checksum update is skipped, but the packets are not dropped by error handling by the code of above PR. (ref: https://github.com/cilium/cilium/commit/30a6dd2158aea24b9fbdd61438daefef2cf2786d) According to the RFC, if the inner packet’s IP header checksum is invalid, the packet should be dropped. ref: REQ3-a of https://datatracker.ietf.org/doc/html/rfc5508#section-4.1 To prevent this, this commit ensures that the L4 checksum update is always performed. Signed-off-by: Yusho Yamaguchi --- bpf/lib/nat.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bpf/lib/nat.h b/bpf/lib/nat.h index 863f7403bb960..eb1bb3c1e5a53 100644 --- a/bpf/lib/nat.h +++ b/bpf/lib/nat.h @@ -473,6 +473,10 @@ snat_v4_rewrite_headers(struct __ctx_buff *ctx, __u8 nexthdr, int l3_off, if (ctx_store_bytes(ctx, l3_off + addr_off, &new_addr, 4, 0) < 0) return DROP_WRITE_ERROR; + /* Amend the L3 checksum due to changing the addresses. */ + if (ipv4_csum_update_by_diff(ctx, l3_off, sum) < 0) + return DROP_CSUM_L3; + if (has_l4_header) { int flags = BPF_F_PSEUDO_HDR; struct csum_offset csum = {}; @@ -516,10 +520,6 @@ snat_v4_rewrite_headers(struct __ctx_buff *ctx, __u8 nexthdr, int l3_off, return DROP_CSUM_L4; } - /* Amend the L3 checksum due to changing the addresses. */ - if (ipv4_csum_update_by_diff(ctx, l3_off, sum) < 0) - return DROP_CSUM_L3; - return 0; } From 6888eafeaf3de636aad191d7b49d4dc910e0bd84 Mon Sep 17 00:00:00 2001 From: Nguyen Quang Minh Date: Thu, 3 Jul 2025 09:22:16 +0700 Subject: [PATCH 116/176] Add FPT Telecom to USERS Signed-off-by: Nguyen Quang Minh --- USERS.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/USERS.md b/USERS.md index f98d818327479..452d372d8cb60 100644 --- a/USERS.md +++ b/USERS.md @@ -331,6 +331,11 @@ Users (Alphabetically) U: Service load-balancing, Encryption, CNI, NetworkPolicies Q: @kevholditch-f3, samo-f3, ewilde-form3 + * N: FPT Telecom + D: FTEL uses Cilium as their CNI plugin to handle the massive CPE Management traffic to the backends + U: CNI, CiliumclusterWideNetworkPolicy, CiliumNetworkPolicy, Kube-Proxy Replacement, Hubble, Direct Routing, Egress Gateway, Service Load Balancing, L2 Announcement, BGP Advertisement + Q: @minhng99 + * N: FRSCA - Factory for Repeatable Secure Creation of Artifacts D: FRSCA is utilizing tetragon integrated with Tekton to create runtime attestation to attest artifact and builder attributes U: Runtime observability From 50bbaab6cdcff17c8f3c27ba4a601f1f54d262de Mon Sep 17 00:00:00 2001 From: Dimitar Kanaliev Date: Fri, 12 Sep 2025 11:27:40 +0300 Subject: [PATCH 117/176] docs: Update the bpf toolchain documentation to reflect repository changes The changes in question were introduced in https://lkml.org/lkml/2018/6/8/425 namely the removal of the net-next branch in iproute2, and moving towards an iproute2-next repository Signed-off-by: Dimitar Kanaliev --- Documentation/reference-guides/bpf/toolchain.rst | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Documentation/reference-guides/bpf/toolchain.rst b/Documentation/reference-guides/bpf/toolchain.rst index 9cfd117aab526..bd199b7c6cdd1 100644 --- a/Documentation/reference-guides/bpf/toolchain.rst +++ b/Documentation/reference-guides/bpf/toolchain.rst @@ -151,24 +151,22 @@ Compiling iproute2 `````````````````` Similar to the ``net`` (fixes only) and ``net-next`` (new features) kernel trees, -the iproute2 git tree has two branches, namely ``master`` and ``net-next``. The -``master`` branch is based on the ``net`` tree and the ``net-next`` branch is -based against the ``net-next`` kernel tree. This is necessary, so that changes -in header files can be synchronized in the iproute2 tree. +iproute2 is split into two separate trees, namely ``iproute`` and ``iproute2-next``. +The ``iproute2`` repository is based on the ``net`` tree and the ``iproute2-next`` +repository is based against the ``net-next`` kernel tree. This is necessary, +so that changes in header files can be synchronized in the iproute2 tree. -In order to clone the iproute2 ``master`` branch, the following command can -be used: +To clone the stable ``iproute2`` repository: .. code-block:: shell-session $ git clone https://git.kernel.org/pub/scm/network/iproute2/iproute2.git -Similarly, to clone into mentioned ``net-next`` branch of iproute2, run the -following: +Similarly, to clone the mentioned development ``iproute2-next`` tree: .. code-block:: shell-session - $ git clone -b net-next https://git.kernel.org/pub/scm/network/iproute2/iproute2.git + $ git clone https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git After that, proceed with the build and installation: From dde7c58cc21aa843ed3ea7b6fa71f3e2bf258b18 Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Thu, 14 Aug 2025 13:55:32 -0400 Subject: [PATCH 118/176] hubble: Fix non-accurate event count debug log in observer Don't increment the event counter until we know that the event type we are looking for has been type-cheked. Signed-off-by: Alexandre Barone --- pkg/hubble/observer/local_observer.go | 79 +++++++++++++-------------- 1 file changed, 38 insertions(+), 41 deletions(-) diff --git a/pkg/hubble/observer/local_observer.go b/pkg/hubble/observer/local_observer.go index 3b669acabb9f7..b43d7e46b1e96 100644 --- a/pkg/hubble/observer/local_observer.go +++ b/pkg/hubble/observer/local_observer.go @@ -289,20 +289,6 @@ func (s *LocalObserverServer) GetFlows( start := time.Now() ring := s.GetRingBuffer() - i := uint64(0) - if log.Enabled(context.Background(), slog.LevelDebug) { - defer func() { - log.Debug( - "GetFlows finished", - logfields.NumberOfFlows, i, - logfields.BufferSize, ring.Cap(), - logfields.Whitelist, logFilters(req.Whitelist), - logfields.Blacklist, logFilters(req.Blacklist), - logfields.Took, time.Since(start), - ) - }() - } - ringReader, err := newRingReader(ring, req, whitelist, blacklist) if err != nil { if errors.Is(err, io.EOF) { @@ -316,6 +302,19 @@ func (s *LocalObserverServer) GetFlows( return err } + if log.Enabled(context.Background(), slog.LevelDebug) { + defer func() { + log.Debug( + "GetFlows finished", + logfields.NumberOfFlows, eventsReader.eventCount, + logfields.BufferSize, ring.Cap(), + logfields.Whitelist, logFilters(req.Whitelist), + logfields.Blacklist, logFilters(req.Blacklist), + logfields.Took, time.Since(start), + ) + }() + } + fm := req.GetFieldMask() mask, err := fieldmask.New(fm) if err != nil { @@ -329,7 +328,7 @@ func (s *LocalObserverServer) GetFlows( } nextEvent: - for ; ; i++ { + for { e, err := eventsReader.Next(ctx) if err != nil { if errors.Is(err, io.EOF) { @@ -408,18 +407,6 @@ func (s *LocalObserverServer) GetAgentEvents( log := s.GetLogger() ring := s.GetRingBuffer() - i := uint64(0) - if log.Enabled(context.Background(), slog.LevelDebug) { - defer func() { - log.Debug( - "GetAgentEvents finished", - logfields.NumberOfAgentEvents, i, - logfields.BufferSize, ring.Cap(), - logfields.Took, time.Since(start), - ) - }() - } - ringReader, err := newRingReader(ring, req, whitelist, blacklist) if err != nil { if errors.Is(err, io.EOF) { @@ -433,7 +420,18 @@ func (s *LocalObserverServer) GetAgentEvents( return err } - for ; ; i++ { + if log.Enabled(context.Background(), slog.LevelDebug) { + defer func() { + log.Debug( + "GetAgentEvents finished", + logfields.NumberOfAgentEvents, eventsReader.eventCount, + logfields.BufferSize, ring.Cap(), + logfields.Took, time.Since(start), + ) + }() + } + + for { e, err := eventsReader.Next(ctx) if err != nil { if errors.Is(err, io.EOF) { @@ -476,18 +474,6 @@ func (s *LocalObserverServer) GetDebugEvents( log := s.GetLogger() ring := s.GetRingBuffer() - i := uint64(0) - if log.Enabled(context.Background(), slog.LevelDebug) { - defer func() { - log.Debug( - "GetDebugEvents finished", - logfields.NumberOfDebugEvents, i, - logfields.BufferSize, ring.Cap(), - logfields.Took, time.Since(start), - ) - }() - } - ringReader, err := newRingReader(ring, req, whitelist, blacklist) if err != nil { if errors.Is(err, io.EOF) { @@ -501,7 +487,18 @@ func (s *LocalObserverServer) GetDebugEvents( return err } - for ; ; i++ { + if log.Enabled(context.Background(), slog.LevelDebug) { + defer func() { + log.Debug( + "GetDebugEvents finished", + logfields.NumberOfDebugEvents, eventsReader.eventCount, + logfields.BufferSize, ring.Cap(), + logfields.Took, time.Since(start), + ) + }() + } + + for { e, err := eventsReader.Next(ctx) if err != nil { if errors.Is(err, io.EOF) { From 07039f3294dd3470ee25cf878976fada371efbd9 Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Mon, 18 Aug 2025 13:06:56 -0400 Subject: [PATCH 119/176] counter: Add RangeCounter and IntervalRangeCounter RangeCounter keeps a count and a time range of observed increments. IntervalRangeCounter is a specialized RangeCounter that is configured with an interval and can be asked whether it is elapsed based on the First time of the range. Signed-off-by: Alexandre Barone --- pkg/counter/range.go | 74 +++++++++++++++++++++++++++++++++++++++ pkg/counter/range_test.go | 64 +++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 pkg/counter/range.go create mode 100644 pkg/counter/range_test.go diff --git a/pkg/counter/range.go b/pkg/counter/range.go new file mode 100644 index 0000000000000..42a5f3a5d2bc4 --- /dev/null +++ b/pkg/counter/range.go @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package counter + +import ( + "github.com/cilium/cilium/pkg/time" +) + +// RangeCount represents a monotonically increasing count along with the first and last time it was +// incremented. +type RangeCount struct { + Count uint64 + First time.Time + Last time.Time +} + +// RangeCounter is a simple counter that tracks a count and a time interval. +type RangeCounter struct { + count RangeCount +} + +// NewRangeCounter creates a new RangeCounter. +func NewRangeCounter() *RangeCounter { + return &RangeCounter{} +} + +// Increment increments the counter and updates the time range. +func (c *RangeCounter) Increment(now time.Time) { + if c.count.Count == 0 || c.count.First.After(now) { + c.count.First = now + } + if c.count.Count == 0 || c.count.Last.Before(now) { + c.count.Last = now + } + c.count.Count++ +} + +// Peek returns the current count. +func (c *RangeCounter) Peek() RangeCount { + return c.count +} + +// Clear clears the counter and returns the existing count. +func (c *RangeCounter) Clear() RangeCount { + count := c.count + c.count = RangeCount{} + return count +} + +// IntervalRangeCounter is a specialized RangeCounter that provides a IsElapsed() method to check if +// the time interval has elapsed since the first increment. +type IntervalRangeCounter struct { + RangeCounter + interval time.Duration +} + +// NewIntervalRangeCounter creates a new IntervalRangeCounter with the specified interval. +func NewIntervalRangeCounter(interval time.Duration) *IntervalRangeCounter { + return &IntervalRangeCounter{ + RangeCounter: RangeCounter{}, + interval: interval, + } +} + +// IsElapsed checks if the duration since the first increment until now exceeds the configured +// interval. It always returns false when the counter is empty as a "start time" is required as base +// to compute the interval. +func (c *IntervalRangeCounter) IsElapsed(now time.Time) bool { + if c.count.Count == 0 { + return false + } + return now.Sub(c.count.First) >= c.interval +} diff --git a/pkg/counter/range_test.go b/pkg/counter/range_test.go new file mode 100644 index 0000000000000..9957b7fd9ca64 --- /dev/null +++ b/pkg/counter/range_test.go @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package counter + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestRangeCounter(t *testing.T) { + now := time.Now() + earlier := now.Add(-1 * time.Second) + later := now.Add(1 * time.Second) + + counter := NewRangeCounter() + require.NotNil(t, counter, "Expected counter to be initialized") + + counter.Increment(now) + require.Equal(t, uint64(1), counter.count.Count, "Expected count to be 1") + require.Equal(t, now, counter.count.First, "Expected first time to be now") + require.Equal(t, now, counter.count.Last, "Expected last time to be now") + + counter.Increment(later) + require.Equal(t, uint64(2), counter.count.Count, "Expected count to be 2") + require.Equal(t, now, counter.count.First, "Expected first time to be now") + require.Equal(t, later, counter.count.Last, "Expected last time to be now + 1s") + + count := counter.Clear() + require.Equal(t, uint64(2), count.Count, "Expected cleared count to be 2") + require.Equal(t, now, count.First, "Expected cleared first time to be now") + require.Equal(t, now.Add(1*time.Second), count.Last, "Expected cleared last time to be now + 1s") + + count = counter.Clear() + require.Equal(t, uint64(0), count.Count, "Expected second cleared count to be 0") + require.Equal(t, time.Time{}, count.First, "Expected second cleared first time to be zero") + require.Equal(t, time.Time{}, count.Last, "Expected second cleared last time to be zero") + + counter.Increment(now) + counter.Increment(earlier) + counter.Increment(later) + require.Equal(t, uint64(3), counter.count.Count, "Expected count to be 3 after increments") + require.Equal(t, earlier, counter.count.First, "Expected first time to be earlier") + require.Equal(t, later, counter.count.Last, "Expected last time to be later") +} + +func TestIntervalRangeCounter(t *testing.T) { + interval := 2 * time.Second + now := time.Now() + + counter := NewIntervalRangeCounter(interval) + require.NotNil(t, counter, "Expected counter to be initialized") + + require.False(t, counter.IsElapsed(now.Add(-2*interval)), "Expected IsElapsed to return false when count is not incremented") + require.False(t, counter.IsElapsed(now), "Expected IsElapsed to return false when count is not incremented") + require.False(t, counter.IsElapsed(now.Add(2*interval)), "Expected IsElapsed to return false when count is not incremented") + + counter.Increment(now) + require.False(t, counter.IsElapsed(now.Add(-2*interval)), "Expected IsElapsed to return false when first time is in the future") + require.False(t, counter.IsElapsed(now), "Expected IsElapsed to return false when first time is now") + require.True(t, counter.IsElapsed(now.Add(2*interval)), "Expected IsElapsed to return true when first time is past the interval") +} From f1a62272cbfe3d336e93da867e2c6acb521a371a Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Thu, 14 Aug 2025 17:19:58 -0400 Subject: [PATCH 120/176] hubble: Rate-limit lost events sent from Observer server Setup an IntervalRangeCounter in LocalObserver GetFlows endpoint handler to accumulate a count and a time range for ring buffer lost events. Before attempting to read an event from the ring buffer, check to see if the lost event interval has elapsed, and if we have a positive count, send a lost event. Signed-off-by: Alexandre Barone --- Documentation/cmdref/cilium-agent.md | 1 + Documentation/cmdref/cilium-agent_hive.md | 1 + .../cmdref/cilium-agent_hive_dot-graph.md | 1 + .../cilium/templates/cilium-configmap.yaml | 4 ++ install/kubernetes/cilium/values.yaml | 3 + install/kubernetes/cilium/values.yaml.tmpl | 7 ++- pkg/hubble/cell/config.go | 12 +++- pkg/hubble/cell/hubbleintegration.go | 1 + pkg/hubble/defaults/defaults.go | 11 +++- pkg/hubble/monitor/consumer.go | 17 +++-- pkg/hubble/observer/local_observer.go | 62 ++++++++++++++++--- pkg/hubble/observer/observeroption/option.go | 18 +++++- 12 files changed, 112 insertions(+), 26 deletions(-) diff --git a/Documentation/cmdref/cilium-agent.md b/Documentation/cmdref/cilium-agent.md index e26085321a83a..0a748efe3dcde 100644 --- a/Documentation/cmdref/cilium-agent.md +++ b/Documentation/cmdref/cilium-agent.md @@ -232,6 +232,7 @@ cilium-agent [flags] --hubble-export-file-path stdout Filepath to write Hubble events to. By specifying stdout the flows are logged instead of written to a rotated file. --hubble-flowlogs-config-path string Filepath with configuration of hubble flowlogs --hubble-listen-address string An additional address for Hubble server to listen to, e.g. ":4244" + --hubble-lost-event-send-interval duration Interval at which lost events are sent from the Observer server, if any. (default 1s) --hubble-metrics string List of Hubble metrics to enable. --hubble-metrics-server string Address to serve Hubble metrics on. --hubble-metrics-server-enable-tls Run the Hubble metrics server on the given listen address with TLS. diff --git a/Documentation/cmdref/cilium-agent_hive.md b/Documentation/cmdref/cilium-agent_hive.md index b0d8b1065d794..5654e4b0fd5e9 100644 --- a/Documentation/cmdref/cilium-agent_hive.md +++ b/Documentation/cmdref/cilium-agent_hive.md @@ -127,6 +127,7 @@ cilium-agent hive [flags] --hubble-export-file-path stdout Filepath to write Hubble events to. By specifying stdout the flows are logged instead of written to a rotated file. --hubble-flowlogs-config-path string Filepath with configuration of hubble flowlogs --hubble-listen-address string An additional address for Hubble server to listen to, e.g. ":4244" + --hubble-lost-event-send-interval duration Interval at which lost events are sent from the Observer server, if any. (default 1s) --hubble-metrics string List of Hubble metrics to enable. --hubble-metrics-server string Address to serve Hubble metrics on. --hubble-metrics-server-enable-tls Run the Hubble metrics server on the given listen address with TLS. diff --git a/Documentation/cmdref/cilium-agent_hive_dot-graph.md b/Documentation/cmdref/cilium-agent_hive_dot-graph.md index 99863dbd3577c..bce945fe0965d 100644 --- a/Documentation/cmdref/cilium-agent_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-agent_hive_dot-graph.md @@ -132,6 +132,7 @@ cilium-agent hive dot-graph [flags] --hubble-export-file-path stdout Filepath to write Hubble events to. By specifying stdout the flows are logged instead of written to a rotated file. --hubble-flowlogs-config-path string Filepath with configuration of hubble flowlogs --hubble-listen-address string An additional address for Hubble server to listen to, e.g. ":4244" + --hubble-lost-event-send-interval duration Interval at which lost events are sent from the Observer server, if any. (default 1s) --hubble-metrics string List of Hubble metrics to enable. --hubble-metrics-server string Address to serve Hubble metrics on. --hubble-metrics-server-enable-tls Run the Hubble metrics server on the given listen address with TLS. diff --git a/install/kubernetes/cilium/templates/cilium-configmap.yaml b/install/kubernetes/cilium/templates/cilium-configmap.yaml index 7453b8f5e541e..cec078b2ed7b5 100644 --- a/install/kubernetes/cilium/templates/cilium-configmap.yaml +++ b/install/kubernetes/cilium/templates/cilium-configmap.yaml @@ -968,6 +968,10 @@ data: # Capacity of the buffer to store recent events. hubble-event-buffer-capacity: {{ .Values.hubble.eventBufferCapacity | quote }} {{- end }} +{{- if hasKey .Values.hubble "lostEventSendInterval" }} + # Interval to send lost events from Observer server. + hubble-lost-event-send-interval: {{ include "validateDuration" .Values.hubble.lostEventSendInterval | quote }} +{{- end }} {{- if or .Values.hubble.metrics.enabled .Values.hubble.metrics.dynamic.enabled}} # Address to expose Hubble metrics (e.g. ":7070"). Metrics server will be disabled if this # field is not set. diff --git a/install/kubernetes/cilium/values.yaml b/install/kubernetes/cilium/values.yaml index 8ceab16ed7b6f..3a5b7203f75a8 100644 --- a/install/kubernetes/cilium/values.yaml +++ b/install/kubernetes/cilium/values.yaml @@ -1225,6 +1225,9 @@ hubble: # 2047, 4095, 8191, 16383, 32767, 65535 # eventBufferCapacity: "4095" + # -- The interval at which Hubble will send out lost events from the Observer server, if any. + # lostEventSendInterval: 1s + # -- Hubble metrics configuration. # See https://docs.cilium.io/en/stable/observability/metrics/#hubble-metrics # for more comprehensive documentation about Hubble metrics. diff --git a/install/kubernetes/cilium/values.yaml.tmpl b/install/kubernetes/cilium/values.yaml.tmpl index 1f329c19503bc..07dbfda0bc45c 100644 --- a/install/kubernetes/cilium/values.yaml.tmpl +++ b/install/kubernetes/cilium/values.yaml.tmpl @@ -1235,6 +1235,9 @@ hubble: # 2047, 4095, 8191, 16383, 32767, 65535 # eventBufferCapacity: "4095" + # -- The interval at which Hubble will send out lost events from the Observer server, if any. + # lostEventSendInterval: 1s + # -- Hubble metrics configuration. # See https://docs.cilium.io/en/stable/observability/metrics/#hubble-metrics # for more comprehensive documentation about Hubble metrics. @@ -2159,7 +2162,7 @@ localRedirectPolicy: false localRedirectPolicies: # -- Enable local redirect policies. enabled: false - + # -- Limit the allowed addresses in Address Matcher rule of # Local Redirect Policies to the given CIDRs. # @schema@ @@ -2935,7 +2938,7 @@ operator: # @schema # type: [null, array] # @schema - tolerations: + tolerations: - key: "node-role.kubernetes.io/control-plane" operator: Exists - key: "node-role.kubernetes.io/master" #deprecated diff --git a/pkg/hubble/cell/config.go b/pkg/hubble/cell/config.go index c56fd27f380e1..617c60c55491f 100644 --- a/pkg/hubble/cell/config.go +++ b/pkg/hubble/cell/config.go @@ -14,6 +14,7 @@ import ( hubbleDefaults "github.com/cilium/cilium/pkg/hubble/defaults" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" monitorAPI "github.com/cilium/cilium/pkg/monitor/api" + "github.com/cilium/cilium/pkg/time" ) type config struct { @@ -28,6 +29,9 @@ type config struct { // MonitorEvents specifies Cilium monitor events for Hubble to observe. By // default, Hubble observes all monitor events. MonitorEvents []string `mapstructure:"hubble-monitor-events"` + // LostEventSendInterval specifies the interval at which lost events are + // sent from the Observer server, if any. + LostEventSendInterval time.Duration `mapstructure:"hubble-lost-event-send-interval"` // SocketPath specifies the UNIX domain socket for Hubble server to listen // to. @@ -43,9 +47,10 @@ type config struct { var defaultConfig = config{ EnableHubble: false, // Hubble internals (parser, ringbuffer) configuration - EventBufferCapacity: observeroption.Default.MaxFlows.AsInt(), - EventQueueSize: 0, // see getDefaultMonitorQueueSize() - MonitorEvents: []string{}, + EventBufferCapacity: observeroption.Default.MaxFlows.AsInt(), + EventQueueSize: 0, // see getDefaultMonitorQueueSize() + MonitorEvents: []string{}, + LostEventSendInterval: hubbleDefaults.LostEventSendInterval, // Hubble local server configuration SocketPath: hubbleDefaults.SocketPath, // Hubble TCP server configuration @@ -64,6 +69,7 @@ func (def config) Flags(flags *pflag.FlagSet) { strings.Join(monitorAPI.AllMessageTypeNames(), " "), ), ) + flags.Duration("hubble-lost-event-send-interval", def.LostEventSendInterval, "Interval at which lost events are sent from the Observer server, if any.") // Hubble local server configuration flags.String("hubble-socket-path", def.SocketPath, "Set hubble's socket path to listen for connections") // Hubble TCP server configuration diff --git a/pkg/hubble/cell/hubbleintegration.go b/pkg/hubble/cell/hubbleintegration.go index bf10cb5e522ec..72b550b7042c1 100644 --- a/pkg/hubble/cell/hubbleintegration.go +++ b/pkg/hubble/cell/hubbleintegration.go @@ -243,6 +243,7 @@ func (h *hubbleIntegration) launch(ctx context.Context) (*observer.LocalObserver observerOpts = append(observerOpts, observeroption.WithMaxFlows(maxFlows), observeroption.WithMonitorBuffer(h.config.EventQueueSize), + observeroption.WithLostEventSendInterval(h.config.LostEventSendInterval), ) // register exporters diff --git a/pkg/hubble/defaults/defaults.go b/pkg/hubble/defaults/defaults.go index fc6022001749a..853904d3573cd 100644 --- a/pkg/hubble/defaults/defaults.go +++ b/pkg/hubble/defaults/defaults.go @@ -3,7 +3,11 @@ package defaults -import ciliumDefaults "github.com/cilium/cilium/pkg/defaults" +import ( + "time" + + ciliumDefaults "github.com/cilium/cilium/pkg/defaults" +) const ( // ServerPort is the default port for hubble server when a provided @@ -30,4 +34,9 @@ const ( // SocketPath is the path to the UNIX domain socket exposing the Hubble API // to clients locally. SocketPath = ciliumDefaults.RuntimePath + "/hubble.sock" + + // LostEventSendInterval is the default interval at which lost events are sent + // from the Observer server, if any. The default of 1s matches Hubble + // Relay's SortBufferDrainTimeout. + LostEventSendInterval = 1 * time.Second ) diff --git a/pkg/hubble/monitor/consumer.go b/pkg/hubble/monitor/consumer.go index 2d9b82a388687..d0045a5784150 100644 --- a/pkg/hubble/monitor/consumer.go +++ b/pkg/hubble/monitor/consumer.go @@ -29,12 +29,12 @@ type Observer interface { // consumer implements monitorConsumer.MonitorConsumer type consumer struct { - uuider *bufuuid.Generator - observer Observer - numEventsLost uint64 - lostLock lock.Mutex - logLimiter logging.Limiter + uuider *bufuuid.Generator + observer Observer + lostLock lock.Mutex + numEventsLost uint64 + logLimiter logging.Limiter cachedLostNotification *observerTypes.MonitorEvent metricLostPerfEvents prometheus.Counter @@ -44,10 +44,9 @@ type consumer struct { // NewConsumer returns an initialized pointer to consumer. func NewConsumer(observer Observer) monitorConsumer.MonitorConsumer { mc := &consumer{ - uuider: bufuuid.New(), - observer: observer, - numEventsLost: 0, - logLimiter: logging.NewLimiter(30*time.Second, 1), + uuider: bufuuid.New(), + observer: observer, + logLimiter: logging.NewLimiter(30*time.Second, 1), metricLostPerfEvents: metrics.LostEvents.WithLabelValues( strings.ToLower(flowpb.LostEventSource_PERF_EVENT_RING_BUFFER.String())), diff --git a/pkg/hubble/observer/local_observer.go b/pkg/hubble/observer/local_observer.go index b43d7e46b1e96..8fc998741eb05 100644 --- a/pkg/hubble/observer/local_observer.go +++ b/pkg/hubble/observer/local_observer.go @@ -18,6 +18,7 @@ import ( flowpb "github.com/cilium/cilium/api/v1/flow" observerpb "github.com/cilium/cilium/api/v1/observer" + "github.com/cilium/cilium/pkg/counter" v1 "github.com/cilium/cilium/pkg/hubble/api/v1" "github.com/cilium/cilium/pkg/hubble/build" "github.com/cilium/cilium/pkg/hubble/container" @@ -327,8 +328,34 @@ func (s *LocalObserverServer) GetFlows( mask.Alloc(flow.ProtoReflect()) } + // Setup a counter to rate-limit sending lost events to at most + // once every s.opts.LostEventSendInterval. + lostEventCounter := counter.NewIntervalRangeCounter(s.opts.LostEventSendInterval) + nextEvent: for { + now := time.Now() + + if lostEventCounter.IsElapsed(now) { + // IsElapsed always returns false if the counter is empty, therefore + // we can trust that count is non-zero. + count := lostEventCounter.Clear() + resp := &observerpb.GetFlowsResponse{ + Time: timestamppb.New(now), + NodeName: nodeTypes.GetAbsoluteNodeName(), + ResponseTypes: &observerpb.GetFlowsResponse_LostEvents{ + LostEvents: &flowpb.LostEvent{ + Source: flowpb.LostEventSource_HUBBLE_RING_BUFFER, + NumEventsLost: count.Count, + // TODO: add timestamp range to LostEvent + }, + }, + } + if err = server.Send(resp); err != nil { + return err + } + } + e, err := eventsReader.Next(ctx) if err != nil { if errors.Is(err, io.EOF) { @@ -369,12 +396,21 @@ nextEvent: // when a query asks for 20 events, then lost events should not be // accounted for as they are not events per se but an indication // that some event was lost). - resp = &observerpb.GetFlowsResponse{ - Time: e.Timestamp, - NodeName: nodeTypes.GetAbsoluteNodeName(), - ResponseTypes: &observerpb.GetFlowsResponse_LostEvents{ - LostEvents: ev, - }, + + // We only want to rate-limit lost events that originate from the + // Hubble ring buffer. Other lost events should be rate-limited closer to + // the emitting source, if needed. + switch ev.Source { + case flowpb.LostEventSource_HUBBLE_RING_BUFFER: + lostEventCounter.Increment(now) + default: + resp = &observerpb.GetFlowsResponse{ + Time: e.Timestamp, + NodeName: nodeTypes.GetAbsoluteNodeName(), + ResponseTypes: &observerpb.GetFlowsResponse_LostEvents{ + LostEvents: ev, + }, + } } } @@ -547,15 +583,23 @@ var ( _ genericRequest = (*observerpb.GetDebugEventsRequest)(nil) ) -// eventsReader reads flows using a RingReader. It applies the GetFlows request +// eventsReader reads events using a RingReader. It applies the request // criteria (blacklist, whitelist, follow, ...) before returning events. type eventsReader struct { - ringReader *container.RingReader + ringReader *container.RingReader + + // request criteria whitelist, blacklist filters.FilterFuncs maxEvents uint64 follow, timeRange bool - eventCount uint64 since, until *time.Time + + // eventCount is updated by the reader user to keep track of how many + // successful reads happened. This is because the reader does not know + // the underlying Event type the user is looking for. When maxEvents is + // non-zero, we use this counter to infer when the limit is reached from + // Next() and return io.EOF. + eventCount uint64 } // newEventsReader creates a new eventsReader that uses the given RingReader to diff --git a/pkg/hubble/observer/observeroption/option.go b/pkg/hubble/observer/observeroption/option.go index 022f52839f959..064ef9a02fd3e 100644 --- a/pkg/hubble/observer/observeroption/option.go +++ b/pkg/hubble/observer/observeroption/option.go @@ -5,6 +5,7 @@ package observeroption import ( "context" + "errors" "log/slog" pb "github.com/cilium/cilium/api/v1/flow" @@ -13,6 +14,7 @@ import ( "github.com/cilium/cilium/pkg/hubble/container" "github.com/cilium/cilium/pkg/hubble/filters" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" + "github.com/cilium/cilium/pkg/time" ) // Server gives access to the Hubble server @@ -23,8 +25,9 @@ type Server interface { // Options stores all the configurations values for the hubble server. type Options struct { - MaxFlows container.Capacity // max number of flows that can be stored in the ring buffer - MonitorBuffer int // buffer size for monitor payload + MaxFlows container.Capacity // max number of flows that can be stored in the ring buffer + MonitorBuffer int // buffer size for monitor payload + LostEventSendInterval time.Duration // interval at which lost events are sent from the Observer server, if any OnServerInit []OnServerInit // invoked when the hubble server is initialized OnMonitorEvent []OnMonitorEvent // invoked before an event is decoded @@ -138,6 +141,17 @@ func WithMaxFlows(capacity container.Capacity) Option { } } +// WithLostEventSendInterval sets the interval at which lost events are sent. +func WithLostEventSendInterval(interval time.Duration) Option { + return func(o *Options) error { + if interval <= 0 { + return errors.New("lost event send interval must be greater than 0") + } + o.LostEventSendInterval = interval + return nil + } +} + // WithOnServerInit adds a new callback to be invoked after server initialization func WithOnServerInit(f OnServerInit) Option { return func(o *Options) error { From a7d6494f0e20f70d93c519d432e1164840533203 Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Tue, 19 Aug 2025 11:17:27 -0400 Subject: [PATCH 121/176] hubble: Rate-limit lost events sent from monitor consumer Refactor the existing logic in monitor.consumer for counting and sending lost events to the observer. Introduce an IntervalRangeCounter and use it to rate-limit sending lost events at most once every configured interval. We still try to send events inline with a send event action as we don't want to keep track of concurrent sending. If we can't send the lost event as well, do not reset the counter and retry on the next send event. Signed-off-by: Alexandre Barone --- pkg/hubble/cell/hubbleintegration.go | 2 +- pkg/hubble/monitor/consumer.go | 187 ++++++++++++--------------- pkg/hubble/monitor/consumer_test.go | 49 ++++--- 3 files changed, 119 insertions(+), 119 deletions(-) diff --git a/pkg/hubble/cell/hubbleintegration.go b/pkg/hubble/cell/hubbleintegration.go index 72b550b7042c1..fa76a689f90eb 100644 --- a/pkg/hubble/cell/hubbleintegration.go +++ b/pkg/hubble/cell/hubbleintegration.go @@ -277,7 +277,7 @@ func (h *hubbleIntegration) launch(ctx context.Context) (*observer.LocalObserver return nil, fmt.Errorf("failed to initialize observer server: %w", err) } go hubbleObserver.Start() - h.monitorAgent.RegisterNewConsumer(monitor.NewConsumer(hubbleObserver)) + h.monitorAgent.RegisterNewConsumer(monitor.NewConsumer(hubbleObserver, h.config.LostEventSendInterval)) tlsEnabled := h.tlsConfigPromise != nil diff --git a/pkg/hubble/monitor/consumer.go b/pkg/hubble/monitor/consumer.go index d0045a5784150..33745a25b50c3 100644 --- a/pkg/hubble/monitor/consumer.go +++ b/pkg/hubble/monitor/consumer.go @@ -11,6 +11,7 @@ import ( flowpb "github.com/cilium/cilium/api/v1/flow" "github.com/cilium/cilium/pkg/bufuuid" + "github.com/cilium/cilium/pkg/counter" "github.com/cilium/cilium/pkg/hubble/metrics" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" "github.com/cilium/cilium/pkg/lock" @@ -27,26 +28,28 @@ type Observer interface { GetLogger() *slog.Logger } -// consumer implements monitorConsumer.MonitorConsumer +var _ monitorConsumer.MonitorConsumer = (*consumer)(nil) + +// consumer is a monitor consumer that sends events to an Observer. type consumer struct { uuider *bufuuid.Generator observer Observer - lostLock lock.Mutex - numEventsLost uint64 - logLimiter logging.Limiter - cachedLostNotification *observerTypes.MonitorEvent + lostLock lock.Mutex + lostEventCounter *counter.IntervalRangeCounter + logLimiter logging.Limiter metricLostPerfEvents prometheus.Counter metricLostObserverEvents prometheus.Counter } -// NewConsumer returns an initialized pointer to consumer. -func NewConsumer(observer Observer) monitorConsumer.MonitorConsumer { +// NewConsumer returns a new consumer that sends events to the provided Observer. +func NewConsumer(observer Observer, lostEventSendInterval time.Duration) *consumer { mc := &consumer{ - uuider: bufuuid.New(), - observer: observer, - logLimiter: logging.NewLimiter(30*time.Second, 1), + uuider: bufuuid.New(), + observer: observer, + lostEventCounter: counter.NewIntervalRangeCounter(lostEventSendInterval), + logLimiter: logging.NewLimiter(30*time.Second, 1), metricLostPerfEvents: metrics.LostEvents.WithLabelValues( strings.ToLower(flowpb.LostEventSource_PERF_EVENT_RING_BUFFER.String())), @@ -56,73 +59,58 @@ func NewConsumer(observer Observer) monitorConsumer.MonitorConsumer { return mc } -// sendEventQueueLostEvents tries to send the current value of the lost events -// counter to the observer. If it succeeds to enqueue a notification, it -// resets the counter. Returns a boolean indicating whether the notification -// has been successfully sent. -func (c *consumer) sendNumLostEvents() bool { - c.lostLock.Lock() - defer c.lostLock.Unlock() - // check again, in case multiple - // routines contended the lock - if c.numEventsLost == 0 { - return true - } +// NotifyAgentEvent implements monitorConsumer.MonitorConsumer. +func (c *consumer) NotifyAgentEvent(typ int, message any) { + c.sendEvent(func() any { + return &observerTypes.AgentEvent{ + Type: typ, + Message: message, + } + }) +} - if c.cachedLostNotification == nil { - c.cachedLostNotification = c.newEvent(func() any { - return &observerTypes.LostEvent{ - Source: observerTypes.LostEventSourceEventsQueue, - NumLostEvents: c.numEventsLost, - } - }) - } else { - c.cachedLostNotification.Timestamp = time.Now() - c.cachedLostNotification.Payload.(*observerTypes.LostEvent).NumLostEvents = c.numEventsLost - } +// NotifyPerfEvent implements monitorConsumer.MonitorConsumer. +func (c *consumer) NotifyPerfEvent(data []byte, cpu int) { + c.sendEvent(func() any { + return &observerTypes.PerfEvent{ + Data: data, + CPU: cpu, + } + }) +} - select { - case c.observer.GetEventsChannel() <- c.cachedLostNotification: - // We now now safely reset the counter, as at this point have - // successfully notified the observer about the amount of events - // that were lost since the previous LostEvent message. Similarly, - // we reset the cached notification, so that a new one is created - // the next time. - c.numEventsLost = 0 - c.cachedLostNotification = nil - return true - default: - // We do not need to bump the numEventsLost counter here, as we will - // try to send a new LostEvent notification again during the next - // invocation of sendEvent - return false - } +// NotifyPerfEventLost implements monitorConsumer.MonitorConsumer. +func (c *consumer) NotifyPerfEventLost(numLostEvents uint64, cpu int) { + c.sendEvent(func() any { + return &observerTypes.LostEvent{ + Source: observerTypes.LostEventSourcePerfRingBuffer, + NumLostEvents: numLostEvents, + CPU: cpu, + } + }) + c.metricLostPerfEvents.Inc() } // sendEvent enqueues an event in the observer. If this is not possible, it -// keeps a counter of lost events, which it will regularly try to send to the -// observer as well +// keeps a counter of lost events, which it will try to send at most once per +// configured interval, and on every call to sendEvent until it succeeds. func (c *consumer) sendEvent(payloader func() any) { - if c.numEventsLost > 0 { - if !c.sendNumLostEvents() { - // We just failed sending the lost notification, hence it doesn't - // make sense to try and send the actual event, as we'll most - // likely fail as well. - c.countDroppedEvent() - return - } - } + c.lostLock.Lock() + defer c.lostLock.Unlock() + + now := time.Now() + c.trySendLostEventLocked(now) select { - case c.observer.GetEventsChannel() <- c.newEvent(payloader): + case c.observer.GetEventsChannel() <- c.newEvent(now, payloader): default: - c.countDroppedEvent() + c.incrementLostEventLocked(now) } } -func (c *consumer) newEvent(payloader func() any) *observerTypes.MonitorEvent { +func (c *consumer) newEvent(ts time.Time, payloader func() any) *observerTypes.MonitorEvent { ev := &observerTypes.MonitorEvent{ - Timestamp: time.Now(), + Timestamp: ts, NodeName: nodeTypes.GetAbsoluteNodeName(), Payload: payloader(), } @@ -131,50 +119,43 @@ func (c *consumer) newEvent(payloader func() any) *observerTypes.MonitorEvent { return ev } -// countDroppedEvent logs that the events channel is full -// and counts how many messages it has lost. -func (c *consumer) countDroppedEvent() { - c.lostLock.Lock() - defer c.lostLock.Unlock() - if c.numEventsLost == 0 && c.logLimiter.Allow() { - c.observer.GetLogger(). - Warn( - "hubble events queue is full: dropping messages; consider increasing the queue size (hubble-event-queue-size) or provisioning more CPU", - logfields.RelatedMetric, "hubble_lost_events_total", - ) +// trySendLostEventLocked tries to send a lost event as needed. If it succeeds, it clears the +// lost event counter, otherwise it does nothing so we keep the existing count. It assumes that +// the caller holds c.lostLock. +func (c *consumer) trySendLostEventLocked(ts time.Time) { + // check if we should send a lost event + shouldSend := c.lostEventCounter.IsElapsed(ts) + if !shouldSend { + return } - c.numEventsLost++ - c.metricLostObserverEvents.Inc() -} -// NotifyAgentEvent implements monitorConsumer.MonitorConsumer -func (c *consumer) NotifyAgentEvent(typ int, message any) { - c.sendEvent(func() any { - return &observerTypes.AgentEvent{ - Type: typ, - Message: message, + lostEvent := c.newEvent(ts, func() any { + return &observerTypes.LostEvent{ + Source: observerTypes.LostEventSourceEventsQueue, + NumLostEvents: c.lostEventCounter.Peek().Count, + // TODO: add timestamp range to LostEvent } }) -} -// NotifyPerfEvent implements monitorConsumer.MonitorConsumer -func (c *consumer) NotifyPerfEvent(data []byte, cpu int) { - c.sendEvent(func() any { - return &observerTypes.PerfEvent{ - Data: data, - CPU: cpu, - } - }) + select { + case c.observer.GetEventsChannel() <- lostEvent: + // only clear the counter if we successfully sent the lost event + c.lostEventCounter.Clear() + default: + } } -// NotifyPerfEventLost implements monitorConsumer.MonitorConsumer -func (c *consumer) NotifyPerfEventLost(numLostEvents uint64, cpu int) { - c.sendEvent(func() any { - return &observerTypes.LostEvent{ - Source: observerTypes.LostEventSourcePerfRingBuffer, - NumLostEvents: numLostEvents, - CPU: cpu, - } - }) - c.metricLostPerfEvents.Inc() +// incrementLostEventLocked increments the lost event counter. It also logs a warning message if the +// counter was previously empty and the log limiter allows it. It assumes that the caller holds +// c.lostLock. +func (c *consumer) incrementLostEventLocked(ts time.Time) { + if c.lostEventCounter.Peek().Count == 0 && c.logLimiter.Allow() { + c.observer.GetLogger(). + Warn( + "hubble events queue is full: dropping messages; consider increasing the queue size (hubble-event-queue-size) or provisioning more CPU", + logfields.RelatedMetric, "hubble_lost_events_total", + ) + } + c.lostEventCounter.Increment(ts) + c.metricLostObserverEvents.Inc() } diff --git a/pkg/hubble/monitor/consumer_test.go b/pkg/hubble/monitor/consumer_test.go index afa0dc4592785..233c53de75e96 100644 --- a/pkg/hubble/monitor/consumer_test.go +++ b/pkg/hubble/monitor/consumer_test.go @@ -11,7 +11,9 @@ import ( "github.com/cilium/hive/hivetest" "github.com/google/uuid" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/cilium/cilium/pkg/hubble/defaults" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" "github.com/cilium/cilium/pkg/monitor/api" nodeTypes "github.com/cilium/cilium/pkg/node/types" @@ -37,7 +39,8 @@ func TestHubbleConsumer(t *testing.T) { events: make(chan *observerTypes.MonitorEvent, 1), logger: hivetest.Logger(t), } - consumer := NewConsumer(observer) + lostSendInterval := 100 * time.Millisecond + consumer := NewConsumer(observer, lostSendInterval) data := []byte{0, 1, 2, 3, 4} cpu := 5 @@ -84,10 +87,19 @@ func TestHubbleConsumer(t *testing.T) { assert.Equal(t, expected.Payload, received.Payload) assert.NotEqual(t, uuid.UUID{}, received.UUID) - // The first notification will get through, the other two will be dropped + // The first notification will get through, the others two will be dropped consumer.NotifyAgentEvent(1, nil) consumer.NotifyPerfEventLost(0, 0) // dropped consumer.NotifyPerfEvent(nil, 0) // dropped + + time.Sleep(lostSendInterval * 2) // Wait for lost event counter interval to elapse + + // try to send other events, which will also be dropped + // consumer should also try to send lost events but would not succeed + consumer.NotifyPerfEventLost(0, 0) // dropped + consumer.NotifyPerfEvent(nil, 0) // dropped + + // then receive the event before the drops happened expected = &observerTypes.MonitorEvent{ NodeName: nodeTypes.GetName(), Payload: &observerTypes.AgentEvent{ @@ -99,20 +111,27 @@ func TestHubbleConsumer(t *testing.T) { assert.Equal(t, expected.Payload, received.Payload) assert.NotEqual(t, uuid.UUID{}, received.UUID) - // Now that the channel has one slot again, send another message - // (which will be dropped) to get a lost event notifications - consumer.NotifyAgentEvent(0, nil) // dropped - - expected = &observerTypes.MonitorEvent{ - NodeName: nodeTypes.GetName(), - Payload: &observerTypes.LostEvent{ - Source: observerTypes.LostEventSourceEventsQueue, - NumLostEvents: 2, - }, + // now that we emptied the channel, the consumer should be able to send + // the lost events notification, which it tries to do if any are pending + // before the next event is sent. Since we only have a buffer of size 1, + // this event will be dropped. + consumer.NotifyPerfEvent(nil, 0) // dropped + + // receive the lost event notification which is always + // sent before the next event, and validate we receive + // the count of lost events before and after the counter + // interval elapsed. + expectedPayload := &observerTypes.LostEvent{ + Source: observerTypes.LostEventSourceEventsQueue, + NumLostEvents: 4, + // omit First, Last timestamps on-purpose as they are not predictable } received = <-observer.GetEventsChannel() - assert.Equal(t, expected.NodeName, received.NodeName) - assert.Equal(t, expected.Payload, received.Payload) + assert.Equal(t, expected.NodeName, nodeTypes.GetName()) + receivedPayload, ok := received.Payload.(*observerTypes.LostEvent) + require.Truef(t, ok, "expected payload to be of type *observerTypes.LostEvent, got %T", received.Payload) + assert.Equal(t, expectedPayload.Source, receivedPayload.Source) + assert.Equal(t, expectedPayload.NumLostEvents, receivedPayload.NumLostEvents) assert.NotEqual(t, uuid.UUID{}, received.UUID) // Verify that the events channel is empty now. @@ -140,7 +159,7 @@ func BenchmarkHubbleConsumerSendEvent(b *testing.B) { } var ( - cnsm = NewConsumer(observer) + cnsm = NewConsumer(observer, defaults.LostEventSendInterval) data = []byte{0, 1, 2, 3, 4} cpu = 5 ) From 36f1eb405e31b0ee8f026a9d3ddfec31b47f15c5 Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Tue, 19 Aug 2025 13:32:30 -0400 Subject: [PATCH 122/176] api: Add First/Last timestamps to flow.LostEvent Add first and last timestamps to LostEvent to record the time range between when the events were lost. Signed-off-by: Alexandre Barone --- api/v1/flow/README.md | 2 ++ api/v1/flow/flow.pb.go | 78 +++++++++++++++++++++++++++--------------- api/v1/flow/flow.proto | 6 +++- 3 files changed, 57 insertions(+), 29 deletions(-) diff --git a/api/v1/flow/README.md b/api/v1/flow/README.md index c5edd5deebcc5..1adb360e6f81e 100644 --- a/api/v1/flow/README.md +++ b/api/v1/flow/README.md @@ -600,6 +600,8 @@ that happened before the events were captured by Hubble. | source | [LostEventSource](#flow-LostEventSource) | | source is the location where events got lost. | | num_events_lost | [uint64](#uint64) | | num_events_lost is the number of events that haven been lost at source. | | cpu | [google.protobuf.Int32Value](#google-protobuf-Int32Value) | | cpu on which the event was lost if the source of lost events is PERF_EVENT_RING_BUFFER. | +| first | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | first is the timestamp of the first event that was lost. | +| last | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | last is the timestamp of the last event that was lost. | diff --git a/api/v1/flow/flow.pb.go b/api/v1/flow/flow.pb.go index 0ea02d1ff4cd9..e441a499480e3 100644 --- a/api/v1/flow/flow.pb.go +++ b/api/v1/flow/flow.pb.go @@ -4050,7 +4050,11 @@ type LostEvent struct { NumEventsLost uint64 `protobuf:"varint,2,opt,name=num_events_lost,json=numEventsLost,proto3" json:"num_events_lost,omitempty"` // cpu on which the event was lost if the source of lost events is // PERF_EVENT_RING_BUFFER. - Cpu *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=cpu,proto3" json:"cpu,omitempty"` + Cpu *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=cpu,proto3" json:"cpu,omitempty"` + // first is the timestamp of the first event that was lost. + First *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=first,proto3" json:"first,omitempty"` + // last is the timestamp of the last event that was lost. + Last *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=last,proto3" json:"last,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4106,6 +4110,20 @@ func (x *LostEvent) GetCpu() *wrapperspb.Int32Value { return nil } +func (x *LostEvent) GetFirst() *timestamppb.Timestamp { + if x != nil { + return x.First + } + return nil +} + +func (x *LostEvent) GetLast() *timestamppb.Timestamp { + if x != nil { + return x.Last + } + return nil +} + type AgentEvent struct { state protoimpl.MessageState `protogen:"open.v1"` Type AgentEventType `protobuf:"varint,1,opt,name=type,proto3,enum=flow.AgentEventType" json:"type,omitempty"` @@ -5346,11 +5364,13 @@ const file_flow_flow_proto_rawDesc = "" + "\tnamespace\x18\x02 \x01(\tR\tnamespace\"L\n" + "\tIPTraceID\x12\x19\n" + "\btrace_id\x18\x01 \x01(\x04R\atraceId\x12$\n" + - "\x0eip_option_type\x18\x02 \x01(\rR\fipOptionType\"\x91\x01\n" + + "\x0eip_option_type\x18\x02 \x01(\rR\fipOptionType\"\xf3\x01\n" + "\tLostEvent\x12-\n" + "\x06source\x18\x01 \x01(\x0e2\x15.flow.LostEventSourceR\x06source\x12&\n" + "\x0fnum_events_lost\x18\x02 \x01(\x04R\rnumEventsLost\x12-\n" + - "\x03cpu\x18\x03 \x01(\v2\x1b.google.protobuf.Int32ValueR\x03cpu\"\xfe\x04\n" + + "\x03cpu\x18\x03 \x01(\v2\x1b.google.protobuf.Int32ValueR\x03cpu\x120\n" + + "\x05first\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\x05first\x12.\n" + + "\x04last\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\x04last\"\xfe\x04\n" + "\n" + "AgentEvent\x12(\n" + "\x04type\x18\x01 \x01(\x0e2\x14.flow.AgentEventTypeR\x04type\x123\n" + @@ -5825,31 +5845,33 @@ var file_flow_flow_proto_depIdxs = []int32{ 38, // 57: flow.HTTP.headers:type_name -> flow.HTTPHeader 11, // 58: flow.LostEvent.source:type_name -> flow.LostEventSource 60, // 59: flow.LostEvent.cpu:type_name -> google.protobuf.Int32Value - 12, // 60: flow.AgentEvent.type:type_name -> flow.AgentEventType - 45, // 61: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown - 46, // 62: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification - 47, // 63: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification - 48, // 64: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification - 49, // 65: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification - 50, // 66: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification - 52, // 67: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification - 53, // 68: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification - 57, // 69: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp - 61, // 70: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value - 51, // 71: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr - 51, // 72: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr - 14, // 73: flow.DebugEvent.type:type_name -> flow.DebugEventType - 22, // 74: flow.DebugEvent.source:type_name -> flow.Endpoint - 61, // 75: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value - 61, // 76: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value - 61, // 77: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value - 61, // 78: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value - 60, // 79: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value - 80, // [80:80] is the sub-list for method output_type - 80, // [80:80] is the sub-list for method input_type - 80, // [80:80] is the sub-list for extension type_name - 80, // [80:80] is the sub-list for extension extendee - 0, // [0:80] is the sub-list for field type_name + 57, // 60: flow.LostEvent.first:type_name -> google.protobuf.Timestamp + 57, // 61: flow.LostEvent.last:type_name -> google.protobuf.Timestamp + 12, // 62: flow.AgentEvent.type:type_name -> flow.AgentEventType + 45, // 63: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown + 46, // 64: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification + 47, // 65: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification + 48, // 66: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification + 49, // 67: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification + 50, // 68: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification + 52, // 69: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification + 53, // 70: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification + 57, // 71: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp + 61, // 72: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value + 51, // 73: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr + 51, // 74: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr + 14, // 75: flow.DebugEvent.type:type_name -> flow.DebugEventType + 22, // 76: flow.DebugEvent.source:type_name -> flow.Endpoint + 61, // 77: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value + 61, // 78: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value + 61, // 79: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value + 61, // 80: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value + 60, // 81: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value + 82, // [82:82] is the sub-list for method output_type + 82, // [82:82] is the sub-list for method input_type + 82, // [82:82] is the sub-list for extension type_name + 82, // [82:82] is the sub-list for extension extendee + 0, // [0:82] is the sub-list for field type_name } func init() { file_flow_flow_proto_init() } diff --git a/api/v1/flow/flow.proto b/api/v1/flow/flow.proto index 6da37607b535d..63821c8a88d8f 100644 --- a/api/v1/flow/flow.proto +++ b/api/v1/flow/flow.proto @@ -210,7 +210,7 @@ enum TraceObservationPoint { // TO_CRYPTO indicates network packets are transmitted towards the crypto // process for encryption. TO_CRYPTO = 13; - + } enum TraceReason { @@ -757,6 +757,10 @@ message LostEvent { // cpu on which the event was lost if the source of lost events is // PERF_EVENT_RING_BUFFER. google.protobuf.Int32Value cpu = 3; + // first is the timestamp of the first event that was lost. + google.protobuf.Timestamp first = 4; + // last is the timestamp of the last event that was lost. + google.protobuf.Timestamp last = 5; } // AgentEventType is the type of agent event. These values are shared with type From b529208ec6d4f41ebcc21f150efd59cba2474b7e Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Tue, 19 Aug 2025 13:30:33 -0400 Subject: [PATCH 123/176] hubble: Support time range in emitted lost events Set the First and Last timestamps on the LostEvent type generated by monitor.consumer and ensure that we also set the fields when we convert between observerTypes.LostEvent and v1.Event in the hubble parser. Set the First and Last timestamps on the LostEvent type generated by the Observer server. Signed-off-by: Alexandre Barone --- pkg/hubble/monitor/consumer.go | 6 ++++-- pkg/hubble/observer/local_observer.go | 3 ++- pkg/hubble/observer/types/types.go | 4 ++++ pkg/hubble/parser/parser.go | 9 ++++++++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/pkg/hubble/monitor/consumer.go b/pkg/hubble/monitor/consumer.go index 33745a25b50c3..7718e4faf9d38 100644 --- a/pkg/hubble/monitor/consumer.go +++ b/pkg/hubble/monitor/consumer.go @@ -129,11 +129,13 @@ func (c *consumer) trySendLostEventLocked(ts time.Time) { return } + count := c.lostEventCounter.Peek() lostEvent := c.newEvent(ts, func() any { return &observerTypes.LostEvent{ Source: observerTypes.LostEventSourceEventsQueue, - NumLostEvents: c.lostEventCounter.Peek().Count, - // TODO: add timestamp range to LostEvent + NumLostEvents: count.Count, + First: count.First, + Last: count.Last, } }) diff --git a/pkg/hubble/observer/local_observer.go b/pkg/hubble/observer/local_observer.go index 8fc998741eb05..b674049414549 100644 --- a/pkg/hubble/observer/local_observer.go +++ b/pkg/hubble/observer/local_observer.go @@ -347,7 +347,8 @@ nextEvent: LostEvents: &flowpb.LostEvent{ Source: flowpb.LostEventSource_HUBBLE_RING_BUFFER, NumEventsLost: count.Count, - // TODO: add timestamp range to LostEvent + First: timestamppb.New(count.First), + Last: timestamppb.New(count.Last), }, }, } diff --git a/pkg/hubble/observer/types/types.go b/pkg/hubble/observer/types/types.go index a2e24cc16e7b9..086481f635568 100644 --- a/pkg/hubble/observer/types/types.go +++ b/pkg/hubble/observer/types/types.go @@ -61,4 +61,8 @@ type LostEvent struct { NumLostEvents uint64 // CPU is the cpu number if for events lost in the perf ring buffer CPU int + // First is the timestamp of the first event that was lost + First time.Time + // Last is the timestamp of the last event that was lost + Last time.Time } diff --git a/pkg/hubble/parser/parser.go b/pkg/hubble/parser/parser.go index a385e051987e8..611f850f78c15 100644 --- a/pkg/hubble/parser/parser.go +++ b/pkg/hubble/parser/parser.go @@ -171,13 +171,20 @@ func (p *Parser) Decode(monitorEvent *observerTypes.MonitorEvent) (*v1.Event, er return nil, errors.ErrUnknownEventType } case *observerTypes.LostEvent: - ev.Event = &pb.LostEvent{ + lostEvent := &pb.LostEvent{ Source: lostEventSourceToProto(payload.Source), NumEventsLost: payload.NumLostEvents, Cpu: &wrapperspb.Int32Value{ Value: int32(payload.CPU), }, } + if !payload.First.IsZero() { + lostEvent.First = timestamppb.New(payload.First) + } + if !payload.Last.IsZero() { + lostEvent.Last = timestamppb.New(payload.Last) + } + ev.Event = lostEvent return ev, nil case nil: return ev, errors.ErrEmptyData From 35e73fc7f4325f96614ad1feee9e32f4f7067ef9 Mon Sep 17 00:00:00 2001 From: Alexandre Barone Date: Wed, 27 Aug 2025 11:50:20 -0400 Subject: [PATCH 124/176] hubble-cli: Print lost event time range in observe Also adjust formatting a bit for consistency. Ensure we set the TIMESTAMP column like we do for other event types. Use - for empty values. When node name is set, print it. Update tests to cover node name and timestamp ranges for lost events. Signed-off-by: Alexandre Barone --- hubble/pkg/printer/printer.go | 47 +++++-- hubble/pkg/printer/printer_test.go | 204 +++++++++++++++++++++++++---- 2 files changed, 216 insertions(+), 35 deletions(-) diff --git a/hubble/pkg/printer/printer.go b/hubble/pkg/printer/printer.go index a0f52bdcc175d..4a611e38d9db1 100644 --- a/hubble/pkg/printer/printer.go +++ b/hubble/pkg/printer/printer.go @@ -948,6 +948,7 @@ func (p *Printer) WriteLostEvent(res *observerpb.GetFlowsResponse) error { src := f.GetSource() numEventsLost := f.GetNumEventsLost() cpu := f.GetCpu() + first, last := f.GetFirst(), f.GetLast() if p.line == 0 { w.print("TIMESTAMP", tab) @@ -962,16 +963,24 @@ func (p *Printer) WriteLostEvent(res *observerpb.GetFlowsResponse) error { "SUMMARY", newline, ) } - w.print("", tab) + w.print(fmtTimestamp(p.opts.timeFormat, res.GetTime()), tab) if p.opts.nodeName { - w.print("", tab) + nodeName := res.GetNodeName() + if nodeName == "" { + nodeName = "-" + } + w.print(nodeName, tab) + } + summary := fmt.Sprintf("CPU(%d) - %d", cpu.GetValue(), numEventsLost) + if first != nil && last != nil { + summary += fmt.Sprintf(" (first: %s, last: %s)", fmtTimestamp(p.opts.timeFormat, first), fmtTimestamp(p.opts.timeFormat, last)) } w.print( src, tab, - "", tab, + "-", tab, "EVENTS LOST", tab, - "", tab, - fmt.Sprintf("CPU(%d) - %d", cpu.GetValue(), numEventsLost), newline, + "-", tab, + summary, newline, ) if w.err != nil { return fmt.Errorf("failed to write out packet: %w", w.err) @@ -981,6 +990,7 @@ func (p *Printer) WriteLostEvent(res *observerpb.GetFlowsResponse) error { src := f.GetSource() numEventsLost := f.GetNumEventsLost() cpu := f.GetCpu() + first, last := f.GetFirst(), f.GetLast() if p.line != 0 { // TODO: line length? w.print(dictSeparator, newline) @@ -988,15 +998,23 @@ func (p *Printer) WriteLostEvent(res *observerpb.GetFlowsResponse) error { // this is a little crude, but will do for now. should probably find the // longest header and auto-format the keys - w.print(" TIMESTAMP: ", "", newline) + w.print(" TIMESTAMP: ", fmtTimestamp(p.opts.timeFormat, res.GetTime()), newline) if p.opts.nodeName { - w.print(" NODE: ", "", newline) + nodeName := res.GetNodeName() + if nodeName == "" { + nodeName = "-" + } + w.print(" NODE: ", nodeName, newline) + } + summary := fmt.Sprintf("CPU(%d) - %d", cpu.GetValue(), numEventsLost) + if first != nil && last != nil { + summary += fmt.Sprintf(" (first: %s, last: %s)", fmtTimestamp(p.opts.timeFormat, first), fmtTimestamp(p.opts.timeFormat, last)) } w.print( " SOURCE: ", src, newline, " TYPE: ", "EVENTS LOST", newline, - " VERDICT: ", "", newline, - " SUMMARY: ", fmt.Sprintf("CPU(%d) - %d", cpu.GetValue(), numEventsLost), newline, + " VERDICT: ", "-", newline, + " SUMMARY: ", summary, newline, ) if w.err != nil { return fmt.Errorf("failed to write out packet: %w", w.err) @@ -1006,11 +1024,16 @@ func (p *Printer) WriteLostEvent(res *observerpb.GetFlowsResponse) error { src := f.GetSource() numEventsLost := f.GetNumEventsLost() cpu := f.GetCpu() + first, last := f.GetFirst(), f.GetLast() - w.printf("EVENTS LOST: %s CPU(%d) %d\n", + summary := fmt.Sprintf("CPU(%d) %d", cpu.GetValue(), numEventsLost) + if first != nil && last != nil { + summary += fmt.Sprintf(" (first: %s, last: %s)", fmtTimestamp(p.opts.timeFormat, first), fmtTimestamp(p.opts.timeFormat, last)) + } + w.printf("%s EVENTS LOST: %s %s\n", + fmtTimestamp(p.opts.timeFormat, res.GetTime()), src, - cpu.GetValue(), - numEventsLost, + summary, ) if w.err != nil { return fmt.Errorf("failed to write out packet: %w", w.err) diff --git a/hubble/pkg/printer/printer_test.go b/hubble/pkg/printer/printer_test.go index 6f02d27957887..de14d037dcdbf 100644 --- a/hubble/pkg/printer/printer_test.go +++ b/hubble/pkg/printer/printer_test.go @@ -1658,11 +1658,50 @@ NUM CONNECTED NODES: N/A func TestPrinter_WriteLostEventsResponse(t *testing.T) { buf := bytes.Buffer{} gfr := &observerpb.GetFlowsResponse{ + Time: ×tamppb.Timestamp{ + Seconds: 1234, + Nanos: 567800000, + }, + ResponseTypes: &observerpb.GetFlowsResponse_LostEvents{ + LostEvents: &observerpb.LostEvent{ + Source: observerpb.LostEventSource_HUBBLE_RING_BUFFER, + NumEventsLost: 1, + Cpu: wrapperspb.Int32(5), + }, + }, + } + gfrWithNode := &observerpb.GetFlowsResponse{ + Time: ×tamppb.Timestamp{ + Seconds: 1234, + Nanos: 567800000, + }, + NodeName: "node-name", + ResponseTypes: &observerpb.GetFlowsResponse_LostEvents{ + LostEvents: &observerpb.LostEvent{ + Source: observerpb.LostEventSource_HUBBLE_RING_BUFFER, + NumEventsLost: 1, + Cpu: wrapperspb.Int32(5), + }, + }, + } + gfrWithTimestamps := &observerpb.GetFlowsResponse{ + Time: ×tamppb.Timestamp{ + Seconds: 1234, + Nanos: 567800000, + }, ResponseTypes: &observerpb.GetFlowsResponse_LostEvents{ LostEvents: &observerpb.LostEvent{ Source: observerpb.LostEventSource_HUBBLE_RING_BUFFER, NumEventsLost: 1, Cpu: wrapperspb.Int32(5), + First: ×tamppb.Timestamp{ + Seconds: 1230, + Nanos: 567800000, + }, + Last: ×tamppb.Timestamp{ + Seconds: 1238, + Nanos: 567800000, + }, }, }, } @@ -1673,7 +1712,6 @@ func TestPrinter_WriteLostEventsResponse(t *testing.T) { name string options []Option args args - wantErr bool expected string }{ { @@ -1682,23 +1720,23 @@ func TestPrinter_WriteLostEventsResponse(t *testing.T) { WithColor("never"), Writer(&buf), }, - args: args{gfr}, - wantErr: false, + args: args{gfr}, expected: ` -TIMESTAMP SOURCE DESTINATION TYPE VERDICT SUMMARY - HUBBLE_RING_BUFFER EVENTS LOST CPU(5) - 1`, - }, { +TIMESTAMP SOURCE DESTINATION TYPE VERDICT SUMMARY +Jan 1 00:20:34.567 HUBBLE_RING_BUFFER - EVENTS LOST - CPU(5) - 1`, + }, + { name: "compact", options: []Option{ Compact(), WithColor("never"), Writer(&buf), }, - args: args{gfr}, - wantErr: false, + args: args{gfr}, expected: ` -EVENTS LOST: HUBBLE_RING_BUFFER CPU(5) 1`, - }, { +Jan 1 00:20:34.567 EVENTS LOST: HUBBLE_RING_BUFFER CPU(5) 1`, + }, + { name: "json", options: []Option{ JSONPB(), @@ -1706,9 +1744,9 @@ EVENTS LOST: HUBBLE_RING_BUFFER CPU(5) 1`, Writer(&buf), }, args: args{gfr}, - wantErr: false, - expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5}}`, - }, { + expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5},"time":"1970-01-01T00:20:34.567800Z"}`, + }, + { name: "jsonpb", options: []Option{ JSONPB(), @@ -1716,32 +1754,152 @@ EVENTS LOST: HUBBLE_RING_BUFFER CPU(5) 1`, Writer(&buf), }, args: args{gfr}, - wantErr: false, - expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5}}`, - }, { + expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5},"time":"1970-01-01T00:20:34.567800Z"}`, + }, + { name: "dict", options: []Option{ Dict(), WithColor("never"), Writer(&buf), }, - args: args{gfr}, - wantErr: false, + args: args{gfr}, + expected: ` + TIMESTAMP: Jan 1 00:20:34.567 + SOURCE: HUBBLE_RING_BUFFER + TYPE: EVENTS LOST + VERDICT: - + SUMMARY: CPU(5) - 1`, + }, + // with node name + { + name: "tabular with node", + options: []Option{ + WithColor("never"), + WithNodeName(), + Writer(&buf), + }, + args: args{gfrWithNode}, + expected: ` +TIMESTAMP NODE SOURCE DESTINATION TYPE VERDICT SUMMARY +Jan 1 00:20:34.567 node-name HUBBLE_RING_BUFFER - EVENTS LOST - CPU(5) - 1`, + }, + { + name: "compact with node", + options: []Option{ + Compact(), + WithColor("never"), + WithNodeName(), + Writer(&buf), + }, + args: args{gfrWithNode}, + expected: ` +Jan 1 00:20:34.567 EVENTS LOST: HUBBLE_RING_BUFFER CPU(5) 1`, + }, + { + name: "json with node", + options: []Option{ + JSONPB(), + WithColor("never"), + WithNodeName(), + Writer(&buf), + }, + args: args{gfrWithNode}, + expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5},"node_name":"node-name","time":"1970-01-01T00:20:34.567800Z"}`, + }, + { + name: "jsonpb with node", + options: []Option{ + JSONPB(), + WithColor("never"), + WithNodeName(), + Writer(&buf), + }, + args: args{gfrWithNode}, + expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5},"node_name":"node-name","time":"1970-01-01T00:20:34.567800Z"}`, + }, + { + name: "dict with node", + options: []Option{ + Dict(), + WithColor("never"), + WithNodeName(), + Writer(&buf), + }, + args: args{gfrWithNode}, expected: ` - TIMESTAMP: + TIMESTAMP: Jan 1 00:20:34.567 + NODE: node-name SOURCE: HUBBLE_RING_BUFFER TYPE: EVENTS LOST - VERDICT: + VERDICT: - SUMMARY: CPU(5) - 1`, }, + // with lost event timestamps + { + name: "tabular with timestamps", + options: []Option{ + WithColor("never"), + Writer(&buf), + }, + args: args{gfrWithTimestamps}, + expected: ` +TIMESTAMP SOURCE DESTINATION TYPE VERDICT SUMMARY +Jan 1 00:20:34.567 HUBBLE_RING_BUFFER - EVENTS LOST - CPU(5) - 1 (first: Jan 1 00:20:30.567, last: Jan 1 00:20:38.567)`, + }, + { + name: "compact with timestamps", + options: []Option{ + Compact(), + WithColor("never"), + Writer(&buf), + }, + args: args{gfrWithTimestamps}, + expected: ` +Jan 1 00:20:34.567 EVENTS LOST: HUBBLE_RING_BUFFER CPU(5) 1 (first: Jan 1 00:20:30.567, last: Jan 1 00:20:38.567)`, + }, + { + name: "json with timestamps", + options: []Option{ + JSONPB(), + WithColor("never"), + Writer(&buf), + }, + args: args{gfrWithTimestamps}, + expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5,"first":"1970-01-01T00:20:30.567800Z","last":"1970-01-01T00:20:38.567800Z"},"time":"1970-01-01T00:20:34.567800Z"}`, + }, + { + name: "jsonpb with timestamps", + options: []Option{ + JSONPB(), + WithColor("never"), + Writer(&buf), + }, + args: args{gfrWithTimestamps}, + expected: `{"lost_events":{"source":"HUBBLE_RING_BUFFER","num_events_lost":"1","cpu":5,"first":"1970-01-01T00:20:30.567800Z","last":"1970-01-01T00:20:38.567800Z"},"time":"1970-01-01T00:20:34.567800Z"}`, + }, + { + name: "dict with timestamps", + options: []Option{ + Dict(), + WithColor("never"), + Writer(&buf), + }, + args: args{gfrWithTimestamps}, + expected: ` + TIMESTAMP: Jan 1 00:20:34.567 + SOURCE: HUBBLE_RING_BUFFER + TYPE: EVENTS LOST + VERDICT: - + SUMMARY: CPU(5) - 1 (first: Jan 1 00:20:30.567, last: Jan 1 00:20:38.567)`, + }, } for _, tt := range tests { buf.Reset() t.Run(tt.name, func(t *testing.T) { p := New(tt.options...) - if err := p.WriteLostEvent(tt.args.le); (err != nil) != tt.wantErr { - t.Errorf("WriteServerStatusResponse() error = %v, wantErr %v", err, tt.wantErr) - } + err := p.WriteLostEvent(tt.args.le) + require.NoError(t, err) require.NoError(t, p.Close()) require.Equal(t, strings.TrimSpace(tt.expected), strings.TrimSpace(buf.String())) }) From 150f527412c0d19ecb55f7cbefbe9b7f55c672d0 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Fri, 19 Sep 2025 13:39:35 +0300 Subject: [PATCH 125/176] gh: e2e-upgrade: temporarily disable XDP for config 6 and 14 https://github.com/cilium/cilium/pull/41380 seems to have introduced a regression, when XDP needs to perform L2 resolution for hand-crafted VXLAN traffic. Disable XDP to cure the CI flakes, until the root cause has been identified. This works around https://github.com/cilium/cilium/issues/41520. Signed-off-by: Julian Wiedmann --- .github/actions/e2e/configs.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/actions/e2e/configs.yaml b/.github/actions/e2e/configs.yaml index fa9913ede83fa..9ffaa14e4635d 100644 --- a/.github/actions/e2e/configs.yaml +++ b/.github/actions/e2e/configs.yaml @@ -58,7 +58,8 @@ lb-mode: 'snat' egress-gateway: 'true' host-fw: 'true' - lb-acceleration: 'testing-only' + # Disable until https://github.com/cilium/cilium/issues/41520 is resolved + # lb-acceleration: 'testing-only' ingress-controller: 'true' bgp-control-plane: 'true' - name: '7' @@ -165,7 +166,8 @@ tunnel: 'vxlan' lb-mode: 'snat' egress-gateway: 'true' - lb-acceleration: 'testing-only' + # Disable until https://github.com/cilium/cilium/issues/41520 is resolved + # lb-acceleration: 'testing-only' ingress-controller: 'true' - name: '15' # renovate: datasource=docker depName=quay.io/lvh-images/kind From 06f5acd16993601638ab21ea8a07e1c87af7c39a Mon Sep 17 00:00:00 2001 From: Marco Iorio Date: Fri, 19 Sep 2025 11:39:51 +0200 Subject: [PATCH 126/176] kvstoremesh: fix regression in determining end of bootstrap phase The KVStoreMesh bootstrap phase takes care of populating the initial state into etcd for all the target clusters, and operates under the assumption that no watchers have been established yet (the container is not marked as ready) so that higher rate limiting settings can be used to speed up the process. However, the blamed commit broke this logic due to some shuffling, and KVStoreMesh could end up exiting the bootstrap phase too early, when synchronization did not actually complete. That's because it was no longer guaranteed that the job waiting for synchronization started after the KVStoreMesh start hook, which retrieves the list of clusters to connect to. Let's get this fixed, moving that logic back to the leader election cell, so that it uses the appropriate job group, that depends on KVStoreMesh, and gets started only after its start hook terminated. While not being strictly necessary, let's also add an explicit check so that [*KVStoreMesh.synced] blocks until the start hook actually completed, to prevent surprises in the future. Fixes: f3a76e9799fd ("kvstoremesh: leader election with etcd lock") Signed-off-by: Marco Iorio --- clustermesh-apiserver/kvstoremesh/cells.go | 1 + clustermesh-apiserver/kvstoremesh/root.go | 17 +------- pkg/clustermesh/kvstoremesh/kvstoremesh.go | 43 ++++++++++++++----- .../kvstoremesh/kvstoremesh_test.go | 8 ++-- 4 files changed, 40 insertions(+), 29 deletions(-) diff --git a/clustermesh-apiserver/kvstoremesh/cells.go b/clustermesh-apiserver/kvstoremesh/cells.go index 4ff8ce40d17ce..5e60e9a957684 100644 --- a/clustermesh-apiserver/kvstoremesh/cells.go +++ b/clustermesh-apiserver/kvstoremesh/cells.go @@ -37,6 +37,7 @@ var Cell = cell.Module( }), heartbeat.Cell, + cell.Provide(kvstoremesh.NewSyncWaiter), cell.Invoke(func(*kvstoremesh.KVStoreMesh) {}), ), diff --git a/clustermesh-apiserver/kvstoremesh/root.go b/clustermesh-apiserver/kvstoremesh/root.go index c3bc3065e6bfe..6807bc9ca391b 100644 --- a/clustermesh-apiserver/kvstoremesh/root.go +++ b/clustermesh-apiserver/kvstoremesh/root.go @@ -11,11 +11,9 @@ import ( "time" "github.com/cilium/hive/cell" - "github.com/cilium/hive/job" "github.com/prometheus/client_golang/prometheus" "github.com/spf13/cobra" - "github.com/cilium/cilium/clustermesh-apiserver/syncstate" "github.com/cilium/cilium/pkg/clustermesh/kvstoremesh" "github.com/cilium/cilium/pkg/hive" "github.com/cilium/cilium/pkg/kvstore" @@ -70,10 +68,8 @@ type params struct { Metrics kvstoremesh.Metrics Shutdowner hive.Shutdowner Log *slog.Logger - SyncState syncstate.SyncState - JobGroup job.Group + SyncWaiter kvstoremesh.SyncWaiter KVStoreMesh *kvstoremesh.KVStoreMesh - Health cell.Health } func registerLeaderElectionHooks(lc cell.Lifecycle, llc *LeaderLifecycle, params params) { @@ -120,7 +116,7 @@ func runLeaderElection(ctx context.Context, lc *LeaderLifecycle, params params) if err != nil && errors.Is(err, kvstore.ErrEtcdTimeout) { // signal readiness - params.SyncState.Stop() + params.SyncWaiter.ForceReady() // try again with infinite timeout params.Log.Info("Reattempting to acquire leader election lock") @@ -148,15 +144,6 @@ func runLeaderElection(ctx context.Context, lc *LeaderLifecycle, params params) params.Log.Info("Leader election lock acquired") params.Metrics.LeaderElectionStatus.With(prometheus.Labels{metrics.LabelLeaderElectionName: "kvstoremesh"}).Set(float64(1)) - kvstoremesh.RegisterSyncWaiter(kvstoremesh.SyncWaiterParams{ - KVStoreMesh: params.KVStoreMesh, - SyncState: params.SyncState, - Lifecycle: lc, - JobGroup: params.JobGroup, - Health: params.Health, - }) - params.SyncState.Stop() - err = lc.Start(params.Log, ctx) if err != nil { params.Log.Error("Failed to run KvStoreMesh", logfields.Error, err) diff --git a/pkg/clustermesh/kvstoremesh/kvstoremesh.go b/pkg/clustermesh/kvstoremesh/kvstoremesh.go index 742b1f5329209..e783c509b1c6c 100644 --- a/pkg/clustermesh/kvstoremesh/kvstoremesh.go +++ b/pkg/clustermesh/kvstoremesh/kvstoremesh.go @@ -68,6 +68,8 @@ type KVStoreMesh struct { // clock allows to override the clock for testing purposes clock clock.Clock + + started chan struct{} } type params struct { @@ -97,6 +99,7 @@ func newKVStoreMesh(lc cell.Lifecycle, params params) *KVStoreMesh { storeFactory: params.StoreFactory, logger: params.Logger, clock: clock.RealClock{}, + started: make(chan struct{}), } km.common = common.NewClusterMesh(common.Configuration{ Logger: params.Logger, @@ -109,27 +112,39 @@ func newKVStoreMesh(lc cell.Lifecycle, params params) *KVStoreMesh { lc.Append(km.common) + // Needs to run after the "common" start hook, to signal that initialization + // successfully completed. + lc.Append(cell.Hook{ + OnStart: func(hc cell.HookContext) error { + close(km.started) + return nil + }, + }) + return &km } -type SyncWaiterParams struct { - KVStoreMesh *KVStoreMesh - SyncState syncstate.SyncState - Lifecycle cell.Lifecycle - JobGroup job.Group - Health cell.Health -} +// SyncWaiter wraps a SyncState to wait for KVStoreMesh synchronization, while +// allowing to force marking it as ready when necessary. +type SyncWaiter func() -func RegisterSyncWaiter(p SyncWaiterParams) { - syncedCallback := p.SyncState.WaitForResource() +func NewSyncWaiter(jg job.Group, km *KVStoreMesh, ss syncstate.SyncState) SyncWaiter { + done := ss.WaitForResource() - p.JobGroup.Add( + jg.Add( job.OneShot("kvstoremesh-sync-waiter", func(ctx context.Context, health cell.Health) error { - return p.KVStoreMesh.synced(ctx, syncedCallback) + return km.synced(ctx, func(ctx context.Context) { + done(ctx) + ss.Stop() + }) }), ) + + return func() { ss.Stop(); done(context.Background()) } } +func (sw SyncWaiter) ForceReady() { sw() } + func (km *KVStoreMesh) newRemoteCluster(name string, status common.StatusFunc) common.RemoteCluster { ctx, cancel := context.WithCancel(context.Background()) @@ -182,6 +197,12 @@ func (km *KVStoreMesh) newRemoteCluster(name string, status common.StatusFunc) c // timeout has been reached. The given syncCallback is always executed before // the function returns. func (km *KVStoreMesh) synced(ctx context.Context, syncCallback func(context.Context)) error { + select { + case <-km.started: + case <-ctx.Done(): + return ctx.Err() + } + ctx, cancel := context.WithTimeout(ctx, km.config.GlobalReadyTimeout) defer func() { syncCallback(ctx) diff --git a/pkg/clustermesh/kvstoremesh/kvstoremesh_test.go b/pkg/clustermesh/kvstoremesh/kvstoremesh_test.go index d7c93d7c9132c..46d136528386b 100644 --- a/pkg/clustermesh/kvstoremesh/kvstoremesh_test.go +++ b/pkg/clustermesh/kvstoremesh/kvstoremesh_test.go @@ -748,10 +748,12 @@ func TestRemoteClusterSync(t *testing.T) { clusters: make(map[string]*remoteCluster), } km := KVStoreMesh{ - config: tt.config, - common: mockClusterMesh, - logger: hivetest.Logger(t), + config: tt.config, + common: mockClusterMesh, + logger: hivetest.Logger(t), + started: make(chan struct{}), } + close(km.started) rc := &remoteCluster{ name: "foo", From c666f0793b19d5eca979abf610fdf783b06c4382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Fri, 19 Sep 2025 11:40:49 +0200 Subject: [PATCH 127/176] .github/workflows: automatically add /test for renovate PRs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatically write `/test` for renovate PRs after images are built. This should help decreasing CI costs while waiting for the CI images to be built. Since the `/tests` will trigger the CI jobs, we no longer need to trigger the jobs automatically on type "push" for renovate branches. Suggested-by: Marco Iorio Signed-off-by: André Martins --- .github/workflows/build-images-ci.yaml | 34 +++++++++++++++++++ .github/workflows/conformance-aks.yaml | 4 --- .github/workflows/conformance-aws-cni.yaml | 4 --- .../workflows/conformance-clustermesh.yaml | 1 - .../workflows/conformance-delegated-ipam.yaml | 1 - .github/workflows/conformance-eks.yaml | 4 --- .../workflows/conformance-gateway-api.yaml | 1 - .github/workflows/conformance-ginkgo.yaml | 4 --- .github/workflows/conformance-gke.yaml | 4 --- .github/workflows/conformance-ingress.yaml | 1 - .github/workflows/conformance-ipsec-e2e.yaml | 4 --- .github/workflows/conformance-multi-pool.yaml | 1 - .github/workflows/conformance-runtime.yaml | 1 - .../hubble-cli-integration-test.yaml | 1 - .github/workflows/integration-test.yaml | 1 - .../workflows/tests-clustermesh-upgrade.yaml | 1 - .../workflows/tests-datapath-verifier.yaml | 4 --- .github/workflows/tests-e2e-upgrade.yaml | 4 --- .github/workflows/tests-ipsec-upgrade.yaml | 4 --- 19 files changed, 34 insertions(+), 45 deletions(-) diff --git a/.github/workflows/build-images-ci.yaml b/.github/workflows/build-images-ci.yaml index eba190fadf89d..4a1cb3d07ed53 100644 --- a/.github/workflows/build-images-ci.yaml +++ b/.github/workflows/build-images-ci.yaml @@ -398,3 +398,37 @@ jobs: checkout_ref: ${{ needs.build-and-push-prs.outputs.sha }} image_tag: ${{ needs.build-and-push-prs.outputs.sha }} secrets: inherit + + pre-comment: + # Avoid running the "Trigger CI from renovate PRs" environment if we don't need to. + name: Pre-Comment + needs: build-and-push-prs + runs-on: ubuntu-24.04 + if: ${{ + github.event_name == 'pull_request_target' && + github.event.pull_request.user.login == 'cilium-renovate[bot]' + }} + steps: + - name: Debug + run: | + echo ${{ github.event.pull_request.user.login }} + echo ${{ github.event.event_name }} + + comment: + name: Post test comment for Renovate PRs after images built + runs-on: ubuntu-24.04 + needs: pre-comment + environment: "Trigger CI from renovate PRs" + if: ${{ + github.event_name == 'pull_request_target' && + github.event.pull_request.user.login == 'cilium-renovate[bot]' + }} + steps: + - name: Post /test comment + env: + TOKEN: ${{ secrets.AUTO_COMMENT_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }} + run: | + echo ${TOKEN} | gh auth login --with-token + gh pr --repo ${GITHUB_REPOSITORY} comment ${PULL_REQUEST_NUMBER} --body "/test" diff --git a/.github/workflows/conformance-aks.yaml b/.github/workflows/conformance-aks.yaml index 71f968e287c89..9bd486c766aaf 100644 --- a/.github/workflows/conformance-aks.yaml +++ b/.github/workflows/conformance-aks.yaml @@ -42,9 +42,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 12 hours schedule: - cron: '0 0/12 * * *' @@ -80,7 +77,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'aks')) }} diff --git a/.github/workflows/conformance-aws-cni.yaml b/.github/workflows/conformance-aws-cni.yaml index f1fc7e6aee91f..32942f7979428 100644 --- a/.github/workflows/conformance-aws-cni.yaml +++ b/.github/workflows/conformance-aws-cni.yaml @@ -17,9 +17,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 8 hours schedule: - cron: '30 0/8 * * *' @@ -52,7 +49,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) }} diff --git a/.github/workflows/conformance-clustermesh.yaml b/.github/workflows/conformance-clustermesh.yaml index b4b2d78685e45..73b9afb64b4fc 100644 --- a/.github/workflows/conformance-clustermesh.yaml +++ b/.github/workflows/conformance-clustermesh.yaml @@ -22,7 +22,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' diff --git a/.github/workflows/conformance-delegated-ipam.yaml b/.github/workflows/conformance-delegated-ipam.yaml index 895377e5fe7dd..57402dfeb0db3 100644 --- a/.github/workflows/conformance-delegated-ipam.yaml +++ b/.github/workflows/conformance-delegated-ipam.yaml @@ -22,7 +22,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' diff --git a/.github/workflows/conformance-eks.yaml b/.github/workflows/conformance-eks.yaml index 7d3110a02ea81..cef7504017cbe 100644 --- a/.github/workflows/conformance-eks.yaml +++ b/.github/workflows/conformance-eks.yaml @@ -45,9 +45,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 12 hours schedule: - cron: '0 1/12 * * *' @@ -83,7 +80,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'eks')) }} diff --git a/.github/workflows/conformance-gateway-api.yaml b/.github/workflows/conformance-gateway-api.yaml index 2d64fa3a35349..752ba33ae0f81 100644 --- a/.github/workflows/conformance-gateway-api.yaml +++ b/.github/workflows/conformance-gateway-api.yaml @@ -22,7 +22,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' - 'test/**' diff --git a/.github/workflows/conformance-ginkgo.yaml b/.github/workflows/conformance-ginkgo.yaml index 46e0ff3ca93a2..2c589f17e76ad 100644 --- a/.github/workflows/conformance-ginkgo.yaml +++ b/.github/workflows/conformance-ginkgo.yaml @@ -17,9 +17,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 8 hours schedule: - cron: '0 1/8 * * *' @@ -50,7 +47,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) }} diff --git a/.github/workflows/conformance-gke.yaml b/.github/workflows/conformance-gke.yaml index 57981f8f5ac6d..83091310552d0 100644 --- a/.github/workflows/conformance-gke.yaml +++ b/.github/workflows/conformance-gke.yaml @@ -42,9 +42,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 12 hours schedule: - cron: '0 3/12 * * *' @@ -80,7 +77,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'gke')) }} diff --git a/.github/workflows/conformance-ingress.yaml b/.github/workflows/conformance-ingress.yaml index f684ea3c31d7f..5a3544471fb46 100644 --- a/.github/workflows/conformance-ingress.yaml +++ b/.github/workflows/conformance-ingress.yaml @@ -21,7 +21,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' - 'test/**' diff --git a/.github/workflows/conformance-ipsec-e2e.yaml b/.github/workflows/conformance-ipsec-e2e.yaml index 3d7ad49292aeb..a81fc69de1e3c 100644 --- a/.github/workflows/conformance-ipsec-e2e.yaml +++ b/.github/workflows/conformance-ipsec-e2e.yaml @@ -17,9 +17,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 8 hours schedule: - cron: '0 5/8 * * *' @@ -50,7 +47,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) }} diff --git a/.github/workflows/conformance-multi-pool.yaml b/.github/workflows/conformance-multi-pool.yaml index 8d7fddf068a05..82a951da2117c 100644 --- a/.github/workflows/conformance-multi-pool.yaml +++ b/.github/workflows/conformance-multi-pool.yaml @@ -22,7 +22,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' diff --git a/.github/workflows/conformance-runtime.yaml b/.github/workflows/conformance-runtime.yaml index 7022a327f5ecc..52f3cce10b577 100644 --- a/.github/workflows/conformance-runtime.yaml +++ b/.github/workflows/conformance-runtime.yaml @@ -21,7 +21,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' # Run every 8 hours diff --git a/.github/workflows/hubble-cli-integration-test.yaml b/.github/workflows/hubble-cli-integration-test.yaml index c21a0c1bcd8d1..c1c94cf421c1b 100644 --- a/.github/workflows/hubble-cli-integration-test.yaml +++ b/.github/workflows/hubble-cli-integration-test.yaml @@ -21,7 +21,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml index 1a9a33cd2e922..b0a0fbd8918b3 100644 --- a/.github/workflows/integration-test.yaml +++ b/.github/workflows/integration-test.yaml @@ -21,7 +21,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' # Run every 8 hours diff --git a/.github/workflows/tests-clustermesh-upgrade.yaml b/.github/workflows/tests-clustermesh-upgrade.yaml index 8e648f5dc16a0..ec0972688153d 100644 --- a/.github/workflows/tests-clustermesh-upgrade.yaml +++ b/.github/workflows/tests-clustermesh-upgrade.yaml @@ -22,7 +22,6 @@ on: branches: - main - ft/main/** - - 'renovate/main-**' paths-ignore: - 'Documentation/**' diff --git a/.github/workflows/tests-datapath-verifier.yaml b/.github/workflows/tests-datapath-verifier.yaml index b8186e89eef28..1380a26eef06f 100644 --- a/.github/workflows/tests-datapath-verifier.yaml +++ b/.github/workflows/tests-datapath-verifier.yaml @@ -17,9 +17,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 8 hours schedule: - cron: '0 5/8 * * *' @@ -50,7 +47,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) }} diff --git a/.github/workflows/tests-e2e-upgrade.yaml b/.github/workflows/tests-e2e-upgrade.yaml index 0ac04911c3e05..012140ec33736 100644 --- a/.github/workflows/tests-e2e-upgrade.yaml +++ b/.github/workflows/tests-e2e-upgrade.yaml @@ -17,9 +17,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # Run every 8 hours schedule: - cron: '0 5/8 * * *' @@ -50,7 +47,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) }} diff --git a/.github/workflows/tests-ipsec-upgrade.yaml b/.github/workflows/tests-ipsec-upgrade.yaml index 8433fb1255ef0..164588723d508 100644 --- a/.github/workflows/tests-ipsec-upgrade.yaml +++ b/.github/workflows/tests-ipsec-upgrade.yaml @@ -17,9 +17,6 @@ on: description: "[JSON object] Arbitrary arguments passed from the trigger comment via regex capture group. Parse with 'fromJson(inputs.extra-args).argName' in workflow." required: false default: '{}' - push: - branches: - - 'renovate/main-**' # By specifying the access of one of the scopes, all of those that are not # specified are set to 'none'. @@ -47,7 +44,6 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'push' && github.sha) || (github.event_name == 'schedule' && github.sha) || (github.event_name == 'workflow_dispatch' && github.event.inputs.PR-number) }} From cdfaf7567ba61947a5cc3d95efa6ab10613cb2ef Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 00:38:04 +0000 Subject: [PATCH 128/176] chore(deps): update renovate dependencies to v41.121.4 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/renovate-config-validator.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate-config-validator.yaml b/.github/workflows/renovate-config-validator.yaml index 1c231163d8894..8919739e582b9 100644 --- a/.github/workflows/renovate-config-validator.yaml +++ b/.github/workflows/renovate-config-validator.yaml @@ -18,7 +18,7 @@ jobs: - name: Validate configuration run: | # renovate: datasource=docker - export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.116.6@sha256:3a49664d9bb6cd393d7cec7b09f9e2cb7ed08731978d4fe294a1b349052f1c47 + export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.121.4@sha256:e76058e38ecb1acd19408e9a3fa1fa278e9b925305e81151e0497bd880116b69 docker run --rm --entrypoint "renovate-config-validator" \ -v "${{ github.workspace }}/.github/renovate.json5":"/renovate.json5" \ ${RENOVATE_IMAGE} "/renovate.json5" diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 88977f82e8ff2..14cee008fd9ad 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -40,7 +40,7 @@ jobs: LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} with: # renovate: datasource=github-releases depName=renovatebot/renovate - renovate-version: 41.116.6 + renovate-version: 41.121.4 docker-user: root docker-cmd-file: .github/actions/renovate/entrypoint.sh configurationFile: .github/renovate.json5 From bbf83767247bfb4792bf47899a16d2640242c07f Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 00:49:44 +0000 Subject: [PATCH 129/176] fix(deps): update module github.com/azure/azure-sdk-for-go/sdk/azidentity to v1.12.0 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- go.mod | 4 +- go.sum | 8 +- .../sdk/azidentity/CHANGELOG.md | 12 ++ .../sdk/azidentity/TROUBLESHOOTING.md | 10 -- .../sdk/azidentity/assets.json | 2 +- .../sdk/azidentity/azure_cli_credential.go | 106 ++++------- .../azure_developer_cli_credential.go | 108 +++++------- .../azure-sdk-for-go/sdk/azidentity/ci.yml | 3 - .../azidentity/default_azure_credential.go | 17 +- .../azidentity/developer_credential_util.go | 65 ++++++- .../azidentity/managed-identity-matrix.json | 5 +- .../sdk/azidentity/test-resources-post.ps1 | 38 +++- .../sdk/azidentity/test-resources.bicep | 164 +++++++++++++++++- .../sdk/azidentity/version.go | 2 +- .../apps/internal/local/server.go | 3 +- .../internal/oauth/ops/authority/authority.go | 41 ++++- .../apps/internal/oauth/resolvers.go | 20 ++- vendor/modules.txt | 4 +- 18 files changed, 423 insertions(+), 189 deletions(-) diff --git a/go.mod b/go.mod index aa49b97e01c72..162d775622898 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.25.0 require ( github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v7 v7.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v7 v7.0.0 github.com/aliyun/alibaba-cloud-sdk-go v1.63.107 @@ -147,7 +147,7 @@ require ( github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20250520111509-a70c2aa677fa // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect diff --git a/go.sum b/go.sum index 3bc0bd6bab4f4..4c5a48a864e6d 100644 --- a/go.sum +++ b/go.sum @@ -13,8 +13,8 @@ github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20250520111509-a70c2aa677fa h1:x6k github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20250520111509-a70c2aa677fa/go.mod h1:gCLVsLfv1egrcZu+GoJATN5ts75F2s62ih/457eWzOw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0 h1:MhRfI58HblXzCtWEZCO0feHs8LweePB3s90r7WaR1KU= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0/go.mod h1:okZ+ZURbArNdlJ+ptXoyHNuOETzOl1Oww19rm8I2WLA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 h1:wL5IEG5zb7BVv1Kv0Xm92orq+5hB5Nipn3B5tn4Rqfk= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0/go.mod h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= @@ -35,8 +35,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md index 9e68cf6701528..ab63f9c031b7a 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +## 1.12.0 (2025-09-16) + +### Features Added +- Added `DefaultAzureCredentialOptions.RequireAzureTokenCredentials`. `NewDefaultAzureCredential` returns an + error when this option is true and the environment variable `AZURE_TOKEN_CREDENTIALS` has no value. + +### Other Changes +- `AzureDeveloperCLICredential` no longer hangs when AZD_DEBUG is set +- `GetToken` methods of `AzureCLICredential` and `AzureDeveloperCLICredential` return an error when + `TokenRequestOptions.Claims` has a value because these credentials can't acquire a token in that + case. The error messages describe the action required to get a token. + ## 1.11.0 (2025-08-05) ### Other Changes diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md index 6ac513846d9e8..838601d69c80a 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md @@ -18,7 +18,6 @@ This troubleshooting guide covers failure investigation techniques, common error - [Troubleshoot EnvironmentCredential authentication issues](#troubleshoot-environmentcredential-authentication-issues) - [Troubleshoot ManagedIdentityCredential authentication issues](#troubleshoot-managedidentitycredential-authentication-issues) - [Azure App Service and Azure Functions managed identity](#azure-app-service-and-azure-functions-managed-identity) - - [Azure Kubernetes Service managed identity](#azure-kubernetes-service-managed-identity) - [Azure Virtual Machine managed identity](#azure-virtual-machine-managed-identity) - [Troubleshoot WorkloadIdentityCredential authentication issues](#troubleshoot-workloadidentitycredential-authentication-issues) - [Get additional help](#get-additional-help) @@ -120,7 +119,6 @@ azlog.SetEvents(azidentity.EventAuthentication) |---|---|---| |Azure Virtual Machines and Scale Sets|[Configuration](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/qs-configure-portal-windows-vm)|[Troubleshooting](#azure-virtual-machine-managed-identity)| |Azure App Service and Azure Functions|[Configuration](https://learn.microsoft.com/azure/app-service/overview-managed-identity)|[Troubleshooting](#azure-app-service-and-azure-functions-managed-identity)| -|Azure Kubernetes Service|[Configuration](https://azure.github.io/aad-pod-identity/docs/)|[Troubleshooting](#azure-kubernetes-service-managed-identity)| |Azure Arc|[Configuration](https://learn.microsoft.com/azure/azure-arc/servers/managed-identity-authentication)|| |Azure Service Fabric|[Configuration](https://learn.microsoft.com/azure/service-fabric/concepts-managed-identity)|| @@ -159,14 +157,6 @@ curl "$IDENTITY_ENDPOINT?resource=https://management.core.windows.net&api-versio > This command's output will contain an access token and SHOULD NOT BE SHARED, to avoid compromising account security. -### Azure Kubernetes Service managed identity - -#### Pod Identity - -| Error Message |Description| Mitigation | -|---|---|---| -|"no azure identity found for request clientID"|The application attempted to authenticate before an identity was assigned to its pod|Verify the pod is labeled correctly. This also occurs when a correctly labeled pod authenticates before the identity is ready. To prevent initialization races, configure NMI to set the Retry-After header in its responses as described in [Pod Identity documentation](https://azure.github.io/aad-pod-identity/docs/configure/feature_flags/#set-retry-after-header-in-nmi-response). - ## Troubleshoot AzureCLICredential authentication issues diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/assets.json b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/assets.json index 4118f99ef2c91..1646ff9116741 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/assets.json +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "go", "TagPrefix": "go/azidentity", - "Tag": "go/azidentity_191110b0dd" + "Tag": "go/azidentity_530ea4279b" } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go index 0fd03f45634ac..6944152c96e11 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go @@ -7,14 +7,11 @@ package azidentity import ( - "bytes" "context" + "encoding/base64" "encoding/json" "errors" "fmt" - "os" - "os/exec" - "runtime" "strings" "sync" "time" @@ -26,8 +23,6 @@ import ( const credNameAzureCLI = "AzureCLICredential" -type azTokenProvider func(ctx context.Context, scopes []string, tenant, subscription string) ([]byte, error) - // AzureCLICredentialOptions contains optional parameters for AzureCLICredential. type AzureCLICredentialOptions struct { // AdditionallyAllowedTenants specifies tenants to which the credential may authenticate, in addition to @@ -45,15 +40,8 @@ type AzureCLICredentialOptions struct { // inDefaultChain is true when the credential is part of DefaultAzureCredential inDefaultChain bool - // tokenProvider is used by tests to fake invoking az - tokenProvider azTokenProvider -} - -// init returns an instance of AzureCLICredentialOptions initialized with default values. -func (o *AzureCLICredentialOptions) init() { - if o.tokenProvider == nil { - o.tokenProvider = defaultAzTokenProvider - } + // exec is used by tests to fake invoking az + exec executor } // AzureCLICredential authenticates as the identity logged in to the Azure CLI. @@ -80,7 +68,9 @@ func NewAzureCLICredential(options *AzureCLICredentialOptions) (*AzureCLICredent if cp.TenantID != "" && !validTenantID(cp.TenantID) { return nil, errInvalidTenantID } - cp.init() + if cp.exec == nil { + cp.exec = shellExec + } cp.AdditionallyAllowedTenants = resolveAdditionalTenants(cp.AdditionallyAllowedTenants) return &AzureCLICredential{mu: &sync.Mutex{}, opts: cp}, nil } @@ -99,14 +89,37 @@ func (c *AzureCLICredential) GetToken(ctx context.Context, opts policy.TokenRequ if err != nil { return at, err } + // pass the CLI a Microsoft Entra ID v1 resource because we don't know which CLI version is installed and older ones don't support v2 scopes + resource := strings.TrimSuffix(opts.Scopes[0], defaultSuffix) + command := "az account get-access-token -o json --resource " + resource + tenantArg := "" + if tenant != "" { + tenantArg = " --tenant " + tenant + command += tenantArg + } + if c.opts.Subscription != "" { + // subscription needs quotes because it may contain spaces + command += ` --subscription "` + c.opts.Subscription + `"` + } + if opts.Claims != "" { + encoded := base64.StdEncoding.EncodeToString([]byte(opts.Claims)) + return at, fmt.Errorf( + "%s.GetToken(): Azure CLI requires multifactor authentication or additional claims. Run this command then retry the operation: az login%s --claims-challenge %s", + credNameAzureCLI, + tenantArg, + encoded, + ) + } + c.mu.Lock() defer c.mu.Unlock() - b, err := c.opts.tokenProvider(ctx, opts.Scopes, tenant, c.opts.Subscription) + + b, err := c.opts.exec(ctx, credNameAzureCLI, command) if err == nil { at, err = c.createAccessToken(b) } if err != nil { - err = unavailableIfInChain(err, c.opts.inDefaultChain) + err = unavailableIfInDAC(err, c.opts.inDefaultChain) return at, err } msg := fmt.Sprintf("%s.GetToken() acquired a token for scope %q", credNameAzureCLI, strings.Join(opts.Scopes, ", ")) @@ -114,63 +127,6 @@ func (c *AzureCLICredential) GetToken(ctx context.Context, opts policy.TokenRequ return at, nil } -// defaultAzTokenProvider invokes the Azure CLI to acquire a token. It assumes -// callers have verified that all string arguments are safe to pass to the CLI. -var defaultAzTokenProvider azTokenProvider = func(ctx context.Context, scopes []string, tenantID, subscription string) ([]byte, error) { - // pass the CLI a Microsoft Entra ID v1 resource because we don't know which CLI version is installed and older ones don't support v2 scopes - resource := strings.TrimSuffix(scopes[0], defaultSuffix) - // set a default timeout for this authentication iff the application hasn't done so already - var cancel context.CancelFunc - if _, hasDeadline := ctx.Deadline(); !hasDeadline { - ctx, cancel = context.WithTimeout(ctx, cliTimeout) - defer cancel() - } - commandLine := "az account get-access-token -o json --resource " + resource - if tenantID != "" { - commandLine += " --tenant " + tenantID - } - if subscription != "" { - // subscription needs quotes because it may contain spaces - commandLine += ` --subscription "` + subscription + `"` - } - var cliCmd *exec.Cmd - if runtime.GOOS == "windows" { - dir := os.Getenv("SYSTEMROOT") - if dir == "" { - return nil, newCredentialUnavailableError(credNameAzureCLI, "environment variable 'SYSTEMROOT' has no value") - } - cliCmd = exec.CommandContext(ctx, "cmd.exe", "/c", commandLine) - cliCmd.Dir = dir - } else { - cliCmd = exec.CommandContext(ctx, "/bin/sh", "-c", commandLine) - cliCmd.Dir = "/bin" - } - cliCmd.Env = os.Environ() - var stderr bytes.Buffer - cliCmd.Stderr = &stderr - cliCmd.WaitDelay = 100 * time.Millisecond - - stdout, err := cliCmd.Output() - if errors.Is(err, exec.ErrWaitDelay) && len(stdout) > 0 { - // The child process wrote to stdout and exited without closing it. - // Swallow this error and return stdout because it may contain a token. - return stdout, nil - } - if err != nil { - msg := stderr.String() - var exErr *exec.ExitError - if errors.As(err, &exErr) && exErr.ExitCode() == 127 || strings.HasPrefix(msg, "'az' is not recognized") { - msg = "Azure CLI not found on path" - } - if msg == "" { - msg = err.Error() - } - return nil, newCredentialUnavailableError(credNameAzureCLI, msg) - } - - return stdout, nil -} - func (c *AzureCLICredential) createAccessToken(tk []byte) (azcore.AccessToken, error) { t := struct { AccessToken string `json:"accessToken"` diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_developer_cli_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_developer_cli_credential.go index 1bd3720b64977..f97bf95df9b76 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_developer_cli_credential.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_developer_cli_credential.go @@ -7,14 +7,11 @@ package azidentity import ( - "bytes" "context" + "encoding/base64" "encoding/json" "errors" "fmt" - "os" - "os/exec" - "runtime" "strings" "sync" "time" @@ -24,9 +21,10 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/internal/log" ) -const credNameAzureDeveloperCLI = "AzureDeveloperCLICredential" - -type azdTokenProvider func(ctx context.Context, scopes []string, tenant string) ([]byte, error) +const ( + credNameAzureDeveloperCLI = "AzureDeveloperCLICredential" + mfaRequired = "Azure Developer CLI requires multifactor authentication or additional claims" +) // AzureDeveloperCLICredentialOptions contains optional parameters for AzureDeveloperCLICredential. type AzureDeveloperCLICredentialOptions struct { @@ -41,8 +39,8 @@ type AzureDeveloperCLICredentialOptions struct { // inDefaultChain is true when the credential is part of DefaultAzureCredential inDefaultChain bool - // tokenProvider is used by tests to fake invoking azd - tokenProvider azdTokenProvider + // exec is used by tests to fake invoking azd + exec executor } // AzureDeveloperCLICredential authenticates as the identity logged in to the [Azure Developer CLI]. @@ -62,8 +60,8 @@ func NewAzureDeveloperCLICredential(options *AzureDeveloperCLICredentialOptions) if cp.TenantID != "" && !validTenantID(cp.TenantID) { return nil, errInvalidTenantID } - if cp.tokenProvider == nil { - cp.tokenProvider = defaultAzdTokenProvider + if cp.exec == nil { + cp.exec = shellExec } return &AzureDeveloperCLICredential{mu: &sync.Mutex{}, opts: cp}, nil } @@ -75,23 +73,52 @@ func (c *AzureDeveloperCLICredential) GetToken(ctx context.Context, opts policy. if len(opts.Scopes) == 0 { return at, errors.New(credNameAzureDeveloperCLI + ": GetToken() requires at least one scope") } + command := "azd auth token -o json --no-prompt" for _, scope := range opts.Scopes { if !validScope(scope) { return at, fmt.Errorf("%s.GetToken(): invalid scope %q", credNameAzureDeveloperCLI, scope) } + command += " --scope " + scope } tenant, err := resolveTenant(c.opts.TenantID, opts.TenantID, credNameAzureDeveloperCLI, c.opts.AdditionallyAllowedTenants) if err != nil { return at, err } + if tenant != "" { + command += " --tenant-id " + tenant + } + commandNoClaims := command + if opts.Claims != "" { + encoded := base64.StdEncoding.EncodeToString([]byte(opts.Claims)) + command += " --claims " + encoded + } + c.mu.Lock() defer c.mu.Unlock() - b, err := c.opts.tokenProvider(ctx, opts.Scopes, tenant) + + b, err := c.opts.exec(ctx, credNameAzureDeveloperCLI, command) if err == nil { at, err = c.createAccessToken(b) } if err != nil { - err = unavailableIfInChain(err, c.opts.inDefaultChain) + msg := err.Error() + switch { + case strings.Contains(msg, "unknown flag: --claims"): + err = newAuthenticationFailedError( + credNameAzureDeveloperCLI, + mfaRequired+", however the installed version doesn't support this. Upgrade to version 1.18.1 or later", + nil, + ) + case opts.Claims != "": + err = newAuthenticationFailedError( + credNameAzureDeveloperCLI, + mfaRequired+". Run this command then retry the operation: "+commandNoClaims, + nil, + ) + case strings.Contains(msg, "azd auth login"): + err = newCredentialUnavailableError(credNameAzureDeveloperCLI, `please run "azd auth login" from a command prompt to authenticate before using this credential`) + } + err = unavailableIfInDAC(err, c.opts.inDefaultChain) return at, err } msg := fmt.Sprintf("%s.GetToken() acquired a token for scope %q", credNameAzureDeveloperCLI, strings.Join(opts.Scopes, ", ")) @@ -99,61 +126,6 @@ func (c *AzureDeveloperCLICredential) GetToken(ctx context.Context, opts policy. return at, nil } -// defaultAzTokenProvider invokes the Azure Developer CLI to acquire a token. It assumes -// callers have verified that all string arguments are safe to pass to the CLI. -var defaultAzdTokenProvider azdTokenProvider = func(ctx context.Context, scopes []string, tenant string) ([]byte, error) { - // set a default timeout for this authentication iff the application hasn't done so already - var cancel context.CancelFunc - if _, hasDeadline := ctx.Deadline(); !hasDeadline { - ctx, cancel = context.WithTimeout(ctx, cliTimeout) - defer cancel() - } - commandLine := "azd auth token -o json" - if tenant != "" { - commandLine += " --tenant-id " + tenant - } - for _, scope := range scopes { - commandLine += " --scope " + scope - } - var cliCmd *exec.Cmd - if runtime.GOOS == "windows" { - dir := os.Getenv("SYSTEMROOT") - if dir == "" { - return nil, newCredentialUnavailableError(credNameAzureDeveloperCLI, "environment variable 'SYSTEMROOT' has no value") - } - cliCmd = exec.CommandContext(ctx, "cmd.exe", "/c", commandLine) - cliCmd.Dir = dir - } else { - cliCmd = exec.CommandContext(ctx, "/bin/sh", "-c", commandLine) - cliCmd.Dir = "/bin" - } - cliCmd.Env = os.Environ() - var stderr bytes.Buffer - cliCmd.Stderr = &stderr - cliCmd.WaitDelay = 100 * time.Millisecond - - stdout, err := cliCmd.Output() - if errors.Is(err, exec.ErrWaitDelay) && len(stdout) > 0 { - // The child process wrote to stdout and exited without closing it. - // Swallow this error and return stdout because it may contain a token. - return stdout, nil - } - if err != nil { - msg := stderr.String() - var exErr *exec.ExitError - if errors.As(err, &exErr) && exErr.ExitCode() == 127 || strings.HasPrefix(msg, "'azd' is not recognized") { - msg = "Azure Developer CLI not found on path" - } else if strings.Contains(msg, "azd auth login") { - msg = `please run "azd auth login" from a command prompt to authenticate before using this credential` - } - if msg == "" { - msg = err.Error() - } - return nil, newCredentialUnavailableError(credNameAzureDeveloperCLI, msg) - } - return stdout, nil -} - func (c *AzureDeveloperCLICredential) createAccessToken(tk []byte) (azcore.AccessToken, error) { t := struct { AccessToken string `json:"token"` diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml index 38445e8536695..51dd9793908b6 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml @@ -41,6 +41,3 @@ extends: GenerateVMJobs: true Path: sdk/azidentity/managed-identity-matrix.json Selection: sparse - MatrixReplace: - - Pool=.*LINUXPOOL.*/azsdk-pool-mms-ubuntu-2204-identitymsi - - OSVmImage=.*LINUXVMIMAGE.*/azsdk-pool-mms-ubuntu-2204-1espt diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go index 2b94270a8c6a0..c041a52dbbe1a 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go @@ -48,6 +48,10 @@ type DefaultAzureCredentialOptions struct { // the application responsible for ensuring the configured authority is valid and trustworthy. DisableInstanceDiscovery bool + // RequireAzureTokenCredentials determines whether NewDefaultAzureCredential returns an error when the environment + // variable AZURE_TOKEN_CREDENTIALS has no value. + RequireAzureTokenCredentials bool + // TenantID sets the default tenant for authentication via the Azure CLI, Azure Developer CLI, and workload identity. TenantID string } @@ -82,6 +86,10 @@ type DefaultAzureCredentialOptions struct { // - "dev": try [AzureCLICredential] and [AzureDeveloperCLICredential], in that order // - "prod": try [EnvironmentCredential], [WorkloadIdentityCredential], and [ManagedIdentityCredential], in that order // +// [DefaultAzureCredentialOptions].RequireAzureTokenCredentials controls whether AZURE_TOKEN_CREDENTIALS must be set. +// NewDefaultAzureCredential returns an error when RequireAzureTokenCredentials is true and AZURE_TOKEN_CREDENTIALS +// has no value. +// // [DefaultAzureCredential overview]: https://aka.ms/azsdk/go/identity/credential-chains#defaultazurecredential-overview type DefaultAzureCredential struct { chain *ChainedTokenCredential @@ -89,6 +97,10 @@ type DefaultAzureCredential struct { // NewDefaultAzureCredential creates a DefaultAzureCredential. Pass nil for options to accept defaults. func NewDefaultAzureCredential(options *DefaultAzureCredentialOptions) (*DefaultAzureCredential, error) { + if options == nil { + options = &DefaultAzureCredentialOptions{} + } + var ( creds []azcore.TokenCredential errorMessages []string @@ -114,11 +126,10 @@ func NewDefaultAzureCredential(options *DefaultAzureCredentialOptions) (*Default default: return nil, fmt.Errorf(`invalid %s value %q. Valid values are "dev", "prod", or the name of any credential type in the default chain. See https://aka.ms/azsdk/go/identity/docs#DefaultAzureCredential for more information`, azureTokenCredentials, atc) } + } else if options.RequireAzureTokenCredentials { + return nil, fmt.Errorf("%s must be set when RequireAzureTokenCredentials is true. See https://aka.ms/azsdk/go/identity/docs#DefaultAzureCredential for more information", azureTokenCredentials) } - if options == nil { - options = &DefaultAzureCredentialOptions{} - } additionalTenants := options.AdditionallyAllowedTenants if len(additionalTenants) == 0 { if tenants := os.Getenv(azureAdditionallyAllowedTenants); tenants != "" { diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/developer_credential_util.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/developer_credential_util.go index be963d3a2af0d..14f8a0312659b 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/developer_credential_util.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/developer_credential_util.go @@ -7,22 +7,73 @@ package azidentity import ( + "bytes" + "context" "errors" + "os" + "os/exec" + "runtime" + "strings" "time" ) // cliTimeout is the default timeout for authentication attempts via CLI tools const cliTimeout = 10 * time.Second -// unavailableIfInChain returns err or, if the credential was invoked by DefaultAzureCredential, a +// executor runs a command and returns its output or an error +type executor func(ctx context.Context, credName, command string) ([]byte, error) + +var shellExec = func(ctx context.Context, credName, command string) ([]byte, error) { + // set a default timeout for this authentication iff the caller hasn't done so already + var cancel context.CancelFunc + if _, hasDeadline := ctx.Deadline(); !hasDeadline { + ctx, cancel = context.WithTimeout(ctx, cliTimeout) + defer cancel() + } + var cmd *exec.Cmd + if runtime.GOOS == "windows" { + dir := os.Getenv("SYSTEMROOT") + if dir == "" { + return nil, newCredentialUnavailableError(credName, `environment variable "SYSTEMROOT" has no value`) + } + cmd = exec.CommandContext(ctx, "cmd.exe", "/c", command) + cmd.Dir = dir + } else { + cmd = exec.CommandContext(ctx, "/bin/sh", "-c", command) + cmd.Dir = "/bin" + } + cmd.Env = os.Environ() + stderr := bytes.Buffer{} + cmd.Stderr = &stderr + cmd.WaitDelay = 100 * time.Millisecond + + stdout, err := cmd.Output() + if errors.Is(err, exec.ErrWaitDelay) && len(stdout) > 0 { + // The child process wrote to stdout and exited without closing it. + // Swallow this error and return stdout because it may contain a token. + return stdout, nil + } + if err != nil { + msg := stderr.String() + var exErr *exec.ExitError + if errors.As(err, &exErr) && exErr.ExitCode() == 127 || strings.Contains(msg, "' is not recognized") { + return nil, newCredentialUnavailableError(credName, "CLI executable not found on path") + } + if msg == "" { + msg = err.Error() + } + return nil, newAuthenticationFailedError(credName, msg, nil) + } + + return stdout, nil +} + +// unavailableIfInDAC returns err or, if the credential was invoked by DefaultAzureCredential, a // credentialUnavailableError having the same message. This ensures DefaultAzureCredential will try // the next credential in its chain (another developer credential). -func unavailableIfInChain(err error, inDefaultChain bool) error { - if err != nil && inDefaultChain { - var unavailableErr credentialUnavailable - if !errors.As(err, &unavailableErr) { - err = newCredentialUnavailableError(credNameAzureDeveloperCLI, err.Error()) - } +func unavailableIfInDAC(err error, inDefaultChain bool) error { + if err != nil && inDefaultChain && !errors.As(err, new(credentialUnavailable)) { + err = NewCredentialUnavailableError(err.Error()) } return err } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed-identity-matrix.json b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed-identity-matrix.json index f92245533fcb2..063325c69d672 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed-identity-matrix.json +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed-identity-matrix.json @@ -10,8 +10,7 @@ }, "GoVersion": [ "env:GO_VERSION_PREVIOUS" - ], - "IDENTITY_IMDS_AVAILABLE": "1" + ] } ] -} +} \ No newline at end of file diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources-post.ps1 b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources-post.ps1 index 874d4ef37ddf0..c5634cd21d073 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources-post.ps1 +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources-post.ps1 @@ -41,7 +41,7 @@ if ($CI) { az account set --subscription $SubscriptionId } -Write-Host "Building container" +Write-Host "##[group]Building container" $image = "$($DeploymentOutputs['AZIDENTITY_ACR_LOGIN_SERVER'])/azidentity-managed-id-test" Set-Content -Path "$PSScriptRoot/Dockerfile" -Value @" FROM mcr.microsoft.com/oss/go/microsoft/golang:latest AS builder @@ -62,11 +62,34 @@ CMD ["./managed-id-test"] docker build -t $image "$PSScriptRoot" az acr login -n $DeploymentOutputs['AZIDENTITY_ACR_NAME'] docker push $image +Write-Host "##[endgroup]" $rg = $DeploymentOutputs['AZIDENTITY_RESOURCE_GROUP'] +Write-Host "##[group]Deploying to VM" +# az will return 0 when the script fails on the VM, so the script prints a UUID to indicate all commands succeeded +$uuid = [guid]::NewGuid().ToString() +$vmScript = @" +az acr login -n $($DeploymentOutputs['AZIDENTITY_ACR_NAME']) && \ +sudo docker run \ +-e AZIDENTITY_STORAGE_NAME=$($DeploymentOutputs['AZIDENTITY_STORAGE_NAME']) \ +-e AZIDENTITY_STORAGE_NAME_USER_ASSIGNED=$($DeploymentOutputs['AZIDENTITY_STORAGE_NAME_USER_ASSIGNED']) \ +-e AZIDENTITY_USER_ASSIGNED_IDENTITY=$($DeploymentOutputs['AZIDENTITY_USER_ASSIGNED_IDENTITY']) \ +-e AZIDENTITY_USER_ASSIGNED_IDENTITY_CLIENT_ID=$($DeploymentOutputs['AZIDENTITY_USER_ASSIGNED_IDENTITY_CLIENT_ID']) \ +-e AZIDENTITY_USER_ASSIGNED_IDENTITY_OBJECT_ID=$($DeploymentOutputs['AZIDENTITY_USER_ASSIGNED_IDENTITY_OBJECT_ID']) \ +-p 80:8080 -d \ +$image && \ +/usr/bin/echo $uuid +"@ +$output = az vm run-command invoke -g $rg -n $DeploymentOutputs['AZIDENTITY_VM_NAME'] --command-id RunShellScript --scripts "$vmScript" | Out-String +Write-Host $output +if (-not $output.Contains($uuid)) { + throw "couldn't start container on VM" +} +Write-Host "##[endgroup]" + # ACI is easier to provision here than in the bicep file because the image isn't available before now -Write-Host "Deploying Azure Container Instance" +Write-Host "##[group]Deploying Azure Container Instance" $aciName = "azidentity-test" az container create -g $rg -n $aciName --image $image ` --acr-identity $($DeploymentOutputs['AZIDENTITY_USER_ASSIGNED_IDENTITY']) ` @@ -85,23 +108,27 @@ az container create -g $rg -n $aciName --image $image ` FUNCTIONS_CUSTOMHANDLER_PORT=80 $aciIP = az container show -g $rg -n $aciName --query ipAddress.ip --output tsv Write-Host "##vso[task.setvariable variable=AZIDENTITY_ACI_IP;]$aciIP" +Write-Host "##[endgroup]" # Azure Functions deployment: copy the Windows binary from the Docker image, deploy it in a zip -Write-Host "Deploying to Azure Functions" +Write-Host "##[group]Deploying to Azure Functions" $container = docker create $image docker cp ${container}:managed-id-test.exe "$PSScriptRoot/testdata/managed-id-test/" docker rm -v $container Compress-Archive -Path "$PSScriptRoot/testdata/managed-id-test/*" -DestinationPath func.zip -Force az functionapp deploy -g $rg -n $DeploymentOutputs['AZIDENTITY_FUNCTION_NAME'] --src-path func.zip --type zip +Write-Host "##[endgroup]" -Write-Host "Creating federated identity" +Write-Host "##[group]Creating federated identity" $aksName = $DeploymentOutputs['AZIDENTITY_AKS_NAME'] $idName = $DeploymentOutputs['AZIDENTITY_USER_ASSIGNED_IDENTITY_NAME'] $issuer = az aks show -g $rg -n $aksName --query "oidcIssuerProfile.issuerUrl" -otsv $podName = "azidentity-test" $serviceAccountName = "workload-identity-sa" az identity federated-credential create -g $rg --identity-name $idName --issuer $issuer --name $idName --subject system:serviceaccount:default:$serviceAccountName --audiences api://AzureADTokenExchange -Write-Host "Deploying to AKS" +Write-Host "##[endgroup]" + +Write-Host "##[group]Deploying to AKS" az aks get-credentials -g $rg -n $aksName az aks update --attach-acr $DeploymentOutputs['AZIDENTITY_ACR_NAME'] -g $rg -n $aksName Set-Content -Path "$PSScriptRoot/k8s.yaml" -Value @" @@ -138,3 +165,4 @@ spec: "@ kubectl apply -f "$PSScriptRoot/k8s.yaml" Write-Host "##vso[task.setvariable variable=AZIDENTITY_POD_NAME;]$podName" +Write-Host "##[endgroup]" diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources.bicep b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources.bicep index 135feb0178e13..cb3b5f4df42b1 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources.bicep +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/test-resources.bicep @@ -19,7 +19,10 @@ param location string = resourceGroup().location // https://learn.microsoft.com/azure/role-based-access-control/built-in-roles var acrPull = subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '7f951dda-4ed3-4680-a7ca-43fe172d538d') -var blobReader = subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1') +var blobReader = subscriptionResourceId( + 'Microsoft.Authorization/roleDefinitions', + '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1' +) resource sa 'Microsoft.Storage/storageAccounts@2021-08-01' = if (deployResources) { kind: 'StorageV2' @@ -60,6 +63,16 @@ resource acrPullContainerInstance 'Microsoft.Authorization/roleAssignments@2022- scope: containerRegistry } +resource acrPullVM 'Microsoft.Authorization/roleAssignments@2022-04-01' = if (deployResources) { + name: guid(resourceGroup().id, acrPull, 'vm') + properties: { + principalId: deployResources ? vm.identity.principalId : '' + principalType: 'ServicePrincipal' + roleDefinitionId: acrPull + } + scope: containerRegistry +} + resource blobRoleUserAssigned 'Microsoft.Authorization/roleAssignments@2022-04-01' = if (deployResources) { scope: saUserAssigned name: guid(resourceGroup().id, blobReader, usermgdid.id) @@ -80,6 +93,16 @@ resource blobRoleFunc 'Microsoft.Authorization/roleAssignments@2022-04-01' = if scope: sa } +resource blobRoleVM 'Microsoft.Authorization/roleAssignments@2022-04-01' = if (deployResources) { + scope: sa + name: guid(resourceGroup().id, blobReader, 'vm') + properties: { + principalId: deployResources ? vm.identity.principalId : '' + roleDefinitionId: blobReader + principalType: 'ServicePrincipal' + } +} + resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' = if (deployResources) { location: location name: uniqueString(resourceGroup().id) @@ -215,6 +238,143 @@ resource aks 'Microsoft.ContainerService/managedClusters@2023-06-01' = if (deplo } } +resource publicIP 'Microsoft.Network/publicIPAddresses@2023-05-01' = if (deployResources) { + name: '${baseName}PublicIP' + location: location + sku: { + name: 'Standard' + } + properties: { + publicIPAllocationMethod: 'Static' + } +} + +resource nsg 'Microsoft.Network/networkSecurityGroups@2024-07-01' = if (deployResources) { + name: '${baseName}NSG' + location: location + properties: { + securityRules: [ + { + name: 'AllowHTTP' + properties: { + description: 'Allow HTTP traffic on port 80' + protocol: 'Tcp' + sourcePortRange: '*' + destinationPortRange: '80' + sourceAddressPrefix: '*' + destinationAddressPrefix: '*' + access: 'Allow' + priority: 1000 + direction: 'Inbound' + } + } + ] + } +} + +resource vnet 'Microsoft.Network/virtualNetworks@2024-07-01' = if (deployResources) { + name: '${baseName}vnet' + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/16' + ] + } + subnets: [ + { + name: '${baseName}subnet' + properties: { + addressPrefix: '10.0.0.0/24' + defaultOutboundAccess: false + networkSecurityGroup: { + id: deployResources ? nsg.id : '' + } + } + } + ] + } +} + +resource nic 'Microsoft.Network/networkInterfaces@2024-07-01' = if (deployResources) { + name: '${baseName}NIC' + location: location + properties: { + ipConfigurations: [ + { + name: 'myIPConfig' + properties: { + privateIPAllocationMethod: 'Dynamic' + publicIPAddress: { + id: deployResources ? publicIP.id : '' + } + subnet: { + id: deployResources ? vnet.properties.subnets[0].id : '' + } + } + } + ] + } +} + +resource vm 'Microsoft.Compute/virtualMachines@2024-07-01' = if (deployResources) { + name: '${baseName}vm' + location: location + identity: { + type: 'SystemAssigned, UserAssigned' + userAssignedIdentities: { + '${deployResources ? usermgdid.id: ''}': {} + } + } + properties: { + hardwareProfile: { + vmSize: 'Standard_DS1_v2' + } + osProfile: { + adminUsername: adminUser + computerName: '${baseName}vm' + customData: base64(''' +#cloud-config +package_update: true +packages: + - docker.io +runcmd: + - curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + - az login --identity --allow-no-subscriptions +''') + linuxConfiguration: { + disablePasswordAuthentication: true + ssh: { + publicKeys: [ + { + path: '/home/${adminUser}/.ssh/authorized_keys' + keyData: sshPubKey + } + ] + } + } + } + networkProfile: { + networkInterfaces: [ + { + id: deployResources ? nic.id : '' + } + ] + } + storageProfile: { + imageReference: { + publisher: 'Canonical' + offer: 'ubuntu-24_04-lts' + sku: 'server' + version: 'latest' + } + osDisk: { + createOption: 'FromImage' + } + } + } +} + output AZIDENTITY_ACR_LOGIN_SERVER string = deployResources ? containerRegistry.properties.loginServer : '' output AZIDENTITY_ACR_NAME string = deployResources ? containerRegistry.name : '' output AZIDENTITY_AKS_NAME string = deployResources ? aks.name : '' @@ -226,3 +386,5 @@ output AZIDENTITY_USER_ASSIGNED_IDENTITY string = deployResources ? usermgdid.id output AZIDENTITY_USER_ASSIGNED_IDENTITY_CLIENT_ID string = deployResources ? usermgdid.properties.clientId : '' output AZIDENTITY_USER_ASSIGNED_IDENTITY_NAME string = deployResources ? usermgdid.name : '' output AZIDENTITY_USER_ASSIGNED_IDENTITY_OBJECT_ID string = deployResources ? usermgdid.properties.principalId : '' +output AZIDENTITY_VM_NAME string = deployResources ? vm.name : '' +output AZIDENTITY_VM_IP string = deployResources ? publicIP.properties.ipAddress : '' diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go index c3a70c4f2e43e..4c88605366da4 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go @@ -14,5 +14,5 @@ const ( module = "github.com/Azure/azure-sdk-for-go/sdk/" + component // Version is the semantic version (see http://semver.org) of this module. - version = "v1.11.0" + version = "v1.12.0" ) diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go index cda678e334267..c6baf2094777f 100644 --- a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go @@ -143,9 +143,10 @@ func (s *Server) handler(w http.ResponseWriter, r *http.Request) { headerErr := q.Get("error") if headerErr != "" { desc := html.EscapeString(q.Get("error_description")) + escapedHeaderErr := html.EscapeString(headerErr) // Note: It is a little weird we handle some errors by not going to the failPage. If they all should, // change this to s.error() and make s.error() write the failPage instead of an error code. - _, _ = w.Write([]byte(fmt.Sprintf(failPage, headerErr, desc))) + _, _ = w.Write([]byte(fmt.Sprintf(failPage, escapedHeaderErr, desc))) s.putResult(Result{Err: fmt.Errorf("%s", desc)}) return diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go index c3c4a96fc3020..3f403746404c4 100644 --- a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go @@ -46,9 +46,11 @@ type jsonCaller interface { JSONCall(ctx context.Context, endpoint string, headers http.Header, qv url.Values, body, resp interface{}) error } +// For backward compatibility, accept both old and new China endpoints for a transition period. var aadTrustedHostList = map[string]bool{ "login.windows.net": true, // Microsoft Azure Worldwide - Used in validation scenarios where host is not this list - "login.partner.microsoftonline.cn": true, // Microsoft Azure China + "login.partner.microsoftonline.cn": true, // Microsoft Azure China (new) + "login.chinacloudapi.cn": true, // Microsoft Azure China (legacy, backward compatibility) "login.microsoftonline.de": true, // Microsoft Azure Blackforest "login-us.microsoftonline.com": true, // Microsoft Azure US Government - Legacy "login.microsoftonline.us": true, // Microsoft Azure US Government @@ -98,6 +100,41 @@ func (r *TenantDiscoveryResponse) Validate() error { return nil } +// ValidateIssuerMatchesAuthority validates that the issuer in the TenantDiscoveryResponse matches the authority. +// This is used to identity security or configuration issues in authorities and the OIDC endpoint +func (r *TenantDiscoveryResponse) ValidateIssuerMatchesAuthority(authorityURI string, aliases map[string]bool) error { + + if authorityURI == "" { + return errors.New("TenantDiscoveryResponse: empty authorityURI provided for validation") + } + + // Parse the issuer URL + issuerURL, err := url.Parse(r.Issuer) + if err != nil { + return fmt.Errorf("TenantDiscoveryResponse: failed to parse issuer URL: %w", err) + } + + // Even if it doesn't match the authority, issuers from known and trusted hosts are valid + if aliases != nil && aliases[issuerURL.Host] { + return nil + } + + // Parse the authority URL for comparison + authorityURL, err := url.Parse(authorityURI) + if err != nil { + return fmt.Errorf("TenantDiscoveryResponse: failed to parse authority URL: %w", err) + } + + // Check if the scheme and host match (paths can be ignored when validating the issuer) + if issuerURL.Scheme == authorityURL.Scheme && issuerURL.Host == authorityURL.Host { + return nil + } + + // If we get here, validation failed + return fmt.Errorf("TenantDiscoveryResponse: issuer from OIDC discovery '%s' does not match authority '%s' or a known pattern", + r.Issuer, authorityURI) +} + type InstanceDiscoveryMetadata struct { PreferredNetwork string `json:"preferred_network"` PreferredCache string `json:"preferred_cache"` @@ -354,6 +391,8 @@ type Info struct { Tenant string Region string InstanceDiscoveryDisabled bool + // InstanceDiscoveryMetadata stores the metadata from AAD instance discovery + InstanceDiscoveryMetadata []InstanceDiscoveryMetadata } // NewInfoFromAuthorityURI creates an AuthorityInfo instance from the authority URL provided. diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go index 4030ec8d8f1be..d220a99466c1d 100644 --- a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go @@ -21,10 +21,12 @@ import ( type cacheEntry struct { Endpoints authority.Endpoints ValidForDomainsInList map[string]bool + // Aliases stores host aliases from instance discovery for quick lookup + Aliases map[string]bool } func createcacheEntry(endpoints authority.Endpoints) cacheEntry { - return cacheEntry{endpoints, map[string]bool{}} + return cacheEntry{endpoints, map[string]bool{}, map[string]bool{}} } // AuthorityEndpoint retrieves endpoints from an authority for auth and token acquisition. @@ -71,10 +73,15 @@ func (m *authorityEndpoint) ResolveEndpoints(ctx context.Context, authorityInfo m.addCachedEndpoints(authorityInfo, userPrincipalName, endpoints) + if err := resp.ValidateIssuerMatchesAuthority(authorityInfo.CanonicalAuthorityURI, + m.cache[authorityInfo.CanonicalAuthorityURI].Aliases); err != nil { + return authority.Endpoints{}, fmt.Errorf("ResolveEndpoints(): %w", err) + } + return endpoints, nil } -// cachedEndpoints returns a the cached endpoints if they exists. If not, we return false. +// cachedEndpoints returns the cached endpoints if they exist. If not, we return false. func (m *authorityEndpoint) cachedEndpoints(authorityInfo authority.Info, userPrincipalName string) (authority.Endpoints, bool) { m.mu.Lock() defer m.mu.Unlock() @@ -113,6 +120,13 @@ func (m *authorityEndpoint) addCachedEndpoints(authorityInfo authority.Info, use } } + // Extract aliases from instance discovery metadata and add to cache + for _, metadata := range authorityInfo.InstanceDiscoveryMetadata { + for _, alias := range metadata.Aliases { + updatedCacheEntry.Aliases[alias] = true + } + } + m.cache[authorityInfo.CanonicalAuthorityURI] = updatedCacheEntry } @@ -127,12 +141,14 @@ func (m *authorityEndpoint) openIDConfigurationEndpoint(ctx context.Context, aut if err != nil { return "", err } + authorityInfo.InstanceDiscoveryMetadata = resp.Metadata return resp.TenantDiscoveryEndpoint, nil } else if authorityInfo.Region != "" { resp, err := m.rest.Authority().AADInstanceDiscovery(ctx, authorityInfo) if err != nil { return "", err } + authorityInfo.InstanceDiscoveryMetadata = resp.Metadata return resp.TenantDiscoveryEndpoint, nil } diff --git a/vendor/modules.txt b/vendor/modules.txt index a69de80a948af..56c9c98d69fb3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -33,7 +33,7 @@ github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming github.com/Azure/azure-sdk-for-go/sdk/azcore/to github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing -# github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0 +# github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 ## explicit; go 1.23.0 github.com/Azure/azure-sdk-for-go/sdk/azidentity github.com/Azure/azure-sdk-for-go/sdk/azidentity/internal @@ -56,7 +56,7 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v7 ## explicit; go 1.16 github.com/Azure/go-ansiterm github.com/Azure/go-ansiterm/winterm -# github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 +# github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 ## explicit; go 1.18 github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential From da5d8f457df4fa2c9422880712459060679cfb3d Mon Sep 17 00:00:00 2001 From: Liyi Huang Date: Wed, 17 Sep 2025 19:28:01 -0400 Subject: [PATCH 130/176] pkg/lrp: increase coverage for the unit test. Add the unit test to cover the case that the backend container has more than one ports where we need to do the port filter. https://github.com/cilium/cilium/issues/41407. Signed-off-by: Liyi Huang --- .../address-matcher-named-ports.txtar | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar b/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar index 3959101ce1596..d0f9cf03804d4 100644 --- a/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar +++ b/pkg/loadbalancer/redirectpolicy/testdata/address-matcher-named-ports.txtar @@ -1,4 +1,4 @@ -# AddressMatcherLRPs with named ports, LRP resources applied in different orders +# AddressMatcherLRPs with named and unnamed ports, LRP resources applied in different orders hive start @@ -45,6 +45,21 @@ db/cmp services services-single.table db/cmp frontends frontends-single.table db/cmp backends backends-single.table +# Remove the LRP. +k8s/delete lrp-addr-single.yaml + +# Tables and maps should now be empty. +* db/empty services frontends backends localredirectpolicies + +# Add LRP with single unnamed port to cover https://github.com/cilium/cilium/issues/41407 +k8s/add lrp-addr-unnamed.yaml + +# Compare tables +db/cmp localredirectpolicies lrp-unnamed.table +db/cmp services services-unnamed.table +db/cmp frontends frontends-unnamed.table +db/cmp backends backends-unnamed.table + -- lrp.table -- Name Type FrontendType Frontends test/lrp-addr address addr-named-ports 169.254.169.254:5050/TCP, 169.254.169.254:5051/TCP @@ -67,18 +82,34 @@ Address Instances Name Type FrontendType Frontends test/lrp-addr-single address addr-single-port 169.254.169.254:5050/TCP +-- lrp-unnamed.table -- +Name Type FrontendType Frontends +test/lrp-addr-unnamed address addr-single-port 169.254.169.254:5050/TCP + -- services-single.table -- Name Source test/lrp-addr-single:local-redirect k8s +-- services-unnamed.table -- +Name Source +test/lrp-addr-unnamed:local-redirect k8s + -- frontends-single.table -- Address Type ServiceName Backends RedirectTo Status 169.254.169.254:5050/TCP LocalRedirect test/lrp-addr-single:local-redirect 10.244.2.1:50/TCP Done +-- frontends-unnamed.table -- +Address Type ServiceName Backends RedirectTo Status +169.254.169.254:5050/TCP LocalRedirect test/lrp-addr-unnamed:local-redirect 10.244.2.1:50/TCP Done + -- backends-single.table -- Address Instances 10.244.2.1:50/TCP test/lrp-addr-single:local-redirect +-- backends-unnamed.table -- +Address Instances +10.244.2.1:50/TCP test/lrp-addr-unnamed:local-redirect + -- lrp-addr.yaml -- apiVersion: "cilium.io/v2" kind: CiliumLocalRedirectPolicy @@ -131,6 +162,26 @@ spec: name: "test" protocol: TCP +-- lrp-addr-unnamed.yaml -- +apiVersion: "cilium.io/v2" +kind: CiliumLocalRedirectPolicy +metadata: + name: "lrp-addr-unnamed" + namespace: test +spec: + redirectFrontend: + addressMatcher: + ip: "169.254.169.254" + toPorts: + - port: "5050" + protocol: TCP + redirectBackend: + localEndpointSelector: + matchLabels: + app: proxy + toPorts: + - port: "50" + protocol: TCP -- pod.yaml -- apiVersion: v1 kind: Pod @@ -178,6 +229,8 @@ spec: ports: - containerPort: 50 protocol: TCP + - containerPort: 51 + protocol: TCP nodeName: testnode status: hostIP: 172.19.0.3 From aa54808490d8417c247bae35e679f54dbe2f14a4 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 08:13:18 +0000 Subject: [PATCH 131/176] chore(deps): update renovate dependencies to v41.122.0 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/renovate-config-validator.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate-config-validator.yaml b/.github/workflows/renovate-config-validator.yaml index 8919739e582b9..bdd0e701f1f2f 100644 --- a/.github/workflows/renovate-config-validator.yaml +++ b/.github/workflows/renovate-config-validator.yaml @@ -18,7 +18,7 @@ jobs: - name: Validate configuration run: | # renovate: datasource=docker - export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.121.4@sha256:e76058e38ecb1acd19408e9a3fa1fa278e9b925305e81151e0497bd880116b69 + export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.0@sha256:96c85fecf451e1a07f61ce11fb2ecac5d9d44f5affc41a7e19e74f4ba96fe64c docker run --rm --entrypoint "renovate-config-validator" \ -v "${{ github.workspace }}/.github/renovate.json5":"/renovate.json5" \ ${RENOVATE_IMAGE} "/renovate.json5" diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 14cee008fd9ad..bb64c6511f3d1 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -40,7 +40,7 @@ jobs: LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} with: # renovate: datasource=github-releases depName=renovatebot/renovate - renovate-version: 41.121.4 + renovate-version: 41.122.0 docker-user: root docker-cmd-file: .github/actions/renovate/entrypoint.sh configurationFile: .github/renovate.json5 From 447e70d71c2b803d6b56713687331b4a0c401398 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 00:37:58 +0000 Subject: [PATCH 132/176] chore(deps): update all lvh-images main Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/actions/e2e/configs.yaml | 62 +++++++++---------- .github/actions/e2e/ipsec_configs.yaml | 16 ++--- .github/actions/ginkgo/main-k8s-versions.yaml | 4 +- .../workflows/tests-datapath-verifier.yaml | 12 ++-- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/.github/actions/e2e/configs.yaml b/.github/actions/e2e/configs.yaml index 9ffaa14e4635d..b38e58ec52cfb 100644 --- a/.github/actions/e2e/configs.yaml +++ b/.github/actions/e2e/configs.yaml @@ -8,7 +8,7 @@ misc: 'bpfClockProbe=false,cni.uninstall=false,tls.readSecretsOnlyFromSecretsNamespace=false,tls.secretSync.enabled=false' - name: '2' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -16,7 +16,7 @@ misc: 'bpfClockProbe=false,cni.uninstall=false,tls.readSecretsOnlyFromSecretsNamespace=false,tls.secretSync.enabled=false' - name: '3' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -24,7 +24,7 @@ kvstore: 'true' - name: '4' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -36,7 +36,7 @@ ingress-controller: 'true' - name: '5' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250915.013221' + kernel: '5.15-20250917.183741' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -49,7 +49,7 @@ ingress-controller: 'true' - name: '6' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.1-20250915.013221' + kernel: '6.1-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -64,7 +64,7 @@ bgp-control-plane: 'true' - name: '7' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -79,7 +79,7 @@ misc: 'bpfClockProbe=false,cni.uninstall=false,tls.secretsBackend=k8s,tls.secretSync.enabled=true' - name: '8' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'geneve' @@ -90,7 +90,7 @@ skip-include-conn-disrupt-test-ns-traffic: 'true' - name: '9' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -104,7 +104,7 @@ ingress-controller: 'true' - name: '10' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250915.013221' + kernel: '5.15-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -117,7 +117,7 @@ kvstore: 'true' - name: '11' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.1-20250915.013221' + kernel: '6.1-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -133,7 +133,7 @@ node-local-dns: 'true' - name: '12' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -158,7 +158,7 @@ # explains why 5.4 might cause north-south-loadbalancing tests to # fail. # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250915.013221' + kernel: '5.15-20250917.183741' kube-proxy: 'iptables' kpr: 'true' devices: '{eth0,eth1}' @@ -171,7 +171,7 @@ ingress-controller: 'true' - name: '15' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -183,7 +183,7 @@ ciliumendpointslice: 'true' - name: '16' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250915.013221' + kernel: '5.15-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -197,7 +197,7 @@ ingress-controller: 'true' - name: '17' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -208,7 +208,7 @@ ingress-controller: 'true' - name: '18' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit-l2,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -219,7 +219,7 @@ ingress-controller: 'true' - name: '19' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit' kube-proxy: 'none' kpr: 'true' @@ -230,7 +230,7 @@ kvstore: 'true' - name: '20' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit-l2' kube-proxy: 'none' kpr: 'true' @@ -240,7 +240,7 @@ ingress-controller: 'true' - name: '21' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit' kube-proxy: 'none' kpr: 'true' @@ -250,7 +250,7 @@ ingress-controller: 'true' - name: '22' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit-l2' kube-proxy: 'none' kpr: 'true' @@ -260,7 +260,7 @@ ingress-controller: 'true' - name: '23' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit' kube-proxy: 'none' kpr: 'true' @@ -272,7 +272,7 @@ host-fw: 'true' - name: '24' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -285,7 +285,7 @@ ingress-controller: 'true' - name: '25' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' misc: 'bpf.datapathMode=netkit-l2,enableIPv4BIGTCP=true,enableIPv6BIGTCP=true' kube-proxy: 'none' kpr: 'true' @@ -298,7 +298,7 @@ ingress-controller: 'true' - name: '26' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.6-20250915.013221' + kernel: '6.6-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -309,7 +309,7 @@ ingress-controller: 'true' - name: '27' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.6-20250915.013221' + kernel: '6.6-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -320,7 +320,7 @@ ingress-controller: 'true' - name: '28' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.6-20250915.013221' + kernel: '6.6-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -332,7 +332,7 @@ ingress-controller: 'true' - name: '29' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -345,7 +345,7 @@ skip-upgrade: 'true' - name: '30' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -356,7 +356,7 @@ ingress-controller: 'true' - name: '31' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -368,7 +368,7 @@ ingress-controller: 'true' - name: '32' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250915.013221' + kernel: '5.15-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -380,7 +380,7 @@ skip-upgrade: 'true' - name: '33' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'iptables' kpr: 'false' ipv6: 'true' diff --git a/.github/actions/e2e/ipsec_configs.yaml b/.github/actions/e2e/ipsec_configs.yaml index a0ca4eb8de526..d50d634dabaa9 100644 --- a/.github/actions/e2e/ipsec_configs.yaml +++ b/.github/actions/e2e/ipsec_configs.yaml @@ -9,7 +9,7 @@ key-two: 'rfc4106-gcm-aes' - name: 'ipsec-2' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -18,7 +18,7 @@ key-two: 'cbc-aes-sha256' - name: 'ipsec-3' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'disabled' @@ -29,7 +29,7 @@ kvstore: 'true' - name: 'ipsec-4' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'geneve' @@ -40,7 +40,7 @@ kvstore: 'true' - name: 'ipsec-5' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -51,7 +51,7 @@ key-two: 'cbc-aes-sha256' - name: 'ipsec-6' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.10-20250915.013221' + kernel: '5.10-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -65,7 +65,7 @@ key-two: 'rfc4106-gcm-aes' - name: 'ipsec-7' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '5.15-20250915.013221' + kernel: '5.15-20250917.183741' kube-proxy: 'iptables' kpr: 'false' tunnel: 'vxlan' @@ -76,7 +76,7 @@ skip-upgrade: 'true' - name: 'ipsec-8' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' @@ -89,7 +89,7 @@ key-two: 'rfc4106-gcm-aes' - name: 'ipsec-9' # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: '6.12-20250915.013221' + kernel: '6.12-20250917.183741' kube-proxy: 'none' kpr: 'true' devices: '{eth0,eth1}' diff --git a/.github/actions/ginkgo/main-k8s-versions.yaml b/.github/actions/ginkgo/main-k8s-versions.yaml index 126db9aa4ff70..8c674a2494f29 100644 --- a/.github/actions/ginkgo/main-k8s-versions.yaml +++ b/.github/actions/ginkgo/main-k8s-versions.yaml @@ -6,7 +6,7 @@ include: # renovate: datasource=docker kube-image: "quay.io/cilium/kindest-node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a" # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: "6.12-20250915.013221" + kernel: "6.12-20250917.183741" kernel-type: "latest" - k8s-version: "1.33" @@ -30,5 +30,5 @@ include: # renovate: datasource=docker kube-image: "quay.io/cilium/kindest-node:v1.31.0@sha256:d2b2a8cd6fa282b9a4126938341a4d2924dfa96f60b1f983d519498c9cde1a99" # renovate: datasource=docker depName=quay.io/lvh-images/kind - kernel: "5.10-20250915.013221" + kernel: "5.10-20250917.183741" kernel-type: "stable" diff --git a/.github/workflows/tests-datapath-verifier.yaml b/.github/workflows/tests-datapath-verifier.yaml index 1380a26eef06f..34a7ac70f5283 100644 --- a/.github/workflows/tests-datapath-verifier.yaml +++ b/.github/workflows/tests-datapath-verifier.yaml @@ -86,22 +86,22 @@ jobs: - kernel: 'rhel8.6-20250812.093650' ci-kernel: '510' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '5.10-20250915.013221' + - kernel: '5.10-20250917.183741' ci-kernel: '510' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '5.15-20250915.013221' + - kernel: '5.15-20250917.183741' ci-kernel: '510' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '6.1-20250915.013221' + - kernel: '6.1-20250917.183741' ci-kernel: '61' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '6.6-20250915.013221' + - kernel: '6.6-20250917.183741' ci-kernel: '61' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: '6.12-20250915.013221' + - kernel: '6.12-20250917.183741' ci-kernel: '61' # renovate: datasource=docker depName=quay.io/lvh-images/complexity-test - - kernel: 'bpf-next-20250915.013221' + - kernel: 'bpf-next-20250917.183741' ci-kernel: 'netnext' timeout-minutes: 60 steps: From 80a4ae78469a34d9177a7c39b2a5f7eb6aa913ca Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 00:39:56 +0000 Subject: [PATCH 133/176] fix(deps): update module github.com/aws/aws-sdk-go-v2/service/ec2 to v1.253.0 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 +- .../aws-sdk-go-v2/service/ec2/CHANGELOG.md | 8 + .../service/ec2/api_op_CopySnapshot.go | 21 +- .../service/ec2/api_op_CreateFpgaImage.go | 4 +- .../ec2/api_op_DescribeImageReferences.go | 2 +- .../service/ec2/api_op_DescribeInstances.go | 14 +- .../api_op_DisableImageBlockPublicAccess.go | 5 - .../service/ec2/deserializers.go | 290 ++++++++++++++++++ .../service/ec2/go_module_metadata.go | 2 +- .../aws-sdk-go-v2/service/ec2/serializers.go | 78 +++++ .../aws-sdk-go-v2/service/ec2/types/enums.go | 4 + .../aws-sdk-go-v2/service/ec2/types/types.go | 182 +++++++++-- vendor/modules.txt | 2 +- 14 files changed, 553 insertions(+), 65 deletions(-) diff --git a/go.mod b/go.mod index 162d775622898..127deb5b3b794 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.39.0 github.com/aws/aws-sdk-go-v2/config v1.31.8 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0 github.com/aws/smithy-go v1.23.0 github.com/blang/semver/v4 v4.0.0 github.com/cespare/xxhash/v2 v2.3.0 diff --git a/go.sum b/go.sum index 4c5a48a864e6d..3ebe0600ef399 100644 --- a/go.sum +++ b/go.sum @@ -90,8 +90,8 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 h1:Y6DTZUn7ZUC4th9FMBb github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 h1:6TssXFfLHcwUS5E3MdYKkCFeOrYVBlDhJjs5kRJp0ic= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2/go.mod h1:MXJiLJZtMqb2dVXgEIn35d5+7MqLd4r8noLen881kpk= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0 h1:x0v1n45AT+uZvNoQI8xtegVUOZoQIF+s9qwNcl7Ivyg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0/go.mod h1:MXJiLJZtMqb2dVXgEIn35d5+7MqLd4r8noLen881kpk= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8= diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md index 498ec3d574b49..a12bf45b117c1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.253.0 (2025-09-18) + +* **Feature**: Allowed AMIs adds support for four new parameters - marketplaceProductCodes, deprecationTimeCondition, creationDateCondition and imageNames + +# v1.252.0 (2025-09-17) + +* **Feature**: Add mac-m4.metal and mac-m4pro.metal instance types. + # v1.251.2 (2025-09-10) * No change notes available for this release. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CopySnapshot.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CopySnapshot.go index 04748f31e0a9d..8fcec9ada6db4 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CopySnapshot.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CopySnapshot.go @@ -28,25 +28,22 @@ import ( // // - If the source snapshot is on an Outpost, you can't copy it. // -// When copying snapshots to a Region, copies of encrypted EBS snapshots remain -// encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable -// encryption for the snapshot copy operation. By default, encrypted snapshot -// copies use the default KMS key; however, you can specify a different KMS key. To -// copy an encrypted snapshot that has been shared from another account, you must -// have permissions for the KMS key used to encrypt the snapshot. +// When copying snapshots to a Region, the encryption outcome for the snapshot +// copy depends on the Amazon EBS encryption by default setting for the destination +// Region, the encryption status of the source snapshot, and the encryption +// parameters you specify in the request. For more information, see [Encryption and snapshot copying]. // -// Snapshots copied to an Outpost are encrypted by default using the default -// encryption key for the Region, or a different key that you specify in the -// request using KmsKeyId. Outposts do not support unencrypted snapshots. For more -// information, see [Amazon EBS local snapshots on Outposts]in the Amazon EBS User Guide. +// Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots are not +// supported on Outposts. For more information, [Amazon EBS local snapshots on Outposts]. // // Snapshots copies have an arbitrary source volume ID. Do not use this volume ID // for any purpose. // // For more information, see [Copy an Amazon EBS snapshot] in the Amazon EBS User Guide. // +// [Encryption and snapshot copying]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html#creating-encrypted-snapshots // [Copy an Amazon EBS snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html -// [Amazon EBS local snapshots on Outposts]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#ami +// [Amazon EBS local snapshots on Outposts]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations func (c *Client) CopySnapshot(ctx context.Context, params *CopySnapshotInput, optFns ...func(*Options)) (*CopySnapshotOutput, error) { if params == nil { params = &CopySnapshotInput{} @@ -111,7 +108,7 @@ type CopySnapshotInput struct { // To encrypt a copy of an unencrypted snapshot if encryption by default is not // enabled, enable encryption using this parameter. Otherwise, omit this parameter. - // Encrypted snapshots are encrypted, even if you omit this parameter and + // Copies of encrypted snapshots are encrypted, even if you omit this parameter and // encryption by default is not enabled. You cannot set this parameter to false. // For more information, see [Amazon EBS encryption]in the Amazon EBS User Guide. // diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateFpgaImage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateFpgaImage.go index d5a6a1625660e..567d831d1b6cc 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateFpgaImage.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateFpgaImage.go @@ -13,8 +13,8 @@ import ( // Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP). // -// The create operation is asynchronous. To verify that the AFI is ready for use, -// check the output logs. +// The create operation is asynchronous. To verify that the AFI was successfully +// created and is ready for use, check the output logs. // // An AFI contains the FPGA bitstream that is ready to download to an FPGA. You // can securely deploy an AFI on multiple FPGA-accelerated instances. For more diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeImageReferences.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeImageReferences.go index 014f031c33868..8faa0147e6783 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeImageReferences.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeImageReferences.go @@ -56,7 +56,7 @@ type DescribeImageReferencesInput struct { // // Either IncludeAllResourceTypes or ResourceTypes must be specified. // - // [How AMI reference checks work]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ami-references-works.html + // [How AMI reference checks work]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html#how-ami-references-works IncludeAllResourceTypes *bool // The maximum number of items to return for this request. To get the next page diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeInstances.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeInstances.go index 6a559b9211efd..f63ee3bc70c77 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeInstances.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeInstances.go @@ -381,13 +381,13 @@ type DescribeInstancesInput struct { // // - platform-details - The platform ( Linux/UNIX | Red Hat BYOL Linux | Red Hat // Enterprise Linux | Red Hat Enterprise Linux with HA | Red Hat Enterprise - // Linux with SQL Server Standard and HA | Red Hat Enterprise Linux with SQL - // Server Enterprise and HA | Red Hat Enterprise Linux with SQL Server Standard | - // Red Hat Enterprise Linux with SQL Server Web | Red Hat Enterprise Linux with - // SQL Server Enterprise | SQL Server Enterprise | SQL Server Standard | SQL - // Server Web | SUSE Linux | Ubuntu Pro | Windows | Windows BYOL | Windows with - // SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL - // Server Web ). + // Linux with High Availability | Red Hat Enterprise Linux with SQL Server + // Standard and HA | Red Hat Enterprise Linux with SQL Server Enterprise and HA | + // Red Hat Enterprise Linux with SQL Server Standard | Red Hat Enterprise Linux + // with SQL Server Web | Red Hat Enterprise Linux with SQL Server Enterprise | + // SQL Server Enterprise | SQL Server Standard | SQL Server Web | SUSE Linux | + // Ubuntu Pro | Windows | Windows BYOL | Windows with SQL Server Enterprise | + // Windows with SQL Server Standard | Windows with SQL Server Web ). // // - private-dns-name - The private IPv4 DNS name of the instance. // diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DisableImageBlockPublicAccess.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DisableImageBlockPublicAccess.go index ffc2e2903f918..fcc6f35444f67 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DisableImageBlockPublicAccess.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DisableImageBlockPublicAccess.go @@ -16,14 +16,9 @@ import ( // from your account. With the restriction removed, you can publicly share your // AMIs in the specified Amazon Web Services Region. // -// The API can take up to 10 minutes to configure this setting. During this time, -// if you run [GetImageBlockPublicAccessState], the response will be block-new-sharing . When the API has completed -// the configuration, the response will be unblocked . -// // For more information, see [Block public access to your AMIs] in the Amazon EC2 User Guide. // // [Block public access to your AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html -// [GetImageBlockPublicAccessState]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html func (c *Client) DisableImageBlockPublicAccess(ctx context.Context, params *DisableImageBlockPublicAccessInput, optFns ...func(*Options)) (*DisableImageBlockPublicAccessOutput, error) { if params == nil { params = &DisableImageBlockPublicAccessInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go index 86dc92f42640b..efb93df8b0b41 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go @@ -79296,6 +79296,59 @@ func awsEc2query_deserializeDocumentCreateVolumePermissionListUnwrapped(v *[]typ *v = sv return nil } +func awsEc2query_deserializeDocumentCreationDateCondition(v **types.CreationDateCondition, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.CreationDateCondition + if *v == nil { + sv = &types.CreationDateCondition{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("maximumDaysSinceCreated", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.MaximumDaysSinceCreated = ptr.Int32(int32(i64)) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeDocumentCreditSpecification(v **types.CreditSpecification, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -80856,6 +80909,59 @@ func awsEc2query_deserializeDocumentDeleteSnapshotReturnCode(v **types.DeleteSna return nil } +func awsEc2query_deserializeDocumentDeprecationTimeCondition(v **types.DeprecationTimeCondition, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.DeprecationTimeCondition + if *v == nil { + sv = &types.DeprecationTimeCondition{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("maximumDaysSinceDeprecated", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.MaximumDaysSinceDeprecated = ptr.Int32(int32(i64)) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeDocumentDeprovisionedAddressSet(v *[]string, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -93572,12 +93678,36 @@ func awsEc2query_deserializeDocumentImageCriterion(v **types.ImageCriterion, dec originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { + case strings.EqualFold("creationDateCondition", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentCreationDateCondition(&sv.CreationDateCondition, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("deprecationTimeCondition", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentDeprecationTimeCondition(&sv.DeprecationTimeCondition, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("imageNameSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentImageNameList(&sv.ImageNames, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("imageProviderSet", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) if err := awsEc2query_deserializeDocumentImageProviderList(&sv.ImageProviders, nodeDecoder); err != nil { return err } + case strings.EqualFold("marketplaceProductCodeSet", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentMarketplaceProductCodeList(&sv.MarketplaceProductCodes, nodeDecoder); err != nil { + return err + } + default: // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() @@ -93887,6 +94017,86 @@ func awsEc2query_deserializeDocumentImageMetadata(v **types.ImageMetadata, decod return nil } +func awsEc2query_deserializeDocumentImageNameList(v *[]string, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []string + if *v == nil { + sv = make([]string, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + memberDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + decoder = memberDecoder + switch { + case strings.EqualFold("item", t.Name.Local): + var col string + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + col = xtv + } + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentImageNameListUnwrapped(v *[]string, decoder smithyxml.NodeDecoder) error { + var sv []string + if *v == nil { + sv = make([]string, 0) + } else { + sv = *v + } + + switch { + default: + var mv string + t := decoder.StartEl + _ = t + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + mv = xtv + } + sv = append(sv, mv) + } + *v = sv + return nil +} func awsEc2query_deserializeDocumentImageProviderList(v *[]string, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -116426,6 +116636,86 @@ func awsEc2query_deserializeDocumentManagedPrefixListSetUnwrapped(v *[]types.Man *v = sv return nil } +func awsEc2query_deserializeDocumentMarketplaceProductCodeList(v *[]string, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []string + if *v == nil { + sv = make([]string, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + memberDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + decoder = memberDecoder + switch { + case strings.EqualFold("item", t.Name.Local): + var col string + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + col = xtv + } + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsEc2query_deserializeDocumentMarketplaceProductCodeListUnwrapped(v *[]string, decoder smithyxml.NodeDecoder) error { + var sv []string + if *v == nil { + sv = make([]string, 0) + } else { + sv = *v + } + + switch { + default: + var mv string + t := decoder.StartEl + _ = t + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + mv = xtv + } + sv = append(sv, mv) + } + *v = sv + return nil +} func awsEc2query_deserializeDocumentMediaAcceleratorInfo(v **types.MediaAcceleratorInfo, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go index b1e664fb70a71..26045e8180754 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go @@ -3,4 +3,4 @@ package ec2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.251.2" +const goModuleVersion = "1.253.0" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go index 116e11217e305..81aa10ebc49da 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go @@ -50107,6 +50107,18 @@ func awsEc2query_serializeDocumentCreateVolumePermissionModifications(v *types.C return nil } +func awsEc2query_serializeDocumentCreationDateConditionRequest(v *types.CreationDateConditionRequest, value query.Value) error { + object := value.Object() + _ = object + + if v.MaximumDaysSinceCreated != nil { + objectKey := object.Key("MaximumDaysSinceCreated") + objectKey.Integer(*v.MaximumDaysSinceCreated) + } + + return nil +} + func awsEc2query_serializeDocumentCreditSpecificationRequest(v *types.CreditSpecificationRequest, value query.Value) error { object := value.Object() _ = object @@ -50210,6 +50222,18 @@ func awsEc2query_serializeDocumentDeleteQueuedReservedInstancesIdList(v []string return nil } +func awsEc2query_serializeDocumentDeprecationTimeConditionRequest(v *types.DeprecationTimeConditionRequest, value query.Value) error { + object := value.Object() + _ = object + + if v.MaximumDaysSinceDeprecated != nil { + objectKey := object.Key("MaximumDaysSinceDeprecated") + objectKey.Integer(*v.MaximumDaysSinceDeprecated) + } + + return nil +} + func awsEc2query_serializeDocumentDeregisterInstanceTagAttributeRequest(v *types.DeregisterInstanceTagAttributeRequest, value query.Value) error { object := value.Object() _ = object @@ -51411,6 +51435,27 @@ func awsEc2query_serializeDocumentImageCriterionRequest(v *types.ImageCriterionR object := value.Object() _ = object + if v.CreationDateCondition != nil { + objectKey := object.Key("CreationDateCondition") + if err := awsEc2query_serializeDocumentCreationDateConditionRequest(v.CreationDateCondition, objectKey); err != nil { + return err + } + } + + if v.DeprecationTimeCondition != nil { + objectKey := object.Key("DeprecationTimeCondition") + if err := awsEc2query_serializeDocumentDeprecationTimeConditionRequest(v.DeprecationTimeCondition, objectKey); err != nil { + return err + } + } + + if v.ImageNames != nil { + objectKey := object.FlatKey("ImageName") + if err := awsEc2query_serializeDocumentImageNameRequestList(v.ImageNames, objectKey); err != nil { + return err + } + } + if v.ImageProviders != nil { objectKey := object.FlatKey("ImageProvider") if err := awsEc2query_serializeDocumentImageProviderRequestList(v.ImageProviders, objectKey); err != nil { @@ -51418,6 +51463,13 @@ func awsEc2query_serializeDocumentImageCriterionRequest(v *types.ImageCriterionR } } + if v.MarketplaceProductCodes != nil { + objectKey := object.FlatKey("MarketplaceProductCode") + if err := awsEc2query_serializeDocumentMarketplaceProductCodeRequestList(v.MarketplaceProductCodes, objectKey); err != nil { + return err + } + } + return nil } @@ -51516,6 +51568,19 @@ func awsEc2query_serializeDocumentImageIdStringList(v []string, value query.Valu return nil } +func awsEc2query_serializeDocumentImageNameRequestList(v []string, value query.Value) error { + if len(v) == 0 { + return nil + } + array := value.Array("Item") + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsEc2query_serializeDocumentImageProviderRequestList(v []string, value query.Value) error { if len(v) == 0 { return nil @@ -54182,6 +54247,19 @@ func awsEc2query_serializeDocumentMacSystemIntegrityProtectionConfigurationReque return nil } +func awsEc2query_serializeDocumentMarketplaceProductCodeRequestList(v []string, value query.Value) error { + if len(v) == 0 { + return nil + } + array := value.Array("Item") + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsEc2query_serializeDocumentMemoryGiBPerVCpu(v *types.MemoryGiBPerVCpu, value query.Value) error { object := value.Object() _ = object diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/enums.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/enums.go index 0bb8b668efc01..2830243236668 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/enums.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/enums.go @@ -4564,6 +4564,8 @@ const ( InstanceTypeI8ge48xlarge InstanceType = "i8ge.48xlarge" InstanceTypeI8geMetal24xl InstanceType = "i8ge.metal-24xl" InstanceTypeI8geMetal48xl InstanceType = "i8ge.metal-48xl" + InstanceTypeMacM4Metal InstanceType = "mac-m4.metal" + InstanceTypeMacM4proMetal InstanceType = "mac-m4pro.metal" ) // Values returns all known values for InstanceType. Note that this can be @@ -5588,6 +5590,8 @@ func (InstanceType) Values() []InstanceType { "i8ge.48xlarge", "i8ge.metal-24xl", "i8ge.metal-48xl", + "mac-m4.metal", + "mac-m4pro.metal", } } diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go index 4a12dac7b7e17..c91d266b65a60 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go @@ -3323,6 +3323,28 @@ type CreateVolumePermissionModifications struct { noSmithyDocumentSerde } +// The maximum age for allowed images. +type CreationDateCondition struct { + + // The maximum number of days that have elapsed since the image was created. For + // example, a value of 300 allows images that were created within the last 300 + // days. + MaximumDaysSinceCreated *int32 + + noSmithyDocumentSerde +} + +// The maximum age for allowed images. +type CreationDateConditionRequest struct { + + // The maximum number of days that have elapsed since the image was created. For + // example, a value of 300 allows images that were created within the last 300 + // days. + MaximumDaysSinceCreated *int32 + + noSmithyDocumentSerde +} + // Describes the credit option for CPU usage of a T instance. type CreditSpecification struct { @@ -3606,6 +3628,26 @@ type DeleteSnapshotReturnCode struct { noSmithyDocumentSerde } +// The maximum period since deprecation for allowed images. +type DeprecationTimeCondition struct { + + // The maximum number of days that have elapsed since the image was deprecated. + // When set to 0 , no deprecated images are allowed. + MaximumDaysSinceDeprecated *int32 + + noSmithyDocumentSerde +} + +// The maximum period since deprecation for allowed images. +type DeprecationTimeConditionRequest struct { + + // The maximum number of days that have elapsed since the image was deprecated. + // Set to 0 to exclude all deprecated images. + MaximumDaysSinceDeprecated *int32 + + noSmithyDocumentSerde +} + // Information about the tag keys to deregister for the current Region. You can // either specify individual tag keys or deregister all tag keys in the current // Region. You must specify either IncludeAllTagsOfInstance or InstanceTagKeys in @@ -6996,68 +7038,140 @@ type Image struct { noSmithyDocumentSerde } -// The list of criteria that are evaluated to determine whch AMIs are discoverable -// and usable in the account in the specified Amazon Web Services Region. -// Currently, the only criteria that can be specified are AMI providers. +// The criteria that are evaluated to determine which AMIs are discoverable and +// usable in your account for the specified Amazon Web Services Region. // -// Up to 10 imageCriteria objects can be specified, and up to a total of 200 -// values for all imageProviders . For more information, see [JSON configuration for the Allowed AMIs criteria] in the Amazon EC2 -// User Guide. +// For more information, see [How Allowed AMIs works] in the Amazon EC2 User Guide. // -// [JSON configuration for the Allowed AMIs criteria]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html#allowed-amis-json-configuration +// [How Allowed AMIs works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html#how-allowed-amis-works type ImageCriterion struct { - // A list of AMI providers whose AMIs are discoverable and useable in the account. - // Up to a total of 200 values can be specified. + // The maximum age for allowed images. + CreationDateCondition *CreationDateCondition + + // The maximum period since deprecation for allowed images. + DeprecationTimeCondition *DeprecationTimeCondition + + // The names of allowed images. Names can include wildcards ( ? and * ). + // + // Length: 1–128 characters. With ? , the minimum is 3 characters. + // + // Valid characters: + // + // - Letters: A–Z, a–z + // + // - Numbers: 0–9 + // + // - Special characters: ( ) [ ] . / - ' @ _ * ? + // + // - Spaces + // + // Maximum: 50 values + ImageNames []string + + // The image providers whose images are allowed. // // Possible values: // - // amazon : Allow AMIs created by Amazon Web Services. + // - amazon : Allow AMIs created by Amazon or verified providers. + // + // - aws-marketplace : Allow AMIs created by verified providers in the Amazon Web + // Services Marketplace. // - // aws-marketplace : Allow AMIs created by verified providers in the Amazon Web - // Services Marketplace. + // - aws-backup-vault : Allow AMIs created by Amazon Web Services Backup. // - // aws-backup-vault : Allow AMIs created by Amazon Web Services Backup. + // - 12-digit account ID: Allow AMIs created by this account. One or more + // account IDs can be specified. // - // 12-digit account ID: Allow AMIs created by this account. One or more account - // IDs can be specified. + // - none : Allow AMIs created by your own account only. // - // none : Allow AMIs created by your own account only. + // Maximum: 200 values ImageProviders []string + // The Amazon Web Services Marketplace product codes for allowed images. + // + // Length: 1-25 characters + // + // Valid characters: Letters ( A–Z, a–z ) and numbers ( 0–9 ) + // + // Maximum: 50 values + MarketplaceProductCodes []string + noSmithyDocumentSerde } -// The list of criteria that are evaluated to determine whch AMIs are discoverable -// and usable in the account in the specified Amazon Web Services Region. -// Currently, the only criteria that can be specified are AMI providers. +// The criteria that are evaluated to determine which AMIs are discoverable and +// usable in your account for the specified Amazon Web Services Region. // -// Up to 10 imageCriteria objects can be specified, and up to a total of 200 -// values for all imageProviders . For more information, see [JSON configuration for the Allowed AMIs criteria] in the Amazon EC2 -// User Guide. +// The ImageCriteria can include up to: +// +// - 10 ImageCriterion // -// [JSON configuration for the Allowed AMIs criteria]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html#allowed-amis-json-configuration +// Each ImageCriterion can include up to: +// +// - 200 values for ImageProviders +// +// - 50 values for ImageNames +// +// - 50 values for MarketplaceProductCodes +// +// For more information, see [How Allowed AMIs works] in the Amazon EC2 User Guide. +// +// [How Allowed AMIs works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html#how-allowed-amis-works type ImageCriterionRequest struct { - // A list of image providers whose AMIs are discoverable and useable in the - // account. Up to a total of 200 values can be specified. + // The maximum age for allowed images. + CreationDateCondition *CreationDateConditionRequest + + // The maximum period since deprecation for allowed images. + DeprecationTimeCondition *DeprecationTimeConditionRequest + + // The names of allowed images. Names can include wildcards ( ? and * ). + // + // Length: 1–128 characters. With ? , the minimum is 3 characters. + // + // Valid characters: + // + // - Letters: A–Z, a–z + // + // - Numbers: 0–9 + // + // - Special characters: ( ) [ ] . / - ' @ _ * ? + // + // - Spaces + // + // Maximum: 50 values + ImageNames []string + + // The image providers whose images are allowed. // // Possible values: // - // amazon : Allow AMIs created by Amazon Web Services. + // - amazon : Allow AMIs created by Amazon or verified providers. + // + // - aws-marketplace : Allow AMIs created by verified providers in the Amazon Web + // Services Marketplace. // - // aws-marketplace : Allow AMIs created by verified providers in the Amazon Web - // Services Marketplace. + // - aws-backup-vault : Allow AMIs created by Amazon Web Services Backup. // - // aws-backup-vault : Allow AMIs created by Amazon Web Services Backup. + // - 12-digit account ID: Allow AMIs created by the specified accounts. One or + // more account IDs can be specified. // - // 12-digit account ID: Allow AMIs created by this account. One or more account - // IDs can be specified. + // - none : Allow AMIs created by your own account only. When none is specified, + // no other values can be specified. // - // none : Allow AMIs created by your own account only. When none is specified, no - // other values can be specified. + // Maximum: 200 values ImageProviders []string + // The Amazon Web Services Marketplace product codes for allowed images. + // + // Length: 1-25 characters + // + // Valid characters: Letters ( A–Z, a–z ) and numbers ( 0–9 ) + // + // Maximum: 50 values + MarketplaceProductCodes []string + noSmithyDocumentSerde } @@ -17060,6 +17174,8 @@ type Route struct { // - CreateRoute - The route was manually added to the route table. // // - EnableVgwRoutePropagation - The route was propagated by route propagation. + // + // - Advertisement - The route was created dynamically by Amazon VPC Route Server. Origin RouteOrigin // The state of the route. The blackhole state indicates that the route's target diff --git a/vendor/modules.txt b/vendor/modules.txt index 56c9c98d69fb3..be05ac6dd9a2b 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -182,7 +182,7 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 # github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/internal/ini -# github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 +# github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0 ## explicit; go 1.22 github.com/aws/aws-sdk-go-v2/service/ec2 github.com/aws/aws-sdk-go-v2/service/ec2/internal/endpoints From a51993757f72667d1297514eb91ec8c30439d6db Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 00:37:49 +0000 Subject: [PATCH 134/176] chore(deps): update all github action dependencies Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index dbb908ae64986..c3ad54b6e7863 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -24,11 +24,11 @@ body: **NOTE: If your version is NOT listed then please upgrade before opening the GH issue. Thank you** options: # renovate: datasource=github-tags depName=cilium/cilium - - 'equal or higher than v1.18.1 and lower than v1.19.0' + - 'equal or higher than v1.18.2 and lower than v1.19.0' # renovate: datasource=github-tags depName=cilium/cilium - 'equal or higher than v1.17.7 and lower than v1.18.0' # renovate: datasource=github-tags depName=cilium/cilium - - 'equal or higher than v1.16.13 and lower than v1.17.0' + - 'equal or higher than v1.16.14 and lower than v1.17.0' validations: required: true - type: textarea From 420d5e3eb2baddaba7696b06c73a99926984b13c Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 16:12:37 +0000 Subject: [PATCH 135/176] chore(deps): update renovate dependencies to v41.122.1 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/renovate-config-validator.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate-config-validator.yaml b/.github/workflows/renovate-config-validator.yaml index bdd0e701f1f2f..441edf3cceaa1 100644 --- a/.github/workflows/renovate-config-validator.yaml +++ b/.github/workflows/renovate-config-validator.yaml @@ -18,7 +18,7 @@ jobs: - name: Validate configuration run: | # renovate: datasource=docker - export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.0@sha256:96c85fecf451e1a07f61ce11fb2ecac5d9d44f5affc41a7e19e74f4ba96fe64c + export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.1@sha256:db774b9043a51c59c3da9c74711f08fa98ebc5a7cde456d7b9b0c5b76a3c52cd docker run --rm --entrypoint "renovate-config-validator" \ -v "${{ github.workspace }}/.github/renovate.json5":"/renovate.json5" \ ${RENOVATE_IMAGE} "/renovate.json5" diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index bb64c6511f3d1..9594b222c0837 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -40,7 +40,7 @@ jobs: LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} with: # renovate: datasource=github-releases depName=renovatebot/renovate - renovate-version: 41.122.0 + renovate-version: 41.122.1 docker-user: root docker-cmd-file: .github/actions/renovate/entrypoint.sh configurationFile: .github/renovate.json5 From 5ac0aa350ee4668b3f7730436b6d196a0bc1a881 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 18:13:04 +0000 Subject: [PATCH 136/176] chore(deps): update renovate dependencies to v41.122.2 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/renovate-config-validator.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate-config-validator.yaml b/.github/workflows/renovate-config-validator.yaml index 441edf3cceaa1..65ebaa1d217a9 100644 --- a/.github/workflows/renovate-config-validator.yaml +++ b/.github/workflows/renovate-config-validator.yaml @@ -18,7 +18,7 @@ jobs: - name: Validate configuration run: | # renovate: datasource=docker - export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.1@sha256:db774b9043a51c59c3da9c74711f08fa98ebc5a7cde456d7b9b0c5b76a3c52cd + export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.2@sha256:f40c397bcec414da8d2e71811a014fe915fab79287a7c9941e89ffb97a322e40 docker run --rm --entrypoint "renovate-config-validator" \ -v "${{ github.workspace }}/.github/renovate.json5":"/renovate.json5" \ ${RENOVATE_IMAGE} "/renovate.json5" diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 9594b222c0837..39fc18ee4b21b 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -40,7 +40,7 @@ jobs: LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} with: # renovate: datasource=github-releases depName=renovatebot/renovate - renovate-version: 41.122.1 + renovate-version: 41.122.2 docker-user: root docker-cmd-file: .github/actions/renovate/entrypoint.sh configurationFile: .github/renovate.json5 From fe4fb8dbe08730304774d01efb87f404aef1b92b Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 20:12:39 +0000 Subject: [PATCH 137/176] chore(deps): update renovate dependencies to v41.122.3 Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/workflows/renovate-config-validator.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/renovate-config-validator.yaml b/.github/workflows/renovate-config-validator.yaml index 65ebaa1d217a9..efb59cde85fbe 100644 --- a/.github/workflows/renovate-config-validator.yaml +++ b/.github/workflows/renovate-config-validator.yaml @@ -18,7 +18,7 @@ jobs: - name: Validate configuration run: | # renovate: datasource=docker - export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.2@sha256:f40c397bcec414da8d2e71811a014fe915fab79287a7c9941e89ffb97a322e40 + export RENOVATE_IMAGE=ghcr.io/renovatebot/renovate:41.122.3@sha256:665602e84a6f9f2f6d062cf3dfa1c3c4720846ec7a87791f96dfd5f25c73435f docker run --rm --entrypoint "renovate-config-validator" \ -v "${{ github.workspace }}/.github/renovate.json5":"/renovate.json5" \ ${RENOVATE_IMAGE} "/renovate.json5" diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 39fc18ee4b21b..a0c7641c7cbd6 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -40,7 +40,7 @@ jobs: LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} with: # renovate: datasource=github-releases depName=renovatebot/renovate - renovate-version: 41.122.2 + renovate-version: 41.122.3 docker-user: root docker-cmd-file: .github/actions/renovate/entrypoint.sh configurationFile: .github/renovate.json5 From 22ccf62edfff7d71235ca01fc254ceef10bccb79 Mon Sep 17 00:00:00 2001 From: "cilium-renovate[bot]" <134692979+cilium-renovate[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 00:50:21 +0000 Subject: [PATCH 138/176] chore(deps): update all github action dependencies Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com> --- .github/actions/kvstore/action.yaml | 2 +- .github/workflows/conformance-gke.yaml | 2 +- .github/workflows/conformance-ipsec.yaml | 2 +- .github/workflows/net-perf-gke.yaml | 2 +- .github/workflows/renovate.yaml | 2 +- .github/workflows/scale-cleanup-kops.yaml | 2 +- .github/workflows/scale-test-100-gce.yaml | 2 +- .github/workflows/scale-test-5-gce.yaml | 2 +- .github/workflows/scale-test-clustermesh.yaml | 4 ++-- .github/workflows/scale-test-egw.yaml | 4 ++-- .github/workflows/scale-test-node-throughput-gce.yaml | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/actions/kvstore/action.yaml b/.github/actions/kvstore/action.yaml index 9ca5c9c85c9ee..7640e2786b847 100644 --- a/.github/actions/kvstore/action.yaml +++ b/.github/actions/kvstore/action.yaml @@ -7,7 +7,7 @@ inputs: default: "1" etcd-image: description: "etcd docker image" - default: gcr.io/etcd-development/etcd:v3.6.4@sha256:5d10878e4fd4ebfdf82bc142fb044542a3ca514c0ee169277643a84d6816892a + default: gcr.io/etcd-development/etcd:v3.6.5@sha256:042ef9c02799eb9303abf1aa99b09f09d94b8ee3ba0c2dd3f42dc4e1d3dce534 name: description: "Base name of the etcd containers (to which the index is appended)" default: kvstore diff --git a/.github/workflows/conformance-gke.yaml b/.github/workflows/conformance-gke.yaml index 83091310552d0..f92f8f10f72c4 100644 --- a/.github/workflows/conformance-gke.yaml +++ b/.github/workflows/conformance-gke.yaml @@ -86,7 +86,7 @@ env: clusterName: ${{ github.repository_owner }}-${{ github.event.repository.name }}-${{ github.run_id }}-${{ github.run_attempt }} USE_GKE_GCLOUD_AUTH_PLUGIN: True # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 jobs: echo-inputs: diff --git a/.github/workflows/conformance-ipsec.yaml b/.github/workflows/conformance-ipsec.yaml index 304db02837d4f..927fd6ecb1dd8 100644 --- a/.github/workflows/conformance-ipsec.yaml +++ b/.github/workflows/conformance-ipsec.yaml @@ -82,7 +82,7 @@ jobs: timeout-minutes: 30 steps: - name: Checkout context ref (trusted) - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: ref: ${{ inputs.context-ref || github.sha }} persist-credentials: false diff --git a/.github/workflows/net-perf-gke.yaml b/.github/workflows/net-perf-gke.yaml index 33a4353b6b3c0..c974b829fc139 100644 --- a/.github/workflows/net-perf-gke.yaml +++ b/.github/workflows/net-perf-gke.yaml @@ -65,7 +65,7 @@ env: USE_GKE_GCLOUD_AUTH_PLUGIN: True gcp_zone: us-east5-a # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 jobs: echo-inputs: diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index a0c7641c7cbd6..1883fbe72f312 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Self-hosted Renovate - uses: renovatebot/github-action@6927a58a017ee9ac468a34a5b0d2a9a9bd45cac3 # v43.0.11 + uses: renovatebot/github-action@f8af9272cd94a4637c29f60dea8731afd3134473 # v43.0.12 env: # default to DEBUG log level, this is always useful LOG_LEVEL: ${{ github.event.inputs.renovate_log_level_debug == 'false' && 'INFO' || 'DEBUG' }} diff --git a/.github/workflows/scale-cleanup-kops.yaml b/.github/workflows/scale-cleanup-kops.yaml index e776d60e61f8b..8ba303af3f73c 100644 --- a/.github/workflows/scale-cleanup-kops.yaml +++ b/.github/workflows/scale-cleanup-kops.yaml @@ -26,7 +26,7 @@ env: # renovate: datasource=golang-version depName=go go_version: 1.25.1 # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 jobs: cleanup-kops-clusters: diff --git a/.github/workflows/scale-test-100-gce.yaml b/.github/workflows/scale-test-100-gce.yaml index 042e3a6738c81..a4bed53ba662b 100644 --- a/.github/workflows/scale-test-100-gce.yaml +++ b/.github/workflows/scale-test-100-gce.yaml @@ -62,7 +62,7 @@ env: test_name: scale-100 cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 jobs: echo-inputs: diff --git a/.github/workflows/scale-test-5-gce.yaml b/.github/workflows/scale-test-5-gce.yaml index 2ba8978922a64..a9f8f5224830d 100644 --- a/.github/workflows/scale-test-5-gce.yaml +++ b/.github/workflows/scale-test-5-gce.yaml @@ -64,7 +64,7 @@ env: test_name: scale-5 cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 jobs: echo-inputs: diff --git a/.github/workflows/scale-test-clustermesh.yaml b/.github/workflows/scale-test-clustermesh.yaml index 8e9f98b2f138b..2b046e9eb9e0e 100644 --- a/.github/workflows/scale-test-clustermesh.yaml +++ b/.github/workflows/scale-test-clustermesh.yaml @@ -60,9 +60,9 @@ env: # renovate: datasource=golang-version depName=go go_version: 1.25.1 # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 # renovate: datasource=git-refs depName=https://github.com/cilium/scaffolding branch=main - cmapisrv_mock_ref: 90181df5116fe4d900bb0b9752021cb4c3474a97 + cmapisrv_mock_ref: 6bc0c7cb2ea7cd7d9aa071f691e218669aaa1c40 test_name: scale-clustermesh cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} diff --git a/.github/workflows/scale-test-egw.yaml b/.github/workflows/scale-test-egw.yaml index 226d51d761620..8686f1b02ebc2 100644 --- a/.github/workflows/scale-test-egw.yaml +++ b/.github/workflows/scale-test-egw.yaml @@ -74,12 +74,12 @@ env: # renovate: datasource=github-releases depName=kubernetes/kubernetes kubectl_version: v1.34.1 # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 # Hosted under quay.io/cilium/egw-scale-utils and built by # a workflow in cilium/scaffolding. # renovate: datasource=git-refs depName=https://github.com/cilium/scaffolding branch=main - egw_utils_ref: 90181df5116fe4d900bb0b9752021cb4c3474a97 + egw_utils_ref: 6bc0c7cb2ea7cd7d9aa071f691e218669aaa1c40 test_name: egw cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} diff --git a/.github/workflows/scale-test-node-throughput-gce.yaml b/.github/workflows/scale-test-node-throughput-gce.yaml index 55bae957ce2c0..6e86366080818 100644 --- a/.github/workflows/scale-test-node-throughput-gce.yaml +++ b/.github/workflows/scale-test-node-throughput-gce.yaml @@ -43,7 +43,7 @@ env: cluster_name: ${{ github.run_id }}-${{ github.run_attempt }} GCP_PERF_RESULTS_BUCKET: gs://cilium-scale-results # renovate: datasource=docker depName=google/cloud-sdk - gcloud_version: 538.0.0 + gcloud_version: 539.0.0 jobs: install-and-scaletest: From 1c550d3c4adb5bb3c2b6110f39056bc31d4b8026 Mon Sep 17 00:00:00 2001 From: Martynas Pumputis Date: Fri, 19 Sep 2025 16:56:52 +0200 Subject: [PATCH 139/176] Revert "gh: e2e-upgrade: temporarily disable XDP for config 6 and 14" This reverts commit 150f527412c0d19ecb55f7cbefbe9b7f55c672d0. Signed-off-by: Martynas Pumputis --- .github/actions/e2e/configs.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/actions/e2e/configs.yaml b/.github/actions/e2e/configs.yaml index b38e58ec52cfb..9518263c99315 100644 --- a/.github/actions/e2e/configs.yaml +++ b/.github/actions/e2e/configs.yaml @@ -58,8 +58,7 @@ lb-mode: 'snat' egress-gateway: 'true' host-fw: 'true' - # Disable until https://github.com/cilium/cilium/issues/41520 is resolved - # lb-acceleration: 'testing-only' + lb-acceleration: 'testing-only' ingress-controller: 'true' bgp-control-plane: 'true' - name: '7' @@ -166,8 +165,7 @@ tunnel: 'vxlan' lb-mode: 'snat' egress-gateway: 'true' - # Disable until https://github.com/cilium/cilium/issues/41520 is resolved - # lb-acceleration: 'testing-only' + lb-acceleration: 'testing-only' ingress-controller: 'true' - name: '15' # renovate: datasource=docker depName=quay.io/lvh-images/kind From 0c44aa44a70ffd9805fef927a7641b1f6e170f70 Mon Sep 17 00:00:00 2001 From: Martynas Pumputis Date: Fri, 19 Sep 2025 16:57:30 +0200 Subject: [PATCH 140/176] cilium-cli: Bring back NodePort Acceleration feature detection This made to run the EGW/NS connectivity disruption tests which most likely resulted in the "FIB lookup failed" reported in [1]. Also, while here, change the check for [features.KPR] to check only for "true". The "strict" / "disabled" are no longer available since Cilium v1.14. [1]: https://github.com/cilium/cilium/issues/41520 Fixes: 21572bb18a ("cilium-cli: Remove KPR subflags") Signed-off-by: Martynas Pumputis --- cilium-cli/connectivity/check/features.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cilium-cli/connectivity/check/features.go b/cilium-cli/connectivity/check/features.go index 0d9774986e2c0..a8e8ffe0d3522 100644 --- a/cilium-cli/connectivity/check/features.go +++ b/cilium-cli/connectivity/check/features.go @@ -172,10 +172,15 @@ func (ct *ConnectivityTest) extractFeaturesFromCiliumStatus(ctx context.Context, result[features.KPRSocketLB] = features.Status{Enabled: f.SocketLB.Enabled} result[features.KPRSocketLBHostnsOnly] = features.Status{Enabled: f.BpfSocketLBHostnsOnly} } + acceleration := strings.ToLower(f.NodePort.Acceleration) + result[features.KPRNodePortAcceleration] = features.Status{ + Enabled: mode == "true" && acceleration != "disabled", + Mode: acceleration, + } } } result[features.KPR] = features.Status{ - Enabled: mode == "true" || mode == "strict", + Enabled: mode == "true", Mode: mode, } From a91b33005f47f7e8055bdf7f06e3275cf8e8767e Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Mon, 22 Sep 2025 11:42:41 +0000 Subject: [PATCH 141/176] bpf: Add tcx_early_hook infra This commit adds a hooking point to the early stage of tcx processing of inbound traffic from the network. This hook can be used by Cilium plugins to extend the functionality of tcx. This is equivalent to the XDP one via commit 30a35be42f6 ("bpf: xdp: add xdp_early_hook infra") and is needed such that similar extensions can be pulled in when XDP is not available. Note that similar to 30a35be42f6 this is not a set- in-stone API and can be removed again in future. Signed-off-by: Daniel Borkmann --- bpf/bpf_host.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 71dcc81b88d8d..154b62e6c1cac 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -60,6 +60,10 @@ #define host_wg_encrypt_hook(ctx, proto, src_sec_identity) \ wg_maybe_redirect_to_encrypt(ctx, proto, src_sec_identity) +#ifndef tcx_early_hook +#define tcx_early_hook(ctx, proto) CTX_ACT_OK +#endif + /* Bit 0 is skipped for robustness, as it's used in some places to indicate from_host itself. */ #define FROM_HOST_FLAG_NEED_HOSTFW (1 << 1) #define FROM_HOST_FLAG_HOST_ID (1 << 2) @@ -1271,9 +1275,11 @@ int cil_from_netdev(struct __ctx_buff *ctx) if (ctx->mark == MARK_MAGIC_DECRYPT) return CTX_ACT_OK; #endif + ret = tcx_early_hook(ctx, proto); + if (ret != CTX_ACT_OK) + return ret; return do_netdev(ctx, proto, UNKNOWN_ID, TRACE_FROM_NETWORK, false); - drop_err: return send_drop_notify_error(ctx, src_id, ret, METRIC_INGRESS); } From 4786f1cc3a56f46dc61b3c70b6dea087c9c6e5ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Mon, 22 Sep 2025 08:19:05 +0200 Subject: [PATCH 142/176] Revert "bpf: unify CFLAGS handling in Makefile.clang" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 88bda5a067 (#39831). There seems to be an issue with cached `.clang_flags.mk`: * If a compilation has happened in another path (e.g. make run_bpf_tests after having run tests via cd bpf/tests && make run), compilation brakes. * Same when `contrib/scripts/check-datapathconfig.sh` is invoked. Both are not covered by the CI. I will work on a revised version of the patch along with some improvements in the caching strategy. Signed-off-by: Marc Suñé --- bpf/.gitignore | 3 --- bpf/Makefile | 2 +- bpf/Makefile.bpf | 17 +++++++++++++++-- bpf/Makefile.clang | 19 ------------------- bpf/tests/Makefile | 10 ++++++++-- 5 files changed, 24 insertions(+), 27 deletions(-) delete mode 100644 bpf/Makefile.clang diff --git a/bpf/.gitignore b/bpf/.gitignore index ea4ae692efd6b..fb86fb107256c 100644 --- a/bpf/.gitignore +++ b/bpf/.gitignore @@ -7,9 +7,6 @@ compile_commands.json # ignore CLANG intermediate compilation tmp files *.o.tmp -# ignore generated CFLAGS -**.clang_flags.mk - # ignore scapy autgen and python cache tests/scapy/__pycache__/* tests/output/* diff --git a/bpf/Makefile b/bpf/Makefile index a66d9dd7f38ae..2719c99439fd5 100644 --- a/bpf/Makefile +++ b/bpf/Makefile @@ -243,9 +243,9 @@ clean: $(QUIET) $(foreach TARGET,$(SUBDIRS), \ $(MAKE) $(SUBMAKEOPTS) -C $(TARGET) clean;) $(QUIET)rm -fr *.o *.ll *.i *.s - $(QUIET)rm -f $(CLANG_FLAGS_FILE) $(QUIET)rm -f $(TARGET) + BEAR_CLI = $(shell which bear 2> /dev/null) gen_compile_commands: ifeq (, $(BEAR_CLI)) diff --git a/bpf/Makefile.bpf b/bpf/Makefile.bpf index 6f4e8a36e4267..f4bab4ee947ff 100644 --- a/bpf/Makefile.bpf +++ b/bpf/Makefile.bpf @@ -3,13 +3,26 @@ FLAGS := -I$(ROOT_DIR)/bpf -I$(ROOT_DIR)/bpf/include -O2 -g -# Note, FLAGS needs to be defined before inclusion -include $(ROOT_DIR)/bpf/Makefile.clang +CLANG_FLAGS := ${FLAGS} --target=bpf -std=gnu99 -nostdinc +# eBPF verifier enforces unaligned access checks where necessary, so don't +# let clang complain too early. +CLANG_FLAGS += -ftrap-function=__undefined_trap +CLANG_FLAGS += -Wall -Wextra -Werror -Wshadow +CLANG_FLAGS += -Wno-address-of-packed-member +CLANG_FLAGS += -Wno-unknown-warning-option +CLANG_FLAGS += -Wno-gnu-variable-sized-type-not-at-end +CLANG_FLAGS += -Wimplicit-int-conversion -Wenum-conversion +CLANG_FLAGS += -Wimplicit-fallthrough +CLANG_FLAGS += -mcpu=v3 LIB := $(shell find $(ROOT_DIR)/bpf -name '*.h') BPF_C := $(patsubst %.o,%.c,$(BPF)) BPF_ASM := $(patsubst %.o,%.s,$(BPF)) +CLANG ?= clang +HOST_CC ?= gcc +HOST_STRIP ?= strip + ifeq ($(CROSS_ARCH),arm64) HOST_CC = aarch64-linux-gnu-gcc HOST_STRIP = aarch64-linux-gnu-strip diff --git a/bpf/Makefile.clang b/bpf/Makefile.clang deleted file mode 100644 index 581fe1922e154..0000000000000 --- a/bpf/Makefile.clang +++ /dev/null @@ -1,19 +0,0 @@ -CLANG ?= clang -HOST_CC ?= gcc -HOST_STRIP ?= strip - -# Base CFLAGS (CLANG_FLAGS) are read from pkg/datapath/loader/compile.go -# to keep them synced with the loader - -CLANG_FLAGS_FILE := $(shell realpath --relative-to=$(CURDIR) $(ROOT_DIR)/bpf/.clang_flags.mk) -CLANG_CFLAGS_GO := $(ROOT_DIR)/pkg/datapath/loader/tools/clang_cflags.go -LOADER_GO_FILES := $(shell find $(ROOT_DIR)/pkg/datapath/loader -type f -name '*.go') - -# Rebuild only when go files are modified in the loader -$(CLANG_FLAGS_FILE): $(LOADER_GO_FILES) - $(QUIET) echo 'CLANG_FLAGS := $(FLAGS) '`$(GO) run $(CLANG_CFLAGS_GO)` > $@ - --include $(CLANG_FLAGS_FILE) - -# Mimics the mcpu values set by cilium-agent. See GetBPFCPU(). -CLANG_FLAGS += -mcpu=v3 diff --git a/bpf/tests/Makefile b/bpf/tests/Makefile index 87037b4efc003..e28c6693919e6 100644 --- a/bpf/tests/Makefile +++ b/bpf/tests/Makefile @@ -5,14 +5,20 @@ include ../../Makefile.defs MAKEFLAGS += -r +CLANG ?= clang + FLAGS := -I$(ROOT_DIR)/bpf -I$(ROOT_DIR)/bpf/include -g -# Note, FLAGS needs to be defined before inclusion -include ../Makefile.clang +# Base CFLAGS (CLANG_FLAGS) are read from pkg/datapath/loader/compile.go +# to keep them synced with the loader +CLANG_FLAGS := $(FLAGS) $(shell $(GO) run $(ROOT_DIR)/pkg/datapath/loader/tools/clang_cflags.go) # Create dependency files for each .o file. CLANG_FLAGS += -MD +# Mimics the mcpu values set by cilium-agent. See GetBPFCPU(). +CLANG_FLAGS += -mcpu=v3 + # Autogenerated scapy pkts SCAPY_HDR := $(ROOT_DIR)/bpf/tests/output/gen_pkts.h SCAPY_HDR_TS := $(ROOT_DIR)/bpf/tests/output/gen_pkts.h.stamp From 65714aad7fba192c41360215530afc93140eb042 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Fri, 12 Sep 2025 09:20:53 +0300 Subject: [PATCH 143/176] datapath: don't install IP rule for IPsec-encrypted traffic Previously we needed to divert encrypted traffic via cilium_host, in order to apply overlay encapsulation. With the switch to encrypted-overlay this is no longer needed, the traffic can flow directly to its egress interface as selected by the normal kernel routing lookup. To avoid any disturbance for in-flight packets this patch only removes the IP rule. With a subsequent release we can then remove the corresponding route from table 200. Signed-off-by: Julian Wiedmann --- pkg/datapath/linux/ipsec.go | 30 +++++++++++++++++++++--------- pkg/datapath/linux/node.go | 19 +++++++------------ 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/pkg/datapath/linux/ipsec.go b/pkg/datapath/linux/ipsec.go index 6f1c2feca0bf5..3afd20dd392c3 100644 --- a/pkg/datapath/linux/ipsec.go +++ b/pkg/datapath/linux/ipsec.go @@ -733,17 +733,35 @@ func (n *linuxNodeHandler) removeEncryptRules() error { Protocol: linux_defaults.RTProto, } - rule.Mark = linux_defaults.RouteMarkDecrypt + rule.Mark = linux_defaults.RouteMarkEncrypt if err := route.DeleteRule(netlink.FAMILY_V4, rule); err != nil { if !os.IsNotExist(err) { - return fmt.Errorf("delete previous IPv4 decrypt rule failed: %w", err) + return fmt.Errorf("delete previous IPv4 encrypt rule failed: %w", err) } } rule.Mark = linux_defaults.RouteMarkEncrypt + if err := route.DeleteRule(netlink.FAMILY_V6, rule); err != nil { + if !os.IsNotExist(err) && !errors.Is(err, unix.EAFNOSUPPORT) { + return fmt.Errorf("delete previous IPv6 encrypt rule failed: %w", err) + } + } + return nil + +} + +func (n *linuxNodeHandler) removeDecryptRules() error { + rule := route.Rule{ + Priority: 1, + Mask: linux_defaults.RouteMarkMask, + Table: linux_defaults.RouteTableIPSec, + Protocol: linux_defaults.RTProto, + } + + rule.Mark = linux_defaults.RouteMarkDecrypt if err := route.DeleteRule(netlink.FAMILY_V4, rule); err != nil { if !os.IsNotExist(err) { - return fmt.Errorf("delete previous IPv4 encrypt rule failed: %w", err) + return fmt.Errorf("delete previous IPv4 decrypt rule failed: %w", err) } } @@ -758,12 +776,6 @@ func (n *linuxNodeHandler) removeEncryptRules() error { } } - rule.Mark = linux_defaults.RouteMarkEncrypt - if err := route.DeleteRule(netlink.FAMILY_V6, rule); err != nil { - if !os.IsNotExist(err) && !errors.Is(err, unix.EAFNOSUPPORT) { - return fmt.Errorf("delete previous IPv6 encrypt rule failed: %w", err) - } - } return nil } diff --git a/pkg/datapath/linux/node.go b/pkg/datapath/linux/node.go index 5f5c6bdc041de..9d9adeda91d17 100644 --- a/pkg/datapath/linux/node.go +++ b/pkg/datapath/linux/node.go @@ -671,11 +671,6 @@ func (n *linuxNodeHandler) replaceHostRules() error { return err } } - rule.Mark = linux_defaults.RouteMarkEncrypt - if err := route.ReplaceRule(rule); err != nil { - n.log.Error("Replace IPv4 route encrypt rule failed", logfields.Error, err) - return err - } } if n.nodeConfig.EnableIPv6 { @@ -684,11 +679,6 @@ func (n *linuxNodeHandler) replaceHostRules() error { n.log.Error("Replace IPv6 route decrypt rule failed", logfields.Error, err) return err } - rule.Mark = linux_defaults.RouteMarkEncrypt - if err := route.ReplaceRuleIPv6(rule); err != nil { - n.log.Error("Replace IPv6 route ecrypt rule failed", logfields.Error, err) - return err - } } return nil @@ -710,6 +700,11 @@ func (n *linuxNodeHandler) NodeConfigurationChanged(newConfig datapath.LocalNode return fmt.Errorf("failed to update or remove node routes: %w", err) } + // Clean up stale IP rules for IPsec. This can be removed in the v1.20 release. + if err := n.removeEncryptRules(); err != nil { + n.log.Warn("Cannot cleanup previous encryption rule state.", logfields.Error, err) + } + if newConfig.EnableIPSec { // For the ENI ipam mode on EKS, this will be the interface that // the router (cilium_host) IP is associated to. @@ -732,8 +727,8 @@ func (n *linuxNodeHandler) NodeConfigurationChanged(newConfig datapath.LocalNode } n.registerIpsecMetricOnce() } else { - if err := n.removeEncryptRules(); err != nil { - n.log.Warn("Cannot cleanup previous encryption rule state.", logfields.Error, err) + if err := n.removeDecryptRules(); err != nil { + n.log.Warn("Cannot cleanup previous decryption rule state.", logfields.Error, err) } if err := n.ipsecAgent.DeleteXFRM(ipsec.AllReqID); err != nil { return fmt.Errorf("failed to delete xfrm policies on node configuration changed: %w", err) From 06cf4dc147f30adb636152353406f405512dd6e0 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Fri, 12 Sep 2025 09:25:21 +0300 Subject: [PATCH 144/176] bpf: host: trace encrypted IPsec traffic in to-netdev The previous patch removed the logic to divert this type of traffic into cilium_host - instead it gets routed straight to the node's egress interface. Therefore the corresponding datapath trace event code also needs to move into the to-netdev program which is attached at the native interface. Signed-off-by: Julian Wiedmann --- bpf/bpf_host.c | 23 +- bpf/lib/identity.h | 4 - bpf/tests/ipsec_from_host_generic.h | 288 -------------------- bpf/tests/ipsec_from_host_native.c | 8 - bpf/tests/ipsec_from_host_native_endpoint.c | 8 - bpf/tests/ipsec_from_host_tunnel.c | 9 - bpf/tests/ipsec_from_host_tunnel_endpoint.c | 9 - 7 files changed, 11 insertions(+), 338 deletions(-) delete mode 100644 bpf/tests/ipsec_from_host_generic.h delete mode 100644 bpf/tests/ipsec_from_host_native.c delete mode 100644 bpf/tests/ipsec_from_host_native_endpoint.c delete mode 100644 bpf/tests/ipsec_from_host_tunnel.c delete mode 100644 bpf/tests/ipsec_from_host_tunnel_endpoint.c diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 154b62e6c1cac..85952b2daa4e9 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -1335,15 +1335,6 @@ int cil_from_host(struct __ctx_buff *ctx) if (magic == MARK_MAGIC_PROXY_INGRESS || magic == MARK_MAGIC_PROXY_EGRESS) obs_point = TRACE_FROM_PROXY; -#ifdef ENABLE_IPSEC - if (magic == MARK_MAGIC_ENCRYPT) { - send_trace_notify(ctx, TRACE_FROM_STACK, identity, UNKNOWN_ID, - TRACE_EP_ID_UNKNOWN, ctx->ingress_ifindex, - TRACE_REASON_ENCRYPTED, 0, proto); - return CTX_ACT_OK; - } -#endif /* ENABLE_IPSEC */ - return do_netdev(ctx, proto, identity, obs_point, true); } @@ -1380,6 +1371,17 @@ int cil_to_netdev(struct __ctx_buff *ctx) src_sec_identity = get_identity(ctx); #endif + /* Load the ethertype just once: */ + validate_ethertype(ctx, &proto); + +#ifdef ENABLE_IPSEC + if (magic == MARK_MAGIC_ENCRYPT) + send_trace_notify(ctx, TRACE_FROM_STACK, + ctx_load_meta(ctx, CB_ENCRYPT_IDENTITY), UNKNOWN_ID, + TRACE_EP_ID_UNKNOWN, ctx->ingress_ifindex, + TRACE_REASON_ENCRYPTED, 0, proto); +#endif /* ENABLE_IPSEC */ + /* Filter allowed vlan id's and pass them back to kernel. */ if (ctx->vlan_present) { @@ -1403,9 +1405,6 @@ int cil_to_netdev(struct __ctx_buff *ctx) } #endif - /* Load the ethertype just once: */ - validate_ethertype(ctx, &proto); - #ifdef ENABLE_HOST_FIREWALL /* This was initially added for Egress GW. There it's no longer needed, * but it potentially also helps other paths (LB-to-remote-backend ?). diff --git a/bpf/lib/identity.h b/bpf/lib/identity.h index 13be62779c897..f00938a9e3e43 100644 --- a/bpf/lib/identity.h +++ b/bpf/lib/identity.h @@ -181,10 +181,6 @@ static __always_inline __u32 inherit_identity_from_host(struct __ctx_buff *ctx, *identity = get_identity(ctx); } else if (magic == MARK_MAGIC_HOST) { *identity = HOST_ID; -#ifdef ENABLE_IPSEC - } else if (magic == MARK_MAGIC_ENCRYPT) { - *identity = ctx_load_meta(ctx, CB_ENCRYPT_IDENTITY); -#endif } else { #if defined ENABLE_IPV4 && defined ENABLE_IPV6 __u16 proto = ctx_get_protocol(ctx); diff --git a/bpf/tests/ipsec_from_host_generic.h b/bpf/tests/ipsec_from_host_generic.h deleted file mode 100644 index c83b335a0111c..0000000000000 --- a/bpf/tests/ipsec_from_host_generic.h +++ /dev/null @@ -1,288 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ -/* Copyright Authors of Cilium */ - -#include -#include "common.h" -#include "pktgen.h" - -#define NODE_ID 2333 -#define TUNNEL_ID 0x1234 -#define ENCRYPT_KEY 3 -#define ENABLE_IPV4 -#define ENABLE_IPV6 -#define ENABLE_IPSEC - -#define ENCAP_IFINDEX 4 -#define skb_set_tunnel_key mock_skb_set_tunnel_key -#define ctx_redirect mock_ctx_redirect - -int mock_skb_set_tunnel_key(__maybe_unused struct __sk_buff *skb, - const struct bpf_tunnel_key *from, - __maybe_unused __u32 size, - __maybe_unused __u32 flags) -{ - if (from->tunnel_id != TUNNEL_ID) - return -1; - if (from->local_ipv4 != 0) - return -2; - if (from->remote_ipv4 != bpf_htonl(v4_node_two)) - return -3; - return 0; -} - -int mock_ctx_redirect(const struct __sk_buff *ctx __maybe_unused, int ifindex, __u32 flags) -{ - if (ifindex != ENCAP_IFINDEX) - return -1; - if (flags != 0) - return -2; - return CTX_ACT_REDIRECT; -} - -#include "bpf_host.c" - -ASSIGN_CONFIG(__u32, security_label, TUNNEL_ID) - -#include "lib/ipcache.h" - -#define FROM_HOST 0 -#define ESP_SEQUENCE 69865 - -struct { - __uint(type, BPF_MAP_TYPE_PROG_ARRAY); - __uint(key_size, sizeof(__u32)); - __uint(max_entries, 1); - __array(values, int()); -} entry_call_map __section(".maps") = { - .values = { - [FROM_HOST] = &cil_from_host, - }, -}; - -PKTGEN("tc", "ipv4_ipsec_from_host") -int ipv4_ipsec_from_host_pktgen(struct __ctx_buff *ctx) -{ - struct pktgen builder; - struct iphdr *l3; - struct ip_esp_hdr *l4; - void *data; - - pktgen__init(&builder, ctx); - - l3 = pktgen__push_ipv4_packet(&builder, (__u8 *)mac_one, (__u8 *)mac_two, - v4_pod_one, v4_pod_two); - if (!l3) - return TEST_ERROR; - l4 = pktgen__push_default_esphdr(&builder); - if (!l4) - return TEST_ERROR; - l4->spi = ENCRYPT_KEY; - l4->seq_no = ESP_SEQUENCE; - - data = pktgen__push_data(&builder, default_data, sizeof(default_data)); - if (!data) - return TEST_ERROR; - - pktgen__finish(&builder); - return 0; -} - -SETUP("tc", "ipv4_ipsec_from_host") -int ipv4_ipsec_from_host_setup(struct __ctx_buff *ctx) -{ - /* This is the ipcache entry for the CiliumInternalIP of the remote node. - * It allows us to lookup the tunnel endpoint from the outer destination IP - * address of the ESP packet. The CiliumInternalIPs are used for that outer - * header. - */ - ipcache_v4_add_entry(v4_pod_two, 0, 233, v4_node_two, 0); - - ctx->mark = ipsec_encode_encryption_mark(ENCRYPT_KEY, NODE_ID); - set_identity_meta(ctx, SECLABEL_IPV4); - tail_call_static(ctx, entry_call_map, FROM_HOST); - return TEST_ERROR; -} - -CHECK("tc", "ipv4_ipsec_from_host") -int ipv4_ipsec_from_host_check(__maybe_unused const struct __ctx_buff *ctx) -{ - void *data; - void *data_end; - __u32 *status_code; - struct ethhdr *l2; - struct iphdr *l3; - struct ip_esp_hdr *l4; - __u8 *payload; - - test_init(); - - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == EXPECTED_STATUS_CODE); - - assert(ctx->mark == 0); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IP)) - test_fatal("l2 proto hasn't been set to ETH_P_IP"); - - if (memcmp(l2->h_source, (__u8 *)mac_one, ETH_ALEN) != 0) - test_fatal("src mac hasn't been set to source ep's mac"); - - if (memcmp(l2->h_dest, (__u8 *)mac_two, ETH_ALEN) != 0) - test_fatal("dest mac hasn't been set to dest ep's mac"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct iphdr) > data_end) - test_fatal("l3 out of bounds"); - - if (l3->saddr != v4_pod_one) - test_fatal("src IP was changed"); - - if (l3->daddr != v4_pod_two) - test_fatal("dest IP was changed"); - - if (l3->check != bpf_htons(0xf948)) - test_fatal("L3 checksum is invalid: %x", bpf_htons(l3->check)); - - l4 = (void *)l3 + sizeof(struct iphdr); - - if ((void *)l4 + sizeof(struct ip_esp_hdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->spi != ENCRYPT_KEY) - test_fatal("ESP spi was changed"); - - if (l4->seq_no != ESP_SEQUENCE) - test_fatal("ESP seq was changed"); - - payload = (void *)l4 + sizeof(struct ip_esp_hdr); - if ((void *)payload + sizeof(default_data) > data_end) - test_fatal("paylaod out of bounds\n"); - - if (memcmp(payload, default_data, sizeof(default_data)) != 0) - test_fatal("tcp payload was changed"); - - test_finish(); -} - -PKTGEN("tc", "ipv6_ipsec_from_host") -int ipv6_ipsec_from_host_pktgen(struct __ctx_buff *ctx) -{ - struct pktgen builder; - struct ipv6hdr *l3; - struct ip_esp_hdr *l4; - void *data; - - pktgen__init(&builder, ctx); - - l3 = pktgen__push_ipv6_packet(&builder, (__u8 *)mac_one, (__u8 *)mac_two, - (__u8 *)&v6_pod_one, (__u8 *)&v6_pod_two); - if (!l3) - return TEST_ERROR; - - l4 = pktgen__push_default_esphdr(&builder); - if (!l4) - return TEST_ERROR; - l4->spi = ENCRYPT_KEY; - l4->seq_no = ESP_SEQUENCE; - - data = pktgen__push_data(&builder, default_data, sizeof(default_data)); - if (!data) - return TEST_ERROR; - - pktgen__finish(&builder); - return 0; -} - -SETUP("tc", "ipv6_ipsec_from_host") -int ipv6_ipsec_from_host_setup(struct __ctx_buff *ctx) -{ - /* See comment for IPv4 counterpart. */ - ipcache_v6_add_entry((union v6addr *)v6_pod_two, 0, 233, v4_node_two, 0); - - ctx->mark = ipsec_encode_encryption_mark(ENCRYPT_KEY, NODE_ID); - set_identity_meta(ctx, SECLABEL_IPV6); - tail_call_static(ctx, entry_call_map, FROM_HOST); - return TEST_ERROR; -} - -CHECK("tc", "ipv6_ipsec_from_host") -int ipv6_ipsec_from_host_check(__maybe_unused const struct __ctx_buff *ctx) -{ - void *data; - void *data_end; - __u32 *status_code; - struct ethhdr *l2; - struct ipv6hdr *l3; - struct ip_esp_hdr *l4; - __u8 *payload; - - test_init(); - - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == EXPECTED_STATUS_CODE); - - assert(ctx->mark == 0); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IPV6)) - test_fatal("l2 proto hasn't been set to ETH_P_IP"); - - if (memcmp(l2->h_source, (__u8 *)mac_one, ETH_ALEN) != 0) - test_fatal("src mac hasn't been set to source ep's mac"); - - if (memcmp(l2->h_dest, (__u8 *)mac_two, ETH_ALEN) != 0) - test_fatal("dest mac hasn't been set to dest ep's mac"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct ipv6hdr) > data_end) - test_fatal("l3 out of bounds"); - - if (memcmp((__u8 *)&l3->saddr, (__u8 *)v6_pod_one, 16) != 0) - test_fatal("src IP was changed"); - - if (memcmp((__u8 *)&l3->daddr, (__u8 *)v6_pod_two, 16) != 0) - test_fatal("dest IP was changed"); - - l4 = (void *)l3 + sizeof(struct ipv6hdr); - - if ((void *)l4 + sizeof(struct ip_esp_hdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->spi != ENCRYPT_KEY) - test_fatal("ESP spi was changed"); - - if (l4->seq_no != ESP_SEQUENCE) - test_fatal("ESP seq was changed"); - - payload = (void *)l4 + sizeof(struct ip_esp_hdr); - if ((void *)payload + sizeof(default_data) > data_end) - test_fatal("paylaod out of bounds\n"); - - if (memcmp(payload, default_data, sizeof(default_data)) != 0) - test_fatal("tcp payload was changed"); - - test_finish(); -} diff --git a/bpf/tests/ipsec_from_host_native.c b/bpf/tests/ipsec_from_host_native.c deleted file mode 100644 index b46a169934501..0000000000000 --- a/bpf/tests/ipsec_from_host_native.c +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -/* Copyright Authors of Cilium */ - -#define ENABLE_ROUTING - -#define EXPECTED_STATUS_CODE CTX_ACT_OK - -#include "ipsec_from_host_generic.h" diff --git a/bpf/tests/ipsec_from_host_native_endpoint.c b/bpf/tests/ipsec_from_host_native_endpoint.c deleted file mode 100644 index cbbcbae107813..0000000000000 --- a/bpf/tests/ipsec_from_host_native_endpoint.c +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -/* Copyright Authors of Cilium */ - -#define ENABLE_ENDPOINT_ROUTES 1 - -#define EXPECTED_STATUS_CODE CTX_ACT_OK - -#include "ipsec_from_host_generic.h" diff --git a/bpf/tests/ipsec_from_host_tunnel.c b/bpf/tests/ipsec_from_host_tunnel.c deleted file mode 100644 index d6a1b6c04e1e7..0000000000000 --- a/bpf/tests/ipsec_from_host_tunnel.c +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -/* Copyright Authors of Cilium */ - -#define TUNNEL_MODE -#define ENABLE_ROUTING - -#define EXPECTED_STATUS_CODE CTX_ACT_OK - -#include "ipsec_from_host_generic.h" diff --git a/bpf/tests/ipsec_from_host_tunnel_endpoint.c b/bpf/tests/ipsec_from_host_tunnel_endpoint.c deleted file mode 100644 index 36e4336ebbe94..0000000000000 --- a/bpf/tests/ipsec_from_host_tunnel_endpoint.c +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -/* Copyright Authors of Cilium */ - -#define TUNNEL_MODE -#define ENABLE_ENDPOINT_ROUTES 1 - -#define EXPECTED_STATUS_CODE CTX_ACT_OK - -#include "ipsec_from_host_generic.h" From 924b413b69977031258b5c1992cb3c5be2e48af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Mon, 22 Sep 2025 12:37:03 +0200 Subject: [PATCH 145/176] .github/workflows: add variable for renovate bot username MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since cilium-renovate[bot] is only available on cilium repository, it makes sense to make this as an variable so that this workflow can be used on Cilium forks. Signed-off-by: André Martins --- .github/workflows/build-images-ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-images-ci.yaml b/.github/workflows/build-images-ci.yaml index 4a1cb3d07ed53..2eb3ad5cb914c 100644 --- a/.github/workflows/build-images-ci.yaml +++ b/.github/workflows/build-images-ci.yaml @@ -406,7 +406,7 @@ jobs: runs-on: ubuntu-24.04 if: ${{ github.event_name == 'pull_request_target' && - github.event.pull_request.user.login == 'cilium-renovate[bot]' + github.event.pull_request.user.login == vars.RENOVATE_BOT_USERNAME }} steps: - name: Debug @@ -421,7 +421,7 @@ jobs: environment: "Trigger CI from renovate PRs" if: ${{ github.event_name == 'pull_request_target' && - github.event.pull_request.user.login == 'cilium-renovate[bot]' + github.event.pull_request.user.login == vars.RENOVATE_BOT_USERNAME }} steps: - name: Post /test comment From 11c43a066bda63ecd21d1c1ca147a7f84d0c9169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Mon, 22 Sep 2025 14:40:14 +0200 Subject: [PATCH 146/176] .github/conformance: fix concurrency group for ipsec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For scheduled workflows events, the reusable workflow will also receive that event type which causes the concurrency to conflict with other workflows. To prevent this bug, we must suffix each concurrency group with the workflow name. Fixes: 1337c87c9955 ("Add vanilla cloud-provider configs for conformance tests") Signed-off-by: André Martins --- .github/workflows/conformance-aks.yaml | 2 +- .github/workflows/conformance-eks.yaml | 2 +- .github/workflows/conformance-gke.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conformance-aks.yaml b/.github/workflows/conformance-aks.yaml index 9bd486c766aaf..cd9168c04299c 100644 --- a/.github/workflows/conformance-aks.yaml +++ b/.github/workflows/conformance-aks.yaml @@ -77,7 +77,7 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'schedule' && github.sha) || + (github.event_name == 'schedule' && format('{0}-{1}', github.sha, 'aks')) || (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'aks')) }} cancel-in-progress: true diff --git a/.github/workflows/conformance-eks.yaml b/.github/workflows/conformance-eks.yaml index cef7504017cbe..5d2105e6ddf4f 100644 --- a/.github/workflows/conformance-eks.yaml +++ b/.github/workflows/conformance-eks.yaml @@ -80,7 +80,7 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'schedule' && github.sha) || + (github.event_name == 'schedule' && format('{0}-{1}', github.sha, 'eks')) || (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'eks')) }} cancel-in-progress: true diff --git a/.github/workflows/conformance-gke.yaml b/.github/workflows/conformance-gke.yaml index f92f8f10f72c4..b6c4023a709ae 100644 --- a/.github/workflows/conformance-gke.yaml +++ b/.github/workflows/conformance-gke.yaml @@ -77,7 +77,7 @@ concurrency: ${{ github.workflow }} ${{ github.event_name }} ${{ - (github.event_name == 'schedule' && github.sha) || + (github.event_name == 'schedule' && format('{0}-{1}', github.sha, 'gke')) || (github.event_name == 'workflow_dispatch' && format('{0}-{1}', github.event.inputs.PR-number, 'gke')) }} cancel-in-progress: true From 16fcff06d5b0ea9dcf7b7ceaed79d3d746d59086 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Wed, 17 Sep 2025 15:30:47 +0300 Subject: [PATCH 147/176] ipsec: remove / deprecate support for mcast's encrypted overlay mode This special feature was superseded by the generic encrypted-overlay mode for IPsec in v1.18. There's no datapath code left that handles packets with ENCRYPTED_OVERLAY_ID, and the IPsec path now automatically encrypts **all** overlay traffic. Signed-off-by: Julian Wiedmann --- Documentation/cmdref/cilium-agent.md | 1 - Documentation/cmdref/cilium-agent_hive.md | 1 - .../cmdref/cilium-agent_hive_dot-graph.md | 1 - Documentation/operations/upgrade.rst | 4 +++- bpf/Makefile | 12 ++++++------ bpf/lib/mcast.h | 9 +-------- bpf/node_config.h | 6 ------ daemon/cmd/daemon.go | 16 ---------------- pkg/datapath/fake/types/ipsec.go | 4 ---- pkg/datapath/linux/config/config.go | 7 ------- pkg/datapath/linux/ipsec/cell.go | 8 +------- pkg/datapath/linux/ipsec/cell_test.go | 1 - pkg/datapath/orchestrator/localnodeconfig.go | 1 - pkg/datapath/types/ipsec.go | 1 - pkg/datapath/types/node.go | 3 --- pkg/datapath/types/zz_generated.deepequal.go | 3 --- 16 files changed, 11 insertions(+), 67 deletions(-) diff --git a/Documentation/cmdref/cilium-agent.md b/Documentation/cmdref/cilium-agent.md index 0a748efe3dcde..162e6bae75c5a 100644 --- a/Documentation/cmdref/cilium-agent.md +++ b/Documentation/cmdref/cilium-agent.md @@ -143,7 +143,6 @@ cilium-agent [flags] --enable-ip-masq-agent Enable BPF ip-masq-agent --enable-ipip-termination Enable plain IPIP/IP6IP6 termination --enable-ipsec Enable IPsec - --enable-ipsec-encrypted-overlay Enable IPsec encrypted overlay. If enabled tunnel traffic will be encrypted before leaving the host. Requires ipsec and tunnel mode vxlan to be enabled. --enable-ipsec-key-watcher Enable watcher for IPsec key. If disabled, a restart of the agent will be necessary on key rotations. (default true) --enable-ipv4 Enable IPv4 support (default true) --enable-ipv4-big-tcp Enable IPv4 BIG TCP option which increases device's maximum GRO/GSO limits for IPv4 diff --git a/Documentation/cmdref/cilium-agent_hive.md b/Documentation/cmdref/cilium-agent_hive.md index 5654e4b0fd5e9..f92b18ef0c5c3 100644 --- a/Documentation/cmdref/cilium-agent_hive.md +++ b/Documentation/cmdref/cilium-agent_hive.md @@ -71,7 +71,6 @@ cilium-agent hive [flags] --enable-ingress-controller Enables Envoy secret sync for Ingress controller related TLS secrets --enable-ip-masq-agent Enable BPF ip-masq-agent --enable-ipsec Enable IPsec - --enable-ipsec-encrypted-overlay Enable IPsec encrypted overlay. If enabled tunnel traffic will be encrypted before leaving the host. Requires ipsec and tunnel mode vxlan to be enabled. --enable-ipsec-key-watcher Enable watcher for IPsec key. If disabled, a restart of the agent will be necessary on key rotations. (default true) --enable-ipv4-big-tcp Enable IPv4 BIG TCP option which increases device's maximum GRO/GSO limits for IPv4 --enable-ipv6-big-tcp Enable IPv6 BIG TCP option which increases device's maximum GRO/GSO limits for IPv6 diff --git a/Documentation/cmdref/cilium-agent_hive_dot-graph.md b/Documentation/cmdref/cilium-agent_hive_dot-graph.md index bce945fe0965d..7010d0f9a834e 100644 --- a/Documentation/cmdref/cilium-agent_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-agent_hive_dot-graph.md @@ -77,7 +77,6 @@ cilium-agent hive dot-graph [flags] --enable-ingress-controller Enables Envoy secret sync for Ingress controller related TLS secrets --enable-ip-masq-agent Enable BPF ip-masq-agent --enable-ipsec Enable IPsec - --enable-ipsec-encrypted-overlay Enable IPsec encrypted overlay. If enabled tunnel traffic will be encrypted before leaving the host. Requires ipsec and tunnel mode vxlan to be enabled. --enable-ipsec-key-watcher Enable watcher for IPsec key. If disabled, a restart of the agent will be necessary on key rotations. (default true) --enable-ipv4-big-tcp Enable IPv4 BIG TCP option which increases device's maximum GRO/GSO limits for IPv4 --enable-ipv6-big-tcp Enable IPv6 BIG TCP option which increases device's maximum GRO/GSO limits for IPv6 diff --git a/Documentation/operations/upgrade.rst b/Documentation/operations/upgrade.rst index 3bef6f2ea2e0a..c43d145c3fd7f 100644 --- a/Documentation/operations/upgrade.rst +++ b/Documentation/operations/upgrade.rst @@ -330,7 +330,9 @@ Removed Options Deprecated Options ~~~~~~~~~~~~~~~~~~ - +* The ``--enable-ipsec-encrypted-overlay`` flag has no effect and will be removed in Cilium 1.20. Starting from + Cilium 1.18 the IPsec encryption is always applied after overlay encapsulation, and therefore this special opt-in + flag is no longer needed. Helm Options ~~~~~~~~~~~~ diff --git a/bpf/Makefile b/bpf/Makefile index 2719c99439fd5..a1af5d24f5877 100644 --- a/bpf/Makefile +++ b/bpf/Makefile @@ -78,12 +78,12 @@ HOST_OPTIONS = $(LXC_OPTIONS) \ -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER: \ -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL: \ -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE: \ - -DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_MULTICAST:-DENCRYPTED_OVERLAY: \ - -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_MULTICAST:-DENCRYPTED_OVERLAY: \ - -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENABLE_SCTP:-DENABLE_MULTICAST:-DENCRYPTED_OVERLAY: \ - -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENABLE_SCTP:-DENABLE_VTEP:-DENABLE_MULTICAST:-DENCRYPTED_OVERLAY: \ - -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DDSR_ENCAP_MODE:-DDSR_ENCAP_GENEVE:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENCRYPTED_OVERLAY:-DENABLE_SCTP:-DENABLE_VTEP:-DDSR_ENCAP_IPIP=2 \ - -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENCRYPTED_OVERLAY:-DENABLE_SCTP:-DENABLE_VTEP:-DENABLE_IPSEC: \ + -DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_MULTICAST: \ + -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_MULTICAST: \ + -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENABLE_SCTP:-DENABLE_MULTICAST: \ + -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENABLE_SCTP:-DENABLE_VTEP:-DENABLE_MULTICAST: \ + -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DDSR_ENCAP_MODE:-DDSR_ENCAP_GENEVE:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENABLE_SCTP:-DENABLE_VTEP:-DDSR_ENCAP_IPIP=2 \ + -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DPOLICY_VERDICT_NOTIFY:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL:-DENABLE_ICMP_RULE:-DENABLE_SRV6:-DENABLE_SRV6_SRH_ENCAP:-DENABLE_SCTP:-DENABLE_VTEP:-DENABLE_IPSEC: \ ifndef MAX_HOST_OPTIONS MAX_HOST_OPTIONS = $(MAX_BASE_OPTIONS) -DENCAP_IFINDEX=1 -DTUNNEL_MODE=1 -DENABLE_IPSEC=1 diff --git a/bpf/lib/mcast.h b/bpf/lib/mcast.h index d169d3e1a15d4..324ab640d8a7e 100644 --- a/bpf/lib/mcast.h +++ b/bpf/lib/mcast.h @@ -340,7 +340,6 @@ static long __mcast_ep_delivery(__maybe_unused void *sub_map, struct _mcast_ep_delivery_ctx *cb_ctx) { int ret = 0; - __u32 tunnel_id = WORLD_ID; __u8 from_overlay = 0; struct bpf_tunnel_key tun_key = {0}; @@ -372,13 +371,7 @@ static long __mcast_ep_delivery(__maybe_unused void *sub_map, if (from_overlay) return 0; -#ifdef ENABLE_ENCRYPTED_OVERLAY - /* if encrypted overlay is enabled we'll mark the packet for - * encryption via the tunnel ID. - */ - tunnel_id = ENCRYPTED_OVERLAY_ID; -#endif /* ENABLE_ENCRYPTED_OVERLAY */ - tun_key.tunnel_id = tunnel_id; + tun_key.tunnel_id = WORLD_ID; tun_key.remote_ipv4 = bpf_ntohl(sub->saddr); tun_key.tunnel_ttl = IPDEFTTL; diff --git a/bpf/node_config.h b/bpf/node_config.h index 4f9bb7a08b300..1748ad0445b7c 100644 --- a/bpf/node_config.h +++ b/bpf/node_config.h @@ -45,12 +45,6 @@ #define LOCAL_NODE_ID 6 #define REMOTE_NODE_ID 6 #define KUBE_APISERVER_NODE_ID 7 -/* This identity should never be seen on ingress or egress traffic to/from a - * node. - * It signals that the skb is overlay traffic that must be IPSec encrypted - * before it leaves the host. - */ -#define ENCRYPTED_OVERLAY_ID 11 #define CILIUM_HOST_MAC { .addr = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x56 } } #define NODEPORT_PORT_MIN 30000 #define NODEPORT_PORT_MAX 32767 diff --git a/daemon/cmd/daemon.go b/daemon/cmd/daemon.go index d2f37f98227e8..398007fcf65b0 100644 --- a/daemon/cmd/daemon.go +++ b/daemon/cmd/daemon.go @@ -23,7 +23,6 @@ import ( linuxrouting "github.com/cilium/cilium/pkg/datapath/linux/routing" "github.com/cilium/cilium/pkg/datapath/linux/safenetlink" datapathTables "github.com/cilium/cilium/pkg/datapath/tables" - "github.com/cilium/cilium/pkg/datapath/tunnel" datapath "github.com/cilium/cilium/pkg/datapath/types" "github.com/cilium/cilium/pkg/debug" "github.com/cilium/cilium/pkg/defaults" @@ -230,17 +229,6 @@ func newDaemon(ctx context.Context, cleaner *daemonCleanup, params *daemonParams bootstrapStats.daemonInit.Start() - // EncryptedOverlay feature must check the TunnelProtocol if enabled, since - // it only supports VXLAN right now. - if params.IPsecAgent.Enabled() && params.IPSecConfig.EncryptedOverlayEnabled() { - if !option.Config.TunnelingEnabled() { - return nil, nil, fmt.Errorf("EncryptedOverlay support requires VXLAN tunneling mode") - } - if params.TunnelConfig.EncapProtocol() != tunnel.VXLAN { - return nil, nil, fmt.Errorf("EncryptedOverlay support requires VXLAN tunneling protocol") - } - } - // WireGuard and IPSec are mutually exclusive. if params.IPsecAgent.Enabled() && params.WGAgent.Enabled() { return nil, nil, fmt.Errorf("WireGuard (--%s) cannot be used with IPsec (--%s)", wgTypes.EnableWireguard, datapath.EnableIPSec) @@ -258,10 +246,6 @@ func newDaemon(ctx context.Context, cleaner *daemonCleanup, params *daemonParams } } - if params.IPSecConfig.EncryptedOverlayEnabled() && !params.IPsecAgent.Enabled() { - params.Logger.Warn("IPSec encrypted overlay is enabled but IPSec is not. Ignoring option.") - } - if option.Config.EnableHostFirewall { if params.IPsecAgent.Enabled() { return nil, nil, fmt.Errorf("IPSec cannot be used with the host firewall.") diff --git a/pkg/datapath/fake/types/ipsec.go b/pkg/datapath/fake/types/ipsec.go index d491afdd01752..f302897bdaf28 100644 --- a/pkg/datapath/fake/types/ipsec.go +++ b/pkg/datapath/fake/types/ipsec.go @@ -61,10 +61,6 @@ func (c IPsecConfig) Enabled() bool { return c.EnableIPsec } -func (c IPsecConfig) EncryptedOverlayEnabled() bool { - return c.EncryptedOverlay -} - func (c IPsecConfig) UseCiliumInternalIP() bool { return c.UseCiliumInternalIPForIPsec } diff --git a/pkg/datapath/linux/config/config.go b/pkg/datapath/linux/config/config.go index cce4b322b844b..6b4324ca207af 100644 --- a/pkg/datapath/linux/config/config.go +++ b/pkg/datapath/linux/config/config.go @@ -65,7 +65,6 @@ type HeaderfileWriter struct { nodeExtraDefineFns []dpdef.Fn sysctl sysctl.Sysctl kprCfg kpr.KPRConfig - ipsecConfig datapath.IPsecConfig } func NewHeaderfileWriter(p WriterParams) (datapath.ConfigWriter, error) { @@ -83,7 +82,6 @@ func NewHeaderfileWriter(p WriterParams) (datapath.ConfigWriter, error) { log: p.Log, sysctl: p.Sysctl, kprCfg: p.KPRConfig, - ipsecConfig: p.IPSecConfig, }, nil } @@ -176,7 +174,6 @@ func (h *HeaderfileWriter) WriteNodeConfig(w io.Writer, cfg *datapath.LocalNodeC cDefinesMap["LOCAL_NODE_ID"] = fmt.Sprintf("%d", identity.ReservedIdentityRemoteNode) cDefinesMap["REMOTE_NODE_ID"] = fmt.Sprintf("%d", identity.GetReservedID(labels.IDNameRemoteNode)) cDefinesMap["KUBE_APISERVER_NODE_ID"] = fmt.Sprintf("%d", identity.GetReservedID(labels.IDNameKubeAPIServer)) - cDefinesMap["ENCRYPTED_OVERLAY_ID"] = fmt.Sprintf("%d", identity.GetReservedID(labels.IDNameEncryptedOverlay)) cDefinesMap["CILIUM_LB_SERVICE_MAP_MAX_ENTRIES"] = fmt.Sprintf("%d", cfg.LBConfig.LBServiceMapEntries) cDefinesMap["CILIUM_LB_BACKENDS_MAP_MAX_ENTRIES"] = fmt.Sprintf("%d", cfg.LBConfig.LBBackendMapEntries) cDefinesMap["CILIUM_LB_REV_NAT_MAP_MAX_ENTRIES"] = fmt.Sprintf("%d", cfg.LBConfig.LBRevNatEntries) @@ -240,10 +237,6 @@ func (h *HeaderfileWriter) WriteNodeConfig(w io.Writer, cfg *datapath.LocalNodeC if cfg.EnableIPSec { cDefinesMap["ENABLE_IPSEC"] = "1" - - if h.ipsecConfig.EncryptedOverlayEnabled() { - cDefinesMap["ENABLE_ENCRYPTED_OVERLAY"] = "1" - } } if cfg.EnableWireguard { diff --git a/pkg/datapath/linux/ipsec/cell.go b/pkg/datapath/linux/ipsec/cell.go index c3536fa2bc457..d280356e132a1 100644 --- a/pkg/datapath/linux/ipsec/cell.go +++ b/pkg/datapath/linux/ipsec/cell.go @@ -62,7 +62,6 @@ var defaultUserConfig = UserConfig{ EnableIPsec: false, EnableIPsecKeyWatcher: true, EnableIPsecXfrmStateCaching: true, - EnableIPsecEncryptedOverlay: false, UseCiliumInternalIPForIPsec: false, DNSProxyInsecureSkipTransparentModeCheck: false, IPsecKeyFile: "", @@ -73,7 +72,6 @@ type UserConfig struct { EnableIPsec bool EnableIPsecKeyWatcher bool EnableIPsecXfrmStateCaching bool - EnableIPsecEncryptedOverlay bool UseCiliumInternalIPForIPsec bool DNSProxyInsecureSkipTransparentModeCheck bool IPsecKeyFile string @@ -85,7 +83,7 @@ func (def UserConfig) Flags(flags *pflag.FlagSet) { flags.Bool(types.EnableIPsecKeyWatcher, def.EnableIPsecKeyWatcher, "Enable watcher for IPsec key. If disabled, a restart of the agent will be necessary on key rotations.") flags.Bool(types.EnableIPSecXfrmStateCaching, def.EnableIPsecXfrmStateCaching, "Enable XfrmState cache for IPSec. Significantly reduces CPU usage in large clusters.") flags.MarkHidden(types.EnableIPSecXfrmStateCaching) - flags.Bool(types.EnableIPSecEncryptedOverlay, def.EnableIPsecEncryptedOverlay, "Enable IPsec encrypted overlay. If enabled tunnel traffic will be encrypted before leaving the host. Requires ipsec and tunnel mode vxlan to be enabled.") + flags.MarkDeprecated(types.EnableIPSecEncryptedOverlay, "Encrypted overlay is the default behavior for IPsec.") flags.Bool(types.UseCiliumInternalIPForIPsec, def.UseCiliumInternalIPForIPsec, "Use the CiliumInternalIPs (vs. NodeInternalIPs) for IPsec encapsulation") flags.MarkHidden(types.UseCiliumInternalIPForIPsec) flags.Bool(types.DNSProxyInsecureSkipTransparentModeCheck, def.DNSProxyInsecureSkipTransparentModeCheck, "Allows DNS proxy transparent mode to be disabled even if encryption is enabled. Enabling this flag and disabling DNS proxy transparent mode will cause proxied DNS traffic to leave the node unencrypted.") @@ -104,10 +102,6 @@ func (c Config) Enabled() bool { return c.EnableIPsec } -func (c Config) EncryptedOverlayEnabled() bool { - return c.EnableIPsecEncryptedOverlay -} - func (c Config) UseCiliumInternalIP() bool { return c.UseCiliumInternalIPForIPsec } diff --git a/pkg/datapath/linux/ipsec/cell_test.go b/pkg/datapath/linux/ipsec/cell_test.go index 20f72b1830eff..00df198a94369 100644 --- a/pkg/datapath/linux/ipsec/cell_test.go +++ b/pkg/datapath/linux/ipsec/cell_test.go @@ -160,7 +160,6 @@ func TestPrivileged_TestIPSecCell(t *testing.T) { EnableIPsec: ipsecEnabled, EnableIPsecKeyWatcher: true, EnableIPsecXfrmStateCaching: true, - EnableIPsecEncryptedOverlay: false, UseCiliumInternalIPForIPsec: false, DNSProxyInsecureSkipTransparentModeCheck: false, IPsecKeyFile: keyFile, diff --git a/pkg/datapath/orchestrator/localnodeconfig.go b/pkg/datapath/orchestrator/localnodeconfig.go index 0214d7a86acbc..7db434e11268f 100644 --- a/pkg/datapath/orchestrator/localnodeconfig.go +++ b/pkg/datapath/orchestrator/localnodeconfig.go @@ -123,7 +123,6 @@ func newLocalNodeConfig( EnableLocalNodeRoute: config.EnableLocalNodeRoute && config.IPAM != ipamOption.IPAMENI && config.IPAM != ipamOption.IPAMAzure && config.IPAM != ipamOption.IPAMAlibabaCloud, EnableWireguard: wgCfg.Enabled(), EnableIPSec: ipsecCfg.Enabled(), - EnableIPSecEncryptedOverlay: ipsecCfg.EncryptedOverlayEnabled(), EncryptNode: config.EncryptNode, IPv4PodSubnets: cidr.NewCIDRSlice(config.IPv4PodSubnets), IPv6PodSubnets: cidr.NewCIDRSlice(config.IPv6PodSubnets), diff --git a/pkg/datapath/types/ipsec.go b/pkg/datapath/types/ipsec.go index 818e12a9e56d6..9801691bb04f1 100644 --- a/pkg/datapath/types/ipsec.go +++ b/pkg/datapath/types/ipsec.go @@ -20,7 +20,6 @@ type IPsecAgent interface { type IPsecConfig interface { Enabled() bool - EncryptedOverlayEnabled() bool UseCiliumInternalIP() bool DNSProxyInsecureSkipTransparentModeCheckEnabled() bool } diff --git a/pkg/datapath/types/node.go b/pkg/datapath/types/node.go index 86580276b8bf2..375fa8ea228ad 100644 --- a/pkg/datapath/types/node.go +++ b/pkg/datapath/types/node.go @@ -175,9 +175,6 @@ type LocalNodeConfiguration struct { // EnableIPSec enables IPSec routes EnableIPSec bool - // EnableIPSecEncryptedOverlay enables IPSec routes for overlay traffic - EnableIPSecEncryptedOverlay bool - // EncryptNode enables encrypting NodeIP traffic EncryptNode bool diff --git a/pkg/datapath/types/zz_generated.deepequal.go b/pkg/datapath/types/zz_generated.deepequal.go index 0e42c29e0bfe3..121b0bd7c2c9e 100644 --- a/pkg/datapath/types/zz_generated.deepequal.go +++ b/pkg/datapath/types/zz_generated.deepequal.go @@ -247,9 +247,6 @@ func (in *LocalNodeConfiguration) DeepEqual(other *LocalNodeConfiguration) bool if in.EnableIPSec != other.EnableIPSec { return false } - if in.EnableIPSecEncryptedOverlay != other.EnableIPSecEncryptedOverlay { - return false - } if in.EncryptNode != other.EncryptNode { return false } From 3175424a03daf9fdea1231055e8d26e6d2faa3c4 Mon Sep 17 00:00:00 2001 From: Julian Wiedmann Date: Mon, 22 Sep 2025 11:46:53 +0300 Subject: [PATCH 148/176] datapath: s/MARK_MAGIC_PROXY_TO_WORLD/MARK_MAGIC_SKIP_TPROXY https://github.com/cilium/cilium/pull/37723 started making use of this flag for other types of connections. Adjust the naming to better match what it actually does. Signed-off-by: Julian Wiedmann --- bpf/bpf_host.c | 10 +++++----- bpf/lib/common.h | 2 +- pkg/datapath/iptables/iptables.go | 4 ++-- pkg/datapath/linux/linux_defaults/linux_defaults.go | 7 ++++--- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 85952b2daa4e9..1425087dd78b2 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -398,7 +398,7 @@ handle_ipv6_cont(struct __ctx_buff *ctx, __u32 secctx, const bool from_host, #if defined(ENABLE_IPSEC) && !defined(TUNNEL_MODE) if (from_proxy && !identity_is_cluster(info->sec_identity)) - ctx->mark = MARK_MAGIC_PROXY_TO_WORLD; + ctx->mark = MARK_MAGIC_SKIP_TPROXY; #endif /* ENABLE_IPSEC && !TUNNEL_MODE */ return CTX_ACT_OK; @@ -851,7 +851,7 @@ handle_ipv4_cont(struct __ctx_buff *ctx, __u32 secctx, const bool from_host, #if defined(ENABLE_IPSEC) && !defined(TUNNEL_MODE) if (from_proxy && !identity_is_cluster(info->sec_identity)) - ctx->mark = MARK_MAGIC_PROXY_TO_WORLD; + ctx->mark = MARK_MAGIC_SKIP_TPROXY; #endif /* ENABLE_IPSEC && !TUNNEL_MODE */ return CTX_ACT_OK; @@ -1753,16 +1753,16 @@ int cil_to_host(struct __ctx_buff *ctx) * * This iptables rule, created by * iptables.Manager.inboundProxyRedirectRule() is ignored by the mark - * MARK_MAGIC_PROXY_TO_WORLD, in the control plane. + * MARK_MAGIC_SKIP_TPROXY, in the control plane. * Technically, it is also ignored by MARK_MAGIC_ENCRYPT but reusing * this mark breaks further processing as its used in the XFRM subsystem. * * Therefore, if the packet's mark is zero, indicating it was forwarded - * from 'cilium_host', mark the packet with MARK_MAGIC_PROXY_TO_WORLD + * from 'cilium_host', mark the packet with MARK_MAGIC_SKIP_TPROXY * and allow it to enter the foward path once punted to stack. */ if (ctx->mark == 0 && THIS_INTERFACE_IFINDEX == CILIUM_NET_IFINDEX) - ctx->mark = MARK_MAGIC_PROXY_TO_WORLD; + ctx->mark = MARK_MAGIC_SKIP_TPROXY; #endif /* !TUNNEL_MODE */ # ifdef ENABLE_NODEPORT diff --git a/bpf/lib/common.h b/bpf/lib/common.h index 49f96e1447fca..c5407720850e1 100644 --- a/bpf/lib/common.h +++ b/bpf/lib/common.h @@ -557,7 +557,7 @@ enum metric_dir { * In the IPsec case this becomes the SPI on the wire. */ #define MARK_MAGIC_HOST_MASK 0x0F00 -#define MARK_MAGIC_PROXY_TO_WORLD 0x0800 +#define MARK_MAGIC_SKIP_TPROXY 0x0800 #define MARK_MAGIC_PROXY_EGRESS_EPID 0x0900 /* mark carries source endpoint ID */ #define MARK_MAGIC_PROXY_INGRESS 0x0A00 #define MARK_MAGIC_PROXY_EGRESS 0x0B00 diff --git a/pkg/datapath/iptables/iptables.go b/pkg/datapath/iptables/iptables.go index 1372ee5c4492d..37a2cc7426444 100644 --- a/pkg/datapath/iptables/iptables.go +++ b/pkg/datapath/iptables/iptables.go @@ -598,14 +598,14 @@ func (m *Manager) inboundProxyRedirectRule(cmd string) []string { // excluding traffic for the loopback device. toProxyMark := fmt.Sprintf("%#08x", linux_defaults.MagicMarkIsToProxy) matchFromIPSecEncrypt := fmt.Sprintf("%#08x/%#08x", linux_defaults.RouteMarkEncrypt, linux_defaults.RouteMarkMask) - matchProxyToWorld := fmt.Sprintf("%#08x/%#08x", linux_defaults.MarkProxyToWorld, linux_defaults.RouteMarkMask) + matchSkipTProxy := fmt.Sprintf("%#08x/%#08x", linux_defaults.MarkSkipTProxy, linux_defaults.RouteMarkMask) return []string{ "-t", "mangle", cmd, ciliumPreMangleChain, "-m", "socket", "--transparent", "!", "-o", "lo", "-m", "mark", "!", "--mark", matchFromIPSecEncrypt, - "-m", "mark", "!", "--mark", matchProxyToWorld, + "-m", "mark", "!", "--mark", matchSkipTProxy, "-m", "comment", "--comment", "cilium: any->pod redirect proxied traffic to host proxy", "-j", "MARK", "--set-mark", toProxyMark} diff --git a/pkg/datapath/linux/linux_defaults/linux_defaults.go b/pkg/datapath/linux/linux_defaults/linux_defaults.go index 262abde3e3560..bdc5086adfd09 100644 --- a/pkg/datapath/linux/linux_defaults/linux_defaults.go +++ b/pkg/datapath/linux/linux_defaults/linux_defaults.go @@ -27,9 +27,10 @@ const ( // table which is between 253-255. See ip-route(8). RouteTableInterfacesOffset = 10 - // MarkProxyToWorld is the default mark to use to indicate that a packet - // from proxy needs to be sent to the world. - MarkProxyToWorld = 0x800 + // MarkSkipTProxy is the default mark to use to indicate that a packet + // should skip tproxy-processing. This is needed for eg. traffic by transparent + // proxy connections which later passes through the cilium_host / cilium_net pair. + MarkSkipTProxy = 0x800 // RouteMarkDecrypt is the default route mark to use to indicate datapath // needs to decrypt a packet. From 2884a096a7414ad8bd6e784075edb20f40f456e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Martins?= Date: Mon, 22 Sep 2025 14:19:33 +0200 Subject: [PATCH 149/176] .github/workflows: do not wait on linters form forks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fork PRs cannot update base images and require explicit approval for first-time contributors. Waiting for base image updates in these cases breaks the CI build process unnecessarily. Skip the wait-for-base-images job when PRs are opened from forks to allow the build process to proceed normally. Fixes: 406f3dda6530 (".github/workflows: stop build CI images until base images are built") Signed-off-by: André Martins --- .github/workflows/build-images-ci.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-images-ci.yaml b/.github/workflows/build-images-ci.yaml index 2eb3ad5cb914c..cffdde4b278f1 100644 --- a/.github/workflows/build-images-ci.yaml +++ b/.github/workflows/build-images-ci.yaml @@ -31,10 +31,11 @@ jobs: name: Wait for lint checks uses: ./.github/workflows/wait-for-status-check.yaml with: - # Only run this job if the event is pull_request_target. + # Only run this job if the event is pull_request_target and if the PR + # is not opened from a fork. # This is to avoid waiting for base images on push to main or merge_group # events as the lint-images-base does not run on those events. - if: ${{ github.event_name == 'pull_request_target' }} + if: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} sha: ${{ github.event.pull_request.head.sha || github.sha }} lint-workflows: "lint-images-base.yaml" timeout-minutes: 2 From 0fa13385aff3664911d790fb08d456ec4cd7c43c Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Thu, 28 Aug 2025 22:49:18 +0200 Subject: [PATCH 150/176] vendor: upgrade mcs-api dependency Signed-off-by: Arthur Outhenin-Chalandre --- Documentation/network/clustermesh/mcsapi.rst | 4 ++-- Documentation/operations/upgrade.rst | 1 + go.mod | 4 ++-- go.sum | 8 ++++---- vendor/modules.txt | 4 ++-- .../mcs-api/pkg/apis/v1alpha1/zz_generated.deepcopy.go | 7 +++++++ 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Documentation/network/clustermesh/mcsapi.rst b/Documentation/network/clustermesh/mcsapi.rst index 5d824fc5183b8..411ef6657a0dc 100644 --- a/Documentation/network/clustermesh/mcsapi.rst +++ b/Documentation/network/clustermesh/mcsapi.rst @@ -24,8 +24,8 @@ You first need to install the required MCS-API CRDs: .. code-block:: shell-session - kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/mcs-api/62ede9a032dcfbc41b3418d7360678cb83092498/config/crd/multicluster.x-k8s.io_serviceexports.yaml - kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/mcs-api/62ede9a032dcfbc41b3418d7360678cb83092498/config/crd/multicluster.x-k8s.io_serviceimports.yaml + kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/mcs-api/79efdd37ed2bf99b4ade250e4c0f4d62a4e970a2/config/crd/multicluster.x-k8s.io_serviceexports.yaml + kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/mcs-api/79efdd37ed2bf99b4ade250e4c0f4d62a4e970a2/config/crd/multicluster.x-k8s.io_serviceimports.yaml To install Cilium with MCS-API support, run: diff --git a/Documentation/operations/upgrade.rst b/Documentation/operations/upgrade.rst index c43d145c3fd7f..fe3eb892cce58 100644 --- a/Documentation/operations/upgrade.rst +++ b/Documentation/operations/upgrade.rst @@ -316,6 +316,7 @@ communicating via the proxy must reconnect to re-establish connections. This flag currently masquerades traffic to node ``InternalIP`` addresses. This may change in future. See :gh-issue:`35823` and :gh-issue:`17177` for further discussion on this topic. +* MCS-API CRDs need to be updated, see the MCS-API :ref:`clustermesh_mcsapi_prereqs` for updated CRD links. Removed Options ~~~~~~~~~~~~~~~ diff --git a/go.mod b/go.mod index 127deb5b3b794..71690fbdbc3ae 100644 --- a/go.mod +++ b/go.mod @@ -136,8 +136,8 @@ require ( k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d sigs.k8s.io/controller-runtime v0.21.0 sigs.k8s.io/gateway-api v1.3.1-0.20250611112659-17a60f668a0d - sigs.k8s.io/mcs-api v0.3.0 - sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b + sigs.k8s.io/mcs-api v0.3.1-0.20250908090929-79efdd37ed2b + sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257 sigs.k8s.io/yaml v1.6.0 ) diff --git a/go.sum b/go.sum index 3ebe0600ef399..6619ccef2120f 100644 --- a/go.sum +++ b/go.sum @@ -1089,10 +1089,10 @@ sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I sigs.k8s.io/kustomize/api v0.20.1/go.mod h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM= sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78= sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po= -sigs.k8s.io/mcs-api v0.3.0 h1:LjRvgzjMrvO1904GP6XBJSnIX221DJMyQlZOYt9LAnM= -sigs.k8s.io/mcs-api v0.3.0/go.mod h1:zZ5CK8uS6HaLkxY4HqsmcBHfzHuNMrY2uJy8T7jffK4= -sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b h1:SGufLhphw+FS0rVHtCCOMlNqoKNYUpZ639FJqlIA1wo= -sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b/go.mod h1:IEVANHiCGLNsCWuPsZCJhCVzeWavUmxpJ8XgpTt9MpM= +sigs.k8s.io/mcs-api v0.3.1-0.20250908090929-79efdd37ed2b h1:w9u8OrCeb+WjmF/6KHWtKGj6nEGF8XUxlghztKW87TQ= +sigs.k8s.io/mcs-api v0.3.1-0.20250908090929-79efdd37ed2b/go.mod h1:zZ5CK8uS6HaLkxY4HqsmcBHfzHuNMrY2uJy8T7jffK4= +sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257 h1:xxfmazcj83RrfIPC5nAjBpe/0/hI/m+/GaGV+ekJHGQ= +sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257/go.mod h1:58tAw+r41eczKabKA5KwwLabGlO6YLbtkYtKif9sDr0= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/vendor/modules.txt b/vendor/modules.txt index be05ac6dd9a2b..6ef6624037dcb 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2872,7 +2872,7 @@ sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field sigs.k8s.io/kustomize/kyaml/yaml/merge2 sigs.k8s.io/kustomize/kyaml/yaml/schema sigs.k8s.io/kustomize/kyaml/yaml/walk -# sigs.k8s.io/mcs-api v0.3.0 +# sigs.k8s.io/mcs-api v0.3.1-0.20250908090929-79efdd37ed2b ## explicit; go 1.23.0 sigs.k8s.io/mcs-api/pkg/apis/v1alpha1 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned @@ -2880,7 +2880,7 @@ sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/fake sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/scheme sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/typed/apis/v1alpha1 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/typed/apis/v1alpha1/fake -# sigs.k8s.io/mcs-api/controllers v0.0.0-20250908090929-79efdd37ed2b +# sigs.k8s.io/mcs-api/controllers v0.0.0-20250731081715-a807ec696257 ## explicit; go 1.23.0 sigs.k8s.io/mcs-api/controllers # sigs.k8s.io/randfill v1.0.0 diff --git a/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/zz_generated.deepcopy.go b/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/zz_generated.deepcopy.go index 4e6fd4d49f8a6..72181237a6674 100644 --- a/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/sigs.k8s.io/mcs-api/pkg/apis/v1alpha1/zz_generated.deepcopy.go @@ -250,6 +250,13 @@ func (in *ServiceImportStatus) DeepCopyInto(out *ServiceImportStatus) { *out = make([]ClusterStatus, len(*in)) copy(*out, *in) } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceImportStatus. From 35895557b08aeb3289095d0e62559540608961da Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Thu, 28 Aug 2025 23:32:42 +0200 Subject: [PATCH 151/176] clustermesh: update ServiceExport conditions with new mcs-api reasons Signed-off-by: Arthur Outhenin-Chalandre --- .../mcsapi/serviceimport_controller.go | 145 ++++++++++-------- .../mcsapi/serviceimport_controller_test.go | 55 ++++--- 2 files changed, 118 insertions(+), 82 deletions(-) diff --git a/pkg/clustermesh/mcsapi/serviceimport_controller.go b/pkg/clustermesh/mcsapi/serviceimport_controller.go index 2e892b2e46b94..1fc3e7965dd9c 100644 --- a/pkg/clustermesh/mcsapi/serviceimport_controller.go +++ b/pkg/clustermesh/mcsapi/serviceimport_controller.go @@ -32,10 +32,6 @@ import ( "github.com/cilium/cilium/pkg/logging/logfields" ) -const ( - conditionTypeReady = "Ready" -) - // mcsAPIServiceImportReconciler is a controller that automatically creates // ServiceImport from ServiceExport (and their corresponding Services) from // remote clusters and the local cluster. It also handles ServiceExport status @@ -187,8 +183,8 @@ func checkPortConflict(port, olderPort portMerge) string { // mergePorts merge all the ports into a map while doing conflict resolution // with the oldest CreationTimestamp. It also return if it detects any conflict -func mergePorts(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) ([]portMerge, string) { - conflict := "" +func mergePorts(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) ([]portMerge, mcsapiv1alpha1.ServiceExportConditionReason, string) { + conflictMsg := "" ports := []portMerge{} portsByName := map[string]portMerge{} for _, svcExport := range orderedSvcExports { @@ -200,8 +196,8 @@ func mergePorts(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) ([]portMerge } conflictDuplicatedPortName := checkDuplicatedPortNameConflict(portMergeValue, portsByName) - if conflict == "" { - conflict = conflictDuplicatedPortName + if conflictMsg == "" { + conflictMsg = conflictDuplicatedPortName } if conflictDuplicatedPortName != "" { continue @@ -216,12 +212,16 @@ func mergePorts(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) ([]portMerge // exporting that port name portsByName[port.Name] = portMergeValue ports = append(ports, portMergeValue) - } else if conflict == "" { - conflict = checkPortConflict(portMergeValue, ports[portIndex]) + } else if conflictMsg == "" { + conflictMsg = checkPortConflict(portMergeValue, ports[portIndex]) } } } - return ports, conflict + reason := mcsapiv1alpha1.ServiceExportReasonNoConflicts + if conflictMsg != "" { + reason = mcsapiv1alpha1.ServiceExportReasonPortConflict + } + return ports, reason, conflictMsg } func mergedPortsToMCSPorts(mergedPorts []portMerge) []mcsapiv1alpha1.ServicePort { @@ -254,16 +254,18 @@ func derefSessionAffinity(sessionAffinityConfig *corev1.SessionAffinityConfig) * // checkConflictExport check if there are any conflict to be added on // the ServiceExport object. This function does not check for conflict on the // ports field this aspect should be done by mergePorts -func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) string { +func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) (mcsapiv1alpha1.ServiceExportConditionReason, string) { clusterCount := len(orderedSvcExports) fieldStructs := []struct { name string + reason mcsapiv1alpha1.ServiceExportConditionReason getterFunc func(svcSpec *mcsapitypes.MCSAPIServiceSpec) string equalFunc func(svc1, svc2 *mcsapitypes.MCSAPIServiceSpec) bool }{ { - name: "type", + name: "type", + reason: mcsapiv1alpha1.ServiceExportReasonTypeConflict, getterFunc: func(svcSpec *mcsapitypes.MCSAPIServiceSpec) string { return string(svcSpec.Type) }, @@ -272,7 +274,8 @@ func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) str }, }, { - name: "sessionAffinity", + name: "sessionAffinity", + reason: mcsapiv1alpha1.ServiceExportReasonSessionAffinityConflict, getterFunc: func(svcSpec *mcsapitypes.MCSAPIServiceSpec) string { return string(svcSpec.SessionAffinity) }, @@ -281,7 +284,8 @@ func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) str }, }, { - name: "sessionAffinityConfig.clientIP", + name: "sessionAffinityConfig.clientIP", + reason: mcsapiv1alpha1.ServiceExportReasonSessionAffinityConfigConflict, getterFunc: func(svcSpec *mcsapitypes.MCSAPIServiceSpec) string { timeoutSeconds := derefSessionAffinity(svcSpec.SessionAffinityConfig) if timeoutSeconds == nil { @@ -294,7 +298,8 @@ func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) str }, }, { - name: "annotations", + name: "annotations", + reason: mcsapiv1alpha1.ServiceExportReasonAnnotationsConflict, getterFunc: func(svcSpec *mcsapitypes.MCSAPIServiceSpec) string { return fmt.Sprintf("%v", svcSpec.Annotations) }, @@ -303,7 +308,8 @@ func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) str }, }, { - name: "labels", + name: "labels", + reason: mcsapiv1alpha1.ServiceExportReasonLabelsConflict, getterFunc: func(svcSpec *mcsapitypes.MCSAPIServiceSpec) string { return fmt.Sprintf("%v", svcSpec.Labels) }, @@ -329,7 +335,7 @@ func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) str } } - return fmt.Sprintf( + return fieldStruct.reason, fmt.Sprintf( "Conflicting %s. %d/%d clusters disagree. Using \"%s\" from oldest service export in cluster \"%s\".", fieldStruct.name, conflictCount, clusterCount, fieldStruct.getterFunc(orderedSvcExports[0]), @@ -338,7 +344,23 @@ func checkConflictExport(orderedSvcExports []*mcsapitypes.MCSAPIServiceSpec) str } } - return "" + return mcsapiv1alpha1.ServiceExportReasonNoConflicts, "" +} + +func setInvalidStatus(conditions *[]metav1.Condition, reason mcsapiv1alpha1.ServiceExportConditionReason, msg string) bool { + changed := meta.SetStatusCondition(conditions, mcsapiv1alpha1.NewServiceExportCondition( + mcsapiv1alpha1.ServiceExportConditionValid, + metav1.ConditionFalse, + reason, + msg, + )) + changed = meta.SetStatusCondition(conditions, mcsapiv1alpha1.NewServiceExportCondition( + mcsapiv1alpha1.ServiceExportConditionReady, + metav1.ConditionFalse, + mcsapiv1alpha1.ServiceExportReasonPending, + "ServiceExport is not valid", + )) || changed + return meta.RemoveStatusCondition(conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict)) || changed } func (r *mcsAPIServiceImportReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { @@ -373,14 +395,11 @@ func (r *mcsAPIServiceImportReconciler) Reconcile(ctx context.Context, req ctrl. return controllerruntime.Fail(err) } if localSvc == nil { - if meta.SetStatusCondition(&svcExport.Status.Conditions, metav1.Condition{ - Type: mcsapiv1alpha1.ServiceExportValid, - Status: metav1.ConditionFalse, - Reason: "NoService", - Message: "Service doesn't exist", - }) { - meta.RemoveStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict) - meta.RemoveStatusCondition(&svcExport.Status.Conditions, conditionTypeReady) + if setInvalidStatus( + &svcExport.Status.Conditions, + mcsapiv1alpha1.ServiceExportReasonNoService, + "Service doesn't exist", + ) { if err := r.Client.Status().Update(ctx, svcExport); err != nil { return controllerruntime.Fail(err) } @@ -394,14 +413,11 @@ func (r *mcsAPIServiceImportReconciler) Reconcile(ctx context.Context, req ctrl. svcExportByCluster[r.cluster] = localSvcSpec if localSvc.Spec.Type == corev1.ServiceTypeExternalName { - if meta.SetStatusCondition(&svcExport.Status.Conditions, metav1.Condition{ - Type: mcsapiv1alpha1.ServiceExportValid, - Status: metav1.ConditionFalse, - Reason: "ServiceType", - Message: "Service type ExternalName is not supported", - }) { - meta.RemoveStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict) - meta.RemoveStatusCondition(&svcExport.Status.Conditions, conditionTypeReady) + if setInvalidStatus( + &svcExport.Status.Conditions, + mcsapiv1alpha1.ServiceExportReasonInvalidServiceType, + "Service type ExternalName is not supported", + ) { if err := r.Client.Status().Update(ctx, svcExport); err != nil { return controllerruntime.Fail(err) } @@ -411,37 +427,40 @@ func (r *mcsAPIServiceImportReconciler) Reconcile(ctx context.Context, req ctrl. } orderedSvcExports := orderSvcExportByPriority(svcExportByCluster) - mergedPorts, conflictMsg := mergePorts(orderedSvcExports) + mergedPorts, conflictReason, conflictMsg := mergePorts(orderedSvcExports) + if conflictReason == mcsapiv1alpha1.ServiceExportReasonNoConflicts { + conflictReason, conflictMsg = checkConflictExport(orderedSvcExports) + } if svcExport != nil { - changedCondition := meta.SetStatusCondition(&svcExport.Status.Conditions, metav1.Condition{ - Type: mcsapiv1alpha1.ServiceExportValid, - Status: metav1.ConditionTrue, - Reason: mcsapiv1alpha1.ServiceExportValid, - Message: "Service is Valid for export", - }) - - if conflictMsg == "" { - conflictMsg = checkConflictExport(orderedSvcExports) - } - if conflictMsg != "" { - changedCondition = meta.SetStatusCondition(&svcExport.Status.Conditions, metav1.Condition{ - Type: mcsapiv1alpha1.ServiceExportConflict, - Status: metav1.ConditionTrue, - Reason: mcsapiv1alpha1.ServiceExportConflict, - Message: conflictMsg, - }) || changedCondition - } - readyStatus := metav1.ConditionFalse - if conflictMsg == "" { - readyStatus = metav1.ConditionTrue - changedCondition = meta.RemoveStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict) || changedCondition + changedCondition := meta.SetStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.NewServiceExportCondition( + mcsapiv1alpha1.ServiceExportConditionValid, + metav1.ConditionTrue, + mcsapiv1alpha1.ServiceExportReasonValid, + "ServiceExport is valid", + )) + changedCondition = meta.SetStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.NewServiceExportCondition( + mcsapiv1alpha1.ServiceExportConditionReady, + metav1.ConditionTrue, + mcsapiv1alpha1.ServiceExportReasonReady, + "ServiceExport is ready", + )) || changedCondition + + if conflictReason != mcsapiv1alpha1.ServiceExportReasonNoConflicts { + changedCondition = meta.SetStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.NewServiceExportCondition( + mcsapiv1alpha1.ServiceExportConditionConflict, + metav1.ConditionTrue, + conflictReason, + conflictMsg, + )) || changedCondition + } else { + changedCondition = meta.SetStatusCondition(&svcExport.Status.Conditions, mcsapiv1alpha1.NewServiceExportCondition( + mcsapiv1alpha1.ServiceExportConditionConflict, + metav1.ConditionFalse, + mcsapiv1alpha1.ServiceExportReasonNoConflicts, + "ServiceExport has no conflicts", + )) || changedCondition } - changedCondition = meta.SetStatusCondition(&svcExport.Status.Conditions, metav1.Condition{ - Type: conditionTypeReady, - Status: readyStatus, - Reason: conditionTypeReady, - }) || changedCondition if changedCondition { if err := r.Client.Status().Update(ctx, svcExport); err != nil { return controllerruntime.Fail(err) diff --git a/pkg/clustermesh/mcsapi/serviceimport_controller_test.go b/pkg/clustermesh/mcsapi/serviceimport_controller_test.go index be48467d2e4b1..aedf0d8e6334c 100644 --- a/pkg/clustermesh/mcsapi/serviceimport_controller_test.go +++ b/pkg/clustermesh/mcsapi/serviceimport_controller_test.go @@ -544,9 +544,9 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { svcExport, err := getServiceExport(c, key) require.NoError(t, err) require.NotNil(t, svcExport) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, conditionTypeReady)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportValid)) - require.Nil(t, meta.FindStatusCondition(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict)) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionReady))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionValid))) + require.True(t, meta.IsStatusConditionFalse(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict))) }) t.Run("Service import creation with remote-only", func(t *testing.T) { @@ -635,9 +635,9 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { svcExport, err := getServiceExport(c, key) require.NoError(t, err) require.NotNil(t, svcExport) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, conditionTypeReady)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportValid)) - require.Nil(t, meta.FindStatusCondition(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict)) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionReady))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionValid))) + require.True(t, meta.IsStatusConditionFalse(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict))) }) t.Run("Delete local service test", func(t *testing.T) { @@ -800,9 +800,9 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.NoError(t, err) require.NotNil(t, svcExport) - require.True(t, meta.IsStatusConditionFalse(svcExport.Status.Conditions, conditionTypeReady)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportValid)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict)) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionReady))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionValid))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict))) globalServiceExports.OnUpdate(&mcsapitypes.MCSAPIServiceSpec{ Cluster: remoteClusterName, @@ -829,15 +829,16 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.NoError(t, err) require.NotNil(t, svcExport) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, conditionTypeReady)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportValid)) - require.Nil(t, meta.FindStatusCondition(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict)) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionReady))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionValid))) + require.True(t, meta.IsStatusConditionFalse(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict))) }) conflictTests := []struct { name string remoteSvcImportValid func(*mcsapiv1alpha1.ServiceImport) bool localSvcImportValid func(*mcsapiv1alpha1.ServiceImport) bool + assertReason mcsapiv1alpha1.ServiceExportConditionReason assertMsgInclude string }{ { @@ -848,6 +849,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { localSvcImportValid: func(svcImport *mcsapiv1alpha1.ServiceImport) bool { return svcImport.Spec.Type == mcsapiv1alpha1.ClusterSetIP }, + assertReason: mcsapiv1alpha1.ServiceExportReasonTypeConflict, assertMsgInclude: "1/2 clusters disagree", }, { @@ -858,6 +860,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { localSvcImportValid: func(svcImport *mcsapiv1alpha1.ServiceImport) bool { return len(svcImport.Spec.Ports) == 1 && svcImport.Spec.Ports[0].Name == "" }, + assertReason: mcsapiv1alpha1.ServiceExportReasonPortConflict, }, { name: "conflict-port-appprotocol", @@ -867,6 +870,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { localSvcImportValid: func(svcImport *mcsapiv1alpha1.ServiceImport) bool { return len(svcImport.Spec.Ports) == 1 && ptr.Deref(svcImport.Spec.Ports[0].AppProtocol, "") == "" }, + assertReason: mcsapiv1alpha1.ServiceExportReasonPortConflict, }, { name: "conflict-duplicated-port-name", @@ -876,6 +880,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { localSvcImportValid: func(svcImport *mcsapiv1alpha1.ServiceImport) bool { return len(svcImport.Spec.Ports) == 1 && svcImport.Spec.Ports[0].Port == 4242 }, + assertReason: mcsapiv1alpha1.ServiceExportReasonPortConflict, }, { name: "conflict-session-affinity", @@ -885,6 +890,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { localSvcImportValid: func(svcImport *mcsapiv1alpha1.ServiceImport) bool { return svcImport.Spec.SessionAffinity == corev1.ServiceAffinityNone }, + assertReason: mcsapiv1alpha1.ServiceExportReasonSessionAffinityConflict, }, { name: "conflict-session-affinity-config", @@ -894,6 +900,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { localSvcImportValid: func(svcImport *mcsapiv1alpha1.ServiceImport) bool { return *svcImport.Spec.SessionAffinityConfig.ClientIP.TimeoutSeconds == 4242 }, + assertReason: mcsapiv1alpha1.ServiceExportReasonSessionAffinityConfigConflict, }, { name: "conflict-annotations", @@ -908,6 +915,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { "service.cilium.io/global-sync-endpoint-slices": "true", }) }, + assertReason: mcsapiv1alpha1.ServiceExportReasonAnnotationsConflict, }, { name: "conflict-labels", @@ -922,6 +930,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { "my-label": "test", }) }, + assertReason: mcsapiv1alpha1.ServiceExportReasonLabelsConflict, }, } @@ -947,14 +956,15 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.NoError(t, err) require.NotNil(t, svcExport) - require.True(t, meta.IsStatusConditionFalse(svcExport.Status.Conditions, conditionTypeReady)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportValid)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict)) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionReady))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionValid))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict))) if conflictTest.assertMsgInclude != "" { - condition := meta.FindStatusCondition(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict) + condition := meta.FindStatusCondition(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict)) require.NotNil(t, condition) require.Contains(t, condition.Message, conflictTest.assertMsgInclude) + require.Equal(t, string(conflictTest.assertReason), condition.Reason) } }) } @@ -985,9 +995,16 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.NoError(t, err) require.NotNil(t, svcExport) - require.True(t, meta.IsStatusConditionFalse(svcExport.Status.Conditions, conditionTypeReady)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportValid)) - require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, mcsapiv1alpha1.ServiceExportConflict)) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionReady))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionValid))) + require.True(t, meta.IsStatusConditionTrue(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict))) + + if conflictTest.assertMsgInclude != "" { + condition := meta.FindStatusCondition(svcExport.Status.Conditions, string(mcsapiv1alpha1.ServiceExportConditionConflict)) + require.NotNil(t, condition) + require.Contains(t, condition.Message, conflictTest.assertMsgInclude) + require.Equal(t, string(conflictTest.assertReason), condition.Reason) + } }) } } From 4ebc466a1ebf70fffe87fe44325d12d3d583f9f6 Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Fri, 29 Aug 2025 00:10:33 +0200 Subject: [PATCH 152/176] clustermesh: add ServiceImport conditions support Signed-off-by: Arthur Outhenin-Chalandre --- .../mcsapi/serviceimport_controller.go | 30 ++++++++++++++----- .../mcsapi/serviceimport_controller_test.go | 5 ++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/pkg/clustermesh/mcsapi/serviceimport_controller.go b/pkg/clustermesh/mcsapi/serviceimport_controller.go index 1fc3e7965dd9c..efddf6853fecb 100644 --- a/pkg/clustermesh/mcsapi/serviceimport_controller.go +++ b/pkg/clustermesh/mcsapi/serviceimport_controller.go @@ -232,14 +232,14 @@ func mergedPortsToMCSPorts(mergedPorts []portMerge) []mcsapiv1alpha1.ServicePort return ports } -func getServiceImportStatus(svcExportByCluster operator.ServiceExportsByCluster) mcsapiv1alpha1.ServiceImportStatus { - clusters := []mcsapiv1alpha1.ClusterStatus{} +func getClustersStatus(svcExportByCluster operator.ServiceExportsByCluster) []mcsapiv1alpha1.ClusterStatus { + clusters := make([]mcsapiv1alpha1.ClusterStatus, 0, len(svcExportByCluster)) for _, cluster := range slices.Sorted(maps.Keys(svcExportByCluster)) { clusters = append(clusters, mcsapiv1alpha1.ClusterStatus{ Cluster: cluster, }) } - return mcsapiv1alpha1.ServiceImportStatus{Clusters: clusters} + return clusters } func derefSessionAffinity(sessionAffinityConfig *corev1.SessionAffinityConfig) *int32 { @@ -475,7 +475,8 @@ func (r *mcsAPIServiceImportReconciler) Reconcile(ctx context.Context, req ctrl. svcImport.Spec.SessionAffinityConfig = oldestClusterSvc.SessionAffinityConfig.DeepCopy() svcImport.Labels = maps.Clone(oldestClusterSvc.Labels) annotations := maps.Clone(oldestClusterSvc.Annotations) - if _, ok := svcImport.Annotations[mcsapicontrollers.DerivedServiceAnnotation]; ok { + _, derivedSvcAnnotationExists := svcImport.Annotations[mcsapicontrollers.DerivedServiceAnnotation] + if derivedSvcAnnotationExists { if annotations == nil { annotations = map[string]string{} } @@ -488,9 +489,24 @@ func (r *mcsAPIServiceImportReconciler) Reconcile(ctx context.Context, req ctrl. return controllerruntime.Fail(err) } - newStatus := getServiceImportStatus(svcExportByCluster) - if !reflect.DeepEqual(svcImport.Status, newStatus) { - svcImport.Status = newStatus + svcImportStatusOriginal := svcImport.Status.DeepCopy() + svcImport.Status.Clusters = getClustersStatus(svcExportByCluster) + if derivedSvcAnnotationExists { + meta.SetStatusCondition(&svcImport.Status.Conditions, mcsapiv1alpha1.NewServiceImportCondition( + mcsapiv1alpha1.ServiceImportConditionReady, + metav1.ConditionTrue, + mcsapiv1alpha1.ServiceImportReasonReady, + "ServiceImport is ready", + )) + } else { + meta.SetStatusCondition(&svcImport.Status.Conditions, mcsapiv1alpha1.NewServiceImportCondition( + mcsapiv1alpha1.ServiceImportConditionReady, + metav1.ConditionFalse, + mcsapiv1alpha1.ServiceImportReasonPending, + "Waiting for the derived Service to be created", + )) + } + if !reflect.DeepEqual(svcImportStatusOriginal, svcImport.Status) { if err := r.Client.Status().Update(ctx, svcImport); err != nil { return controllerruntime.Fail(err) } diff --git a/pkg/clustermesh/mcsapi/serviceimport_controller_test.go b/pkg/clustermesh/mcsapi/serviceimport_controller_test.go index aedf0d8e6334c..195609fce28a6 100644 --- a/pkg/clustermesh/mcsapi/serviceimport_controller_test.go +++ b/pkg/clustermesh/mcsapi/serviceimport_controller_test.go @@ -5,7 +5,6 @@ package mcsapi import ( "context" - "fmt" "maps" "testing" "time" @@ -540,6 +539,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { SessionAffinityConfig: nil, }, svcImport.Spec) require.Len(t, svcImport.Status.Clusters, 1) + require.True(t, meta.IsStatusConditionFalse(svcImport.Status.Conditions, string(mcsapiv1alpha1.ServiceImportConditionReady))) svcExport, err := getServiceExport(c, key) require.NoError(t, err) @@ -565,6 +565,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.NoError(t, err) require.NotNil(t, svcImport) require.Len(t, svcImport.Status.Clusters, 1) + require.True(t, meta.IsStatusConditionFalse(svcImport.Status.Conditions, string(mcsapiv1alpha1.ServiceImportConditionReady))) require.Equal(t, remoteClusterName, svcImport.Status.Clusters[0].Cluster) }) @@ -722,6 +723,7 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.NoError(t, err) require.NotNil(t, svcImport) require.Len(t, svcImport.Status.Clusters, 1) + require.True(t, meta.IsStatusConditionFalse(svcImport.Status.Conditions, string(mcsapiv1alpha1.ServiceImportConditionReady))) require.Equal(t, remoteClusterName, svcImport.Status.Clusters[0].Cluster) globalServiceExports.OnUpdate(&mcsapitypes.MCSAPIServiceSpec{ @@ -772,7 +774,6 @@ func Test_mcsServiceImport_Reconcile(t *testing.T) { require.True(t, maps.Equal(svcImport.Labels, map[string]string{ "exported-label": "", })) - fmt.Println(svcImport.Annotations) require.True(t, maps.Equal(svcImport.Annotations, map[string]string{ mcsapicontrollers.DerivedServiceAnnotation: "", "exported-annotation": "", From f013116564bddb0688dfaf75067dc9c7af893ba0 Mon Sep 17 00:00:00 2001 From: Arthur Outhenin-Chalandre Date: Sat, 30 Aug 2025 22:48:04 +0200 Subject: [PATCH 153/176] clustermesh: add metrics for new SerivceImport status conditions Signed-off-by: Arthur Outhenin-Chalandre --- Documentation/observability/metrics.rst | 1 + pkg/clustermesh/mcsapi/metrics.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/Documentation/observability/metrics.rst b/Documentation/observability/metrics.rst index 2b6e3ea201add..ac8b881a8ed6f 100644 --- a/Documentation/observability/metrics.rst +++ b/Documentation/observability/metrics.rst @@ -1012,6 +1012,7 @@ Name Labels ``serviceexport_info`` ``serviceexport``, ``namespace`` Enabled Information about ServiceExport in the local cluster ``serviceexport_status_condition`` ``serviceexport``, ``namespace``, ``condition``, ``status`` Enabled Status Condition of ServiceExport in the local cluster ``serviceimport_info`` ``serviceimport``, ``namespace`` Enabled Information about ServiceImport in the local cluster +``serviceimport_status_condition`` ``serviceimport``, ``namespace``, ``condition``, ``status`` Enabled Status Condition of ServiceImport in the local cluster ==================================== ============================================================ ========== =========================================================== Clustermesh diff --git a/pkg/clustermesh/mcsapi/metrics.go b/pkg/clustermesh/mcsapi/metrics.go index d836b7443a43a..466aa831507ed 100644 --- a/pkg/clustermesh/mcsapi/metrics.go +++ b/pkg/clustermesh/mcsapi/metrics.go @@ -32,6 +32,10 @@ func registerMCSAPICollector(registry *metrics.Registry, logger *slog.Logger, cl prometheus.BuildFQName(metrics.CiliumOperatorNamespace, "", "serviceimport_info"), "Information about ServiceImport in the local cluster", []string{"serviceimport", "namespace"}, nil), + serviceImportStatusCondition: prometheus.NewDesc( + prometheus.BuildFQName(metrics.CiliumOperatorNamespace, "", "serviceimport_status_condition"), + "Status Condition of ServiceImport in the local cluster", + []string{"serviceimport", "namespace", "condition", "status"}, nil), }) } @@ -42,12 +46,14 @@ type mcsAPICollector struct { serviceExportInfo *prometheus.Desc serviceExportStatusCondition *prometheus.Desc serviceImportInfo *prometheus.Desc + serviceImportStatusCondition *prometheus.Desc } func (c *mcsAPICollector) Describe(ch chan<- *prometheus.Desc) { ch <- c.serviceExportInfo ch <- c.serviceExportStatusCondition ch <- c.serviceImportInfo + ch <- c.serviceImportStatusCondition } func (c *mcsAPICollector) Collect(ch chan<- prometheus.Metric) { @@ -103,5 +109,19 @@ func (c *mcsAPICollector) Collect(ch chan<- prometheus.Metric) { return } ch <- metric + for _, condition := range svcImport.Status.Conditions { + metric, err := prometheus.NewConstMetric( + c.serviceImportStatusCondition, + prometheus.GaugeValue, + 1, + svcImport.Name, svcImport.Namespace, + string(condition.Type), string(condition.Status), + ) + if err != nil { + c.logger.Error("Failed to generate ServiceImport metrics", logfields.Error, err) + return + } + ch <- metric + } } } From c8bf81af8530fdd645a9b0b74245bdf7d8d3e100 Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Tue, 16 Sep 2025 16:36:55 +0200 Subject: [PATCH 154/176] redirectpolicy: Always OpenOrCreate SkipLB map to avoid loader race The BPF programs will contain the SkipLB map definition regardless of whether this is used or not. This can cause flakes in CI if the loader races loading endpoint programs in parallel and each of those are trying to pin the skiplb maps. To avoid this always open and pin the skiplb maps. The error in logs was: level=error msg="Error while reloading endpoint BPF program" ... error="loading eBPF collection into the kernel: map cilium_skip_lb6: pin map to .../cilium_skip_lb6: file exists" Signed-off-by: Jussi Maki --- pkg/loadbalancer/redirectpolicy/skiplb.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkg/loadbalancer/redirectpolicy/skiplb.go b/pkg/loadbalancer/redirectpolicy/skiplb.go index c6e977a3615b2..ca065c66b84be 100644 --- a/pkg/loadbalancer/redirectpolicy/skiplb.go +++ b/pkg/loadbalancer/redirectpolicy/skiplb.go @@ -385,9 +385,6 @@ func newSkipLBMap(p skiplbmapParams) (out bpf.MapOut[lbmaps.SkipLBMap], err erro p.Lifecycle.Append(cell.Hook{ OnStart: func(cell.HookContext) error { - if !p.NetNSCookieSupport() { - return nil - } return m.OpenOrCreate() }, OnStop: func(cell.HookContext) error { From c1cab04a283a54e08345f9b70ca12fa93ec0a9de Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Wed, 17 Sep 2025 11:57:30 +0200 Subject: [PATCH 155/176] testutils: Add workqueue.delayingType to ignored goroutines This is another goroutine forked by workqueue which we can't reliably wait for from ShutDown(). Signed-off-by: Jussi Maki --- pkg/testutils/goleak.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/testutils/goleak.go b/pkg/testutils/goleak.go index 3fc44735b0a5f..9402f21cc5b48 100644 --- a/pkg/testutils/goleak.go +++ b/pkg/testutils/goleak.go @@ -22,6 +22,7 @@ func defaultGoleakOptions() []goleak.Option { // Unfortunately we don't have a way for waiting for the workqueue's background goroutine // to exit (used by pkg/k8s/resource), so we'll just need to ignore it. goleak.IgnoreTopFunction("k8s.io/client-go/util/workqueue.(*Typed[...]).updateUnfinishedWorkLoop"), + goleak.IgnoreTopFunction("k8s.io/client-go/util/workqueue.(*delayingType[...]).waitingLoop"), } } From 41aa98064c873aa4a145b55e6368bd022eca8a50 Mon Sep 17 00:00:00 2001 From: Jason Aliyetti Date: Thu, 18 Sep 2025 11:05:34 -0400 Subject: [PATCH 156/176] ipam: Do not update local node if ENI config is invalid It is possible to update the local node to hold an inconsistent ENI state which prevents correct ENI device configuration. This change makes setOwnNodeWithoutPoolUpdate handle local node updates consistent with how updateLocalNodeResource handles it. Fixes: #41626 Signed-off-by: Jason Aliyetti --- pkg/ipam/crd.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/ipam/crd.go b/pkg/ipam/crd.go index 6777876016310..3102f6d413977 100644 --- a/pkg/ipam/crd.go +++ b/pkg/ipam/crd.go @@ -532,8 +532,17 @@ func (n *nodeStore) updateLocalNodeResource(node *ciliumv2.CiliumNode) { // its resourceVersion) without updating the available IP pool. func (n *nodeStore) setOwnNodeWithoutPoolUpdate(node *ciliumv2.CiliumNode) { n.mutex.Lock() + defer n.mutex.Unlock() + + // Do not update to an inconsistent state (see updateLocalNodeResource) + if n.conf.IPAMMode() == ipamOption.IPAMENI { + if err := validateENIConfig(node); err != nil { + n.logger.Info("ENI state is not consistent yet", logfields.Error, err) + return + } + } + n.ownNode = node - n.mutex.Unlock() } // refreshNodeTrigger is called to refresh the custom resource after taking the From ad24a6fd8cbb18683faea5593b80ee8a90dc068f Mon Sep 17 00:00:00 2001 From: Louis DeLosSantos Date: Mon, 22 Sep 2025 11:31:44 -0400 Subject: [PATCH 157/176] ipsec: remove dead usage of EncryptedOverlayReqID Some cleanup missed in commit: Commit: e202a4e10c Author: Louis DeLosSantos Date: Wed Oct 30 11:01:50 2024 -0400 ipsec: despecify decrypted overlay We no longer use the EncryptedOverlayReqID constant anywhere in the codebase to specify a reqid for overlay traffic. Remove this constant. Signed-off-by: Louis DeLosSantos --- pkg/datapath/linux/ipsec/ipsec_linux.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkg/datapath/linux/ipsec/ipsec_linux.go b/pkg/datapath/linux/ipsec/ipsec_linux.go index 3c1fe43fac8f5..dae7f70a9ef67 100644 --- a/pkg/datapath/linux/ipsec/ipsec_linux.go +++ b/pkg/datapath/linux/ipsec/ipsec_linux.go @@ -69,9 +69,6 @@ const ( // DefaultReqID is the default reqid used for all IPSec rules. DefaultReqID = 1 - - // EncryptedOverlayReqID is the reqid used for encrypting overlay traffic. - EncryptedOverlayReqID = 2 ) type dir string From 505397fcad90f41b04c73f0472656313dfb80242 Mon Sep 17 00:00:00 2001 From: David Bimmler Date: Fri, 22 Aug 2025 14:17:58 +0200 Subject: [PATCH 158/176] daemon: don't enable policy log with debug This is highly verbose and doesn't see enough use to be enabled with debug. It can still be enabled explicitly. Signed-off-by: David Bimmler --- daemon/cmd/daemon_main.go | 4 ---- pkg/endpoint/endpoint.go | 5 ----- 2 files changed, 9 deletions(-) diff --git a/daemon/cmd/daemon_main.go b/daemon/cmd/daemon_main.go index 9152ac5af8c51..a57792d20b4ea 100644 --- a/daemon/cmd/daemon_main.go +++ b/daemon/cmd/daemon_main.go @@ -945,10 +945,6 @@ func initEnv(logger *slog.Logger, vp *viper.Viper) { logger.Warn("Unknown verbose debug group", logfields.Group, grp) } } - // Enable policy debugging if debug is enabled. - if option.Config.Debug { - option.Config.Opts.SetBool(option.DebugPolicy, true) - } common.RequireRootPrivilege("cilium-agent") diff --git a/pkg/endpoint/endpoint.go b/pkg/endpoint/endpoint.go index b3d7df90972e0..c5d36a1747d48 100644 --- a/pkg/endpoint/endpoint.go +++ b/pkg/endpoint/endpoint.go @@ -905,11 +905,6 @@ func (e *Endpoint) SetDefaultOpts(opts *option.IntOptions) { e.Options.SetValidated(k, opts.GetValue(k)) } } - // Always set DebugPolicy if Debug is configured, possibly overriding this setting in - // 'opts' - if option.Config.Debug { - e.Options.SetValidated(option.DebugPolicy, option.OptionEnabled) - } e.UpdateLogger(nil) } From 1cd9bd70b72bf90dd97f502788bcf0162f4b679b Mon Sep 17 00:00:00 2001 From: David Bimmler Date: Mon, 25 Aug 2025 15:30:41 +0200 Subject: [PATCH 159/176] endpoint: share endpoint policy debug logger There's a shared file in statedir/endpoint-policy.log that is written to by all endpoints which have policy debug logging enabled. Prior to this commit, they'd all allocate their own lumberjack.Logger wrapping a file descriptor for this file. That's broken since a lumberjack logger tracks the size of writes to determine when to rotate the logfile. Since they'd all track individual writes of endpoints, the size of the file could get large without ever rotating. Worse, once rotated, all other endpoints would still write to their FD, ie the old file. Clean this up by sharing a single logger, which is likely a bottleneck, but one that shouldn't be hit in prod since this is clearly a debug option. Signed-off-by: David Bimmler --- pkg/endpoint/api.go | 5 +- pkg/endpoint/bpf_test.go | 4 +- pkg/endpoint/creator/creator.go | 34 +++++++++++ pkg/endpoint/endpoint.go | 88 +++++++++++++++------------- pkg/endpoint/endpoint_status_test.go | 4 +- pkg/endpoint/endpoint_test.go | 12 ++-- pkg/endpoint/log.go | 27 +-------- pkg/endpoint/log_test.go | 9 ++- pkg/endpoint/redirect_test.go | 2 +- pkg/endpoint/restore_test.go | 2 +- pkg/endpointmanager/gc_test.go | 2 +- pkg/endpointmanager/manager_test.go | 30 +++++----- pkg/fqdn/dnsproxy/proxy_test.go | 8 +-- 13 files changed, 122 insertions(+), 105 deletions(-) diff --git a/pkg/endpoint/api.go b/pkg/endpoint/api.go index 7f2dbee2b6b43..f0156d19fef6f 100644 --- a/pkg/endpoint/api.go +++ b/pkg/endpoint/api.go @@ -9,6 +9,7 @@ package endpoint import ( "context" "fmt" + "io" "log/slog" "maps" "slices" @@ -64,12 +65,12 @@ func (e *Endpoint) GetLabelsModel() (*models.LabelConfiguration, error) { } // NewEndpointFromChangeModel creates a new endpoint from a request -func NewEndpointFromChangeModel(ctx context.Context, logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, model *models.EndpointChangeRequest, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig) (*Endpoint, error) { +func NewEndpointFromChangeModel(ctx context.Context, logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, model *models.EndpointChangeRequest, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig, policyDebugLog io.Writer) (*Endpoint, error) { if model == nil { return nil, nil } - ep := createEndpoint(logger, dnsRulesAPI, epBuildQueue, loader, orchestrator, compilationLock, bandwidthManager, ipTablesManager, identityManager, monitorAgent, policyMapFactory, policyRepo, namedPortsGetter, proxy, allocator, ctMapGC, kvstoreSyncher, uint16(model.ID), model.InterfaceName, wgCfg, ipsecCfg) + ep := createEndpoint(logger, dnsRulesAPI, epBuildQueue, loader, orchestrator, compilationLock, bandwidthManager, ipTablesManager, identityManager, monitorAgent, policyMapFactory, policyRepo, namedPortsGetter, proxy, allocator, ctMapGC, kvstoreSyncher, uint16(model.ID), model.InterfaceName, wgCfg, ipsecCfg, policyDebugLog) ep.ifIndex = int(model.InterfaceIndex) ep.containerIfName = model.ContainerInterfaceName ep.parentIfIndex = int(model.ParentInterfaceIndex) diff --git a/pkg/endpoint/bpf_test.go b/pkg/endpoint/bpf_test.go index 31cd813de8fca..b946aa58b837d 100644 --- a/pkg/endpoint/bpf_test.go +++ b/pkg/endpoint/bpf_test.go @@ -27,7 +27,7 @@ func TestWriteInformationalComments(t *testing.T) { s := setupEndpointSuite(t) model := newTestEndpointModel(100, StateWaitingForIdentity) - e, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + e, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) e.Start(uint16(model.ID)) @@ -47,7 +47,7 @@ func BenchmarkWriteHeaderfile(b *testing.B) { s := setupEndpointSuite(b) model := newTestEndpointModel(100, StateWaitingForIdentity) - e, err := NewEndpointFromChangeModel(b.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, &fakeTypes.IPsecConfig{}) + e, err := NewEndpointFromChangeModel(b.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, &fakeTypes.IPsecConfig{}, nil) require.NoError(b, err) e.Start(uint16(model.ID)) diff --git a/pkg/endpoint/creator/creator.go b/pkg/endpoint/creator/creator.go index ea9f121f02750..5ef0af74ca4b1 100644 --- a/pkg/endpoint/creator/creator.go +++ b/pkg/endpoint/creator/creator.go @@ -6,8 +6,13 @@ package creator import ( "context" "log/slog" + "os" + "path/filepath" + "strconv" + "sync" "github.com/cilium/hive/cell" + "github.com/cilium/lumberjack/v2" "github.com/cilium/cilium/api/v1/models" datapath "github.com/cilium/cilium/pkg/datapath/types" @@ -21,6 +26,7 @@ import ( "github.com/cilium/cilium/pkg/maps/policymap" monitoragent "github.com/cilium/cilium/pkg/monitor/agent" "github.com/cilium/cilium/pkg/node" + "github.com/cilium/cilium/pkg/option" "github.com/cilium/cilium/pkg/policy" "github.com/cilium/cilium/pkg/proxy" "github.com/cilium/cilium/pkg/time" @@ -66,6 +72,7 @@ type endpointCreator struct { kvstoreSyncher *ipcache.IPIdentitySynchronizer wgConfig wgTypes.WireguardConfig ipsecConfig datapath.IPsecConfig + policyLogger func() *lumberjack.Logger } var _ EndpointCreator = &endpointCreator{} @@ -117,6 +124,30 @@ func newEndpointCreator(p endpointManagerParams) EndpointCreator { kvstoreSyncher: p.KVStoreSynchronizer, wgConfig: p.WgConfig, ipsecConfig: p.IPSecConfig, + policyLogger: sync.OnceValue(policyDebugLogger), + } +} + +func policyDebugLogger() *lumberjack.Logger { + maxSize := 10 // 10 MB + if ms := os.Getenv("CILIUM_DBG_POLICY_LOG_MAX_SIZE"); ms != "" { + if ms, err := strconv.Atoi(ms); err == nil { + maxSize = ms + } + } + maxBackups := 3 + if mb := os.Getenv("CILIUM_DBG_POLICY_LOG_MAX_BACKUPS"); mb != "" { + if mb, err := strconv.Atoi(mb); err == nil { + maxBackups = mb + } + } + return &lumberjack.Logger{ + Filename: filepath.Join(option.Config.StateDir, "endpoint-policy.log"), + MaxSize: maxSize, + MaxBackups: maxBackups, + MaxAge: 28, // days + LocalTime: true, + Compress: true, } } @@ -143,6 +174,7 @@ func (c *endpointCreator) NewEndpointFromChangeModel(ctx context.Context, base * base, c.wgConfig, c.ipsecConfig, + c.policyLogger(), ) } @@ -192,6 +224,7 @@ func (c *endpointCreator) AddIngressEndpoint(ctx context.Context) error { c.kvstoreSyncher, c.wgConfig, c.ipsecConfig, + c.policyLogger(), ) if err != nil { return err @@ -227,6 +260,7 @@ func (c *endpointCreator) AddHostEndpoint(ctx context.Context) error { c.kvstoreSyncher, c.wgConfig, c.ipsecConfig, + c.policyLogger(), ) if err != nil { return err diff --git a/pkg/endpoint/endpoint.go b/pkg/endpoint/endpoint.go index c5d36a1747d48..c5bee63c7588d 100644 --- a/pkg/endpoint/endpoint.go +++ b/pkg/endpoint/endpoint.go @@ -9,6 +9,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "log/slog" "net/netip" "os" @@ -399,6 +400,9 @@ type Endpoint struct { basePolicyLogger atomic.Pointer[slog.Logger] + // Points to a shared policy debug log file. + policyDebugLog io.Writer + // policyLogger is a logrus object with fields set to report an endpoints information. // This must only be accessed with atomic LoadPointer/StorePointer. // 'mutex' must be Lock()ed to synchronize stores. No lock needs to be held @@ -601,45 +605,45 @@ func (e *Endpoint) waitForProxyCompletions(proxyWaitGroup *completion.WaitGroup) return nil } -func createEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, ID uint16, ifName string, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig) *Endpoint { +func createEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, ID uint16, ifName string, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig, policyDebugLog io.Writer) *Endpoint { ep := &Endpoint{ - dnsRulesAPI: dnsRulesAPI, - epBuildQueue: epBuildQueue, - loader: loader, - orchestrator: orchestrator, - compilationLock: compilationLock, - bandwidthManager: bandwidthManager, - ipTablesManager: ipTablesManager, - identityManager: identityManager, - monitorAgent: monitorAgent, - wgConfig: wgCfg, - ipsecConfig: ipsecCfg, - policyMapFactory: policyMapFactory, - policyRepo: policyRepo, - namedPortsGetter: namedPortsGetter, - ID: ID, - createdAt: time.Now(), - proxy: proxy, - ifName: ifName, - labels: labels.NewOpLabels(), - Options: option.NewIntOptions(&EndpointMutableOptionLibrary), - DNSRules: nil, - DNSRulesV2: nil, - DNSHistory: fqdn.NewDNSCacheWithLimit(option.Config.ToFQDNsMinTTL, option.Config.ToFQDNsMaxIPsPerHost), - DNSZombies: fqdn.NewDNSZombieMappings(logger, option.Config.ToFQDNsMaxDeferredConnectionDeletes, option.Config.ToFQDNsMaxIPsPerHost), - state: "", - status: NewEndpointStatus(), - hasBPFProgram: make(chan struct{}), - desiredPolicy: policy.NewEndpointPolicy(logger, policyRepo), - controllers: controller.NewManager(), - regenFailedChan: make(chan struct{}, 1), - allocator: allocator, - logLimiter: logging.NewLimiter(10*time.Second, 3), // 1 log / 10 secs, burst of 3 - noTrackPort: 0, - properties: map[string]any{}, - ctMapGC: ctMapGC, - kvstoreSyncher: kvstoreSyncher, - + dnsRulesAPI: dnsRulesAPI, + epBuildQueue: epBuildQueue, + loader: loader, + orchestrator: orchestrator, + compilationLock: compilationLock, + bandwidthManager: bandwidthManager, + ipTablesManager: ipTablesManager, + identityManager: identityManager, + monitorAgent: monitorAgent, + wgConfig: wgCfg, + ipsecConfig: ipsecCfg, + policyMapFactory: policyMapFactory, + policyRepo: policyRepo, + namedPortsGetter: namedPortsGetter, + ID: ID, + createdAt: time.Now(), + proxy: proxy, + ifName: ifName, + labels: labels.NewOpLabels(), + Options: option.NewIntOptions(&EndpointMutableOptionLibrary), + DNSRules: nil, + DNSRulesV2: nil, + DNSHistory: fqdn.NewDNSCacheWithLimit(option.Config.ToFQDNsMinTTL, option.Config.ToFQDNsMaxIPsPerHost), + DNSZombies: fqdn.NewDNSZombieMappings(logger, option.Config.ToFQDNsMaxDeferredConnectionDeletes, option.Config.ToFQDNsMaxIPsPerHost), + state: "", + status: NewEndpointStatus(), + hasBPFProgram: make(chan struct{}), + desiredPolicy: policy.NewEndpointPolicy(logger, policyRepo), + controllers: controller.NewManager(), + regenFailedChan: make(chan struct{}, 1), + allocator: allocator, + logLimiter: logging.NewLimiter(10*time.Second, 3), // 1 log / 10 secs, burst of 3 + noTrackPort: 0, + properties: map[string]any{}, + ctMapGC: ctMapGC, + kvstoreSyncher: kvstoreSyncher, + policyDebugLog: policyDebugLog, forcePolicyCompute: true, } @@ -682,8 +686,8 @@ func (e *Endpoint) initDNSHistoryTrigger() { } // CreateIngressEndpoint creates the endpoint corresponding to Cilium Ingress. -func CreateIngressEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig) (*Endpoint, error) { - ep := createEndpoint(logger, dnsRulesAPI, epBuildQueue, loader, orchestrator, compilationLock, bandwidthManager, ipTablesManager, identityManager, monitorAgent, policyMapFactory, policyRepo, namedPortsGetter, proxy, allocator, ctMapGC, kvstoreSyncher, 0, "", wgCfg, ipsecCfg) +func CreateIngressEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig, policyDebugLog io.Writer) (*Endpoint, error) { + ep := createEndpoint(logger, dnsRulesAPI, epBuildQueue, loader, orchestrator, compilationLock, bandwidthManager, ipTablesManager, identityManager, monitorAgent, policyMapFactory, policyRepo, namedPortsGetter, proxy, allocator, ctMapGC, kvstoreSyncher, 0, "", wgCfg, ipsecCfg, policyDebugLog) ep.DatapathConfiguration = NewDatapathConfiguration() ep.isIngress = true @@ -713,13 +717,13 @@ func CreateIngressEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuild } // CreateHostEndpoint creates the endpoint corresponding to the host. -func CreateHostEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig) (*Endpoint, error) { +func CreateHostEndpoint(logger *slog.Logger, dnsRulesAPI DNSRulesAPI, epBuildQueue EndpointBuildQueue, loader datapath.Loader, orchestrator datapath.Orchestrator, compilationLock datapath.CompilationLock, bandwidthManager datapath.BandwidthManager, ipTablesManager datapath.IptablesManager, identityManager identitymanager.IDManager, monitorAgent monitoragent.Agent, policyMapFactory policymap.Factory, policyRepo policy.PolicyRepository, namedPortsGetter namedPortsGetter, proxy EndpointProxy, allocator cache.IdentityAllocator, ctMapGC ctmap.GCRunner, kvstoreSyncher *ipcache.IPIdentitySynchronizer, wgCfg wgTypes.WireguardConfig, ipsecCfg datapath.IPsecConfig, policyDebugLog io.Writer) (*Endpoint, error) { iface, err := safenetlink.LinkByName(defaults.HostDevice) if err != nil { return nil, err } - ep := createEndpoint(logger, dnsRulesAPI, epBuildQueue, loader, orchestrator, compilationLock, bandwidthManager, ipTablesManager, identityManager, monitorAgent, policyMapFactory, policyRepo, namedPortsGetter, proxy, allocator, ctMapGC, kvstoreSyncher, 0, defaults.HostDevice, wgCfg, ipsecCfg) + ep := createEndpoint(logger, dnsRulesAPI, epBuildQueue, loader, orchestrator, compilationLock, bandwidthManager, ipTablesManager, identityManager, monitorAgent, policyMapFactory, policyRepo, namedPortsGetter, proxy, allocator, ctMapGC, kvstoreSyncher, 0, defaults.HostDevice, wgCfg, ipsecCfg, policyDebugLog) ep.isHost = true ep.mac = mac.MAC(iface.Attrs().HardwareAddr) ep.nodeMAC = mac.MAC(iface.Attrs().HardwareAddr) diff --git a/pkg/endpoint/endpoint_status_test.go b/pkg/endpoint/endpoint_status_test.go index 878f20365e76a..bee6de1cc50dc 100644 --- a/pkg/endpoint/endpoint_status_test.go +++ b/pkg/endpoint/endpoint_status_test.go @@ -39,7 +39,7 @@ func TestGetCiliumEndpointStatus(t *testing.T) { "k8s:name=probe", }, State: models.EndpointStateWaitingDashForDashIdentity.Pointer(), - }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) status := e.GetCiliumEndpointStatus() @@ -83,7 +83,7 @@ func TestGetCiliumEndpointStatusWithServiceAccount(t *testing.T) { "k8s:name=probe", }, State: models.EndpointStateWaitingDashForDashIdentity.Pointer(), - }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) // Create a mock pod with ServiceAccount diff --git a/pkg/endpoint/endpoint_test.go b/pkg/endpoint/endpoint_test.go index f068fec8def26..8a0a4000e9dc4 100644 --- a/pkg/endpoint/endpoint_test.go +++ b/pkg/endpoint/endpoint_test.go @@ -195,7 +195,7 @@ func TestEndpointDatapathOptions(t *testing.T) { DatapathConfiguration: &models.EndpointDatapathConfiguration{ DisableSipVerification: true, }, - }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) require.Equal(t, option.OptionDisabled, e.Options.GetValue(option.SourceIPVerification)) } @@ -205,7 +205,7 @@ func TestEndpointUpdateLabels(t *testing.T) { logger := hivetest.Logger(t) model := newTestEndpointModel(100, StateWaitingForIdentity) - e, err := NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + e, err := NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) e.Start(uint16(model.ID)) @@ -252,7 +252,7 @@ func TestEndpointState(t *testing.T) { logger := hivetest.Logger(t) model := newTestEndpointModel(100, StateWaitingForIdentity) - e, err := NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + e, err := NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) e.Start(uint16(model.ID)) t.Cleanup(e.Stop) @@ -640,7 +640,7 @@ func TestEndpointEventQueueDeadlockUponStop(t *testing.T) { }() model := newTestEndpointModel(12345, StateReady) - ep, err := NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -722,7 +722,7 @@ func BenchmarkEndpointGetModel(b *testing.B) { logger := hivetest.Logger(b) model := newTestEndpointModel(100, StateWaitingForIdentity) - e, err := NewEndpointFromChangeModel(b.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + e, err := NewEndpointFromChangeModel(b.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(b, err) e.Start(uint16(model.ID)) @@ -801,7 +801,7 @@ func TestMetadataResolver(t *testing.T) { t.Run(fmt.Sprintf("%s (restored=%t)", tt.name, restored), func(t *testing.T) { model := newTestEndpointModel(100, StateWaitingForIdentity) kvstoreSync := ipcache.NewIPIdentitySynchronizer(logger, kvstore.SetupDummy(t, kvstore.DisabledBackendName)) - ep, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, &fakeTypes.BandwidthManager{}, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, &fakeTypes.BandwidthManager{}, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.K8sNamespace, ep.K8sPodName, ep.K8sUID = "bar", "foo", "uid" diff --git a/pkg/endpoint/log.go b/pkg/endpoint/log.go index cc71bfcc1ded7..1d72473824082 100644 --- a/pkg/endpoint/log.go +++ b/pkg/endpoint/log.go @@ -6,11 +6,6 @@ package endpoint import ( "context" "log/slog" - "os" - "path/filepath" - "strconv" - - "github.com/cilium/lumberjack/v2" "github.com/cilium/cilium/pkg/logging" "github.com/cilium/cilium/pkg/logging/logfields" @@ -143,27 +138,7 @@ func (e *Endpoint) updatePolicyLogger(fields map[string]any) { policyLogger := e.policyLogger.Load() // e.Options check needed for unit testing. if policyLogger == nil && e.Options != nil && e.Options.IsEnabled(option.DebugPolicy) { - maxSize := 10 // 10 MB - if ms := os.Getenv("CILIUM_DBG_POLICY_LOG_MAX_SIZE"); ms != "" { - if ms, err := strconv.Atoi(ms); err == nil { - maxSize = ms - } - } - maxBackups := 3 - if mb := os.Getenv("CILIUM_DBG_POLICY_LOG_MAX_BACKUPS"); mb != "" { - if mb, err := strconv.Atoi(mb); err == nil { - maxBackups = mb - } - } - lumberjackLogger := &lumberjack.Logger{ - Filename: filepath.Join(option.Config.StateDir, "endpoint-policy.log"), - MaxSize: maxSize, - MaxBackups: maxBackups, - MaxAge: 28, // days - LocalTime: true, - Compress: true, - } - baseLogger := slog.New(slog.NewTextHandler(lumberjackLogger, &slog.HandlerOptions{ + baseLogger := slog.New(slog.NewTextHandler(e.policyDebugLog, &slog.HandlerOptions{ Level: slog.LevelDebug, ReplaceAttr: logging.ReplaceAttrFn, })) diff --git a/pkg/endpoint/log_test.go b/pkg/endpoint/log_test.go index df882b0d54df5..82098379338c4 100644 --- a/pkg/endpoint/log_test.go +++ b/pkg/endpoint/log_test.go @@ -26,11 +26,14 @@ import ( func TestPolicyLog(t *testing.T) { setupEndpointSuite(t) logger := hivetest.Logger(t) + logPath := filepath.Join(option.Config.StateDir, "endpoint-policy.log") + f, err := os.Create(logPath) + require.NoError(t, err) do := &DummyOwner{repo: policy.NewPolicyRepository(logger, nil, nil, nil, nil, testpolicy.NewPolicyMetricsNoop())} model := newTestEndpointModel(12345, StateReady) - ep, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, do.repo, testipcache.NewMockIPCache(), nil, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, do.repo, testipcache.NewMockIPCache(), nil, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, f) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -48,7 +51,7 @@ func TestPolicyLog(t *testing.T) { require.NotNil(t, policyLogger) defer func() { // remote created log file when we are done. - err := os.Remove(filepath.Join(option.Config.StateDir, "endpoint-policy.log")) + err := os.Remove(logPath) require.NoError(t, err) }() @@ -67,7 +70,7 @@ func TestPolicyLog(t *testing.T) { require.Nil(t, policyLogger) // Verify file exists and contains the logged message - buf, err := os.ReadFile(filepath.Join(option.Config.StateDir, "endpoint-policy.log")) + buf, err := os.ReadFile(logPath) require.NoError(t, err) require.True(t, bytes.Contains(buf, []byte("testing policy logging"))) require.True(t, bytes.Contains(buf, []byte("testing PolicyDebug"))) diff --git a/pkg/endpoint/redirect_test.go b/pkg/endpoint/redirect_test.go index 787a82d810588..9b4ba72e47c42 100644 --- a/pkg/endpoint/redirect_test.go +++ b/pkg/endpoint/redirect_test.go @@ -169,7 +169,7 @@ func (s *RedirectSuite) NewTestEndpoint(t *testing.T) *Endpoint { logger := hivetest.Logger(t) model := newTestEndpointModel(12345, StateRegenerating) kvstoreSync := ipcache.NewIPIdentitySynchronizer(logger, kvstore.SetupDummy(t, kvstore.DisabledBackendName)) - ep, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.do.repo, testipcache.NewMockIPCache(), s.rsp, s.mgr, ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := NewEndpointFromChangeModel(t.Context(), logger, nil, &MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.do.repo, testipcache.NewMockIPCache(), s.rsp, s.mgr, ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) diff --git a/pkg/endpoint/restore_test.go b/pkg/endpoint/restore_test.go index a10f956c0d030..31362b19d5edb 100644 --- a/pkg/endpoint/restore_test.go +++ b/pkg/endpoint/restore_test.go @@ -66,7 +66,7 @@ func (s *EndpointSuite) endpointCreator(t testing.TB, id uint16, secID identity. identity.Sanitize() model := newTestEndpointModel(int(id), StateReady) - ep, err := NewEndpointFromChangeModel(context.TODO(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := NewEndpointFromChangeModel(context.TODO(), hivetest.Logger(t), nil, &MockEndpointBuildQueue{}, nil, s.orchestrator, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) diff --git a/pkg/endpointmanager/gc_test.go b/pkg/endpointmanager/gc_test.go index d50abe5d2a3cd..1b1b7199baa76 100644 --- a/pkg/endpointmanager/gc_test.go +++ b/pkg/endpointmanager/gc_test.go @@ -47,7 +47,7 @@ func TestMarkAndSweep(t *testing.T) { allEndpointIDs := append(healthyEndpointIDs, endpointIDToDelete) for _, id := range allEndpointIDs { model := newTestEndpointModel(int(id), endpoint.StateReady) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) diff --git a/pkg/endpointmanager/manager_test.go b/pkg/endpointmanager/manager_test.go index 406f78ed0d4d7..9c651e464f313 100644 --- a/pkg/endpointmanager/manager_test.go +++ b/pkg/endpointmanager/manager_test.go @@ -391,7 +391,7 @@ func TestLookup(t *testing.T) { logger := hivetest.Logger(t) mgr := New(logger, nil, &dummyEpSyncher{}, nil, nil, nil, defaultEndpointManagerConfig) if tt.cm != nil { - ep, err = endpoint.NewEndpointFromChangeModel(context.Background(), logger, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, tt.cm, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err = endpoint.NewEndpointFromChangeModel(context.Background(), logger, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, tt.cm, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoErrorf(t, err, "Test Name: %s", tt.name) err = mgr.expose(ep) require.NoErrorf(t, err, "Test Name: %s", tt.name) @@ -416,7 +416,7 @@ func TestLookupCiliumID(t *testing.T) { model := newTestEndpointModel(2, endpoint.StateReady) mgr := New(logger, nil, &dummyEpSyncher{}, nil, nil, nil, defaultEndpointManagerConfig) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -494,7 +494,7 @@ func TestLookupCNIAttachmentID(t *testing.T) { ep, err := endpoint.NewEndpointFromChangeModel(context.Background(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, &apiv1.EndpointChangeRequest{ ContainerID: "foo", ContainerInterfaceName: "bar", - }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + }, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) require.NoError(t, mgr.expose(ep)) @@ -514,7 +514,7 @@ func TestLookupIPv4(t *testing.T) { mgr := New(logger, nil, &dummyEpSyncher{}, nil, nil, nil, defaultEndpointManagerConfig) model := newTestEndpointModel(4, endpoint.StateReady) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -667,7 +667,7 @@ func TestLookupCEPName(t *testing.T) { }, } for _, tt := range tests { - ep, err := endpoint.NewEndpointFromChangeModel(context.Background(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, &tt.cm, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(context.Background(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, &tt.cm, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoErrorf(t, err, "Test Name: %s", tt.name) tt.preTestRun(ep) args := tt.setupArgs() @@ -710,7 +710,7 @@ func TestUpdateReferences(t *testing.T) { } for _, tt := range tests { var err error - ep, err = endpoint.NewEndpointFromChangeModel(context.Background(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, &tt.cm, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err = endpoint.NewEndpointFromChangeModel(context.Background(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, nil, nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, &tt.cm, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoErrorf(t, err, "Test Name: %s", tt.name) logger := hivetest.Logger(t) mgr := New(logger, nil, &dummyEpSyncher{}, nil, nil, nil, defaultEndpointManagerConfig) @@ -746,7 +746,7 @@ func TestRemove(t *testing.T) { logger := hivetest.Logger(t) mgr := New(logger, nil, &dummyEpSyncher{}, nil, nil, nil, defaultEndpointManagerConfig) model := newTestEndpointModel(7, endpoint.StateReady) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -792,7 +792,7 @@ func TestWaitForEndpointsAtPolicyRev(t *testing.T) { logger := hivetest.Logger(t) mgr := New(logger, nil, &dummyEpSyncher{}, nil, nil, nil, defaultEndpointManagerConfig) model := newTestEndpointModel(1, endpoint.StateReady) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -835,7 +835,7 @@ func TestWaitForEndpointsAtPolicyRev(t *testing.T) { postTestRun: func() { mgr.WaitEndpointRemoved(ep) model := newTestEndpointModel(1, endpoint.StateReady) - ep, err = endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err = endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -866,7 +866,7 @@ func TestWaitForEndpointsAtPolicyRev(t *testing.T) { postTestRun: func() { mgr.WaitEndpointRemoved(ep) model := newTestEndpointModel(1, endpoint.StateReady) - ep, err = endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err = endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -897,7 +897,7 @@ func TestWaitForEndpointsAtPolicyRev(t *testing.T) { postTestRun: func() { mgr.WaitEndpointRemoved(ep) model := newTestEndpointModel(1, endpoint.StateReady) - ep, err = endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err = endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -937,7 +937,7 @@ func TestMissingNodeLabelsUpdate(t *testing.T) { // Create host endpoint and expose it in the endpoint manager. model := newTestEndpointModel(1, endpoint.StateReady) kvstoreSync := ipcache.NewIPIdentitySynchronizer(logger, kvstore.SetupDummy(t, kvstore.DisabledBackendName)) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -989,7 +989,7 @@ func TestUpdateHostEndpointLabels(t *testing.T) { name: "Add labels", preTestRun: func() { model := newTestEndpointModel(1, endpoint.StateReady) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -1020,7 +1020,7 @@ func TestUpdateHostEndpointLabels(t *testing.T) { preTestRun: func() { model := newTestEndpointModel(1, endpoint.StateReady) model.Labels = apiv1.Labels([]string{"k8s:k1=v1"}) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep.Start(uint16(model.ID)) @@ -1053,7 +1053,7 @@ func TestUpdateHostEndpointLabels(t *testing.T) { model := newTestEndpointModel(1, endpoint.StateReady) model.Labels = apiv1.Labels([]string{"k8s:k1=v1"}) kvstoreSync := ipcache.NewIPIdentitySynchronizer(logger, kvstore.SetupDummy(t, kvstore.DisabledBackendName)) - ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(t.Context(), logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), kvstoreSync, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) ep.SetIsHost(true) require.NoError(t, err) diff --git a/pkg/fqdn/dnsproxy/proxy_test.go b/pkg/fqdn/dnsproxy/proxy_test.go index dceacedffecc3..01430e4e138e0 100644 --- a/pkg/fqdn/dnsproxy/proxy_test.go +++ b/pkg/fqdn/dnsproxy/proxy_test.go @@ -170,7 +170,7 @@ func (s *DNSProxyTestSuite) LookupRegisteredEndpoint(ip netip.Addr) (*endpoint.E return nil, false, fmt.Errorf("No EPs available when restoring") } model := newTestEndpointModel(int(epID1), endpoint.StateReady) - ep, err := endpoint.NewEndpointFromChangeModel(context.TODO(), s.logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(s.logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep, err := endpoint.NewEndpointFromChangeModel(context.TODO(), s.logger, nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(s.logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) ep.Start(uint16(model.ID)) defer ep.Stop() return ep, false, err @@ -878,7 +878,7 @@ func TestPrivilegedFullPathDependence(t *testing.T) { // Restore rules model := newTestEndpointModel(int(epID1), endpoint.StateReady) - ep1, err := endpoint.NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep1, err := endpoint.NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep1.Start(uint16(model.ID)) @@ -930,7 +930,7 @@ func TestPrivilegedFullPathDependence(t *testing.T) { // Restore rules for epID3 modelEP3 := newTestEndpointModel(int(epID3), endpoint.StateReady) - ep3, err := endpoint.NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, modelEP3, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep3, err := endpoint.NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, modelEP3, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep3.Start(uint16(modelEP3.ID)) @@ -1141,7 +1141,7 @@ func TestPrivilegedRestoredEndpoint(t *testing.T) { // restore rules, set the mock to restoring state s.restoring = true model := newTestEndpointModel(int(epID1), endpoint.StateReady) - ep1, err := endpoint.NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}) + ep1, err := endpoint.NewEndpointFromChangeModel(t.Context(), hivetest.Logger(t), nil, &endpoint.MockEndpointBuildQueue{}, nil, nil, nil, nil, nil, identitymanager.NewIDManager(logger), nil, nil, s.repo, testipcache.NewMockIPCache(), &endpoint.FakeEndpointProxy{}, testidentity.NewMockIdentityAllocator(nil), ctmap.NewFakeGCRunner(), nil, model, fakeTypes.WireguardConfig{}, fakeTypes.IPsecConfig{}, nil) require.NoError(t, err) ep1.Start(uint16(model.ID)) From ab440c32dc542bbc285971599bcf012dd97ee8b0 Mon Sep 17 00:00:00 2001 From: Nick Young Date: Mon, 22 Sep 2025 15:47:11 +1000 Subject: [PATCH 160/176] gateway-api: Fix incorrect `Owns` call in refactor This commit fixes an `Owns` call that was updated to use EndpointSlice (instead of Endpoint) in This change was missed in the refactor in #41323. Signed-off-by: Nick Young --- operator/pkg/gateway-api/gateway.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/operator/pkg/gateway-api/gateway.go b/operator/pkg/gateway-api/gateway.go index 9c091fed301a0..cfaa88bfd9ba5 100644 --- a/operator/pkg/gateway-api/gateway.go +++ b/operator/pkg/gateway-api/gateway.go @@ -11,6 +11,7 @@ import ( "slices" corev1 "k8s.io/api/core/v1" + discoveryv1 "k8s.io/api/discovery/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" @@ -151,7 +152,7 @@ func (r *gatewayReconciler) SetupWithManager(mgr ctrl.Manager) error { // Watch created and owned resources Owns(&ciliumv2.CiliumEnvoyConfig{}). Owns(&corev1.Service{}). - Owns(&corev1.Endpoints{}) + Owns(&discoveryv1.EndpointSlice{}) if tlsRouteEnabled { // Watch TLSRoute linked to Gateway From b6ec8853e21bdab14c0ae7127decb56bbecb6f25 Mon Sep 17 00:00:00 2001 From: Alexandre Perrin Date: Mon, 15 Sep 2025 09:50:36 +0200 Subject: [PATCH 161/176] hubble: move the NamespaceManager into its own directory This is a move/rename only commit preparing the structure to refactor the namespace manager as a Cell. Signed-off-by: Alexandre Perrin --- pkg/hubble/cell/hubbleintegration.go | 7 +++-- pkg/hubble/observer/local_observer.go | 27 +++++++++-------- pkg/hubble/observer/local_observer_test.go | 7 +++-- .../manager.go} | 14 ++++----- .../manager_test.go} | 30 +++++++++---------- pkg/hubble/relay/observer/server.go | 8 ++--- pkg/hubble/relay/server/server_test.go | 5 ++-- 7 files changed, 50 insertions(+), 48 deletions(-) rename pkg/hubble/observer/{namespace_manager.go => namespace/manager.go} (86%) rename pkg/hubble/observer/{namespace_manager_test.go => namespace/manager_test.go} (69%) diff --git a/pkg/hubble/cell/hubbleintegration.go b/pkg/hubble/cell/hubbleintegration.go index fa76a689f90eb..b4bc477d7d956 100644 --- a/pkg/hubble/cell/hubbleintegration.go +++ b/pkg/hubble/cell/hubbleintegration.go @@ -31,6 +31,7 @@ import ( "github.com/cilium/cilium/pkg/hubble/metrics" "github.com/cilium/cilium/pkg/hubble/monitor" "github.com/cilium/cilium/pkg/hubble/observer" + "github.com/cilium/cilium/pkg/hubble/observer/namespace" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" "github.com/cilium/cilium/pkg/hubble/parser" "github.com/cilium/cilium/pkg/hubble/peer" @@ -264,12 +265,12 @@ func (h *hubbleIntegration) launch(ctx context.Context) (*observer.LocalObserver // for explicit ordering of known dependencies observerOpts = append(observerOpts, h.observerOptions...) - namespaceManager := observer.NewNamespaceManager() - go namespaceManager.Run(ctx) + nsManager := namespace.NewManager() + go nsManager.Run(ctx) hubbleObserver, err := observer.NewLocalServer( h.payloadParser, - namespaceManager, + nsManager, h.log, observerOpts..., ) diff --git a/pkg/hubble/observer/local_observer.go b/pkg/hubble/observer/local_observer.go index b674049414549..f973ba7f46864 100644 --- a/pkg/hubble/observer/local_observer.go +++ b/pkg/hubble/observer/local_observer.go @@ -23,6 +23,7 @@ import ( "github.com/cilium/cilium/pkg/hubble/build" "github.com/cilium/cilium/pkg/hubble/container" "github.com/cilium/cilium/pkg/hubble/filters" + "github.com/cilium/cilium/pkg/hubble/observer/namespace" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" "github.com/cilium/cilium/pkg/hubble/parser" @@ -65,13 +66,13 @@ type LocalObserverServer struct { // numObservedFlows counts how many flows have been observed numObservedFlows atomic.Uint64 - namespaceManager NamespaceManager + nsManager namespace.Manager } // NewLocalServer returns a new local observer server. func NewLocalServer( payloadParser parser.Decoder, - namespaceManager NamespaceManager, + nsManager namespace.Manager, logger *slog.Logger, options ...observeroption.Option, ) (*LocalObserverServer, error) { @@ -90,14 +91,14 @@ func NewLocalServer( ) s := &LocalObserverServer{ - log: logger, - ring: container.NewRing(opts.MaxFlows), - events: make(chan *observerTypes.MonitorEvent, opts.MonitorBuffer), - stopped: make(chan struct{}), - payloadParser: payloadParser, - startTime: time.Now(), - namespaceManager: namespaceManager, - opts: opts, + log: logger, + ring: container.NewRing(opts.MaxFlows), + events: make(chan *observerTypes.MonitorEvent, opts.MonitorBuffer), + stopped: make(chan struct{}), + payloadParser: payloadParser, + startTime: time.Now(), + nsManager: nsManager, + opts: opts, } for _, f := range s.opts.OnServerInit { @@ -252,7 +253,7 @@ func (s *LocalObserverServer) GetNodes(ctx context.Context, req *observerpb.GetN // GetNamespaces implements observerpb.ObserverClient.GetNamespaces. func (s *LocalObserverServer) GetNamespaces(ctx context.Context, req *observerpb.GetNamespacesRequest) (*observerpb.GetNamespacesResponse, error) { - return &observerpb.GetNamespacesResponse{Namespaces: s.namespaceManager.GetNamespaces()}, nil + return &observerpb.GetNamespacesResponse{Namespaces: s.nsManager.GetNamespaces()}, nil } // GetFlows implements the proto method for client requests. @@ -703,13 +704,13 @@ func (r *eventsReader) Next(ctx context.Context) (*v1.Event, error) { func (s *LocalObserverServer) trackNamespaces(flow *flowpb.Flow) { // track namespaces seen. if srcNs := flow.GetSource().GetNamespace(); srcNs != "" { - s.namespaceManager.AddNamespace(&observerpb.Namespace{ + s.nsManager.AddNamespace(&observerpb.Namespace{ Namespace: srcNs, Cluster: nodeTypes.GetClusterName(), }) } if dstNs := flow.GetDestination().GetNamespace(); dstNs != "" { - s.namespaceManager.AddNamespace(&observerpb.Namespace{ + s.nsManager.AddNamespace(&observerpb.Namespace{ Namespace: dstNs, Cluster: nodeTypes.GetClusterName(), }) diff --git a/pkg/hubble/observer/local_observer_test.go b/pkg/hubble/observer/local_observer_test.go index edf76e8072c53..88f2c9c750c7f 100644 --- a/pkg/hubble/observer/local_observer_test.go +++ b/pkg/hubble/observer/local_observer_test.go @@ -24,6 +24,7 @@ import ( observerpb "github.com/cilium/cilium/api/v1/observer" hubv1 "github.com/cilium/cilium/pkg/hubble/api/v1" "github.com/cilium/cilium/pkg/hubble/container" + "github.com/cilium/cilium/pkg/hubble/observer/namespace" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" "github.com/cilium/cilium/pkg/hubble/parser" @@ -35,7 +36,7 @@ import ( ) var ( - nsManager = NewNamespaceManager() + nsManager = namespace.NewManager() ) func noopParser(t *testing.T) *parser.Parser { @@ -734,7 +735,7 @@ func TestLocalObserverServer_NodeLabels(t *testing.T) { func TestLocalObserverServer_GetNamespaces(t *testing.T) { pp := noopParser(t) - nsManager := NewNamespaceManager() + nsManager := namespace.NewManager() nsManager.AddNamespace(&observerpb.Namespace{ Namespace: "zzz", }) @@ -783,7 +784,7 @@ func Benchmark_TrackNamespaces(b *testing.B) { b.Fatal(err) } - nsManager := NewNamespaceManager() + nsManager := namespace.NewManager() s, err := NewLocalServer(pp, nsManager, hivetest.Logger(b), observeroption.WithMaxFlows(container.Capacity1)) if err != nil { b.Fatal(err) diff --git a/pkg/hubble/observer/namespace_manager.go b/pkg/hubble/observer/namespace/manager.go similarity index 86% rename from pkg/hubble/observer/namespace_manager.go rename to pkg/hubble/observer/namespace/manager.go index b1bb6b3e2eeb6..04399d29caddf 100644 --- a/pkg/hubble/observer/namespace_manager.go +++ b/pkg/hubble/observer/namespace/manager.go @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright Authors of Hubble -package observer +package namespace import ( "context" @@ -12,14 +12,12 @@ import ( "github.com/cilium/cilium/pkg/time" ) -var _ NamespaceManager = &namespaceManager{} - const ( - checkNamespaceAgeFrequency = 5 * time.Minute - namespaceTTL = time.Hour + cleanupInterval = 5 * time.Minute + namespaceTTL = 1 * time.Hour ) -type NamespaceManager interface { +type Manager interface { GetNamespaces() []*observerpb.Namespace AddNamespace(*observerpb.Namespace) } @@ -35,7 +33,7 @@ type namespaceManager struct { nowFunc func() time.Time } -func NewNamespaceManager() *namespaceManager { +func NewManager() *namespaceManager { return &namespaceManager{ namespaces: make(map[string]namespaceRecord), nowFunc: time.Now, @@ -43,7 +41,7 @@ func NewNamespaceManager() *namespaceManager { } func (m *namespaceManager) Run(ctx context.Context) { - ticker := time.NewTicker(checkNamespaceAgeFrequency) + ticker := time.NewTicker(cleanupInterval) defer ticker.Stop() for { select { diff --git a/pkg/hubble/observer/namespace_manager_test.go b/pkg/hubble/observer/namespace/manager_test.go similarity index 69% rename from pkg/hubble/observer/namespace_manager_test.go rename to pkg/hubble/observer/namespace/manager_test.go index 044e3f3ed4c32..7b62a0f3684dd 100644 --- a/pkg/hubble/observer/namespace_manager_test.go +++ b/pkg/hubble/observer/namespace/manager_test.go @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright Authors of Hubble -package observer +package namespace import ( "testing" @@ -15,43 +15,43 @@ import ( func TestNamespaceManager(t *testing.T) { // mock time currentTime := time.Time{} - mgr := NewNamespaceManager() + nsManager := NewManager() // use the mocked time - mgr.nowFunc = func() time.Time { + nsManager.nowFunc = func() time.Time { return currentTime } advanceTime := func(d time.Duration) { // update our currentTime currentTime = currentTime.Add(d) // trigger cleanupNamespaces after we advance time to ensure it's run - mgr.cleanupNamespaces() + nsManager.cleanupNamespaces() } // we start with no namespaces expected := []*observerpb.Namespace{} - assert.Equal(t, expected, mgr.GetNamespaces()) + assert.Equal(t, expected, nsManager.GetNamespaces()) // add a few namespaces // out of order, we'll verify it's sorted when we call GetNamespaces later - mgr.AddNamespace(&observerpb.Namespace{Namespace: "ns-2"}) - mgr.AddNamespace(&observerpb.Namespace{Namespace: "ns-1"}) + nsManager.AddNamespace(&observerpb.Namespace{Namespace: "ns-2"}) + nsManager.AddNamespace(&observerpb.Namespace{Namespace: "ns-1"}) // namespaces that we added should be returned, sorted expected = []*observerpb.Namespace{ {Namespace: "ns-1"}, {Namespace: "ns-2"}, } - assert.Equal(t, expected, mgr.GetNamespaces()) + assert.Equal(t, expected, nsManager.GetNamespaces()) // advance the clock by 1/2 the namespaceTTL and verify our namespaces are still known advanceTime(namespaceTTL / 2) - assert.Equal(t, expected, mgr.GetNamespaces()) + assert.Equal(t, expected, nsManager.GetNamespaces()) // add more namespaces now that the clock has been advanced - mgr.AddNamespace(&observerpb.Namespace{Namespace: "ns-1"}) - mgr.AddNamespace(&observerpb.Namespace{Namespace: "ns-3"}) - mgr.AddNamespace(&observerpb.Namespace{Namespace: "ns-4"}) + nsManager.AddNamespace(&observerpb.Namespace{Namespace: "ns-1"}) + nsManager.AddNamespace(&observerpb.Namespace{Namespace: "ns-3"}) + nsManager.AddNamespace(&observerpb.Namespace{Namespace: "ns-4"}) // we expect all namespaces to exist, the first 2 are 30 minutes old, and the // next two are 0 minutes old @@ -61,7 +61,7 @@ func TestNamespaceManager(t *testing.T) { {Namespace: "ns-3"}, {Namespace: "ns-4"}, } - assert.Equal(t, expected, mgr.GetNamespaces()) + assert.Equal(t, expected, nsManager.GetNamespaces()) // advance the clock another 1/2 TTL and add a minute to push us past the TTL advanceTime((namespaceTTL / 2) + time.Minute) @@ -73,11 +73,11 @@ func TestNamespaceManager(t *testing.T) { {Namespace: "ns-3"}, {Namespace: "ns-4"}, } - assert.Equal(t, expected, mgr.GetNamespaces()) + assert.Equal(t, expected, nsManager.GetNamespaces()) // advance the clock another 1/2 TTL and add a minute to push us past the TTL again advanceTime((namespaceTTL / 2) + time.Minute) // no namespaces left, nothing has been refreshed - assert.Equal(t, []*observerpb.Namespace{}, mgr.GetNamespaces()) + assert.Equal(t, []*observerpb.Namespace{}, nsManager.GetNamespaces()) } diff --git a/pkg/hubble/relay/observer/server.go b/pkg/hubble/relay/observer/server.go index d6343fb589b44..a1f089e731a8d 100644 --- a/pkg/hubble/relay/observer/server.go +++ b/pkg/hubble/relay/observer/server.go @@ -16,7 +16,7 @@ import ( observerpb "github.com/cilium/cilium/api/v1/observer" relaypb "github.com/cilium/cilium/api/v1/relay" "github.com/cilium/cilium/pkg/hubble/build" - "github.com/cilium/cilium/pkg/hubble/observer" + "github.com/cilium/cilium/pkg/hubble/observer/namespace" poolTypes "github.com/cilium/cilium/pkg/hubble/relay/pool/types" "github.com/cilium/cilium/pkg/lock" "github.com/cilium/cilium/pkg/logging/logfields" @@ -205,7 +205,7 @@ func (s *Server) GetNamespaces(ctx context.Context, req *observerpb.GetNamespace // results over failing on the first error g := new(errgroup.Group) - namespaceManager := observer.NewNamespaceManager() + nsManager := namespace.NewManager() for _, p := range s.peers.List() { if !isAvailable(p.Conn) { @@ -229,7 +229,7 @@ func (s *Server) GetNamespaces(ctx context.Context, req *observerpb.GetNamespace return nil } for _, ns := range nsResp.GetNamespaces() { - namespaceManager.AddNamespace(ns) + nsManager.AddNamespace(ns) } return nil }) @@ -239,7 +239,7 @@ func (s *Server) GetNamespaces(ctx context.Context, req *observerpb.GetNamespace return nil, err } - return &observerpb.GetNamespacesResponse{Namespaces: namespaceManager.GetNamespaces()}, nil + return &observerpb.GetNamespacesResponse{Namespaces: nsManager.GetNamespaces()}, nil } // ServerStatus implements observerpb.ObserverServer.ServerStatus by aggregating diff --git a/pkg/hubble/relay/server/server_test.go b/pkg/hubble/relay/server/server_test.go index e09c7d4e9290d..39725440fc107 100644 --- a/pkg/hubble/relay/server/server_test.go +++ b/pkg/hubble/relay/server/server_test.go @@ -28,6 +28,7 @@ import ( observerpb "github.com/cilium/cilium/api/v1/observer" "github.com/cilium/cilium/pkg/hubble/container" "github.com/cilium/cilium/pkg/hubble/observer" + "github.com/cilium/cilium/pkg/hubble/observer/namespace" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" "github.com/cilium/cilium/pkg/hubble/parser" @@ -95,8 +96,8 @@ func newHubbleObserver(t testing.TB, nodeName string, numFlows int) *observer.Lo queueSize := numFlows pp := noopParser(t) - nsMgr := observer.NewNamespaceManager() - s, err := observer.NewLocalServer(pp, nsMgr, log, + nsManager := namespace.NewManager() + s, err := observer.NewLocalServer(pp, nsManager, log, observeroption.WithMaxFlows(container.Capacity65535), observeroption.WithMonitorBuffer(queueSize), ) From f8b9289d7abd322f53fb205aaf1e0b8744b7166d Mon Sep 17 00:00:00 2001 From: Alexandre Perrin Date: Mon, 15 Sep 2025 11:13:02 +0200 Subject: [PATCH 162/176] hubble: introduce FakeNamespaceManager For testing purposes, reducing the use of the public namespace.NewManager. Cosmetic dedup in local_observer_test.go on the way, making noopParser accept testing.TB as param. Signed-off-by: Alexandre Perrin --- pkg/hubble/observer/local_observer_test.go | 60 ++++++++-------------- pkg/hubble/observer/namespace/manager.go | 2 + pkg/hubble/relay/server/server_test.go | 6 +-- pkg/hubble/testutils/fake.go | 30 +++++++++++ 4 files changed, 56 insertions(+), 42 deletions(-) diff --git a/pkg/hubble/observer/local_observer_test.go b/pkg/hubble/observer/local_observer_test.go index 88f2c9c750c7f..84543acb783c1 100644 --- a/pkg/hubble/observer/local_observer_test.go +++ b/pkg/hubble/observer/local_observer_test.go @@ -35,13 +35,9 @@ import ( "github.com/cilium/cilium/pkg/node/types" ) -var ( - nsManager = namespace.NewManager() -) - -func noopParser(t *testing.T) *parser.Parser { +func noopParser(tb testing.TB) *parser.Parser { pp, err := parser.New( - hivetest.Logger(t), + hivetest.Logger(tb), &testutils.NoopEndpointGetter, &testutils.NoopIdentityGetter, &testutils.NoopDNSGetter, @@ -50,13 +46,13 @@ func noopParser(t *testing.T) *parser.Parser { &testutils.NoopLinkGetter, &testutils.NoopPodMetadataGetter, ) - require.NoError(t, err) + require.NoError(tb, err) return pp } func TestNewLocalServer(t *testing.T) { - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t)) + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t)) require.NoError(t, err) assert.NotNil(t, s.GetStopped()) assert.NotNil(t, s.GetPayloadParser()) @@ -66,8 +62,8 @@ func TestNewLocalServer(t *testing.T) { } func TestLocalObserverServer_ServerStatus(t *testing.T) { - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity1)) + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity1)) require.NoError(t, err) res, err := s.ServerStatus(t.Context(), &observerpb.ServerStatusRequest{}) require.NoError(t, err) @@ -218,8 +214,8 @@ func TestLocalObserverServer_GetFlows(t *testing.T) { }, } - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity127), observeroption.WithMonitorBuffer(queueSize), ) @@ -357,8 +353,8 @@ func TestLocalObserverServer_GetAgentEvents(t *testing.T) { }, } - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMonitorBuffer(queueSize), ) require.NoError(t, err) @@ -406,8 +402,8 @@ func TestLocalObserverServer_GetFlows_Follow_Since(t *testing.T) { Follow: true, } - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity127), observeroption.WithMonitorBuffer(queueSize), ) @@ -504,8 +500,8 @@ func TestHooks(t *testing.T) { return false, nil } - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity15), observeroption.WithMonitorBuffer(queueSize), observeroption.WithOnMonitorEventFunc(onMonitorEventFirst), @@ -561,8 +557,8 @@ func TestLocalObserverServer_OnFlowDelivery(t *testing.T) { return false, nil } - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity127), observeroption.WithMonitorBuffer(queueSize), observeroption.WithOnFlowDeliveryFunc(onFlowDelivery), @@ -624,8 +620,8 @@ func TestLocalObserverServer_OnGetFlows(t *testing.T) { return true, nil } - pp := noopParser(t) - s, err := NewLocalServer(pp, nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithMaxFlows(container.Capacity127), observeroption.WithMonitorBuffer(queueSize), observeroption.WithOnFlowDeliveryFunc(onFlowDelivery), @@ -702,7 +698,8 @@ func TestLocalObserverServer_NodeLabels(t *testing.T) { } // local hubble observer setup. - s, err := NewLocalServer(noopParser(t), nsManager, hivetest.Logger(t), + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := NewLocalServer(pp, nm, hivetest.Logger(t), observeroption.WithOnDecodedFlow(localNodeWatcher), ) require.NoError(t, err) @@ -770,20 +767,7 @@ func TestLocalObserverServer_GetNamespaces(t *testing.T) { } func Benchmark_TrackNamespaces(b *testing.B) { - pp, err := parser.New( - hivetest.Logger(b), - &testutils.NoopEndpointGetter, - &testutils.NoopIdentityGetter, - &testutils.NoopDNSGetter, - &testutils.NoopIPGetter, - &testutils.NoopServiceGetter, - &testutils.NoopLinkGetter, - &testutils.NoopPodMetadataGetter, - ) - if err != nil { - b.Fatal(err) - } - + pp := noopParser(b) nsManager := namespace.NewManager() s, err := NewLocalServer(pp, nsManager, hivetest.Logger(b), observeroption.WithMaxFlows(container.Capacity1)) if err != nil { diff --git a/pkg/hubble/observer/namespace/manager.go b/pkg/hubble/observer/namespace/manager.go index 04399d29caddf..b82874fdfe7f4 100644 --- a/pkg/hubble/observer/namespace/manager.go +++ b/pkg/hubble/observer/namespace/manager.go @@ -33,6 +33,8 @@ type namespaceManager struct { nowFunc func() time.Time } +// NOTE: there are still a couple of places where we need to construct a +// functional ns manager outside of Hive/Cell, i.e. testing and Hubble Relay. func NewManager() *namespaceManager { return &namespaceManager{ namespaces: make(map[string]namespaceRecord), diff --git a/pkg/hubble/relay/server/server_test.go b/pkg/hubble/relay/server/server_test.go index 39725440fc107..4261f9a3c5c1b 100644 --- a/pkg/hubble/relay/server/server_test.go +++ b/pkg/hubble/relay/server/server_test.go @@ -28,7 +28,6 @@ import ( observerpb "github.com/cilium/cilium/api/v1/observer" "github.com/cilium/cilium/pkg/hubble/container" "github.com/cilium/cilium/pkg/hubble/observer" - "github.com/cilium/cilium/pkg/hubble/observer/namespace" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" observerTypes "github.com/cilium/cilium/pkg/hubble/observer/types" "github.com/cilium/cilium/pkg/hubble/parser" @@ -95,9 +94,8 @@ func getRandomEndpoint() *testutils.FakeEndpointInfo { func newHubbleObserver(t testing.TB, nodeName string, numFlows int) *observer.LocalObserverServer { queueSize := numFlows - pp := noopParser(t) - nsManager := namespace.NewManager() - s, err := observer.NewLocalServer(pp, nsManager, log, + pp, nm := noopParser(t), testutils.NoopNamespaceManager + s, err := observer.NewLocalServer(pp, nm, log, observeroption.WithMaxFlows(container.Capacity65535), observeroption.WithMonitorBuffer(queueSize), ) diff --git a/pkg/hubble/testutils/fake.go b/pkg/hubble/testutils/fake.go index f4a6dddb47f07..c4829724bb54c 100644 --- a/pkg/hubble/testutils/fake.go +++ b/pkg/hubble/testutils/fake.go @@ -487,3 +487,33 @@ var NoopPodMetadataGetter = FakePodMetadataGetter{ return nil }, } + +// FakeNamespaceManager is used for unit tests that need a namespace.Manager. +type FakeNamespaceManager struct { + OnGetNamespaces func() []*observerpb.Namespace + OnAddNamespace func(*observerpb.Namespace) +} + +// GetNamespaces implements namespace.Manager. +func (f *FakeNamespaceManager) GetNamespaces() []*observerpb.Namespace { + if f.OnGetNamespaces != nil { + return f.OnGetNamespaces() + } + panic("OnGetNamespaces not set") +} + +// AddNamespace implements namespace.Manager. +func (f *FakeNamespaceManager) AddNamespace(ns *observerpb.Namespace) { + if f.OnAddNamespace != nil { + f.OnAddNamespace(ns) + } + panic("OnAddNamespace not set") +} + +// NoopNamespaceManager always return an empty namespace list. +var NoopNamespaceManager = &FakeNamespaceManager{ + OnGetNamespaces: func() []*observerpb.Namespace { + return nil + }, + OnAddNamespace: func(_ *observerpb.Namespace) {}, +} From b9de116fed83401795b2054f51f63b9aec3feb94 Mon Sep 17 00:00:00 2001 From: Alexandre Perrin Date: Mon, 15 Sep 2025 12:19:44 +0200 Subject: [PATCH 163/176] hubble: refactor namespace manager as a Cell Setup the namespace cleanup as a job.Timer instead of open-coding in our own goroutine. Signed-off-by: Alexandre Perrin --- pkg/hubble/cell/cell.go | 14 +++++++++---- pkg/hubble/cell/hubbleintegration.go | 11 ++++++----- pkg/hubble/observer/namespace/cell.go | 24 +++++++++++++++++++++++ pkg/hubble/observer/namespace/defaults.go | 14 +++++++++++++ pkg/hubble/observer/namespace/manager.go | 24 ++--------------------- 5 files changed, 56 insertions(+), 31 deletions(-) create mode 100644 pkg/hubble/observer/namespace/cell.go create mode 100644 pkg/hubble/observer/namespace/defaults.go diff --git a/pkg/hubble/cell/cell.go b/pkg/hubble/cell/cell.go index 59f6ad5d89cc3..049b6ce871006 100644 --- a/pkg/hubble/cell/cell.go +++ b/pkg/hubble/cell/cell.go @@ -19,6 +19,7 @@ import ( exportercell "github.com/cilium/cilium/pkg/hubble/exporter/cell" "github.com/cilium/cilium/pkg/hubble/metrics" metricscell "github.com/cilium/cilium/pkg/hubble/metrics/cell" + "github.com/cilium/cilium/pkg/hubble/observer/namespace" "github.com/cilium/cilium/pkg/hubble/observer/observeroption" "github.com/cilium/cilium/pkg/hubble/parser" parsercell "github.com/cilium/cilium/pkg/hubble/parser/cell" @@ -44,14 +45,17 @@ var Cell = cell.Module( // Hubble flow log exporters exportercell.Cell, - // Parser for Hubble flows - parsercell.Cell, - // Metrics server and flow processor metricscell.Cell, // Drop event emitter flow processor dropeventemitter.Cell, + + // Parser for Hubble flows + parsercell.Cell, + + // Hubble flows k8s namespaces monitor + namespace.Cell, ) // The core cell group, which contains the Hubble integration and the @@ -85,7 +89,8 @@ type hubbleParams struct { DropEventEmitter dropeventemitter.FlowProcessor - PayloadParser parser.Decoder + PayloadParser parser.Decoder + NamespaceManager namespace.Manager GRPCMetrics *grpc_prometheus.ServerMetrics MetricsFlowProcessor metrics.FlowProcessor @@ -112,6 +117,7 @@ func newHubbleIntegration(params hubbleParams) (HubbleIntegration, error) { params.ExporterBuilders, params.DropEventEmitter, params.PayloadParser, + params.NamespaceManager, params.GRPCMetrics, params.MetricsFlowProcessor, params.Config, diff --git a/pkg/hubble/cell/hubbleintegration.go b/pkg/hubble/cell/hubbleintegration.go index b4bc477d7d956..550ec8196cb8f 100644 --- a/pkg/hubble/cell/hubbleintegration.go +++ b/pkg/hubble/cell/hubbleintegration.go @@ -76,6 +76,8 @@ type hubbleIntegration struct { // payloadParser is used to decode monitor events into Hubble events. payloadParser parser.Decoder + // nsManager is used to monitor the namespaces seen in Hubble flows. + nsManager namespace.Manager // GRPC metrics are registered on the Hubble gRPC server and are // exposed by the Hubble metrics server (from hubble-metrics cell). @@ -99,6 +101,7 @@ func new( exporterBuilders []*exportercell.FlowLogExporterBuilder, dropEventEmitter dropeventemitter.FlowProcessor, payloadParser parser.Decoder, + nsManager namespace.Manager, grpcMetrics *grpc_prometheus.ServerMetrics, metricsFlowProcessor metrics.FlowProcessor, config config, @@ -120,14 +123,15 @@ func new( endpointManager: endpointManager, ipcache: ipcache, cgroupManager: cgroupManager, - dropEventEmitter: dropEventEmitter, nodeManager: nodeManager, nodeLocalStore: nodeLocalStore, monitorAgent: monitorAgent, tlsConfigPromise: tlsConfigPromise, observerOptions: observerOptions, exporters: exporters, + dropEventEmitter: dropEventEmitter, payloadParser: payloadParser, + nsManager: nsManager, grpcMetrics: grpcMetrics, metricsFlowProcessor: metricsFlowProcessor, config: config, @@ -265,12 +269,9 @@ func (h *hubbleIntegration) launch(ctx context.Context) (*observer.LocalObserver // for explicit ordering of known dependencies observerOpts = append(observerOpts, h.observerOptions...) - nsManager := namespace.NewManager() - go nsManager.Run(ctx) - hubbleObserver, err := observer.NewLocalServer( h.payloadParser, - nsManager, + h.nsManager, h.log, observerOpts..., ) diff --git a/pkg/hubble/observer/namespace/cell.go b/pkg/hubble/observer/namespace/cell.go new file mode 100644 index 0000000000000..e87965eea08fd --- /dev/null +++ b/pkg/hubble/observer/namespace/cell.go @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Hubble + +package namespace + +import ( + "context" + + "github.com/cilium/hive/cell" + "github.com/cilium/hive/job" +) + +var Cell = cell.ProvidePrivate(func(jobGroup job.Group) Manager { + m := NewManager() + jobGroup.Add(job.Timer( + "hubble-namespace-cleanup", + func(_ context.Context) error { + m.cleanupNamespaces() + return nil + }, + cleanupInterval, + )) + return m +}) diff --git a/pkg/hubble/observer/namespace/defaults.go b/pkg/hubble/observer/namespace/defaults.go new file mode 100644 index 0000000000000..3a61e40cbf1dc --- /dev/null +++ b/pkg/hubble/observer/namespace/defaults.go @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Hubble + +package namespace + +import "time" + +const ( + // cleanupInterval is the interval at which the namespace list from the + // manager is garbage collected. + cleanupInterval = 5 * time.Minute + // namespaceTTL is the time after which a namespace is garbage collected. + namespaceTTL = 1 * time.Hour +) diff --git a/pkg/hubble/observer/namespace/manager.go b/pkg/hubble/observer/namespace/manager.go index b82874fdfe7f4..12e3aa7aac67a 100644 --- a/pkg/hubble/observer/namespace/manager.go +++ b/pkg/hubble/observer/namespace/manager.go @@ -4,7 +4,6 @@ package namespace import ( - "context" "sort" observerpb "github.com/cilium/cilium/api/v1/observer" @@ -12,11 +11,6 @@ import ( "github.com/cilium/cilium/pkg/time" ) -const ( - cleanupInterval = 5 * time.Minute - namespaceTTL = 1 * time.Hour -) - type Manager interface { GetNamespaces() []*observerpb.Namespace AddNamespace(*observerpb.Namespace) @@ -42,29 +36,15 @@ func NewManager() *namespaceManager { } } -func (m *namespaceManager) Run(ctx context.Context) { - ticker := time.NewTicker(cleanupInterval) - defer ticker.Stop() - for { - select { - case <-ctx.Done(): - return - case <-ticker.C: - // periodically remove any namespaces which haven't been seen in flows - // for the last hour - m.cleanupNamespaces() - } - } -} - +// cleanupNamespaces remove all namespaces not seen in flows for the last hour. func (m *namespaceManager) cleanupNamespaces() { m.mu.Lock() + defer m.mu.Unlock() for key, record := range m.namespaces { if record.added.Add(namespaceTTL).Before(m.nowFunc()) { delete(m.namespaces, key) } } - m.mu.Unlock() } func (m *namespaceManager) GetNamespaces() []*observerpb.Namespace { From f4474f173da60f41467f232ca2289eab312392cd Mon Sep 17 00:00:00 2001 From: Simone Magnani Date: Mon, 15 Sep 2025 12:24:23 +0200 Subject: [PATCH 164/176] shell:hive: make shellSockPath configurable via cell config This commit extends the pkg/shell to allow configuring the shell socket path via cell config. This is useful in all those cases in which we may want to leverage pkg/shell for IPC (eg. in tests with multiple forked processes) or if we just want to change the default path for convenience. Documentation updates have been generated accordingly. Signed-off-by: Simone Magnani --- Documentation/cmdref/cilium-agent.md | 1 + Documentation/cmdref/cilium-agent_hive.md | 1 + .../cmdref/cilium-agent_hive_dot-graph.md | 1 + .../cmdref/cilium-dbg_metrics_list.md | 7 +++--- .../cmdref/cilium-operator-alibabacloud.md | 1 + .../cilium-operator-alibabacloud_hive.md | 1 + ...um-operator-alibabacloud_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-operator-aws.md | 1 + .../cmdref/cilium-operator-aws_hive.md | 1 + .../cilium-operator-aws_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-operator-azure.md | 1 + .../cmdref/cilium-operator-azure_hive.md | 1 + .../cilium-operator-azure_hive_dot-graph.md | 1 + .../cmdref/cilium-operator-generic.md | 1 + .../cmdref/cilium-operator-generic_hive.md | 1 + .../cilium-operator-generic_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-operator.md | 1 + Documentation/cmdref/cilium-operator_hive.md | 1 + .../cmdref/cilium-operator_hive_dot-graph.md | 1 + .../clustermesh-apiserver_clustermesh.md | 1 + .../clustermesh-apiserver_clustermesh_hive.md | 1 + ...sh-apiserver_clustermesh_hive_dot-graph.md | 1 + .../clustermesh-apiserver_kvstoremesh.md | 1 + .../clustermesh-apiserver_kvstoremesh_hive.md | 1 + ...sh-apiserver_kvstoremesh_hive_dot-graph.md | 1 + cilium-dbg/cmd/metrics_list.go | 1 + pkg/shell/client/shell_client.go | 11 +++++++-- pkg/shell/config.go | 23 +++++++++++++++++++ pkg/shell/server/shell_server.go | 16 ++++++++----- 29 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 pkg/shell/config.go diff --git a/Documentation/cmdref/cilium-agent.md b/Documentation/cmdref/cilium-agent.md index 162e6bae75c5a..cca30f965bd22 100644 --- a/Documentation/cmdref/cilium-agent.md +++ b/Documentation/cmdref/cilium-agent.md @@ -377,6 +377,7 @@ cilium-agent [flags] --route-metric int Overwrite the metric used by cilium when adding routes to its 'cilium_host' device --routing-mode string Routing mode ("native" or "tunnel") (default "tunnel") --service-no-backend-response string Response to traffic for a service without backends (default "reject") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --socket-path string Sets daemon's socket path to listen for connections (default "/var/run/cilium/cilium.sock") --standalone-dns-proxy-server-port int Global port on which the gRPC server for standalone DNS proxy should listen (default 40045) --state-dir string Directory path to store runtime state (default "/var/run/cilium") diff --git a/Documentation/cmdref/cilium-agent_hive.md b/Documentation/cmdref/cilium-agent_hive.md index f92b18ef0c5c3..ab085774227f3 100644 --- a/Documentation/cmdref/cilium-agent_hive.md +++ b/Documentation/cmdref/cilium-agent_hive.md @@ -219,6 +219,7 @@ cilium-agent hive [flags] --proxy-xff-num-trusted-hops-ingress uint32 Number of trusted hops regarding the x-forwarded-for and related HTTP headers for the ingress L7 policy enforcement Envoy listeners. --read-cni-conf string CNI configuration file to use as a source for --write-cni-conf-when-ready. If not supplied, a suitable one will be generated. --restored-proxy-ports-age-limit uint Time after which a restored proxy ports file is considered stale (in minutes) (default 15) + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --standalone-dns-proxy-server-port int Global port on which the gRPC server for standalone DNS proxy should listen (default 40045) --static-cnp-path string Directory path to watch and load static cilium network policy yaml files. --status-collector-failure-threshold duration The duration after which a probe is considered failed (default 1m0s) diff --git a/Documentation/cmdref/cilium-agent_hive_dot-graph.md b/Documentation/cmdref/cilium-agent_hive_dot-graph.md index 7010d0f9a834e..aade04620aa8c 100644 --- a/Documentation/cmdref/cilium-agent_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-agent_hive_dot-graph.md @@ -224,6 +224,7 @@ cilium-agent hive dot-graph [flags] --proxy-xff-num-trusted-hops-ingress uint32 Number of trusted hops regarding the x-forwarded-for and related HTTP headers for the ingress L7 policy enforcement Envoy listeners. --read-cni-conf string CNI configuration file to use as a source for --write-cni-conf-when-ready. If not supplied, a suitable one will be generated. --restored-proxy-ports-age-limit uint Time after which a restored proxy ports file is considered stale (in minutes) (default 15) + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --standalone-dns-proxy-server-port int Global port on which the gRPC server for standalone DNS proxy should listen (default 40045) --static-cnp-path string Directory path to watch and load static cilium network policy yaml files. --status-collector-failure-threshold duration The duration after which a probe is considered failed (default 1m0s) diff --git a/Documentation/cmdref/cilium-dbg_metrics_list.md b/Documentation/cmdref/cilium-dbg_metrics_list.md index 45e9ce28085f2..a9fdbbbae0d87 100644 --- a/Documentation/cmdref/cilium-dbg_metrics_list.md +++ b/Documentation/cmdref/cilium-dbg_metrics_list.md @@ -11,9 +11,10 @@ cilium-dbg metrics list [flags] ### Options ``` - -h, --help help for list - -p, --match-pattern string Show only metrics whose names match matchpattern - -o, --output string json| yaml| jsonpath='{}' + -h, --help help for list + -p, --match-pattern string Show only metrics whose names match matchpattern + -o, --output string json| yaml| jsonpath='{}' + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### Options inherited from parent commands diff --git a/Documentation/cmdref/cilium-operator-alibabacloud.md b/Documentation/cmdref/cilium-operator-alibabacloud.md index fb293cba2933f..baddb7657c844 100644 --- a/Documentation/cmdref/cilium-operator-alibabacloud.md +++ b/Documentation/cmdref/cilium-operator-alibabacloud.md @@ -130,6 +130,7 @@ cilium-operator-alibabacloud [flags] --remove-cilium-node-taints Remove node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes once Cilium is up and running (default true) --set-cilium-is-up-condition Set CiliumIsUp Node condition to mark a Kubernetes Node that a Cilium pod is up and running in that node (default true) --set-cilium-node-taints Set node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes if Cilium is scheduled but not up and running + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag diff --git a/Documentation/cmdref/cilium-operator-alibabacloud_hive.md b/Documentation/cmdref/cilium-operator-alibabacloud_hive.md index 208429afa05e9..b34483e6efb6d 100644 --- a/Documentation/cmdref/cilium-operator-alibabacloud_hive.md +++ b/Documentation/cmdref/cilium-operator-alibabacloud_hive.md @@ -94,6 +94,7 @@ cilium-operator-alibabacloud hive [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md index 5d1bd9eadb2cb..8a4b7b01c9ad5 100644 --- a/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-alibabacloud_hive_dot-graph.md @@ -99,6 +99,7 @@ cilium-operator-alibabacloud hive dot-graph [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-aws.md b/Documentation/cmdref/cilium-operator-aws.md index abcd5d940da13..c7a494daba5aa 100644 --- a/Documentation/cmdref/cilium-operator-aws.md +++ b/Documentation/cmdref/cilium-operator-aws.md @@ -138,6 +138,7 @@ cilium-operator-aws [flags] --remove-cilium-node-taints Remove node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes once Cilium is up and running (default true) --set-cilium-is-up-condition Set CiliumIsUp Node condition to mark a Kubernetes Node that a Cilium pod is up and running in that node (default true) --set-cilium-node-taints Set node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes if Cilium is scheduled but not up and running + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag diff --git a/Documentation/cmdref/cilium-operator-aws_hive.md b/Documentation/cmdref/cilium-operator-aws_hive.md index dda7512ebdd56..52e8c4e8b7c67 100644 --- a/Documentation/cmdref/cilium-operator-aws_hive.md +++ b/Documentation/cmdref/cilium-operator-aws_hive.md @@ -94,6 +94,7 @@ cilium-operator-aws hive [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md index ed04e148cc003..8b5e810b152f8 100644 --- a/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-aws_hive_dot-graph.md @@ -99,6 +99,7 @@ cilium-operator-aws hive dot-graph [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-azure.md b/Documentation/cmdref/cilium-operator-azure.md index 9dfca36209ba3..44825713306c9 100644 --- a/Documentation/cmdref/cilium-operator-azure.md +++ b/Documentation/cmdref/cilium-operator-azure.md @@ -133,6 +133,7 @@ cilium-operator-azure [flags] --remove-cilium-node-taints Remove node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes once Cilium is up and running (default true) --set-cilium-is-up-condition Set CiliumIsUp Node condition to mark a Kubernetes Node that a Cilium pod is up and running in that node (default true) --set-cilium-node-taints Set node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes if Cilium is scheduled but not up and running + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag diff --git a/Documentation/cmdref/cilium-operator-azure_hive.md b/Documentation/cmdref/cilium-operator-azure_hive.md index d711cfad55a8f..dba7c53292297 100644 --- a/Documentation/cmdref/cilium-operator-azure_hive.md +++ b/Documentation/cmdref/cilium-operator-azure_hive.md @@ -94,6 +94,7 @@ cilium-operator-azure hive [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md index 323b8b5c51594..a7dd0f8ff8353 100644 --- a/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-azure_hive_dot-graph.md @@ -99,6 +99,7 @@ cilium-operator-azure hive dot-graph [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-generic.md b/Documentation/cmdref/cilium-operator-generic.md index e8c7bdcf431e7..16edc4354b778 100644 --- a/Documentation/cmdref/cilium-operator-generic.md +++ b/Documentation/cmdref/cilium-operator-generic.md @@ -129,6 +129,7 @@ cilium-operator-generic [flags] --remove-cilium-node-taints Remove node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes once Cilium is up and running (default true) --set-cilium-is-up-condition Set CiliumIsUp Node condition to mark a Kubernetes Node that a Cilium pod is up and running in that node (default true) --set-cilium-node-taints Set node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes if Cilium is scheduled but not up and running + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag diff --git a/Documentation/cmdref/cilium-operator-generic_hive.md b/Documentation/cmdref/cilium-operator-generic_hive.md index b42a8ab7ebefc..5201b73cac5b4 100644 --- a/Documentation/cmdref/cilium-operator-generic_hive.md +++ b/Documentation/cmdref/cilium-operator-generic_hive.md @@ -94,6 +94,7 @@ cilium-operator-generic hive [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md b/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md index 4d5368103f149..b8955777ad55a 100644 --- a/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator-generic_hive_dot-graph.md @@ -99,6 +99,7 @@ cilium-operator-generic hive dot-graph [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator.md b/Documentation/cmdref/cilium-operator.md index e3a9ee776ecd4..1e8c855f90e69 100644 --- a/Documentation/cmdref/cilium-operator.md +++ b/Documentation/cmdref/cilium-operator.md @@ -143,6 +143,7 @@ cilium-operator [flags] --remove-cilium-node-taints Remove node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes once Cilium is up and running (default true) --set-cilium-is-up-condition Set CiliumIsUp Node condition to mark a Kubernetes Node that a Cilium pod is up and running in that node (default true) --set-cilium-node-taints Set node taint "node.cilium.io/agent-not-ready" from Kubernetes nodes if Cilium is scheduled but not up and running + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --subnet-ids-filter strings Subnets IDs (separated by commas) --subnet-tags-filter map Subnets tags in the form of k1=v1,k2=v2 (multiple k/v pairs can also be passed by repeating the CLI flag diff --git a/Documentation/cmdref/cilium-operator_hive.md b/Documentation/cmdref/cilium-operator_hive.md index ea13a5d716d82..87ca26bf27ab3 100644 --- a/Documentation/cmdref/cilium-operator_hive.md +++ b/Documentation/cmdref/cilium-operator_hive.md @@ -94,6 +94,7 @@ cilium-operator hive [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/cilium-operator_hive_dot-graph.md b/Documentation/cmdref/cilium-operator_hive_dot-graph.md index ccd2a0e2b3d58..749c78b4f01df 100644 --- a/Documentation/cmdref/cilium-operator_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-operator_hive_dot-graph.md @@ -99,6 +99,7 @@ cilium-operator hive dot-graph [flags] --operator-prometheus-serve-addr string Address to serve Prometheus metrics (default ":9963") --policy-default-local-cluster Control whether policy rules assume by default the local cluster if not explicitly selected (default true) --policy-secrets-namespace string Namespace where secrets used in TLS Interception will be synced to. (default "cilium-secrets") + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") --skip-crd-creation When true, Kubernetes Custom Resource Definitions will not be created --synchronize-k8s-nodes Perform GC of stale node entries from the KVStore (default true) --validate-network-policy Whether to enable or disable the informational network policy validator (default true) diff --git a/Documentation/cmdref/clustermesh-apiserver_clustermesh.md b/Documentation/cmdref/clustermesh-apiserver_clustermesh.md index 2e1b06d2d8195..a36bdfd0be67a 100644 --- a/Documentation/cmdref/clustermesh-apiserver_clustermesh.md +++ b/Documentation/cmdref/clustermesh-apiserver_clustermesh.md @@ -47,6 +47,7 @@ clustermesh-apiserver clustermesh [flags] --pprof-mutex-profile-fraction int Enable mutex contention profiling and set the fraction of sampled events (set to 1 to sample all events) --pprof-port uint16 Port that pprof listens on (default 6063) --prometheus-serve-addr string Address to serve Prometheus metrics + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### SEE ALSO diff --git a/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive.md b/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive.md index 9a75f228709f4..a4b3072d3ec20 100644 --- a/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive.md +++ b/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive.md @@ -47,6 +47,7 @@ clustermesh-apiserver clustermesh hive [flags] --pprof-mutex-profile-fraction int Enable mutex contention profiling and set the fraction of sampled events (set to 1 to sample all events) --pprof-port uint16 Port that pprof listens on (default 6063) --prometheus-serve-addr string Address to serve Prometheus metrics + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### SEE ALSO diff --git a/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive_dot-graph.md b/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive_dot-graph.md index 301a04eb6edff..a692e7000c6b4 100644 --- a/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive_dot-graph.md +++ b/Documentation/cmdref/clustermesh-apiserver_clustermesh_hive_dot-graph.md @@ -52,6 +52,7 @@ clustermesh-apiserver clustermesh hive dot-graph [flags] --pprof-mutex-profile-fraction int Enable mutex contention profiling and set the fraction of sampled events (set to 1 to sample all events) --pprof-port uint16 Port that pprof listens on (default 6063) --prometheus-serve-addr string Address to serve Prometheus metrics + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### SEE ALSO diff --git a/Documentation/cmdref/clustermesh-apiserver_kvstoremesh.md b/Documentation/cmdref/clustermesh-apiserver_kvstoremesh.md index ea9933433204f..c7e85adf85e55 100644 --- a/Documentation/cmdref/clustermesh-apiserver_kvstoremesh.md +++ b/Documentation/cmdref/clustermesh-apiserver_kvstoremesh.md @@ -37,6 +37,7 @@ clustermesh-apiserver kvstoremesh [flags] --pprof-mutex-profile-fraction int Enable mutex contention profiling and set the fraction of sampled events (set to 1 to sample all events) --pprof-port uint16 Port that pprof listens on (default 6064) --prometheus-serve-addr string Address to serve Prometheus metrics + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### SEE ALSO diff --git a/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive.md b/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive.md index c8eb6bf3865b0..bfb1116b10739 100644 --- a/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive.md +++ b/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive.md @@ -37,6 +37,7 @@ clustermesh-apiserver kvstoremesh hive [flags] --pprof-mutex-profile-fraction int Enable mutex contention profiling and set the fraction of sampled events (set to 1 to sample all events) --pprof-port uint16 Port that pprof listens on (default 6064) --prometheus-serve-addr string Address to serve Prometheus metrics + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### SEE ALSO diff --git a/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive_dot-graph.md b/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive_dot-graph.md index 1a444c8498ac6..e60610c78bba6 100644 --- a/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive_dot-graph.md +++ b/Documentation/cmdref/clustermesh-apiserver_kvstoremesh_hive_dot-graph.md @@ -42,6 +42,7 @@ clustermesh-apiserver kvstoremesh hive dot-graph [flags] --pprof-mutex-profile-fraction int Enable mutex contention profiling and set the fraction of sampled events (set to 1 to sample all events) --pprof-port uint16 Port that pprof listens on (default 6064) --prometheus-serve-addr string Address to serve Prometheus metrics + --shell-sock-path string Path to the shell UNIX socket (default "/var/run/cilium/shell.sock") ``` ### SEE ALSO diff --git a/cilium-dbg/cmd/metrics_list.go b/cilium-dbg/cmd/metrics_list.go index d835312c8efd4..f80f2400606ff 100644 --- a/cilium-dbg/cmd/metrics_list.go +++ b/cilium-dbg/cmd/metrics_list.go @@ -32,4 +32,5 @@ func init() { MetricsCmd.AddCommand(MetricsListCmd) MetricsListCmd.Flags().StringVarP(&matchPattern, "match-pattern", "p", "", "Show only metrics whose names match matchpattern") command.AddOutputOption(MetricsListCmd) + shell.AddShellSockOption(MetricsListCmd) } diff --git a/pkg/shell/client/shell_client.go b/pkg/shell/client/shell_client.go index 1fcc774998865..91964ae980280 100644 --- a/pkg/shell/client/shell_client.go +++ b/pkg/shell/client/shell_client.go @@ -17,11 +17,13 @@ import ( "github.com/spf13/cobra" "golang.org/x/term" - "github.com/cilium/cilium/pkg/defaults" + baseshell "github.com/cilium/cilium/pkg/shell" "github.com/cilium/cilium/pkg/time" "github.com/cilium/cilium/pkg/version" ) +var config = baseshell.DefaultConfig + var ShellCmd = &cobra.Command{ Use: "shell [command] [args]...", Short: "Connect to the Cilium shell", @@ -43,7 +45,7 @@ func dialShell(w io.Writer) (net.Conn, error) { for { var err error var d net.Dialer - conn, err = d.DialContext(ctx, "unix", defaults.ShellSockPath) + conn, err = d.DialContext(ctx, "unix", config.ShellSockPath) if err == nil { break } @@ -225,3 +227,8 @@ func printShellGreeting(term *term.Terminal) { fmt.Fprint(term, Blue+Blue+Blue+" \\__/"+Reset+"\n") fmt.Fprint(term, "\n") } + +// AddShellSockOption adds the --shell-sock-path to the command. +func AddShellSockOption(cmd *cobra.Command) { + config.Flags(cmd.Flags()) +} diff --git a/pkg/shell/config.go b/pkg/shell/config.go new file mode 100644 index 0000000000000..b78e55d6e2dba --- /dev/null +++ b/pkg/shell/config.go @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package shell + +import ( + "github.com/spf13/pflag" + + "github.com/cilium/cilium/pkg/defaults" +) + +const ShellSockPathName = "shell-sock-path" + +var DefaultConfig = Config{ShellSockPath: defaults.ShellSockPath} + +// Config is the configuration for the shell server. +type Config struct { + ShellSockPath string +} + +func (def Config) Flags(flags *pflag.FlagSet) { + flags.String(ShellSockPathName, def.ShellSockPath, "Path to the shell UNIX socket") +} diff --git a/pkg/shell/server/shell_server.go b/pkg/shell/server/shell_server.go index c64f44eebd99b..7e6ba7c279d3b 100644 --- a/pkg/shell/server/shell_server.go +++ b/pkg/shell/server/shell_server.go @@ -21,11 +21,14 @@ import ( "github.com/cilium/cilium/pkg/defaults" "github.com/cilium/cilium/pkg/logging/logfields" + baseshell "github.com/cilium/cilium/pkg/shell" ) var Cell = cell.Module( "shell", "Cilium debug shell", + + cell.Config(baseshell.DefaultConfig), cell.Invoke(registerShell), ) @@ -36,7 +39,7 @@ var defaultCmdsToInclude = []string{ "cat", "exec", "help", } -func registerShell(in hive.ScriptCmds, log *slog.Logger, jg job.Group) { +func registerShell(in hive.ScriptCmds, log *slog.Logger, jg job.Group, c baseshell.Config) { cmds := in.Map() defCmds := script.DefaultCmds() for _, name := range defaultCmdsToInclude { @@ -46,18 +49,19 @@ func registerShell(in hive.ScriptCmds, log *slog.Logger, jg job.Group) { Cmds: cmds, Conds: nil, } - jg.Add(job.OneShot("listener", shell{jg, log, &e}.listener)) + jg.Add(job.OneShot("listener", shell{jg, log, &e, c}.listener)) } type shell struct { jg job.Group log *slog.Logger engine *script.Engine + config baseshell.Config } func (sh shell) listener(ctx context.Context, health cell.Health) error { // Remove any old UNIX sock file from previous runs. - os.Remove(defaults.ShellSockPath) + os.Remove(sh.config.ShellSockPath) if _, err := os.Stat(defaults.RuntimePath); os.IsNotExist(err) { if err := os.MkdirAll(defaults.RuntimePath, defaults.RuntimePathRights); err != nil { @@ -66,9 +70,9 @@ func (sh shell) listener(ctx context.Context, health cell.Health) error { } var lc net.ListenConfig - l, err := lc.Listen(ctx, "unix", defaults.ShellSockPath) + l, err := lc.Listen(ctx, "unix", sh.config.ShellSockPath) if err != nil { - return fmt.Errorf("failed to listen on %q: %w", defaults.ShellSockPath, err) + return fmt.Errorf("failed to listen on %q: %w", sh.config.ShellSockPath, err) } var wg sync.WaitGroup @@ -80,7 +84,7 @@ func (sh shell) listener(ctx context.Context, health cell.Health) error { }() defer wg.Wait() - health.OK(fmt.Sprintf("Listening on %s", defaults.ShellSockPath)) + health.OK(fmt.Sprintf("Listening on %s", sh.config.ShellSockPath)) connCount := 0 for ctx.Err() == nil { conn, err := l.Accept() From a03413605a877e7824bfd7567d4503740d56c660 Mon Sep 17 00:00:00 2001 From: Jarno Rajahalme Date: Tue, 23 Sep 2025 10:47:30 +0200 Subject: [PATCH 165/176] README: Update releases Signed-off-by: Jarno Rajahalme --- README.rst | 6 +++--- stable.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index def128df30948..2e320311b9541 100644 --- a/README.rst +++ b/README.rst @@ -56,11 +56,11 @@ Listed below are the actively maintained release branches along with their lates patch release, corresponding image pull tags and their release notes: +---------------------------------------------------------+------------+------------------------------------+----------------------------------------------------------------------------+ -| `v1.18 `__ | 2025-08-15 | ``quay.io/cilium/cilium:v1.18.1`` | `Release Notes `__ | +| `v1.18 `__ | 2025-09-16 | ``quay.io/cilium/cilium:v1.18.2`` | `Release Notes `__ | +---------------------------------------------------------+------------+------------------------------------+----------------------------------------------------------------------------+ -| `v1.17 `__ | 2025-08-15 | ``quay.io/cilium/cilium:v1.17.7`` | `Release Notes `__ | +| `v1.17 `__ | 2025-09-22 | ``quay.io/cilium/cilium:v1.17.8`` | `Release Notes `__ | +---------------------------------------------------------+------------+------------------------------------+----------------------------------------------------------------------------+ -| `v1.16 `__ | 2025-08-15 | ``quay.io/cilium/cilium:v1.16.13`` | `Release Notes `__ | +| `v1.16 `__ | 2025-09-22 | ``quay.io/cilium/cilium:v1.16.15`` | `Release Notes `__ | +---------------------------------------------------------+------------+------------------------------------+----------------------------------------------------------------------------+ Architectures diff --git a/stable.txt b/stable.txt index 2a34c700cf2d6..4fe71e952da87 100644 --- a/stable.txt +++ b/stable.txt @@ -1 +1 @@ -v1.18.1 +v1.18.2 From 51c5087cd536bcef18b67afb1564dd6cc4c48c1d Mon Sep 17 00:00:00 2001 From: Fabio Falzoi Date: Mon, 22 Sep 2025 13:22:26 +0200 Subject: [PATCH 166/176] datapath/linux/route: Disregard MTU value when deleting routes When Cilium starts in tunnel mode, a route for each remote node pod CIDRs is added to the current node. For these routes, the MTU is set to 1450, to include the tunnel overhead. If the routing mode is then changed to native and Cilium is restarted, the stale routes should be deleted at startup. Unfortunately, this is currently not happening because the MTU is set to 1500 in the deletion request, resulting in the folowing error from netlink: msg="Unable to delete route" ... error="no such process" In other words, the route cannot be found because the MTU value set in the deletion request is not matching the one of the installed route. To solve this, just disregard the MTU value while deleting a route. This should still allow to correctly remove stale IPsec related routes as intended in commit 35ca979f44 Fixes: 35ca979f44 ("datapath/linux/route: Fix Delete") Fixes: https://github.com/cilium/cilium/issues/41811 Signed-off-by: Fabio Falzoi --- pkg/datapath/linux/route/route_linux.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/datapath/linux/route/route_linux.go b/pkg/datapath/linux/route/route_linux.go index 19ffa73199da9..a38ea2d0f5dec 100644 --- a/pkg/datapath/linux/route/route_linux.go +++ b/pkg/datapath/linux/route/route_linux.go @@ -308,7 +308,6 @@ func Delete(route Route) error { Table: route.Table, Type: route.Type, Protocol: netlink.RouteProtocol(route.Proto), - MTU: route.MTU, } // Scope can only be specified for IPv4 From b29bb621f78b21848b38c9974a3ee8a7895e3bbe Mon Sep 17 00:00:00 2001 From: Jussi Maki Date: Wed, 17 Sep 2025 10:21:26 +0200 Subject: [PATCH 167/176] k8s/client/testutils: Fill in TypeMeta for objects added via clientset Fill the [metav1.TypeMeta] for objects added via the Clientset if the TypeMeta is unset. E.g. CoreV1().Nodes().Create(&Node{ObjectMeta{Name: "foo"}}) would have previously created a node object with Kind="" and APIVersion="" and with this it'll have Kind="Node" and APIVersion="v1". Signed-off-by: Jussi Maki --- pkg/k8s/client/testutils/object_tracker.go | 22 ++++- .../client/testutils/object_tracker_test.go | 87 +++++++++++++++++++ 2 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 pkg/k8s/client/testutils/object_tracker_test.go diff --git a/pkg/k8s/client/testutils/object_tracker.go b/pkg/k8s/client/testutils/object_tracker.go index c50a75bd6df07..d97edda5eb130 100644 --- a/pkg/k8s/client/testutils/object_tracker.go +++ b/pkg/k8s/client/testutils/object_tracker.go @@ -189,6 +189,16 @@ func (s *statedbObjectTracker) addList(obj runtime.Object) error { return nil } +// fillTypeMetaIfNeeded sets the [metav1.TypeMeta] in the object if it's not already set based +// on the GroupVersionKind found from the schema. +func fillTypeMetaIfNeeded(obj runtime.Object, gvk schema.GroupVersionKind) runtime.Object { + if obj.GetObjectKind().GroupVersionKind().Empty() { + obj = obj.DeepCopyObject() + obj.GetObjectKind().SetGroupVersionKind(gvk) + } + return obj +} + // Add adds an object to the tracker. If object being added // is a list, its items are added separately. func (s *statedbObjectTracker) Add(obj runtime.Object) error { @@ -215,15 +225,12 @@ func (s *statedbObjectTracker) Add(obj runtime.Object) error { return err } - if partial, ok := obj.(*metav1.PartialObjectMetadata); ok && len(partial.TypeMeta.APIVersion) > 0 { - gvks = []schema.GroupVersionKind{partial.TypeMeta.GroupVersionKind()} - } - if len(gvks) == 0 { err := fmt.Errorf("no registered kinds for %v", obj) s.log.Debug("Add", logfields.Error, err) return err } + for _, gvk := range gvks { // NOTE: UnsafeGuessKindToResource is a heuristic and default match. The // actual registration in apiserver can specify arbitrary route for a @@ -236,6 +243,8 @@ func (s *statedbObjectTracker) Add(obj runtime.Object) error { gvr.Version = "" } + obj = fillTypeMetaIfNeeded(obj, gvk) + s.log.Debug( "Add", logfieldClientset, s.domain, @@ -332,6 +341,8 @@ func (s *statedbObjectTracker) Create(gvr schema.GroupVersionResource, obj runti newMeta.SetNamespace(ns) } + obj = fillTypeMetaIfNeeded(obj, gvks[0]) + wtxn := s.db.WriteTxn(s.tbl) version := s.tbl.Revision(wtxn) + 1 newMeta.SetResourceVersion(strconv.FormatUint(version, 10)) @@ -513,6 +524,9 @@ func (s *statedbObjectTracker) updateOrPatch(what string, gvr schema.GroupVersio if len(newMeta.GetNamespace()) == 0 { newMeta.SetNamespace(ns) } + + obj = fillTypeMetaIfNeeded(obj, gvks[0]) + wtxn := s.db.WriteTxn(s.tbl) version := s.tbl.Revision(wtxn) + 1 newMeta.SetResourceVersion(strconv.FormatUint(version, 10)) diff --git a/pkg/k8s/client/testutils/object_tracker_test.go b/pkg/k8s/client/testutils/object_tracker_test.go new file mode 100644 index 0000000000000..a6e11bb75a450 --- /dev/null +++ b/pkg/k8s/client/testutils/object_tracker_test.go @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package testutils + +import ( + "log/slog" + "testing" + + "github.com/cilium/hive/hivetest" + "github.com/cilium/statedb" + "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + ciliumv2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" + v1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" + slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" +) + +func TestStateDBObjectTracker_fillTypeMeta(t *testing.T) { + db := statedb.New() + log := hivetest.Logger(t, hivetest.LogLevel(slog.LevelDebug)) + + ot, err := newStateDBObjectTracker(db, log) + require.NoError(t, err) + + gvr := schema.GroupVersionResource{ + Group: "", + Version: "v1", + Resource: "nodes", + } + + // A node without the TypeMeta. + node := v1.Node{ + ObjectMeta: slim_metav1.ObjectMeta{Name: "test1"}, + } + + // Add() an object + err = ot.Add(node.DeepCopy()) + require.NoError(t, err, "Add") + + nodeAny, err := ot.Get(gvr, "", "test1") + require.NoError(t, err) + n := nodeAny.(*v1.Node) + require.Equal(t, "Node", n.TypeMeta.Kind) + require.Equal(t, "v1", n.TypeMeta.APIVersion) + + node.Name = "test2" + + err = ot.Create(gvr, node.DeepCopy(), "") + require.NoError(t, err, "Create") + nodeAny, err = ot.Get(gvr, "", "test2") + require.NoError(t, err) + n = nodeAny.(*v1.Node) + require.Equal(t, "Node", n.TypeMeta.Kind) + require.Equal(t, "v1", n.TypeMeta.APIVersion) + + err = ot.Update(gvr, node.DeepCopy(), "") + require.NoError(t, err, "Update") + nodeAny, err = ot.Get(gvr, "", "test2") + require.NoError(t, err) + n = nodeAny.(*v1.Node) + require.Equal(t, "Node", n.TypeMeta.Kind) + require.Equal(t, "v1", n.TypeMeta.APIVersion) + + // A cilium node without the TypeMeta. This tests that the + // APIVersion is correctly set when Group is non-empty. + ciliumNode := ciliumv2.CiliumNode{ + ObjectMeta: metav1.ObjectMeta{Name: "test1"}, + } + + gvr = schema.GroupVersionResource{ + Group: "cilium.io", + Version: "v2", + Resource: "ciliumnodes", + } + err = ot.Add(ciliumNode.DeepCopy()) + require.NoError(t, err, "Add") + + ciliumNodeAny, err := ot.Get(gvr, "", "test1") + require.NoError(t, err) + cn := ciliumNodeAny.(*ciliumv2.CiliumNode) + require.Equal(t, "CiliumNode", cn.TypeMeta.Kind) + require.Equal(t, "cilium.io/v2", cn.TypeMeta.APIVersion) + +} From 5dc908c1446891f032ae8b1a0e866adb6659d8dd Mon Sep 17 00:00:00 2001 From: darox Date: Mon, 22 Sep 2025 09:47:15 +0200 Subject: [PATCH 168/176] doc: add note on hostfw and ipsec interaction Hostfw and ipsec aren't compatible. Signed-off-by: darox --- Documentation/security/policy/language.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/security/policy/language.rst b/Documentation/security/policy/language.rst index 16eacd8814b51..4f33aacf13923 100644 --- a/Documentation/security/policy/language.rst +++ b/Documentation/security/policy/language.rst @@ -1339,3 +1339,6 @@ Host Policies known issues services for the native device (such as NodePort), hosts will enforce Host Policies on service addresses rather than the service endpoints. For details, refer to :gh-issue:`12545`. + +- Host Firewall and thus Host Policies do not work together with IPsec. + For details, refer to :gh-issue:`41854`. \ No newline at end of file From f4214ea668536931291a89845a2b4eca91fc8d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Tue, 2 Sep 2025 20:31:07 +0200 Subject: [PATCH 169/176] bpf/scapy: misc fixes (v6 utils, formatting) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix v6 utils that had `svc_one` hardcoded. * Improve `pkt_defs.py` by using `()` instead of \. Signed-off-by: Marc Suñé --- bpf/tests/scapy/README.md | 20 +++++++----- bpf/tests/scapy/pkt_defs.py | 63 ++++++++++++++++++++++--------------- 2 files changed, 49 insertions(+), 34 deletions(-) diff --git a/bpf/tests/scapy/README.md b/bpf/tests/scapy/README.md index 9392e5a64be6f..60bb79b96f146 100644 --- a/bpf/tests/scapy/README.md +++ b/bpf/tests/scapy/README.md @@ -90,10 +90,12 @@ Replace values with the constants defined in `pkt_defs.py` (e.g.MACs, IPs). Add any new value necessary in `pkt_defs.py`: ``` -l2_announce6_ns = Ether(dst=l2_announce6_ns_mmac, src=mac_one)/ \ - IPv6(src=v6_ext_node_one, dst=l2_announce6_ns_ma, hlim=255)/ \ - ICMPv6ND_NS(tgt=v6_svc_one)/ \ - ICMPv6NDOptSrcLLAddr(lladdr=mac_one) +l2_announce6_ns = ( + Ether(dst=l2_announce6_ns_mmac, src=mac_one) / + IPv6(src=v6_ext_node_one, dst=l2_announce6_ns_ma, hlim=255) / + ICMPv6ND_NS(tgt=v6_svc_one) / + ICMPv6NDOptSrcLLAddr(lladdr=mac_one) +) ``` Run the test and adjust the scapy packet until it passes. @@ -104,10 +106,12 @@ If the expected packet in the `_check` function is different than the injected, define the new packet. You can take as reference the injected packet. ``` -l2_announce6_na = Ether(dst=mac_one, src=mac_two)/ \ - IPv6(src=v6_svc_one, dst=v6_ext_node_one, hlim=255)/ \ - ICMPv6ND_NA(R=0, S=1, O=1, tgt=v6_svc_one)/ \ - ICMPv6NDOptDstLLAddr(lladdr=mac_two) +l2_announce6_na = ( + Ether(dst=mac_one, src=mac_two) / + IPv6(src=v6_svc_one, dst=v6_ext_node_one, hlim=255) / + ICMPv6ND_NA(R=0, S=1, O=1, tgt=v6_svc_one) / + ICMPv6NDOptDstLLAddr(lladdr=mac_two) +) ``` Add the `ASSERT_CTX_BUF_*()` after the current assertions but before diff --git a/bpf/tests/scapy/pkt_defs.py b/bpf/tests/scapy/pkt_defs.py index a9436df5735b8..5fcf3143b9d89 100644 --- a/bpf/tests/scapy/pkt_defs.py +++ b/bpf/tests/scapy/pkt_defs.py @@ -72,43 +72,54 @@ default_data = "Should not change!!" # Utility functions -def get_v6_ns_addr(v6_addr:str) -> str: - addr_bytes = in6_getnsma(inet_pton(socket.AF_INET6, v6_svc_one)) +def v6_get_ns_addr(v6_addr:str) -> str: + addr_bytes = in6_getnsma(inet_pton(socket.AF_INET6, v6_addr)) return inet_ntop(socket.AF_INET6, addr_bytes) -def v6_ns_mac(v6_addr:str) -> str: - addr_bytes = in6_getnsma(inet_pton(socket.AF_INET6, v6_svc_one)) +def v6_get_ns_mac(v6_addr:str) -> str: + addr_bytes = in6_getnsma(inet_pton(socket.AF_INET6, v6_addr)) return in6_getnsmac(addr_bytes) # Test packet/buffer definitions ## L2 announce (v4) - -l2_announce_arp_req = Ether(dst=mac_bcast, src=mac_one)/ \ - ARP(op="who-has", psrc=v4_ext_one, pdst=v4_svc_one, \ - hwsrc=mac_one, hwdst=mac_bcast) -l2_announce_arp_reply = Ether(dst=mac_one, src=mac_two)/ \ - ARP(op="is-at", psrc=v4_svc_one, pdst=v4_ext_one, \ - hwsrc=mac_two, hwdst=mac_one) +l2_announce_arp_req = ( + Ether(dst=mac_bcast, src=mac_one) / + ARP(op="who-has", psrc=v4_ext_one, pdst=v4_svc_one, \ + hwsrc=mac_one, hwdst=mac_bcast) +) + +l2_announce_arp_reply = ( + Ether(dst=mac_one, src=mac_two) / + ARP(op="is-at", psrc=v4_svc_one, pdst=v4_ext_one, \ + hwsrc=mac_two, hwdst=mac_one) +) ## L2 announce (v6) ### Calculate the IPv6 NS solicitation address -l2_announce6_ns_mmac = v6_ns_mac(v6_svc_one) -l2_announce6_ns_ma = get_v6_ns_addr(v6_svc_one) +l2_announce6_ns_mmac = v6_get_ns_mac(v6_svc_one) +l2_announce6_ns_ma = v6_get_ns_addr(v6_svc_one) assert(l2_announce6_ns_mmac == '33:33:ff:00:00:01') assert(l2_announce6_ns_ma == 'ff02::1:ff00:1') -l2_announce6_ns = Ether(dst=l2_announce6_ns_mmac, src=mac_one)/ \ - IPv6(src=v6_ext_node_one, dst=l2_announce6_ns_ma, hlim=255)/ \ - ICMPv6ND_NS(tgt=v6_svc_one)/ \ - ICMPv6NDOptSrcLLAddr(lladdr=mac_one) -l2_announce6_targeted_ns = \ - Ether(dst=mac_two, src=mac_one) / \ - IPv6(src=v6_ext_node_one, dst=v6_svc_one, hlim=255) / \ - ICMPv6ND_NS(tgt=v6_svc_one) / \ - ICMPv6NDOptSrcLLAddr(lladdr=mac_one) -l2_announce6_na = Ether(dst=mac_one, src=mac_two)/ \ - IPv6(src=v6_svc_one, dst=v6_ext_node_one, hlim=255)/ \ - ICMPv6ND_NA(R=0, S=1, O=1, tgt=v6_svc_one)/ \ - ICMPv6NDOptDstLLAddr(lladdr=mac_two) +l2_announce6_ns = ( + Ether(dst=l2_announce6_ns_mmac, src=mac_one) / + IPv6(src=v6_ext_node_one, dst=l2_announce6_ns_ma, hlim=255) / + ICMPv6ND_NS(tgt=v6_svc_one) / + ICMPv6NDOptSrcLLAddr(lladdr=mac_one) +) + +l2_announce6_targeted_ns = ( + Ether(dst=mac_two, src=mac_one) / + IPv6(src=v6_ext_node_one, dst=v6_svc_one, hlim=255) / + ICMPv6ND_NS(tgt=v6_svc_one) / + ICMPv6NDOptSrcLLAddr(lladdr=mac_one) +) + +l2_announce6_na = ( + Ether(dst=mac_one, src=mac_two) / + IPv6(src=v6_svc_one, dst=v6_ext_node_one, hlim=255) / + ICMPv6ND_NA(R=0, S=1, O=1, tgt=v6_svc_one) / + ICMPv6NDOptDstLLAddr(lladdr=mac_two) +) From e44296eda6e89c5cf17604c50d468393ecc70f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Fri, 5 Sep 2025 18:42:44 +0200 Subject: [PATCH 170/176] bpf/tests: fix NULL iface MAC on ipv6 ND tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes introduced in df5501e1d0 missed to assign the interface_mac, in the ipv6 ND tests, resulting in packets sent with the NULL MAC address. The test passes as asserts use the same value to check against. Use another (valid) MAC for the interface. Signed-off-by: Marc Suñé --- bpf/tests/ipv6_ndp_from_netdev_test.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bpf/tests/ipv6_ndp_from_netdev_test.c b/bpf/tests/ipv6_ndp_from_netdev_test.c index 1cdc515fb380f..48a8f5ae86a30 100644 --- a/bpf/tests/ipv6_ndp_from_netdev_test.c +++ b/bpf/tests/ipv6_ndp_from_netdev_test.c @@ -15,6 +15,8 @@ #define FROM_NETDEV 0 +ASSIGN_CONFIG(union macaddr, interface_mac, {.addr = mac_two_addr}) + struct { __uint(type, BPF_MAP_TYPE_PROG_ARRAY); __uint(key_size, sizeof(__u32)); From c3a247821dba593361f65986e32f714b97cd486b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Mon, 8 Sep 2025 11:06:25 +0200 Subject: [PATCH 171/176] bpf/lib: fix ICMPv6 csum for non-llsrc opt NS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 11c329ff0a fixed handling of ICMPv6 neighbour solicitations that didn't have Link Layer Source option. For NA, it adds the 8 additional bytes of the option. While moving IPv6 NDP unit tests to scapy, unit tests failed due to an incorrect ICMPv6 checksum for non-LLSRC opt NS packets was. The problem is that ICMPv6 pseudoheader contains the payload length and the code was not considering it as part of the csum diff. This was not spotted because: * Unit tests (before scapy) don't check csums. * When L4 csum is offloaded, it really doesn't matter. This commit changes `icmp6_send_ndisc_adv()`: * Fixes the csum accordingly * Removes an unnecessary call to `l4_csum_replace()`, by accumulating the csum diff in `sum`. NOTE: it would be a good idea to refactor `icmp6_send_ndisc_adv()` to use direct packet access _and_ avoid superfluous copies of the (new) icmpv6 hdr and (new) opts. Seems like a good first issue :). Signed-off-by: Marc Suñé --- bpf/lib/icmp6.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/bpf/lib/icmp6.h b/bpf/lib/icmp6.h index 25e870613b915..085f5b5d4de64 100644 --- a/bpf/lib/icmp6.h +++ b/bpf/lib/icmp6.h @@ -123,7 +123,7 @@ int icmp6_send_ndisc_adv(struct __ctx_buff *ctx, int nh_off, __u8 opts[8], opts_old[8]; const int csum_off = nh_off + ICMP6_CSUM_OFFSET; union v6addr target_ip; - __be32 sum; + __be32 sum = 0; /* * According to RFC4861, sections 4.3 and 7.2.2 unicast neighbour @@ -138,8 +138,15 @@ int icmp6_send_ndisc_adv(struct __ctx_buff *ctx, int nh_off, */ if (ctx_load_bytes(ctx, nh_off + ICMP6_ND_OPTS, opts_old, sizeof(opts_old)) < 0) { + __be32 plen_old = 0; + __be32 plen = bpf_htonl(8); + if (icmp6_ndisc_adv_addopt(ctx) < 0) return DROP_INVALID; + + /* Account for the pseudoheader change in payload length */ + sum = csum_diff(&plen_old, sizeof(__be32), &plen, + sizeof(__be32), 0); } if (ctx_load_bytes(ctx, nh_off + sizeof(struct ipv6hdr), &icmp6hdr_old, @@ -171,11 +178,9 @@ int icmp6_send_ndisc_adv(struct __ctx_buff *ctx, int nh_off, sizeof(icmp6hdr), 0) < 0) return DROP_WRITE_ERROR; - /* fixup checksums */ - sum = csum_diff(&icmp6hdr_old, sizeof(icmp6hdr_old), - &icmp6hdr, sizeof(icmp6hdr), 0); - if (l4_csum_replace(ctx, csum_off, 0, sum, BPF_F_PSEUDO_HDR) < 0) - return DROP_CSUM_L4; + /* ICMPv6 header has changed */ + sum = csum_diff(&icmp6hdr_old, sizeof(icmp6hdr_old), &icmp6hdr, + sizeof(icmp6hdr), sum); /* get old options */ if (ctx_load_bytes(ctx, nh_off + ICMP6_ND_OPTS, opts_old, @@ -195,8 +200,8 @@ int icmp6_send_ndisc_adv(struct __ctx_buff *ctx, int nh_off, if (ctx_store_bytes(ctx, nh_off + ICMP6_ND_OPTS, opts, sizeof(opts), 0) < 0) return DROP_WRITE_ERROR; - /* fixup checksum */ - sum = csum_diff(opts_old, sizeof(opts_old), opts, sizeof(opts), 0); + /* Options have changed */ + sum = csum_diff(opts_old, sizeof(opts_old), opts, sizeof(opts), sum); if (l4_csum_replace(ctx, csum_off, 0, sum, BPF_F_PSEUDO_HDR) < 0) return DROP_CSUM_L4; From 8cf9e46bced5f90a93e9485100d4f6d9e9022614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Mon, 8 Sep 2025 20:04:06 +0200 Subject: [PATCH 172/176] bpf/scapy: fix ASSERT data vs __data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix ASSERT_CTX_BUF_OFF() implementation incorrectly accessing data (in stack) instead of __data (in the body of the assert). Move aux pointers to __DATA, __DATA_END to avoid this in the future. Signed-off-by: Marc Suñé --- bpf/tests/scapy.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bpf/tests/scapy.h b/bpf/tests/scapy.h index 7ee352de2d466..e462859a81532 100644 --- a/bpf/tests/scapy.h +++ b/bpf/tests/scapy.h @@ -40,15 +40,15 @@ */ #define ASSERT_CTX_BUF_OFF(NAME, FIRST_LAYER, CTX, OFF, BUF_NAME, LEN) \ do { \ - void *__data = (void *)(long)(CTX)->data; \ - void *__data_end = (void *)(long)(CTX)->data_end; \ - __data += OFF; \ + void *__DATA = (void *)(long)(CTX)->data; \ + void *__DATA_END = (void *)(long)(CTX)->data_end; \ + __DATA += OFF; \ bool ok = true; \ __u16 _len = LEN; \ \ - if (__data + (LEN) > __data_end) { \ + if (__DATA + (LEN) > __DATA_END) { \ ok = false; \ - _len = (__u16)(data_end - __data); \ + _len = (__u16)(__DATA_END - __DATA); \ test_log("CTX len (%d) - offset (%d) < LEN (%d)", \ _len + OFF, OFF, LEN); \ } \ @@ -57,7 +57,7 @@ test_log("Buffer '" #BUF_NAME "' of len (%d) < LEN" \ " (%d)", sizeof(BUF(BUF_NAME)), LEN); \ } \ - if (ok && memcmp(__data, &BUF(BUF_NAME), LEN) != 0) { \ + if (ok && memcmp(__DATA, &BUF(BUF_NAME), LEN) != 0) { \ ok = false; \ test_log("CTX and buffer '" #BUF_NAME \ "' content mismatch "); \ From e5e568a07467133c7945fb57c3eb54da33ab7423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Tue, 2 Sep 2025 20:48:51 +0200 Subject: [PATCH 173/176] bpf/tests: adapt IPv6 NDP to scapy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adapts the IPv6 NDP BPF unit test to scapy. Signed-off-by: Marc Suñé --- bpf/tests/ipv6_ndp_from_netdev_test.c | 537 ++++++++++++-------------- bpf/tests/scapy/pkt_defs.py | 64 +++ 2 files changed, 315 insertions(+), 286 deletions(-) diff --git a/bpf/tests/ipv6_ndp_from_netdev_test.c b/bpf/tests/ipv6_ndp_from_netdev_test.c index 48a8f5ae86a30..368b7888235b1 100644 --- a/bpf/tests/ipv6_ndp_from_netdev_test.c +++ b/bpf/tests/ipv6_ndp_from_netdev_test.c @@ -13,6 +13,8 @@ #include "lib/ipcache.h" #include "lib/endpoint.h" +#include "scapy.h" + #define FROM_NETDEV 0 ASSIGN_CONFIG(union macaddr, interface_mac, {.addr = mac_two_addr}) @@ -47,50 +49,46 @@ struct test_args { } __packed icmp_opt; }; -/* Generics */ +/* + * These tests make sure that ND packets directed to a Pod IP are answered + * directly from BPF. + */ + static __always_inline -int __ipv6_from_netdev_ns_pktgen(struct __ctx_buff *ctx, - struct test_args *args) +int __ipv6_from_netdev_ns_pod_setup(struct __ctx_buff *ctx) +{ + endpoint_v6_add_entry((union v6addr *)v6_pod_three, 0, 0, 0, 0, + (__u8 *)mac_three, (__u8 *)mac_two); + tail_call_static(ctx, entry_call_map, FROM_NETDEV); + return TEST_ERROR; +} + +PKTGEN("tc", "011_ipv6_from_netdev_ns_pod") +int ipv6_from_netdev_ns_pod_pktgen(struct __ctx_buff *ctx) { struct pktgen builder; - struct icmp6hdr *l4; - void *data; pktgen__init(&builder, ctx); - l4 = pktgen__push_ipv6_icmp6_packet(&builder, args->mac_src, - args->mac_dst, - (__u8 *)&args->ip_src, - (__u8 *)&args->ip_dst, - ICMP6_NS_MSG_TYPE); - if (!l4) - return TEST_ERROR; - - data = pktgen__push_data(&builder, (__u8 *)&args->icmp_ns_addr, - IPV6_ALEN); - if (!data) - return TEST_ERROR; - - if (args->llsrc_opt) { - data = pktgen__push_data(&builder, (__u8 *)&args->icmp_opt, - ICMP6_ND_OPT_LEN); - } + BUF_DECL(V6_NDP_POD_NS_LLOPT, v6_ndp_pod_ns_llopt); + BUILDER_PUSH_BUF(builder, V6_NDP_POD_NS_LLOPT); pktgen__finish(&builder); return 0; } -static __always_inline -int __ipv6_from_netdev_ns_check(const struct __ctx_buff *ctx, - struct test_args *args) +SETUP("tc", "011_ipv6_from_netdev_ns_pod") +int ipv6_from_netdev_ns_pod_setup(struct __ctx_buff *ctx) +{ + return __ipv6_from_netdev_ns_pod_setup(ctx); +} + +CHECK("tc", "011_ipv6_from_netdev_ns_pod") +int ipv6_from_netdev_ns_pod_check(const struct __ctx_buff *ctx) { void *data; void *data_end; __u32 *status_code; - struct ethhdr *l2; - struct ipv6hdr *l3; - struct icmp6hdr *l4; - void *target_addr, *opt; test_init(); @@ -101,164 +99,65 @@ int __ipv6_from_netdev_ns_check(const struct __ctx_buff *ctx, test_fatal("status code out of bounds"); status_code = data; - assert(*status_code == args->status_code); - - l2 = data + sizeof(*status_code); - - if ((void *)l2 + sizeof(struct ethhdr) > data_end) - test_fatal("l2 out of bounds"); - - if (l2->h_proto != bpf_htons(ETH_P_IPV6)) - test_fatal("l2 proto hasn't been set to ETH_P_IPV6"); - - if (memcmp(l2->h_source, (__u8 *)args->mac_src, ETH_ALEN) != 0) - test_fatal("Incorrect mac_src"); - - if (memcmp(l2->h_dest, (__u8 *)args->mac_dst, ETH_ALEN) != 0) - test_fatal("Incorrect mac_dst"); - - l3 = (void *)l2 + sizeof(struct ethhdr); - - if ((void *)l3 + sizeof(struct ipv6hdr) > data_end) - test_fatal("l3 out of bounds"); + assert(*status_code == CTX_ACT_REDIRECT); - if (memcmp((__u8 *)&l3->saddr, (__u8 *)&args->ip_src, IPV6_ALEN) != 0) - test_fatal("Incorrect ip_src"); - - if (memcmp((__u8 *)&l3->daddr, (__u8 *)&args->ip_dst, IPV6_ALEN) != 0) - test_fatal("Incorrect ip_dst"); - - l4 = (void *)l3 + sizeof(struct ipv6hdr); - - if ((void *)l4 + sizeof(struct icmp6hdr) > data_end) - test_fatal("l4 out of bounds"); - - if (l4->icmp6_type != args->icmp_type) - test_fatal("Invalid ICMP type"); - - target_addr = (void *)l4 + sizeof(struct icmp6hdr); - if ((void *)target_addr + IPV6_ALEN > data_end) - test_fatal("Target addr out of bounds"); - - if (memcmp(target_addr, (__u8 *)&args->icmp_ns_addr, IPV6_ALEN) != 0) - test_fatal("Incorrect icmp6 payload target addr"); - - if (args->llsrc_opt) { - opt = target_addr + IPV6_ALEN; - - if ((void *)opt + ICMP6_ND_OPT_LEN > data_end) - test_fatal("llsrc_opt out of bounds"); - - if (memcmp(opt, (__u8 *)&args->icmp_opt, ICMP6_ND_OPT_LEN) != 0) - test_fatal("Incorrect icmp6 payload type/length or target_lladdr"); - } + BUF_DECL(V6_NDP_POD_NA_LLOPT, v6_ndp_pod_na_llopt); + ASSERT_CTX_BUF_OFF("pod_na_ns_llopt_ok", "Ether", ctx, sizeof(__u32), + V6_NDP_POD_NA_LLOPT, + sizeof(BUF(V6_NDP_POD_NA_LLOPT))); test_finish(); -} -/* - * These tests make sure that ND packets directed to a Pod IP are answered - * directly from BPF. - */ - -static __always_inline -int __ipv6_from_netdev_ns_pod_setup(struct __ctx_buff *ctx) -{ - endpoint_v6_add_entry((union v6addr *)v6_pod_three, 0, 0, 0, 0, - (__u8 *)mac_three, (__u8 *)mac_two); - tail_call_static(ctx, entry_call_map, FROM_NETDEV); - return TEST_ERROR; -} - -static __always_inline -void __ipv6_from_netdev_ns_pod_pktgen_args(struct test_args *args, - bool llsrc_opt) -{ - __u8 llsrc_mac[] = {0x1, 0x1, 0x1, 0x1, 0x1, 0x1}; - - memcpy((__u8 *)args->mac_src, (__u8 *)mac_one, ETH_ALEN); - memcpy((__u8 *)args->mac_dst, (__u8 *)mac_two, ETH_ALEN); - - memcpy((__u8 *)&args->ip_src, (__u8 *)v6_pod_one, IPV6_ALEN); - memcpy((__u8 *)&args->ip_dst, (__u8 *)v6_pod_two, IPV6_ALEN); - - memcpy((__u8 *)&args->icmp_ns_addr, (__u8 *)v6_pod_three, IPV6_ALEN); - - args->llsrc_opt = llsrc_opt; - args->icmp_opt.type = 0x1; - args->icmp_opt.length = 0x1; - memcpy((__u8 *)args->icmp_opt.llsrc_mac, (__u8 *)llsrc_mac, ETH_ALEN); + return 0; } -static __always_inline -void __ipv6_from_netdev_ns_pod_check_args(struct test_args *args, - bool llsrc_opt) +PKTGEN("tc", "011_ipv6_from_netdev_ns_pod_noopt") +int ipv6_from_netdev_ns_pod_pktgen_noopt(struct __ctx_buff *ctx) { - union macaddr node_mac = THIS_INTERFACE_MAC; - - args->status_code = CTX_ACT_REDIRECT; - - memcpy((__u8 *)args->mac_src, (__u8 *)&node_mac.addr, ETH_ALEN); - memcpy((__u8 *)args->mac_dst, (__u8 *)mac_one, ETH_ALEN); - - memcpy((__u8 *)&args->ip_src, (__u8 *)v6_pod_three, IPV6_ALEN); - memcpy((__u8 *)&args->ip_dst, (__u8 *)v6_pod_one, IPV6_ALEN); + struct pktgen builder; - args->icmp_type = ICMP6_NA_MSG_TYPE; - memcpy((__u8 *)&args->icmp_ns_addr, (__u8 *)v6_pod_three, IPV6_ALEN); + pktgen__init(&builder, ctx); - args->llsrc_opt = llsrc_opt; - args->icmp_opt.type = 0x2; - args->icmp_opt.length = 0x1; - memcpy((__u8 *)args->icmp_opt.llsrc_mac, (__u8 *)&node_mac, ETH_ALEN); -} + BUF_DECL(V6_NDP_POD_NS, v6_ndp_pod_ns); + BUILDER_PUSH_BUF(builder, V6_NDP_POD_NS); -PKTGEN("tc", "011_ipv6_from_netdev_ns_pod") -int ipv6_from_netdev_ns_pod_pktgen(struct __ctx_buff *ctx) -{ - struct test_args args = {0}; + pktgen__finish(&builder); - __ipv6_from_netdev_ns_pod_pktgen_args(&args, true); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + return 0; } -SETUP("tc", "011_ipv6_from_netdev_ns_pod") -int ipv6_from_netdev_ns_pod_setup(struct __ctx_buff *ctx) +SETUP("tc", "011_ipv6_from_netdev_ns_pod_noopt") +int ipv6_from_netdev_ns_pod_setup_noopt(struct __ctx_buff *ctx) { return __ipv6_from_netdev_ns_pod_setup(ctx); } -CHECK("tc", "011_ipv6_from_netdev_ns_pod") -int ipv6_from_netdev_ns_pod_check(const struct __ctx_buff *ctx) +CHECK("tc", "011_ipv6_from_netdev_ns_pod_noopt") +int ipv6_from_netdev_ns_pod_check_noopt(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; - __ipv6_from_netdev_ns_pod_check_args(&args, true); - return __ipv6_from_netdev_ns_check(ctx, &args); -} + test_init(); -PKTGEN("tc", "011_ipv6_from_netdev_ns_pod_noopt") -int ipv6_from_netdev_ns_pod_pktgen_noopt(struct __ctx_buff *ctx) -{ - struct test_args args = {0}; + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; - __ipv6_from_netdev_ns_pod_pktgen_args(&args, false); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); -} + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); -SETUP("tc", "011_ipv6_from_netdev_ns_pod_noopt") -int ipv6_from_netdev_ns_pod_setup_noopt(struct __ctx_buff *ctx) -{ - return __ipv6_from_netdev_ns_pod_setup(ctx); -} + status_code = data; + assert(*status_code == CTX_ACT_REDIRECT); -CHECK("tc", "011_ipv6_from_netdev_ns_pod_noopt") -int ipv6_from_netdev_ns_pod_check_noopt(const struct __ctx_buff *ctx) -{ - struct test_args args = {0}; + /* Note we always return NA with llopt */ + BUF_DECL(V6_NDP_POD_NA_LLOPT_NS_NOOPT, v6_ndp_pod_na_llopt); + ASSERT_CTX_BUF_OFF("pod_na_ns_noopt_ok", "Ether", ctx, sizeof(__u32), + V6_NDP_POD_NA_LLOPT_NS_NOOPT, + sizeof(BUF(V6_NDP_POD_NA_LLOPT_NS_NOOPT))); + test_finish(); - __ipv6_from_netdev_ns_pod_check_args(&args, false); - return __ipv6_from_netdev_ns_check(ctx, &args); + return 0; } /* Bcast NS */ @@ -272,37 +171,19 @@ int __ipv6_from_netdev_ns_pod_setup_mcast(struct __ctx_buff *ctx) return TEST_ERROR; } -static __always_inline -void __ipv6_from_netdev_ns_pod_pktgen_mcast_args(struct test_args *args, - bool llsrc_opt) +PKTGEN("tc", "012_ipv6_from_netdev_ns_pod_mcast") +int ipv6_from_netdev_ns_pod_pktgen_mcast(struct __ctx_buff *ctx) { - __u8 llsrc_mac[] = {0x1, 0x1, 0x1, 0x1, 0x1, 0x1}; - - memcpy((__u8 *)args->mac_src, (__u8 *)mac_one, ETH_ALEN); - - ipv6_sol_mc_mac_set((union v6addr *)v6_pod_three, - (union macaddr *)args->mac_dst); - - memcpy((__u8 *)&args->ip_src, (__u8 *)v6_pod_one, IPV6_ALEN); - - ipv6_sol_mc_addr_set((union v6addr *)v6_pod_three, &args->ip_dst); - - memcpy((__u8 *)&args->icmp_ns_addr, (__u8 *)v6_pod_three, IPV6_ALEN); + struct pktgen builder; - args->llsrc_opt = llsrc_opt; - args->icmp_opt.type = 0x1; - args->icmp_opt.length = 0x1; - memcpy((__u8 *)args->icmp_opt.llsrc_mac, (__u8 *)llsrc_mac, ETH_ALEN); -} + pktgen__init(&builder, ctx); + BUF_DECL(V6_NDP_POD_NS_MCAST_LLOPT, v6_ndp_pod_ns_mcast_llopt); + BUILDER_PUSH_BUF(builder, V6_NDP_POD_NS_MCAST_LLOPT); -PKTGEN("tc", "012_ipv6_from_netdev_ns_pod_mcast") -int ipv6_from_netdev_ns_pod_pktgen_mcast(struct __ctx_buff *ctx) -{ - struct test_args args = {0}; + pktgen__finish(&builder); - __ipv6_from_netdev_ns_pod_pktgen_mcast_args(&args, true); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + return 0; } SETUP("tc", "012_ipv6_from_netdev_ns_pod_mcast") @@ -314,19 +195,44 @@ int ipv6_from_netdev_ns_pod_setup_mcast(struct __ctx_buff *ctx) CHECK("tc", "012_ipv6_from_netdev_ns_pod_mcast") int ipv6_from_netdev_ns_pod_check_mcast(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; + + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); + + status_code = data; + assert(*status_code == CTX_ACT_REDIRECT); + + /* Note we always return NA with llopt */ + BUF_DECL(V6_NDP_POD_NA_MCAST_NS_NOOPT, v6_ndp_pod_na_llopt); + ASSERT_CTX_BUF_OFF("pod_na_ns_mcast_ok", "Ether", ctx, sizeof(__u32), + V6_NDP_POD_NA_MCAST_NS_NOOPT, + sizeof(BUF(V6_NDP_POD_NA_MCAST_NS_NOOPT))); + test_finish(); - __ipv6_from_netdev_ns_pod_check_args(&args, true); - return __ipv6_from_netdev_ns_check(ctx, &args); + return 0; } PKTGEN("tc", "012_ipv6_from_netdev_ns_pod_mcast_noopt") int ipv6_from_netdev_ns_pod_pktgen_mcast_noopt(struct __ctx_buff *ctx) { - struct test_args args = {0}; + struct pktgen builder; + + pktgen__init(&builder, ctx); + + BUF_DECL(V6_NDP_POD_NS_MCAST, v6_ndp_pod_ns_mcast); + BUILDER_PUSH_BUF(builder, V6_NDP_POD_NS_MCAST); + + pktgen__finish(&builder); - __ipv6_from_netdev_ns_pod_pktgen_mcast_args(&args, false); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + return 0; } SETUP("tc", "012_ipv6_from_netdev_ns_pod_mcast_noopt") @@ -338,10 +244,30 @@ int ipv6_from_netdev_ns_pod_setup_mcast_noopt(struct __ctx_buff *ctx) CHECK("tc", "012_ipv6_from_netdev_ns_pod_mcast_noopt") int ipv6_from_netdev_ns_pod_check_mcast_noopt(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; - __ipv6_from_netdev_ns_pod_check_args(&args, false); - return __ipv6_from_netdev_ns_check(ctx, &args); + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); + + status_code = data; + assert(*status_code == CTX_ACT_REDIRECT); + + /* Note we always return NA with llopt */ + BUF_DECL(V6_NDP_POD_NA_MCAST_LLOPT, v6_ndp_pod_na_llopt); + ASSERT_CTX_BUF_OFF("pod_na_ns_mcast_noopt_ok", "Ether", ctx, + sizeof(__u32), + V6_NDP_POD_NA_MCAST_LLOPT, + sizeof(BUF(V6_NDP_POD_NA_MCAST_LLOPT))); + test_finish(); + + return 0; } /* @@ -359,45 +285,20 @@ int __ipv6_from_netdev_ns_node_ip_setup(struct __ctx_buff *ctx) return TEST_ERROR; } -static __always_inline -void __ipv6_from_netdev_ns_node_ip_pktgen_args(struct test_args *args, - bool llsrc_opt) -{ - __u8 llsrc_mac[] = {0x1, 0x1, 0x1, 0x1, 0x1, 0x1}; - - memcpy((__u8 *)args->mac_src, (__u8 *)mac_one, ETH_ALEN); - memcpy((__u8 *)args->mac_dst, (__u8 *)mac_two, ETH_ALEN); - - memcpy((__u8 *)&args->ip_src, (__u8 *)v6_pod_one, IPV6_ALEN); - memcpy((__u8 *)&args->ip_dst, (__u8 *)v6_pod_two, IPV6_ALEN); - - memcpy((__u8 *)&args->icmp_ns_addr, (__u8 *)&v6_node_one, IPV6_ALEN); - - args->icmp_type = ICMP6_NS_MSG_TYPE; - - args->llsrc_opt = llsrc_opt; - args->icmp_opt.type = 0x1; - args->icmp_opt.length = 0x1; - memcpy((__u8 *)args->icmp_opt.llsrc_mac, (__u8 *)llsrc_mac, ETH_ALEN); -} - -static __always_inline -void __ipv6_from_netdev_ns_node_ip_check_args(struct test_args *args, - bool llsrc_opt) -{ - /* Pkt is unmodified */ - __ipv6_from_netdev_ns_node_ip_pktgen_args(args, llsrc_opt); - args->status_code = CTX_ACT_OK; -} - /* With LL SRC option */ PKTGEN("tc", "0211_ipv6_from_netdev_ns_node_ip") int ipv6_from_netdev_ns_node_ip_pktgen(struct __ctx_buff *ctx) { - struct test_args args = {0}; + struct pktgen builder; + + pktgen__init(&builder, ctx); + + BUF_DECL(V6_NDP_NODE_NS_LLOPT, v6_ndp_node_ns_llopt); + BUILDER_PUSH_BUF(builder, V6_NDP_NODE_NS_LLOPT); + + pktgen__finish(&builder); - __ipv6_from_netdev_ns_node_ip_pktgen_args(&args, true); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + return 0; } SETUP("tc", "0211_ipv6_from_netdev_ns_node_ip") @@ -409,20 +310,46 @@ int ipv6_from_netdev_ns_node_ip_setup(struct __ctx_buff *ctx) CHECK("tc", "0211_ipv6_from_netdev_ns_node_ip") int ipv6_from_netdev_ns_node_ip_check(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; - __ipv6_from_netdev_ns_node_ip_check_args(&args, true); - return __ipv6_from_netdev_ns_check(ctx, &args); + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); + + status_code = data; + assert(*status_code == CTX_ACT_OK); + + /* Packet should not be modified */ + BUF_DECL(V6_NDP_NODE_NS_LLOPT_PASS, v6_ndp_node_ns_llopt); + ASSERT_CTX_BUF_OFF("node_ns_pass", "Ether", ctx, + sizeof(__u32), + V6_NDP_NODE_NS_LLOPT_PASS, + sizeof(BUF(V6_NDP_NODE_NS_LLOPT_PASS))); + test_finish(); + + return 0; } /* Without LL SRC option */ PKTGEN("tc", "0212_ipv6_from_netdev_ns_node_ip_noopt") int ipv6_from_netdev_ns_node_ip_pktgen_noopt(struct __ctx_buff *ctx) { - struct test_args args = {0}; + struct pktgen builder; - __ipv6_from_netdev_ns_node_ip_pktgen_args(&args, false); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + pktgen__init(&builder, ctx); + + BUF_DECL(V6_NDP_NODE_NS, v6_ndp_node_ns); + BUILDER_PUSH_BUF(builder, V6_NDP_NODE_NS); + + pktgen__finish(&builder); + + return 0; } SETUP("tc", "0212_ipv6_from_netdev_ns_node_ip_noopt") @@ -434,10 +361,30 @@ int ipv6_from_netdev_ns_node_ip_setup_noopt(struct __ctx_buff *ctx) CHECK("tc", "0212_ipv6_from_netdev_ns_node_ip_noopt") int ipv6_from_netdev_ns_node_ip_check_noopt(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; + + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); - __ipv6_from_netdev_ns_node_ip_check_args(&args, false); - return __ipv6_from_netdev_ns_check(ctx, &args); + status_code = data; + assert(*status_code == CTX_ACT_OK); + + /* Packet should not be modified */ + BUF_DECL(V6_NDP_NODE_NS_PASS, v6_ndp_node_ns); + ASSERT_CTX_BUF_OFF("node_ns_pass", "Ether", ctx, + sizeof(__u32), + V6_NDP_NODE_NS_PASS, + sizeof(BUF(V6_NDP_NODE_NS_PASS))); + test_finish(); + + return 0; } /* Bcast NS */ @@ -451,47 +398,19 @@ int __ipv6_from_netdev_ns_node_ip_setup_mcast(struct __ctx_buff *ctx) return TEST_ERROR; } -static __always_inline -void __ipv6_from_netdev_ns_node_ip_pktgen_mcast_args(struct test_args *args, - bool llsrc_opt) +PKTGEN("tc", "022_ipv6_from_netdev_ns_node_ip_mcast") +int ipv6_from_netdev_ns_node_ip_pktgen_mcast(struct __ctx_buff *ctx) { - __u8 llsrc_mac[] = {0x1, 0x1, 0x1, 0x1, 0x1, 0x1}; - - memcpy((__u8 *)args->mac_src, (__u8 *)mac_one, ETH_ALEN); - - ipv6_sol_mc_mac_set((union v6addr *)v6_pod_one, - (union macaddr *)args->mac_dst); - - memcpy((__u8 *)&args->ip_src, (__u8 *)v6_pod_one, IPV6_ALEN); - - ipv6_sol_mc_addr_set((union v6addr *)v6_pod_one, &args->ip_dst); + struct pktgen builder; - memcpy((__u8 *)&args->icmp_ns_addr, (__u8 *)&v6_node_one, IPV6_ALEN); + pktgen__init(&builder, ctx); - args->icmp_type = ICMP6_NS_MSG_TYPE; + BUF_DECL(V6_NDP_NODE_NS_MCAST_LLOPT, v6_ndp_node_ns_mcast_llopt); + BUILDER_PUSH_BUF(builder, V6_NDP_NODE_NS_MCAST_LLOPT); - args->llsrc_opt = llsrc_opt; - args->icmp_opt.type = 0x1; - args->icmp_opt.length = 0x1; - memcpy((__u8 *)args->icmp_opt.llsrc_mac, (__u8 *)llsrc_mac, ETH_ALEN); -} - -static __always_inline -void __ipv6_from_netdev_ns_node_ip_check_mcast_args(struct test_args *args, - bool llsrc_opt) -{ - /* Pkt is unmodified */ - __ipv6_from_netdev_ns_node_ip_pktgen_mcast_args(args, llsrc_opt); - args->status_code = CTX_ACT_OK; -} - -PKTGEN("tc", "022_ipv6_from_netdev_ns_node_ip_mcast") -int ipv6_from_netdev_ns_node_ip_pktgen_mcast(struct __ctx_buff *ctx) -{ - struct test_args args = {0}; + pktgen__finish(&builder); - __ipv6_from_netdev_ns_node_ip_pktgen_mcast_args(&args, true); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + return 0; } SETUP("tc", "022_ipv6_from_netdev_ns_node_ip_mcast") @@ -503,19 +422,45 @@ int ipv6_from_netdev_ns_node_ip_setup_mcast(struct __ctx_buff *ctx) CHECK("tc", "022_ipv6_from_netdev_ns_node_ip_mcast") int ipv6_from_netdev_ns_node_ip_check_mcast(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; + + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); - __ipv6_from_netdev_ns_node_ip_check_mcast_args(&args, true); - return __ipv6_from_netdev_ns_check(ctx, &args); + status_code = data; + assert(*status_code == CTX_ACT_OK); + + /* Packet should not be modified */ + BUF_DECL(V6_NDP_NODE_NS_MCAST_LLOPT_PASS, v6_ndp_node_ns_mcast_llopt); + ASSERT_CTX_BUF_OFF("node_ns_mcast_pass", "Ether", ctx, + sizeof(__u32), + V6_NDP_NODE_NS_MCAST_LLOPT_PASS, + sizeof(BUF(V6_NDP_NODE_NS_MCAST_LLOPT_PASS))); + test_finish(); + + return 0; } PKTGEN("tc", "022_ipv6_from_netdev_ns_node_ip_mcast_noopt") int ipv6_from_netdev_ns_node_ip_pktgen_mcast_noopt(struct __ctx_buff *ctx) { - struct test_args args = {0}; + struct pktgen builder; - __ipv6_from_netdev_ns_node_ip_pktgen_mcast_args(&args, false); - return __ipv6_from_netdev_ns_pktgen(ctx, &args); + pktgen__init(&builder, ctx); + + BUF_DECL(V6_NDP_NODE_NS_MCAST, v6_ndp_node_ns_mcast); + BUILDER_PUSH_BUF(builder, V6_NDP_NODE_NS_MCAST); + + pktgen__finish(&builder); + + return 0; } SETUP("tc", "022_ipv6_from_netdev_ns_node_ip_mcast_noopt") @@ -527,8 +472,28 @@ int ipv6_from_netdev_ns_node_ip_setup_mcast_noopt(struct __ctx_buff *ctx) CHECK("tc", "022_ipv6_from_netdev_ns_node_ip_mcast_noopt") int ipv6_from_netdev_ns_node_ip_check_mcast_noopt(const struct __ctx_buff *ctx) { - struct test_args args = {0}; + void *data; + void *data_end; + __u32 *status_code; - __ipv6_from_netdev_ns_node_ip_check_mcast_args(&args, false); - return __ipv6_from_netdev_ns_check(ctx, &args); + test_init(); + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + test_fatal("status code out of bounds"); + + status_code = data; + assert(*status_code == CTX_ACT_OK); + + /* Packet should not be modified */ + BUF_DECL(V6_NDP_NODE_NS_MCAST_PASS, v6_ndp_node_ns_mcast); + ASSERT_CTX_BUF_OFF("node_ns_mcast_noopt_pass", "Ether", ctx, + sizeof(__u32), + V6_NDP_NODE_NS_MCAST_PASS, + sizeof(BUF(V6_NDP_NODE_NS_MCAST_PASS))); + test_finish(); + + return 0; } diff --git a/bpf/tests/scapy/pkt_defs.py b/bpf/tests/scapy/pkt_defs.py index 5fcf3143b9d89..32c02c6ee6a43 100644 --- a/bpf/tests/scapy/pkt_defs.py +++ b/bpf/tests/scapy/pkt_defs.py @@ -82,6 +82,70 @@ def v6_get_ns_mac(v6_addr:str) -> str: # Test packet/buffer definitions +## IPv6 ndp from netdev +### Pod NS/NA +v6_ndp_pod_ns = ( + Ether(dst=mac_two, src=mac_one) / + IPv6(dst=v6_pod_two, src=v6_pod_one, hlim=255) / + ICMPv6ND_NS(tgt=v6_pod_three) +) + +v6_ndp_pod_ns_llopt = ( + v6_ndp_pod_ns / + ICMPv6NDOptSrcLLAddr(lladdr="01:01:01:01:01:01") +) + +v6_ndp_pod_na_llopt = ( + Ether(dst=mac_one, src=mac_two) / + IPv6(dst=v6_pod_one, src=v6_pod_three, hlim=255) / + ICMPv6ND_NA(R=0, S=1, O=1, tgt=v6_pod_three) / + ICMPv6NDOptDstLLAddr(lladdr=mac_two) +) + +v6_ndp_pod_ns_mmac = v6_get_ns_mac(v6_pod_three) +v6_ndp_pod_ns_ma = v6_get_ns_addr(v6_pod_three) +assert(v6_ndp_pod_ns_mmac == '33:33:ff:00:00:03') +assert(v6_ndp_pod_ns_ma == 'ff02::1:ff00:3') + +v6_ndp_pod_ns_mcast = ( + Ether(dst=v6_ndp_pod_ns_mmac, src=mac_one) / + IPv6(dst=v6_ndp_pod_ns_ma, src=v6_pod_one, hlim=255) / + ICMPv6ND_NS(tgt=v6_pod_three) +) + +v6_ndp_pod_ns_mcast_llopt = ( + v6_ndp_pod_ns_mcast / + ICMPv6NDOptSrcLLAddr(lladdr="01:01:01:01:01:01") +) + +### Node NS/NA +v6_ndp_node_ns = ( + Ether(dst=mac_two, src=mac_one) / + IPv6(dst=v6_pod_two, src=v6_pod_one, hlim=255) / + ICMPv6ND_NS(tgt=v6_node_one) +) + +v6_ndp_node_ns_llopt = ( + v6_ndp_node_ns / + ICMPv6NDOptSrcLLAddr(lladdr="01:01:01:01:01:01") +) + +v6_ndp_node_ns_mmac = v6_get_ns_mac(v6_node_one) +v6_ndp_node_ns_ma = v6_get_ns_addr(v6_node_one) +assert(v6_ndp_node_ns_mmac == '33:33:ff:00:00:01') +assert(v6_ndp_node_ns_ma == 'ff02::1:ff00:1') + +v6_ndp_node_ns_mcast = ( + Ether(dst=v6_ndp_node_ns_mmac, src=mac_one) / + IPv6(dst=v6_ndp_node_ns_ma, src=v6_pod_one, hlim=255) / + ICMPv6ND_NS(tgt=v6_node_one) +) + +v6_ndp_node_ns_mcast_llopt = ( + v6_ndp_node_ns_mcast / + ICMPv6NDOptSrcLLAddr(lladdr="01:01:01:01:01:01") +) + ## L2 announce (v4) l2_announce_arp_req = ( Ether(dst=mac_bcast, src=mac_one) / From 1795ab58d3944e70576828d68122061bea22aa87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Su=C3=B1=C3=A9?= Date: Mon, 8 Sep 2025 20:05:26 +0200 Subject: [PATCH 174/176] bpf/test: more cleanups on IPv6 NDP test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Create an auxiliary function that encapsulates the return code checks, reducing drastically the number of lines. Signed-off-by: Marc Suñé --- bpf/tests/ipv6_ndp_from_netdev_test.c | 124 ++++++-------------------- 1 file changed, 28 insertions(+), 96 deletions(-) diff --git a/bpf/tests/ipv6_ndp_from_netdev_test.c b/bpf/tests/ipv6_ndp_from_netdev_test.c index 368b7888235b1..9689b85140ed6 100644 --- a/bpf/tests/ipv6_ndp_from_netdev_test.c +++ b/bpf/tests/ipv6_ndp_from_netdev_test.c @@ -49,6 +49,26 @@ struct test_args { } __packed icmp_opt; }; +/* + * Generic + */ +static __always_inline +bool __check_ret_code(const struct __ctx_buff *ctx, const __u32 exp_rc) +{ + void *data; + void *data_end; + __u32 *status_code; + + data = (void *)(long)ctx->data; + data_end = (void *)(long)ctx->data_end; + + if (data + sizeof(*status_code) > data_end) + return false; + + status_code = data; + return *status_code == exp_rc; +} + /* * These tests make sure that ND packets directed to a Pod IP are answered * directly from BPF. @@ -86,20 +106,9 @@ int ipv6_from_netdev_ns_pod_setup(struct __ctx_buff *ctx) CHECK("tc", "011_ipv6_from_netdev_ns_pod") int ipv6_from_netdev_ns_pod_check(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_REDIRECT); + assert(__check_ret_code(ctx, CTX_ACT_REDIRECT)); BUF_DECL(V6_NDP_POD_NA_LLOPT, v6_ndp_pod_na_llopt); @@ -135,20 +144,9 @@ int ipv6_from_netdev_ns_pod_setup_noopt(struct __ctx_buff *ctx) CHECK("tc", "011_ipv6_from_netdev_ns_pod_noopt") int ipv6_from_netdev_ns_pod_check_noopt(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_REDIRECT); + assert(__check_ret_code(ctx, CTX_ACT_REDIRECT)); /* Note we always return NA with llopt */ BUF_DECL(V6_NDP_POD_NA_LLOPT_NS_NOOPT, v6_ndp_pod_na_llopt); @@ -195,20 +193,9 @@ int ipv6_from_netdev_ns_pod_setup_mcast(struct __ctx_buff *ctx) CHECK("tc", "012_ipv6_from_netdev_ns_pod_mcast") int ipv6_from_netdev_ns_pod_check_mcast(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_REDIRECT); + assert(__check_ret_code(ctx, CTX_ACT_REDIRECT)); /* Note we always return NA with llopt */ BUF_DECL(V6_NDP_POD_NA_MCAST_NS_NOOPT, v6_ndp_pod_na_llopt); @@ -244,20 +231,9 @@ int ipv6_from_netdev_ns_pod_setup_mcast_noopt(struct __ctx_buff *ctx) CHECK("tc", "012_ipv6_from_netdev_ns_pod_mcast_noopt") int ipv6_from_netdev_ns_pod_check_mcast_noopt(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_REDIRECT); + assert(__check_ret_code(ctx, CTX_ACT_REDIRECT)); /* Note we always return NA with llopt */ BUF_DECL(V6_NDP_POD_NA_MCAST_LLOPT, v6_ndp_pod_na_llopt); @@ -310,20 +286,9 @@ int ipv6_from_netdev_ns_node_ip_setup(struct __ctx_buff *ctx) CHECK("tc", "0211_ipv6_from_netdev_ns_node_ip") int ipv6_from_netdev_ns_node_ip_check(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_OK); + assert(__check_ret_code(ctx, CTX_ACT_OK)); /* Packet should not be modified */ BUF_DECL(V6_NDP_NODE_NS_LLOPT_PASS, v6_ndp_node_ns_llopt); @@ -361,20 +326,9 @@ int ipv6_from_netdev_ns_node_ip_setup_noopt(struct __ctx_buff *ctx) CHECK("tc", "0212_ipv6_from_netdev_ns_node_ip_noopt") int ipv6_from_netdev_ns_node_ip_check_noopt(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_OK); + assert(__check_ret_code(ctx, CTX_ACT_OK)); /* Packet should not be modified */ BUF_DECL(V6_NDP_NODE_NS_PASS, v6_ndp_node_ns); @@ -422,20 +376,9 @@ int ipv6_from_netdev_ns_node_ip_setup_mcast(struct __ctx_buff *ctx) CHECK("tc", "022_ipv6_from_netdev_ns_node_ip_mcast") int ipv6_from_netdev_ns_node_ip_check_mcast(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_OK); + assert(__check_ret_code(ctx, CTX_ACT_OK)); /* Packet should not be modified */ BUF_DECL(V6_NDP_NODE_NS_MCAST_LLOPT_PASS, v6_ndp_node_ns_mcast_llopt); @@ -472,20 +415,9 @@ int ipv6_from_netdev_ns_node_ip_setup_mcast_noopt(struct __ctx_buff *ctx) CHECK("tc", "022_ipv6_from_netdev_ns_node_ip_mcast_noopt") int ipv6_from_netdev_ns_node_ip_check_mcast_noopt(const struct __ctx_buff *ctx) { - void *data; - void *data_end; - __u32 *status_code; - test_init(); - data = (void *)(long)ctx->data; - data_end = (void *)(long)ctx->data_end; - - if (data + sizeof(*status_code) > data_end) - test_fatal("status code out of bounds"); - - status_code = data; - assert(*status_code == CTX_ACT_OK); + assert(__check_ret_code(ctx, CTX_ACT_OK)); /* Packet should not be modified */ BUF_DECL(V6_NDP_NODE_NS_MCAST_PASS, v6_ndp_node_ns_mcast); From 5024203a720f92c4044d178854265f6a4d5d0d6f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 24 Mar 2025 13:31:03 +0100 Subject: [PATCH 175/176] bpf: Fix handling of encrypted packets in bpf_host This commit fixes an issue for encrypted packets arriving in bpf_host. When checking that they are encrypted using the packet mark, we shouldn't expect the mark to be equal to MARK_MAGIC_DECRYPT. Instead, we should check that the MARK_MAGIC_DECRYPT bit is set. This issue isn't affecting anything today, but will once we support IPsec + BPF Host Routing. Fixes: 1dadae390ddb ("bpf: Don't skip local delivery for plain-text packets") Signed-off-by: Paul Chaignon --- bpf/bpf_host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c index 1425087dd78b2..8fe75baeb652e 100644 --- a/bpf/bpf_host.c +++ b/bpf/bpf_host.c @@ -1272,7 +1272,7 @@ int cil_from_netdev(struct __ctx_buff *ctx) * ignore the return value from do_decrypt. */ do_decrypt(ctx, proto); - if (ctx->mark == MARK_MAGIC_DECRYPT) + if ((ctx->mark & MARK_MAGIC_HOST_MASK) == MARK_MAGIC_DECRYPT) return CTX_ACT_OK; #endif ret = tcx_early_hook(ctx, proto); From d89617a383c2c10570780491426b3e3ebf0f75ab Mon Sep 17 00:00:00 2001 From: Stanislav Zaikin Date: Fri, 23 May 2025 13:56:19 +0200 Subject: [PATCH 176/176] bpf, dbg: add vtep policy for flexible routing from/to outside world Co-developed-by: Jarrod Baumann Signed-off-by: Jarrod Baumann Signed-off-by: Stanislav Zaikin --- Documentation/cmdref/cilium-agent.md | 1 + Documentation/cmdref/cilium-agent_hive.md | 1 + .../cmdref/cilium-agent_hive_dot-graph.md | 1 + Documentation/cmdref/cilium-dbg_bpf.md | 1 + .../cmdref/cilium-dbg_bpf_vtep-policy.md | 29 + .../cilium-dbg_bpf_vtep-policy_delete.md | 35 ++ .../cmdref/cilium-dbg_bpf_vtep-policy_list.md | 36 ++ .../cilium-dbg_bpf_vtep-policy_update.md | 35 ++ Documentation/crdlist.rst | 1 + bpf/bpf_alignchecker.c | 1 + bpf/bpf_lxc.c | 12 +- bpf/lib/vtep.h | 15 + bpf/node_config.h | 1 + bugtool/cmd/configuration.go | 1 + cilium-dbg/cmd/bpf_vtep_policy.go | 18 + cilium-dbg/cmd/bpf_vtep_policy_delete.go | 50 ++ cilium-dbg/cmd/bpf_vtep_policy_list.go | 68 +++ cilium-dbg/cmd/bpf_vtep_policy_update.go | 65 +++ cilium-dbg/cmd/post_uninstall_cleanup.go | 19 +- contrib/scripts/k8s-manifests-gen.sh | 3 +- contrib/testing/kind-values.yaml | 3 + daemon/cmd/cells.go | 4 + .../templates/cilium-agent/clusterrole.yaml | 1 + .../cilium-operator/clusterrole.yaml | 1 + .../cilium-preflight/clusterrole.yaml | 1 + pkg/datapath/bpf/probes_bpfeb.o | Bin 3104 -> 3136 bytes pkg/datapath/bpf/probes_bpfel.o | Bin 3104 -> 3136 bytes pkg/datapath/bpf/sockterm_bpfeb.o | Bin 9344 -> 9728 bytes pkg/datapath/bpf/sockterm_bpfel.o | Bin 9376 -> 9760 bytes pkg/datapath/linux/config/config.go | 2 + pkg/defaults/defaults.go | 5 +- .../crds/v2alpha1/ciliumvteppolicies.yaml | 266 +++++++++ pkg/k8s/apis/cilium.io/client/register.go | 12 + pkg/k8s/apis/cilium.io/v2alpha1/register.go | 9 + .../cilium.io/v2alpha1/vtep_policy_types.go | 97 ++++ .../v2alpha1/zz_generated.deepcopy.go | 140 +++++ .../v2alpha1/zz_generated.deepequal.go | 117 ++++ .../cilium.io/v2alpha1/cilium.io_client.go | 5 + .../cilium.io/v2alpha1/ciliumvteppolicy.go | 55 ++ .../v2alpha1/fake/fake_cilium.io_client.go | 4 + .../v2alpha1/fake/fake_ciliumvteppolicy.go | 39 ++ .../cilium.io/v2alpha1/generated_expansion.go | 2 + .../cilium.io/v2alpha1/ciliumvteppolicy.go | 88 +++ .../cilium.io/v2alpha1/interface.go | 7 + .../informers/externalversions/generic.go | 2 + .../cilium.io/v2alpha1/ciliumvteppolicy.go | 35 ++ .../cilium.io/v2alpha1/expansion_generated.go | 4 + pkg/k8s/synced/crd.go | 4 + pkg/k8s/watchers/watcher.go | 1 + pkg/logging/logfields/logfields.go | 9 + pkg/maps/cells.go | 4 + pkg/maps/vtep_policy/doc.go | 5 + pkg/maps/vtep_policy/policy.go | 12 + pkg/maps/vtep_policy/vtep.go | 192 +++++++ pkg/option/config.go | 3 +- pkg/vteppolicy/doc.go | 6 + pkg/vteppolicy/endpoint.go | 66 +++ pkg/vteppolicy/helpers_test.go | 164 ++++++ pkg/vteppolicy/manager.go | 485 ++++++++++++++++ pkg/vteppolicy/manager_privileged_test.go | 527 ++++++++++++++++++ pkg/vteppolicy/policy.go | 178 ++++++ pkg/vteppolicy/policy_test.go | 165 ++++++ pkg/vteppolicy/resource.go | 23 + 63 files changed, 3119 insertions(+), 17 deletions(-) create mode 100644 Documentation/cmdref/cilium-dbg_bpf_vtep-policy.md create mode 100644 Documentation/cmdref/cilium-dbg_bpf_vtep-policy_delete.md create mode 100644 Documentation/cmdref/cilium-dbg_bpf_vtep-policy_list.md create mode 100644 Documentation/cmdref/cilium-dbg_bpf_vtep-policy_update.md create mode 100644 cilium-dbg/cmd/bpf_vtep_policy.go create mode 100644 cilium-dbg/cmd/bpf_vtep_policy_delete.go create mode 100644 cilium-dbg/cmd/bpf_vtep_policy_list.go create mode 100644 cilium-dbg/cmd/bpf_vtep_policy_update.go create mode 100644 pkg/k8s/apis/cilium.io/client/crds/v2alpha1/ciliumvteppolicies.yaml create mode 100644 pkg/k8s/apis/cilium.io/v2alpha1/vtep_policy_types.go create mode 100644 pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/ciliumvteppolicy.go create mode 100644 pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_ciliumvteppolicy.go create mode 100644 pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/ciliumvteppolicy.go create mode 100644 pkg/k8s/client/listers/cilium.io/v2alpha1/ciliumvteppolicy.go create mode 100644 pkg/maps/vtep_policy/doc.go create mode 100644 pkg/maps/vtep_policy/policy.go create mode 100644 pkg/maps/vtep_policy/vtep.go create mode 100644 pkg/vteppolicy/doc.go create mode 100644 pkg/vteppolicy/endpoint.go create mode 100644 pkg/vteppolicy/helpers_test.go create mode 100644 pkg/vteppolicy/manager.go create mode 100644 pkg/vteppolicy/manager_privileged_test.go create mode 100644 pkg/vteppolicy/policy.go create mode 100644 pkg/vteppolicy/policy_test.go create mode 100644 pkg/vteppolicy/resource.go diff --git a/Documentation/cmdref/cilium-agent.md b/Documentation/cmdref/cilium-agent.md index cca30f965bd22..d7181c8a825cd 100644 --- a/Documentation/cmdref/cilium-agent.md +++ b/Documentation/cmdref/cilium-agent.md @@ -411,6 +411,7 @@ cilium-agent [flags] --vtep-endpoint strings List of VTEP IP addresses --vtep-mac strings List of VTEP MAC addresses for forwarding traffic outside the cluster --vtep-mask string VTEP CIDR Mask for all VTEP CIDRs (default "255.255.255.0") + --vtep-policy-reconciliation-trigger-interval duration Time between triggers of vtep policy state reconciliations (default 1s) --wireguard-persistent-keepalive duration The Wireguard keepalive interval as a Go duration string --write-cni-conf-when-ready string Write the CNI configuration to the specified path when agent is ready ``` diff --git a/Documentation/cmdref/cilium-agent_hive.md b/Documentation/cmdref/cilium-agent_hive.md index ab085774227f3..9612ce2c19bfc 100644 --- a/Documentation/cmdref/cilium-agent_hive.md +++ b/Documentation/cmdref/cilium-agent_hive.md @@ -234,6 +234,7 @@ cilium-agent hive [flags] --tunnel-source-port-range string Tunnel source port range hint (default 0-0) (default "0-0") --underlay-protocol string IP family for the underlay ("ipv4" or "ipv6") (default "ipv4") --use-full-tls-context If enabled, persist ca.crt keys into the Envoy config even in a terminatingTLS block on an L7 Cilium Policy. This is to enable compatibility with previously buggy behaviour. This flag is deprecated and will be removed in a future release. + --vtep-policy-reconciliation-trigger-interval duration Time between triggers of vtep policy state reconciliations (default 1s) --wireguard-persistent-keepalive duration The Wireguard keepalive interval as a Go duration string --write-cni-conf-when-ready string Write the CNI configuration to the specified path when agent is ready ``` diff --git a/Documentation/cmdref/cilium-agent_hive_dot-graph.md b/Documentation/cmdref/cilium-agent_hive_dot-graph.md index aade04620aa8c..7481b254c4e7f 100644 --- a/Documentation/cmdref/cilium-agent_hive_dot-graph.md +++ b/Documentation/cmdref/cilium-agent_hive_dot-graph.md @@ -239,6 +239,7 @@ cilium-agent hive dot-graph [flags] --tunnel-source-port-range string Tunnel source port range hint (default 0-0) (default "0-0") --underlay-protocol string IP family for the underlay ("ipv4" or "ipv6") (default "ipv4") --use-full-tls-context If enabled, persist ca.crt keys into the Envoy config even in a terminatingTLS block on an L7 Cilium Policy. This is to enable compatibility with previously buggy behaviour. This flag is deprecated and will be removed in a future release. + --vtep-policy-reconciliation-trigger-interval duration Time between triggers of vtep policy state reconciliations (default 1s) --wireguard-persistent-keepalive duration The Wireguard keepalive interval as a Go duration string --write-cni-conf-when-ready string Write the CNI configuration to the specified path when agent is ready ``` diff --git a/Documentation/cmdref/cilium-dbg_bpf.md b/Documentation/cmdref/cilium-dbg_bpf.md index ff6b015d73d6e..b5e6ae0f93f3b 100644 --- a/Documentation/cmdref/cilium-dbg_bpf.md +++ b/Documentation/cmdref/cilium-dbg_bpf.md @@ -43,4 +43,5 @@ Direct access to local BPF maps * [cilium-dbg bpf socknat](cilium-dbg_bpf_socknat.md) - Socket NAT operations * [cilium-dbg bpf srv6](cilium-dbg_bpf_srv6.md) - Manage the SRv6 routing rules * [cilium-dbg bpf vtep](cilium-dbg_bpf_vtep.md) - Manage the VTEP mappings for IP/CIDR <-> VTEP MAC/IP +* [cilium-dbg bpf vtep-policy](cilium-dbg_bpf_vtep-policy.md) - Manage the VTEP Policy mappings diff --git a/Documentation/cmdref/cilium-dbg_bpf_vtep-policy.md b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy.md new file mode 100644 index 0000000000000..fb5947ed6552c --- /dev/null +++ b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy.md @@ -0,0 +1,29 @@ + + +## cilium-dbg bpf vtep-policy + +Manage the VTEP Policy mappings + +### Options + +``` + -h, --help help for vtep-policy +``` + +### Options inherited from parent commands + +``` + --config string Config file (default is $HOME/.cilium.yaml) + -D, --debug Enable debug messages + -H, --host string URI to server-side API + --log-driver strings Logging endpoints to use (example: syslog) + --log-opt map Log driver options (example: format=json) +``` + +### SEE ALSO + +* [cilium-dbg bpf](cilium-dbg_bpf.md) - Direct access to local BPF maps +* [cilium-dbg bpf vtep-policy delete](cilium-dbg_bpf_vtep-policy_delete.md) - Delete VTEP Policy entries +* [cilium-dbg bpf vtep-policy list](cilium-dbg_bpf_vtep-policy_list.md) - List VTEP Policy entries +* [cilium-dbg bpf vtep-policy update](cilium-dbg_bpf_vtep-policy_update.md) - Update VTEP Policy entries + diff --git a/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_delete.md b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_delete.md new file mode 100644 index 0000000000000..0d6aa4f2c9af4 --- /dev/null +++ b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_delete.md @@ -0,0 +1,35 @@ + + +## cilium-dbg bpf vtep-policy delete + +Delete VTEP Policy entries + +### Synopsis + +Delete vtep entries using vtep CIDR. + + +``` +cilium-dbg bpf vtep-policy delete [flags] +``` + +### Options + +``` + -h, --help help for delete +``` + +### Options inherited from parent commands + +``` + --config string Config file (default is $HOME/.cilium.yaml) + -D, --debug Enable debug messages + -H, --host string URI to server-side API + --log-driver strings Logging endpoints to use (example: syslog) + --log-opt map Log driver options (example: format=json) +``` + +### SEE ALSO + +* [cilium-dbg bpf vtep-policy](cilium-dbg_bpf_vtep-policy.md) - Manage the VTEP Policy mappings + diff --git a/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_list.md b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_list.md new file mode 100644 index 0000000000000..aeb65423bd8ec --- /dev/null +++ b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_list.md @@ -0,0 +1,36 @@ + + +## cilium-dbg bpf vtep-policy list + +List VTEP Policy entries + +### Synopsis + +List VTEP CIDR and their corresponding VTEP MAC/IP. + + +``` +cilium-dbg bpf vtep-policy list [flags] +``` + +### Options + +``` + -h, --help help for list + -o, --output string json| yaml| jsonpath='{}' +``` + +### Options inherited from parent commands + +``` + --config string Config file (default is $HOME/.cilium.yaml) + -D, --debug Enable debug messages + -H, --host string URI to server-side API + --log-driver strings Logging endpoints to use (example: syslog) + --log-opt map Log driver options (example: format=json) +``` + +### SEE ALSO + +* [cilium-dbg bpf vtep-policy](cilium-dbg_bpf_vtep-policy.md) - Manage the VTEP Policy mappings + diff --git a/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_update.md b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_update.md new file mode 100644 index 0000000000000..2038f1b7ccceb --- /dev/null +++ b/Documentation/cmdref/cilium-dbg_bpf_vtep-policy_update.md @@ -0,0 +1,35 @@ + + +## cilium-dbg bpf vtep-policy update + +Update VTEP Policy entries + +### Synopsis + +Create/Update vtep entry. + + +``` +cilium-dbg bpf vtep-policy update [flags] +``` + +### Options + +``` + -h, --help help for update +``` + +### Options inherited from parent commands + +``` + --config string Config file (default is $HOME/.cilium.yaml) + -D, --debug Enable debug messages + -H, --host string URI to server-side API + --log-driver strings Logging endpoints to use (example: syslog) + --log-opt map Log driver options (example: format=json) +``` + +### SEE ALSO + +* [cilium-dbg bpf vtep-policy](cilium-dbg_bpf_vtep-policy.md) - Manage the VTEP Policy mappings + diff --git a/Documentation/crdlist.rst b/Documentation/crdlist.rst index 971eafd541e51..6830a62635db4 100644 --- a/Documentation/crdlist.rst +++ b/Documentation/crdlist.rst @@ -20,3 +20,4 @@ - CiliumNode - CiliumNodeConfig - CiliumPodIPPool +- CiliumVtepPolicy diff --git a/bpf/bpf_alignchecker.c b/bpf/bpf_alignchecker.c index c52673397669e..1c2aac4a5cc51 100644 --- a/bpf/bpf_alignchecker.c +++ b/bpf/bpf_alignchecker.c @@ -71,6 +71,7 @@ add_type(struct egress_gw_policy_entry); add_type(struct egress_gw_policy_key6); add_type(struct egress_gw_policy_entry6); add_type(struct vtep_key); +add_type(struct vtep_policy_key); add_type(struct vtep_value); add_type(struct srv6_vrf_key4); add_type(struct srv6_vrf_key6); diff --git a/bpf/bpf_lxc.c b/bpf/bpf_lxc.c index 00ff8e0cde39e..a028c282a1ed1 100644 --- a/bpf/bpf_lxc.c +++ b/bpf/bpf_lxc.c @@ -1250,12 +1250,20 @@ static __always_inline int handle_ipv4_from_lxc(struct __ctx_buff *ctx, __u32 *d { struct remote_endpoint_info fake_info = {0}; struct vtep_key vkey = {}; + struct vtep_policy_key vpkey = {.prefixlen = 64, .src_ip = ip4->saddr, .dst_ip = ip4->daddr, }; struct vtep_value *vtep; vkey.vtep_ip = ip4->daddr & VTEP_MASK; vtep = map_lookup_elem(&cilium_vtep_map, &vkey); - if (!vtep) - goto skip_vtep; + if (!vtep) { + if (!info || info->sec_identity == WORLD_IPV4_ID) { + vtep = map_lookup_elem(&cilium_vtep_policy_map, &vpkey); + if (!vtep) + goto skip_vtep; + } else { + goto skip_vtep; + } + } if (vtep->vtep_mac && vtep->tunnel_endpoint) { if (eth_store_daddr(ctx, (__u8 *)&vtep->vtep_mac, 0) < 0) diff --git a/bpf/lib/vtep.h b/bpf/lib/vtep.h index 7111b5c0aa853..63d4445d784a3 100644 --- a/bpf/lib/vtep.h +++ b/bpf/lib/vtep.h @@ -11,6 +11,12 @@ struct vtep_key { __u32 vtep_ip; }; +struct vtep_policy_key { + __u32 prefixlen; + __u32 src_ip; + __u32 dst_ip; +}; + struct vtep_value { __u64 vtep_mac; __u32 tunnel_endpoint; @@ -25,4 +31,13 @@ struct { __uint(max_entries, VTEP_MAP_SIZE); __uint(map_flags, CONDITIONAL_PREALLOC); } cilium_vtep_map __section_maps_btf; + +struct { + __uint(type, BPF_MAP_TYPE_LPM_TRIE); + __type(key, struct vtep_policy_key); + __type(value, struct vtep_value); + __uint(pinning, LIBBPF_PIN_BY_NAME); + __uint(max_entries, VTEP_POLICY_MAP_SIZE); + __uint(map_flags, BPF_F_NO_PREALLOC); +} cilium_vtep_policy_map __section_maps_btf; #endif /* ENABLE_VTEP */ diff --git a/bpf/node_config.h b/bpf/node_config.h index 1748ad0445b7c..44bef60267b69 100644 --- a/bpf/node_config.h +++ b/bpf/node_config.h @@ -117,6 +117,7 @@ #define THROTTLE_MAP_SIZE 65536 #define ENABLE_ARP_RESPONDER #define VTEP_MAP_SIZE 8 +#define VTEP_POLICY_MAP_SIZE 16384 #define ENDPOINTS_MAP_SIZE 65536 #define METRICS_MAP_SIZE 65536 #define CILIUM_NET_MAC { .addr = { 0xce, 0x72, 0xa7, 0x03, 0x88, 0x57 } } diff --git a/bugtool/cmd/configuration.go b/bugtool/cmd/configuration.go index 5761d70817a7b..5c147c6dbcc2d 100644 --- a/bugtool/cmd/configuration.go +++ b/bugtool/cmd/configuration.go @@ -130,6 +130,7 @@ var bpfMapsPath = []string{ "tc/globals/cilium_snat_v4_external", "tc/globals/cilium_snat_v6_external", "tc/globals/cilium_vtep_map", + "tc/globals/cilium_vtep_policy_map", "tc/globals/cilium_l2_responder_v4", "tc/globals/cilium_ratelimit", "tc/globals/cilium_ratelimit_metrics", diff --git a/cilium-dbg/cmd/bpf_vtep_policy.go b/cilium-dbg/cmd/bpf_vtep_policy.go new file mode 100644 index 0000000000000..b583461bc68d0 --- /dev/null +++ b/cilium-dbg/cmd/bpf_vtep_policy.go @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package cmd + +import ( + "github.com/spf13/cobra" +) + +// BPFVtepPolicyCmd represents the bpf command +var BPFVtepPolicyCmd = &cobra.Command{ + Use: "vtep-policy", + Short: "Manage the VTEP Policy mappings", +} + +func init() { + BPFCmd.AddCommand(BPFVtepPolicyCmd) +} diff --git a/cilium-dbg/cmd/bpf_vtep_policy_delete.go b/cilium-dbg/cmd/bpf_vtep_policy_delete.go new file mode 100644 index 0000000000000..306dc2e3993b2 --- /dev/null +++ b/cilium-dbg/cmd/bpf_vtep_policy_delete.go @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package cmd + +import ( + "net/netip" + + "github.com/spf13/cobra" + + "github.com/cilium/cilium/pkg/common" + "github.com/cilium/cilium/pkg/maps/vtep_policy" +) + +const ( + vtepPolicyDelUsage = "Delete vtep entries using vtep CIDR.\n" +) + +var bpfVtepPolicyDeleteCmd = &cobra.Command{ + Args: cobra.ExactArgs(2), + Use: "delete", + Short: "Delete VTEP Policy entries", + Long: vtepPolicyDelUsage, + Run: func(cmd *cobra.Command, args []string) { + common.RequireRootPrivilege("cilium bpf vtep-policy delete ") + + vtep, err := vtep_policy.OpenPinnedVtepPolicyMap(log) + if err != nil { + Fatalf("Unable to open map: %s", err) + } + + src_ip, err := netip.ParseAddr(args[0]) + if err != nil { + Fatalf("Unable to parse IP '%s'", args[0]) + } + + dst_cidr, err := netip.ParsePrefix(args[1]) + if err != nil { + Fatalf("error parsing cidr %s: %s", args[1], err) + } + + if err := vtep.RemoveVtepPolicyMapping(src_ip, dst_cidr); err != nil { + Fatalf("error deleting contents of map: %s\n", err) + } + }, +} + +func init() { + BPFVtepPolicyCmd.AddCommand(bpfVtepPolicyDeleteCmd) +} diff --git a/cilium-dbg/cmd/bpf_vtep_policy_list.go b/cilium-dbg/cmd/bpf_vtep_policy_list.go new file mode 100644 index 0000000000000..d3d1dd8b4d734 --- /dev/null +++ b/cilium-dbg/cmd/bpf_vtep_policy_list.go @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package cmd + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" + + "github.com/cilium/cilium/pkg/command" + "github.com/cilium/cilium/pkg/common" + "github.com/cilium/cilium/pkg/maps/vtep_policy" +) + +const ( + vtepPolicyCidrTitle = "SourceIP DestinationCIDR" + vtepPolicyTitle = "VTEP IP/MAC" +) + +var ( + vtepPolicyListUsage = "List VTEP CIDR and their corresponding VTEP MAC/IP.\n" +) + +var bpfVtepPolicyListCmd = &cobra.Command{ + Use: "list", + Aliases: []string{"ls"}, + Short: "List VTEP Policy entries", + Long: vtepPolicyListUsage, + Run: func(cmd *cobra.Command, args []string) { + common.RequireRootPrivilege("cilium bpf vtep-policy list") + + vtep, err := vtep_policy.OpenPinnedVtepPolicyMap(log) + if err != nil { + Fatalf("Unable to open map: %s", err) + } + + bpfVtepList := make(map[string][]string) + parse := func(key *vtep_policy.VtepPolicyKey, val *vtep_policy.VtepPolicyVal) { + bpfVtepList[key.String()] = append(bpfVtepList[key.String()], val.VtepIp.String()) + bpfVtepList[key.String()] = append(bpfVtepList[key.String()], val.Mac.String()) + } + + if err := vtep.IterateWithCallback(parse); err != nil { + Fatalf("Error dumping contents of egress policy map: %s\n", err) + } + + if command.OutputOption() { + if err := command.PrintOutput(bpfVtepList); err != nil { + fmt.Fprintf(os.Stderr, "error getting output of map in %s: %s\n", command.OutputOptionString(), err) + os.Exit(1) + } + return + } + + if len(bpfVtepList) == 0 { + fmt.Fprintf(os.Stderr, "No entries found.\n") + } else { + TablePrinter(vtepPolicyCidrTitle, vtepPolicyTitle, bpfVtepList) + } + }, +} + +func init() { + BPFVtepPolicyCmd.AddCommand(bpfVtepPolicyListCmd) + command.AddOutputOption(bpfVtepPolicyListCmd) +} diff --git a/cilium-dbg/cmd/bpf_vtep_policy_update.go b/cilium-dbg/cmd/bpf_vtep_policy_update.go new file mode 100644 index 0000000000000..f491ae5e310df --- /dev/null +++ b/cilium-dbg/cmd/bpf_vtep_policy_update.go @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package cmd + +import ( + "fmt" + "net/netip" + "os" + + "github.com/spf13/cobra" + + "github.com/cilium/cilium/pkg/common" + "github.com/cilium/cilium/pkg/mac" + "github.com/cilium/cilium/pkg/maps/vtep_policy" +) + +const ( + vtepPolUpdateUsage = "Create/Update vtep entry.\n" +) + +var bpfVtepPolicyUpdateCmd = &cobra.Command{ + Args: cobra.ExactArgs(4), + Use: "update", + Short: "Update VTEP Policy entries", + Aliases: []string{"add"}, + Long: vtepPolUpdateUsage, + Run: func(cmd *cobra.Command, args []string) { + common.RequireRootPrivilege("cilium bpf vtep-policy update ") + + vtep, err := vtep_policy.OpenPinnedVtepPolicyMap(log) + if err != nil { + Fatalf("Unable to open map: %s", err) + } + + src_ip, err := netip.ParseAddr(args[0]) + if err != nil { + Fatalf("Unable to parse IP '%s'", args[0]) + } + + dst_cidr, err := netip.ParsePrefix(args[1]) + if err != nil { + Fatalf("error parsing cidr %s: %s", args[1], err) + } + + vtep_ip, err := netip.ParseAddr(args[2]) + if err != nil { + Fatalf("Unable to parse IP '%s'", args[2]) + } + + rmac, err := mac.ParseMAC(args[3]) + if err != nil { + Fatalf("Unable to parse vtep mac '%s'", args[3]) + } + + if err := vtep.UpdateVtepPolicyMapping(src_ip, dst_cidr, vtep_ip, rmac); err != nil { + fmt.Fprintf(os.Stderr, "error updating contents of map: %s\n", err) + os.Exit(1) + } + }, +} + +func init() { + BPFVtepPolicyCmd.AddCommand(bpfVtepPolicyUpdateCmd) +} diff --git a/cilium-dbg/cmd/post_uninstall_cleanup.go b/cilium-dbg/cmd/post_uninstall_cleanup.go index 3db5fef33bad6..59a7fcaacd632 100644 --- a/cilium-dbg/cmd/post_uninstall_cleanup.go +++ b/cilium-dbg/cmd/post_uninstall_cleanup.go @@ -60,16 +60,15 @@ const ( ) const ( - ciliumLinkPrefix = "cilium_" - ciliumNetNSPrefix = "cilium-" - hostLinkPrefix = "lxc" - hostLinkLen = len(hostLinkPrefix + "XXXXX") - cniPath = "/etc/cni/net.d" - cniConfigV1 = cniPath + "/10-cilium-cni.conf" - cniConfigV2 = cniPath + "/00-cilium-cni.conf" - cniConfigV3 = cniPath + "/05-cilium-cni.conf" - cniConfigV4 = cniPath + "/05-cilium.conf" - cniConfigV5 = cniPath + "/05-cilium.conflist" + ciliumLinkPrefix = "cilium_" + hostLinkPrefix = "lxc" + hostLinkLen = len(hostLinkPrefix + "XXXXX") + cniPath = "/etc/cni/net.d" + cniConfigV1 = cniPath + "/10-cilium-cni.conf" + cniConfigV2 = cniPath + "/00-cilium-cni.conf" + cniConfigV3 = cniPath + "/05-cilium-cni.conf" + cniConfigV4 = cniPath + "/05-cilium.conf" + cniConfigV5 = cniPath + "/05-cilium.conflist" ) func init() { diff --git a/contrib/scripts/k8s-manifests-gen.sh b/contrib/scripts/k8s-manifests-gen.sh index ffb18e7be5cad..22f8414cff636 100755 --- a/contrib/scripts/k8s-manifests-gen.sh +++ b/contrib/scripts/k8s-manifests-gen.sh @@ -40,7 +40,8 @@ CRDS_CILIUM_V2ALPHA1="ciliumendpointslices \ ciliumbgppeeringpolicies \ ciliuml2announcementpolicies \ ciliumpodippools \ - ciliumgatewayclassconfigs" + ciliumgatewayclassconfigs \ + ciliumvteppolicies" TMPDIR=$(mktemp -d -t cilium.tmpXXXXXXXX) go run sigs.k8s.io/controller-tools/cmd/controller-gen ${CRD_OPTIONS} paths="${CRD_PATHS}" output:crd:artifacts:config="${TMPDIR}" diff --git a/contrib/testing/kind-values.yaml b/contrib/testing/kind-values.yaml index 9be35a51f3fe0..29473b60e2692 100644 --- a/contrib/testing/kind-values.yaml +++ b/contrib/testing/kind-values.yaml @@ -6,3 +6,6 @@ operator: override: "localhost:5000/cilium/operator-generic:local" pullPolicy: Never suffix: "" +vtep: + enabled: true + mask: "255.255.255.0" diff --git a/daemon/cmd/cells.go b/daemon/cmd/cells.go index 587aee65dc922..80730fa5e69af 100644 --- a/daemon/cmd/cells.go +++ b/daemon/cmd/cells.go @@ -81,6 +81,7 @@ import ( "github.com/cilium/cilium/pkg/source" "github.com/cilium/cilium/pkg/status" "github.com/cilium/cilium/pkg/svcrouteconfig" + "github.com/cilium/cilium/pkg/vteppolicy" ) var ( @@ -345,6 +346,9 @@ var ( debugapi.Cell, svcrouteconfig.Cell, + + // VTEP Policy allows two-way communication with an external VXLAN gateway + vteppolicy.Cell, ) ) diff --git a/install/kubernetes/cilium/templates/cilium-agent/clusterrole.yaml b/install/kubernetes/cilium/templates/cilium-agent/clusterrole.yaml index 6aef1b2123ddd..119d0bd73e2a2 100644 --- a/install/kubernetes/cilium/templates/cilium-agent/clusterrole.yaml +++ b/install/kubernetes/cilium/templates/cilium-agent/clusterrole.yaml @@ -117,6 +117,7 @@ rules: - ciliumcidrgroups - ciliuml2announcementpolicies - ciliumpodippools + - ciliumvteppolicies verbs: - list - watch diff --git a/install/kubernetes/cilium/templates/cilium-operator/clusterrole.yaml b/install/kubernetes/cilium/templates/cilium-operator/clusterrole.yaml index 4cdf386df8b4e..82c65e4019616 100644 --- a/install/kubernetes/cilium/templates/cilium-operator/clusterrole.yaml +++ b/install/kubernetes/cilium/templates/cilium-operator/clusterrole.yaml @@ -262,6 +262,7 @@ rules: - ciliuml2announcementpolicies.cilium.io - ciliumpodippools.cilium.io - ciliumgatewayclassconfigs.cilium.io + - ciliumvteppolicies.cilium.io - apiGroups: - cilium.io resources: diff --git a/install/kubernetes/cilium/templates/cilium-preflight/clusterrole.yaml b/install/kubernetes/cilium/templates/cilium-preflight/clusterrole.yaml index 9a2c06153c6ec..abfaf9c3d8986 100644 --- a/install/kubernetes/cilium/templates/cilium-preflight/clusterrole.yaml +++ b/install/kubernetes/cilium/templates/cilium-preflight/clusterrole.yaml @@ -117,6 +117,7 @@ rules: - ciliumcidrgroups - ciliuml2announcementpolicies - ciliumpodippools + - ciliumvteppolicies verbs: - list - watch diff --git a/pkg/datapath/bpf/probes_bpfeb.o b/pkg/datapath/bpf/probes_bpfeb.o index 50d9bb6738831cf185a754a005fcb9ca396dc5ec..a299a04f179529bfb9bed8668808ecfe8b4ecda7 100644 GIT binary patch delta 109 zcmZ1=aX?~%K4Zg117UX7ISdR88zy_OD>HIV&S4McEnr|^+y@i`gUx%`O&B?#oCA|z za9m^J6xw`%)1Gm1JvYZ>c5Vm83zI##%{hU(z+l1T4sJ6hPJzh>xb2uY7$)&3003wN B7*YTL delta 81 zcmV-X0IvVQ7@!!CF9Be&FcSv_i~s-tpp!@kBLN7LYzI@b&j&F9lMo5c0toW6;0Zqg n0Z@}53r7LKlV}S!lOGER0g#iZ3pN4>@RQ&RJ^}~ulOPNr$1E5H diff --git a/pkg/datapath/bpf/probes_bpfel.o b/pkg/datapath/bpf/probes_bpfel.o index 557b6377c934b7a64aa2ca194fa69184a07065f4..53c3bfb6f7dd2207d92471aac9d38934754c50cd 100644 GIT binary patch delta 109 zcmZ1=aX?~%24llUO>uVCISdR88z#H5D>HIV&SVefD**EMF#-uN*u0C~jFIucgu|Q&i24liTO>uVC9tH-61(RLbl^HoEXR-%xKErOpI9Y)61k)#u&9^x17#Ra5 tOLDt29+;fSZO)m%0aOhH6DBX@HfQ|+;!S4c5uW^kTZ8EX`(!B|H2{*n7%u<- diff --git a/pkg/datapath/bpf/sockterm_bpfeb.o b/pkg/datapath/bpf/sockterm_bpfeb.o index a0d4572befef43a5bdab03b9d4787fd8c7314717..8c73e593ea7563a71a782a2677c8a674c0b8968c 100644 GIT binary patch delta 1442 zcmb7^zi-n(6vyA4;}B8;YSN@8;fIq{!eXEWq9{Y5RS^)R3=9>@fRsuVk|p{FWU4bT zc&vB~89HS2T17(Hpn@SI5*<1sCQEc+?8v*=QOU z3(rL!kBj%H+xKFk+XvO{4t^{>*E=5P@vNkGlxwQvZ9H9lp>>s;c}!Vvu8SrB7&K{! z48FE%PsKXr=1d_eis~sGdc;;4XnK|M*e?Tgtv{Zs60u`M@v6pC%CqrQa+e;OUv3lU zXvX!@rCjqvn^^P1h?w>F^n(B0z`TezNKvGbR#6=wzIyr=RwvTe>GjgtGulbPP~U-G z;4@yzDdAV4!ZWdO@y}MOW z>Fn%0?lpkIqbNL#!bY!wr)C?!*_EvQg-U6NCm7nFW!b?|^-z}mv0d8|BE-G=OA%mD kZ)Pj%7BtKOhV`bjCupy2Rf9+r1B&WrbtU52zl2Jye{F_y(*OVf delta 1095 zcmb8uJxszt6ae76YfCD|805#pnov+oCw~%yZjulc6DD0cn8@JJ#KFbE$+F3&$y*p1 zSq+I{GjU>ca9~rJ7@V9KeHS5KUtE02Yv1?o(K{e*)EY%wh3Yz`M<<||{C4Ki8b zYjB$ELM~N@yVMI@rt9#QUd67NQC$aynSIzjy1 zs74!xPaF_m6E}%l#2w;Z#33{Kkp?pc#3SNy)TT`=i9O<7-68&0RlR}si38$m;wEv6 zxI^62e2%r**BZ(L;t}yUYRe{;Q_m$9QtA0*_sPw3c(y7~DLC=m87^b+JOqVDk*$Ke zawD>xZhK{qa~s}Q54i_ku@qnOeo8v|2P AKmY&$ diff --git a/pkg/datapath/bpf/sockterm_bpfel.o b/pkg/datapath/bpf/sockterm_bpfel.o index ce79edf5eb716a82a5e380aff1884d1cbbdaf0ed..50cbdc31c99e7f80576133e79699d19d175cd538 100644 GIT binary patch delta 1454 zcmbW$KWGzC7y$6^y)^Yw39+V0&qQjj4SLj}{)sjOEYhHykikJP(4j3ZL0pCC;E6cI zP573K8E*|ij83{`Ea;HUX6xXfP8t2a+-q|A1_wWQJbvH%-goa^a-9dA+Iv?Q*1MaF z>G-2KKnriBt7;Qpq(A->rO0d9*sM`mS&vNGNR*K?zo2CY*lpqofTb+n!2vxXtgRjJNDzH+jK&J7@Sl1)V^HVnlMh} z^ekLc)~BOI!!h-Jjc@EfzC~++S?84mjU(eFnt2?U);w|jL(`I-q|r1!t@kL$aa#Y6 z{{DYG;3xfX91Aq~Knsg3ektLBFBGvG6Zpi~CYcTGDI_yTavp`{2zdpf21HZVI=A+roixf6hL@U@ieL6h09i z3tN13is>5=c7@AP)APZLCdhT+hHz83CEOMcg!>Wue3?Nc!5#{q2#3TR_+b`iLeh-fe zcH&2Yu0e4JmGe=1IsELr(m}3QS>I9G%Hzw8`zpY%8{3I`KCFC=s<^F(1*{Zz+<|S9 R{6$glbcP0h${c1H{sP1Bb6fxb delta 1111 zcmbW$ze@sf6aet=T`6Y~q34fN6Mx6i(iBRB7(!g&P+;IFv4m#;8?ym=;|AG0s?rv-qx`wot{SplNddE`BasBYSJ}5|$^-Q|1}7LQBF}&excA z=Azq{Fx&-EXKpf^%x&flbB}r8vL(dGRlp~}JY}9SE3|dz6JXYvi%#SHh2boq>N zlex{@VeT;x9KN8}IdT-p6Xq%Nj9GDftu$X_-tY&4p-r{_l1fYP<|#uXqxq~Pc4DNV zm3fkzQP|I3%cE$2m@P@N9)r)^k)*?6zTh)si%tQpd_gvoFwB>9Lt7M6j$fBvjAHlN G!{QrKK~>fO diff --git a/pkg/datapath/linux/config/config.go b/pkg/datapath/linux/config/config.go index 6b4324ca207af..afb8a6485b869 100644 --- a/pkg/datapath/linux/config/config.go +++ b/pkg/datapath/linux/config/config.go @@ -48,6 +48,7 @@ import ( "github.com/cilium/cilium/pkg/maps/nodemap" "github.com/cilium/cilium/pkg/maps/policymap" "github.com/cilium/cilium/pkg/maps/vtep" + "github.com/cilium/cilium/pkg/maps/vtep_policy" "github.com/cilium/cilium/pkg/netns" "github.com/cilium/cilium/pkg/option" wgtypes "github.com/cilium/cilium/pkg/wireguard/types" @@ -588,6 +589,7 @@ func (h *HeaderfileWriter) WriteNodeConfig(w io.Writer, cfg *datapath.LocalNodeC } cDefinesMap["VTEP_MAP_SIZE"] = fmt.Sprintf("%d", vtep.MaxEntries) + cDefinesMap["VTEP_POLICY_MAP_SIZE"] = fmt.Sprintf("%d", vtep_policy.MaxEntries) vlanFilter, err := vlanFilterMacros(nativeDevices) if err != nil { diff --git a/pkg/defaults/defaults.go b/pkg/defaults/defaults.go index cde7f66b678d0..94d6a2b14b09d 100644 --- a/pkg/defaults/defaults.go +++ b/pkg/defaults/defaults.go @@ -479,8 +479,9 @@ const ( TunnelPortGeneve uint16 = 6081 // EnableVTEP enables VXLAN Tunnel Endpoint (VTEP) Integration - EnableVTEP = false - MaxVTEPDevices = 8 + EnableVTEP = false + MaxVTEPDevices = 8 + MaxVtepPolicyEntries = 16384 // Enable BGP control plane features. EnableBGPControlPlane = false diff --git a/pkg/k8s/apis/cilium.io/client/crds/v2alpha1/ciliumvteppolicies.yaml b/pkg/k8s/apis/cilium.io/client/crds/v2alpha1/ciliumvteppolicies.yaml new file mode 100644 index 0000000000000..da2c1714c7ba1 --- /dev/null +++ b/pkg/k8s/apis/cilium.io/client/crds/v2alpha1/ciliumvteppolicies.yaml @@ -0,0 +1,266 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.3 + name: ciliumvteppolicies.cilium.io +spec: + group: cilium.io + names: + categories: + - cilium + - ciliumpolicy + kind: CiliumVtepPolicy + listKind: CiliumVtepPolicyList + plural: ciliumvteppolicies + shortNames: + - vtep-policy + singular: ciliumvteppolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + destinationCIDRs: + description: |- + DestinationCIDRs is a list of destination CIDRs for destination IP addresses. + If a destination IP matches any one CIDR, it will be selected. + items: + format: cidr + type: string + maxItems: 30 + type: array + externalVTEP: + description: ExternalVTEP is the remote VTEP outside Cilium network. + properties: + ip: + description: |- + IP is the VTEP IP (remote node terminating VXLAN tunnel) + + Example: + When set to "192.168.1.100", matching traffic will be + redirected to the VXLAN tunnel towards IP address 192.168.1.100. + format: ipv4 + type: string + mac: + description: |- + MAC is a remote MAC address on the other side of VXLAN tunnel. This is + needed to build l2 and avoid ARP. + + Example: + 00:11:22:33:44:55 that belongs to VXLAN tunnel interface on the remote side + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + type: string + type: object + selectors: + description: |- + CiliumVtepPolicyRules represents a list of rules by which traffic is + selected from/to the pods. + items: + properties: + namespaceSelector: + description: |- + Selects Namespaces using cluster-scoped labels. This field follows standard label + selector semantics; if present but empty, it selects all namespaces. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + enum: + - In + - NotIn + - Exists + - DoesNotExist + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + description: MatchLabelsValue represents the value from + the MatchLabels {key,value} pair. + maxLength: 63 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$ + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + nodeSelector: + description: |- + This is a label selector which selects Pods by Node. This field follows standard label + selector semantics; if present but empty, it selects all nodes. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + enum: + - In + - NotIn + - Exists + - DoesNotExist + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + description: MatchLabelsValue represents the value from + the MatchLabels {key,value} pair. + maxLength: 63 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$ + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + podSelector: + description: |- + This is a label selector which selects Pods. This field follows standard label + selector semantics; if present but empty, it selects all pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + enum: + - In + - NotIn + - Exists + - DoesNotExist + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + description: MatchLabelsValue represents the value from + the MatchLabels {key,value} pair. + maxLength: 63 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$ + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + maxItems: 30 + type: array + type: object + required: + - metadata + type: object + served: true + storage: true + subresources: {} diff --git a/pkg/k8s/apis/cilium.io/client/register.go b/pkg/k8s/apis/cilium.io/client/register.go index 216ed4b5b4c7d..939bcf637de03 100644 --- a/pkg/k8s/apis/cilium.io/client/register.go +++ b/pkg/k8s/apis/cilium.io/client/register.go @@ -93,6 +93,9 @@ const ( CPIPCRDName = k8sconstv2alpha1.CPIPKindDefinition + "/" + k8sconstv2alpha1.CustomResourceDefinitionVersion // CGCCCRDName is the full name of the CiliumGatewayClassConfig CRD. CGCCCRDName = k8sconstv2alpha1.CGCCKindDefinition + "/" + k8sconstv2alpha1.CustomResourceDefinitionVersion + + // CVPCRDName is the full name of the CiliumVtepPolicy CRD. + CVPCRDName = k8sconstv2alpha1.CVPKindDefinition + "/" + k8sconstv2alpha1.CustomResourceDefinitionVersion ) type CRDList struct { @@ -191,6 +194,10 @@ func CustomResourceDefinitionList() map[string]*CRDList { Name: CGCCCRDName, FullName: k8sconstv2alpha1.CGCCName, }, + synced.CRDResourceName(k8sconstv2alpha1.CVPName): { + Name: CVPCRDName, + FullName: k8sconstv2alpha1.CVPName, + }, } } @@ -278,6 +285,9 @@ var ( //go:embed crds/v2alpha1/ciliumgatewayclassconfigs.yaml crdsv2Alpha1CiliumGatewayClassConfigs []byte + + //go:embed crds/v2alpha1/ciliumvteppolicies.yaml + crdsv2Alpha1CiliumVtepPolicies []byte ) // GetPregeneratedCRD returns the pregenerated CRD based on the requested CRD @@ -338,6 +348,8 @@ func GetPregeneratedCRD(logger *slog.Logger, crdName string) apiextensionsv1.Cus crdBytes = crdsv2Alpha1CiliumPodIPPools case CGCCCRDName: crdBytes = crdsv2Alpha1CiliumGatewayClassConfigs + case CVPCRDName: + crdBytes = crdsv2Alpha1CiliumVtepPolicies default: logging.Fatal(logger, "Pregenerated CRD does not exist", logAttr) } diff --git a/pkg/k8s/apis/cilium.io/v2alpha1/register.go b/pkg/k8s/apis/cilium.io/v2alpha1/register.go index 3459f27ce21d9..cfb73006c51b5 100644 --- a/pkg/k8s/apis/cilium.io/v2alpha1/register.go +++ b/pkg/k8s/apis/cilium.io/v2alpha1/register.go @@ -111,6 +111,11 @@ const ( CGCCListName = "ciliumgatewayclassconfiglists" CGCCKindDefinition = "CiliumGatewayClassConfig" CGCCName = CGCCPluralName + "." + CustomResourceDefinitionGroup + + // CiliumVtepPolicy + CVPPluralName = "ciliumvteppolicies" + CVPKindDefinition = "CiliumVtepPolicy" + CVPName = CVPPluralName + "." + CustomResourceDefinitionGroup ) // SchemeGroupVersion is group version used to register these objects @@ -182,6 +187,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { // new Gateway API types &CiliumGatewayClassConfig{}, &CiliumGatewayClassConfigList{}, + + // VTEP Policy API types + &CiliumVtepPolicy{}, + &CiliumVtepPolicyList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/pkg/k8s/apis/cilium.io/v2alpha1/vtep_policy_types.go b/pkg/k8s/apis/cilium.io/v2alpha1/vtep_policy_types.go new file mode 100644 index 0000000000000..b99798798ac39 --- /dev/null +++ b/pkg/k8s/apis/cilium.io/v2alpha1/vtep_policy_types.go @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package v2alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" +) + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:categories={cilium,ciliumpolicy},singular="ciliumvteppolicy",path="ciliumvteppolicies",scope="Cluster",shortName={vtep-policy} +// +kubebuilder:printcolumn:JSONPath=".metadata.creationTimestamp",name="Age",type=date +// +kubebuilder:storageversion + +type CiliumVtepPolicy struct { + // +k8s:openapi-gen=false + // +deepequal-gen=false + metav1.TypeMeta `json:",inline"` + // +k8s:openapi-gen=false + // +deepequal-gen=false + metav1.ObjectMeta `json:"metadata"` + + Spec CiliumVtepPolicySpec `json:"spec,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:openapi-gen=false +// +deepequal-gen=false + +// CiliumVtepPolicyList is a list of CiliumVtepPolicy objects. +type CiliumVtepPolicyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + + // Items is a list of CiliumVtepPolicy. + Items []CiliumVtepPolicy `json:"items"` +} + +// +kubebuilder:validation:Format=cidr +type CIDR string + +// +kubebuilder:validation:Pattern=`^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$` +// regex source: https://uibakery.io/regex-library/mac-address +type MAC string + +type CiliumVtepPolicySpec struct { + // +kubebuilder:validation:MaxItems=30 + // CiliumVtepPolicyRules represents a list of rules by which traffic is + // selected from/to the pods. + Selectors []CiliumVtepPolicyRules `json:"selectors,omitempty"` + + // +kubebuilder:validation:MaxItems=30 + // DestinationCIDRs is a list of destination CIDRs for destination IP addresses. + // If a destination IP matches any one CIDR, it will be selected. + DestinationCIDRs []CIDR `json:"destinationCIDRs,omitempty"` + + // ExternalVTEP is the remote VTEP outside Cilium network. + ExternalVTEP *ExternalVTEP `json:"externalVTEP,omitempty"` +} + +// External VTEP identifies the node outside cilium network that should act +// as a gateway for traffic matching the vtep policy +type ExternalVTEP struct { + // IP is the VTEP IP (remote node terminating VXLAN tunnel) + // + // Example: + // When set to "192.168.1.100", matching traffic will be + // redirected to the VXLAN tunnel towards IP address 192.168.1.100. + // + // +kubebuilder:validation:Format=ipv4 + IP string `json:"ip,omitempty"` + + // MAC is a remote MAC address on the other side of VXLAN tunnel. This is + // needed to build l2 and avoid ARP. + // + // Example: + // 00:11:22:33:44:55 that belongs to VXLAN tunnel interface on the remote side + MAC MAC `json:"mac,omitempty"` +} + +type CiliumVtepPolicyRules struct { + // Selects Namespaces using cluster-scoped labels. This field follows standard label + // selector semantics; if present but empty, it selects all namespaces. + NamespaceSelector *slimv1.LabelSelector `json:"namespaceSelector,omitempty"` + + // This is a label selector which selects Pods. This field follows standard label + // selector semantics; if present but empty, it selects all pods. + PodSelector *slimv1.LabelSelector `json:"podSelector,omitempty"` + + // This is a label selector which selects Pods by Node. This field follows standard label + // selector semantics; if present but empty, it selects all nodes. + NodeSelector *slimv1.LabelSelector `json:"nodeSelector,omitempty"` +} diff --git a/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go b/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go index 49f3813ae2a9c..68a1610455fe7 100644 --- a/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go +++ b/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepcopy.go @@ -1973,6 +1973,130 @@ func (in *CiliumPodIPPoolList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CiliumVtepPolicy) DeepCopyInto(out *CiliumVtepPolicy) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumVtepPolicy. +func (in *CiliumVtepPolicy) DeepCopy() *CiliumVtepPolicy { + if in == nil { + return nil + } + out := new(CiliumVtepPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CiliumVtepPolicy) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CiliumVtepPolicyList) DeepCopyInto(out *CiliumVtepPolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CiliumVtepPolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumVtepPolicyList. +func (in *CiliumVtepPolicyList) DeepCopy() *CiliumVtepPolicyList { + if in == nil { + return nil + } + out := new(CiliumVtepPolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CiliumVtepPolicyList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CiliumVtepPolicyRules) DeepCopyInto(out *CiliumVtepPolicyRules) { + *out = *in + if in.NamespaceSelector != nil { + in, out := &in.NamespaceSelector, &out.NamespaceSelector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.PodSelector != nil { + in, out := &in.PodSelector, &out.PodSelector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumVtepPolicyRules. +func (in *CiliumVtepPolicyRules) DeepCopy() *CiliumVtepPolicyRules { + if in == nil { + return nil + } + out := new(CiliumVtepPolicyRules) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CiliumVtepPolicySpec) DeepCopyInto(out *CiliumVtepPolicySpec) { + *out = *in + if in.Selectors != nil { + in, out := &in.Selectors, &out.Selectors + *out = make([]CiliumVtepPolicyRules, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DestinationCIDRs != nil { + in, out := &in.DestinationCIDRs, &out.DestinationCIDRs + *out = make([]CIDR, len(*in)) + copy(*out, *in) + } + if in.ExternalVTEP != nil { + in, out := &in.ExternalVTEP, &out.ExternalVTEP + *out = new(ExternalVTEP) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumVtepPolicySpec. +func (in *CiliumVtepPolicySpec) DeepCopy() *CiliumVtepPolicySpec { + if in == nil { + return nil + } + out := new(CiliumVtepPolicySpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CoreCiliumEndpoint) DeepCopyInto(out *CoreCiliumEndpoint) { *out = *in @@ -2032,6 +2156,22 @@ func (in *EgressRule) DeepCopy() *EgressRule { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalVTEP) DeepCopyInto(out *ExternalVTEP) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalVTEP. +func (in *ExternalVTEP) DeepCopy() *ExternalVTEP { + if in == nil { + return nil + } + out := new(ExternalVTEP) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPPoolSpec) DeepCopyInto(out *IPPoolSpec) { *out = *in diff --git a/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go b/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go index 02bffc6092456..56929b177ea14 100644 --- a/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go +++ b/pkg/k8s/apis/cilium.io/v2alpha1/zz_generated.deepequal.go @@ -1546,6 +1546,106 @@ func (in *CiliumPodIPPool) DeepEqual(other *CiliumPodIPPool) bool { return true } +// DeepEqual is an autogenerated deepequal function, deeply comparing the +// receiver with other. in must be non-nil. +func (in *CiliumVtepPolicy) DeepEqual(other *CiliumVtepPolicy) bool { + if other == nil { + return false + } + + if !in.Spec.DeepEqual(&other.Spec) { + return false + } + + return true +} + +// DeepEqual is an autogenerated deepequal function, deeply comparing the +// receiver with other. in must be non-nil. +func (in *CiliumVtepPolicyRules) DeepEqual(other *CiliumVtepPolicyRules) bool { + if other == nil { + return false + } + + if (in.NamespaceSelector == nil) != (other.NamespaceSelector == nil) { + return false + } else if in.NamespaceSelector != nil { + if !in.NamespaceSelector.DeepEqual(other.NamespaceSelector) { + return false + } + } + + if (in.PodSelector == nil) != (other.PodSelector == nil) { + return false + } else if in.PodSelector != nil { + if !in.PodSelector.DeepEqual(other.PodSelector) { + return false + } + } + + if (in.NodeSelector == nil) != (other.NodeSelector == nil) { + return false + } else if in.NodeSelector != nil { + if !in.NodeSelector.DeepEqual(other.NodeSelector) { + return false + } + } + + return true +} + +// DeepEqual is an autogenerated deepequal function, deeply comparing the +// receiver with other. in must be non-nil. +func (in *CiliumVtepPolicySpec) DeepEqual(other *CiliumVtepPolicySpec) bool { + if other == nil { + return false + } + + if ((in.Selectors != nil) && (other.Selectors != nil)) || ((in.Selectors == nil) != (other.Selectors == nil)) { + in, other := &in.Selectors, &other.Selectors + if other == nil { + return false + } + + if len(*in) != len(*other) { + return false + } else { + for i, inElement := range *in { + if !inElement.DeepEqual(&(*other)[i]) { + return false + } + } + } + } + + if ((in.DestinationCIDRs != nil) && (other.DestinationCIDRs != nil)) || ((in.DestinationCIDRs == nil) != (other.DestinationCIDRs == nil)) { + in, other := &in.DestinationCIDRs, &other.DestinationCIDRs + if other == nil { + return false + } + + if len(*in) != len(*other) { + return false + } else { + for i, inElement := range *in { + if inElement != (*other)[i] { + return false + } + } + } + } + + if (in.ExternalVTEP == nil) != (other.ExternalVTEP == nil) { + return false + } else if in.ExternalVTEP != nil { + if !in.ExternalVTEP.DeepEqual(other.ExternalVTEP) { + return false + } + } + + return true +} + // DeepEqual is an autogenerated deepequal function, deeply comparing the // receiver with other. in must be non-nil. func (in *CoreCiliumEndpoint) DeepEqual(other *CoreCiliumEndpoint) bool { @@ -1611,6 +1711,23 @@ func (in *EgressRule) DeepEqual(other *EgressRule) bool { return true } +// DeepEqual is an autogenerated deepequal function, deeply comparing the +// receiver with other. in must be non-nil. +func (in *ExternalVTEP) DeepEqual(other *ExternalVTEP) bool { + if other == nil { + return false + } + + if in.IP != other.IP { + return false + } + if in.MAC != other.MAC { + return false + } + + return true +} + // DeepEqual is an autogenerated deepequal function, deeply comparing the // receiver with other. in must be non-nil. func (in *IPPoolSpec) DeepEqual(other *IPPoolSpec) bool { diff --git a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/cilium.io_client.go b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/cilium.io_client.go index a731d33f3445f..c517ac4a0d772 100644 --- a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/cilium.io_client.go +++ b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/cilium.io_client.go @@ -28,6 +28,7 @@ type CiliumV2alpha1Interface interface { CiliumLoadBalancerIPPoolsGetter CiliumNodeConfigsGetter CiliumPodIPPoolsGetter + CiliumVtepPoliciesGetter } // CiliumV2alpha1Client is used to interact with features provided by the cilium.io group. @@ -87,6 +88,10 @@ func (c *CiliumV2alpha1Client) CiliumPodIPPools() CiliumPodIPPoolInterface { return newCiliumPodIPPools(c) } +func (c *CiliumV2alpha1Client) CiliumVtepPolicies() CiliumVtepPolicyInterface { + return newCiliumVtepPolicies(c) +} + // NewForConfig creates a new CiliumV2alpha1Client for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). diff --git a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/ciliumvteppolicy.go b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/ciliumvteppolicy.go new file mode 100644 index 0000000000000..9f588827b16b7 --- /dev/null +++ b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/ciliumvteppolicy.go @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +// Code generated by client-gen. DO NOT EDIT. + +package v2alpha1 + +import ( + context "context" + + ciliumiov2alpha1 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + scheme "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + gentype "k8s.io/client-go/gentype" +) + +// CiliumVtepPoliciesGetter has a method to return a CiliumVtepPolicyInterface. +// A group's client should implement this interface. +type CiliumVtepPoliciesGetter interface { + CiliumVtepPolicies() CiliumVtepPolicyInterface +} + +// CiliumVtepPolicyInterface has methods to work with CiliumVtepPolicy resources. +type CiliumVtepPolicyInterface interface { + Create(ctx context.Context, ciliumVtepPolicy *ciliumiov2alpha1.CiliumVtepPolicy, opts v1.CreateOptions) (*ciliumiov2alpha1.CiliumVtepPolicy, error) + Update(ctx context.Context, ciliumVtepPolicy *ciliumiov2alpha1.CiliumVtepPolicy, opts v1.UpdateOptions) (*ciliumiov2alpha1.CiliumVtepPolicy, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*ciliumiov2alpha1.CiliumVtepPolicy, error) + List(ctx context.Context, opts v1.ListOptions) (*ciliumiov2alpha1.CiliumVtepPolicyList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *ciliumiov2alpha1.CiliumVtepPolicy, err error) + CiliumVtepPolicyExpansion +} + +// ciliumVtepPolicies implements CiliumVtepPolicyInterface +type ciliumVtepPolicies struct { + *gentype.ClientWithList[*ciliumiov2alpha1.CiliumVtepPolicy, *ciliumiov2alpha1.CiliumVtepPolicyList] +} + +// newCiliumVtepPolicies returns a CiliumVtepPolicies +func newCiliumVtepPolicies(c *CiliumV2alpha1Client) *ciliumVtepPolicies { + return &ciliumVtepPolicies{ + gentype.NewClientWithList[*ciliumiov2alpha1.CiliumVtepPolicy, *ciliumiov2alpha1.CiliumVtepPolicyList]( + "ciliumvteppolicies", + c.RESTClient(), + scheme.ParameterCodec, + "", + func() *ciliumiov2alpha1.CiliumVtepPolicy { return &ciliumiov2alpha1.CiliumVtepPolicy{} }, + func() *ciliumiov2alpha1.CiliumVtepPolicyList { return &ciliumiov2alpha1.CiliumVtepPolicyList{} }, + ), + } +} diff --git a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_cilium.io_client.go b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_cilium.io_client.go index ec3f3631dfef4..524fa3264fc40 100644 --- a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_cilium.io_client.go +++ b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_cilium.io_client.go @@ -67,6 +67,10 @@ func (c *FakeCiliumV2alpha1) CiliumPodIPPools() v2alpha1.CiliumPodIPPoolInterfac return newFakeCiliumPodIPPools(c) } +func (c *FakeCiliumV2alpha1) CiliumVtepPolicies() v2alpha1.CiliumVtepPolicyInterface { + return newFakeCiliumVtepPolicies(c) +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeCiliumV2alpha1) RESTClient() rest.Interface { diff --git a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_ciliumvteppolicy.go b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_ciliumvteppolicy.go new file mode 100644 index 0000000000000..a544adc09165c --- /dev/null +++ b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/fake/fake_ciliumvteppolicy.go @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v2alpha1 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + ciliumiov2alpha1 "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1" + gentype "k8s.io/client-go/gentype" +) + +// fakeCiliumVtepPolicies implements CiliumVtepPolicyInterface +type fakeCiliumVtepPolicies struct { + *gentype.FakeClientWithList[*v2alpha1.CiliumVtepPolicy, *v2alpha1.CiliumVtepPolicyList] + Fake *FakeCiliumV2alpha1 +} + +func newFakeCiliumVtepPolicies(fake *FakeCiliumV2alpha1) ciliumiov2alpha1.CiliumVtepPolicyInterface { + return &fakeCiliumVtepPolicies{ + gentype.NewFakeClientWithList[*v2alpha1.CiliumVtepPolicy, *v2alpha1.CiliumVtepPolicyList]( + fake.Fake, + "", + v2alpha1.SchemeGroupVersion.WithResource("ciliumvteppolicies"), + v2alpha1.SchemeGroupVersion.WithKind("CiliumVtepPolicy"), + func() *v2alpha1.CiliumVtepPolicy { return &v2alpha1.CiliumVtepPolicy{} }, + func() *v2alpha1.CiliumVtepPolicyList { return &v2alpha1.CiliumVtepPolicyList{} }, + func(dst, src *v2alpha1.CiliumVtepPolicyList) { dst.ListMeta = src.ListMeta }, + func(list *v2alpha1.CiliumVtepPolicyList) []*v2alpha1.CiliumVtepPolicy { + return gentype.ToPointerSlice(list.Items) + }, + func(list *v2alpha1.CiliumVtepPolicyList, items []*v2alpha1.CiliumVtepPolicy) { + list.Items = gentype.FromPointerSlice(items) + }, + ), + fake, + } +} diff --git a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/generated_expansion.go b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/generated_expansion.go index 5a1d72f1f9ece..09505ad8bab81 100644 --- a/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/generated_expansion.go +++ b/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2alpha1/generated_expansion.go @@ -30,3 +30,5 @@ type CiliumLoadBalancerIPPoolExpansion interface{} type CiliumNodeConfigExpansion interface{} type CiliumPodIPPoolExpansion interface{} + +type CiliumVtepPolicyExpansion interface{} diff --git a/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/ciliumvteppolicy.go b/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/ciliumvteppolicy.go new file mode 100644 index 0000000000000..b05aba8144792 --- /dev/null +++ b/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/ciliumvteppolicy.go @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +// Code generated by informer-gen. DO NOT EDIT. + +package v2alpha1 + +import ( + context "context" + time "time" + + apisciliumiov2alpha1 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + versioned "github.com/cilium/cilium/pkg/k8s/client/clientset/versioned" + internalinterfaces "github.com/cilium/cilium/pkg/k8s/client/informers/externalversions/internalinterfaces" + ciliumiov2alpha1 "github.com/cilium/cilium/pkg/k8s/client/listers/cilium.io/v2alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// CiliumVtepPolicyInformer provides access to a shared informer and lister for +// CiliumVtepPolicies. +type CiliumVtepPolicyInformer interface { + Informer() cache.SharedIndexInformer + Lister() ciliumiov2alpha1.CiliumVtepPolicyLister +} + +type ciliumVtepPolicyInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewCiliumVtepPolicyInformer constructs a new informer for CiliumVtepPolicy type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewCiliumVtepPolicyInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCiliumVtepPolicyInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredCiliumVtepPolicyInformer constructs a new informer for CiliumVtepPolicy type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredCiliumVtepPolicyInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.CiliumV2alpha1().CiliumVtepPolicies().List(context.Background(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.CiliumV2alpha1().CiliumVtepPolicies().Watch(context.Background(), options) + }, + ListWithContextFunc: func(ctx context.Context, options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.CiliumV2alpha1().CiliumVtepPolicies().List(ctx, options) + }, + WatchFuncWithContext: func(ctx context.Context, options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.CiliumV2alpha1().CiliumVtepPolicies().Watch(ctx, options) + }, + }, + &apisciliumiov2alpha1.CiliumVtepPolicy{}, + resyncPeriod, + indexers, + ) +} + +func (f *ciliumVtepPolicyInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCiliumVtepPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *ciliumVtepPolicyInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apisciliumiov2alpha1.CiliumVtepPolicy{}, f.defaultInformer) +} + +func (f *ciliumVtepPolicyInformer) Lister() ciliumiov2alpha1.CiliumVtepPolicyLister { + return ciliumiov2alpha1.NewCiliumVtepPolicyLister(f.Informer().GetIndexer()) +} diff --git a/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/interface.go b/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/interface.go index 77d88357ec4c7..ae965ed2cc84d 100644 --- a/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/interface.go +++ b/pkg/k8s/client/informers/externalversions/cilium.io/v2alpha1/interface.go @@ -37,6 +37,8 @@ type Interface interface { CiliumNodeConfigs() CiliumNodeConfigInformer // CiliumPodIPPools returns a CiliumPodIPPoolInformer. CiliumPodIPPools() CiliumPodIPPoolInformer + // CiliumVtepPolicies returns a CiliumVtepPolicyInformer. + CiliumVtepPolicies() CiliumVtepPolicyInformer } type version struct { @@ -114,3 +116,8 @@ func (v *version) CiliumNodeConfigs() CiliumNodeConfigInformer { func (v *version) CiliumPodIPPools() CiliumPodIPPoolInformer { return &ciliumPodIPPoolInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } + +// CiliumVtepPolicies returns a CiliumVtepPolicyInformer. +func (v *version) CiliumVtepPolicies() CiliumVtepPolicyInformer { + return &ciliumVtepPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/pkg/k8s/client/informers/externalversions/generic.go b/pkg/k8s/client/informers/externalversions/generic.go index dba5af24c7b8b..a873198bde408 100644 --- a/pkg/k8s/client/informers/externalversions/generic.go +++ b/pkg/k8s/client/informers/externalversions/generic.go @@ -103,6 +103,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumNodeConfigs().Informer()}, nil case v2alpha1.SchemeGroupVersion.WithResource("ciliumpodippools"): return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumPodIPPools().Informer()}, nil + case v2alpha1.SchemeGroupVersion.WithResource("ciliumvteppolicies"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumVtepPolicies().Informer()}, nil } diff --git a/pkg/k8s/client/listers/cilium.io/v2alpha1/ciliumvteppolicy.go b/pkg/k8s/client/listers/cilium.io/v2alpha1/ciliumvteppolicy.go new file mode 100644 index 0000000000000..325977432416a --- /dev/null +++ b/pkg/k8s/client/listers/cilium.io/v2alpha1/ciliumvteppolicy.go @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +// Code generated by lister-gen. DO NOT EDIT. + +package v2alpha1 + +import ( + ciliumiov2alpha1 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + labels "k8s.io/apimachinery/pkg/labels" + listers "k8s.io/client-go/listers" + cache "k8s.io/client-go/tools/cache" +) + +// CiliumVtepPolicyLister helps list CiliumVtepPolicies. +// All objects returned here must be treated as read-only. +type CiliumVtepPolicyLister interface { + // List lists all CiliumVtepPolicies in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*ciliumiov2alpha1.CiliumVtepPolicy, err error) + // Get retrieves the CiliumVtepPolicy from the index for a given name. + // Objects returned here must be treated as read-only. + Get(name string) (*ciliumiov2alpha1.CiliumVtepPolicy, error) + CiliumVtepPolicyListerExpansion +} + +// ciliumVtepPolicyLister implements the CiliumVtepPolicyLister interface. +type ciliumVtepPolicyLister struct { + listers.ResourceIndexer[*ciliumiov2alpha1.CiliumVtepPolicy] +} + +// NewCiliumVtepPolicyLister returns a new CiliumVtepPolicyLister. +func NewCiliumVtepPolicyLister(indexer cache.Indexer) CiliumVtepPolicyLister { + return &ciliumVtepPolicyLister{listers.New[*ciliumiov2alpha1.CiliumVtepPolicy](indexer, ciliumiov2alpha1.Resource("ciliumvteppolicy"))} +} diff --git a/pkg/k8s/client/listers/cilium.io/v2alpha1/expansion_generated.go b/pkg/k8s/client/listers/cilium.io/v2alpha1/expansion_generated.go index fde475b7392a9..978e795047212 100644 --- a/pkg/k8s/client/listers/cilium.io/v2alpha1/expansion_generated.go +++ b/pkg/k8s/client/listers/cilium.io/v2alpha1/expansion_generated.go @@ -60,3 +60,7 @@ type CiliumNodeConfigNamespaceListerExpansion interface{} // CiliumPodIPPoolListerExpansion allows custom methods to be added to // CiliumPodIPPoolLister. type CiliumPodIPPoolListerExpansion interface{} + +// CiliumVtepPolicyListerExpansion allows custom methods to be added to +// CiliumVtepPolicyLister. +type CiliumVtepPolicyListerExpansion interface{} diff --git a/pkg/k8s/synced/crd.go b/pkg/k8s/synced/crd.go index 6ba9f43810960..c2c217f8d3ae8 100644 --- a/pkg/k8s/synced/crd.go +++ b/pkg/k8s/synced/crd.go @@ -91,6 +91,10 @@ func agentCRDResourceNames() []string { CRDResourceName(v2alpha1.L2AnnouncementName), ) + if option.Config.EnableVTEP { + result = append(result, CRDResourceName(v2alpha1.CVPName)) + } + return result } diff --git a/pkg/k8s/watchers/watcher.go b/pkg/k8s/watchers/watcher.go index f681b513e34ec..f5ee2f2b8e872 100644 --- a/pkg/k8s/watchers/watcher.go +++ b/pkg/k8s/watchers/watcher.go @@ -205,6 +205,7 @@ var ciliumResourceToGroupMapping = map[string]watcherInfo{ synced.CRDResourceName(cilium_v2.CCGName): {waitOnly, k8sAPIGroupCiliumCIDRGroupV2}, synced.CRDResourceName(v2alpha1.L2AnnouncementName): {skip, ""}, // Handled by L2 announcement directly synced.CRDResourceName(v2alpha1.CPIPName): {skip, ""}, // Handled by multi-pool IPAM allocator + synced.CRDResourceName(v2alpha1.CVPName): {skip, ""}, // Handled by vtep policy manager } func GetGroupsForCiliumResources(logger *slog.Logger, ciliumResources []string) ([]string, []string) { diff --git a/pkg/logging/logfields/logfields.go b/pkg/logging/logfields/logfields.go index 6ee34472cd50f..33e36f3d0e7da 100644 --- a/pkg/logging/logfields/logfields.go +++ b/pkg/logging/logfields/logfields.go @@ -419,6 +419,9 @@ const ( // CiliumEgressGatewayPolicyName is the name of a CiliumEgressGatewayPolicy CiliumEgressGatewayPolicyName = "ciliumEgressGatewayPolicyName" + // CiliumVtepPolicyName is the name of a CiliumVtepPolicy + CiliumVtepPolicyName = "ciliumVtepPolicyName" + // CiliumClusterwideEnvoyConfigName is the name of a CiliumClusterwideEnvoyConfig CiliumClusterwideEnvoyConfigName = "ciliumClusterwideEnvoyConfigName" @@ -821,6 +824,12 @@ const ( // GatewayIP is the gateway IP used in a given egress policy GatewayIP = "gatewayIP" + // VtepIP is the ip address of remote Vxlan tunnel Endpoint + VtepIP = "vtepIP" + + // VtepMAC is the mac address of remote vxlan tunnel Endpoint + VtepMAC = "vtepMAC" + // Number of Backends failed while restoration. RestoredBackends = "restoredBackends" diff --git a/pkg/maps/cells.go b/pkg/maps/cells.go index faef0c367d207..acb36c298888b 100644 --- a/pkg/maps/cells.go +++ b/pkg/maps/cells.go @@ -24,6 +24,7 @@ import ( "github.com/cilium/cilium/pkg/maps/policymap" "github.com/cilium/cilium/pkg/maps/signalmap" "github.com/cilium/cilium/pkg/maps/srv6map" + "github.com/cilium/cilium/pkg/maps/vtep_policy" ) // Cell contains all cells which are providing BPF Maps. @@ -77,6 +78,9 @@ var Cell = cell.Module( // Provides access to the encryption map. encrypt.Cell, + + // Provides access to vtep policy maps + vtep_policy.Cell, ) type mapApiHandlerOut struct { diff --git a/pkg/maps/vtep_policy/doc.go b/pkg/maps/vtep_policy/doc.go new file mode 100644 index 0000000000000..45aab44426879 --- /dev/null +++ b/pkg/maps/vtep_policy/doc.go @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +// +groupName=maps +package vtep_policy diff --git a/pkg/maps/vtep_policy/policy.go b/pkg/maps/vtep_policy/policy.go new file mode 100644 index 0000000000000..78eee7dc046b9 --- /dev/null +++ b/pkg/maps/vtep_policy/policy.go @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vtep_policy + +import "github.com/cilium/hive/cell" + +var Cell = cell.Module( + "vteppolicy", + "VTEP policy provide access to the egress gateway datapath maps", + cell.Provide(createPolicyMapFromDaemonConfig), +) diff --git a/pkg/maps/vtep_policy/vtep.go b/pkg/maps/vtep_policy/vtep.go new file mode 100644 index 0000000000000..37ba5c5b7e72c --- /dev/null +++ b/pkg/maps/vtep_policy/vtep.go @@ -0,0 +1,192 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vtep_policy + +import ( + "fmt" + "net/netip" + + "log/slog" + + "github.com/cilium/cilium/pkg/bpf" + "github.com/cilium/cilium/pkg/defaults" + "github.com/cilium/cilium/pkg/ebpf" + "github.com/cilium/cilium/pkg/mac" + "github.com/cilium/cilium/pkg/metrics" + "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/types" + "github.com/cilium/hive/cell" +) + +const ( + MaxEntries = 16384 + // Name is the canonical name for the VTEP map on the filesystem. + VtepPolicyMapName = "cilium_vtep_policy_map" +) + +// Must be in sync with struct vtep_key in +type VtepPolicyKey struct { + PrefixLen uint32 `align:"prefixlen"` + SourceIP types.IPv4 `align:"src_ip"` + DestCIDR types.IPv4 `align:"dst_ip"` +} + +func (k VtepPolicyKey) String() string { + return fmt.Sprintf("%s.%s/%d", k.SourceIP, k.DestCIDR, k.PrefixLen) +} + +func (k *VtepPolicyKey) New() bpf.MapKey { return &VtepPolicyKey{} } + +// NewKey returns an Key based on the provided source IP address and destination CIDR +func NewKey(srcIP netip.Addr, dstCIDR netip.Prefix) VtepPolicyKey { + result := VtepPolicyKey{} + + ip4 := srcIP.As4() + copy(result.SourceIP[:], ip4[:]) + + cidr := dstCIDR.Addr().As4() + copy(result.DestCIDR[:], cidr[:]) + + result.PrefixLen = 32 + uint32(dstCIDR.Bits()) + + return result +} + +// VtepPolicyVal implements the bpf.MapValue interface. It contains the +// VTEP endpoint MAC and IP +type VtepPolicyVal struct { + Mac mac.Uint64MAC `align:"vtep_mac"` + VtepIp types.IPv4 `align:"tunnel_endpoint"` + _ [4]byte +} + +func (v *VtepPolicyVal) String() string { + return fmt.Sprintf("vtepmac=%s tunnelendpoint=%s", + v.Mac, v.VtepIp) +} + +func (v *VtepPolicyVal) New() bpf.MapValue { return &VtepPolicyVal{} } + +// Map represents an VTEP BPF map. +type VtepPolicyMap struct { + m *bpf.Map +} + +func createPolicyMapFromDaemonConfig(lifecycle cell.Lifecycle, cfg *option.DaemonConfig, metricsRegistry *metrics.Registry) bpf.MapOut[*VtepPolicyMap] { + if !cfg.EnableVTEP || !cfg.EnableIPv4 { + return bpf.NewMapOut[*VtepPolicyMap](nil) + } + + return bpf.NewMapOut(newVtepPolicyMap(lifecycle, metricsRegistry, ebpf.PinByName)) +} + +// CreatePrivatePolicyMap4 creates an unpinned IPv4 policy map. +// +// Useful for testing. +func CreatePrivatePolicyMap(lc cell.Lifecycle, registry *metrics.Registry) *VtepPolicyMap { + return newVtepPolicyMap(lc, registry, ebpf.PinNone) +} + +func newVtepPolicyMap(lc cell.Lifecycle, registry *metrics.Registry, pinning ebpf.PinType) *VtepPolicyMap { + m := bpf.NewMap( + VtepPolicyMapName, + ebpf.LPMTrie, + &VtepPolicyKey{}, + &VtepPolicyVal{}, + defaults.MaxVtepPolicyEntries, + 0, + ).WithCache().WithPressureMetric(registry). + WithEvents(option.Config.GetEventBufferConfig(VtepPolicyMapName)) + + lc.Append(cell.Hook{ + OnStart: func(cell.HookContext) error { + switch pinning { + case ebpf.PinNone: + return m.CreateUnpinned() + case ebpf.PinByName: + return m.OpenOrCreate() + } + return fmt.Errorf("received unexpected pin type: %d", pinning) + }, + OnStop: func(cell.HookContext) error { + return m.Close() + }, + }) + + return &VtepPolicyMap{m} +} + +func NewVal(newTunnelEndpoint netip.Addr, vtepMAC mac.MAC) VtepPolicyVal { + mac, _ := vtepMAC.Uint64() + + value := VtepPolicyVal{ + Mac: mac, + } + + ip4 := newTunnelEndpoint.As4() + copy(value.VtepIp[:], ip4[:]) + + return value +} + +// OpenPinnedVtepPolicyMap opens an existing pinned IPv4 policy map. +func OpenPinnedVtepPolicyMap(logger *slog.Logger) (*VtepPolicyMap, error) { + m, err := bpf.OpenMap(bpf.MapPath(logger, VtepPolicyMapName), &VtepPolicyKey{}, &VtepPolicyVal{}) + if err != nil { + return nil, err + } + + return &VtepPolicyMap{m}, nil +} + +// Function to update vtep map with VTEP CIDR +func (m *VtepPolicyMap) UpdateVtepPolicyMapping(srcIP netip.Addr, dstCIDR netip.Prefix, newTunnelEndpoint netip.Addr, vtepMAC mac.MAC) error { + key := NewKey(srcIP, dstCIDR) + value := NewVal(newTunnelEndpoint, vtepMAC) + + return m.m.Update(&key, &value) +} + +func (m *VtepPolicyMap) RemoveVtepPolicyMapping(srcIP netip.Addr, dstCIDR netip.Prefix) error { + key := NewKey(srcIP, dstCIDR) + return m.m.Delete(&key) +} + +func (m *VtepPolicyMap) Delete(key *VtepPolicyKey) error { + return m.m.Delete(key) +} + +func (m *VtepPolicyMap) Lookup(key *VtepPolicyKey) (*VtepPolicyVal, error) { + ret, err := m.m.Lookup(key) + if err != nil { + return nil, err + } + return ret.(*VtepPolicyVal), err +} + +// VtepPolicyIterateCallback represents the signature of the callback function +// expected by the IterateWithCallback method, which in turn is used to iterate +// all the keys/values of an vtep policy map. +type VtepPolicyIterateCallback func(*VtepPolicyKey, *VtepPolicyVal) + +// IterateWithCallback iterates through all the keys/values of an vtep policy +// map, passing each key/value pair to the cb callback. +func (m *VtepPolicyMap) IterateWithCallback(cb VtepPolicyIterateCallback) error { + return m.m.DumpWithCallback(func(k bpf.MapKey, v bpf.MapValue) { + key := k.(*VtepPolicyKey) + value := v.(*VtepPolicyVal) + + cb(key, value) + }) +} + +func (k *VtepPolicyKey) Match(ip netip.Addr, destCIDR netip.Prefix) bool { + nkey := NewKey(ip, destCIDR) + return nkey == *k +} + +func (v *VtepPolicyVal) Match(vtepIP netip.Addr, rmac mac.MAC) bool { + nval := NewVal(vtepIP, rmac) + return nval == *v +} diff --git a/pkg/option/config.go b/pkg/option/config.go index 7812bc6ad78e8..d0ac87ff5e313 100644 --- a/pkg/option/config.go +++ b/pkg/option/config.go @@ -3233,8 +3233,7 @@ func (c *DaemonConfig) validateVTEP(vp *viper.Viper) error { vtepCidrMask := vp.GetString(VtepMask) vtepMACs := vp.GetStringSlice(VtepMAC) - if (len(vtepEndpoints) < 1) || - len(vtepEndpoints) != len(vtepCIDRs) || + if len(vtepEndpoints) != len(vtepCIDRs) || len(vtepEndpoints) != len(vtepMACs) { return fmt.Errorf("VTEP configuration must have the same number of Endpoint, VTEP and MAC configurations (Found %d endpoints, %d MACs, %d CIDR ranges)", len(vtepEndpoints), len(vtepMACs), len(vtepCIDRs)) } diff --git a/pkg/vteppolicy/doc.go b/pkg/vteppolicy/doc.go new file mode 100644 index 0000000000000..c531ebefa32c6 --- /dev/null +++ b/pkg/vteppolicy/doc.go @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +// Package vteppolicy defines an internal representation of the Cilium VTEP +// Policy. The structures are managed by the Manager. +package vteppolicy diff --git a/pkg/vteppolicy/endpoint.go b/pkg/vteppolicy/endpoint.go new file mode 100644 index 0000000000000..61e0fa8281db8 --- /dev/null +++ b/pkg/vteppolicy/endpoint.go @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "fmt" + "net/netip" + + "k8s.io/apimachinery/pkg/types" + + k8sTypes "github.com/cilium/cilium/pkg/k8s/types" + "github.com/cilium/cilium/pkg/labels" +) + +// endpointMetadata stores relevant metadata associated with a endpoint that's updated during endpoint +// add/update events +type endpointMetadata struct { + // Endpoint labels + labels map[string]string + // Endpoint ID + id endpointID + // ips are endpoint's unique IPs + ips []netip.Addr + // nodeIP is the IP of the node the endpoint is on + nodeIP string +} + +// endpointID is based on endpoint's UID +type endpointID = types.UID + +func getEndpointMetadata(endpoint *k8sTypes.CiliumEndpoint, identityLabels labels.Labels) (*endpointMetadata, error) { + var addrs []netip.Addr + + if endpoint.UID == "" { + // this can happen when CiliumEndpointSlices are in use - which is not supported in the EGW yet + return nil, fmt.Errorf("endpoint has empty UID") + } + + if endpoint.Networking == nil { + return nil, fmt.Errorf("endpoint has no networking metadata") + } + + if len(endpoint.Networking.Addressing) == 0 { + return nil, fmt.Errorf("failed to get valid endpoint IPs") + } + + for _, pair := range endpoint.Networking.Addressing { + if pair.IPV4 != "" { + addr, err := netip.ParseAddr(pair.IPV4) + if err != nil { + continue + } + addrs = append(addrs, addr) + } + } + + data := &endpointMetadata{ + ips: addrs, + labels: identityLabels.K8sStringMap(), + id: endpoint.UID, + nodeIP: endpoint.Networking.NodeIP, + } + + return data, nil +} diff --git a/pkg/vteppolicy/helpers_test.go b/pkg/vteppolicy/helpers_test.go new file mode 100644 index 0000000000000..082c1c2ba7d6e --- /dev/null +++ b/pkg/vteppolicy/helpers_test.go @@ -0,0 +1,164 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "context" + "errors" + "net/netip" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + + "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + "github.com/cilium/cilium/pkg/k8s/resource" + slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" + k8sTypes "github.com/cilium/cilium/pkg/k8s/types" + "github.com/cilium/cilium/pkg/mac" + "github.com/cilium/cilium/pkg/policy/api" +) + +type fakeResource[T runtime.Object] chan resource.Event[T] + +func (fr fakeResource[T]) sync(tb testing.TB) { + var sync resource.Event[T] + sync.Kind = resource.Sync + fr.process(tb, sync) +} + +func (fr fakeResource[T]) process(tb testing.TB, ev resource.Event[T]) { + tb.Helper() + if err := fr.processWithError(ev); err != nil { + tb.Fatal("Failed to process event:", err) + } +} + +func (fr fakeResource[T]) processWithError(ev resource.Event[T]) error { + errs := make(chan error) + ev.Done = func(err error) { + errs <- err + } + fr <- ev + return <-errs +} + +func (fr fakeResource[T]) Observe(ctx context.Context, next func(event resource.Event[T]), complete func(error)) { + complete(errors.New("not implemented")) +} + +func (fr fakeResource[T]) Events(ctx context.Context, opts ...resource.EventsOpt) <-chan resource.Event[T] { + if len(opts) > 1 { + // Ideally we'd only ignore resource.WithRateLimit here, but that + // isn't possible. + panic("more than one option is not supported") + } + return fr +} + +func (fr fakeResource[T]) Store(context.Context) (resource.Store[T], error) { + return nil, errors.New("not implemented") +} + +func addPolicy(tb testing.TB, policies fakeResource[*Policy], params *policyParams) { + tb.Helper() + + policy, _ := newCVP(params) + policies.process(tb, resource.Event[*Policy]{ + Kind: resource.Upsert, + Object: policy, + }) +} + +type policyParams struct { + name string + endpointLabels map[string]string + podSelectors map[string]string + destinationCIDRs []string + podLabels map[string]string + vtepIP string + mac string +} + +func newCVP(params *policyParams) (*v2alpha1.CiliumVtepPolicy, *PolicyConfig) { + parsedDestinationCIDRs := make([]netip.Prefix, 0, len(params.destinationCIDRs)) + for _, destCIDR := range params.destinationCIDRs { + parsedDestinationCIDR, _ := netip.ParsePrefix(destCIDR) + parsedDestinationCIDRs = append(parsedDestinationCIDRs, parsedDestinationCIDR) + } + + parsedVtepIp, _ := netip.ParseAddr(params.vtepIP) + parsedMac, _ := mac.ParseMAC(params.mac) + + policy := &PolicyConfig{ + id: types.NamespacedName{ + Name: params.name, + }, + dstCIDRs: parsedDestinationCIDRs, + vtepConfig: vtepConfig{ + vtepIP: parsedVtepIp, + vtepMAC: parsedMac, + }, + } + + if len(params.podSelectors) != 0 { + policy.podSelectors = []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: params.podSelectors, + }, + }, + } + } + + // Create destination CIDRs list + var destinationCIDRs []v2alpha1.CIDR + for _, destCIDR := range params.destinationCIDRs { + destinationCIDRs = append(destinationCIDRs, v2alpha1.CIDR(destCIDR)) + } + + cvp := &v2alpha1.CiliumVtepPolicy{ + ObjectMeta: metav1.ObjectMeta{ + Name: params.name, + }, + Spec: v2alpha1.CiliumVtepPolicySpec{ + Selectors: []v2alpha1.CiliumVtepPolicyRules{ + { + PodSelector: &slimv1.LabelSelector{ + MatchLabels: params.endpointLabels, + }, + }, + }, + DestinationCIDRs: destinationCIDRs, + ExternalVTEP: &v2alpha1.ExternalVTEP{ + IP: params.vtepIP, + MAC: v2alpha1.MAC(params.mac), + }, + }, + TypeMeta: metav1.TypeMeta{}, + } + + if len(params.podSelectors) != 0 { + cvp.Spec.Selectors[0].PodSelector = &slimv1.LabelSelector{ + MatchLabels: params.podSelectors, + } + } + + return cvp, policy +} + +func addEndpoint(tb testing.TB, endpoints fakeResource[*k8sTypes.CiliumEndpoint], ep *k8sTypes.CiliumEndpoint) { + endpoints.process(tb, resource.Event[*k8sTypes.CiliumEndpoint]{ + Kind: resource.Upsert, + Object: ep, + }) +} + +func deleteEndpoint(tb testing.TB, endpoints fakeResource[*k8sTypes.CiliumEndpoint], ep *k8sTypes.CiliumEndpoint) { + endpoints.process(tb, resource.Event[*k8sTypes.CiliumEndpoint]{ + Kind: resource.Delete, + Object: ep, + }) +} diff --git a/pkg/vteppolicy/manager.go b/pkg/vteppolicy/manager.go new file mode 100644 index 0000000000000..134e3bb0e313c --- /dev/null +++ b/pkg/vteppolicy/manager.go @@ -0,0 +1,485 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "context" + "fmt" + "log/slog" + "net/netip" + "strings" + "sync" + "sync/atomic" + + "github.com/cilium/hive/cell" + "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/util/workqueue" + + "github.com/cilium/cilium/pkg/datapath/linux/config/defines" + "github.com/cilium/cilium/pkg/datapath/tunnel" + "github.com/cilium/cilium/pkg/identity" + identityCache "github.com/cilium/cilium/pkg/identity/cache" + "github.com/cilium/cilium/pkg/k8s/resource" + k8sTypes "github.com/cilium/cilium/pkg/k8s/types" + "github.com/cilium/cilium/pkg/labels" + "github.com/cilium/cilium/pkg/lock" + "github.com/cilium/cilium/pkg/logging/logfields" + "github.com/cilium/cilium/pkg/maps/vtep_policy" + "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/time" + "github.com/cilium/cilium/pkg/trigger" +) + +// Cell provides a [Manager] for consumption with hive. +var Cell = cell.Module( + "vteppolicy", + "Vtep Policy allows to use external VTEPs access pods", + cell.Config(defaultConfig), + cell.Provide(NewVtepPolicyManager), + cell.Provide(newPolicyResource), + cell.Provide(func(dcfg *option.DaemonConfig) tunnel.EnablerOut { + if !dcfg.EnableVTEP { + return tunnel.EnablerOut{} + } + return tunnel.NewEnabler(true) + }), +) + +type Config struct { + // Default amount of time between triggers of vtep policy state + // reconciliations are invoked + VtepPolicyReconciliationTriggerInterval time.Duration +} + +var defaultConfig = Config{ + VtepPolicyReconciliationTriggerInterval: 1 * time.Second, +} + +func (def Config) Flags(flags *pflag.FlagSet) { + flags.Duration("vtep-policy-reconciliation-trigger-interval", def.VtepPolicyReconciliationTriggerInterval, "Time between triggers of vtep policy state reconciliations") +} + +// The vtep policy manager stores the internal data tracking the node, policy, +// endpoint, and lease mappings. It also hooks up all the callbacks to update +// vteppolicy bpf policy map accordingly. +type Manager struct { + logger *slog.Logger + + // reconciliationEventsCount keeps track of how many reconciliation + // events have occoured + reconciliationEventsCount atomic.Uint64 + + // reconciliationTrigger is the trigger used to reconcile the state of + // the node with the desired vtep policy state. + // The trigger is used to batch multiple updates together + reconciliationTrigger *trigger.Trigger + + mu lock.Mutex + + // allCachesSynced is true when all k8s objects we depend on have had + // their initial state synced. + allCachesSynced bool + + // policies allows reading policy CRD from k8s. + policies resource.Resource[*Policy] + + // endpoints allows reading endpoint CRD from k8s. + endpoints resource.Resource[*k8sTypes.CiliumEndpoint] + + // policyConfigs stores policy configs indexed by policyID + policyConfigs map[policyID]*PolicyConfig + + // epDataStore stores endpointId to endpoint metadata mapping + epDataStore map[endpointID]*endpointMetadata + + // identityAllocator is used to fetch identity labels for endpoint updates + identityAllocator identityCache.IdentityAllocator + + // policyMap4 communicates the active IPv4 policies to the datapath. + policyMap *vtep_policy.VtepPolicyMap +} + +type Params struct { + cell.In + + Logger *slog.Logger + + Config Config + DaemonConfig *option.DaemonConfig + IdentityAllocator identityCache.IdentityAllocator + PolicyMap *vtep_policy.VtepPolicyMap + Policies resource.Resource[*Policy] + Endpoints resource.Resource[*k8sTypes.CiliumEndpoint] + + Lifecycle cell.Lifecycle +} + +func NewVtepPolicyManager(p Params) (out struct { + cell.Out + + *Manager + defines.NodeOut +}, err error) { + dcfg := p.DaemonConfig + out.Manager = nil + + if !dcfg.EnableVTEP { + return out, fmt.Errorf("vtep policy requires --%s=\"true\" ", option.EnableVTEP) + } + + out.Manager, err = newVtepPolicyManager(p) + if err != nil { + return out, err + } + + return out, nil +} + +func newVtepPolicyManager(p Params) (*Manager, error) { + manager := &Manager{ + logger: p.Logger, + policyConfigs: make(map[policyID]*PolicyConfig), + epDataStore: make(map[endpointID]*endpointMetadata), + identityAllocator: p.IdentityAllocator, + policies: p.Policies, + policyMap: p.PolicyMap, + endpoints: p.Endpoints, + } + + t, err := trigger.NewTrigger(trigger.Parameters{ + Name: "vtep_policy_reconciliation", + MinInterval: p.Config.VtepPolicyReconciliationTriggerInterval, + TriggerFunc: func(reasons []string) { + reason := strings.Join(reasons, ", ") + manager.logger.Debug("reconciliation triggered", logfields.Reason, reason) + + manager.mu.Lock() + defer manager.mu.Unlock() + + manager.reconcileLocked() + }, + }) + if err != nil { + return nil, err + } + + manager.reconciliationTrigger = t + + var wg sync.WaitGroup + + ctx, cancel := context.WithCancel(context.Background()) + p.Lifecycle.Append(cell.Hook{ + OnStart: func(hc cell.HookContext) error { + wg.Go(func() { + manager.processEvents(ctx) + }) + + return nil + }, + OnStop: func(hc cell.HookContext) error { + cancel() + + wg.Wait() + return nil + }, + }) + + return manager, nil +} + +// getIdentityLabels waits for the global identities to be populated to the cache, +// then looks up identity by ID from the cached identity allocator and return its labels. +func (manager *Manager) getIdentityLabels(securityIdentity uint32) (labels.Labels, error) { + if err := manager.identityAllocator.WaitForInitialGlobalIdentities(context.Background()); err != nil { + return nil, fmt.Errorf("failed to wait for initial global identities: %w", err) + } + + identity := manager.identityAllocator.LookupIdentityByID(context.Background(), identity.NumericIdentity(securityIdentity)) + if identity == nil { + return nil, fmt.Errorf("identity %d not found", securityIdentity) + } + return identity.Labels, nil +} + +// processEvents spawns a goroutine that waits for the agent to +// sync with k8s and then runs the first reconciliation. +func (manager *Manager) processEvents(ctx context.Context) { + var policySync, endpointSync bool + maybeTriggerReconcile := func() { + if !policySync || !endpointSync { + return + } + + manager.mu.Lock() + defer manager.mu.Unlock() + + if manager.allCachesSynced { + return + } + + manager.allCachesSynced = true + manager.reconciliationTrigger.TriggerWithReason("k8s sync done") + } + + // here we try to mimic the same exponential backoff retry logic used by + // the identity allocator, where the minimum retry timeout is set to 20 + // milliseconds and the max number of attempts is 16 (so 20ms * 2^16 == + // ~20 minutes) + endpointsRateLimit := workqueue.NewTypedItemExponentialFailureRateLimiter[resource.WorkItem]( + time.Millisecond*20, + time.Minute*20, + ) + + policyEvents := manager.policies.Events(ctx) + endpointEvents := manager.endpoints.Events(ctx, resource.WithRateLimiter(endpointsRateLimit)) + + for { + select { + case <-ctx.Done(): + return + + case event := <-policyEvents: + if event.Kind == resource.Sync { + policySync = true + maybeTriggerReconcile() + event.Done(nil) + } else { + manager.handlePolicyEvent(event) + } + + case event := <-endpointEvents: + if event.Kind == resource.Sync { + endpointSync = true + maybeTriggerReconcile() + event.Done(nil) + } else { + manager.handleEndpointEvent(event) + } + } + } +} + +func (manager *Manager) handlePolicyEvent(event resource.Event[*Policy]) { + switch event.Kind { + case resource.Upsert: + err := manager.onAddVtepPolicy(event.Object) + event.Done(err) + case resource.Delete: + manager.onDeleteVtepPolicy(event.Object) + event.Done(nil) + } +} + +// Event handlers + +// onAddVtepPolicy parses the given policy config, and updates internal state +// with the config fields. +func (manager *Manager) onAddVtepPolicy(policy *Policy) error { + logger := manager.logger.With(logfields.CiliumVtepPolicyName, policy.Name) + + config, err := ParseCVP(policy) + if err != nil { + logger.Warn("Failed to parse CiliumVtepPolicy", logfields.Error, err) + return err + } + + manager.mu.Lock() + defer manager.mu.Unlock() + + if _, ok := manager.policyConfigs[config.id]; !ok { + logger.Debug("Added CiliumVtepPolicy") + } else { + logger.Debug("Updated CiliumVtepPolicy") + } + + config.updateMatchedEndpointIDs(manager.epDataStore) + + manager.policyConfigs[config.id] = config + + manager.reconciliationTrigger.TriggerWithReason("policy added") + return nil +} + +// onDeleteVtepPolicy deletes the internal state associated with the given +// policy, including vteppolicy eBPF map entries. +func (manager *Manager) onDeleteVtepPolicy(policy *Policy) { + configID := ParseCVPConfigID(policy) + + manager.mu.Lock() + defer manager.mu.Unlock() + + logger := manager.logger.With(logfields.CiliumVtepPolicyName, configID.Name) + + if manager.policyConfigs[configID] == nil { + manager.logger.Warn("Can't delete CiliumVtepPolicy: policy not found") + } + + logger.Debug("Deleted CiliumVtepPolicy") + + delete(manager.policyConfigs, configID) + + manager.reconciliationTrigger.TriggerWithReason("policy deleted") +} + +func (manager *Manager) addEndpoint(endpoint *k8sTypes.CiliumEndpoint) error { + var epData *endpointMetadata + var err error + var identityLabels labels.Labels + + manager.mu.Lock() + defer manager.mu.Unlock() + + logger := manager.logger.With( + logfields.K8sEndpointName, endpoint.Name, + logfields.K8sNamespace, endpoint.Namespace, + logfields.K8sUID, endpoint.UID, + ) + + if endpoint.Identity == nil { + logger.Warn("Endpoint is missing identity metadata, skipping update to vtep policy.") + return nil + } + + if identityLabels, err = manager.getIdentityLabels(uint32(endpoint.Identity.ID)); err != nil { + logger.Warn("Failed to get identity labels for endpoint", logfields.Error, err) + return err + } + + if epData, err = getEndpointMetadata(endpoint, identityLabels); err != nil { + logger.Error("Failed to get valid endpoint metadata, skipping update to vtep policy.", logfields.Error, err) + return nil + } + + if _, ok := manager.epDataStore[epData.id]; ok { + logger.Debug("Updated CiliumEndpoint") + } else { + logger.Debug("Added CiliumEndpoint") + } + + manager.epDataStore[epData.id] = epData + + manager.reconciliationTrigger.TriggerWithReason("endpoint updated") + + return nil +} + +func (manager *Manager) deleteEndpoint(endpoint *k8sTypes.CiliumEndpoint) { + manager.mu.Lock() + defer manager.mu.Unlock() + + logger := manager.logger.With( + logfields.K8sEndpointName, endpoint.Name, + logfields.K8sNamespace, endpoint.Namespace, + logfields.K8sUID, endpoint.UID, + ) + + logger.Debug("Deleted CiliumEndpoint") + delete(manager.epDataStore, endpoint.UID) + + manager.reconciliationTrigger.TriggerWithReason("endpoint deleted") +} + +func (manager *Manager) handleEndpointEvent(event resource.Event[*k8sTypes.CiliumEndpoint]) { + endpoint := event.Object + + if event.Kind == resource.Upsert { + event.Done(manager.addEndpoint(endpoint)) + } else { + manager.deleteEndpoint(endpoint) + event.Done(nil) + } +} + +func (manager *Manager) updatePoliciesMatchedEndpointIDs() { + for _, policy := range manager.policyConfigs { + policy.updateMatchedEndpointIDs(manager.epDataStore) + } +} + +func (manager *Manager) updateVtepRules() { + if manager.policyMap == nil { + manager.logger.Error("policyMap is nil") + return + } + + vtepPolicies := map[vtep_policy.VtepPolicyKey]vtep_policy.VtepPolicyVal{} + manager.policyMap.IterateWithCallback( + func(key *vtep_policy.VtepPolicyKey, val *vtep_policy.VtepPolicyVal) { + vtepPolicies[*key] = *val + }) + + // Start with the assumption that all the entries currently present in the + // BPF map are stale. Then as we walk the entries below and discover which + // entries are actually still needed, shrink this set down. + stale := sets.KeySet(vtepPolicies) + + addVtepRule := func(endpointIP netip.Addr, dstCIDR netip.Prefix, vtep *vtepConfig) { + if !endpointIP.Is4() { + return + } + + if !dstCIDR.Addr().Is4() { + return + } + + if vtep == nil { + return + } + + policyKey := vtep_policy.NewKey(endpointIP, dstCIDR) + // This key needs to be present in the BPF map, hence remove it from + // the list of stale ones. + stale.Delete(policyKey) + + logger := manager.logger.With( + logfields.SourceIP, endpointIP, + logfields.DestinationCIDR, dstCIDR.String(), + logfields.VtepIP, vtep.vtepIP, + logfields.VtepMAC, vtep.vtepMAC, + ) + + if err := manager.policyMap.UpdateVtepPolicyMapping(endpointIP, dstCIDR, vtep.vtepIP, vtep.vtepMAC); err != nil { + logger.Error("Error applying vtep policy", logfields.Error, err) + } else { + logger.Debug("vtep policy applied") + } + } + + for _, policyConfig := range manager.policyConfigs { + policyConfig.forEachEndpointAndCIDR(addVtepRule) + } + + // Remove all the entries marked as stale. + for policyKey := range stale { + logger := manager.logger.With( + logfields.SourceIP, policyKey.SourceIP, + logfields.DestinationCIDR, policyKey.DestCIDR.String(), + ) + + if err := manager.policyMap.Delete(&policyKey); err != nil { + logger.Error("Error removing vtep gateway policy", logfields.Error, err) + } else { + logger.Debug("Vtep gateway policy removed") + } + } +} + +// reconcileLocked is responsible for reconciling the state of the manager (i.e. the +// desired state) with the actual state of the node (vtep policy map entries). +// +// Whenever it encounters an error, it will just log it and move to the next +// item, in order to reconcile as many states as possible. +func (manager *Manager) reconcileLocked() { + if !manager.allCachesSynced { + return + } + + manager.updatePoliciesMatchedEndpointIDs() + + // Update the content of the BPF maps. + manager.updateVtepRules() + + manager.reconciliationEventsCount.Add(1) +} diff --git a/pkg/vteppolicy/manager_privileged_test.go b/pkg/vteppolicy/manager_privileged_test.go new file mode 100644 index 0000000000000..0966736740b3f --- /dev/null +++ b/pkg/vteppolicy/manager_privileged_test.go @@ -0,0 +1,527 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "context" + "fmt" + "net/netip" + "testing" + "time" + + "github.com/cilium/ebpf/rlimit" + "github.com/cilium/hive/hivetest" + "github.com/google/uuid" + "github.com/stretchr/testify/require" + "github.com/vishvananda/netlink" + "k8s.io/apimachinery/pkg/types" + + "github.com/cilium/cilium/pkg/bpf" + "github.com/cilium/cilium/pkg/datapath/linux/safenetlink" + "github.com/cilium/cilium/pkg/hive" + "github.com/cilium/cilium/pkg/identity" + cilium_api_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" + "github.com/cilium/cilium/pkg/k8s/resource" + slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" + k8sTypes "github.com/cilium/cilium/pkg/k8s/types" + "github.com/cilium/cilium/pkg/labels" + "github.com/cilium/cilium/pkg/mac" + "github.com/cilium/cilium/pkg/maps/vtep" + "github.com/cilium/cilium/pkg/maps/vtep_policy" + "github.com/cilium/cilium/pkg/node/addressing" + nodeTypes "github.com/cilium/cilium/pkg/node/types" + "github.com/cilium/cilium/pkg/option" + "github.com/cilium/cilium/pkg/testutils" + testidentity "github.com/cilium/cilium/pkg/testutils/identity" +) + +const ( + testInterface1 = "cilium_egw1" + testInterface2 = "cilium_egw2" + + vtepIP1 = "1.2.3.4" + mac1 = "00:11:22:33:44:55" + + vtepIP2 = "1.2.3.5" + mac2 = "00:11:22:33:44:56" + + node1 = "k8s1" + node2 = "k8s2" + + node1IP = "192.168.1.1" + node2IP = "192.168.1.2" + + ep1IP = "10.0.0.1" + ep2IP = "10.0.0.2" + ep3IP = "10.0.0.3" + + destCIDR = "1.1.1.0/24" + + egressCIDR1 = "192.168.101.1/24" + egressCIDR2 = "192.168.102.1/24" +) + +var ( + ep1Labels = map[string]string{"test-key": "test-value-1"} + ep2Labels = map[string]string{"test-key": "test-value-2"} + + identityAllocator = testidentity.NewMockIdentityAllocator(nil) + + nodeGroup1Labels = map[string]string{"label1": "1"} + nodeGroup2Labels = map[string]string{"label2": "2"} +) + +type vtepRule struct { + sourceIP string + destCIDR string + vtepIP string + vtepMAC string +} + +type parsedVtepRule struct { + sourceIP netip.Addr + destCIDR netip.Prefix + vtepIP netip.Addr + vtepMAC mac.MAC +} + +type VtepPolicyTestSuite struct { + manager *Manager + policies fakeResource[*Policy] + nodes fakeResource[*cilium_api_v2.CiliumNode] + endpoints fakeResource[*k8sTypes.CiliumEndpoint] +} + +func setupVtepPolicyTestSuite(t *testing.T) *VtepPolicyTestSuite { + testutils.PrivilegedTest(t) + + logger := hivetest.Logger(t) + + bpf.CheckOrMountFS(logger, "") + + if err := vtep.VtepMap(nil).Create(); err != nil { + println(err) + } + + err := rlimit.RemoveMemlock() + require.NoError(t, err) + + nodeTypes.SetName(node1) + + k := &VtepPolicyTestSuite{} + k.policies = make(fakeResource[*Policy]) + k.nodes = make(fakeResource[*cilium_api_v2.CiliumNode]) + k.endpoints = make(fakeResource[*k8sTypes.CiliumEndpoint]) + + lc := hivetest.Lifecycle(t) + policyMap := vtep_policy.CreatePrivatePolicyMap(lc, nil) + + k.manager, err = newVtepPolicyManager(Params{ + Logger: logger, + Lifecycle: lc, + Config: Config{1 * time.Millisecond}, + DaemonConfig: &option.DaemonConfig{}, + IdentityAllocator: identityAllocator, + Policies: k.policies, + Endpoints: k.endpoints, + PolicyMap: policyMap, + }) + require.NoError(t, err) + require.NotNil(t, k.manager) + + return k +} + +func TestPrivilegedVtepPolicyCVPParser(t *testing.T) { + setupVtepPolicyTestSuite(t) + // must specify name + policy := policyParams{ + name: "", + destinationCIDRs: []string{destCIDR}, + } + + cvp, _ := newCVP(&policy) + _, err := ParseCVP(cvp) + require.Error(t, err) + + // catch nil DestinationCIDR field + policy = policyParams{ + name: "policy-1", + } + + cvp, _ = newCVP(&policy) + cvp.Spec.DestinationCIDRs = nil + _, err = ParseCVP(cvp) + require.Error(t, err) + + // must specify at least one DestinationCIDR + policy = policyParams{ + name: "policy-1", + } + + cvp, _ = newCVP(&policy) + _, err = ParseCVP(cvp) + require.Error(t, err) + + // catch nil VtepPolicy field + policy = policyParams{ + name: "policy-1", + destinationCIDRs: []string{destCIDR}, + } + + // must specify some sort of endpoint selector + policy = policyParams{ + name: "policy-1", + destinationCIDRs: []string{destCIDR}, + } + + cvp, _ = newCVP(&policy) + cvp.Spec.Selectors[0].NamespaceSelector = nil + cvp.Spec.Selectors[0].PodSelector = nil + _, err = ParseCVP(cvp) + require.Error(t, err) +} + +func TestPrivilegedVtepPolicyManager(t *testing.T) { + k := setupVtepPolicyTestSuite(t) + createTestInterface(t, testInterface1, []string{egressCIDR1}) + createTestInterface(t, testInterface2, []string{egressCIDR2}) + + vtepPolicyManager := k.manager + reconciliationEventsCount := vtepPolicyManager.reconciliationEventsCount.Load() + policyMap := k.manager.policyMap + + k.policies.sync(t) + k.nodes.sync(t) + k.endpoints.sync(t) + + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + node1 := newCiliumNode(node1, node1IP, nodeGroup1Labels) + k.nodes.process(t, resource.Event[*cilium_api_v2.CiliumNode]{ + Kind: resource.Upsert, + Object: node1.ToCiliumNode(), + }) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + node2 := newCiliumNode(node2, node2IP, nodeGroup2Labels) + k.nodes.process(t, resource.Event[*cilium_api_v2.CiliumNode]{ + Kind: resource.Upsert, + Object: node2.ToCiliumNode(), + }) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + // Create a new policy + policy1 := policyParams{ + name: "policy-1", + endpointLabels: ep1Labels, + destinationCIDRs: []string{destCIDR}, + podLabels: nodeGroup1Labels, + vtepIP: vtepIP1, + mac: mac1, + } + + addPolicy(t, k.policies, &policy1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{}) + + // Add a new endpoint & ID which matches policy-1 + ep1, id1 := newEndpointAndIdentity("ep-1", ep1IP, "", ep1Labels) + addEndpoint(t, k.endpoints, &ep1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep1IP, destCIDR, vtepIP1, mac1}, + }) + + // Update the endpoint labels in order for it to not be a match + id1 = updateEndpointAndIdentity(&ep1, id1, map[string]string{}) + addEndpoint(t, k.endpoints, &ep1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{}) + + // Restore the old endpoint lables in order for it to be a match + id1 = updateEndpointAndIdentity(&ep1, id1, ep1Labels) + addEndpoint(t, k.endpoints, &ep1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep1IP, destCIDR, vtepIP1, mac1}, + }) + + // Create a new policy + addPolicy(t, k.policies, &policyParams{ + name: "policy-2", + endpointLabels: ep2Labels, + destinationCIDRs: []string{destCIDR}, + podLabels: nodeGroup2Labels, + vtepIP: vtepIP2, + mac: mac2, + }) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep1IP, destCIDR, vtepIP1, mac1}, + }) + + // Add a new endpoint and ID which matches policy-2 + ep2, _ := newEndpointAndIdentity("ep-2", ep2IP, "", ep2Labels) + addEndpoint(t, k.endpoints, &ep2) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep1IP, destCIDR, vtepIP1, mac1}, + {ep2IP, destCIDR, vtepIP2, mac2}, + }) + + // Update the endpoint labels in order for it to not be a match + _ = updateEndpointAndIdentity(&ep1, id1, map[string]string{}) + addEndpoint(t, k.endpoints, &ep1) + waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep2IP, destCIDR, vtepIP2, mac2}, + }) +} + +func TestPrivilegedEndpointDataStore(t *testing.T) { + k := setupVtepPolicyTestSuite(t) + + createTestInterface(t, testInterface1, []string{egressCIDR1}) + + vtepPolicyManager := k.manager + policyMap := k.manager.policyMap + + k.policies.sync(t) + k.nodes.sync(t) + k.endpoints.sync(t) + + reconciliationEventsCount := vtepPolicyManager.reconciliationEventsCount.Load() + + node1 := newCiliumNode(node1, node1IP, nodeGroup1Labels) + k.nodes.process(t, resource.Event[*cilium_api_v2.CiliumNode]{ + Kind: resource.Upsert, + Object: node1.ToCiliumNode(), + }) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + // Create a new policy + policy1 := policyParams{ + name: "policy-1", + endpointLabels: ep1Labels, + destinationCIDRs: []string{destCIDR}, + podLabels: nodeGroup1Labels, + vtepIP: vtepIP1, + mac: mac1, + } + + addPolicy(t, k.policies, &policy1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{}) + + // Add a new endpoint & ID which matches policy-1 + ep1, _ := newEndpointAndIdentity("ep-1", ep1IP, "", ep1Labels) + addEndpoint(t, k.endpoints, &ep1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep1IP, destCIDR, vtepIP1, mac1}, + }) + + // Simulate statefulset pod migrations to a different node. + + // Produce a new endpoint ep2 similar to ep1 - with the same name & labels, but with a different IP address. + // The ep1 will be deleted. + ep2, _ := newEndpointAndIdentity(ep1.Name, ep2IP, "", ep1Labels) + + // Test event order: add new -> delete old + addEndpoint(t, k.endpoints, &ep2) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + deleteEndpoint(t, k.endpoints, &ep1) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep2IP, destCIDR, vtepIP1, mac1}, + }) + + // Produce a new endpoint ep3 similar to ep2 (and ep1) - with the same name & labels, but with a different IP address. + ep3, _ := newEndpointAndIdentity(ep1.Name, ep3IP, "", ep1Labels) + + // Test event order: delete old -> update new + deleteEndpoint(t, k.endpoints, &ep2) + reconciliationEventsCount = waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + addEndpoint(t, k.endpoints, &ep3) + waitForReconciliationRun(t, vtepPolicyManager, reconciliationEventsCount) + + assertVtepRules(t, policyMap, []vtepRule{ + {ep3IP, destCIDR, vtepIP1, mac1}, + }) +} + +func TestCell(t *testing.T) { + err := hive.New(Cell).Populate(hivetest.Logger(t)) + if err != nil { + t.Fatal(err) + } +} + +func createTestInterface(tb testing.TB, iface string, addrs []string) { + tb.Helper() + + la := netlink.NewLinkAttrs() + la.Name = iface + dummy := &netlink.Dummy{LinkAttrs: la} + if err := netlink.LinkAdd(dummy); err != nil { + tb.Fatal(err) + } + + link, err := safenetlink.LinkByName(iface) + if err != nil { + tb.Fatal(err) + } + + tb.Cleanup(func() { + if err := netlink.LinkDel(link); err != nil { + tb.Error(err) + } + }) + + if err := netlink.LinkSetUp(link); err != nil { + tb.Fatal(err) + } + + for _, addr := range addrs { + a, _ := netlink.ParseAddr(addr) + if err := netlink.AddrAdd(link, a); err != nil { + tb.Fatal(err) + } + } +} + +func waitForReconciliationRun(tb testing.TB, vtepPolicyManager *Manager, currentRun uint64) uint64 { + for range 100 { + count := vtepPolicyManager.reconciliationEventsCount.Load() + if count > currentRun { + return count + } + + // TODO: investigate why increasing the timeout was necessary to add IPv6 tests. + time.Sleep(30 * time.Millisecond) + } + + tb.Fatal("Reconciliation is taking too long to run") + return 0 +} + +func newCiliumNode(name, nodeIP string, nodeLabels map[string]string) nodeTypes.Node { + return nodeTypes.Node{ + Name: name, + Labels: nodeLabels, + IPAddresses: []nodeTypes.Address{ + { + Type: addressing.NodeInternalIP, + IP: netip.MustParseAddr(nodeIP).AsSlice(), + }, + }, + } +} + +// Mock the creation of endpoint and its corresponding identity, returns endpoint and ID. +func newEndpointAndIdentity(name, ipv4, ipv6 string, epLabels map[string]string) (k8sTypes.CiliumEndpoint, *identity.Identity) { + id, _, _ := identityAllocator.AllocateIdentity(context.Background(), labels.Map2Labels(epLabels, labels.LabelSourceK8s), true, identity.InvalidIdentity) + + return k8sTypes.CiliumEndpoint{ + ObjectMeta: slimv1.ObjectMeta{ + Name: name, + UID: types.UID(uuid.New().String()), + }, + Identity: &cilium_api_v2.EndpointIdentity{ + ID: int64(id.ID), + }, + Networking: &cilium_api_v2.EndpointNetworking{ + Addressing: cilium_api_v2.AddressPairList{ + &cilium_api_v2.AddressPair{ + IPV4: ipv4, + IPV6: ipv6, + }, + }, + }, + }, id +} + +// Mock the update of endpoint and its corresponding identity, with new labels. Returns new ID. +func updateEndpointAndIdentity(endpoint *k8sTypes.CiliumEndpoint, oldID *identity.Identity, newEpLabels map[string]string) *identity.Identity { + ctx := context.Background() + + identityAllocator.Release(ctx, oldID, true) + newID, _, _ := identityAllocator.AllocateIdentity(ctx, labels.Map2Labels(newEpLabels, labels.LabelSourceK8s), true, identity.InvalidIdentity) + endpoint.Identity.ID = int64(newID.ID) + return newID +} + +func parseVtepRule(sourceIP, destCIDR, vtepIP, vtepMAC string) parsedVtepRule { + sip := netip.MustParseAddr(sourceIP) + dc := netip.MustParsePrefix(destCIDR) + vip := netip.MustParseAddr(vtepIP) + vmac, _ := mac.ParseMAC(vtepMAC) + + return parsedVtepRule{ + sourceIP: sip, + destCIDR: dc, + vtepIP: vip, + vtepMAC: vmac, + } +} + +func assertVtepRules(t *testing.T, policyMap *vtep_policy.VtepPolicyMap, rules []vtepRule) { + t.Helper() + + err := tryAssertVtepRules(policyMap, rules) + require.NoError(t, err) +} + +func tryAssertVtepRules(policyMap *vtep_policy.VtepPolicyMap, rules []vtepRule) error { + parsedRules := []parsedVtepRule{} + for _, r := range rules { + parsedRules = append(parsedRules, parseVtepRule(r.sourceIP, r.destCIDR, r.vtepIP, r.vtepMAC)) + } + + for _, r := range parsedRules { + key := vtep_policy.NewKey(r.sourceIP, r.destCIDR) + + val, err := policyMap.Lookup(&key) + if err != nil { + return fmt.Errorf("cannot lookup policy entry: %w", err) + } + + if val == nil { + return fmt.Errorf("lookup successful but value is nil") + } + + if !val.Match(r.vtepIP, r.vtepMAC) { + return fmt.Errorf("mismatched val, wanted: %s %s, got: %s", r.vtepIP, r.vtepMAC, val) + } + } + + untrackedRule := false + policyMap.IterateWithCallback( + func(key *vtep_policy.VtepPolicyKey, val *vtep_policy.VtepPolicyVal) { + for _, r := range parsedRules { + if key.Match(r.sourceIP, r.destCIDR) && val.Match(r.vtepIP, r.vtepMAC) { + return + } + } + + untrackedRule = true + }) + + if untrackedRule { + return fmt.Errorf("Untracked vtep policy") + } + + return nil +} diff --git a/pkg/vteppolicy/policy.go b/pkg/vteppolicy/policy.go new file mode 100644 index 0000000000000..571f5c865a19a --- /dev/null +++ b/pkg/vteppolicy/policy.go @@ -0,0 +1,178 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "fmt" + "net/netip" + + "k8s.io/apimachinery/pkg/types" + + k8sConst "github.com/cilium/cilium/pkg/k8s/apis/cilium.io" + "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + k8sLabels "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/labels" + slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" + "github.com/cilium/cilium/pkg/mac" + "github.com/cilium/cilium/pkg/policy" + "github.com/cilium/cilium/pkg/policy/api" +) + +// vtepConfig is the gateway configuration derived at runtime from a policy. +type vtepConfig struct { + // vtepIP is the IP used for vxlan tunnel + vtepIP netip.Addr + // vtepMAC is the mac address of remote node behing vxlan tunnel + vtepMAC mac.MAC +} + +// PolicyConfig is the internal representation of CiliumVtepPolicy. +type PolicyConfig struct { + // id is the parsed config name and namespace + id types.NamespacedName + + podSelectors []api.EndpointSelector + dstCIDRs []netip.Prefix + + matchedEndpoints map[endpointID]*endpointMetadata + vtepConfig vtepConfig +} + +// PolicyID includes policy name and namespace +type policyID = types.NamespacedName + +// matchesNodeLabels determines if the given node lables is a match for the +// policy config based on matching labels. +func (config *PolicyConfig) matchesPodLabels(podLabels map[string]string) bool { + labelsToMatch := k8sLabels.Set(podLabels) + for _, selector := range config.podSelectors { + if selector.Matches(labelsToMatch) { + return true + } + } + return false +} + +// updateMatchedEndpointIDs update the policy's cache of matched endpoint IDs +func (config *PolicyConfig) updateMatchedEndpointIDs(epDataStore map[endpointID]*endpointMetadata) { + config.matchedEndpoints = make(map[endpointID]*endpointMetadata) + for _, endpoint := range epDataStore { + if config.matchesPodLabels(endpoint.labels) { + config.matchedEndpoints[endpoint.id] = endpoint + } + } +} + +// forEachEndpointAndCIDR iterates through each combination of endpoints and +// destination/excluded CIDRs of the receiver policy, and for each of them it +// calls the f callback function passing the given endpoint and CIDR, together +// with a boolean value indicating if the CIDR belongs to the excluded ones and +// the vtepConfig of the receiver policy +func (config *PolicyConfig) forEachEndpointAndCIDR(f func(netip.Addr, netip.Prefix, *vtepConfig)) { + for _, endpoint := range config.matchedEndpoints { + for _, endpointIP := range endpoint.ips { + for _, dstCIDR := range config.dstCIDRs { + f(endpointIP, dstCIDR, &config.vtepConfig) + } + } + } +} + +// ParseCVP takes a CiliumVtepPolicy CR and converts to PolicyConfig, +// the internal representation of the vtep policy +func ParseCVP(cvp *v2alpha1.CiliumVtepPolicy) (*PolicyConfig, error) { + var podSelectorList []api.EndpointSelector + var dstCidrList []netip.Prefix + var vtepIP netip.Addr + + allowAllNamespacesRequirement := slim_metav1.LabelSelectorRequirement{ + Key: k8sConst.PodNamespaceLabel, + Operator: slim_metav1.LabelSelectorOpExists, + } + + name := cvp.ObjectMeta.Name + if name == "" { + return nil, fmt.Errorf("must have a name") + } + + destinationCIDRs := cvp.Spec.DestinationCIDRs + if destinationCIDRs == nil { + return nil, fmt.Errorf("destinationCIDRs can't be empty") + } + + externalVTEP := cvp.Spec.ExternalVTEP + if externalVTEP == nil { + return nil, fmt.Errorf("externalVTEP can't be empty") + } + + vtepIP, err := netip.ParseAddr(externalVTEP.IP) + if err != nil { + return nil, fmt.Errorf("cannot parse vtep ip") + } + + vtepMAC, err := mac.ParseMAC(string(externalVTEP.MAC)) + if err != nil { + return nil, fmt.Errorf("cannot parse vtep mac %s: %w", vtepMAC, err) + } + + for _, cidrString := range destinationCIDRs { + cidr, err := netip.ParsePrefix(string(cidrString)) + if err != nil { + return nil, fmt.Errorf("failed to parse destination CIDR %s: %w", cidrString, err) + } + dstCidrList = append(dstCidrList, cidr) + } + + for _, vtepRule := range cvp.Spec.Selectors { + if vtepRule.NamespaceSelector != nil { + prefixedNsSelector := vtepRule.NamespaceSelector + matchLabels := map[string]string{} + // We use our own special label prefix for namespace metadata, + // thus we need to prefix that prefix to all NamespaceSelector.MatchLabels + for k, v := range vtepRule.NamespaceSelector.MatchLabels { + matchLabels[policy.JoinPath(k8sConst.PodNamespaceMetaLabels, k)] = v + } + + prefixedNsSelector.MatchLabels = matchLabels + + // We use our own special label prefix for namespace metadata, + // thus we need to prefix that prefix to all NamespaceSelector.MatchLabels + for i, lsr := range vtepRule.NamespaceSelector.MatchExpressions { + lsr.Key = policy.JoinPath(k8sConst.PodNamespaceMetaLabels, lsr.Key) + prefixedNsSelector.MatchExpressions[i] = lsr + } + + // Empty namespace selector selects all namespaces (i.e., a namespace + // label exists). + if len(vtepRule.NamespaceSelector.MatchLabels) == 0 && len(vtepRule.NamespaceSelector.MatchExpressions) == 0 { + prefixedNsSelector.MatchExpressions = []slim_metav1.LabelSelectorRequirement{allowAllNamespacesRequirement} + } + } else if vtepRule.PodSelector != nil { + podSelectorList = append( + podSelectorList, + api.NewESFromK8sLabelSelector("", vtepRule.PodSelector)) + } else { + return nil, fmt.Errorf("cannot have both nil namespace selector and nil pod selector") + } + } + + return &PolicyConfig{ + podSelectors: podSelectorList, + dstCIDRs: dstCidrList, + vtepConfig: vtepConfig{ + vtepIP: vtepIP, + vtepMAC: vtepMAC, + }, + matchedEndpoints: make(map[endpointID]*endpointMetadata), + id: types.NamespacedName{ + Name: name, + }, + }, nil +} + +// ParseCEGPConfigID takes a CiliumVtepPolicy CR and returns only the config id +func ParseCVPConfigID(cvp *v2alpha1.CiliumVtepPolicy) types.NamespacedName { + return policyID{ + Name: cvp.Name, + } +} diff --git a/pkg/vteppolicy/policy_test.go b/pkg/vteppolicy/policy_test.go new file mode 100644 index 0000000000000..7998e3c013765 --- /dev/null +++ b/pkg/vteppolicy/policy_test.go @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "net/netip" + "testing" + + "github.com/stretchr/testify/assert" + "k8s.io/apimachinery/pkg/types" + + slimv1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" + "github.com/cilium/cilium/pkg/policy/api" +) + +func TestPolicyConfig_updateMatchedEndpointIDs(t *testing.T) { + type fields struct { + id types.NamespacedName + endpointSelectors []api.EndpointSelector + podSelectors []api.EndpointSelector + dstCIDRs []netip.Prefix + matchedEndpoints map[endpointID]*endpointMetadata + } + type args struct { + epDataStore map[endpointID]*endpointMetadata + } + tests := []struct { + name string + fields fields + args args + want int + wantEndpointID endpointID + }{ + { + name: "Test updateMatchedEndpointIDs with endpoints", + fields: fields{ + id: types.NamespacedName{ + Name: "test", + }, + endpointSelectors: []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "test", + }, + }, + }, + }, + podSelectors: []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "test", + }, + }, + }, + }, + }, + args: args{ + epDataStore: map[endpointID]*endpointMetadata{ + "123456": { + id: "123456", + labels: map[string]string{ + "app": "test", + }, + }, + }, + }, + want: 1, + wantEndpointID: endpointID("123456"), + }, + { + name: "Test updateMatchedEndpointIDs endpoints with no match", + fields: fields{ + id: types.NamespacedName{ + Name: "test", + }, + endpointSelectors: []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "test", + }, + }, + }, + }, + podSelectors: []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: map[string]string{ + "pod-name": "pod1", + }, + }, + }, + }, + }, + args: args{ + epDataStore: map[endpointID]*endpointMetadata{ + "123456": { + id: "123456", + labels: map[string]string{ + "app": "test", + }, + }, + }, + }, + want: 0, + wantEndpointID: "", + }, + { + name: "Test updateMatchedEndpointIDs endpoints with no match label", + fields: fields{ + id: types.NamespacedName{ + Name: "test", + }, + endpointSelectors: []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "test", + }, + }, + }, + }, + podSelectors: []api.EndpointSelector{ + { + LabelSelector: &slimv1.LabelSelector{ + MatchLabels: map[string]string{ + "pod-name": "pod1", + }, + }, + }, + }, + }, + args: args{ + epDataStore: map[endpointID]*endpointMetadata{ + "123456": { + id: "123456", + labels: map[string]string{ + "app": "test", + }, + }, + }, + }, + want: 0, + wantEndpointID: "", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + config := &PolicyConfig{ + id: tt.fields.id, + podSelectors: tt.fields.podSelectors, + dstCIDRs: tt.fields.dstCIDRs, + matchedEndpoints: tt.fields.matchedEndpoints, + } + config.updateMatchedEndpointIDs(tt.args.epDataStore) + assert.Len(t, config.matchedEndpoints, tt.want) + if tt.want > 0 { + assert.Contains(t, config.matchedEndpoints, endpointID(tt.wantEndpointID)) + } + }) + } +} diff --git a/pkg/vteppolicy/resource.go b/pkg/vteppolicy/resource.go new file mode 100644 index 0000000000000..eb44894e9a697 --- /dev/null +++ b/pkg/vteppolicy/resource.go @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Cilium + +package vteppolicy + +import ( + "github.com/cilium/hive/cell" + + "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" + "github.com/cilium/cilium/pkg/k8s/client" + "github.com/cilium/cilium/pkg/k8s/resource" + "github.com/cilium/cilium/pkg/k8s/utils" +) + +type Policy = v2alpha1.CiliumVtepPolicy + +func newPolicyResource(lc cell.Lifecycle, c client.Clientset) resource.Resource[*Policy] { + if !c.IsEnabled() { + return nil + } + lw := utils.ListerWatcherFromTyped(c.CiliumV2alpha1().CiliumVtepPolicies()) + return resource.New[*Policy](lc, lw, nil) +}

CsNY9Djkd4+G?yxKsB;-4fMxcgGW{k+ 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

dzm%a(DE$L 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 U=i8R!72un=~>AC0THz&Z2$lO diff --git a/Documentation/installation/images/rancher_cluster_cilium_app_upgrade.png b/Documentation/installation/images/rancher_cluster_cilium_app_upgrade.png index 66d3d791b4052402d9988cbfa5585823496ab01e..bbbaac5a1a04ce89d71670d59dd1dfffabfa630e 100644 GIT binary patch literal 427641 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