From 2fef0d0d7156bdcc83fc471649ab568121e886f1 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Sun, 23 Jun 2024 20:59:13 +0300 Subject: [PATCH 01/91] support match expression operators for generating and selecting representative peers + first examples --- pkg/netpol/connlist/connlist_test.go | 22 ++ pkg/netpol/connlist/conns_formatter.go | 44 ++- pkg/netpol/connlist/exposure_analysis_test.go | 8 +- pkg/netpol/eval/exposure.go | 50 +++- pkg/netpol/eval/internal/k8s/netpol.go | 70 +++-- pkg/netpol/eval/internal/k8s/peer.go | 3 + pkg/netpol/eval/internal/k8s/pod.go | 5 + .../internal/k8s/representative_selectors.go | 279 ++++++++++++++++++ pkg/netpol/eval/resources.go | 18 +- .../internal/common/netpol_commands_common.go | 7 + ...ity_frontend_demos_connlist_output.dot.png | Bin 114 -> 9104 bytes ...ity_frontend_demos_connlist_output.dot.svg | 25 +- ...sion_does_not_exist_op_connlist_output.csv | 16 + ...sion_does_not_exist_op_connlist_output.dot | 26 ++ ..._does_not_exist_op_connlist_output.dot.png | Bin 0 -> 45875 bytes ..._does_not_exist_op_connlist_output.dot.svg | 114 +++++++ ...ion_does_not_exist_op_connlist_output.json | 60 ++++ ...ssion_does_not_exist_op_connlist_output.md | 20 ++ ...sion_does_not_exist_op_connlist_output.txt | 19 ++ ...h_expression_exists_op_connlist_output.csv | 15 + ...h_expression_exists_op_connlist_output.dot | 25 ++ ...pression_exists_op_connlist_output.dot.png | Bin 0 -> 45953 bytes ...pression_exists_op_connlist_output.dot.svg | 107 +++++++ ..._expression_exists_op_connlist_output.json | 55 ++++ ...ch_expression_exists_op_connlist_output.md | 19 ++ ...h_expression_exists_op_connlist_output.txt | 18 ++ ...match_expression_in_op_connlist_output.csv | 13 + ...match_expression_in_op_connlist_output.dot | 30 ++ ...h_expression_in_op_connlist_output.dot.png | Bin 0 -> 43707 bytes ...h_expression_in_op_connlist_output.dot.svg | 111 +++++++ ...atch_expression_in_op_connlist_output.json | 45 +++ ..._match_expression_in_op_connlist_output.md | 17 ++ ...match_expression_in_op_connlist_output.txt | 15 + ...h_expression_not_in_op_connlist_output.csv | 16 + ...h_expression_not_in_op_connlist_output.dot | 26 ++ ...pression_not_in_op_connlist_output.dot.png | Bin 0 -> 46966 bytes ...pression_not_in_op_connlist_output.dot.svg | 114 +++++++ ..._expression_not_in_op_connlist_output.json | 60 ++++ ...ch_expression_not_in_op_connlist_output.md | 20 ++ ...h_expression_not_in_op_connlist_output.txt | 19 ++ .../namespace_and_deployments.yaml | 52 ++++ .../netpol.yaml | 21 ++ .../namespace_and_deployments.yaml | 52 ++++ .../netpol.yaml | 21 ++ .../netpol.yaml | 25 ++ .../ns_and_deployments.yaml | 31 ++ .../namespace_and_deployments.yaml | 52 ++++ .../netpol.yaml | 27 ++ 48 files changed, 1725 insertions(+), 67 deletions(-) create mode 100644 pkg/netpol/eval/internal/k8s/representative_selectors.go create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.txt create mode 100644 tests/test_exposure_with_match_expression_does_not_exist_op/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_match_expression_does_not_exist_op/netpol.yaml create mode 100644 tests/test_exposure_with_match_expression_exists_op/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_match_expression_exists_op/netpol.yaml create mode 100644 tests/test_exposure_with_match_expression_in_op/netpol.yaml create mode 100644 tests/test_exposure_with_match_expression_in_op/ns_and_deployments.yaml create mode 100644 tests/test_exposure_with_match_expression_not_in_op/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_match_expression_not_in_op/netpol.yaml diff --git a/pkg/netpol/connlist/connlist_test.go b/pkg/netpol/connlist/connlist_test.go index e67e5858..c6f5a035 100644 --- a/pkg/netpol/connlist/connlist_test.go +++ b/pkg/netpol/connlist/connlist_test.go @@ -956,4 +956,26 @@ var goodPathTests = []struct { exposureAnalysis: true, outputFormats: ValidFormats, }, + // tests on exposure with matchExpression selectors (generating representative peers from selectors with matchExpression + // requires special handling) + { + testDirName: "test_exposure_with_match_expression_not_in_op", + exposureAnalysis: true, + outputFormats: ValidFormats, + }, + { + testDirName: "test_exposure_with_match_expression_in_op", + exposureAnalysis: true, + outputFormats: ValidFormats, + }, + { + testDirName: "test_exposure_with_match_expression_exists_op", + exposureAnalysis: true, + outputFormats: ValidFormats, + }, + { + testDirName: "test_exposure_with_match_expression_does_not_exist_op", + exposureAnalysis: true, + outputFormats: ValidFormats, + }, } diff --git a/pkg/netpol/connlist/conns_formatter.go b/pkg/netpol/connlist/conns_formatter.go index 2de24fbc..931577d1 100644 --- a/pkg/netpol/connlist/conns_formatter.go +++ b/pkg/netpol/connlist/conns_formatter.go @@ -11,8 +11,6 @@ import ( "sort" "strings" - "k8s.io/apimachinery/pkg/labels" - "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" ) @@ -77,11 +75,23 @@ func formSingleP2PConn(conn Peer2PeerConnection) singleConnFields { return singleConnFields{Src: conn.Src().String(), Dst: conn.Dst().String(), ConnString: connStr} } +// commonly (to be) used for exposure analysis output formatters const ( entireCluster = "entire-cluster" exposureAnalysisHeader = "Exposure Analysis Result:" egressExposureHeader = "Egress Exposure:" ingressExposureHeader = "Ingress Exposure:" + stringInBrackets = "[%s]" + mapOpen = "{" + mapClose = "}" + equal = "=" + comma = "," + key = "key" + colon = ": " + space = " " + notIn = "NotIn" + doesNotExist = "DoesNotExist" + exists = "Exists" ) // formSingleExposureConn returns a representation of single exposure connection fields as singleConnFields object @@ -104,16 +114,28 @@ func formExposureItemAsSingleConnFiled(peerStr string, exposureItem XgressExposu } // convertLabelsMapToString returns a string representation of the given labels map +// considers the special labels (with requirements such as Exists, DoesNotExist, NotIn) func convertLabelsMapToString(labelsMap map[string]string) string { - return labels.SelectorFromSet(labels.Set(labelsMap)).String() + labelsSrings := make([]string, 0) + for k, v := range labelsMap { + if v == common.ExistsVal { + labelsSrings = append(labelsSrings, k+space+exists) + continue + } + if v == common.DoesNotExistVal { + labelsSrings = append(labelsSrings, k+space+doesNotExist) + continue + } + if strings.HasPrefix(v, common.NotPrefix) { + labelsSrings = append(labelsSrings, k+space+notIn+space+v[1:]) + continue + } + labelsSrings = append(labelsSrings, k+equal+v) + } + sort.Strings(labelsSrings) + return mapOpen + strings.Join(labelsSrings, comma) + mapClose } -const ( - stringInBrackets = "[%s]" - mapOpen = "{" - mapClose = "}" -) - // getRepresentativeNamespaceString returns a string representation of a potential peer with namespace labels. // if namespace with multiple words adds [] , in case of textual (non-graphical) output func getRepresentativeNamespaceString(nsLabels map[string]string, txtOutFlag bool) string { @@ -123,7 +145,7 @@ func getRepresentativeNamespaceString(nsLabels map[string]string, txtOutFlag boo } res := "" if len(nsLabels) > 0 { - res += "namespace with " + mapOpen + convertLabelsMapToString(nsLabels) + mapClose + res += "namespace with " + convertLabelsMapToString(nsLabels) } else { res += allNamespacesLbl } @@ -141,7 +163,7 @@ func getRepresentativePodString(podLabels map[string]string, txtOutFlag bool) st if len(podLabels) == 0 { res += allPeersLbl } else { - res += "pod with " + mapOpen + convertLabelsMapToString(podLabels) + mapClose + res += "pod with " + convertLabelsMapToString(podLabels) } if txtOutFlag { return fmt.Sprintf(stringInBrackets, res) diff --git a/pkg/netpol/connlist/exposure_analysis_test.go b/pkg/netpol/connlist/exposure_analysis_test.go index ddcaa0b4..b0023e67 100644 --- a/pkg/netpol/connlist/exposure_analysis_test.go +++ b/pkg/netpol/connlist/exposure_analysis_test.go @@ -149,7 +149,7 @@ func TestExposureBehavior(t *testing.T) { lenIngressExposedConns: 2, ingressExp: []*xgressExposure{ peerExposedToEntireClusterOnTCP8050, - newExpDataWithLabelAndTCPConn(map[string]string{"foo.com/managed-state": "managed"}, nil, []int{8050, 8090}), + newExpDataWithLabelAndTCPConn(map[string]string{"foo.com/managed-state": "managed"}, map[string]string{}, []int{8050, 8090}), }, lenEgressExposedConns: 0, }, @@ -184,9 +184,9 @@ func TestExposureBehavior(t *testing.T) { isEgressProtected: false, lenIngressExposedConns: 3, ingressExp: []*xgressExposure{ - newExpDataWithLabelAndTCPConn(map[string]string{"foo.com/managed-state": "managed"}, nil, []int{8050}), - newExpDataWithLabelAndTCPConn(map[string]string{"release": "stable"}, nil, []int{}), - newExpDataWithLabelAndTCPConn(map[string]string{"effect": "NoSchedule"}, nil, []int{8050}), + newExpDataWithLabelAndTCPConn(map[string]string{"foo.com/managed-state": "managed"}, map[string]string{}, []int{8050}), + newExpDataWithLabelAndTCPConn(map[string]string{"release": "stable"}, map[string]string{}, []int{}), + newExpDataWithLabelAndTCPConn(map[string]string{"effect": "NoSchedule"}, map[string]string{}, []int{8050}), }, lenEgressExposedConns: 0, }, diff --git a/pkg/netpol/eval/exposure.go b/pkg/netpol/eval/exposure.go index 59c263a5..98068679 100644 --- a/pkg/netpol/eval/exposure.go +++ b/pkg/netpol/eval/exposure.go @@ -30,18 +30,40 @@ func generateNewPodName(index int) string { } // generateRepresentativePeers : generates and adds to policy engine representative peers where each peer -// has namespace and pod labels inferred from single policy rule labels in the given list of selectors; -// for example, if a rule within policy has namespaceSelector "foo: managed", then a representative pod in such a +// has namespace and pod labels inferred from single entry of selectors in a policy rule list; +// +// - for example, if a rule within policy has an entry: namespaceSelector "foo: managed", then a representative pod in such a // namespace with those labels will be added, representing all potential pods in such a namespace. -// generated representative peers are unique; i.e. if different rules (e.g in different policies or different directions) has same labels : -// one representative peer is generated to represent both -func (pe *PolicyEngine) generateRepresentativePeers(selectorsLabels []k8s.SingleRuleLabels, policyName, policyNs string) (err error) { - for i := range selectorsLabels { +// - generated representative peers are unique; i.e. if different rules (e.g in different policies or different directions) +// has same labels, one representative peer is generated to represent both +func (pe *PolicyEngine) generateRepresentativePeers(selectors []k8s.SingleRuleSelectors, policyName, policyNs string) (err error) { + for i := range selectors { + // 1. first convert each rule selectors' pair (podSelector and namespaceSelector) to pairs of its matching labels maps. + // each pair contains map of namespaceLabels and map of podLabels + // a representative peer will be generated for each pair + labelsPairs := k8s.ConvertSelectorsToLabelsCombinations(&selectors[i]) + // 2. secondly: for each pair of labels, generate a representative peer + err := pe.generateRepresentativePeerPerLabelsPair(labelsPairs, selectors[i].PolicyNsFlag, policyName, policyNs, i) + if err != nil { + return err + } + } + return nil +} + +// generateRepresentativePeerPerLabelsPair : gets list of pairs of namespaceLabels and podLabels maps, +// and creates a new representative peer for each pair. +// if policyNsFlag is true, i.e. the namespaceSelector is nil, a representative peer is created in +// the namespace of the policy with given podLabels maps. +func (pe *PolicyEngine) generateRepresentativePeerPerLabelsPair(labelsPairs k8s.LabelsPairsList, policyNsFlag bool, policyName, + policyNs string, selectorNum int) (err error) { + for i := range labelsPairs { // if ns labels of the rule selector was nil, then the namespace of the pod is same as the policy's namespace - if selectorsLabels[i].PolicyNsFlag { - _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i), policyNs, &selectorsLabels[i]) + if policyNsFlag { + _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i+selectorNum), policyNs, &labelsPairs[i]) } else { - _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i), generateNewNamespaceName(policyName, i), &selectorsLabels[i]) + _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i+selectorNum), generateNewNamespaceName(policyName, i+selectorNum), + &labelsPairs[i]) } if err != nil { return err @@ -68,7 +90,7 @@ func (pe *PolicyEngine) extractLabelsAndRefineRepresentativePeers(podObj *k8s.Po // refineRepresentativePeersMatchingLabels removes from the policy engine all representative peers // with labels matching the given labels of a real pod -// representative peers matching any-namespace will not be removed. +// representative peers matching any-namespace or any-pod in a namespace will not be removed. func (pe *PolicyEngine) refineRepresentativePeersMatchingLabels(realPodLabels, realNsLabels map[string]string) { keysToDelete := make([]string, 0) // look for representative peers with labels matching the given real pod's (and its namespace) labels @@ -87,7 +109,13 @@ func (pe *PolicyEngine) refineRepresentativePeersMatchingLabels(realPodLabels, r // in the general conns compute and won't get here. continue } - // remove representative peer matching both realPodLabels and realNsLabels. + if peer.HasUnusualNsLabels || peer.Pod.HasUnusualPodLabels { + // a representative peer with labels inferred from requirements of matchExpression with operators : Exists/DoesNotExist/NotIn + // will not be refined + continue + } + // representative peer with regular labels inferred from selectors with matchLabels or matchExpression with operator In; + // is removed (refined) if matches both realPodLabels and realNsLabels. if potentialPodSelector.Matches(labels.Set(realPodLabels)) && potentialNsSelector.Matches(labels.Set(realNsLabels)) { keysToDelete = append(keysToDelete, key) } diff --git a/pkg/netpol/eval/internal/k8s/netpol.go b/pkg/netpol/eval/internal/k8s/netpol.go index 0626ec41..7f0466a0 100644 --- a/pkg/netpol/eval/internal/k8s/netpol.go +++ b/pkg/netpol/eval/internal/k8s/netpol.go @@ -208,7 +208,14 @@ func (np *NetworkPolicy) ruleSelectsPeer(rulePeers []netv1.NetworkPolicyPeer, pe return false, err } peerNamespace := peer.GetPeerNamespace() - peerMatchesNamespaceSelector = selector.Matches(labels.Set(peerNamespace.Labels)) + // checking if a selector matches labels by peer type; since representative peers selectors may need special handling + if isRepresentativePod(peer) { + // representative peer's namespace labels may be inferred from a rule with special matchExpression requirements + // and also contains the representative ns name label which is not relevant for comparison + peerMatchesNamespaceSelector = SelectorMatchesRepresentativePeerLabels(selector, peer.GetPeerNamespace().Labels, true) + } else { + peerMatchesNamespaceSelector = selector.Matches(labels.Set(peerNamespace.Labels)) + } } if !peerMatchesNamespaceSelector { continue // skip to next peerObj @@ -220,7 +227,13 @@ func (np *NetworkPolicy) ruleSelectsPeer(rulePeers []netv1.NetworkPolicyPeer, pe if err != nil { return false, err } - peerMatchesPodSelector = selector.Matches(labels.Set(peer.GetPeerPod().Labels)) + // checking if a selector matches labels by peer type; since representative peers selectors may need special handling + if isRepresentativePod(peer) { + peerMatchesPodSelector = SelectorMatchesRepresentativePeerLabels(selector, peer.GetPeerPod().Labels, + peer.GetPeerPod().HasUnusualPodLabels) + } else { + peerMatchesPodSelector = selector.Matches(labels.Set(peer.GetPeerPod().Labels)) + } } if peerMatchesPodSelector { return true, nil // matching both pod selector and ns_selector here @@ -431,6 +444,11 @@ func (np *NetworkPolicy) Selects(p *Pod, direction netv1.PolicyType) (bool, erro if !np.policyAffectsDirection(direction) { return false, nil } + // currently ignoring policies which select representative peers, as exposure analysis goal is + // to hint where a policy selecting real workloads can be tightened + if p.IsPodRepresentative() { + return false, nil + } // @todo check if the empty selector is handled by Matches() below if len(np.Spec.PodSelector.MatchLabels) == 0 && len(np.Spec.PodSelector.MatchExpressions) == 0 { @@ -451,11 +469,11 @@ func (np *NetworkPolicy) fullName() string { // ///////////////////////////////////////////////////////////////////////////////////////////// // pre-processing computations - currently performed for exposure-analysis goals only; -// SingleRuleLabels contains maps of : labels inferred from namespaceSelector or/and podSelector +// SingleRuleSelectors contains labels.Selector objects parsed from namespaceSelector or/and podSelector // within a single rule in the policy -type SingleRuleLabels struct { - NsLabels map[string]string - PodLabels map[string]string +type SingleRuleSelectors struct { + NsSelector labels.Selector + PodSelector labels.Selector // policyNsFlag indicates if the rule contains only podSelector; // so the NsLabels map contains only the default name key of the policy's namespace PolicyNsFlag bool @@ -463,9 +481,8 @@ type SingleRuleLabels struct { // ScanPolicyRulesForGeneralConnsAndRepresentativePeers scans policy rules and : // - updates policy's general connections with all destinations or/ and with entire cluster for ingress and/ or egress directions -// - returns list of selectors labels from rules which has non-empty namespace selectors (from rules with namespaceSelector only) -// TODO: support checking rules with podSelector -func (np *NetworkPolicy) ScanPolicyRulesForGeneralConnsAndRepresentativePeers() (rulesSelectors []SingleRuleLabels, err error) { +// - returns list of labels.selectors from rules which has non-empty selectors +func (np *NetworkPolicy) ScanPolicyRulesForGeneralConnsAndRepresentativePeers() (rulesSelectors []SingleRuleSelectors, err error) { if np.policyAffectsDirection(netv1.PolicyTypeIngress) { selectors, err := np.scanIngressRules() if err != nil { @@ -483,8 +500,8 @@ func (np *NetworkPolicy) ScanPolicyRulesForGeneralConnsAndRepresentativePeers() return rulesSelectors, nil } -func (np *NetworkPolicy) scanIngressRules() ([]SingleRuleLabels, error) { - rulesSelectors := []SingleRuleLabels{} +func (np *NetworkPolicy) scanIngressRules() ([]SingleRuleSelectors, error) { + rulesSelectors := []SingleRuleSelectors{} for _, rule := range np.Spec.Ingress { rulePeers := rule.From rulePorts := rule.Ports @@ -497,8 +514,8 @@ func (np *NetworkPolicy) scanIngressRules() ([]SingleRuleLabels, error) { return rulesSelectors, nil } -func (np *NetworkPolicy) scanEgressRules() ([]SingleRuleLabels, error) { - rulesSelectors := []SingleRuleLabels{} +func (np *NetworkPolicy) scanEgressRules() ([]SingleRuleSelectors, error) { + rulesSelectors := []SingleRuleSelectors{} for _, rule := range np.Spec.Egress { rulePeers := rule.To rulePorts := rule.Ports @@ -519,54 +536,47 @@ func (np *NetworkPolicy) scanEgressRules() ([]SingleRuleLabels, error) { // else: returns selectors of non-general rules (rules that are not exposed to entire world or cluster). // this func assumes rules are legal (rules correctness check occurs later) func (np *NetworkPolicy) doRulesExposeToAllDestOrEntireCluster(rules []netv1.NetworkPolicyPeer, rulePorts []netv1.NetworkPolicyPort, - isIngress bool) (rulesSelectors []SingleRuleLabels, err error) { + isIngress bool) (rulesSelectors []SingleRuleSelectors, err error) { if len(rules) == 0 { err = np.updateNetworkPolicyGeneralConn(true, true, rulePorts, isIngress) return nil, err } for i := range rules { - var ruleSel SingleRuleLabels + var ruleSel SingleRuleSelectors if rules[i].IPBlock != nil { continue } - // note: LabelSelectorAsMap returns a nil map for nil selector, - // and returns empty map (map[string]string{}) for empty selector (all) - nsSelectorMap, err := metav1.LabelSelectorAsMap(rules[i].NamespaceSelector) + nsSelector, err := np.parseNetpolLabelSelector(rules[i].NamespaceSelector) if err != nil { return nil, err } - podSelectorMap, err := metav1.LabelSelectorAsMap(rules[i].PodSelector) + podSelector, err := np.parseNetpolLabelSelector(rules[i].PodSelector) if err != nil { return nil, err } // a rule is exposed to entire cluster if : // 1. the podSelector is nil (no podselector) but the namespaceSelector is empty ({}) // 2. both podSelector and namespaceSelector are empty ({}) - if (rules[i].PodSelector == nil && isEmptyMap(nsSelectorMap)) || - (isEmptyMap(nsSelectorMap) && isEmptyMap(podSelectorMap)) { + if nsSelector.Empty() && (rules[i].PodSelector == nil || podSelector.Empty()) { err = np.updateNetworkPolicyGeneralConn(false, true, rulePorts, isIngress) return nil, err } - // else (selector not empty) - ruleSel.PodLabels = podSelectorMap + // else (at least one of the selectors is not empty) + ruleSel.PodSelector = podSelector.DeepCopySelector() // special case: ns selector is nil but podSelector is not, so the namespace of the rule is // the policy's namespace; adding the k8s namespace name key to ruleSel.NsLabels if rules[i].NamespaceSelector == nil && rules[i].PodSelector != nil { ruleSel.PolicyNsFlag = true - ruleSel.NsLabels = map[string]string{common.K8sNsNameLabelKey: np.Namespace} + nsNameLabelSel := map[string]string{common.K8sNsNameLabelKey: np.Namespace} + ruleSel.NsSelector = labels.SelectorFromSet(nsNameLabelSel) } else { - ruleSel.NsLabels = nsSelectorMap + ruleSel.NsSelector = nsSelector.DeepCopySelector() } rulesSelectors = append(rulesSelectors, ruleSel) } return rulesSelectors, nil } -// isEmptyMap gets a labels map and returns if it is not nil but empty map -func isEmptyMap(labelsMap map[string]string) bool { - return labelsMap != nil && len(labelsMap) == 0 -} - func (np *NetworkPolicy) updateNetworkPolicyGeneralConn(allDests, entireCluster bool, rulePorts []netv1.NetworkPolicyPort, isIngress bool) error { ruleConns, err := np.ruleConnections(rulePorts, nil) diff --git a/pkg/netpol/eval/internal/k8s/peer.go b/pkg/netpol/eval/internal/k8s/peer.go index d104010b..265f5bcd 100644 --- a/pkg/netpol/eval/internal/k8s/peer.go +++ b/pkg/netpol/eval/internal/k8s/peer.go @@ -65,6 +65,9 @@ type RepresentativePeer struct { // and its namespace is a fake namespace with the namespaceSelector labels (those labels also stored in PotentialNamespaceLabels) Pod *Pod PotentialNamespaceLabels map[string]string + // HasUnusualNsLabels indicates if the potential namespace labels set of the representative peer contains any labels inferred + // from a selector with matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling + HasUnusualNsLabels bool } const podKind = "Pod" diff --git a/pkg/netpol/eval/internal/k8s/pod.go b/pkg/netpol/eval/internal/k8s/pod.go index 1a5a4051..7387a223 100644 --- a/pkg/netpol/eval/internal/k8s/pod.go +++ b/pkg/netpol/eval/internal/k8s/pod.go @@ -60,6 +60,9 @@ type Pod struct { // - and the maximal connection-set for which the pod is exposed to all namespaces by network policies // on egress direction EgressExposureData PodExposureInfo + // HasUnusualPodLabels indicates if the pod labels set (in case of representative peer's pod) contains any labels inferred + // from a selector with matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling + HasUnusualPodLabels bool } // Owner encapsulates pod owner workload info @@ -90,6 +93,7 @@ func PodFromCoreObject(p *corev1.Pod) (*Pod, error) { FakePod: false, IngressExposureData: initiatePodExposure(), EgressExposureData: initiatePodExposure(), + HasUnusualPodLabels: false, } copy(pr.IPs, p.Status.PodIPs) @@ -214,6 +218,7 @@ func PodsFromWorkloadObject(workload interface{}, kind string) ([]*Pod, error) { pod.FakePod = false pod.IngressExposureData = initiatePodExposure() pod.EgressExposureData = initiatePodExposure() + pod.HasUnusualPodLabels = false for k, v := range podTemplate.Labels { pod.Labels[k] = v } diff --git a/pkg/netpol/eval/internal/k8s/representative_selectors.go b/pkg/netpol/eval/internal/k8s/representative_selectors.go new file mode 100644 index 00000000..7523407b --- /dev/null +++ b/pkg/netpol/eval/internal/k8s/representative_selectors.go @@ -0,0 +1,279 @@ +/* +Copyright 2023- IBM Inc. All Rights Reserved. + +SPDX-License-Identifier: Apache-2.0 +*/ + +package k8s + +import ( + "strings" + + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" + + "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" +) + +// this file handles converting and checking match of representative peers' labels. +// since a representative peer is a peer inferred from a network-policy rule, its pod's and namespace's labels +// may have special labels cases, and thus need to be handled differently from usual accepted k8s labels (regular :). + +// examples: +// 1. if we have a policy rule with: +// - podSelector: +// matchExpressions: +// {key: app, operator: Exists} +// +// this rule will be converted when generating a matching representative peer. +// the representative peer's pod will has an `app: ` in its podLabels map. +// +// 2. if we have a policy rule with: +// - podSelector: +// matchExpressions: +// {key: name, operator: In, values: [payroll, web]} +// two different representative peers will be generated from this PodSelector; one with pod label {name:payroll} , +// and the second with pod label {name:web} + +// /////////////////////////////////////////// +const ( + notSuffix = ")" + comma = "," +) + +// labelsSet is an alias for labels map (map[string]string) +type labelsSet map[string]string + +// copyLabelsSet - helping func, copies the current labelsSet (map of labels) +func (ls labelsSet) copyLabelsSet() labelsSet { + res := make(labelsSet, len(ls)) + for k, v := range ls { + res[k] = v + } + return res +} + +// RepresentativePeerLabels contains the namespace and pod labels for generating a single representative peer +type RepresentativePeerLabels struct { + // NsLabels the labels of the namespace of the representative peer + NsLabels labelsSet + // PodLabels the labels of the pod of the representative peer + PodLabels labelsSet + // UnusualPodLabelsFlag indicates if the labels set inferred from a podSelector that contains + // matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling + UnusualPodLabelsFlag bool + // UnusualNsLabelsFlag indicates if the labels set inferred from a namespaceSelector that contains + // matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling + UnusualNsLabelsFlag bool +} + +// LabelsPairsList list of pairs of matching labels which were inferred from combinations of policy rules' selectors, +// each pair in the list represents labels of a single representative peer +// i.e. a representative peer will be generated for each item in the list +type LabelsPairsList []RepresentativePeerLabels + +// ****************************************************************** // +// Converting selector to list of labels sets [](map[string]string)): +// ------------------------------------------------------------------ +// - selector with "matchLabels", is converted to one map of labels since "matchLabels" rule can only be used for exact matching +// with all of its : labels. +// - selector with "matchExpression" is set-based matching so it may be converted to number of maps, also, might need special handling +// according to the operator, as following: +// * operator In: selector will be converted to number of sets (of :) equal to length of requirement's values list; +// each set will contain the key and a single value from the values list. +// * operator Exists : selector will be converted to a one set with :"" +// * operator DoesNotExist: selector will be converted to one set with :"" +// * operator NotIn :selector will be converted to one set with : "!()" (the list of values joined) +// +// *** a selector with multiple matchLabels/matchExpressions : the converted sets of each will be And-ed.(all +// combinations will be generated) +// *************************************************************************** // + +// ConvertSelectorsToLabelsCombinations gets selectors pair (podSelector and nsSelector) +// and converts it to a list of all pairs of matching labels maps; +// by translating the two selectors to all possible requirements and pairing all relevant combinations. +// +// for example : +// single rule selectors: {NsSelector: {key: env, operator: In, values:(env-1,env-2)}, +// +// PodSelector: {key: app, operator: In, values:(app1,app2)}} +// +// will result in 4 combinations of of representative peers labels as following: +// 1. {NsLabels: {env: env-1}, PodLabels:{app: app1}} +// 2. {NsLabels: {env: env-1}, PodLabels:{app: app2}} +// 3. {NsLabels: {env: env-2}, PodLabels:{app: app1}} +// 4. {NsLabels: {env: env-2}, PodLabels:{app: app2}} +func ConvertSelectorsToLabelsCombinations(ruleSelectors *SingleRuleSelectors) LabelsPairsList { + res := LabelsPairsList{} + nsLabelsCombinations, unusualNsLabels := convertSingleSelectorToItsMaps(ruleSelectors.NsSelector) + podLabelsCombinations, unusualPodLabels := convertSingleSelectorToItsMaps(ruleSelectors.PodSelector) + // create all possible combinations of matching nsLabels and podLabels + for _, nsLabels := range nsLabelsCombinations { + for _, podLabels := range podLabelsCombinations { + representativePeerLabels := RepresentativePeerLabels{ + NsLabels: nsLabels, + PodLabels: podLabels, + UnusualPodLabelsFlag: unusualPodLabels, + UnusualNsLabelsFlag: unusualNsLabels, + } + res = append(res, representativePeerLabels) + } + } + return res +} + +// convertSingleSelectorToItsMaps gets a single selector and converts it to its all possible matching labels sets +// +// for example: a selector with: +// {key: name, operator: In, values: [payroll, web]} +// will be converted to two different maps, one with {name:payroll} , and the other {name:web} +// +// more details above (Converting selector to list of labels sets) +func convertSingleSelectorToItsMaps(selector labels.Selector) ([]labelsSet, bool) { + // all requirements of the given selector + requirements, _ := selector.Requirements() + if len(requirements) == 0 { // an empty set + return []labelsSet{{}}, false + } + // res will contain all different combinations conducted from the different requirements + res := []labelsSet{{}} + unusualLabels := false // to indicate requirements of Exists, DoesNotExist or NotIn + + for _, req := range requirements { + // newResult will contain the current res with all the new combinations from current requirement + // (used with In operator as more than one set may be added for its values) + newResult := make([]labelsSet, 0) + + switch req.Operator() { + case selection.Equals: + // requirement with Equals operator is inferred from single matchLabels :,(exactly one value for one key) + // iterate the current res (maps created till now) and add this requirement to each set in the result + res = appendKeyAndValueToAllSetsInAList(res, req.Key(), req.Values().List()[0]) + case selection.In: + // inferred from matchExpression with In operator + // loop the possible values in the requirement, each value will be a part of a different labelsSet. + // so for each value: copy the current res (previous labelsSets from the previous requirements) and add the + // : (each set with a different value from this values list) + // i.e. new sets will be added to the list + for _, val := range req.Values().List() { + for _, ls := range res { + newLs := ls.copyLabelsSet() + newLs[req.Key()] = val + newResult = append(newResult, newLs) + } + } + res = newResult + case selection.Exists: + // inferred from matchExpression with Exists, iterate current result and add key:"" to each set + res = appendKeyAndValueToAllSetsInAList(res, req.Key(), common.ExistsVal) + unusualLabels = true + case selection.DoesNotExist: + // inferred from matchExpression with DoesNotExist, iterate current result and add key:"" to each set + res = appendKeyAndValueToAllSetsInAList(res, req.Key(), common.DoesNotExistVal) + unusualLabels = true + case selection.NotIn: + // inferred from matchExpression with NotIn, iterate current result and add key:"!(values)" to each set + res = appendKeyAndValueToAllSetsInAList(res, req.Key(), common.NotPrefix+strings.Join(req.Values().List(), comma)+notSuffix) + unusualLabels = true + } + } + return res, unusualLabels +} + +// appendKeyAndValueToAllSetsInAList iterates given list of sets and adds given key:val to each set +func appendKeyAndValueToAllSetsInAList(listOfMaps []labelsSet, key, val string) (res []labelsSet) { + for _, ls := range listOfMaps { + ls[key] = val + res = append(res, ls) + } + return res +} + +// ******************************************************************************************************* // +// Checking if a given selector matches a representative peer's labels : +// --------------------------------------------------------------------- +// 1. if the representative labels have no unusual requirements, then labels.selector Matches func is used to +// compare between the selector and representative peer's labels. +// 2. if the representative selector contains labels with special/unusual requirements +// (which are formed while converting policy rules); then +// check the equivalence of the requirements of the selector and the representative peer's labels. +// +// to check if a given selector matches the representative labels: +// loop the selector requirements and compare each to the representative labels as following: +// - if the requirement operator is In/ Equals: then representative labels should contain +// the key with an exact match to the requirement value/s. +// - if the requirement operator is Exists : then the representative labels must include the key, and it's value must +// be different from / !() -> because these are not equivalent with operator : Exists +// (explanation: NotIn selects peer with key with a value not from the list, and all peers without the key (not equivalent with exists)) +// - if the requirement operator is DoesNotExist : the the representative labels must not include the key or include +// it with value : +// - if the requirement operator is NotIn : +// * the val of the same key should not be (notIn and exists are not equiv; notIn selects also doesNotExist) +// * if the val of the same key in the representative labels is !(); +// then the list of values of the requirement needs to be contained in the !() list +// or the representative labels should Match the requirement (i.e. key does not exist/ key with value not from the list) +// ******************************************************************************************************* // + +// SelectorMatchesRepresentativePeerLabels given a selector from a policy rule and labelsSet of representative peer; +// check if the selector matches the labels, considering the cases of unusual labels values of a generated representative peer +// +//gocyclo:ignore +func SelectorMatchesRepresentativePeerLabels(selector labels.Selector, pLabels labelsSet, hasUnusualLabels bool) bool { + if !hasUnusualLabels { + return selector.Matches(labels.Set(pLabels)) + } + // check if given selector requirements, matches the labels of the representative peer + selectorReqs, _ := selector.Requirements() + for _, req := range selectorReqs { + val, ok := pLabels[req.Key()] + switch req.Operator() { + case selection.Equals, selection.In: + // Equals or In requirements means that the labels map must contain the key with a value from the values list of the requirement. + if !ok || (ok && !req.Matches(labels.Set(pLabels))) { + return false + } + case selection.Exists: + // if the requirement for a key in a policy rule selector is to exist, then it must appear in the representative peer's labels + // and its value must not be or !() + if !ok || val == common.DoesNotExistVal || strings.HasPrefix(val, common.NotPrefix) { + return false + } + case selection.DoesNotExist: + // if requirement is does not exist, so if the key is in the representative labels it must have the val, + // otherwise no match + if ok && val != common.DoesNotExistVal { + return false + } + case selection.NotIn: + // if the selector requirement is NotIn, a representative peer with label: req.Key : !(values), the values list should contain the + // req.Values.List , if the value is then it is not a match, + // otherwise the requirement should match given labels + // (key does not exist or has any value which is not in the req.Values.List) + if (ok && + strings.HasPrefix(val, common.NotPrefix) && !representativeValListContainsRequirementValList(val, req.Values().List())) || + val == common.ExistsVal || + !req.Matches(labels.Set(pLabels)) { + return false + } + } + } + return true +} + +// representativeValListContainsRequirementValList gets the values of the representative peer NotIn label (as string) +// and a list of a requirement values; returns if the list is contained in the representative values. +func representativeValListContainsRequirementValList(representativeNotInVal string, requirementValues []string) bool { + // split the representative string to the values and put theem in a set + repValList := strings.Split(representativeNotInVal[2:len(representativeNotInVal)-1], comma) + repValsSet := make(map[string]bool, len(repValList)) // a set from the representative values list + for _, val := range repValList { + repValsSet[val] = true + } + // check that all values in the requirement's list are contained in the set + for _, val := range requirementValues { + if !repValsSet[val] { + return false + } + } + return true +} diff --git a/pkg/netpol/eval/resources.go b/pkg/netpol/eval/resources.go index 508082a3..cc021877 100644 --- a/pkg/netpol/eval/resources.go +++ b/pkg/netpol/eval/resources.go @@ -403,7 +403,7 @@ func (pe *PolicyEngine) upsertNetworkPolicy(np *netv1.NetworkPolicy) error { var err error // for exposure analysis only: scan policy ingress and egress rules: // 1. to store allowed connections to entire cluster and to all destinations (if such connections are allowed by the policy) - // 2. to get selectors and generate representativePeers (each specified rule, gets a representative peer) + // 2. to get selectors and generate representativePeers if pe.exposureAnalysisFlag { rulesSelectors, scanErr := newNetpol.ScanPolicyRulesForGeneralConnsAndRepresentativePeers() if scanErr != nil { @@ -587,19 +587,23 @@ func (pe *PolicyEngine) ConvertPeerNamedPort(namedPort string, peer Peer) (int32 // AddPodByNameAndNamespace adds a new fake pod to: // the pe.podsMap in case of fake ingress-controller pods // or the pe.representativePeersMap in case of exposure-analysis peers -func (pe *PolicyEngine) AddPodByNameAndNamespace(name, ns string, objLabels *k8s.SingleRuleLabels) (Peer, error) { +func (pe *PolicyEngine) AddPodByNameAndNamespace(name, ns string, objLabels *k8s.RepresentativePeerLabels) (Peer, error) { var nsLabels, podLabels map[string]string + var hasUnusualNsLabels, hasUnusualPodLabels bool if objLabels != nil { nsLabels = objLabels.NsLabels podLabels = objLabels.PodLabels + hasUnusualNsLabels = objLabels.UnusualNsLabelsFlag + hasUnusualPodLabels = objLabels.UnusualPodLabelsFlag } podStr := types.NamespacedName{Namespace: ns, Name: name}.String() newPod := &k8s.Pod{ - Name: name, - Namespace: ns, - FakePod: true, - Labels: podLabels, + Name: name, + Namespace: ns, + FakePod: true, + Labels: podLabels, + HasUnusualPodLabels: hasUnusualPodLabels, } if err := pe.resolveSingleMissingNamespace(ns, nsLabels); err != nil { return nil, err @@ -611,7 +615,7 @@ func (pe *PolicyEngine) AddPodByNameAndNamespace(name, ns string, objLabels *k8s if _, ok := pe.representativePeersMap[keyStrFromLabels]; ok { // we already have a representative peer with same labels return nil, nil } - newRepresentativePeer := &k8s.RepresentativePeer{Pod: newPod, PotentialNamespaceLabels: nsLabels} + newRepresentativePeer := &k8s.RepresentativePeer{Pod: newPod, PotentialNamespaceLabels: nsLabels, HasUnusualNsLabels: hasUnusualNsLabels} pe.representativePeersMap[keyStrFromLabels] = newRepresentativePeer return newRepresentativePeer, nil } diff --git a/pkg/netpol/internal/common/netpol_commands_common.go b/pkg/netpol/internal/common/netpol_commands_common.go index 8840773f..5cb64a7d 100644 --- a/pkg/netpol/internal/common/netpol_commands_common.go +++ b/pkg/netpol/internal/common/netpol_commands_common.go @@ -25,3 +25,10 @@ const ( IngressPodName = "ingress-controller" IngressPodNamespace = "ingress-controller-ns" ) + +// common consts +const ( + ExistsVal = "" + DoesNotExistVal = "" + NotPrefix = "!(" +) diff --git a/test_outputs/connlist/acs_security_frontend_demos_connlist_output.dot.png b/test_outputs/connlist/acs_security_frontend_demos_connlist_output.dot.png index bcaf83aaf3dd108d317bd69727e2a778cfb11d12..ef0ca8640f6b1d4aa69a6dad01432f6d825ad338 100644 GIT binary patch literal 9104 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 IlQ9YWUk+7tg#Z8m delta 102 zcmbQ>UZmI=;OEZECB?BA+OE2+vSno8KF?-Ub*Cs4sF%Uh)z4*}Q$iB}C(azI diff --git a/test_outputs/connlist/acs_security_frontend_demos_connlist_output.dot.svg b/test_outputs/connlist/acs_security_frontend_demos_connlist_output.dot.svg index 9aeb5a7f..d692aa43 100644 --- a/test_outputs/connlist/acs_security_frontend_demos_connlist_output.dot.svg +++ b/test_outputs/connlist/acs_security_frontend_demos_connlist_output.dot.svg @@ -4,9 +4,26 @@ - - - + + + + +cluster_frontend + +frontend + + + +frontend/asset-cache[Deployment] + +asset-cache[Deployment] + + + +frontend/webapp[Deployment] + +webapp[Deployment] + diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv new file mode 100644 index 00000000..0e2b0399 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv @@ -0,0 +1,16 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],hello-world/[pod with {app DoesNotExist}],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],[namespace with {env DoesNotExist}]/[all pods],All Connections +hello-world/workload-a[Deployment],hello-world/[pod with {app DoesNotExist}],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot new file mode 100644 index 00000000..569578a4 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot @@ -0,0 +1,26 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app DoesNotExist}_in_hello-world" [label="pod with {app DoesNotExist}" color="red2" fontcolor="red2"] + label="hello-world" + } + subgraph "cluster_namespace with {env DoesNotExist}" { + color="red2" + fontcolor="red2" + "all pods_in_namespace with {env DoesNotExist}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {env DoesNotExist}" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "all pods_in_namespace with {env DoesNotExist}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "hello-world/workload-a[Deployment]" -> "pod with {app DoesNotExist}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "pod with {app DoesNotExist}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..bd78133ae04446ca6cef60b6e041b7d721ee7fbd GIT binary patch literal 45875 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 LN>UY2 + + + + + + + +cluster_namespace with {env DoesNotExist} + +namespace with {env DoesNotExist} + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +pod with {app DoesNotExist}_in_hello-world + +pod with {app DoesNotExist} + + + +hello-world/workload-a[Deployment]->pod with {app DoesNotExist}_in_hello-world + + +All Connections + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app DoesNotExist}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections + + + +all pods_in_namespace with {env DoesNotExist} + +all pods + + + +all pods_in_namespace with {env DoesNotExist}->hello-world/workload-a[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json new file mode 100644 index 00000000..5e1dc1a2 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json @@ -0,0 +1,60 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/[pod with {app DoesNotExist}]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "[namespace with {env DoesNotExist}]/[all pods]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/[pod with {app DoesNotExist}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md new file mode 100644 index 00000000..e40ec7d1 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md @@ -0,0 +1,20 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app DoesNotExist}] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | [namespace with {env DoesNotExist}]/[all pods] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app DoesNotExist}] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt new file mode 100644 index 00000000..d7012035 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt @@ -0,0 +1,19 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => hello-world/[pod with {app DoesNotExist}] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= [namespace with {env DoesNotExist}]/[all pods] : All Connections +hello-world/workload-a[Deployment] <= hello-world/[pod with {app DoesNotExist}] : All Connections +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv new file mode 100644 index 00000000..3456f7ab --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv @@ -0,0 +1,15 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],hello-world/[pod with {app Exists}],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],[namespace with {env Exists}]/[all pods],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot new file mode 100644 index 00000000..bfb1b7bf --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot @@ -0,0 +1,25 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app Exists}_in_hello-world" [label="pod with {app Exists}" color="red2" fontcolor="red2"] + label="hello-world" + } + subgraph "cluster_namespace with {env Exists}" { + color="red2" + fontcolor="red2" + "all pods_in_namespace with {env Exists}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {env Exists}" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "all pods_in_namespace with {env Exists}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "pod with {app Exists}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..326c2b6c670cbfabc4c7d2795b5bdf9c9efd7655 GIT binary patch literal 45953 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 fUkK{?#(K*%+ViL&uz7kK0-mRGN{AvE1Hb + + + + + + + +cluster_hello_world + +hello-world + + +cluster_namespace with {env Exists} + +namespace with {env Exists} + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +pod with {app Exists}_in_hello-world + +pod with {app Exists} + + + +hello-world/workload-a[Deployment]->pod with {app Exists}_in_hello-world + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +all pods_in_namespace with {env Exists} + +all pods + + + +all pods_in_namespace with {env Exists}->hello-world/workload-a[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json new file mode 100644 index 00000000..48b0322b --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json @@ -0,0 +1,55 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/[pod with {app Exists}]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "[namespace with {env Exists}]/[all pods]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md new file mode 100644 index 00000000..f0b50a4b --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md @@ -0,0 +1,19 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app Exists}] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | [namespace with {env Exists}]/[all pods] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt new file mode 100644 index 00000000..0f51a44e --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt @@ -0,0 +1,18 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => hello-world/[pod with {app Exists}] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= [namespace with {env Exists}]/[all pods] : All Connections +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv new file mode 100644 index 00000000..ecb7432b --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv @@ -0,0 +1,13 @@ +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],[namespace with {env=env-1}]/[pod with {app=app-1}],All Connections +hello-world/workload-a[Deployment],[namespace with {env=env-1}]/[pod with {app=app-2}],All Connections +hello-world/workload-a[Deployment],[namespace with {env=env-2}]/[pod with {app=app-1}],All Connections +hello-world/workload-a[Deployment],[namespace with {env=env-2}]/[pod with {app=app-2}],All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot new file mode 100644 index 00000000..d35c8f0b --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot @@ -0,0 +1,30 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + label="hello-world" + } + subgraph "cluster_namespace with {env=env_1}" { + color="red2" + fontcolor="red2" + "pod with {app=app-1}_in_namespace with {env=env-1}" [label="pod with {app=app-1}" color="red2" fontcolor="red2"] + "pod with {app=app-2}_in_namespace with {env=env-1}" [label="pod with {app=app-2}" color="red2" fontcolor="red2"] + label="namespace with {env=env-1}" + } + subgraph "cluster_namespace with {env=env_2}" { + color="red2" + fontcolor="red2" + "pod with {app=app-1}_in_namespace with {env=env-2}" [label="pod with {app=app-1}" color="red2" fontcolor="red2"] + "pod with {app=app-2}_in_namespace with {env=env-2}" [label="pod with {app=app-2}" color="red2" fontcolor="red2"] + label="namespace with {env=env-2}" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "pod with {app=app-1}_in_namespace with {env=env-1}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=app-1}_in_namespace with {env=env-2}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=app-2}_in_namespace with {env=env-1}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=app-2}_in_namespace with {env=env-2}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..02993a14b113cdcaa7bb3b05c7bc99bfff38e0bc GIT binary patch literal 43707 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%0AEb`qRqFGL(ww;2(!hl6c4P8d5c7CM!7cxM@T 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 b;`mD-nG@EZ?8eA8L%^k}s;h#6KZ^Jtt%C{d literal 0 HcmV?d00001 diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg new file mode 100644 index 00000000..3fdf13ab --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg @@ -0,0 +1,111 @@ + + + + + + + + +cluster_hello_world + +hello-world + + +cluster_namespace with {env=env_1} + +namespace with {env=env-1} + + +cluster_namespace with {env=env_2} + +namespace with {env=env-2} + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +pod with {app=app-1}_in_namespace with {env=env-1} + +pod with {app=app-1} + + + +pod with {app=app-1}_in_namespace with {env=env-1}->hello-world/workload-a[Deployment] + + +All Connections + + + +pod with {app=app-2}_in_namespace with {env=env-1} + +pod with {app=app-2} + + + +pod with {app=app-2}_in_namespace with {env=env-1}->hello-world/workload-a[Deployment] + + +All Connections + + + +pod with {app=app-1}_in_namespace with {env=env-2} + +pod with {app=app-1} + + + +pod with {app=app-1}_in_namespace with {env=env-2}->hello-world/workload-a[Deployment] + + +All Connections + + + +pod with {app=app-2}_in_namespace with {env=env-2} + +pod with {app=app-2} + + + +pod with {app=app-2}_in_namespace with {env=env-2}->hello-world/workload-a[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json new file mode 100644 index 00000000..b9a580ad --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json @@ -0,0 +1,45 @@ +{ + "connlist_results": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "[namespace with {env=env-1}]/[pod with {app=app-1}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "[namespace with {env=env-1}]/[pod with {app=app-2}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "[namespace with {env=env-2}]/[pod with {app=app-1}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "[namespace with {env=env-2}]/[pod with {app=app-2}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md new file mode 100644 index 00000000..6f18451f --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md @@ -0,0 +1,17 @@ +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | [namespace with {env=env-1}]/[pod with {app=app-1}] | All Connections | +| hello-world/workload-a[Deployment] | [namespace with {env=env-1}]/[pod with {app=app-2}] | All Connections | +| hello-world/workload-a[Deployment] | [namespace with {env=env-2}]/[pod with {app=app-1}] | All Connections | +| hello-world/workload-a[Deployment] | [namespace with {env=env-2}]/[pod with {app=app-2}] | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt new file mode 100644 index 00000000..5c4c16bc --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt @@ -0,0 +1,15 @@ +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= [namespace with {env=env-1}]/[pod with {app=app-1}] : All Connections +hello-world/workload-a[Deployment] <= [namespace with {env=env-1}]/[pod with {app=app-2}] : All Connections +hello-world/workload-a[Deployment] <= [namespace with {env=env-2}]/[pod with {app=app-1}] : All Connections +hello-world/workload-a[Deployment] <= [namespace with {env=env-2}]/[pod with {app=app-2}] : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv new file mode 100644 index 00000000..be8a5c20 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv @@ -0,0 +1,16 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (a-app,b-app)}]",All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],"[namespace with {env NotIn (env-a,env-b)}]/[all pods]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (a-app,b-app)}]",All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot new file mode 100644 index 00000000..9137a680 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot @@ -0,0 +1,26 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app NotIn (a-app,b-app)}_in_hello-world" [label="pod with {app NotIn (a-app,b-app)}" color="red2" fontcolor="red2"] + label="hello-world" + } + subgraph "cluster_namespace with {env NotIn (env_a,env_b)}" { + color="red2" + fontcolor="red2" + "all pods_in_namespace with {env NotIn (env-a,env-b)}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {env NotIn (env-a,env-b)}" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "all pods_in_namespace with {env NotIn (env-a,env-b)}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "hello-world/workload-a[Deployment]" -> "pod with {app NotIn (a-app,b-app)}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "pod with {app NotIn (a-app,b-app)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..5d097792b3af44205ff2c6d0e77b80202724691c GIT binary patch literal 46966 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

WcBJ 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 literal 0 HcmV?d00001 diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.svg new file mode 100644 index 00000000..28807f0b --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.svg @@ -0,0 +1,114 @@ + + + + + + + + +cluster_namespace with {env NotIn (env_a,env_b)} + +namespace with {env NotIn (env-a,env-b)} + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +pod with {app NotIn (a-app,b-app)}_in_hello-world + +pod with {app NotIn (a-app,b-app)} + + + +hello-world/workload-a[Deployment]->pod with {app NotIn (a-app,b-app)}_in_hello-world + + +All Connections + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app NotIn (a-app,b-app)}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections + + + +all pods_in_namespace with {env NotIn (env-a,env-b)} + +all pods + + + +all pods_in_namespace with {env NotIn (env-a,env-b)}->hello-world/workload-a[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.json new file mode 100644 index 00000000..aeedbd28 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.json @@ -0,0 +1,60 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/[pod with {app NotIn (a-app,b-app)}]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "[namespace with {env NotIn (env-a,env-b)}]/[all pods]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/[pod with {app NotIn (a-app,b-app)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.md new file mode 100644 index 00000000..eccf6db8 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.md @@ -0,0 +1,20 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (a-app,b-app)}] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | [namespace with {env NotIn (env-a,env-b)}]/[all pods] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (a-app,b-app)}] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.txt new file mode 100644 index 00000000..885336d4 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.txt @@ -0,0 +1,19 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => hello-world/[pod with {app NotIn (a-app,b-app)}] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= [namespace with {env NotIn (env-a,env-b)}]/[all pods] : All Connections +hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (a-app,b-app)}] : All Connections +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/tests/test_exposure_with_match_expression_does_not_exist_op/namespace_and_deployments.yaml b/tests/test_exposure_with_match_expression_does_not_exist_op/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_match_expression_does_not_exist_op/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_match_expression_does_not_exist_op/netpol.yaml b/tests/test_exposure_with_match_expression_does_not_exist_op/netpol.yaml new file mode 100644 index 00000000..1e09382d --- /dev/null +++ b/tests/test_exposure_with_match_expression_does_not_exist_op/netpol.yaml @@ -0,0 +1,21 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-values-exists-op + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - namespaceSelector: + matchExpressions: + - key: env + operator: DoesNotExist + egress: + - to: + - podSelector: + matchExpressions: + - key: app + operator: DoesNotExist diff --git a/tests/test_exposure_with_match_expression_exists_op/namespace_and_deployments.yaml b/tests/test_exposure_with_match_expression_exists_op/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_match_expression_exists_op/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_match_expression_exists_op/netpol.yaml b/tests/test_exposure_with_match_expression_exists_op/netpol.yaml new file mode 100644 index 00000000..ebeef49a --- /dev/null +++ b/tests/test_exposure_with_match_expression_exists_op/netpol.yaml @@ -0,0 +1,21 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-values-exists-op + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - namespaceSelector: + matchExpressions: + - key: env + operator: Exists + egress: + - to: + - podSelector: + matchExpressions: + - key: app + operator: Exists diff --git a/tests/test_exposure_with_match_expression_in_op/netpol.yaml b/tests/test_exposure_with_match_expression_in_op/netpol.yaml new file mode 100644 index 00000000..c6704c75 --- /dev/null +++ b/tests/test_exposure_with_match_expression_in_op/netpol.yaml @@ -0,0 +1,25 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: combined-match-exp-values-in-op + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - namespaceSelector: + matchExpressions: + - key: env + operator: In + values: + - env-1 + - env-2 + podSelector: + matchExpressions: + - key: app + operator: In + values: + - app-1 + - app-2 \ No newline at end of file diff --git a/tests/test_exposure_with_match_expression_in_op/ns_and_deployments.yaml b/tests/test_exposure_with_match_expression_in_op/ns_and_deployments.yaml new file mode 100644 index 00000000..3fc694b8 --- /dev/null +++ b/tests/test_exposure_with_match_expression_in_op/ns_and_deployments.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- diff --git a/tests/test_exposure_with_match_expression_not_in_op/namespace_and_deployments.yaml b/tests/test_exposure_with_match_expression_not_in_op/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_match_expression_not_in_op/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_match_expression_not_in_op/netpol.yaml b/tests/test_exposure_with_match_expression_not_in_op/netpol.yaml new file mode 100644 index 00000000..27370099 --- /dev/null +++ b/tests/test_exposure_with_match_expression_not_in_op/netpol.yaml @@ -0,0 +1,27 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-values-exists-op + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - namespaceSelector: + matchExpressions: + - key: env + operator: NotIn + values: + - env-a + - env-b + egress: + - to: + - podSelector: + matchExpressions: + - key: app + operator: NotIn + values: + - a-app + - b-app \ No newline at end of file From 361c6ab87dfe694e433034f12cc481515b1b17bf Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Tue, 11 Jun 2024 12:08:15 +0300 Subject: [PATCH 02/91] more tests --- pkg/netpol/connlist/connlist_test.go | 51 ++++++ ...iple_match_expressions_connlist_output.dot | 24 +++ ..._match_expressions_connlist_output.dot.png | Bin 0 -> 81741 bytes ..._match_expressions_connlist_output.dot.svg | 129 ++++++++++++++ ...iple_match_expressions_connlist_output.txt | 23 +++ ...with_different_rules_1_connlist_output.dot | 23 +++ ..._different_rules_1_connlist_output.dot.png | Bin 0 -> 53925 bytes ..._different_rules_1_connlist_output.dot.svg | 123 +++++++++++++ ...with_different_rules_1_connlist_output.txt | 23 +++ ...with_different_rules_2_connlist_output.dot | 23 +++ ..._different_rules_2_connlist_output.dot.png | Bin 0 -> 51357 bytes ..._different_rules_2_connlist_output.dot.svg | 123 +++++++++++++ ...with_different_rules_2_connlist_output.txt | 23 +++ ...with_different_rules_3_connlist_output.dot | 23 +++ ..._different_rules_3_connlist_output.dot.png | Bin 0 -> 54584 bytes ..._different_rules_3_connlist_output.dot.svg | 123 +++++++++++++ ...with_different_rules_3_connlist_output.txt | 23 +++ ...with_different_rules_4_connlist_output.dot | 23 +++ ..._different_rules_4_connlist_output.dot.png | Bin 0 -> 53471 bytes ..._different_rules_4_connlist_output.dot.svg | 123 +++++++++++++ ...with_different_rules_4_connlist_output.txt | 23 +++ ...with_different_rules_5_connlist_output.dot | 29 ++++ ..._different_rules_5_connlist_output.dot.png | Bin 0 -> 69936 bytes ..._different_rules_5_connlist_output.dot.svg | 162 ++++++++++++++++++ ...with_different_rules_5_connlist_output.txt | 26 +++ ...with_different_rules_6_connlist_output.dot | 32 ++++ ..._different_rules_6_connlist_output.dot.png | Bin 0 -> 52930 bytes ..._different_rules_6_connlist_output.dot.svg | 126 ++++++++++++++ ...with_different_rules_6_connlist_output.txt | 22 +++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 29 ++++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 28 +++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 28 +++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 28 +++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 28 +++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 28 +++ .../namespace_and_deployments.yaml | 52 ++++++ .../netpol.yaml | 45 +++++ 43 files changed, 1878 insertions(+) create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt create mode 100644 tests/test_exposure_rule_with_multiple_match_expressions/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_rule_with_multiple_match_expressions/netpol.yaml create mode 100644 tests/test_exposure_with_different_rules_1/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_different_rules_1/netpol.yaml create mode 100644 tests/test_exposure_with_different_rules_2/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_different_rules_2/netpol.yaml create mode 100644 tests/test_exposure_with_different_rules_3/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_different_rules_3/netpol.yaml create mode 100644 tests/test_exposure_with_different_rules_4/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_different_rules_4/netpol.yaml create mode 100644 tests/test_exposure_with_different_rules_5/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_different_rules_5/netpol.yaml create mode 100644 tests/test_exposure_with_different_rules_6/namespace_and_deployments.yaml create mode 100644 tests/test_exposure_with_different_rules_6/netpol.yaml diff --git a/pkg/netpol/connlist/connlist_test.go b/pkg/netpol/connlist/connlist_test.go index c6f5a035..a8ed42f7 100644 --- a/pkg/netpol/connlist/connlist_test.go +++ b/pkg/netpol/connlist/connlist_test.go @@ -978,4 +978,55 @@ var goodPathTests = []struct { exposureAnalysis: true, outputFormats: ValidFormats, }, + { + testDirName: "test_exposure_rule_with_multiple_match_expressions", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, + { + // in this test's netpol, the rules are not equiv + // because NotIn means either does not exist or exists with value not in values. + // but a pod that matches both rules (like workload-b) connects with workload-a on both ports + testDirName: "test_exposure_with_different_rules_1", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, + { + // in this test's netpol, the rules are not equiv, but the In rule contains the Exists rule + // so the representative peer inferred from `In` rule; connects with workload-a on both rules' ports + testDirName: "test_exposure_with_different_rules_2", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, + { + // in this test's netpol, the rules are not equiv, but the DoesNotExist rule contains the NotIn rule + // so the representative peer inferred from `DoesNotExist` rule; connects with workload-a on both rules' ports + testDirName: "test_exposure_with_different_rules_3", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, + { + // in this test's netpol,both rules are with NotIn operator, where one values list contains the other. + // so the representative peer inferred from `NotIn with the longest values list rule; connects with workload-a on both rules' ports + // since workload-b matches both NotIn (does not have key role in its labels), it also connect on both ports to workload-a + testDirName: "test_exposure_with_different_rules_4", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, + { + // in this test's netpol,rules with In and NotIn, where one values list contains the other. + // so the representative peers inferred from `In` has different connections from each other, depends if the peer + // matches also the NotIn rule or not + testDirName: "test_exposure_with_different_rules_5", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, + { + // in this test's netpol, rules are combined + // second rule matches also first rule, so representative peer inferred from second rule + // has connections of both rules + testDirName: "test_exposure_with_different_rules_6", + exposureAnalysis: true, + outputFormats: ExposureValidFormats, + }, } diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot new file mode 100644 index 00000000..074d6b4d --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot @@ -0,0 +1,24 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world" [label="pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}" color="red2" fontcolor="red2"] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world" [label="pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}" color="red2" fontcolor="red2"] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world" [label="pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}" color="red2" fontcolor="red2"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..22adda598b07d308447eadd78154a1a5d2280b2b GIT binary patch literal 81741 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 MTShm_weLs#A2S0Ka{vGU literal 0 HcmV?d00001 diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg new file mode 100644 index 00000000..8e36cc1b --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg @@ -0,0 +1,129 @@ + + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists} + + + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections + + + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists} + + + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections + + + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists} + + + +pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt new file mode 100644 index 00000000..53a0453f --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt @@ -0,0 +1,23 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}] : All Connections +hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}] : All Connections +hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}] : All Connections +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot new file mode 100644 index 00000000..dabeb044 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot @@ -0,0 +1,23 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app Exists}_in_hello-world" [label="pod with {app Exists}" color="red2" fontcolor="red2"] + "pod with {app NotIn (x)}_in_hello-world" [label="pod with {app NotIn (x)}" color="red2" fontcolor="red2"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen"] + "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bc45f7c11e7223a835a11165a99707e50bed0b GIT binary patch literal 53925 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

    >nqETt_io!vjJ zuvGzSmTVFpM}9&EkgQ+)p@3R5G6HwE%bUQleAH{?|1|+;dGuj!ikz@B-bNUiia7Ea zLKd^t9|LY`*6h|ocy%fcE;v;}Y;h*~fA+p}eLM>E6$Oh|Jdy~7eEy}Lb@nWZOWs@~ z)2jY7=z4keWj#-okb3`kcP8}{;HdsuUydc}+{Ok06c7J=cjj-|4Rf&I2g9;`+hdP3 zSLDrau(VXwze%0)uL#$9nxXJx5;@QY1?B`=9eoWcd?{ypUev{al>}CLSMUaLo*fS& zwKm?DumygLAv^m3CI1qy^%FTrIaIoomPk!gmeFQJuK7SfvMA2-(K=Nafy+GltV$dp zZ>=l*T1VD|oeFe!&V@x1sn&-5mpLb+_UvcWeb4r4283yxsS|-p9gtl^LIYpl~&VeC!>^;d-{=bwSV7vb>MJD7IORk5#I;4 zN2+i9A3VA0Dj!w55tVyEfDplzp6d!9Ra?tZ%sc?%Fojosa8Kr1?-8Btnh?tMDe zjNmO8tBior_50oef*LS70@vB?UGdQzVgp_aS8-d^f0rl%hR9ddH4$qEb{Ufy12@| z@BsefTBu;yYt`n7&!5jHupWPL3t)U0#@58DIQN2Yw??n-Y!`hD1xM+`H8q->tG=GCrM3!kGH&RFta4*z&ARq>T?So_!?H7HP&aPO)+Gy^N`;9ONNM{8`O9I z&V$B!ve8Cnc+^MmpQ||$&ClOx;T(hZ)f}PC8MaT7zD9dQh6i<*f9eyAfyGxYfCQt* zP)`3`4vmjb>>(LR({7UDjdx44#iULIR_TEQlM<&^)1m5(H^`@Hv-?%UT* zo+hLB>Ghwyd+Jtt>tMvFPeDJh>$*OCGNA-r|AzXbDgWa~Y;je_jBR2YdUh}`++L2uM8$D+~)*6^S8TGrYXGzNmN&txAj!X*}vjr81ct0NgYLxsC#5H@E9L<@|iNzAyumFZ#-*+xLR>SHF)} z>xdZ|mS23NAlzpSM*sNC!J&5irFR(1uE@sFE2!lFDv?s2kFPd%fQ2_H>Xfufwnbaq z^Zr&&s@FhzK3?yr5TKnCuZ9sT+kp88fIz0mDn;(yrWVvGKQs2KWc3sy<{q^+ z@)`%u5kA18pOk_5it?;@+NSuts^)9M->T{QR^l>Ei2Cw`Rb?O__R52S?m~@}s?xt3 zGzChLhK5omCdnorgbbvvyRx`--H4Nv5;?7G@8CNO@wLljq2<1+>etGKN<;nMl>yWJ z6lH&XXSHRre#Wug`)B7%9Cx^SUejn2=qk#SGopX=m~vpXHZ8I}*z?oqjg8ggeP&q$ z)wbVCIg7^+tx6)o7b3b^&6~oaS3rr{ex1P?AonbF-1&K!$LWfCbka+8>mv=noJ#aV zfs02RZo@#~^ssi{jSOwZ1l_T^@!;T0q~M<7Ye)!2uia_t^LX#e36fZQsE0Qn-*Nxm zyh5%Uz2}TQ$}bB)BZFbhsrIdcD(P(hA?xC18|edFxIlbEe2N}dXyno<6BBi$zeV7G z?jQP$0K0xL_8q{$a5?g8XHlr-bM|Rj0MB9ITc}u + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app Exists}_in_hello-world + +pod with {app Exists} + + + +pod with {app Exists}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 + + + +pod with {app NotIn (x)}_in_hello-world + +pod with {app NotIn (x)} + + + +pod with {app NotIn (x)}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt new file mode 100644 index 00000000..d25920b3 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt @@ -0,0 +1,23 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : TCP 8080,9090 + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= hello-world/[pod with {app Exists}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (x)}] : TCP 9090 +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot new file mode 100644 index 00000000..87d82259 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot @@ -0,0 +1,23 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app Exists}_in_hello-world" [label="pod with {app Exists}" color="red2" fontcolor="red2"] + "pod with {app=x}_in_hello-world" [label="pod with {app=x}" color="red2" fontcolor="red2"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen"] + "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..c95b672b9256f3e9ae07c5f1a6915ae5a235b61e GIT binary patch literal 51357 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 literal 0 HcmV?d00001 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg new file mode 100644 index 00000000..979afea3 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg @@ -0,0 +1,123 @@ + + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +TCP 8080 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app Exists}_in_hello-world + +pod with {app Exists} + + + +pod with {app Exists}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 + + + +pod with {app=x}_in_hello-world + +pod with {app=x} + + + +pod with {app=x}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt new file mode 100644 index 00000000..d8708992 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt @@ -0,0 +1,23 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : TCP 8080 + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= hello-world/[pod with {app Exists}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {app=x}] : TCP 8080,9090 +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot new file mode 100644 index 00000000..45a3a130 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot @@ -0,0 +1,23 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {app DoesNotExist}_in_hello-world" [label="pod with {app DoesNotExist}" color="red2" fontcolor="red2"] + "pod with {app NotIn (x)}_in_hello-world" [label="pod with {app NotIn (x)}" color="red2" fontcolor="red2"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen"] + "pod with {app DoesNotExist}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..60a175d89de7b3e38e3260eddd7c85149f04ad68 GIT binary patch literal 54584 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 z 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 ycR6701`Zjn)>^p?G + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app DoesNotExist}_in_hello-world + +pod with {app DoesNotExist} + + + +pod with {app DoesNotExist}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +pod with {app NotIn (x)}_in_hello-world + +pod with {app NotIn (x)} + + + +pod with {app NotIn (x)}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt new file mode 100644 index 00000000..5f792732 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt @@ -0,0 +1,23 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : TCP 9090 + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= hello-world/[pod with {app DoesNotExist}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (x)}] : TCP 9090 +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot new file mode 100644 index 00000000..174d5e24 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot @@ -0,0 +1,23 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {role NotIn (w,x,y,z)}_in_hello-world" [label="pod with {role NotIn (w,x,y,z)}" color="red2" fontcolor="red2"] + "pod with {role NotIn (x,y)}_in_hello-world" [label="pod with {role NotIn (x,y)}" color="red2" fontcolor="red2"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen"] + "pod with {role NotIn (w,x,y,z)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..55dd81bcfd8592bd2881dcdaf7a8034d74449890 GIT binary patch literal 53471 zcmd43WmuJ8&_259?vjv{P^3e;5fG3Nq(KCvL!`SwT3YEXQj*eLQX-9XO6R6K&f4nl zz0NuR^X>g|wim+QJnMPZtTi+1o_l6^uligL2a^I50)gNt$jhihAjmlo2!ahdD){6u z%eVx5Lw&6%Cj+^I|I2F1i-$mHAqp~*8g6MjbM9^$tJ&iFFhO&scyIrrAlcVbAHuW| zBsIS4w!Jr)ZH+jwYzvv6w<^7!HpDv7tt)QAtDH^@XlgOEMCp9V2-TAHaW;;>Z}y8) zUYkgYJKj0&qaX|x^TfRRXOKb)TkqMC$kETAA1fNo9o+jX?s z>$VKSpKtZ+5leW$w{P4wbM;kn+to9>lV!$8#IpWS7VQQX+hkkh!jh8HpQS9AFN<}5 znSFw?Ko%dSLRs=lN^q@HtE#H<^YbNibjWvHgyHvH?Mn`=!ZR~76L|YuCZ-t)Y&Y~a z?2ihZOb?_B8&~PRy*__iWY|QZB6g9pUI8ZZSho_rv$GRlYO%bVy2G|+E+h~QFQn-< z7>f*AP=FzYJ~lR%1%)C;kg^5L+2Pgw++XTY)6`sbzdK)!F*)B~!k22bszQWVSy_o> zlEXsrXsE~e$=Gy*fK(b98jBmlpIJCKSl_zWLjV7;Dz)Fr8 z{ZVA7VJg2Z1?1K7#xP{@iT2rev7VZmnm-z~8wA4Xd1?b`Wi4$a9IuaBg*9KgKq2g}`DCS8%#_M@+Y zl(HKy)>0vj{ssbla3#h;{$p$`;Q5ar5UDWs7>D!IYVLc+(dB!4k<_9TtE;Qp^-d4L zhMw-ugdQF`CL|}DbcU0Z&Fs1z^*>QlS0^mD4XMC`>)`jl6D_I&WnkPYSv8LfBT7C{Q2be+TM z4nV8v8X7}61!TP$kTUGrw7r**wKCNfp6bxh= zgls0qCng3bvT7kh>}r=#2P@6`k`N#z4SPZ@7adb?%I05WHzy14)gnR4ye=Fyw6u_7 zk@6^kt`m;?z}NHS$)EMim&3%wtZy6`7}(=x6Bnn^)YQz_&ueU?0zcdn^KwgeM%FWb z`I0ol_tssz_$4thu^Z}R-?fkC9vbt4@790kz-67X#lz6VG&1P(@tXM*G zZlYf24jP)8*xRt#?mYNG3`4{xP{VU}lBleNKxE$WEIR#| zz`^mU*hGLeI0(>APuHi*4)fCTR9v}_jAT7vbZ0(q)cRI|AdB$x4a?@{Tykg_3#yDY z>(D&AQB4&BZm8GXJZ@$6<)C$q^oGY7>zFfogJ_X0>%)ft|Iulx#^c0q{{>rS% zy(Kq11X*(F6XMr+wJ?I{) zbpPbn<&c7cZv)ED0^&YmbmoUvRG6_OWw3AC0N>6E_W&$@7S@6JUju8MFg$FF*Q?5= z8YScVQH?7k&(h!2c=|ZQphsl33~p+Uj$pNW<8KF^`o$$PQzE9fVG%RBxtVYyq_-r1 z<>byfxR_-qTUV#mOzhKNYvA<23rb_oVou8YurXtuRYA9TRcGJB^eNR$dgM)@gMeQ( z|3;olpF>F<`9988{r1$aDLskafm6IfuLW~+>H8x0p4qV{v;}6btx5IvnQ$OMsli@g z2U1YbZf)NfJ>mc1&})}m8dcWI>?QRg{`!nMeE5o)^YLa8^YB!J{Cz?7adWXF#M`D1 zk+hV4=Aw|s6Hfd_<~)Mm`XO-{xGDX~cLO&35@CDh-0ge|t3pB$28(w>W=-gB9rdlN z0b?!xk{N~uY=Mn-QZ2EOccb6FW##1cwWxU17g_W0m{}x#prZ*ymF(^H{}jLMUc9oh zkA_T74@Xi+etjrSxu};@75HTA65_77&}!1lFN(Kq@dsjyaX2YT+?D9qe9xX`p`gk~I=`l;QG}MOow8t|qePVr+3R|X9>+5`WxAfZp5lBx zJj_~I`>`1utQrxKO-d^Dko^rF!j_hd3B&QxIvu-VP^}xmWiZya=Qb98)Q=skEH*Cf z(bMTJvLwIlDXN@}zptxPm5V;cVvD3j+T8r+nnUn9C&!KBY}dRUr#W$UmL>UtNJea7 zx!QR8)BJn*{O!y(V}ltd1EZ5HG0Crzc|R#}=O5w}L{0>v_HMent72hh5fk^AuyB+P z-ugb1kud;%9V(_=THtS}iSqVV~<^;@8;u4Lw+_9-`TSMM*aH5SQJm z!|%zW=9kzilUf>MUst71f<~jL-#R-xWC|dZn}phAO^hSj)wo`fldFc}2CJ*m1{MY& zvPg$Yv9b6GIkAixcVyw-r+8V40kyzSW|tIqeLfyc#v#?>rZ)b*s_M{N8AnDL=Qx6_ z;W$JM6)))|TSYqymvY?JFKcDR&BI3h4sQAx7FrasoAt~;kFf;21D-b>RT&!Wrl0+m z9W+b+CJ}z!BE+F0Mn>YkKt?LnKNuR9$+5iE{!YY-kx^AH<`h>$ zX$S@}7N!d5IDXMf6)dod}AyAj@fOefbm4mFj6!fOJH{YC19 z-+Gl*y(U+)g7$8!M~32#$n47}!B_^qep@2Us*2CD?v+NZb9gO%OD-WIP&?)X`*=R$ zyrHS-;Co7bOvJn>=A$p>dt2w*A@)$=REV4laVv~~bHSOc@@q+eke9$10mBNT#AKd8OMB>i>ao5^L86-9yKd~7lJ zPQYYBReVgaImYMk!7Q_i)D!B&L`M&0oL93K%4(*t#^0}}S^>(*O|?&2x{9Uyc4qjN zi*jzv{2}nBLP$4#1h}C)C$4LeJLGPARABA0GlkL4J}?X|c#~b$z4H-8Ox&??_fbZQMZ*an|+E>mGn4g=+xst#%1+o4j(mC)h@FP z2D#I|wx;*L6?z9llQL-7z$XV z5)Eq<78Cjmlv*;xpQd&&9&nmRFUYmO3A`Gjs};YH5u*_biY7BksPWU%%x7feOiYqW z6(P^v9L@GVh@krX=&6jisQ%SyoA;vM^$e9L=FR!rK>^nvS&~CtVDIdxlq%lzPMCE6 z5c+_`LBvQJ(W!@rMrUQc8e`WT)0Yt~7Xw`mCNss;GC)&eB3Fu{WR@aM+!FD4j3rN&6`^+tgH|;npL?yg%SH9VP)}*$Tp-8hy{w zp0Hz+@}@t)a{Mt&hR$@5GBc~tyPu+xO^+#X>0sITlMu;tr6s3wDyr?QfZ?r2@bQ*a z?HMf8`p$=3Vs`yHm@2JH6A^x`^bRqpgz)=_z`CBvAdv!q zgsA||w-PqJMXxi1TCr=@+rzv<_*z*4J!aFUrL0}XGQv68`f7Z; zr6n4F@^0PKuh9fezrm$9L!-D@m7B--6F*MwRE2T#jf=&EVV_?iCA3b*Cx*rwdE#`} zVRs5i%?NfeuN=?Zp>D`dnH105r`Jz3?3V*hFGOY|XqD#et1{mfuboN%=qhWon8Tb0 za9!A5CFglnzsVF$Brk)63g&!>-{0?WvrOY)H-$LS0E3&xtMXP}6V%5Gmq|OuZ#!@r z^@!AHvT(@}Pre$RglMpn&1QPhBNf`t4BdV;%HEX|4~R>}I4<2A?qS+n3X)#i64 zeAA9nTWuSUFeXO>^arx&D0yFyF!v+Rhr^Y4Zm&md!EqnSVZRB%jdOC_d7U3AH9x6$ zs9O|s`AMW+S8XqM^@-1K6vO#Dddi!DW0A^(<%~czPPs zd5q=3ocEKsy%w73lZozzF*WAt>BURmJG_A>^M3F8NH;RQnK+!&croBJzV^MvQ{pi{ zw9}O#)?tco6zu%|zO_9VBIKz~F3K%_iEb-?jv(`bC?Sn1#jcrrt?r$1#*>&65KvLV zr%U_xfL`eK^odjBF`+(<7lcvt{@OS0oTh!mpB3iPy@N5X1n*g5!x3wKAX~0!D zTj20~Fzd#E7RU@ud7=Koxc=m2id~cDbBBf{F(>pAJn8ZYTZ;(;w4+9M zxXV*|ky~~~OmLzDpKEwDu2bXXBca=4W`P>J;J7sGieKT!T893c1Hyt3!C?vWayJU8 zhvIjFvsb6t%U_a*%8ikz21Sr;k1Zas>4)XWMr4tab~RLr=4J{7N4MOPz&B|Y4Oc=z z!QXO#Do5n%u_qP2+UpTs`@wOT_h6}p#fo3A7acw*?I%1^k`0B8#4 zBUKY;-r5>Ejn8ZqdyTA1?S(I|EIWO9(o5ol!Ssl+g*$2;P0bz=2S}3d1zGLsj^rp?O{C9VXS2IS6mUCHN--|v6@9VdXij%>HF9NG+ZqQGSJBAK-?WF;> z+DzrAyV}voxxGE(#2YfqF2a*8ia#+XE6>MUE>Icol(hKrMc(H(hUwl+=uZ`K*^vO0 zjq}pG0PhufUO+NB*v^o`=m`m&Bm9Zge3xB5-%Obs)9_*5-=1JF>%=ro7kQtMdFv!G z|Fm|umwA}mS1gT$L~S9dY-Tu%g_8(HS?Rn@ul6%6p})$Rm4X-rC!Fvb zftA7Ghdb^0#_T z82C+5!RWh4wmTNJX;5ugpPm?toSf7P+_P;*&bhu`|2A;7ZA8beFERS_qeb&FZmr91 zxa&b!SOAesLTpLh8pXjf&0VcrU#&_8aTJevc*u(B@a1i!9E+ZQU`=

    ogWlBK+`YZgf5AeamXcwD_YmsSUgi0O!oC&(+Dr{BhkjN37U`LXM`HxvEA)o@ zyVes=y_$BvYRP$}e}I~r(QW#pK_Jm2tibH0C)|Z#lar&uPeLxm5{rtmN=s#~js~T{ z;c7Wu8CC>y1m*=|ny27HSECZ-+nK9pmzNVC+|N1VNFPfaO*Dr9jb+K5A?xqAsDp`B zKGuEE=eTq4af}!yBO_z(DlNx&Xc693!0k&iG?P!Fl;ku%VaF4Ofq=Oi7O+&8GJK;f zgG7b|WN7u?r~PE#M3P(Z;zPM-O=Fa208v$y!%Gdft{n@b22z~xfN@5}MX|Tg?d$aA zkbB9Dm8Axhm6S~|FJNYp6RV1)C8rIuZRJ*)$(CJa_|ckQMPPHDr{__EzqRW|-qp$F zD>4K1&hTy=QG|H4h#S{@cJ3u?QIu`JX$~l!m>dKSy|&s8=c~v=RxPO6?R8dES=LOQ z(nb4)n0MdKRSjqJI=E!x*RQ$c&();1iplLZv#%))ID#?w`jcVh##C}`Vmv?MonTEC zdi9lq`k0P_&z@nbXL{lm_+B$mv1+v+9FKBMl~`CwjrKq3I9UqqnXD&)|1RO@&lDTs zIBlA5VoKjH%WAr%%XYs*4Vz~9qe5ZY#y7?6xScjt^hd1-7AD=$izL0p%f&!9viD)~ z;jT1n^qA~B>?63LW!_6z(1UTkU^%8sBFU&5{Hg14*b@iKK1WYrLEg`Fi=MA7({d=HQ0N+&Q=6lnEO7DHo20Q^W!$4=o^6g|UT{3g zL2#+F%trPhYa1t;M8`S1!h9S$tc^4KH2*-=Yn`B7_*8yzfz~0tiOtA$)bmP|GOFuU zB&S4a0f8;6RtVpo;>?dk0}2uN3Z5#W!`_l_*;^Oom0DdMCY#Aq%if1IGTeFloEvM@ z5V02Fam1V$du?^hQ{iRHR2c3?6Zi-%cn;co_?7};1%kYfErzf6JB<4W0OWYfbY&wUUe**TmYW`WyGdEbc zBxG|fbycX^1_4s5lIEwY|2WTf9vdaAmZZRqnKm~DNj>7p8dIodz^%sSfaLOmD6z>mfcIYLc3F@dif zc(M@mQhj9G_Be=5m=Y2@5>f63+yf$c<|_K|DgisAIL${i+*Tbm|0LOnfQ;6&YOnI# zm30Q&8xH~2M}Woa(0vMg=a)vR;usM`;~MG7-68Qis;&Jc(Rr62qbkz9J^NHx-tUD> z(X+Pkot@QYLIixNx5|vw^n9VOy(f8!@JjW8h;CzFqZh7GA?%cILLS*0l|)FZh2jL3 zP0{M=EgKNiQ!Ik$@#O7vzM2DUjuQ4-CJh+z(X>q!qQsC4_8ki90);e+21 zL(de!(%UzoWUaf(Z57+3;y^t37Ga4#M#+@t=Z=*l>N)n)$mX&rz(qZ6^eU&fvd+#F zjYvpj9p?4+nDj+6p@EN{K%=4Eq+Hneb$b8nOF-4x2fPa3a(|8Y@b)UWG>Z#c%_s&Rq&Toari;sTV&zcqH z{d~zfGG2=3fgx|-M~3q-9p`(NDA{CdJRnM0vu9Gf~hMQe%Yid+f z467e+I00M-oH}t*X9RG&va-YVmX^H72AxFIyk&^lFnt&nSpfgx71nqt;daO5 zMu}MD*a3co$FIfdIwGJ90g-3(4L0_Lx7uW(zr`GpcU$g6AKzUM9)Q_nEbnq zUfQ_+qxFc8#zuD6*Uy}~Xuo!~=G6By=_a!gDZl)>;MKKQ*6ccFY1Go(XW$yyunL@b zMw?0$f=NeRM=bt4f|56y{mCp_udBo2CkhyCeY)9U({?PEw)LV&b0B6YPl|QEzlHb2 z+-e19b7_{@(Z{tb^hP9uGRL6lHyqr1<=Ks|K;JOsui0A@zCaWQR;wx%3TjW2f^iYJgTDEb06%RYIfW<=be-?92#~C^8w=aC3I_Y zT&w3YYTp}n2p9`9(jXiC{m{3UPQ$Uu%xN>#vUR2(Owu;$aH;mwY=p;)HXV~6(5)!s zyv?KeJWOgM=Bk;v&MpQpoKMXjZeE*7LTB<@LaL&jX6CP5_shX*Voj%DROt&WsO4`y z4dfYGZ7x+^b|O&G9z}@Qnv-DqjTEUZ0U~4bR=8u*!)xx`t!wS2w`EI!|#A zs~b`~-9_Huk`PjMYvh}J$qrPw|h z`FFZ=mSHbZ;Ym3a(|k54MP)a?rrg@|JYe(nEsT)1^j#$xj!k5w$a_xW;q5)y2dAA` zJf0Ik(LVDKs{K^@n@Q6qSiA2nqll%uHW+$TToe1vOEB(kcL7o%_~T0>cb7qg2eu;i?D2Fe57*rh{V=s3qIFl1QovuC%P28>>w1Rt=REl8}7y0b$ zIwpVB@~mirL%h#gFQF$_3!xQIL|`f(F1L-4NEIjh&W^nj!t&94`nht#E-@I{a5hU@ zqQ{JG38T$3B$vOx$9NY?z11W`F;?C3?XfQM1W1Zky)%zVcHW(Rzrvic!QHgHnk*fC z_gl;je=iWtSf?`o%JIa%rO8m|eUj&%Bsg3;0R6y?cR$?y9!gKS3pXHp0AIuFyUGdz z3}xKP*-*+4W12?iPlhK96uj@TXxvQBtk(aXx5nRjI}g)O0y@*@H!}CUCmw)hCNb?S z^iT^ETG_Eo7R<+Yha5d39>mity%r$f&O7ITlvdi58w!uqym;L$9$Wnehg z>J%rX5OKfJozRX+SL?x7BS~J~?+u_3K~GY0XktaBcTjG+-g$^gNdm-t2kg&V%)AB% z*!0>ByLdhMD~CUe!lD`kfb$Ma$jij7j|A!ggd;gT-C)BalLFxd7;HQzC7SC5PT+Zo zqjXp3+jity*IlXUqd|tFA-WV;BhUPoqoI-(>P-@o9uYTu!08O12GX<|Y6Ks1cGVja!aaW1&h{B)f|0p}Lt7e=U$0y>B? z1CCachYxSylpU>yY8ZNXue>Y1=KHC1`xi>Uv@poQcl4ySAL8AkUku0#KX=^0Rhz6hs%Zq zy48>7LkEX_fF>t|^C-{M3Bi1VbFN^afZNH=$@$)pFOvY#Z*c9yw_1J*vK&KQk&-|- zhRw{|0<9)$KvxfhnDr8BCq4GRoig7zzgk$DZ6s$qT1P6x1dL4^AYI~$Ugm#(+SyPm zBO?h!7yyX!-O(F?1rID}2`*r|nb>z$V}x~7k#_CQx~UAUjzu-X~NZ4ukpXx4`4e$iKL`-hE{qsiV~O{UY;%U)UU z0N|H9=MxuF?sf^%&owu)^sr01n-vB7^W$MT2O3dK7EG|y#-9X<0GLfoCSPBHZ>S7G z2LSk4q{OX&Beu8Qap?fzzJ5B+ucS~KRDE`f<*qhfTZ&4{(Uqg~gB^8f11>%emj1l`gx>gU<+Pred?K~;pxC9++ZzYi0^XTFk^^i84G_7lul+YK zw^!$Gd=9YS8v&7(xuJm5(s`Dg&LPix!8yYV0^ZxJL$Zc+;bEY`fUj2N=FT$k6;&F| zgZu8vf)`T};VcMY)%>+*yYX$K1L+`}fN^tdDKTnVCgS|)F`hU!fcvU)kzuZHiQ=cQ zN5={{mD4e=w_8B9Qg?J)mACMptk5Dv$j}V|T1U>AnhnwwNFZI2Xsl`ZFkxp$0ESG^ znLdhfHvAbbz=S_i2ISe~?ziV412)`bks@yIOjZ33~sS^=&VgoU@lHxMh zVNdz&Gtw4aI=px8!Jkv*%8_Q@g44}22&upWnOl#qO#m%HAQ{lI@kP@&t6&{ zyAuqQA945~00thiKORcNB*FIZpt*UgQ0%R%6g_5U*-WA28A|U6mZ+Zx7Sy{8e zPfHFxiymVvAdf}6`PC?KT>hx ztM^9ib)tbhi2eHo2mtTQgYmwJiRDy^g z0R?g~vfT@JxN2Hx5+T=HDO|u!eK=XlR~rH)1RyXl+h26s#UwBYaS+JL6nRLK>C3*o zY|@=YBh186gOv4v+4I&r6;_WmJ@Vx+&2mHYrimIL?!t5^BFIcx2wvQ&244 z?(mR{qzlkxieF)0nrDJo2O;)u9G)gLc!vXcuUIQvVy;N($Ewf`ZJLG;mfdLP|{T@V#)jyUFMUstsn< zi+X0B+2(y+OO?Dj=o?~T0f7L{TeW2$C11;ck)|V5`aW0t)uOiM7~1=_H}IoCB|QLC ze;B!n&1U-IzCD1ZaXrNNlVIgRU7N8BtT)A|RQsG2O^#Gm#@Q?^*_4Y-jSbjT&i=H` zJO5FPruuqCq)E7y`QEU~*cO|=1Y|!*maB$;Hz`P1`khx~wUgj}h(e`}K>^E=}J3y$uqZIy9J$h1k-vRG!U8WEm_P018k z)GoyW%0vziSFHK-3uy3h(Y|*^;PdefSzCi@m4sx0OyPAJv0r0u9`uNZd+k4B>EMMe zQ8ai*$;~SZ3?G)nL24c@ZBX{gT6;n&)~uV!1YY`cuv}MXj|81D_Xfp7-)+APt1w?} z%|?wtv64gp3(SIoa>)JZ+KXJDgt#X}_ir&#PHvYSa{7BeMZRTX}E z6y?p1&J?aixFN0Zhe;{VW4;BK)EZYK^VmXD)9>~z`6_B7BP(W~h?qmtEuxN2 zj*iUa6H{3!%>vOt<}DdseP(LbEBE|)WtM@g%A@X z@49ad4BA@{*6Q7q zyZd2XmISpmDE>8vtA&p=IWPJ&$k8(?ZMcXHk3FC?PR|a?{~9l9Y-KHK90ZC<^wa%= zVP9VQ%jf)rDQ>3lY<2TjS^FMW&Qr+C} zv#>RbJ)sk4*7t3$KmwCgvUMRu*cT?pxTN zj8`cuQp#0K~^xW;dWEwBLJSZ+~T+;{%!YuOxbWmT|U&P5U{t0I4y z5TzMssu|MHd)uANwd&kFW*k(Y$PdM9PsiN+Gy4jE!y0jvwL#$@uA?vUOVy2Cq`o1Lnfz&G_f#6nkJ<}g6ryh z782)uFb6^=hCkF0?DqSHy!N=iw&N~O;l!b&Gl~%0By91D>()Cv=RpyqkCqBo=Zuf9 zH>>^45gzA`i;lRk8pn0BW0n1?d6#f3_wGFhRoesvvbX?f(nG0V3;b#1a54ii6#;<(LdXj+R7OU$8$2zH zMe5(x!J&T!6LY5hX<)&G*F_PiC4huG{B`*E;*ftA|EWn2r~G>-Ue!NupF#dk!-Ccr z_+OcXSAVZn^Zh&2|L>jt^-8GGv^o4K-M+;7(y_o*bSc2fFCHNQuSw#4v(r=Ocm3>SPuEAj&;U}vO z&vc58Equyfo;NM%)DflP*>;8ZvqB(!Yiu2&FZLwWTnI34t01q7(d%%m3rNP*S@)Vx z?N-cJTpQ-5b9Ebi7M(>7+ZiB!Cox6cNJd^+eO@GJtYxPiRS>_c({wl7 z0}Tn^cLf-!)-y?>Le0Z24ZOg|NK?re5*S7tV z@~iey8^vIKQA>HaSt12 zUMXRv*;!XzDC?bWaU0)6@vV5cUc;iuSxWVpM& z-1`ppe*gO{v($iiv8k^1HXnO|?#=C1>``OwwyX*{w$`d43S_d@oB{Ic>dp=gg568~ z`(qwU13F~?pdf~!p1QuV11~v<&qySO6{779dp1~&kX7GI0ogyEQ$a$%a|;{uKs=aa zrr&D$V=-z!8Px^&yoUCv2OBPi-asT249~Kq7i%TjCTDgaeut@j(gQEvmO=Y?KO5U3 z{~zbio#a zM``(j1dbVd9_{y{Ho=-h8OFO4mo`g9qQIQEZq`TNp6?iIE0GSGiwc6fQycx??w-JT z`C8x?<;3l=E=vT7sV@g5#9@&ct-gu451qv4WUo|2)F^Vltybd^)dyWX#@q~Qtq@IE zQG36MUC8bPKcux?ob8y3MwFo7~ z-lM*fk+~uI>ycg%(xrV%(lutQauHrra`xtX*;Mi9(ab`bC(^w5fmqUf`54b`G=?h# z@`&T5M{asW`q9;6UGRXg?zbe9tUc%nk(*1@!0HB9_u+aa{#UPnzi{|b;~E6pmKgM1 zc2BEH?~H4CyveQV2p-XV_1m@F;ZkalccHJWUeBK8lwTM(LoAHZS0|tX$Gm*AA@$nM zSlnyKp~&3==hpMew`2ZIXj6am-Tdu>_R$bUOGAjPmFO7Hdk=k4{&g-0cNT(QdZO@6 zZm1{RmwlbrK`|@;O}@}ODfdU#7lM|OFmGVg4{_2p@;Tt*b2yw>4DSeM1RV@uMDi#Z-YpLnDx&x#Ih~?oejwFb9&fR zf86|`*BD2dmDt-S0GS|HRyZ! z%%y7A3#Hc0v-vb{t;lC^L~;%aK>grANeTowkq0z%UymQChg>7qe*eu z0~|vLi$Xao{EC2oSDiZFvKUO)eWczW z%xU&B?CnP|HA2ci+X3|nTGH@(fRjOUEvy+Io6vwSvdaXAVRz*4=Gn^vi{KaSbCKim z5p>7nEQyV_$&xnpYo>>f<=bzJgpod}GC z4@1Enue%i9J&gg6kKib4eAMAtZR*mu78JT!{C1S=n(T{;($7^}o=86WkAA5mzL++J zU_vA|?sMYRi#G>@**#Ou{kIi_fdtQWFlmDK&Z+JL5U$oj(C@sRm2w!%yYW?3sSe+# z4YZ0^PFz#(C5g&Yo;=B4gP!k5Aj(r*6D#f=o|C=pd=e&#i4yre~UtK+D?EE3afEOs+4lNF5); zmeY6fvgX+Ga&r+$6*stZ@{raB4u(ijIG=AvuJYpa{M^~41|l(1qpEv{h=md1GtKeQaqF8?*K%t6WX2rrKixbO5rkInGz}Uszbg4ubZvkCCH! zds4Zq2U*T^dkrtz<`&2aFA_T_4L>SLJPi?<>-&K?GUAs&Os;PR`T;jL551p-UyBIO z2#YeyiG8bBJp>C?{$1jc8fZqK5k@_mZ-QqzCg3IC$1JqSV{wFl(w7*SXhsEOAn2%B zoNmw>sIV319{%!QEdZquzYUxSiu-_IJMsXeT!JjSuv6?B34ScL9nA9p9oqUVv}F_k z+L^>$)l##*7&1%@BaHn*Amcy;RL^<@S(D@o=|JCo(?%D80DDG_ z{kTL%8d=$Sd?rR&RKd+n$0-nU9kD!AU`OgP(;$(5o^(XXKGE@zK^j#CLOXlbYFQ!i z_`t`m2C1IfOXrUIB_IMi_#hTmi2CfUn+e&JwBqj?R$Zq?ey6v9zC?Rv<<`1)ht985 z$qK0ow{Y^j0v|0qKgR{71~heb5|Rk9nXnsnV8$^6qQoDY+`4aj7$A?nfYRH29HW!6`)NY3yoIzTdL=-6+RTZsm`NUffCP9Ir=RpE$d#7_j-;3WAQ6Qjz=Xarh_V?Q_`4yTyK-&-|f1qY9t% zKKLOTu=qiUJ8`ORh__CaI|pyA*$mxIBwH3yVvSV|sW~lTpCI@4qdbk;5~J2k_GSk*qd|Mox?h- zwzcs5{eH12|IJT7!ag2)D1u$DQPQiEtFLt9E=_M%dMCgi4mi^a^`eOeprIV#-lEAy zL`a#D*Ks*QNlbz_M@$?i2wgD)!&6^dBK&fM&a7>V6Snh7}p9E$@BZvr@H`GX9 z9qEcP;V2YH;k6|E@#9C?>&|dDvS4TqhzJ;b1Q7qgVpXA{%07`FucxxOq>@|D=5%hS z9mn`4mab}iX+C4E*mhf|T9towB>Ul`M|$c(sM*86(nU zdapHkVaGPbhliV{sH%^goa`^XpLzHGb!oPwp_tokqeup#QKsPN$@!y)7`OKX)p5_C zmv{V$(TplWHFBIMt_t$e|8;c0(^r;Tpqmlfl-r=0?3YQ5WM!3P@6RB(OTEzF%3E3a zo;NFV)6*qN2?vXCyyfM!wVdUzVGmbb+zi3V)sg1wNH2iGCJ*d|IYGd{P~D_mQ8QHz zBI5&gRJF`^w;~S5`Ce3F*i^!(RO0M`2-1cbPax-q$^I~}?kk@je3*cO%n~Pic^W6( zv52#CYrzYHjv-M`ztOy=rXp^h)h}tFTj_*+kdaXYnB^t?%Q-C;Q&?UlFKDpA0y$gx z+cV!#P$QeQvI>&ebLv=F*}BERMjfRjI3BHcMLCF^Bs4y7_<4`Kki03sD`s8grHtq+ z`-+ZntH3IaTTjoGV7apM+)e_WvwCpp>b7X;S22NY$13Q)Z-!{AT%hNDaQqIM={k9`&-Y z?#1ad4XPr@;x6CIqrOjBCN{FKTd)Cq4*o)!>@hw(!Qq*6`?Z>Mvc(sR?@zVG8o)}Dfo>i}ls==)CgW59`56ODs z2fiY@Anw%0@L>vn^!A9lU{w0``!GT>qyp*@R@SA<4F-Eyo=G>v05*LE_ITwk+FPg0 zP-A_t1C;f7su37u*NAyzohj9!`C-dbyDt$?UEl4@d3q6_)QRs8?(8t8_A?>0GfJ`t zK=ElMRI`ySNvyK%jwfCeYPT6CguFm0K7K_KPKx`BUt7&nrmWbH_VG)NNkCkCJHgx zQD3srA>OvK`O;@2@!KV@Yd6{_$#)qa74pPBWJrHr!WbR?tY^4>u#c>{;nU*zWIuIb z-%v|Ip;h_G!Ht-3s*zn?@TadtQu2*i)atgcUb5zlj7S{z*7%BRdwXYHDwN=FVf<1t z$gMKe(2#ZR-$=We@B3Z3SkNLyBJY%7_^30-NE!1hB+fZER737ksdptv^(5k#|Bq}W zGc?YdiP3WJ1D9FfzMJCc`^u61$-4rTNLc)A7H?A%7YyI?ot0qdFNkC~!-}yq#APco zwC%Mv1o*}&3S;T#2CPs{VQ83G{()%z407k2&jTQ{4oIA4n4Iq1cY@&CE58u}qLCXB z>c#W7x0kUT-7!Z@*BBVBK^P)}d?u)z@0d7W2aOPPa|ls02077f(UCk-y%}@bN_RT8 za61|0@SXB3%zVwLP6GZmg*G1B`at?CkOD{`&bO~))RyIY#}qWC5&Xn2c27&+@c$y~ zEr6>2qPEdPAG)OT2!eogN(&+(-Jzs(Dj?k@(%mH>9ZEMyNq2Wkch|T1zxVy_ow+k- z28Y9V_HXaC*Lv2o*0WCNwaOOCLp+l&IBLVMv$~S|f{pkP_#Q$Caf&b@}ps=A3qnz%Y^Oc#X~$tWZOM|Y|s9e?_0D| zPM?|v!tDiIhSy+>;)@sFw8z5yV?W`B1l#cyW9UyG`2BG_6InFg_P7gs&K9O-^1BmX ztx>t0SWL4mU(ETWlBZ|>I8;Q1<+z>A_^XEOLcziD$4x0N9y!`0y+o&gh+un6clK1dL!}Qqm|gXamHxZN!QPa(ps);U|4#Ea z--YY1$9X-ge|2(PH%A#Zsh=d4yl^nA8q~Cz!naQs&8_1Y4q@~HBVg_}W2Pu+VX##B zWxYrEhr>tj2$4<9ZVB8(z9=t6-Cw?s1CM7lZl4ni3PeUG%2HhytMQWZ z(BpJF?@s(AN4nLixjjaK(?szcANKK0*;a6#R>jqlFqNV<+TH^C-VDO4k7%!S`W!&>o@T$E5|7%()AwrSEu|wF`sz>z-(D z9FtT*q3=qXQ>IQe#!f1^%sWT?I$xQ`yHhsMZCCXRwS|DIrCo^%DK9b8(HG*LOcs?r+4K97n?QaV zT@&wMCiH8bWd#?GFb_$q{rAzVUs=|A!V90AXD|xKZMu|$n5`Om z$12|^OV$WTV?&?kxaCjWakX?)ZK-|NC_Bjj<_#LVWitkg@QGMA3Dg{~!X^4_7 zNPPPrYH)A3xIkol?BtHQgVvOBR%Rtc0Bax8iqG|%)KV^_W$vU)+%|LcL+}e*=C+xg z3WF)NagF7X8mi7e+vo^=o8cKx+q%1`LqvRgkAFyGt4?`PdmT==8ymxaG9<-b{gn(- zYdR_faURMa&n>{A#AUlO^+S;U;YPQBFICtx^?1{yw-)?b0kJDOM*YikrqMP0qW$O% zugHk+Hy{@l5f@n>%1gSCI1U$fKin2Ui@}u~^ww zoD%5lwp)R>TSY8)e{J^DUzpWbcCKC#ORztgKskh~Xsod*X3v3rwy`BgJ%0?@u=u zHdtegoF7+8bg9BFNG)_y3Ee#}>>Hi#nnbH&KL|N$Y<@J@MR8u;pnCDxx?1Ay3t#6_ zlPYRSNi)|!8zwMnynEud9A<$X!if-F}kRR}l0pSlgVT%zd^lhF1~v z$Lfzfe|V#jt;EkSCS?ksp4AL|<2_G?J2gFu^O=%oVM#p^w?x*Ol9&{c>+1u2<%hyT z{gVQ%!@OaW=^Y&#IEQ-RDVtF@ zX=^ffm(ct$azq%f}4jLCYSQgpp-#!j# zpioyqa6dsUqc-2ip-rB1aFQLdcyMRDC$M!AiI)jU=+=AYQnl9TayQ8Dr zH*F}liY2*T zH(G!DbBkKu>c#2Wiq+3LaEPu-+!-UR4kGrpGozM;`B0dD2X+FwW>c~kb(&z3#=C{j zL8D3xTPs06zP{DA6|UUFNI?t>_07ZLS=D&h*VnCy?5+DX2p`#f?7&hNdJN%|Roba6 zuP>ctE<#C>8c)#54UvwD^x#0d*HNAbTv^NDtsJfx6m`lvZ;!o!Vss?CZ70v`9=*6a zUZeDrF_N3eKq~6Q`IM8S6#EvKa>C5Zdl1cqDfd`lM557XW671+4!8X`YPtDp##Eo1 z`?H1wf%fwOT6F4sSU$%0PI0iqjzlbwrF#~;2f?Ge(>n)>WK!Y8S7y6*u;jT8<>JYy zSw3!VZ$aDe8FE?SxOjNEfK%r+O#R_ZOC2vs!<}t3H1GNOzjFjbbM9AcUaWjhSXb>- z-q*h}Dy#cO7~Ftaj63G-Rpoo~J3x<|eJ2zYglDn~GiKXg5!UkBs`H21jEvQ&Ny)BD z=cSVWi)Ti_$@;znWPBGIFADQ3NkwdAMUduZ+?FlxAYGqPsOjW);vGSeE_iW!tP#&* zm^!nTm{>>~^i@ZT;mc*kDQam6;+`M1-~G1MnNpQG=OIKNR>2m?lSjg$L{u+DJZQkq zFN9CV5<-RfL%#JmIrZBFfyi}$Nv8j}c&Se*NF1LfZs4^HcXhGnlbD3szBwTE+KZAw zO-+jNUND<*coVpUerY)bZFha4atAjW@M!J)EA!R(w#bsdI zs(f_yqt1MTqdgxnF^lGq8~9sRAcwJ)P${7F>6OBj#W%KKM2PQm#(+rdJJKLHc2i zFW&pci4J(2NcTCu8(rkzn6p|WZyYF8i?XGOh)F?D6(YM|BOJJ*;5NfKx>~zCzPUR+ z+O@FojqtKz@hV>5I9WqSG}8V}Tfc9<`wPRPdBa1T&~;&@-5uj~ps%k!#);?iG8zXh zt~o;U`T6-};_K@+6_L3)+tn!Tfg(DuTb<=#dhh+YxbSZ{Vynq$)gT+ou1LQ>-oI{dS>@DphNh<^^Wu+$SF~M~;wx*%%oA*~n>ey_0 z(x?^5vc;78=a5rE0`@NAnBG1uq1HVY7a#WZxxZqEQ+KwuO1P(Sv4{stlQ(ll+)0T> z8@;Vd7mbbOE#gK;8X7gEaSjZxaXle|<5YJ|D1M8tGdRn*wlaM@YUHWW1p=;??Z2YCxYfZkv=BMMDYW<|3~+W?2qMY;ABcAY*>tV=UX+6 zvPYvTOBz$zJ(X3izQhEx7L{VLSU%MBbWH!0ySv=6c=~7J47o6JtELjJ(Tf+MJ&&s? zWfhI75fknnQL7e~X`#oCe}DDPP2COu`Lx=%ervr%>EaPp$?K`JR_T~FGymn43t0+Q z)^s=3>0E3qVs|u^o(sn7W=_*tU0b&ZVtU`l&o3XMDD$eTORk&8 zW{J~0iq{6#A~@rt|7fbkjYhq-{o{|imt>l*#E&5+by%6TP-EM&FxcpJ$uaewm3{8+ zy4YZtI$cw-D9L!9&qS{=v989-pc$XOo@SY4ZLzsY!Z()^O8fQs3;kr)-M`j%S(2(s z#Vt*>_b|z?i$9*5a3__%9vo)hc&n~s^!ApRXXzrn*R~>{g$Ef6qnYP-MUuz1^5)|2 z0BK`m+`~irRQ>QWbx!-9qo1^~)e?B$@st7HZfU-YW`Co<*K`>hPRpOd6F~or7@ZDr z{ZnfaXXwTjN?Ae-N){^ZYg`yTF?a(h`7s1rjxaXXe~Et7n*aA;9Mhb<_TKCShXD<} z-w$d1O5TSmTIpmxR{GxLrFX&@p!>fldMZJfj}GT3#D} zgWIoWn}Y$v#XWCw*!fS1FL*|iI3tsF1)6_62apjy8gb%iMNuIG>zIu9k4PPs@IrUw z{3EiecI#oVh1Grel4vg3Ocj|Z6h>?Dc&Up!j?>X@H{>Kwb;0HamJudSB0=zmi(%0Y|MvF|3-4&uZsW7 z-C|q08>^-Y5paUt~#Ex__?5)y}voNwOK7p12fteX)ft}wr`}R zjV7CnXf=x{cmma{_7t-HBjoP9JNInh_n?)I+uX#Y5zZl{8wQ_iY{u#wzM_i#f8ZxF z(hy7rYkA-oJZwfU$U!{1h8!Ue&w@b^v$qFp()l(P|K=BF-^V*RiZRZf_sx=(mHf&M zRsn6DgByJasB|8l!g%TKzXzNJzy@lEzTvk=ZjKQ4-Q7r70fTH35tlzhjN-7u0bF|Z zp-RqsJFnYrCl*`;1$o89f!5nY1f%YgmJMSCAtb@e59RDmrueV{+Zqpna(y@jF!QQ( zFr1*?{nR9V@9)r7PxWBvn7UXY=URX4dx!*mU;P1Ov005b^wSCB%C{YR{6Fq6jDUX z1xs)W113@jr{0-xi8Tw3v=JgQ6??d1Qsgd&L#>@5-V@UNOOFKeVD+#dE-oWwmk+l-G4wv$V?H}O@kRmPzorR%g@h0xY;3eK zrVpAiN8uJ7r!cW>inJVu#ZRRPp*x)66qamd(G2P7>e`905qkp(oF@7Hc7OHxyWHGX zOx~9iNC374{jJzD=K|Sw7RW{eOLU^X96wiPWHJDY$u}JebU2~i3n9w>eCMpm!J*HY zwCsMN<$SpZXV2f@f^SIkd5jL?Z92yTpdtjGv#ay;hMNu_(%SUdXxa1OI~rg7tGb`g z037ri`Xt5$bWG`rf034^W+2$L{ug|wrgpS9j|x)2^3Ci>4ClB zbv3y~%}#$?Zx4#9H9)8gA$-IAg;up5S4v9HXT8{7D%}nql|(^2w+RbE4b={)2?YjN zdC;6PlnDfaOcc^*HZ5t7ji>VI#n6w{`fzNP>R0h(65Fjqb1~mUc6-9*GwG=Un1e=Zhg;s+`SSm;M=#MS!0cEQzXdw(Q=*S zVspUqo`=Ha;rDN6Ws5d=U6RSh=#mQl3hSncI(tD>_s4q~Niitw^N)&!JXf8H)8Uyd zF;-<4mubf@;x;Wa4;`>NOFJMeeo{Qbs8KglR}#dY=9b@n~;(kd4h2ii^R`My0ODkIF! z`=@BiEdkHX4JZjPo`=GSpTYzvcfdP$Ds~Jct`y%3p^f)=2&?XPJKCSWR z-0@f+S$G8!Ocl}7&gGiJ1UXYjlFnLG~=r^#Ji^!F=ab^(_iRy~4VHmxc)tPjk zdmcu1bJb(yKZr~++tF0A1zVi93YAOi)%?n1L>VzU@-`wl8DFek@wQ^m(O*@oXa2CU zeeZq3?=BKf%_jA}9XJzt1=GofLzD1{qNJ_th{UCpZyOdy?-*H4!{e9`f=OPJj0v`l z&T{AhGm9G2{_?Kbf6#Yo@n&wVtQ2d02w)QGk#X%*a1_*8>oZj$>|OY>2m5mf(nZ6c zRD^KiL%&y+P`F^wSi1?D+lqV@eiS@CSm?WxH=ROUzGPDnhnu^WVJuoG`|1A-Tpo65 z!@YwBlJ|1PR!hRU*}>td#HcUmpFb}s#Tp!@rui9R8d_Pfd)j0F|hJ+aT{E z07*}L`h)L8u2-tMg9$yT`8yVrYZv>>F=9`^qAMa6YHm4qa_Uz>@(u`rWifb`uv{>% z>tbTwl?Y)|c)Su%l4Zt^iRudfs--hWxKBKg5hC@gvmy|=%VfaNYM8ofFkOv5IXnxj zF$cXW)tL3?gvM8aoNP%y4@co!jN+exmp^)YeE}i0s6kJUQmB+&&xj$WJ+UcFI?5^+ z?BTH55qvfHm=cngAn&`i^YvfQJ?W2Tr*kVB|H#GGedL3Nh|9&EArwlFO4I&&$x=Bd zp0R^cN3B=PDM{T8&bAi1ANrT5KCplc**ksGGvR;Ew7kGY0|x{7!ABT0Z5j7Ljur)) zJ#LqoUiqtjz_{!R^X^7abLH>&xgHA^_U*qc^k46h6xF!<<0(+UR6lOVze3&fJ7&wy zQ5Y2!(1)u;Abd%I2J??p|L4%U^nhHfgCcm0c+~RPCo&vCmIu;whkk)WhelrF;C>sF zbdUH;j1=w=h3CWSoL*wk?T~sd7(p;24Z`g8X_obk?Np;!CrD+cRTQd;vmu7${Jy`$BW?<~MPX@#uoMd5sHoS6l8HT1ZiC-O6w zfr12>E^8;ga#UshkKZ%Y0M!@epPaf7#JxlKyxO7vALYvZCFgfr%)!dJ82{H$`t0cTlCfpYxLFr1KB1hYKt&=5pl^>N530aXTy~zLmRRrV>G}!BNQly2vl#GRzgqk{` z?7O`=l*^(rcu%hoM#gjInxjpu9If9HzW>_`AZb~4BYo>f^+eA4N7nwBfERgSKgy

    Z`T;y{FoZZ~g=DqhpGg%@pb|NPV8);m4JkDt95;nOYbZ>EhRWjm4 zg@TA>Js}08`eMNPl3W3fsT*cwEY^hcF3flRE_y!p;BoY?#?QkQsdySeZB_qU%{=_R zIQH?@j-{SoWMaNU?bGMx<>nwNMDcr3UiIl+q0I9xt;Z>YxpV8|3r+||T`wt^VICUd z2xV6DO=MSFB0jU)`s-5ZQo1eaL#dKsy{NGD*|TKu$jpWL#p(dsv@sSgJrM2{sB=K1?WL!^y0d>c zJu+w(q(=dCmdkUCc|Kz!THsfHYS8B-8c=>(^O1K4hh261D|n^<31@SHR*BmVF7N_Nfajx=NvzaXH(QV70z)K1G@8o zW($M)<9yi%Z7PRe8G5v+(=Ak2S4R4Wy81I5tt-oUmmBMd_^L5o_f7xcCTczj=j`4+?Kg&D+Mz%?7aqM<_s9>X%M}NHL+a47 zI!I|BE5sMdzC!mc&?-O1Ia+2s0zp(L7tm^FA5IF~!11Nzu8{tE+5a${1O2X+#zn+)`xHl>#C8Wx7it#^h%=d@*Xd|IDOT0CT z=1y4~ZQ4pun%h$l6!cm?nVh`WP99alA3X=r;mlljAC%~h&PRq@@tcgg5cSAZ^5ARc z#Zc!jhL2x@*wr+@#gy}7WSgO)<@P9K|=%Ee7HZ6AHh6 zjAHmOP9Vw^2D9o5ONA?66$c!>{=QN$ho-S%@59Jg#g4L*LxO`jqbdQu?juJsMuDlf zAJOv&p;cIRddk!+9Z%IkOA#}aF!lJ}b#eWS(ixp?Vgp2Z%3o`_BZU3a*(L<>$mY2RD zl?SPcG@U8esEKrbmq~$(6` zpwK5~xLm(`Wjr~4xm>7?o>2l#j(uHwxq|HOVgdn9n(C;p*ZXp5OQb~IQ!gw~LotA^ zptK>JzAzALgD9=Igp3=@%OlOjy@AZcp()FlkT&RPpOZ`mcijV;fWJ zrG#17Y39IRKe`PTQJjWX={7WGVuktfaLa0{!enKc(R-bCQ_ZMs*s95A+=VTi$(P@pG#b)R{>&20@AiBxVO-UMi-MIlm_Ct| z^eVSHUeChf%2QDTw_jaD=7=n(rZ_*sd&f2HM)6S}FBC@l5=wGd`2Yg^x(INYw ztJ9aj%T?LvB?b?e4b;NnPjPo+W*Bs3XRgg39)!3Fq+~-g-lD`5kVJER`M$my2W_IM!XQb$-u&k#!j4TE5$3mE2lc1Rg$N_7!1Vc)F!y!>1M~bI#fEj@XE^GIkf3g>^vL( z%F0)csHklguUx_jo6=c{5Ywm8Ce)+fmtci2eR#JTa<#KVuK599`vX0FgxG6x@40~* zxpamRo2`hrA)>vqPgN%^3pSn^fyn6&U+T2IWFeG!ZNnTrQ9{dKM%y3j&XRqDCVPtAjrm;V=X zei(3g|Esqhg@XVuVdlKEAX+wgg+Hnv7ARxSm1FceSmwT_$Ez|Y_?Kj_@aUSXWV*@+y6#Zr(SJW z^eWQTSO%OtS)YSEk^SEjX3CqQbBDUl0}XA7yeDCa*pTH*UAR-;iVYerKha;&zra_nR0Cu^(k{ zy7q8_j&u4VPE_POs%FZEfjri@Ts=K0QKgZg$Rvzxy-&xrv#1XUIBTY z^j3LWqJVu$_FVF*ess?ddo2?Lx*OiYo))HT9t1P^H)f|MOtiS%7)))JIU44@(v{{> z7^Ip9eg4*i?yZMO=J(#ilE6%Nw`=j!RC8+U;;dI`IbH0|jEkacfhbSR+zLJ-^ zFs$9J{-g6qbk#HgAlWdcCUn62Hft0^onH`s=ZVTyW*u{RlVk0Rb%RT$Jy?w*YF$fk zVSl>9P4p5+la)3fw!@i4R!JPFq;ovX+O5A9)EDWnwgil)?U2#0!jObCA|j}+mI@qE ztJd`^FzdDT4l6esAdpds#Bu2DbwGK-J!H0$>iO$a$ct=O=+H!qzgiS$3;JTeXegMo}ZX+H$m@H+MxW7tA3`UK`n|zsgR!0YNL_hySx+nbmI^`mYCD z!sMj9(CU36jy9%jeP!j0HMA2`nic4T}5=~FOfA_W4kgw!I*JMUCQEMfCi zI*`pknHb7iW(C!av+X1t(0i75JZ|l`wrU8jnm%zAfv-vAC@cyKBr~wr3W2Pj@W56t zU#gEWn3v$FqL%cJJBg4Ra&XvA2eqH!6;5_wUq(2#-nJ;CJnuz8OKvk94TM(k}rS#v4IGsO&JRPqh zQ$8843PxtJwy(JT?tiupN}L)u)TVY#?%bvv_>wY9VVz$P+k3rC zvPRXYTGwcG(;a~n^ti7tx$YnQOm+aMq721TrnLaHvLEk;m5X+|S)%XyXA}d0OCe2# z0kPHdlq`xP(VA{4=XO<)P*@mYIcOq#Ybae?HTuc`==AZFw6zf=8`r8Lj-$+6I)I>f z`Au4Vx{uO->JAPg`vK8<7CROz*daRaU(NM`uzOg20yK4e*j8jhTP_SO3BB1Pm~cos|~$BBHHHq#g_^8WzI{u@_q{elK9DQ z{Us`G!G{Dd^i8+#8F-)@k3KK-^)RvN2*XoTklbB5+Vr41y6o>(z6;L$7#kIS+EMA~ zT`tbtefA}j4re@`m{BXzz zIDS?Xl>tx3m-J?ZRm?gS={A7skEwun4%vg)l6oh}8(9ztVID{jVeYCSZK&R|YKsQk zRn}-u5chix`UM$G2~-$u*IlVsyQ?b?q9bGI8kSftMWKV#I;nH%fj6}od`w#GmT|(n> zd2e>J;J4n9U7pcG6-HkX#dqRphVn|0|J5jRoXxY!dZpo?%BNfGx4V?bxy_V(t<-8*o=0lp#>s?pR{5xF`b29%b~V&+t4i14M`3B@L+~ z=Hq2bH`7?XKK-~qIDA9-SZf^zW9=ghHZP?$&D`W;?% zg_C%iAi6Z~UXIE)SKK-d`q=Yv*>Axrk$i@JVoJCWMf0FQ;DXT7Z(4xwwEpj8o{6C{ zj9RPKk4RD0V28hF(idrg>Ym!rhPz|>CKfuF(Sqt@zJnhj0_1LyDRM7pxq?Xi_kka1 zdtz(B_f5p8T2cQ7PKoSy7SCXghY!vu{gqH$d0H9@y8#A9c8v;0A-4Xac78su<_Fw! zBbxs4Oa6=k1(DK%!X4Ou3wQ#UQkQrRQsfVKTm??;N*4%Rlo`%>n!`+GI8{OCxoO(A}{vWTPG zQnBG-MCxP4QCW}DLPtAYSJIuFZ7vlmn7;$Aj1;bfS+psQ%O6xe78alLv$SDMPmJJp zF9axmt~kv{ImOdYF)*@|iv3H~H(#Ees@xX`*iG5MC6X}?;Cu@#@FBS$m*%9-Kl>gC zn$gla@8qWklUv<249IJ+ed{wo46tdvV_{oT%jepb2@;#dACUF9-x42tY>1Vm^N%FX z^na!lO8xT>o2vj9gZ;|OM+Wz>j8?XrAsl>qMhenx6Gm%f)!EQUMn+cJZgyP><2e+C zfv%s7jNBdm>^|$UAYjGW#Qtsr{p+#hM3jNx^t*n!WsPEK@RL8ewl7B{=8}MZ+V%!c zz2S%ky3r?QvXg=iJ&XE|BgXHyC=|R}X&#a(e?z)wjQ!_kgA3F&2Q7= zVr$38;C~=R6^}>o&3AC19fUH9XAX%20Q#{@;nY$_xvoeLX*meQ`pH)x(;S!vEP#y> z%5t<{93G0wCL?=vF@ncMi~Nw6^<({Q*)txMj8j^G&Y$;>*L=GP0wrxGP=Q|!PfQE| z@p8HTDk&X~myb`+K!Ln%_(K@~#$ZTX#EQaw^8P;q zfBPoa0pkCb)+{oz8NMees4Wp?5?^Jx{tmvCHkXD*=o>XDAcUzwNQ&-yM(xGC>UajqPR9c=HtC<(>g|cC5h7hbrMlwL7lBdd|MP1 z_V%+X*q!7=KDeH>@5}YSDF@5c+vkp0@X8)(xcy(GP5%B~`2SC+CLFYvG4f-Yk>3c3 zKG}j$z>*u%;Cm6tKg-67WVXQaf8exi;Uyk2c66YEOZNm#`qZ2XP}3OKyuo?O z8sv2RJEF>fBb3gOZ4S+0ZvX}f-K@jd(r6J~>nUI(y7b#WBj;nv2$=c+*|bz-u|XPn zSakV*c$oA4YQflU>H+R1Ye-D-MYXGd>%N1og3JC@aYptd9hIs}kIz9$Ep=nv}a=6)gAwkNU{L6@2 z-n57FoTQuJxyvep8HzA`#zsbYdNS(!?U#J4LP$N1JSMxljAxXSEi$U25f>D>dH!Z$2=$JCHDiwM&Qez^@jvcWkYUD z?`~z{YnUU_>b}sG7uWwv-e;U4_?(*lZZW)e^O7TD4bfh$WzcGih@qgM?4!*Hb^P_7Mbjie<|+uQZ8 zsn&x!&0IS>`ms1U1^Qpv>QK&|UH@bu$$MSV-Y;902wziVQ*826L)L0zNh5HfwCQQ% zG>%@&vq^TMnFvP@KJ5iqZK~Q3XOGH6?ymKF%kJzm%CFY0y>7&?k5&k3Qc;xBxza%f zUo|GMQr_gfQq|UVb*} z7wV_q%aQeuNP_*No)geiOgB1Jj2cubD1rn|jMt1EBfFYMO-T*5-PIxWSHo_pVP>e~Mx&mZWrTsjB8&>A$CsurOukT#{FE70#m5WPkVS$@zt zu)Vyn?;gUuZO9&4qc-a6x^BP4?ly7~MuuE1NVZto-~T6J`Gnbrc6&WDGX#MUoD)1< ziS+bKF6A=@sgXQtpj9BW{TMp>K9`*;ukKQzF~WBg-raWR5`L~>GoAaXH(&Vmz4W+I zw?%3xHMpi6*G$CS08u6)XiV^HhU=mLq-du%1KDhtHQqghf?L{{enR<9$_d2u?UC^w zJ;{?RynkgnD3@{P<>VQVvJLUh)n9zfYy$m2lLCQ+)UbrlOr!K->F*y@IlC^7l`NV7 zr4+8w>}NB{%=tQ(ZO>Et8*~|T_!k#o`ASQ44vptjrPv=>sphK)B3?cE-H9^PxO-R% zp&0)9$njd&C3G-Wv50GXI43!i>H;_kw5Viji7%T5AZ0;$lY*tNKsYTwhfnZ*EQ(9IX?7*u%oZoeD2P~Wzv%)dxFEJo$}DCm z@gp7jbnH}nc_l~>dO5ja%wgML$1>aAxT_Qy_oux!R$!?svnf7Ml#S{g-N19W zc6GUz*a{&wYU9{zw03#gF8Awk{|E(-`Bio^UBZkSX4bvK%?OEqPm03OV-@t?vUtue zXOfmXJ}0D}k3E8z4T;%?NS1=H{U)f!f8DUQ_DhZ?o%b*FA5U0p{&MfQi>`P-NoDzK zekmpUzG>_5&?D~rtS0e%ugQ8bP*=cXt;$Hq4I4NcfmO$Sp@cLKN}4dsuZcQV3U0g1 z{CXYLRP&V84`6M$MqTat;F^BqkawG#ba&wbHb(y9$^*0iV?zMdA*E_XU^_$qS5Md} z*Pdbj;eNE^JAUK;yG8m4`vEyq$6U|Y`hNW?e#i`*VP!G)w6#7R#N7VhUVxfnjRRKd z7&p4NJG{e5{;H;f2?>vH0v}XZ!8(rYoJB&Uj3n`mPK~2(^p*_}AK?0?cq8b~mRXX| zJ6s#Yx})6e98g+5nJ#uU^*dg_FuA>SpS1g=sKUy~U6K0N!XugYLd}<#!fl7fm_cFvY87=8DZ`d|wvAu!gqbY)a!gB;Mcy_xH*FPg4jKKs zU&rpsq7vM|F4~WZVF&(><0z}9BvD(3vgmVi#8e}Z`oH@hBm(MdFXg^ya7=9^ToHZH zgZ8^~`8_=?Sk|lfd!`hsh*3AqC1(&CQxvfoMsEQd`tHOZpY6jVa^tyx0YekzV6SQ0 z-5|?H+s`iSn+j=ES2_ntIDJ}L{4y*;*!xWEJRYyS^?O`j^%(JFFq?skXfPGj#c4fW zDT?iD*7>CY$a9`_H%8rA6yRmKNVfQ9XWb%4w$R_; zY)+AW!21(x;QgQW^4M_S4KrjbQ#rejo<0ibC3Y=bvrFb)^vu_LL9Mh*TwPiv|BuzI zRqY`g>6+a#aCY7UF{$s-H*X-8f_O*k#lLm@zI1~7V@kzQ-{@n|>9Ij74n|D)8b_DQG&;NIy8bHE( zrpyS~ec0>WC8@ufsF!g|S;y1FwU#_^vOCe-&6Qg(=Ib5?2_IAcM-VxicQB9=hXSGC z&kPx76+1{8CP2YDNwng${2aW&Z&deDq2C1_h=B>Mw4au(`M7eE*fFgI@)p3q(0uMd zUJS925ehZB6yyCw0%>)8O*N^)Ibt{ctt&=l<)t1n$jI4j9aLPq(e@83TVmqfCx<{4 zPCU-esHi4uN`A?CA1qBgh9BFPzeIdD%5l>LgWx8yw9ZM6+I%>kBIv9B_25RLfF}#^ z>zaHXFtF;Q!4)S6^)PFGiL=pbdHb<He7UY0i{U%PlSd)zS8K6QoafZ#QHoSEXV>C&hUbjT2#yH)`{7dCJG_8qB+ym>B{ z-fs--RP@mTHq8hPlnY4JNh?uF5zA(sO2u~ zlyT0LMe6o+~Az0L}W-!(HCG}ztD7!P#?lJlf(S)(n zo_tqF21qyFS&8nf_nL5?e3x1lM?2}g9T-w}V3?-ye0BLIF zmHN*g&F~S;_bszM}Gn}bhDo*UW2b?N3^X?Q_DrM_kLQ58q zAqPng*bq-FkDXCfkT?+ERkZndC11+c)7wSD^d5IFJ;UfX1#yX)&gL=!@QAp&>ab|| z1W+hS^YxzTzo~3jDTp^UX?syV-PCh%aR6yW^({E*i2J|?Q1on6B+&QUX48FyZ63x5 zv~KJWub@eZTY>$<97oTg7x@nD&vhls(wdKF4Wf|_>P5tOUt;5Q5Ki$@Rg`S~&K@$d z{4BY9JOlcD^r-|DzfxOWA3e1HG9RI{nrT4-5?t`oxv*^mroqVc38;kD(PRbGD zHm4-Tg&*BPS^e+8K<8|gWqWB2AM@4S-j?&>m79-k#JX+FL2qMGr;joacs{q2Ry|&o}%U?hP z`ZPfNCxb)l0FUp4YH9=;c@ehgnlAtiD$4>O`<(<(SWP>L1k@mO^O# zr-a7Vx`Gwxb^z91Y&|USt?{H6JQrB0IA*o1x_?BNg+mA24}@ADY%`zd+;REsh@0l2 z$5Y&Il0{_@gGdeH+kJe%6x3J>Otizt8`TgMScVf-WFl0t1aBMqN&|*w<*BQzD@HZ? z^gZM*Rx~|zRhm&r1WU9Vn+J9K{oTPAO&Q5QiPuQufjV(mK`*_fO*CanCB<&MV6ZhJ znV>Pt_2%Tcm6;x??(2n(qwz!UybA?T-+3xvRzKcf9Yj2a_tXsLJt=E7KneiM0wj5D z;bfai3kBmolorDiW7bE+mzvJW?G+%R76uNR;CsNKxUtjj3SU{>w%*A@4LQJv!$?g< zt^Wqj@^P;6KKh>-gCqSAl1A~LPh_?){^7avEl|^}x0}bvt#HJ@SE1{;A-j^tY<_*Zso`&8w)?F}hcZ9$Vep%})}#;|U2 zgL{+hkmwI+dQ7DZRPb7$UTkw_)8sWmnFVaC$J}DyW1h*V=3{b zGsXhI1u(QC)cF`PD4kS`)I!u8f=q9#Ne3>7K~3JQJKs1TW~vS?vFc zQ*5Z)JpV)3>W`Uh2CVZTgN`*}Np`_1FW>(yXiCWk2U>l*kp+EUIq$jU0!O-DspU9* znQFw!xTlWh#Fi9dK!XX%kI8x@tKv_8(^$5?LIKM&XgM;1ZoJRhPUwqKVX!CIZCUgVG3xg{uN`F(9g7`|wsdLrne@J5>uF%@_K zjcTdAeyIvN7l{%_hCbfXwF)YlkG3=Bzin5A79zgLrl&Pozw~OUA&rgxCqTO;&Bx>! z?tixNA0v$gQZyWuC$7?Z_Bo)nop&D509cwHT*UwUQ&x-0@ocKZ2e4&F zJO@5oJ9BoPRe0gw>9eHM5r7YU6O)YoW_6&$ z(BrtBPo5wRDg+juq`OloORa(U(|f?La-kjxFC4K9Iq(J~WfnRXrN_*Vmm4k&L5>`z zg&P_54)Zam>K+na0Oh2YfWN_?AUcsSy~zyYmU8iaAKnpSiSuUS+|mFkYnE+bf@=}h zvQh`hJNm~r0mt^nY=?F|D>yVj*8)Z1{`5CU!7rmi!kT}fc5tKX40IIUgm!hM*RneRpGFH98wkbr?Uu-WBkf0PklD9cp z>wL=8`v#JT{Xe{!t=p|xk3Z(P2_t@pXwO~yF6_(>s`w)k`2aTN65@0EXWkZVlQQ$= z294cQST>!D&dNGBM4QJSiQV^J0X`1k+)~DWN<0Dh8=`Z3J=wUw!(QYTI5%6gac}x> zFzjujw5;CSpLb$HO125!&i7L(GAJ-8%*Ttm28w#pK?F6u`o439qjlNL8PjgMaS-dNu*+9=XY`!YP6x}ScZ2KPQT zgzpRfH>>1)y@szB&-lJzgivDj2##Gs(OPR3JfWE=rj@aGgl}FjVy*slhtL!xI?d+l z9ksb^N|~=63&?-DP_O$er;PqHqvFp-EtlbpMTF%TDtRR;Js8ngjYx!LN=GNc$m8_W zzbB|v%Q;@rx-44P(MpBp_&mfO!ZzMiSz9RUDo~-5mm&6ihaW`~LJ9Ss(jM$K?$qVO ziM}ic*HxSaIr^0k;fw6Lm1O@o({{J~pqqLe>GqpvZu`MIY0;1VkC^h&>n=$I8u zL)J==GFf-w(@Fw|WU>%xv)Bq}p%55mLI1Gx!+|T_0RfUaC3<9U_q}a4&e z%_GB!)+konQ{32C_UjU>f??zjirEwIu*e#FF0)Uyn6U)7Y%xp9_jusJvVtKbZ#hW8t1I{z zGAH#k+KTkr`y~(Jt0Pv*%LwL9IckZh)8{$iyBsiQHYTy^yQk zf|`hRe}lUG_7E;I#YmwDp(N}PXKYxDO3Y@HrIx_3(0XL+MGl{9e<#-TutB%5pMZVr zjyf-=QlCMP2=fM1COZ9R#94hPr;K1&^(l)B-zdSTK88$k&`M~s49v}}w^OKSZ0AwD zThxYd)Jli0EG!2m@RCs8A53GF$HTa=*`Pb)G$IDKagKYRZTqG|v>pcRDz^;gme{-K z)!v=kcp|!ju()LWW<^T*o3ZXwO`FLfX4?zA=a|gf zMO0v{yN#lh(&29~mT;vaoiVCmd|eBx zPF}xks27k5ZBL9IfAbl>hKm3emk7Zg`Vp~p_?eUy*{*+_KA_?s<@W-kZ$wF1J_n#f ziwa+zudB*IsU;8lQO-qZ^%p!BSNNt)I#$X%G}DK^P|khq$QAK570Uu^-1<5E?7zcz zhaycez_iFJcxCh#y!ee|jFpfA^<9+Amza;(cwHp@(mq^DeY55guc?{WAgovrn)eXj z3AstWKivHd$7bC14B%cO`vagMluX;KWU`_%gNLE7=Op+@nxI9Ml%)-%^97e|^rOZ8 z)*FpjZ%-GTg+9O*LcwF_5e%8pT>8sr28Vb`aH25S$Iw~hEfE$H5W|jcGZzVnwBQTr z2MOUXXo-8olV%fWWsI|Wa8w0zeXaxuAu4vk7SpTvg_|GLLwlZHq8d8YLM1&|!=+>jXP20`XTe5s|sbj_0- z)h8KB^kAG&Ri0H02CbC#*l9LDnfPWaKlQk4Y(`{`lgPM3b^05K!L?!(_>I5iC(P!c zerrdWTR^XzM<4m@E?l`{zJXR&_DQ0JVPAZqbOqB9<#6ZKEWFj0QsU8hn%gXsjyFm-u6iy?e_1kwceA$<{L3m95lz;`FIClUzd3AX#V@Tc0$%4lsoPx*7De3*?_ zFYPX+{`9^V$tp?N zBiaI;lfs(Co zJ*`lOj|EvN(N?_K zN`BbSq}au&WtDklfpM^iV@E+%p8XxXJL^R84wWVPBvbfFW&?HSnFLsfkPXqrfELDV z_%wr_)hV+00Z~@Eb}o8nUBQapixeX5o)&EJm-z2<>@TNu<4*#K^Cp;;Uk@snVsdzJ zx(!ie#-x$RJXy;M=Myfv!d-0hEfjhTjeXo2^im4jce!$hp`lw#tTW8~`+L^$UjbN3 zhqN?j(|G%X$pw-8aF&8Lfy1x%0-71jU2UTmRN}2Du+=g;)i zr=h@K@Y%Ge1-|fXdw)gEUUL_C{JmQux(xFUBRIcC>+r`Yjv>8aDf4KVjFaL2KqKa4 zV5F9~ztX84Y@N;J1i9#6nCJ@h{s43Z^Bro?&sG#X(r|tb=>&aQJO~I2;LWj_bP(fS z2(z`zX9tzi-Ei&rMUAa{z}DuAd`Us@vP$zfacZ6tZM;mOcl(dsl+?PvA1mF?LAHyI zbj7XR#G-mwO#`u65kt1*?dJz91F-=ODTQgDFf{FENMvAOX)^1*2x5Dln$cchV{=^j znHuxnyCdo=@hOHk)Z!e&j5FmWp=S;cd(k3g$(L)=(lb)CwLpPhITHj3n76ITWPP~F z8pc2R*&ZcQ&%ZnoDq*9BmfZe%O$KlC0qR3ZPUehzy3%}zrcQ*s=*=DZhi5(w;bFy( z{P@S3PIGH}K9FtdDL!R4ejTl3*aka>=BMgVX~En^InJ*UqZ*N2a2T;1oc6hNb+NJ& zGwpNmt-sH+`b+@zQ$~1y4X|ytq^6q-+!8^|^PPjkC&c%bY9I(t_>}$fgdy=8qt0pm z(7ae137o&YZXRN0t~P3ihY%Ps+aq%b9Vx!Hu-ni032W)3P^O&v(5<)FKRVq5e6=Xe zTvp?vq8yNik9+ZzMt_%o;0?`Gm+6gE&s0xg*w!JFJtJ?2^rWux+-ncn{DBmEd4a3Ifc;8~X!oUwSG3g-32A^E%H2 zACb8KUH_c5tZ?moh6e8)+%Ve9xR4A7z=w<4s@374nY%maQq`cN4a#HXEB?R>{^b!J zX#_1@yMck%;K-lvOom_m8avvNjS0v}ylo-g_E)&Eir^boemF*Ce7M;oxyZQXtfara zOl+)shLyJ?V?t9B+mQ9tcv{Q+^dN*pz^Y7Z33fPnf9_o)PHrH1-o`j-F_UX-`GZO?$pjuGl(O+bB4G+t<}m z-tUOS6x3c0Hc&#*lQ6bD6!gMs(9FN+5ZwwWAK(j_BhDwMXg>CrE55o61|4m=EM{$x zfL7DiIpio=J-~=>v$BqVG32f@+TXX3XPY}8lY;ga2IsL-lyK}HK5DJg`v%eZ?Ww1< z!1aav-2&6+GzL;Jic43H?O%$Uzq=(~IN^Uxo;dWgBME`6zINwFw{OSCU@UK8%LltA ziarvE6dK6fdDI>3W4c6UJQ(>DMfS;&0p`h>S$o_7KUNF&1f6R6mL#&vi06vwZV=S2 zh+uq6Tt!ox@Axydy&Z-T4`ZqRS2I;rv%Ws?hJO!2xmP|eM4m^;Mz@)_r{7IzR= zmvGj5GS0jfPY7C>sHhHnlvg#FL2qcy356e8R+4@7U`=;*?ZMVA zKKI#2r!GpFRcGF(`P!{nFuvuNlI4U)bN~7mM&SQ)0bt_p1mmq4vt?f$=xo;yFYHs^ z|G+8=#%fN`)I5FQ#g~}0(yZ3$fp@eg)uvyI0kAx>@07M-+%C(X3=fi7_l>5^?~q_- z`jV$#+%>Py^3T{os|pnI>U^t)uNL9Ju$v(P@pyqg&s>bUY}@lFTUh8W; zk*s*z=^A)~76~FC8qX4ankA|(=bjp}!5Oh}KjO~?j+Tu`iqWcT6Fc6SU}QLW5gj|w z%69+`uOMD{Rb;80^cg`gX$OU+R~g%_3#rekn4PZ)K>QYB-Zo&~??n>g2!YJ_uK&OX z-Pw%7+FCnp>j!oLttGL?y+bK|;$F&67Jd(AwS7rGJ1%&vc7%KDY=)0Ic<}gYGdg!;z6q}__Io)@+Uqs?a}y*`VM6k()H|?r#e9M( zbo6_i>|bVrQSvnobh80RC9B@DT9nwH!przYxTGt!a^cdwzZ%S1ul&)xcLDKMK7`C- z#5wX=N9gu|$JB-yxao zt`}PPkGI%U4)&o8`Wrh_1L++Py^)Z)=F+ji zMn*y%-nC#Zys}Z#ua1@RK8gygI;NyRO!diQe60-7e;Dkumus_G3!}n;KcsrDbL+=@ z`Zb;wa*LbqC?g9C!Dy*dXW>6Kc-8_4&|sd1|BarcV0l@Ci!)P4XAhkdO;G;pN!=qS z+~R^DpB17uFJ*2piK6${!mPSv%=-_W14yN7_H1cD-Ai49Q?C*Cg{!HZBe4%uH2gcb>d!E75?GtBStCmZ|qf;*#jsMC(%6F*AB2maBx- zz@$t5*04_XF}G+@ZA4LMkT4>i8*SEW2VM*bbkGywDg!ZS`bR_yK*)OFV~1Rbc?Yw# z_1?lb0^3s1NA`0P zQkMw%iWHm=VSi%qEGQ8qJ_Z;wpLB{EA&vR4#$wE(E!a}tSHG0ZKWl-086lfZ-P%Qg z30!iV@^Xq9^gi+zY2rPoORW!#KQ5kn_aX9Orc3+!kJ^l30H-9#78^K$}S zaQ}qoGNbNb)Q{{V5K-+g_Nu*?jz{5I_wIq=5MV@vcuCP~PwBX*`S$lt$`2ill9fCT zIIIq>3Tj6dcfAuV!P1pGc8fOc#t8W=jh8w25{GpYR9Ktuw5@Efd)DIT{@VCm?y~=+ zsqRn#(&nJ)*zpIId`Bp3AaAlEd~`1%>E;s>>62p<0#3RrnX)c+u)su4ISF?HGa`T|KT_$Pfb21JeIW*(mmhIu(GVs14D=Q< zE$I#yF>K-J_Uhv&e~BF6TPr${3dj#Bc9UKs4)f=E75zOzgh3pSl4{oq$z#$Ag(woM zcL<4*++~Gh-BtXQm<%*F0COiu`Ocf;O3-WMM`fWQK;0;o)lGn$NCLM0R(wU!3 zO0Kobq`Mv;xMPUN`gk36jC;*0z8_7VPa3Ut+vOS-E2N?V;;hWnR5Bc#A>V9BnQq}o zt2_>VpA4O@vP;}=p9K2evRl0Q94KE4&-zjP z0wb4-!0h9>`4I&EAW)$JLiS+8%-6@0;Kf!D^0Kn!Qqu@n6YcHqR{+TsXQ40{-zes& zH*K$Wr>{9ED;=1`pdx_9yz$m6=*!cPO!bh0ryiu# zDwx=`-Bbi%4quH!+tF6rOmo}u?7qbiF4lFB|8D1u6&Ubgh)5*-*!kU;FyJ`N^K>36 z`4&tsogX{dZL>XIJo`toRyiWjDUVqP|ygtATuMfaCva;U3c(&&AKndt>+$0R-n(> zSLYci2N)T^K>lNm1Z9YU;bTR*q`W5}OUOrTPVp}BRnnz#T5`R_qCnZbMB z+xt75A0rGKFksV@kGr)#1Uipl7C20vyz=mo;Cp??^cMHRyr#)a*wAojVrg{ziutgW zB!ia`&&<0ggat>N7$$*f5n7>8EHIj0Gk-5=BRj_DxFEyRvo*$4@MxP2 zREp5>^OeboCu9e~4RPL5Kw{2qjfQ+q-`n2y#PE`1ihD$tSu zeyR2-0Q;@G{&l|l**-9I>iv|7lu?5IR}G-ng+i6V15fY0H*Rd(^oRu7;zACzv80m9 z^Az=&_^)3Nf&tdky&u!vZ&PxP$MKt>z@ zM8f)}hD;lSNzb8pm5cVy`SyHplZNkYt=~M7u^OcqDVu>j$K^6IPnM2}3tYp2yFJg8$Xky%-eg9&C72ALp2X2X zr@YxrZ7MMuJ$n}1Hh2i)}&&b*h!o{E6U^a^Vks> zi1nKO@cC^Fz*?|T;Sv?D?&?*4ul(!=hy{tZjqJLKZmk`Ri1_X`q@VwF)jK&3^LmYn zx%o;F^Wb?jQ(K`lar?=yt4nA93x1=F00Qr0$F}8=ln*%5vA6kVyxH6Ytg8$KKP3{T z!Kk6rCHjMXpO*FW(}gikQDyUI8(hM(K7>czOwa?LHCEM-t20zq>pZUVVi%5-E$M&3 zgt8u9HhxGuHqCRmx$L=^08Wt+7ArEOz9_4qKdAoYi74`RfeSGu3ZtNuy9t`~($2kf zt){u;KvE8R*aLHW40F3Yy%XL{=$bD=e}T1=pRu?6lk5uPq^LNEit9{~lvvgW>m7ay ze<*KIAZaIW>k`K33k~_O1(C1PN*P4`p z&tucNJ?{8FU&Sn3s(S%E5UgMrA-JfOM z(1fp%4-9wKF1zjRtoI3dtFy<1MW~&gHbJ|p?3$oZIE$bBkfHQtax3!r+MtyVP;gUd<;OjTDs8{Jg%*gE}Xq!@5 z`GPI|Rc%R110-c+Ri1{$+5#@@s-J`1O?aRQu}TavuV+}G|!-L z+_`A3Ae)S3xEAlH`Q${xw`$PdPo2rF7hy=($trv=v;>&oH&gk#9doW`(yN(MW^FBU z6?x+k0){R_NOI^TorS^iYazInsSUV{Q(_@|iG%wZ2~4ILpt-Qr>x^JY;%&rgz)`9x zZ*JN>F@E$H?~{wH0SQ!q>z30FK+1~E94inwJXp$GvRGdE@Kd#?GZZO4o<}_4EX_TI zKhkA(e)HD);nNBb=20?o$#-49@Tx(dOp`#`Kq$9R8Jclp`;`(x_oxRhH$?_oTADMG zT3RX9uU6kV^bczyzci24mbBn-t(N^*D(O*1XT;ZAuHs(OB0^mb*i)}B*ixOEFsidL z8|;S7d^R}Noa(Z4RSngZGw$Fef;m8T3-T#fCrSnR>K%u>-Oi<^2}yL0K`C!BJHChU zO}&QZzS%-1ZH=tkCP~QN(Uc!}DT}v@|F!DN*!j5jB5~adr?$~Nk|f(b5{d)LSI5K^ zXE~jZAof?s22Dq_&YLu7eD_I*HZa9-p$GIdmNn6Pp|}}^nS>!PtS~&Mai)BE2U`Qz zCWjlmj^k&y+Q1#i)Oso^;Z*+yf$drG=!qE`nm%|B1gaq93cdbxXd18z_1f86%454( zF~|-jdJMB_%;AN-Uc?qjRl?Xdcn-UtiCbmnD`dgaE*y%P9NTNYw&LIRUo-&={G)2q zPA{OtrPWLol_kjSOKW0$!nw!TL+F*BUdQ7w4Z>cF_4B9C%3CuhALja8pr0uO?}w7k z=~WZBn8Saxhnnlv!Men@gM|IO22w*|E+z%t@$D5J+^P0RS#GXS#|gb4un+cE+Usn|4s=ab z6-e;c9ki%Qxee!xDslTsr4Yg|@UoM5!ghg_isxLvp+e~En?YSLGIBX-rBbm=_%6PLBX84;q5B+zQC~B%eK_87L6zjyMHac0Rntsw*eyjM+~m~SXK$JI zTQbX0Q+M(n-qq8(u(OB6waUJi-SNwEub(~*&QD+HI149*GI~J@iU~bYc zUK+jR`@vVgxX1!e_$+1una)t9Ie^D7qfD9AxBbO^ z#YVhe-T_k!WgFJ|go2;t1RbJ+KX3)-CN3QkxX9wwwo!|qpqpQODZ!yVEdep{#o@+= zJ%gR(b!vr7C=H!ddd0*1%zjg9@0U)!2$X%_Af*RAn+eKz!D_XdO&J&8nRbkkV& z$I(re6l3Wb2bsDAA8qwZx?TMg39KuOi!1S-5!Z2gz>ggJy0vwNd3clYm;ElE6kP9m zdVrp+#X_1gZQsJtF_`f9sfTi(;4836-<9OyUPjT2cn1d6 zo({qBpEJ-BUBl|W5pcyP%>~ z9iHP!taXAyK)Ng49i-4_$J7$yXZFM)g9B-F&dslPEn2%@+Hru5WNz3(4=fNPWBB90 zo#ITfumIbi@f{ra9FcV4#~wj~Gb^ISaU0ML3L+@s{<9S7eAW;6k2*-_9UphAr4dYp z%A;OC*IqV8p6yQ6$9^^GLqj+I<}hHHz3L|EI@+>)wQGT{@Ef?9U8;lH$9bviyZRzF zL(aa~!+*ltKcUjA;@BI7^lV;zcQoMel_A)qZ2Mrs&enF)dW#-~-0wE5-Sa=%+GqS- zt4d5fgPi~Q=4fDY$iBf+X%4C3TZ%rkcX)Xz{?$0Rg>lQ+5QWY%>t5ToXNV$Uu(&V! zsX~d#p;1-4r1$la@tEI_O8PQYew zpKPUjS&O_Tb$#ey8C&R(J}GELVE;)lia%fAfEdm4d!ZALl%FY`-)S_rdi7i1RMWSHjiRG1+#9iV zuD_13>H#jK8;b_>GLzc6{&cMw@$8oezk8r5um1kd(AE1Hk+L;GwZdgf%Td7-4?hLL_yJey3 zKv@R?>kGz`2GX~vufVKU`%-(HYG2K34l_v*Ag1CpG8N{Q;F$Lw%USc z+(kq#j=t7Neh*`*=ZxIUG8}dz5 zY}Z5es@P8grVqyqgD0yj!j63m>BN#|B@bXbbD_b<>znpIquLi9`_||~hrgJ;8MCMM zczI&TG32yIamdzZp@q$0ZRbcaj1>qrnHd2jNCyARXjB`^e*KzITk|pR_tgB!*=@${ zLQ$@{f&hHLbplj8c>3dDuXPwW_Yo)vL>c-Qn?^@r%pf)gq!J1un8IOmsw$BQ5rQ7~ zRV=$@!7&FMlDc%9G}8X&OSoO_fc46Ky~w=0)OOfO4NjG#){Sj?ENX5~@oxWrQ$H?@ zerFtfHY9^nz4@MKZs34Syu$|0YV0UT@0oaaHaf09pGyclz@?s;?fH5=VcXo2b2(N9 zb!@pkUJ(j4U3IxXduTtl(;y3cK`i~>=0$A6-2TG}v5B#9JQfzn?<8-mk4HyR$&cKZ z0m3n2oE#&Z5^2^%()5vO_NYRn=pFvsNyCAPheI}RV3V-zF&HKU_QZlr?ATR#h@xZq zeI|gLd4Pr#QzL|!u`$#g^h;7qZ_b+HF*#NzokAZ9d2+Uy#l_hwE923;bho-OmQ*Qn z!GTXW9K56}$tEwG?Wq0->dnUa0vZEb0~4~9g?t~8(nUvmC47jZYeqeCSU5j9%Kj*p z43z{GJQPNzw!?tOv>S!<4l@||tD!x5q}L+q+h04oBJn{j4P?eeXOqSn_Jz!KOC?gW z?*#asE<4mRNNmhjqKqa-K9nskbk3k7)@*^|W#d?UyxZyom?RV-r~RA%^i#yMCQm4C zcPoa?mZ4b@RS;g)uowY^W#9IP@qxecrzbwt_3KXsnMihGzC3J)@Ui6vF2znTj$?2WmI+9e8kaJ{J}~b4>Kd;m^G(?M`J)ZzCvMP>wBs#Y)s& ze{)~dLegdt;w-fj9D$b={VDAfckMvGUoQv}#OZqM`U^hkP}{ zUovJf|1oaIM`|2*vRfT_dzY8y?3yUV44b*0TGl5LOp1#Khm?-*{P9^JCYdV%x7(~iI^<#|68cX_3adEIVTn;4=hn+l#gTu>ka9M#y@*r+>}yv>x`Np5jE zbrZF9r{Am`2!jN=VuI`|E9`J8kY!F{z6O~ge_Bx0qL~xDb}g07cIUR;=w6ZA`?p?5 zx&JbJHFYdJQNPlEcx!zu+V}3yS1!Tvt?tFOUtL$vs7Y<^d+|HWVs5m!YgFqm`<3wy z+OIU)ZXp@%6}sqXPmukd-}79(RUaC(?~l3bV)?6LrIqEle=Xx4eC=;4wMElXN$+ul zf)$RHn5)2O&W~HMoOG9QR|@oheiVL<(`Y#QERGah5_87|R9Q+aWQ zERlo1w{kF94+Va&m1n2A%uBd6IJBSQ27tdM(COo$6 zuNGq39BOeKeVxjE9y+6&FMK)ml<;MuBh1@mf5c89PG0AmKMBNbSbLr2z`lOCNkSI! zix(hspE8XpbbnAc3!K)Z@#y0lwp6=X8I<=u7tO%9*uO#kVHvfFaWT z(Iyk^DZtZs_RPrhQoZ5enBCr1`nNk$M#Kes$f;?_UQ(Ju)+ZeGPTj12>rrG!I2<@e zyvsA3N%#K+;?4O8@AkD2OlBc!uj@xL{q08MGBU-9;~}Ms|jgwak|-2VOv(*S|==uDBl5k-hTxM0#;&K2gX?@t_fX=Zxt($n1gpiPjC53z3L7RK~QkQQQ{KAZK$%~M!0?{$2u$f*JkY{7&z&|;&H~AUx>-|nmT;evlg@u{V!LuJsQY4GU zp6yo$!#BTnxnB$(cMXm>&K8;AKe{~D zok4a5xFfQSZ@;~GqjHqI+xIkyLQOu2UF`ShR;B&kkGAxZ^hZ=&nMq0EjZuh1 z=8y1E3%C&Ke0ZQI^nd2mVPWk&eRJM+#$?-B{qU6$}R)urNA^eYF2-Pl2JM|!#W zH}ZU2?1%p`LoBH{1kSUa+AjmBxuD4X6c3Zn61Uu%SVJElsKj3Lo%aeft!gRamV5E< zlm%jNbI&_+!{se2Aap{QPm^}$YpIQYU=>yg&VhiJw-9LxweDNEVKHkcTXwZwOt~rx z`_uBHTS-Cbcl>&fT5x$O^Yw}IIHMnIkJ=RSjUF`P{5kG2I>>xU)rI;d21%)4U{+8o>L13kW4pjge1otJ2ownm>s<`TaYKnz}w}c$;=QU zJ@ej&C^k82sPgTT1=;0Gtp)FAkB3 zt!D&#H4bLP#EIZ)&1b~dR{O)Yzx{?h7IjjE(d2NtAmp?8fhwAm6cd+D37)4WpxLUZ z67xo19U?EVc0oDZQ(KLMw4f@HQ$S#f`(Cb-u=iW2I>-=A*6c1U#bV?r?q*cq76`I0 z!vS)Io=@@DKPjL1YDompm#RyJU5x5FJ51v07!$);aT^LXy@i3iyBm<@P_!JMP*yIR zbCaEEo}`fMnf1dOn<9d9;5V!fXJv>`fMg8Z+9sk%p_pBV6+qQlN-m2D<>{E=>0%!1 zj9gB6B2>#BiRmE*V;YDcQB9dMc5x{{;=;EI3+5!qtF4Y5GmD}<$7sZokYPScWRe#= z92`?$@8up-fHcRC*iDYazd84DhW~~H$~~Lgw^YMBCLM^C&|M@Qn$g` z0uhg$sEi0qx!M++`^_8NdKs6z2B?=zMZ7I3)cXCu7n{Ww7CU_K5eOqqij4K`IT^EA z$*an5PE6ns(g9>+uUx;mage&QsbQ<+IoEzlY*Fw16$0lX3=bp3fNWG)CVFlk_^s9W zpTI%Q!i-OvRsgpliUJ_5KRBtYF1L>q zJd<|h0WtHnbb8XQbbIF9d@ZdV^RG(rJ6RqPr2Ai*Qk?+RH5Y^0wAYux#E(Bvg@G3@ ziU^4G5&iwkXFDB2)!AzEGhM>D)DUW2v2!^*3}0T7{`EUFsAK$!*KvuL1 zq?>jQI!HB08A1TgyqAjr@P!G%uDt!H?sa0GO7L#WxtDtTvz&f=;sRHN|FA(8M%C%- zrINa4oL|)RC>{+xygUyEDB7RCeEy?z*O^m*;^(iu*1n%}oul~pY{`V|Tv$(@1W~YE zI3+ORfXZpW<=JlALpEsLwrIfTcO5pJIp!sZgFA1rIfSU6JMs|KPIn;-IY-{HWl>W5 z-a^(mXy}$5;c5e7pHe*H{Rf=a<9xu?%ec%wFXJTVEU6%S`56EGVs};pH6REUC?&{B z_|rm|<(1^<9})mHu-IhN{?^(3J?5kDLihhO9~gNe`<^og7h&C%&$YwDhck&AYtODQ z0*6@xCP#i8zhPmPXm(KkkksXC^d%o_Xeg_d=TEKPeR1ca5^S}MBhn1D)VYM}+lz|} zC&%X2tbG2W&PZc%jlRAwA&ZCuyKFpuE<(WOIuM$gGajHJEt+ap9bpPYxLgPu8P-U1 zb74{9K$wYW=J4}>l-vgbBI0dN)FV>TN#KtjsZcBW(1D#=T|%_6K5Pb9Uuvm4gz0(? z+_TT#GLtZF;wv5^O@90CFR$#)ai~1Z@S(jSC4teq-vG^aMWv<6LATZ7hhl3$AQQi z(Ua!ml7^=w;kGkqMS&-!sR<{d$K&VV$c|8Z4fr$YUC|Ipr4o$PVLmek{Q48gq;v0s%m3@tmBr00=Nx0y^+>@*e@0H*!$QD!CA@R7#wZ z7Dn)TY0Qvv>yfsO>{mct{*S?YB#vvDo=-S51QU1wo+c5ToA~T0&n|Y7g(5B~4+TYs zSMZzQ|LU6v1ekyrcbmeG>2ut1^iW9jgh4=S!vvkJ|8bho4`>xH!N&^zwS9jiUoN zJ40I9G7_%18$IuwwQtCxi%ceVtC2DL2+fH*H9q%${D1(?;)xd?KR--`6|bTKwy<#G zQ+evwLPQp&|23!&7o=*&{$N^H?@e|oN;jfOKI{2QXl0zIcjmLbQv`U)XA8Swm_B}- z_^lGIlJ*O*=MF)7n5qYzOL(GwANYKPJmCatpsZy5#B)!)B;{nGDWku9 z=iOlMK@BvNL3r+Oc+xGt*@~Uui8m=fLpdrxLbbPR@U!vc6=e86LY^H^I#F9#oP5qO z89<*i7N_z2lr6trV1LpU)a|-8@j3Bm++zOP&ZS;lhQa<7w$=yJ;y&Cinv`?ZHxD1~ zX7;>va4mV{;MV%4mgM-yo4cVAfdD@lUs0RYdA2;eVVr{wMqbHu-f5~5sD>s*t5e0! z;BV{2_JkrIdultG#G*X|{jbQ=G2uV`RQK10d{}UXO%k}%;+>AEm3eC-LZ`m&OXk zTlk|}A!^;eabI$GE~n;G@{{#ch`a9*uY zAlt26b~k#aK@<22N>U)ja8nbzx%6VY0H(|Mua(AIYCLI12@VRstxKU(j9Phd_Pm=A9)>EdvAEZB`IL z@qrJE(m)!y604<&Qf*uRyEwv;QC-ux7@h`pKvG2 + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {role NotIn (w,x,y,z)}_in_hello-world + +pod with {role NotIn (w,x,y,z)} + + + +pod with {role NotIn (w,x,y,z)}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +pod with {role NotIn (x,y)}_in_hello-world + +pod with {role NotIn (x,y)} + + + +pod with {role NotIn (x,y)}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt new file mode 100644 index 00000000..8bf9f4bc --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt @@ -0,0 +1,23 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : TCP 8080,9090 + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= hello-world/[pod with {role NotIn (w,x,y,z)}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {role NotIn (x,y)}] : TCP 9090 +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot new file mode 100644 index 00000000..21207bc3 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot @@ -0,0 +1,29 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + "pod with {role NotIn (x,y)}_in_hello-world" [label="pod with {role NotIn (x,y)}" color="red2" fontcolor="red2"] + "pod with {role=w}_in_hello-world" [label="pod with {role=w}" color="red2" fontcolor="red2"] + "pod with {role=x}_in_hello-world" [label="pod with {role=x}" color="red2" fontcolor="red2"] + "pod with {role=y}_in_hello-world" [label="pod with {role=y}" color="red2" fontcolor="red2"] + "pod with {role=z}_in_hello-world" [label="pod with {role=z}" color="red2" fontcolor="red2"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen"] + "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role=w}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role=y}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role=z}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..f6af1105c2a217e738cdbfc9c999ed43bf1e0ba4 GIT binary patch literal 69936 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≪{8<>2F4tRKuA_WACe25i(hHMBvcC3t|2pGC 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 SC@&!3Atfd!TJrAmkN*RJv0j`2 literal 0 HcmV?d00001 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg new file mode 100644 index 00000000..de25572e --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg @@ -0,0 +1,162 @@ + + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {role NotIn (x,y)}_in_hello-world + +pod with {role NotIn (x,y)} + + + +pod with {role NotIn (x,y)}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +pod with {role=w}_in_hello-world + +pod with {role=w} + + + +pod with {role=w}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +pod with {role=x}_in_hello-world + +pod with {role=x} + + + +pod with {role=x}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 + + + +pod with {role=y}_in_hello-world + +pod with {role=y} + + + +pod with {role=y}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 + + + +pod with {role=z}_in_hello-world + +pod with {role=z} + + + +pod with {role=z}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt new file mode 100644 index 00000000..14a60820 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt @@ -0,0 +1,26 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : TCP 9090 + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= hello-world/[pod with {role NotIn (x,y)}] : TCP 9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {role=w}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {role=x}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {role=y}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {role=z}] : TCP 8080,9090 +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot new file mode 100644 index 00000000..b64ede9a --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot @@ -0,0 +1,32 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] + label="hello-world" + } + subgraph "cluster_namespace with {app DoesNotExist,env Exists,foo=managed}" { + color="red2" + fontcolor="red2" + "pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}" [label="pod with {app=app-x,role NotIn (monitoring,search,web)}" color="red2" fontcolor="red2"] + label="namespace with {app DoesNotExist,env Exists,foo=managed}" + } + subgraph "cluster_namespace with {env=env_1,foo=managed}" { + color="red2" + fontcolor="red2" + "pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}" [label="pod with {app=app-x,role=api}" color="red2" fontcolor="red2"] + label="namespace with {env=env-1,foo=managed}" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..c629e9cb441e8bb81e2e990b40d1a9247e4eba4b GIT binary patch literal 52930 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 + + + + + + + +cluster_namespace with {env=env_1,foo=managed} + +namespace with {env=env-1,foo=managed} + + +cluster_namespace with {app DoesNotExist,env Exists,foo=managed} + +namespace with {app DoesNotExist,env Exists,foo=managed} + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +hello-world/workload-b[Deployment] + +workload-b[Deployment] + + + +hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] + + +All Connections + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +hello-world/workload-b[Deployment]->entire-cluster + + +All Connections + + + +pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed} + +pod with {app=app-x,role NotIn (monitoring,search,web)} + + + +pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}->hello-world/workload-a[Deployment] + + +TCP 9090 + + + +pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed} + +pod with {app=app-x,role=api} + + + +pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}->hello-world/workload-a[Deployment] + + +TCP 8080,9090 + + + +0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] + + +All Connections + + + +entire-cluster->hello-world/workload-b[Deployment] + + +All Connections + + + diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt new file mode 100644 index 00000000..f06263ce --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt @@ -0,0 +1,22 @@ +0.0.0.0-255.255.255.255 => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => hello-world/workload-b[Deployment] : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections +hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= [namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}] : TCP 9090 +hello-world/workload-a[Deployment] <= [namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}] : TCP 8080,9090 +hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-b[Deployment] <= entire-cluster : All Connections + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Egress +hello-world/workload-b[Deployment] is not protected on Ingress diff --git a/tests/test_exposure_rule_with_multiple_match_expressions/namespace_and_deployments.yaml b/tests/test_exposure_rule_with_multiple_match_expressions/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_rule_with_multiple_match_expressions/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_rule_with_multiple_match_expressions/netpol.yaml b/tests/test_exposure_rule_with_multiple_match_expressions/netpol.yaml new file mode 100644 index 00000000..519a36ef --- /dev/null +++ b/tests/test_exposure_rule_with_multiple_match_expressions/netpol.yaml @@ -0,0 +1,29 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: multiple-match-exp + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - podSelector: + matchExpressions: + - key: env + operator: DoesNotExist + - key: role + operator: In + values: + - frontend + - web + - api + - key: app + operator: NotIn + values: + - b-app + - c-app + - d-app + - key: tier + operator: Exists \ No newline at end of file diff --git a/tests/test_exposure_with_different_rules_1/namespace_and_deployments.yaml b/tests/test_exposure_with_different_rules_1/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_different_rules_1/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_different_rules_1/netpol.yaml b/tests/test_exposure_with_different_rules_1/netpol.yaml new file mode 100644 index 00000000..b8ab5250 --- /dev/null +++ b/tests/test_exposure_with_different_rules_1/netpol.yaml @@ -0,0 +1,28 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-1 + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: # rules are not equiv + - from: + - podSelector: + matchExpressions: + - key: app + operator: NotIn + values: + - x + ports: + - port: 9090 + protocol: TCP + - from: + - podSelector: + matchExpressions: + - key: app + operator: Exists + ports: + - port: 8080 + protocol: TCP diff --git a/tests/test_exposure_with_different_rules_2/namespace_and_deployments.yaml b/tests/test_exposure_with_different_rules_2/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_different_rules_2/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_different_rules_2/netpol.yaml b/tests/test_exposure_with_different_rules_2/netpol.yaml new file mode 100644 index 00000000..f262247e --- /dev/null +++ b/tests/test_exposure_with_different_rules_2/netpol.yaml @@ -0,0 +1,28 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-2 + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - podSelector: + matchExpressions: + - key: app + operator: In + values: + - x + ports: + - port: 9090 + protocol: TCP + - from: + - podSelector: + matchExpressions: + - key: app + operator: Exists + ports: + - port: 8080 + protocol: TCP diff --git a/tests/test_exposure_with_different_rules_3/namespace_and_deployments.yaml b/tests/test_exposure_with_different_rules_3/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_different_rules_3/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_different_rules_3/netpol.yaml b/tests/test_exposure_with_different_rules_3/netpol.yaml new file mode 100644 index 00000000..a411e3ed --- /dev/null +++ b/tests/test_exposure_with_different_rules_3/netpol.yaml @@ -0,0 +1,28 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-3 + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - podSelector: + matchExpressions: + - key: app + operator: NotIn + values: + - x + ports: + - port: 9090 + protocol: TCP + - from: + - podSelector: + matchExpressions: + - key: app + operator: DoesNotExist + ports: + - port: 8080 + protocol: TCP diff --git a/tests/test_exposure_with_different_rules_4/namespace_and_deployments.yaml b/tests/test_exposure_with_different_rules_4/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_different_rules_4/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_different_rules_4/netpol.yaml b/tests/test_exposure_with_different_rules_4/netpol.yaml new file mode 100644 index 00000000..fb4e49f8 --- /dev/null +++ b/tests/test_exposure_with_different_rules_4/netpol.yaml @@ -0,0 +1,28 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-4 + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - podSelector: + matchExpressions: + - key: role + operator: NotIn + values: ["x", "y"] + ports: + - port: 9090 + protocol: TCP + - from: + - podSelector: + matchExpressions: + - key: role + operator: NotIn + values: ["w", "x", "y", "z"] + ports: + - port: 8080 + protocol: TCP diff --git a/tests/test_exposure_with_different_rules_5/namespace_and_deployments.yaml b/tests/test_exposure_with_different_rules_5/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_different_rules_5/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_different_rules_5/netpol.yaml b/tests/test_exposure_with_different_rules_5/netpol.yaml new file mode 100644 index 00000000..e80a4a14 --- /dev/null +++ b/tests/test_exposure_with_different_rules_5/netpol.yaml @@ -0,0 +1,28 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-5 + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - podSelector: + matchExpressions: + - key: role + operator: NotIn + values: ["x", "y"] + ports: + - port: 9090 + protocol: TCP + - from: + - podSelector: + matchExpressions: + - key: role + operator: In + values: ["w", "x", "y", "z"] + ports: + - port: 8080 + protocol: TCP diff --git a/tests/test_exposure_with_different_rules_6/namespace_and_deployments.yaml b/tests/test_exposure_with_different_rules_6/namespace_and_deployments.yaml new file mode 100644 index 00000000..528cef18 --- /dev/null +++ b/tests/test_exposure_with_different_rules_6/namespace_and_deployments.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8000 # containerport1 + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-b + namespace: hello-world + labels: + app: b-app +spec: + selector: + matchLabels: + app: b-app + template: + metadata: + labels: + app: b-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - containerPort: 8050 diff --git a/tests/test_exposure_with_different_rules_6/netpol.yaml b/tests/test_exposure_with_different_rules_6/netpol.yaml new file mode 100644 index 00000000..b8ac8dae --- /dev/null +++ b/tests/test_exposure_with_different_rules_6/netpol.yaml @@ -0,0 +1,45 @@ +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: match-exp-6 + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + ingress: + - from: + - namespaceSelector: + matchExpressions: + - key: env + operator: Exists + - key: app + operator: DoesNotExist + matchLabels: + foo: managed + podSelector: + matchExpressions: + - key: role + operator: NotIn + values: ["monitoring", "search", "web"] + matchLabels: + app: app-x + ports: + - port: 9090 + protocol: TCP + # following rule matches the first one (will connect on 8080, 9090) + - from: + - podSelector: + matchLabels: + app: app-x + matchExpressions: + - key: role + operator: In + values: ["api"] + namespaceSelector: + matchLabels: + foo: managed + env: env-1 + ports: + - port: 8080 + protocol: TCP From f5dedf09f68fc358b4b81e81695ba6bdbbc35894 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Sun, 23 Jun 2024 21:08:29 +0300 Subject: [PATCH 03/91] more tests --- pkg/netpol/connlist/connlist_test.go | 14 +-- ...iple_match_expressions_connlist_output.csv | 19 ++++ ...iple_match_expressions_connlist_output.dot | 12 +-- ..._match_expressions_connlist_output.dot.png | Bin 81741 -> 86314 bytes ..._match_expressions_connlist_output.dot.svg | 24 ++--- ...ple_match_expressions_connlist_output.json | 75 +++++++++++++++ ...tiple_match_expressions_connlist_output.md | 23 +++++ ...with_different_rules_1_connlist_output.csv | 19 ++++ ...with_different_rules_1_connlist_output.dot | 10 +- ..._different_rules_1_connlist_output.dot.png | Bin 53925 -> 52298 bytes ..._different_rules_1_connlist_output.dot.svg | 20 ++-- ...ith_different_rules_1_connlist_output.json | 75 +++++++++++++++ ..._with_different_rules_1_connlist_output.md | 23 +++++ ...with_different_rules_2_connlist_output.csv | 19 ++++ ...with_different_rules_2_connlist_output.dot | 10 +- ..._different_rules_2_connlist_output.dot.png | Bin 51357 -> 49808 bytes ..._different_rules_2_connlist_output.dot.svg | 20 ++-- ...ith_different_rules_2_connlist_output.json | 75 +++++++++++++++ ..._with_different_rules_2_connlist_output.md | 23 +++++ ...with_different_rules_3_connlist_output.csv | 19 ++++ ...with_different_rules_3_connlist_output.dot | 10 +- ..._different_rules_3_connlist_output.dot.png | Bin 54584 -> 53654 bytes ..._different_rules_3_connlist_output.dot.svg | 20 ++-- ...ith_different_rules_3_connlist_output.json | 75 +++++++++++++++ ..._with_different_rules_3_connlist_output.md | 23 +++++ ...with_different_rules_4_connlist_output.csv | 19 ++++ ...with_different_rules_4_connlist_output.dot | 10 +- ..._different_rules_4_connlist_output.dot.png | Bin 53471 -> 53573 bytes ..._different_rules_4_connlist_output.dot.svg | 20 ++-- ...ith_different_rules_4_connlist_output.json | 75 +++++++++++++++ ..._with_different_rules_4_connlist_output.md | 23 +++++ ...with_different_rules_5_connlist_output.csv | 22 +++++ ...with_different_rules_5_connlist_output.dot | 16 ++-- ..._different_rules_5_connlist_output.dot.png | Bin 69936 -> 67961 bytes ..._different_rules_5_connlist_output.dot.svg | 32 +++---- ...ith_different_rules_5_connlist_output.json | 90 ++++++++++++++++++ ..._with_different_rules_5_connlist_output.md | 26 +++++ ...with_different_rules_6_connlist_output.csv | 18 ++++ ...with_different_rules_6_connlist_output.dot | 10 +- ..._different_rules_6_connlist_output.dot.png | Bin 52930 -> 51707 bytes ..._different_rules_6_connlist_output.dot.svg | 30 +++--- ...ith_different_rules_6_connlist_output.json | 70 ++++++++++++++ ..._with_different_rules_6_connlist_output.md | 22 +++++ 43 files changed, 962 insertions(+), 129 deletions(-) create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json create mode 100644 test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md diff --git a/pkg/netpol/connlist/connlist_test.go b/pkg/netpol/connlist/connlist_test.go index a8ed42f7..58bbc646 100644 --- a/pkg/netpol/connlist/connlist_test.go +++ b/pkg/netpol/connlist/connlist_test.go @@ -981,7 +981,7 @@ var goodPathTests = []struct { { testDirName: "test_exposure_rule_with_multiple_match_expressions", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, { // in this test's netpol, the rules are not equiv @@ -989,21 +989,21 @@ var goodPathTests = []struct { // but a pod that matches both rules (like workload-b) connects with workload-a on both ports testDirName: "test_exposure_with_different_rules_1", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, { // in this test's netpol, the rules are not equiv, but the In rule contains the Exists rule // so the representative peer inferred from `In` rule; connects with workload-a on both rules' ports testDirName: "test_exposure_with_different_rules_2", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, { // in this test's netpol, the rules are not equiv, but the DoesNotExist rule contains the NotIn rule // so the representative peer inferred from `DoesNotExist` rule; connects with workload-a on both rules' ports testDirName: "test_exposure_with_different_rules_3", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, { // in this test's netpol,both rules are with NotIn operator, where one values list contains the other. @@ -1011,7 +1011,7 @@ var goodPathTests = []struct { // since workload-b matches both NotIn (does not have key role in its labels), it also connect on both ports to workload-a testDirName: "test_exposure_with_different_rules_4", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, { // in this test's netpol,rules with In and NotIn, where one values list contains the other. @@ -1019,7 +1019,7 @@ var goodPathTests = []struct { // matches also the NotIn rule or not testDirName: "test_exposure_with_different_rules_5", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, { // in this test's netpol, rules are combined @@ -1027,6 +1027,6 @@ var goodPathTests = []struct { // has connections of both rules testDirName: "test_exposure_with_different_rules_6", exposureAnalysis: true, - outputFormats: ExposureValidFormats, + outputFormats: ValidFormats, }, } diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv new file mode 100644 index 00000000..f923431a --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv @@ -0,0 +1,19 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}]",All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot index 074d6b4d..fd303be3 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot @@ -12,13 +12,13 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png index 22adda598b07d308447eadd78154a1a5d2280b2b..897e18ab38af5b03f98606105132bd6a1baa6b2b 100644 GIT binary patch delta 67032 zcmZs@2RPOL`#*jnB(zYGRmdKZWRIfkO)@Jp8Ie6+MyTvfcJ>ysj+yMelf$w1UIz!~ z_dM$T`Ck9)`aiF$mm|k(+|PSF?#JUky3a1=e#0v^Re+omsO%Fl+m0Ihe7x@RJp!Mv zG2r7+aN`hO_(sKQ=1sspb6MZhlj_T-TbJ0jb${(k&u-)vvvXG8JG!vy>#d8^C|~)L zoX)5xVM4^wQRDP1dpRj7ZlgzjATFuBCMl#Sm|oF0vZjdRrtyU}SU4U?xgrufRkBp(XyVT75u8$UItKmV0y zA(f`T_}n-nhLb8fH`hpABWi{p7Y6gZjz|=$C7-W`XUI=AOgS{tc?(~_vrXt{;_psv z@al4`r{Fbu^vH$n>YTPYnHQy$PCUm495>)G5C|qswoWaLoIlGg2Nc6VfKBI{^;Or zt=yk7XeMmYF9VghWsaU>*7-j}5DBTWXS?~$T9FN7vT zuZ*-VKDa7iq^mu#vGLPqPWs?S?a7XEv5U!#VmAq*xYymW4~DpIUNOZT_E$KGijej( zm)_6P(311}UQy2ogK?7>9oI_l$IL6{@|D!*D}VL!@=oS`r#dJPYwU{SS?r}<5n>y% ze)Oj0;+ZtKV{!=s7`F;L+jwPl)`8g+r2ou6LF9I27Q$~BA@0{GEBh$+?qJ_bm9Rv- zq1y?T(jN6OkH}tg)52g8ah9$~#^dAkN&QW&nj`wUj!Dttj&OjW^BX8f`y6br>e!hxXdW z%FMI%quYTc_ffabxa-A)Dx2Ge(!Qx!5Bqk#CGxRD=ymACH>5!=t_*DYpFj9brsVSp3}Pihp((d{N8kda46|> z<-iBOHS=>>H-+TyPx0Ic6R=LY1trAg3`*V8N88=ET!1TOdT41hchtd3_8Isdu8k2M zqy4?pZ+xCEg>51PYPdKeOwbP2 zGu!9*DPfbmsb%A7TGIdwR$O!)M2p&|>z^abzD*q*xR58*)vdWYF7~8e@E3A)!M$V` zEL2dCHn{d%#Z6pcgYTo{q+v=IU7Y-rl|Tx8L&^K%cNd4dBI=Yy@o8{i2mDsn)(6_c zJNCbMowxWYSt4+e{_mIBdYY#CJUvR{pOI9^V! z=X>`}mwk1ZyAeFE*LY(+?9<$v>`O4i6$)$QsMV?l{Z94gk4EEgj@IJp{!eE-yTwg@ zLH4Qj#IRzq)cb_6!B`a)m1^=!Jf(D|CcR%;YoBjEeVsiMedkn zyh|UJ8dqwUIKM03|2n z*s;739WV1{Tz`ViF6nz)*RLpwu5dJa3Hzo1Pi3`&gJGbtv5!!o&F?$uu`+21)xW2z z7)iPh;&ce;r>J1ukfx74J4+S~|Dk-;9G;cjlYRcy?WFG=IYbL1%eF}cR)Xt4UYY#i zwM#CDTikqM^oQ}8s19!)W%KKB^FTz{`mYs zfO#=3#~u0Tq9E?Ly@B;VjE;tMaLFKtjmXor(kJUtai)D!rI1y{DA|>(KS=O#e6@Is z^7oEAc-+kePL0Qobr!0k#(Sf4T8(k&Y*)Nto-CYdtsMnI#(!?{+NU7|huTC-<g{(<-M5B96_TH~tuM84vL)qYFI*|4u*k4ae@FLZ z0~Xh~^nremJ6@2*GnJD+md8z#evL#ZVHsi+T`jM3Pk_g^; z(AM;0J++}6;n!`XDx0;-?{bBvlha@DcM1#39jYuZueB0rSt>@j+deS8Le`eiUT&o{ zokmT%-ar;FqenK*p@4ye=rXrS57oqrIKs=>`Fn!9moHxLs|4O2a{aQgX;zoYL2bB{f zTfIY9?Z(%6dgCXA)eg$sl{zr;?ZQyda|WTR&(|-t#fm}MG%@C_ox~q<3J>tLO;+ru zxBAwi;~rkbfi;x9R@Zc~4|5+&jwXEE+clS9`i&dn58GNX^~Is$v9D@0^i#o=`f2dQ8p5$Dd&AS)w+$dofcl$hkr177X z^aO3p?nM0Vk7i@5b$?~N zrFajAqZdB%6|S47d2ZiM(ve9?2leA*>MbS`2wovWPf7Ib%I$W`zAnTaN4qN(Z2~2U z>I22-rO7r2L1Po=J#|*G6`wuvbo1O_K?{mS>7H+)xhk?IV z&ZemUw( zVHQR9Swuh*YYhUTRt7DTDi;9ue_ySHT3a$#}M>Y;UU`HG&Byq8DC`gXwkKw zo4%7ErC5@!Z4O_2aifQ#W-(azh!iN6eKS#Vb8B zY`glt!vKRI9jn&OJY{v9GOUAr|MPOwLm+tAE|T=23E4{#e+gEY=c#Wm|6NjFW203= zJpA%%T-+mcJx`;r6nNd9j_6UWayA+4spwdvxufmac{E|{Gx#IkqYUA>7iJHAM^qbf zGxPV+H|2-Ag-xGY3hWEequ?@if-h2s=?@ismUG1?*c_uu*Xj^nX!;!zqU??W+@Q6q zodsI+9xb0-)Hj~$q#bwLGSzh;xH6_mZP!!Z)w?BWm<0;w^~Dm{cJvHl zqAhhg$}HvyF9Fn!zUqAi27{P?W@q1~WDs+8a3+c<`tI;c9v_cjYr)}mh*|pWk+{Th zI-YO4;}dlv<9!cuw;3I`?0UlY2OgUca(PMeep#@5L3{min1YU(a`z{{xqQi>3VIVE z>Ili?2Q-Xt8z>$rn_pe)e&?-Ck1xL#CPKlkX$EskZRtqR7WZ4H-G=T$7Qg6%@)0e+ z5W90d$Mqp3cRoIv!TfAf3`5kTUr}@O@#()we^~v75w)4yw!&WJr7Ghkqs~ zwekaR#fl!orTFoc{r9fGu(5{gY{V)GXTj7?X1naf=|+gx-vQlQENa>0xQ!wW2% zxew`ma$vBAp{O`+`S8FhyUv%P4>r3{4c~AB?CLv%sJIh^`W3CX7u!6_3Uo^C zo7Ng$H$~};F~#Z3_fUm?!?k^Ls@fN}t(-CRZezb;<~t?D$D|2^l*x#q-frf;3eDog zI&p)sql!MELDITh51B1g5PnU}9P%T% z%zU$wyRCh6N+bJjPM`cEUlVU;?!(L}m~R3sJ@Ld zJiocZE2<2Juz6Blk1Fp@t{8@@92%}ex-m|s$$Ly=oOuo^{U;)h9;!K}5EJhoI(k($ zaO72GqhF|njwwT;uX9@ag9bxw*ogS!Z?z`Pa!P?G21$ZSjg2th6>TZaV%CTBE~$d@ zsf|m%_?&I;OY#VV15YduqV1brQ+Q3g<2B(Ro^|~a z<@q$ip>E3Zuu&y-IAV8Sfqcb|ZKy&s`)WZcueHHg<*Hdmww6M)UF2(=k{b#1j+w^~ z7TXK*pt+4+-U|)cQwxET#$4ATb!~8bB=;-bPMwZc-b!iS7>h``4LbZ~?-YE!7K50Gwa|&}zyU7gA|4m< zhrAV^3bwuv4viWtkj@J&{i<*n~R$B|{)bd`{T&k2Ke|&&LaVDHc zf;~Co+yQvhLbRJp*>CMrIk=pB-T-ZyYi3KjgJ|*dN{@;+@~3ZWe`MilcZ;dbk|>!5fNcS4Q?i7XJp8}>^2Smj%zmHH({{bLD&!jZ`angyV>!l`|YLX zbc3UK?DNQ!%PgO*c{JS$zh0oV*O6s($R?+v4&Ezodr*FB2-Bdja(Ws=rt9+EyOT4F zB8S8AJNTjUJ;f4tn|<&7%QUX9rawO;RtuA(i4>Tnqexx)b@K-HS_e-cEZ77qv#gEj zEZlwb;9X3_?Ux*lGUd0fKDK$cUS0T7I$het$j0|0z-)j0@r92YLGr^3THx6{RkNL1 zwa5j})K;Jqu^~(!Y6vxI&D!^&T#`+cE$`ry?X9ce?6Zc}?)nGOOeGTd4&(R&deq?z zAO&E&D>@<8l0P{bqYqW2@WA^#PiX)>bpFCmMLB4hw1c*gDmbH561JfzFNy;M~Sr{g@zrO%jzPT@Y!V&VduPK+LPcL zn2~hxK>~IA9?N-78gPl0Y!s$01sW=~Fz(i-%QFeXk>d(4djB~eH#m%2!&WCmoTHCt@WN-clq z;ZzYrrq$ZqjM)8vtzG%MAFwq>UR`=$3!`BU8UyL3P>s^( z0O>Dl8H7ieg$)j~jIqds4;Me}?@VTnolw|s`)nOXVHtWo`%kgjTRO~N%-c4@``R<9)eM~HxAkK^YFW28b#A*# z>RTV#=EdgL!(Tl?t?l>{_;Qu4+^gJ+?2xZ ziY>e%7xOu})5_w&Ly%uq@ugqAq)GQZyesaG+oUhfKC>`m@69lo{;xxVBnuG1Tc^@| zKmJV>kF2~WIWZf%-sIInjIA_+j?9@;{j_S$aBEhL_rU1)xtc;Tp=xttb7W(dcZM)+ zSBKG%f%2w1WT3IN6vEUJuidtrX0C}MiEF5gQ#oE0O&a=iyFRVqL zrC-#iBgWLU69az?{?j#mQ^`Q3dR}JCvfI|7j#Y+-)wCm5NVU!{Z7vgS76Kjy{N~Mn zfnpf)0;KP+rQ8?^CXP`>^6q38s{$8{O~G9Cn7j0R{<~|EQ?W#3k7v46Z&HBzXNVw% zq^bhIDT-SMip1{IE9U@DYy+iI1OCEf|H3@yP3-v%zx+!?u*jt4h*vkQ9WEvAG5Tui za)6yztdX+Pf+siyBpAUFPdlv$4);&jg=Fgw2`Hv1BmPptt>U?1u8m5ojx=QPlue<6SChuzYFMJ zwS+O#c5dQb`bF8AI84Ny9TmT(oI5WA61y#2u(Xv8iBZD~sY)@#rl#;$9f3p7H4Q_) zfJ!j+4w+u(Uzb%^@22O)pPV-ZZ6}9o*uAI<0O{s{^fY8L-;2bt%}R%>!qlIkJ>h*y ze)avM_?~EO0r+3g0+T2B=X;(kEX9ZHcsG;z+_FUIn8xk`xUrCb1j;kWE%=X4LO_P- z-Pe@O7Hx2)6%zNN?+xQa^_|0o;^a#Y6AK!?q0FF^BdrxUCVmBa7lg%|O9jah!08#A zm>sVJa^Gm-cepvZXwpUu-!2{A&Dv+06R&}f^04MI6=Gor4E8DIylMjy_&W|y-qlcT z_Xev7&HR&K?^c7m{O6c1tJBq<)Kb>cS@MiOiJhEKa0#082M$?l==%an3vATl71k;_ zIZqVaV@KYX*#(rm_@U=HL8$CaYoy9(uND^hhXv3^UjGse{|JMnAgFYD3P+6`h12$; z?Mrk<+Bcju8v$Vb&|!~PiWgG<8ixp^eULys{Nd*DcC;K=5C57*UQ+4>L3AR{A^ zsGmRt#7|5rr8O2OSdcYu39 zHA_*Iqu;*Q{uQna`VntAvAdYN)?8SFf%Ti?Ur@ph#OHH2jgjzW(W=jn1U_qWUAo)P zYOx?8waZiol_3sqQiKUYao_Rd!d_CSYz_zVwK?`(#%BRNyRY{Cv-VuETtqWCAv%1u zV|{`p&DNxm!DN{I=!z~UvP8}ZAlY1Ph9hs%7tgVmg&q8Z4j^FLw|tGdgr6^1;gHyB zBta9kz9-;VEk>Gt%si!s6Egt>LlyP)OxLntC&y z^s>CeN?j0Yxx5~k3FoY}7ysx6%j3y!r zXJQ@*%mu@@b~79+FYUgpt#io+a{zd&;rKECPjl|$8F_6I>z>Sc0RazTChXoAzNPzH zJYa_54^GJ83Z!TVaUV3xRogcO+8qP{*at_SacMf;htLj_b;R|+Hn1y!Lmi)7icIn) zq|-G`Dm8fmRrPLUW(Qc;zTihfr3k)_>^GyQ8-f#Vm~Om^)|q~Vkd+M*M~nT5JVu$( znpMigsyX>#jnSNij;}SzLK?qZXLIXnTx1P!J>83-l{JH0Oh0YjBE+TIE270#x%b*P z7>?~QN}>bMn55aWt1z{|#PHgEXMhE7$-kCQ!F`((d$3&9P;@sr400{14>j|4ClIr~to&A&D-WWJD>_E&i|1WNWaZlXNWSz91 z&7Rm0uejybSDI$l;581H`wR&Uj2EBqG}#%qP}b6Ye31rqtvFw<-M2&M?#0qM3cvT? zsNUl&IBsMWIaqn)Ofa~XW3gGI*{$={el)|8WL%7&M~f|9b0v&R_?xkTfo4f>yxI0- z<;aPp0swc0mmkpo$bG!;;yZcZobeU&40O(Z$Fyf&tVr}MAr}z}Bhq?G3%g%5cQuBk z_DDr0{5q7xW}p}0X8l;PG2>Qet`0lBx=7~kRszEAKbPh01l{2IlD{IIA`1XSJIZgy z=XRj7dVgM$+8imQF|3WrnIhEcK>5uYUHl2`r@7*byw$yVu%X_&$*G1+w(e^n71Me< zD}uG{;IK+ZXQTcnRLhS%Qz%CBQ9&ew-eD(^oWsU5ev#Z^$D)y2N|@J;59JoQx^*(g zY3ub`@caUahzpL!DednIm9`2+BvzkpkC&E0g_inkvp7%kJc?!G9pBN|eMRiLqpu=+ zXzHzJ-QgTcEkX75Di-mhvZ@D%ZM~fH_QpmX@dD3Gq%~k_{?kM(#n7CvRFT_D@+`>W zr&uyt3u7d z8~)Y6nzOxXbJC`Q!Tc=YNNTXk0`Y2m@eExhd%!qf_sgOvL0V#Zn^ssI7m`ah(ORBiJ<`I)?(f(X&(e%p{RXF)`y)6 zC7J`F$0%g)FfT`Mo8D}P-t0>IXwuLRM}0P#>S+;vV)zxuAfdHVId{Eq{?LW|iUdZ- zpghQ>Q*0Rxot^zYlYq%9`mxa8j@t^EKkLPM9ABvFTGyP znK>5{qP5a2cC-5qNSmNnQj80$7CCeK|FJD;M}AUPo77e2gRxucwbeSqm>XJqyuGZp z)9$%~t4MNP7r-_;bVmF+$_Sk?fPBKmUKSSWOlBp)Ikk}P2Ez^22F#}`Pe?y7qO+W= zAzhRhRR8sgSvUi=-PD8d^j3ZMe1=5>chp;%0Yn?(!D1Egq?hA0nx<6F(vLQQXMV%l zu~rEQjIcTYFInd0_3VikPzwLBd&(aops=y%KDBi9dAQTW8M=~57~{91B|R(VrPq4 z1SvQ|yEie0^{o47rF!0d1=@+>A%4=xpPaSjT(7aVTg2SA=jDEUB+TTjcuwwo_^%Ga zIyx>%8F!1Q*ZCkb8&qgjr`iB_$ZtxOor@|`*{Xz;Is~W8C^8KkIstv~3(8%rxRtl5 zGzy~kSB0731Xq;H^wkofq_FYQ+K*bi`vtC+i9Ifz+GFcoDPO~Ql@!y3k}97JY+ZQl zKSIqaQ@y@f5p}Z5v-pscyF_fDPdue-8?nQlSpRU-Gw!vlv)-+O%IADqBTEOZ)><|E zg;h{kRho$eUNOd|+*%bR2w8+vcC|;H>~ajIWOQ-v+-o`j8^W^xb2G}L_HgQSY9N5D z>QF)hBd7a4&p>t9-=m<9#UL6}%xl#1*d{q9Vv(U&2Ai*9H{9kq|7I>2H;wf0JG@CZ ztHxQY>LN1_xTTNF8H%)N0HUZ1#j<-Zd`_$d^-?41UX<)8@?j3LpiUth6A&S_ecRqQ zhuDAT?HZKL+{4z`FQ^vsyiY+aN*nS~6md1^*P%)a3BLGgkt@7%&U(qB`-5-ChQHZ) ztl+I9oJN9^Z6~^v>|9jRK%l{q~ z9W_Bxw#Ox`H*B!3v2Q<4Ub|!N+l%pGMWRUYVmu@@n{H4<0p&;u+(tVsL|e3hIcD0= zKaD&-J5~T}O@J!bnT$hgsV(|OMoj|Y{!-?%{l+(9%-B#jJ&hTa3r|9v%;`fd%g+)x zWnApX^WOB7mY8QS%6jIc3kv; z9rf&6HI5Hx>uMpbd0g&x3IKQu)eld^SY5_uOBQHylaPA3zxc0ex^&LY3X-ER)0G%p z@#TypG$iY0`n?*nn1;2YwA2r8IWEmZdPf!qOE_!qp+{A~i)+2@(@uY*VDFsb#M&j3 zG0iqJ|Etsvt!*xjT#p)PGqeCWX03$wW@e6Z7urB0uiF}ZdOW)V?X|9)b>poZkLAcB z%AVJvJPOS`n8rkJCtTy2pO5^-MRVq>D0EV$f{wppHUM%d*5}vvP4nNq%!yK9+wIYh z`|jMj@CsK#)M<@?Q6|3Js$(MnovXvcV8|zPAPJmi|zKpU@EI5F%4pah+}d;_jm+f#uXFHxzeQ~m$g1V8G;If^wJ~00IXKedo6U32 zJ=@Wg5<88QWV%V)z+Jp?3u_{HVctlg1uHpbjVG zvT$sA?2E>)9UAMm?*{%X{J z7n2x2;rM4d%iMTS)_pyx$hg;ia}c%ijr`Vfx-Sz5tuD{VE{i&zo3ivWAV2#tm;=zO z;qLqcm~U8DJA!)3wk6Eeh~T1eFt*UG4rX}>x)vhF1nN)ytrt&EBUhkm9;=hnpg%Ql zN*TopYkJ6}M()iD@@{WIJ*=nasGsfPl z8iS@H$wxc)uSqkr<`v46oRF$b-k26>|7+H%2fCy7oqCsGX&m}BFY+`C23CgiI`zoT z;}uetv@(zc&E(v#iZ%rYEO9qDUt6t5eVJLMs7%#q+==NUQUKowHpVJB+;@hm2j!ATjds~>_juyzM zEbOWaju-sUNnf#)D^xfTWIB=ETXV`QRYcpcH+QfRemy&!T?~a0o?n1KZ9A&Mo%pjq zpB*S3g{35isqPyz-OvsKEhg=}h|U48Fw?V`cx+$MFz3)j!oM`4V?DgvD`o)tiQkwq zpfbs;{?}%^9b?W&Nrbm|-xYhWsUO5n7pXUcFn8)Y@>QBjXB_0e0C-h-X_5Ncr#Yq` zc@5v8WM#7>W56gy!JorCZDmlM8%{5mM@+`n@2J23!w-@&UW5?*QD-1E9mOo|J1m)Q zhy*yVL3BuZ^WOOuf_C|0$mvJ#R*#?KHhKaRiDTrXh{7w{BywLCHjmbuDPLfaJZ}iv zZtJo%5|4r}0*#>0j{ELMSa|~mi3@yGtkRTrDg-#a?ih2daC9p|`!v=y`z?|ajvNoT8=lUPkv|~^2qwW=FyuT!v=jok)EEudo-S{?$ zaMem_&54-@#)MR^srk-w^DR1a4CC_*FC!-pz5#(N!3grt?Wt1mYBnYBN_Lq>*}6J_ zj?={FCNX53Q+Nqh91<5MsFC1OE6G+k&>&`|hCy1X&SW;t8#q;acNSqe%?`b%z#0SS z)>VLKJ97o(>wJ_{mwxqjuqR#*B*woxl)IycsU9B&+}phA#h*YyN%d|`C>m;k4`VeB_<`CEbj;Gu z-JvH8Yq(um3pc9ZyL$Fc*|6OoD2*Szm+5ISV(qsQ{t=a)r+EJv1}5ysqHWU8ph0_L ztx<)67y*B0bv`kpSfXI{O#@8NTvi8!fqUz-`85PP?+8|?K36w{D)pG`TJA7Jn8?9m zx&2r$sciFNA2JY=i9q^lV2GYPam;u$nMm@`#-Z;1eUNs$3)NG1xjT#<3yg8O>0B#{C*tDj>xA2N}6rM~!TT-M3q~3S}L>r36;y|-n zVgs`xPFxsw0-!ArQZN`+*Yoq+5!?eh(iaeVB(sCx`nBIBu3wPi`X*o5%v*pEP*VLD4F9a2 z&e~&(rW*kbHr^UM8prls9ENe=1=^bHuYDEkG7XRWzVxz|&6JY9koEIm*ITs^P|4?gZqFrZXn>%;XT zmkr1BG+3ywU@rhtM<&2KU{^53()1fDs7;b*aJZvq5g&Sv9gF8aW37=9p&7hJ2HIv-QoK@1D@ieFJV zj;e3hg3@sUCh7C)WPnvD$cM3!i(TR>|1uMRqmO>l*4ddgDYh@KY-uV2(K*75g9fsh zO8>DdM-DPjJK%W$+w%z=9}!#echoP5pwI5XQUde+7;^>DF}Y4?t#gGBGvx?0#|jPS z78JQt=QC^!#6Aw@a2+QC{IPLGVa&t`dj(f2DBI*+uZL+;fp{!$c=xX{WPSeer7+lF z#C!||WD!YWL8ap|s&R-wVyjOC5FpLM;@@e#?Gyyt)Gm`({i08z+Tb(n zUIU|JM{;%|FmA6d3WD6334TC)?oZYhIH*(wfSH6Ok(4AMu^d3t2~hX8DeTKe8;m6Q z0(HL=)e_OE_t#52-Mz7Q0`zCFZWDDHxG~}~={l3?o1nnwL0B&B zxPc>snFS_)o1RPqjI?#?5yO~CM)&ne=rQlv=(0@VfIE({9%IA`CBy9DZjGPW=+DnA zPVrC60^emA-n6#jdqaW+F)R~YKu2Qghp<8tR!$nbAE()W(i5xz8mv>EG!h>AA3#;i z!>VXGQQGdFKt5wBx&)JLlIf&gioX6O3eEuI{zVg7yDl}RGr}@aqNuo7DqB&gH5cxW zRq?oW4iT8d21#r?2KcZm|MP=}r#pCHY(jY<5Vtjs3u3@{JGwMp1|??fB>OKZJUQKx zMqah{-Fs}J?&F$eud4*nbQPQ=9H_k%zis?oJnT|&p1CVGk`_ktEh@}&-taWfN1+T< zS8|YTlV{;`zj<(8Y1=<*%e7E#zHZu)pP;dE@84|*?y>&$16Tu@q4cW8d+5*TvvtQo zcU#f|+rd+*-7GLBs3#^gJkBj2H%&>=FBk{XLYScTZZxaYUh4tK3G#M;m@fF@n6HWS zL8@ThhylKS`7&p{Bv7GP!1TkK^;)DZ6JwKsHuqaF zVhb1;*IE9qJaVJ2Np1sEgMS!3gkGU;q_VO}~-8tX(lc|`XMxwckfmq() zf5l=g+J41#3%&wi!4Ah`4U=@J5RrlVcWl80!Y~SK-vp%G|A&)v>?1VhynF6N4QKxU zi{1vSqlF^nxu58gajV>CRy9(J=fj^SWp!p}XG~{mB98j3ykN$Mr&3a~Ou{5xQ#xOw z&JP4g2x2tmf?;?uWpp;+exVM%BWjAM(hfZ;Sj5Nin9%VGIg|YwZ}TnzYgL=0`SXC{ z1F1>T@LxL3Wcsg509DN7kj=PD^eGrZX^EVypP~kN>XvOdwe76V+z0!%4L42D$KM0G zP~$A8hE!OJ&)#ZCyA|{j+|EBb8yePa=a#jXfpvI#;u;>?-YEDdrvRCF65SKD!{r43 zNeizq6h+o#>~!l0di@o~VX*%d8Bg~fpi|-SUSUsYum^o@{f_7HnNuyoYa=x=+5m_v z;8NiFYJjriRCskko)Tb#4%1=&_T@=d{;~U@Zs$CW2ZJ>T^$>=fom0pHOi7#o zNw(k)qYwvxI%#hY^!0E(zvsCjm9PZ)Fb0*Jz1eG^f}|}{o8q9wreEV8rzexbr&lrJ zpvTLf>t!nz@S*?P#?vGq{LL907OJ2p>MB9VcTE&TZuxUr7&cK)Vl|?FIE;;VB;{P96?tty zMjd-lqupOWjYlhdptdiz=MGeCdeAq0>(D?_M~_f1X=3QbA{oXKds&atj4wko9&!E0 zwq(@5t=Es=)*?0_%W!h+Gz9=ol7IlJJH8Jx=S|{&fURNZe+&Yc5a5w~pq={LYEYvN z3X;syQyHPy=9Gt7_{dL|y35Ta!%4JJIAl$tz*gP!S@n7ym#g+Q5rm?6FJzYA(iWv#py% zx>(H?E);b#t?J8lLc|sh^8uvz+Cdh;*+85=&<8xeP#;HJ^u1dr+I2^4mlsg=%Za2f zUjE(J$p7^rK$(9-zIpPe*s{VD4&-qlk|T`Z`2s{BP|uc}1Ry|j-PWaU47_5%(FiTc z0_=p|x#20pwU5v%ajavnYC^#sWUZ`q+i5wp072BjzxjKI>{{$o7mw5TB=0JpfR@{C z@b-rC_!(q0>ZdfsX(vb16zS%i$!5B|F~0Xti(2 zSh?(h0R#Tww8G>X1?;@qW)PE-+XXN8E(KKkvXk`k$bQM&o9+D8=8a{kpjbAWBO?WN zQ~nA0fRSQ7Posb9U+kRQF0xwd2u*ujxYiRCE)qIn3Nq_2N+apFt<4ca@~ElBibyMlT@KOv9-X@EL53^dwEw~8jbC)PM9W7AFL_6bdr{wj}k-! zJP1_h@Q7&84lk`^R39!ieARRF#ZI1KuTOVNfFTnwSs6yQ%nC{&Lr8-| zsyH{_LpRm*HfYgMIX9o`Pw>+kVUK#UE3W8oD(xi>kjU-sv7=m<&9i*`q_ZHvR9PqE zQxgl@WnujSgb9{KK!TY|v*ux}Q+zE|<~e%y*CoW4uYKV5txQam6+6y`2110t?KNHP z^q3*60w3L!7>xX3ljL=_$Znq0(@umb)MtlUt_=w2e^OQ8T&4F0RplI2(7_UMAzM{BmNWwq=KTy}cWo=rNEFJ@gV&5YA&AJ9mbX2?hre80{U=d- zPUG8^Llf(kOc9gM*8a>Vmcn%?Z{OAnZ0Ecdnv0Ktx4hPmQDeBLq3(3y^7mL&U5RRL zA2%mye7sFbUA(JR{ z$3NS`)IOWDeAxMshJqJ@`MxTVamKW*i;qDLW3<)}n|OpXy>^)p^dKht!WuQZ7U*wt zvG+ld3sVxNt1yj6Y*>Ps4nULVnxY?N%uw5sTJoR;=jGNTbGmqN3g@a<&i0RvM~4Xu zv@tB$&xPJ-d>%&*;qdsZva!}&*o#B$E?%WI<8n49d2-pe=G1R`J))+pF@--=EJB~M zZbtmOEg8>b)Qy?<*4zGP9$ZCpcyg76L!*m$>T~$Yzh;|!IA`AH)J_ofEv@f+@HF1` z?YRD#7>{lapWbM)H-V))k!^VBd8w(K-GY-?MEL64sT_km6jaDIxA$%z#{hq}{CAHQW({R>M&Vz3Vk2q)d;R$3Ge0Y2^} z@UcXrk4+_Czs?y{sgffP{oFdE+havsT5e!ivf7{ymdO^w2Fd#`?*4EnIIi0-cy)oO zj!_Pp6FPI!en#E=_7d2I29I>!u^jZH$*l1+k9a`X7pjckUjHLhd*Q>sIS4?1eR)6( zCPr9Pb%eEkJUReqi6v`;j$*>$x-|IWHrtstUthG`M zxsp(-v1{U({is@jFU(TVtzXmK{D`f@g!TN_AVs#>H*V``>HlzC_p-4E}o;uCU-z~fjQzD zv42(1Fr02Fg{r0ai$wGO=%%x>r*Zqsvgae;q%P|_r82aeTgRLp&dL_)FricZhtSPj z3kD>wpd(ufUegU9?7$sNne`UZ<-1iK#so;ZDy@a+3H$1!vv?w_kY=oIJ8@@YWCgAz z7hdQ*$|q>o9+#U}sMa0D=Pc%!3)FPLd+%c>9l-o|D|cxlq2{T|Y|qA(51s1)Y{N$h zw<`OF?+Q2^RBAwx-?W6a4=)CDjM6}%(?!1{2HxP|wXOjGS1s-mzP`Tf26e)Jo?y=zc6ZKjU!nyXVB2N9`IdAi4M)ItTWk<*w+LN|M&MKJQ@{5t{#2U?v&19mQkMkGl z?%lg*+fwTNLLo}A{NphXOjwP`g`MVcO_1L+uEtMt&GJ3X&pR5yk+{|*DZsR2QE7CE zKzFKdyppG<`4glNe4u=sk=a7XzO-?8INN5j{r!8-#(uUajC>_0q;2K`v{K>bBPE2GJ>C9P5*-A+4t2%Elj`T_dCHe9Y^nqBnULS znGR7W{L;3ZCMBfVh760ZE8h^wmvy(%Yun*m z%k3d7pSVJ`sPLomp$DI~>t=&hj-O$Q!5bc38gFC9loZ^*X1#u$;sV(Rn=dY1uR}vU zEn0{XyNjf*NOvdBdMbK)`aezJ!`6vG+RC0;DVEQ&700fftd0)aVos-Qry;>bDkhtI zktEYKyJd-?pTKIP%d;pT;W+j{TK#O+yj*AKGghe%&%e^)G#9&vh^*mG#)oOS%D%Mh|GJC9X zKfNS1oKI)O27NpZHU*lBKB};3uF~2QOzPu(xn0l3%*ld(Z;Y1JL$g11(bvx!6Q$$&bAwRudS!10>ICU7Z-O^09zh4dG3O&IkdNTi;B^Li@5 zZVF-dYFhF!dado}*4k35bQ{HePR<+8`x3u=c~1A!pH|R|XI!6S){fv-g!70&u~*9a z&+^(z1%u?%u?w_~^g;vdZ{Bb5vXGoRn|K_Lk`SH3n+h07%rDEpOe zl-!MkVn`8ndSlm~V%N7RtUZh7AUvC!jab8nKVifTU!U@w;DT|pq{Ud?P3?SrBvr5d zR6_s40c(7RpRASBG5#01FWS2y7SBJ+5!Mqh6{pe_dE#EBHawx8rHBypYpvgQs_%eJ z9~9N^xvXhC!tRZhs2d}EV~pGb9}4g&{Z#YadHOx44m=PpRvZ6~i(F+d<6d-qaZQu( zWm-03lt|w$4%3ujqZCo)y0ukWVO20W20n8U;=w-S4a+1J=t+m(ydhpOC2R3Yh#@~! z^V`nYDM~Qm{sfIW@mj#t67d=nOTT_((s3K?&!W5PqlKmR*w5NbBBD^<#x+sM>yZLCIeg%8B7xnt|TPNsyIRpk12=`*1Rmo6T0voJm7Zbk&nm!e|)_K zSXA8?K1z2=OM{9?gXGXCf+C4P7yiy2RkGGf z2Z!P@+}hj#sJgmT6UWYS`q=RBJU>Bh=0%taeUQ=+FSD`}2HflO?TJ9G>R^?Yp1#cI zbkCadF6Jts{x!=oTj#})*2wV(6p6x%CRVOv-3r$#A^~etU*z%hs#YpOIr4(fPnQ~j zRpNH3YbhrTM7li~ah`4;Jsg7p9b=~x<&#-p4T7}xZS{JjJ7|b^J7~n>X?LUov6aY* zmIAI^@zLfJi6^&)0x(;Z>4ttK>1^$Q`7mq8%K|53=36CK`LM!MtKXh9de?QH>24|& z)U>AXnrF`8xod=>zA3!!q`2+=*$OT@rlhdtoD5v?ZjaTxIjJJNg2!05OJF~a196vu zG)_u<$Zri{P>mrKbi$!HKmyVRgwG#*9(#V@&VYBfe_MoiwOB)AS}Up+-yd0a z3%*jOvA5S$xHu7+EH(!3;^$2} z16cXt)=DS7)>fAbZx#fV2=jZ-HrKIRNY}9QmNoF_Qme9vg%IpFF(5=`FvebX9)Fo|j4C_T(X1KX7h(QXd}|koq<{Rg|9F?@1LlAr@?qQgLpF;%fG-wnXvhvEB=z z8PWy{%gzH_0fC*P$r5L7`x*`}oWKP8CwanG##P2{eD`c)OLihcunP1`0w*t)D|OgEV6IID2nt#DjLAo~ zBhc70OeWiLyv?>!Yjq>6YqjirSc)aDgdPs~MgmF6TkR;ouMJgnw{E9VK zHtgWTm#^}Cx@Qs}ff)mMbZNVF;ISU0w$E+VCbmOM;M4HEedi@4&Hb~fZF{19VA=G; zfn#&R@4r?125!ot#)C6K$Wb!OEz^!h1Qgkvna|?t)NfU6y0p%B`e7}>i9V!(_7|PD z;bRR86^pO}tT{XpvZSm)e&t18=_fz7rCqH!kmA?vNHCnFJNJriL&F;|eo^E!{SMcw z3dsy&hx~m%%WI}cHUJtRbdF!1Kp!A)KZi)*sSEFzM#QQim^ ze3pzGxf(>yl=5mn@*aK|8BM73g*YG2#>OWEZLj9r@biCw9ayjBKU_Rt= z@}EW*<^6tR?%^Rv`F?OWO)q)P7R|}CHBz3_tdQXrri-bn37y*1XD(n z{i=&%CI`K<3&Ix*1~@59Fr$#A!oY*{Q(a#s#(JM&b4LBp^2@hEjIHTm%cVyNs8ipm zulkoKY|JyMy^emkk@UQCioh?|s|sulyW~9U&GW4#E<8TRwIx=R{Q6j{tC|GC-|TWf z^G>{{!(141FmWmoj$EKmbc>fy`XzOM?{|OZeHavW7c7jG#ZlZ)xD-=&tW$cXg4;b= zMRVE3?ZLp`)YtQRuj_i>qO&OHl#dwkSG|P2-Odjz(#i|lKrE1-<3E=rcU! zNls8PSHkW;o({WQN-m9Mk3CxX9a{+c!MJc;P9*a!d`rxKDZ2kX{6mUWl^m&5zet-i@F&F#*Ns&5GdxlBW`84R%$ z&Zz57Z?MRbG@g>Tb+jm4aR2(%RMkjcTu+chxB2}wX19VzS87km=KME@y6G`Br%^$i zbV-`AiioC>!m+1M5$_IHhd>{XhA6NfTO^ytu(NN@_bBe6h__}o&!^nM5ai4~5&+=N z!4}g*@sBg4;Z_43iP^F1b^DB4vq>7+@|i6y%1J^dY@4~5H&c7dCMjdA?4zb+%ySbJ??OmS{q^g~)8-nt5-)N4 z*{v69@Oc9LnxEaF|KQ0Fx;QV^_X9AK3dkkvo{QobR%yog7APqW?GWDlsOTqtD^0owC}{GG|!7Wc+=!w2dSGh-ODVU8ESB5eniQ2YeV ztPr9)w8RM-S3Wt?E%4{nfzH%58wC5+WG}5g(Ifo)nKj#OrLM}#ujcx- zrsD=e$r+-?3vpUH(1~_d-tR04-Sc++yI!J?nJRs~bfYI9KE#{#b;yah13=8$sP|sVQe~vQYl#vzxo0nHclkLpPZSh9+yi>3s_@Q_>ssl+(j7wa~7#&f?A-jJ+M}SyTOP)A2 zHGkwXBFYBNCm7n&vV|0Xi!?MMzdXKdX}qkZ@juwl&aPHc`!iXqns@KGMv9Cc*x1-q zgmH0kYn|rcv$}Shfwbnt2Q=Y)$aL$qNF|Kv(&z<%7866+U-S!-$%u z?TJo3hv2Z~YY6q13p*x~ds@J!R+@CDXJ`NDD46-=wj+azeejKahYd6?z7^l~zN6Ba z%IG>cS>JP?2N$m?O&m9S7kX2uNx{I)t;9N>#zS~2kV09)-rv!W1|&-ts79skdf<0> zxr2};k)euLdh(Lu4j)X1Cg5SZweK(Lw1%^%w&i7?n8iZ#){A*|_IlxY54lZ;Z#|Yj z3x8WCdL=S4qJEKL%4M1Cvp;Ta*_)&=_Ph>ZYkvM~J3V~!>kU@fA4^N9oM5MviKP^5 zcsUmBBuXXC_Dub`o0eXyjRVf3!}H!p<4%o*Uv&@l zC7$Hv8L^FR6=BbpRunx8F*0Ckn4LC6?UQ+@dsn1ZSA!9j<0Af^+C)Xf&o$dOGaf-> zkgcZh$oGf4oi=rAw`>y|7vuCnJ&qjtH)G;DrSdkvd*^lNK# z<5t|GdWEm(2g07{s>0qCe+{ze<$|2KANBAVp*A#4d_#K*p3(8T98XUt6MxguCqf+^ zUREFGqiGUT0phBu1=-?gX2{Iff+*R`7Gmf*JrdbZzn;@9H6V2z9_rQRMRwE99qY!{=pG2 zw@phRktylv*(o#`*iCoLGexl2-iv-`x@Gu`4e%nWtxip`=vDJsz5aN8U45oJ?8M~q z>h?l=O2Q5DgA>9iBLnpza!F_mlS-Ncjd!oWZ9~uN&2O%xy@Utkg^=ztFwl(E&}k`Q z^Ab|b2?^#c1rTC|^W7q;O0=B(Fb)gz!g?qTY)H8s8%c=7Y~Yr)aS6f7&R3YX@?b_Mkn(;ODjYkD@G2j6$x?Vy_A%^;iXQ z?Z>6yv$8^tdo$B**+6NqiC`C0<-6WEa5-`bH4Abue?G#||M>5UfysQ(ESlnCy)k3) zUF18tw5@1n!p+8)@J$J1nuCf`fQ!HZUAsfo-I-WsWQNc)JaTf))7KMMcdP)50aI&OvEyLC1iJlhcq1_L&w8BO_}a3Z>}TIxP;KtS8(8Xrf9S7Lgwd) zOl|-6)Oe%S$n24ps$awY*+OKzT`n1sd54rs!xBAw@BU5RfP#Xq{plLImv!G$DVwB` z2do~0ljU`r5@TiUyj89?zmSv&Po)4Iq{$^6y`bw_(p#y~D*J#$zWD&c3}++v%>4}I z(KE3s=9l3WwQgUBwm|-aKxs2?Hk`FohQU;WW(=LM&*v!-$eqvm@8quj-3v_WWRqLy z0n4M^MLhSdYoOitIHer_n5DMX@zr4klKMX%d^R(cVp`S-wf2d$f|S zG>^9{92M1Kd}4cf_S6q$$Mg8cw@Ui=M)H#lz}dFl)Mq+6#?(|Syvmm!mv|I7om)e7 zu7X9p&7S)p`gl3KZyYGup90h z{4~N4aXbB+4-Kyy|aGf>szJ6WUJT!rr<6vKA-0F0v)d{tU2)xuT zQAcL$xtp&Hd`n23RFq%OU53m$ml@U_&+PO~{6o)p@;`kF|7JJ(_}R0oAY1L~(wVuw z(lpVS-IOE%uIlv?i^%dJKMw!Y^hmp9jj3!D%T}rwXe{$KphMMe4p*>(6mb7x@7)wc z@k0jvw5$Tb<)1PovM6sN(Z|MlyF;%GUkU~I$6lP*AE!Y^=JwiLy@fahB1^L~ zN6n`f#pzgpv-J+P?XL}M|9_8*!2)*Saw%X-*4T@9d0@MAEUwfsyIjoAI{vJ|cV|Bv z0vQUU_h(>GQ4OW>$11T;b!kM866S`W@bM8vn}ho;+k=M!&*xV2xk*oI`DngO&dRG$ zumvBkX99QkeZLJE0htVb?t-&AC|o92Dw2zp7>8rDkM~s_Alu@m|9k{bh6c$T9v8np z6|u6^cuo*#2{j5Ck45qnNlFTKSee3KQl+Fs$R!%yGo33|`{nfrh@-RY7m8qNLL>z# zV&2{LNEU2IeJhp@AaHhm#JmY55de~6M*>e0HXHNrUgY0e9(i6G!;)(=uZ*>zTfkB2 z+c0U|A^IkWq?dEfimpyqLdmQU~uJ<|_czXEMb0gSoE`?5C6pQFtsF!0YC;NvFib zr8?cGydZ!7=O9o`)*!?>LF2h^-vH&n0FVOPPldb9Vg0|+Mu4Q1%_G<7B;mmW=a9Ww zmKsFfA>yFw#D#o%KWbiCgf#`tOi0CBNj(O}qNDNL zH@W^o+R@dcQuDdpxiop!ztEC?@7wpbhUoQibpGt1$A)m;WF+0r;dp01^VQw98wUoO ze+Lal+L&caHO(6O|<#gh=yapJ#EFwdYK}ilO6Z!7ZLG*Y>@Yb54fiXD_#&E zBD1xOUJ6Fz3I24zTbtBaaT(g+uyPO>PF?J$wtrpXKa2RYRB8)r{v_g zE%i9btK*C?F@ei}KF-{CGPzBa zo`f(urN1am)VYLhF07gQrKUXF4i+9b}%syE*3B(N;VoPJqImO z44{th6@|doOiJe3&Kl6L`~mOn&3Z!sW&eO^dhzACgGsdZ<5y;j8;&TR_hmm$>u723 z;81Xgj)>cFxfB)z&op$5R}Fa9FQ;YoW^@e*z1@V)EAzCfm@x64t-n~7cx*s_evaH} z7rHg~pL1&-D-ll9_4T*cLILdESXpI^%%-cCaL~crHsegFYRFO;tDw2~RPRxGh6cLA zhUF6Bj!|x%2C|x2F8z0ny#=rYdXsh1)9y!`YNscLxHsc$^z=AY@0gtpn(%Y_D9~b2 zJ+q$8HMXz_JLdTTm@FRA(hh=-4>#_`rKECMFJ$c)xsc5hhy|QWHig;)3ZJ)HOc3%_ z6zB)I?QmeJKD+A7ryIQOmStz+vf{9%k~#hJ4s__oGj`A5ykft^i9U_Bj;P$#vvp$o znJ7Mm>|mbkYZjM&k9&I5_yunq#X!JfZV)x|qT&{myn z5;n<987g8A>jnN&3^1cUz1$9*(<`$QM_-Bv4i!--GOH!oU6RBDPH$d7sB2Gmmn10P5{L4<4D(3#{o2@qKMYb+okj9nX%!X|jAo z4TUhws`^mZ(4pEK5{u1o6sFLoqpgURMuJ?tL(b(!Rv^xmkwWgR3smcpdE=$8&-$p2 zIpfJlG0#!uWXmxiGjMn(%M@8nDUL>%4Gs>9L^iiY@J#2M)-ZxGq^R1Qd=@ou|KbQS z>)e*y#(VzyulNSaZ$u&vSI^h z#|g!xmcNg55(Tr*4(9n&WTt;mgQ)#K0N?fG$&ppeAtPHDNWsvKBu zT`RziBURf)DB*|+tKbv>YoqEbKJtATEQSu)L>LNh6;ctJ{ggJx(p)=X=(%YM6!nU4K=5r$jEZ5(BbR5XkBrfQK7(Lq5H& zl;*RZR-^Vre}ti$Fuv9l-`~2AcfT1``3vHrb00%cmh*=HHwrG_G)YRZ-(stt0o3$Q z+J)vi6+%z<-^+{0HsqO9W-bxqb{VYXcVaoV8T(HKv%R=OL z_2JLPmuC9>d8doJ#G|x)<>bp(=mIL`Pc1ENoVh3)bA6;HLQpRpR3jC7aD>`@fn> znVE^VCg{dXFNXC>zkX?2Y!>(Ry2jj6=b1utuyF6VMEQG0PiRH{vnUz{X<|#gxzxkv5NzRe=QvG#Wa33M?ra<3amLmnu(rQ!LrHc z!MbZ_Z0wQKM@c`0hRn&&e$^>!(~gg79U0sNhJRjX{K?~O?Mhfuf+cLkRw7Wht3Gw$ z13Y|7C|~k+^ z=ow=V1q=BS(+hzP-t0yaL2UnZoLHF%pEo#&&bFkcnw|o>!;W9$mpLWh8o1iszO#J5 zUE5+UTw##$+uU8yM|rpaHPf9|?ja?hVj#4M)g7xRRM-%d^?lCv2xic|+)v)J=1$D2 zm3MYXWS}hbNXaCV=&*cP*9p-6N=I)awNUUs`r+^W63R6c{I%#+j0u{=@6vm$1p8vi zWG*j#u5OX&m&DZ!6@SpUS`dH`-pdd-5&uWnX zh+^eQ6wW!@I%EO}_m`VD#t|agkiy6eo3(Y*UV0ulbWxROE~lF5)vFAS>~~xzEevxT zNCpQ1u&)Vw$%n%IXzt?dpp< zatcdQZ1RLZQYe)>W)OR3`*6Y$~1L&g*7ELAWz=a-bkE%hef``@tkir^+6SmDaV|B)`) zipYdcB5+pE&%2ygKjsvx-I4iH95!8R3RbvwFHlf}c#fdc{Y=Fy`Gy+_I%eN`^R!vz zs~{Ow_#(lvTBSI{&?=aXz?ER(tM84R0$17S8b(C`57XPB5CM|?Kgxc<|6M$&4x~8C zb&&`Lg|C~;IM75)yI5vZ3@hGb;BAccf4!JWHVm{o+Hj)BB`M`c=+}Av>94)m#rvH`EH0a>N!i=fx&W#6RMoJ+-%T%n_S3br zTeqO=x;!Twu5S~ik8fxOlM4Ei3I*56rpOFeTc&+yE$@Ps^Pl{p8LJ&779~Qz+?d^- z8t8WR6H@N%OO4B99p-$XFs|zowm}l#MhIQ;F11{+t&!;tiHsBz8W9TKg2>3!>eB4Z5P;SE063bqxD zOPJwZTI#e_jc^8g%{W?qe%?tP$av%}(M>de+)Bva1a_e?kt!E&H&XWZYo80uEtp;SWr1Vsy z^w!W1^zi=u3M&qk0Mib@)ML?qiss9xT}fagORvdtM%9KRLxDDa zWn;QXo0-Qek;yXN3QCO?X?;#Yp5eNGh>F_m+f``X*q>hP3_46Z8SG*IU|%RzKR*G_ z{Mf}6W3LxX7T#5Xru**4j?lfnzy#Z`MGG`Bz7>&kBb{9ZC!_*O48xs3(9epdpF*=L zJr!S_mJm%lHz;=a&+;?~|MLdXjBgc+HlJzYO5BBf4j#RDbo~8&{HyVC&_ix$_)i%! zf^A7r0Y86!dZ-jyT_YpqGbY{BlcAV$)QmsvOTnWV+?|lg5v08wGd2eP$%n|SK)M3W zaax%vQWjhYF!)h`=e_c^bY+ufk~|)UR=F@FdJbB+zCc9Rw`g;!`w_g zbkeAt)6k38LpDf)c75eh;AG`tN_&$ySVA32Y@d5EF5wN<;I zHlRxE>_o26I4>=Q;8IVOTbh2z&o*q7vk<`o^Ds~|c{qhjIhQ3yIEv38C2bal+X`Ky zGeK?`j4nh#fJ1&fur0MN8!d`8-)~#Mp?l~TNarnFj#$^0pR+UV+-A?+TIqyNW@Iw; zuJqYYrRu0Nx^wa(`z(AekXoLG|M>|Q_aj3VOpDg^YMlx?R|R3V$9)evDu{gc^l7I| zL_}O7erl>Fm9k|XOF+*c@*ZVD*jm(sxD zu>jkRrhEiSvGcgHI0HIow4q%MRgpyVK;idH;rGnJbIrY~Oi0-HlB|&d-QWJ#P$~-< z#`|8qp@Z}sR6UA=I{yAoA1Uo@R&g7Uf$feuFTTO@AJ$b5L*m@9-M=fwQ!v{ph=M zfY(YLP*%2Bub5-*JLDQj3D!s&VDegOPJ!1RKjuPqcWcI}_|)xt<=NW1mQmckE!DZZ zs0j_&FNpJFtvyj^4E0z|BBq=&cC-k zYS}Zr9ZC03df=Ti60`!)1Ni4CnRUZgZ^*8c-*~f^IzXM^EWy}%Z87-2R88$I*c;Ur zf%wke8ROQtQop}`fo3fh7njDSs8`p7(Kqm1lWHc;TgAK9)+UAI<<+bX#@q2~UV8oF znVJS(EYFXmNpe74UGA99wo$D26+P9S0!`8)}~uuxN2=@UBd z22V~-L&LGv6`IAqDi^BGU}C3ce4`+_iRA9Cm3jwirUf#}JRWA*ah@mrm1(75PSuz`fA237Bcs%mMdP9a;=%6 ztE@ruk7Y1Mz}R8t=1{W}4H4B;{UounHK}UJ*Dp>3X-jyVeHjtn%NkLGCdC$Nwo7ekBJ7e#`jvQaYU?|GX4d5J3Q-FnV1N(m3(SD6C>=_sp`9tyYa#j#aU~`w*<=YR> z8eErLXdBNgzO1X_YH|ei4*O20F!E4weJF;8f4Ihj)v_4z!bRHQ{mSvr=Q-XEKvN6|=M_v0RhttJqCZAMZ)}%XTpQUo;T^`TftczJlGz?H0Oh zhRu1feV1DTHm3t-C}W#3JKmS2FSkum5D9Y+k?Hp$Q<#S^c%EKm%pxOm_nNGCMb_}( zwq^#*uU$`!#&~EK@8iLMaI$x=+$-*Ja6!Em)zZC~Y;=T3O;F?Shj=p#yY`+ZyYrd= zhr1@@2S2APZa={-fuICgFFt zA7HHa?-8Hd>~!4}{zlmR#!+pIgSa^%U|SL-KCjoS7qcW}cYMKdw0i}!VYY?G8e-6C zrHnR<1k=Dr8}LJ)`DFuCHB5XzO?gOl*^DEq(R#3JW*l7!YLPtRBfy_8Vqa8g8@llB7?J|u&8DtfSdQDc6;aBYva-{*c|OD5I>kUSZglB8dcsDR2#k75V# zlclXaHm*c{VCj1+qS+Dr%P{JfNJ_VKiVcmE#Y4zLvA@#SpOs{4m>|3bUpU*B`x?!9 zLd&Ne0-h&LLg-FtAx>nIK*44m$yb|noeqEuqCfe~#Qka>1h-Z0YHMc9JX`dtdZ&{W zIQrl23w(D#rZR3-U}x9<89tfO@8Mtn7<--9m)~$=x2Ex9L>f1H+*^5i_xoP4hbE{) zho4Vy?i zEXK>s?e|mhq0WDi5PbCl2p0S8#&SU8BmJJm6_-!iU^;{6U~;N-@~po zAK1FBp{054tMcM^8SIRzKLgLu#I$e;YuV#~-2K2n@VeC%@=l7~ z-AaXBL_FnAmCQJm*_Fp?%#aYFsfH}Dj8@_sJ=PBxxp!L&ff+$7jh?C?++3KZTv(?A zdhNvmn?k}^@3!nm&);nHUpG+;HtjHN(`boG{aL(MIlS-!yu01>lrK|*B;Xc5@O07+ zUw0il@F8SE^wtw>-A;KU-jpnUo`k@B0q;Q22npX|TP*XUMQutc)tGC7{+B_9Nq>lI zb9TH9wNK=b(GEk}ZYiM8e3IV77QZLYAwNETw{_=+nMdsfr}e-Ctt$MR87gZA$#1;0 zuIsAc>#9h@S|1gJz6U#w$D$L*1P<$Ct~>1rJTtE0$>0U=d~8-z>s0G#{c8yU^sYyY|B`jTRc3 zSUyzwHU5)hL5q#$X9XQ3QSyO=IE0mh2UArXE89-f;p`!)aS=S*c5Oy(CIjSnzR(ot zTDH#r)c-(h#3#^EJm#nZ=1{tw*f;y{<#OG?O1c_xaP#FrKPJYcN_-){*PK+K@4X98a z;<`H5VLEiMMG5KEnQNgZ#!DQe$DwwRVjX$c5Y>H-i;k56Z zChh&d8|U|ngXSHm*Q=(4q3v6+5_*sn0n_vaQ2Z|?xQUwn$~hzurzpjJ;{rwe%1g#d zw>tA=%Q~8rxo%h>)zqq{Qy|YIu`W1mkBLCqDJDkCDaCDT$2 z;OumVM8K)x@g181b=0i~2UlGOYc^+XeD@zk!5^jU+Aumh+&jM+1;0IIWfaJF97vND z`+rW)^#%N~bM@l@Ui2-;=lx>=S2v*Ke=gXY#IFsGgFbZ>%UWz+A-8 zh7p5pf}xW6t={Em?`?fDy&jIfKQsIF6VnwEO4ll^p6w(Lrl{Mmgcx_6>nh7e&l1@i zT3y`xc*NaBKaVG+FX#%jv@0r}P4{}cH#K9h-2v@#R^ zT6mp4Vs(0f#|ui+lYz7`P{MVYLw7DE5-TvY6WT2QaXVJbz*WhTCm%dM8#C^`7S&^k zsCu2DLA-<-zdRxZZ4})2kr?pbWk6Up2MK|p31^P&QhI7p!TrZ!^auOC3gWT;VZ7K) zQbIoP1qf?xzJAiBdgq@y&kCRGElhr+;J!iKnjQ}N>iomt%Hyo^;x_T+mISu!|HCL< zsb)?=v=ruq>yX1y-#84pJop8MKd$Y1^X46Z;z!?a3ID|hkVb@OJi4N~B>aA^)~JZR z_;XIBk3y*F!L!Rn2f(a%`?VUmg<4k@t-KavqL_Z`Ry^4HI46xHot~`-97}2(Jp=ir zq4ZFx@54E}wl6cW(-YyFc5O%ErXCAk z@S5%u1|g30sAL2%jS^&dJ)ALDd3QB-_&FssDpV9e6c(5eKH1pzee{0iQd9u*VmJ5fsg(?CN; zj#&$7Yy&G3wUO~n*hQ7Y)e8l0ceWW-PbBs^3Sn*O`h3s#*X?U~SBOHK=x_x1-Dz_0 z>2GS+;FIv{GG-yO3kHF~@+>vvmh`&@NDjYsY3I;1g+JiHR{*T2X7CG8pCNbwmG?XhhFs6JhE z#beIP{o*Y1`Ih8HuifRag72JkCN|=nY_Q#FtKmaP_j5E*0tb3^wJxrUhj=%3fM$ zzr4|xNQq75Po*uJ8=%yVzZm|N59TFo(#Squ$&)$QW*JN!TscZi2YL8H;f!IUE6m@P z46xt=YyV0dF3x5CO zG-2)8CobHt_%RQd;;D`U`7Uuj(^+X>Ks5JXp{ECF!rQpF~=Qatya97#KEc;I-=fektIvP4J zJ1b=uSziyNPEbUg?$z|Qak|iBDHdivDmBjZ zA*xW8B!uYg;d|M9#14ObDEd9x@c34jhR;5A*Av?N9=7ekV8G!~cD&y*p?@YbxcUQQLTbtA^!~Z@VQ>&Ip6cA**-fY zDaGi@4LI`GB$VaJ#jN>S>1E*Qgd^t@@fb#aTmsa^XOo2SeGmoP=xBQo!KU z;IRT>(Fm}2X;M0ag1llj#>XN`X1?jV?mzUgReVYNrnvXpLZMJqTJjb~*NamGJ9miu z|60X*l#7-!_&Z7aC!caTtT@H-QiF?Q9iyRVz^A=3nWXTtU_tQ>{?S-s@B zMhK|X8nj>-i%8N;A0P62IMO+o{+zzm0@w*ECJad*y2+u9v=f;>|tRq%i zvhdvK6nk#C@tiSpyFOz(PMEd%>@(4bRzTy+D^HRe3blY_Zl7;d4HF`xcHWs-4#hMb zhK?+L*P~jCSzPMDMVXU6tt=e{)+9VMPhjKDxlbvAJz~%|rtTR(ZvbZGDuP;}TUtI2 zUCC#ef()7-DuvlkOJ}6cNvzBFFSA5_j<0F4j72g#7Vo%F{aA%xIW@^jq_Wee_?!b zcief~Mj_03<+??uPAo7@wEqp2K|%9{BKH&3R*sl89+c%3aYbrpVqw*cFB$9?H_cCbulC1XTZ>GPQ zb0U}?ZVeIjdHTsNGqPr+`u&87n~j=kZK?Ai@F3jHFWA1Ly0?Lf#Ai5KYJQ?t#9?N4 za__AT1J`XKVdat>Gqi4~#M?nyj@uS}hqlxFpWG6Ih!f#?17UV&=is7?#fC|^Y+TMn z1qlT@@7y&nI%cUN%37q4uD>|B>jW%()zpiz{{lBkBkn37{^qy+`mpFTd)OdaQ>q04 z;7F7HaIJxLxsoYA;v2D=y(APB5_CQiVlk)Mwn}P}I%z38>{c+2>f>t+81%)>#doLD zHq@5oWV~lc?l985lzrKn4?Xt7vu4X53VNrs8;tcdNEnBzK_=V>>-SCGe|@$Rk>vJB zP06y>G@UhW{H5AgW>_UnB`{2ES8ZtuhOTdXpo#m;z|glU()!eKvQ~Z6Re{ zj%S)=K)ovIC0IzbY%$RN_WJOQlL72%k^hkRs)a(DRFn>Xga1VyWs8nc>5LB=`-O3X z_n06Z)*NI}ZxCsuT`7+~ku>$)(IR^4QsZ?~kmq1dl;gJ00UF^y@d`TbWz&H@$+kkF z^fwFtt$$25iB)_1)@@$8=$_8##O71k1QgS!g;BI8NxH}JjTrAjDh|a60m`Tdl zxbr0Ii;Bm=qs_H6S1RGv91(>?47LFv;$dNlP9uZqemv^RAWk8^IloG`o>)_#bL39( z(_$#DK0SjfI5E`jEdJBabOM=*qF;QOq<-GF(|2y((C zOyfw=L)m|8z};s@$)n}@dF@}V4?`FxQXL*L;7_gvR!o>apN`W7csBa3{<)FWK-~m zZuDcON?ksyZ>HVg=r@940WrQ2q51`AN`(B0-E*o>>A{NAw0O49=Ze#Vq0_Wav{Lbh z#cPDfXs9=Dk^s{L!Bwx^gPRYkt(3C8M^dtfd=DgZ*iWRv9U(eInc}P__Q;T(S2oVi zOr%fpQfeb*(03>E8|}n~PVY!MADcg`fex805%(Oww=&h%t#Cz}U_|8nU-N>`6?WtA z1W813C)b>7uIsbLS>`?u98zzV80AX$!2SW)hdH?6ln}}dtjOFX5+}RsI0K`(fmx}m zJY=j?)SDf_@3^!jnF4CMt(&R2w-mO;MswV!ZQHyhavHtmWM+Nw(Q?dj5%;jMOzIq2 zalR$=j2ss|$9FFwnE6uUoQ_NV9iiqhMrhkA58^_mFMD0Kx?&!erhc=AqUA!|DsU5e zBS!)#F!P1=yOhj$dT{JOKi=;^XQN0fd^LGNA#XG`e%*Kzk8bLzratHFMPbE3EA;g3ku559cygf@ z`f$C(dq#+WPMe4y{*@z&qe3n=bY~>W=H)*Y`cr?R(Oh{?c@yhYQ5n^R9b(VG;exAG zeiu9B2A0`mf9mfU@?os;U3W;<@2AFi?Vjf2g(>#N@H<+NGf4-}mtv@X|}cS4w{K4s#WxN+mSCCrmbDm&XON-=XyJT^ibd6)siH1O>Z z)Xv}%CAmRK zyXjP%jG1~ZRfEFxD<1&Bfa#(-yhYn+{*kM83G}&9oGy>O9rue$(#mhtl^A#ieU&@e zV|bir(&&ukHKDSdlQPjWR@y>pWxL>oFG24lk)2mLD{c_A*OFU3sIWNkwCLU4C!wZ( zh=;){YcryNG+ysm7R{Tj_jv}7T3%h_Vvdh;O=1~kc&P}K{6B2H1yq&I8aBM??vxG% z1f{#(pr|0Abcd9LbVxlkib$wPw+hlqcZqa&ZbG`H*~CBF_dVY^>;JxIA>f9^+B0*< zbzk>2GydGN$n4ejb&EGPuJOF}l%CSBaDJ0ZSZsa8acp5!n|tcvC!FT!!_D)--R7IlWhsNgvJCVYxTkPj7r(ThYRZu%W^bm7Kb1L$P$@J#sH zUwV4i-vn-$#N`V~diegGCn>_rdxHkBdaR9y$j1Z~qeO|@Ar2n$R<#Fcq3>d}#az}; zSdrIQQqx2)+~Z{5ZG>l)%iA2C#lYDq3!Cvct2S`p_(k6GkzO2%?2D^$-uUP zIOOB|Vp&D0jLYL`5&|0DpNnm+h(`%Fo}apt9v;3_^d0v8=_5(HI~h=r_^a94zuf+b z;Lw{}tCcMVv$!Cg)h%G3+9fRzjkcN$N6ODys7UQq;iX^=_C0sl)mOQk(u6f_ULQ%W zsHRC-FgwQ%CzU&yJwG^lj50Q8f)WwJ$B4YuW1oQ6RPED7;J|0Pphg{aE-sa4$@9q! ze7`f|Ix(71j3B8!QOK!2}z@0#cyZ#HbD|dF~wz+qSI_Ykk z*g_P2+7?7a`J}#VhYE!iwiv5$AuI4r)-CrIDvuyMTXE(GHbGfpQq%a+wzLs*nDX}N zorA>h(se3`<%-pBy`{d}GW13HyZ6z?wjZ}*+2*=w4hERx^;}*6TWzz8RRB7NhS1wpT0B zp7!Xy(a8M->Otbo6TWLE5~C|p>MILYbJ|I>1Qew?wL<43T^^ZF*MenM$NA0SC z8Mg6cH8jgD;@9loiaS z<67Jl51&)gBO-ZKTgb>C-Qw$ ziwHEbxW&y|CeUA}@VMyq01=wWMDt zHwlT>f}@AaIPiA9!I8D(WO%P)PT|I*h5sB(fZ;hjo`H2u)It>|EMo^{rlhkW;1 z>Ku_6JrN;8`l?g@(2~TQ=UD!_i#^5*x>mV4ZWuZemK?iYL!s?RY4SE~Yx{CD zqwr@x&qW>3xk~YQfc(vd{$NX6UC7eW(05k}2IHYpV*5eXX+!gV@FfW8nK$Mlj_7sj zUn7eXN#Yj*EAxmOoYu(Gjo?HR{|ikQ{QKhk#+YGE#K6m=jP-izK)-3s#?JC`l>xqmdN z#?e+=hJvaIN>;{163)xN+2EDWudZJCY9e7=OxGz2eSwB-`#6oJE(J8|5EjR^}!uUcQR@ywFdWXJRfgjdrSJAJF+KU{RB?DrzrxvgoZvd<*&b( zgCplE9TuP)Q)7l2#FOA6ko(aJU%kyZ*>4$9<440!vRhxrOuP@c0mKlVQy-qMf{Y0f+2J>VM1TNFRoJg8?&-yrN+lR z>x%Vc&w5jV@JE_0w1n!`dF>y|QnAtDBzjTOYsa>hD!2_@#U z_*>V7m(Htao{L#$G;v!7RUhsxwESAxY`xJdo6KYAwtivExq;CapOp@BcDUav{|vN$ zDZZIe+QsA}yjpcufn)3qvqro+j`4dbeufQ!Re0*`dvH*_9BUA9S4!zXdP%0ZxqW?O z7nR%%4t>5FC9B;3Blon!&3>M<@g>6%6>hIah3t8+euqVW%ytV!n3E2x*D??3+{TZi zv954fuLij;=}ulm|D!VY|1;$k@rK?a=W_|6^C{z*-l=>!Ambp?$x;2cZQIYIAZKGu zZv~Wzwp2*67J5u*)7aYu3%zugw_?BL4kx-dn9Nd!4Fo8os~Gr1r1}(;^*18Ma2N6> zRfVQ6_YUyoiU%qxZ3fxy7}Zeb>lDw;<-iqd(}@3iO%g0jE@UiNjn1`x$-8A!Sm5OkR&RAWL&`Ro4 zL%tb3v&jfc1>SR&kBG(#9~hVM04$(B`4}5EbJF71_LhBVxq)T}gWt*Qi|PKKHeI)k zti{v$1BtSufkmwJLAw4|MlK__Y^uJZotXH_siwHHZ9o`Db@K|hLO2N*Zk+KdENlAt z&BkN|l`;gXw6jFYx1Im=vsTdW%*5cuXfX=S+msC%=<*~LG-)J(9}tI7NoShRqrq<+ z)V=-{Q5^647cou6{yVp*sSVL4(aI0sNYr?xlo;r6B)^hUgg0c*x1B}`;Y}K1RzTIn zg5z>)c!XR<8|FEf_Z>apc=|#geL1nL>(NLzDpI$2qtbOwUxk7q<0T4$lWk+#=JYlT z#9v!Xe0P&Zm$D<0(k9)!z;(PjihuZ^#`NpCGN_r%`}Wh@_f7PlRmcw3lD(ND_JX_b zVcO0MdWmh!Hj^-2H|qh9_ayrZrP6Atu`W}&^ccOyv? zSm*#kI`e)6azGjT0#c(v?iQ+EcEH1km?O-%k!S7EX7nXBs0WAqF*?4s)Rr6l)|Its zGChmy_n{o8&{Wf)F~V4qn_T)Dk4*0k=D>nXI_Uu<0>%mEZ03|W96$rk)#GU2$_-$Q z+#dQJdN*>EA-Fxov+pl&W*hB|KgrX*zH%j5+?A{QTvb%SkP>Ipw>R4 zW&|eF+A_oT7nil7RM6^lTDwGeiqP*Uyin@+;vzrye7^IPvfW2jVA}QuzeY!Rey8n3 z1!(&=LAN8%xS2RKCtfxOo@HJasy=HF@w3xfouFT?#zOQ~i<#ZbEfMZKPVFB&=erxP z1z~$FB-`pKJD8aQl=vYHqd30{-e&;xZkCfJ|FzM49_B&)O{q9sr5z?E{XJ48qIsRp38;vU2GVo90XfCPgOFt0NcdGN%6k*mD!CA{=_G8;>@(|kIDS; zlGepxq~y#cbEy+zG<>OFjJGKpx^_jo+NBv^Y>mH?Ow;)6yq9bZ1yii1h+80MI$gh; z?gW_|v=@S}=pYrEPSoC^EZ8=BJI!2MU*+G&x(b6$)l5fBo8Mj~W)C)Sj*6G+Z=`@Z z?Yf>&r|0B1=6k6Utnk7D78!-`SAExqlq=U>ff-+93)JNftNyUM2!WKzP<%bU*+w9z zSWBoCyf+H}Hi==|9q6?Eitx}+4#RH_D{hmL1}^3RKb4|}zg^5dKljEgenlVHofdj6 z#}s;T)2or@e?XD2amZqzd07jU zIJ)=I4Su@fAnQM#3wHH5S9*|=6QYt#GJ_`b)g#UAMzrQhzE-&dRxb`e8vUai>NABg zleh&9?Xf#mRBukM883HxlUe|qQJ+}o30ZMsyn)f``MvD2H`#5XqemK7m6m5Sk zR3hXMP*!nLY-YH35E1;3CHw-k6B*gNjxV)jFB1b-{D@nb!g-rgmUx@$hKt)SuB))x zjV=j#WRG2`Hc!Oe&{VI^{lqUW9L>`qDVisx#9?H(>>&H1vhkdIKKEF$?iB%avGV?M zzqXj+o#os9p9sk9cG}qyk=I!?qIDX&CKB~KUGY-&tUPH_Cdn8xF{oJnJ@d%*JMbv! zy&()(%3BsJKqDxO@lNMrT|V2_4JA+reS5$4(*Kv8@n3um%#r|xi)^Xdj+~ZP{1UPg z{A?7x+>E*ED-$;0S2KFg4quCCjThfvOBM)ev}1R3<;!b0hR}j^>LZ$HuJI7Bpj=(P zUQEH_3%YOZjiEo8c@;0l2?n6{*fnIc;m-ysqVLyp*)H{QiW`n%ESJBpSq@rK`4Oiw z1)j_b9@_*R?!`fjyEBUjjCYLxk4T!e4Ltt;Le|i~&{`a6sp(hXN6><2O@z<6rqF`d zDWZeI&fq$grVSs4>XGS~>eJ&Zk&kWvV&YnC)-NBYkvCu4sAe_MI-jg-v6a}(iB z$6S9Q_W9g9Cc*(;Q;hTN%J?(VJ7#CMjn&#DTA{x>)BZA#^BSUY;JXvfsf*#6G4+aY ztckuLR7y7(@YPk93wSAmQObsz-r>6G5O_SJ@aeqlcE$?;uD3hSuyLh7LwQ&LQYTk5Pls|o@`g$6e*V) zPdhYU)LPw|h|F`e=eqV?m;HQw#)zwi+X7K|FwJIOc;iL@1d>l*dA8kk>Me0t_fH}e z-gj9aUGsTPofrS{cCfWou zt60mdxcE^5^Vi*kZ9 zF|rsb6>vZmwwlW6|5oeTHv@p?qZ5|dae~{a1pG=yhjQX;k$<+YWqsG5xd`(pouov(eWfGfvTF{WEp{YhTZ>dn2DP!a~>{Zy={) zUtL87mIPTlwTF_1R8qIdIN#0upWdMdgbxqSs+1oz;NImFDk)@on2%90x`Rm}=+Nh4 zOZCG~O}sgDrs>^z$YPj!D=FXwvPBRQnV|T;b5e51vm?5VQ zz42_zJ~GSA(nLzbFzb<3Wkp3{eNbNQg(#I5PnD1a=@ipWuvj)chg&=x4_WB&qA94n zezx_4Mdws%|E!Chdsxy;ECO!mGhx)O-8q@z7`q$P&W< zLt)VM5QARiq?iUx5>I#GQ1p0!(O3WEDaj&f6&*)+$!PtdK0~T6n~(vFS(JoBSYa>+ z9iI9+5x|2%T7J;A2JaBfu!bIRc7On_tUCS>e+9!ycb}Cv%^Y~a%51Fe?%8%8-snm^ zW$aaTGne1%6@r3KvG-$ryQB#4)9+;FP&b^Q7s-D5MGRYXqB;-;x(c{o%2$Ku^H*ovJp4m!cD1=M0DWn!U#WfhtC0Po>4^_>bpEZNE{vyYc8$A(6BnTJLnmLGQCxb%M3EA2<5F|zV zE3#EhA>-wrgnl51vr(a>YB9iAD7-Pc1G?obUcCkw^e!O&XcMx^fAf9wbH^_H?AI>1 z{Ss(Xpj*nn%Jn##ug{h(H(h7*&Fc4S1v5jrIm86KD{##E=!%$gQ;nbN@d zJ>)|vKz_T|+_aebb1#ILv*4eOx4r9K3tm~L8Q<}c_ohJ&daIbv=|UEhGf*qG&Ghde z+eG?O!hacBr$S8dr{FZFn##Qo;J+&?f zt^%)iIOmU}cX-Fage^T7W%(;Pc)GolB+J}vH^(#)BgCrlbmD9v$VqEQ`sVXZvjz`@ zd`_r+jfG+I!Hd&=$EhLMOz0LgCCTzgqk6Gw# zRnumX8hUzw6v<`JJIm>^XT+vpvPTQf zI+q1EwwdOR3qa9LzROG#-*7>y0p*gj-?i(!6tWVmYbuXfJyMJ-%}F3vo!pckJv#{p z_5Q$v(!UNWQs~QQ7Bb~|HvW-%L{U+W_haC8vm4VFl+Z^>bRU09h2BC`aIFdZqdBRW z`Z#8GdDRn?E6yH&04)nS>KgFCcj}_I*TQ}Q_#TN{_~INW^F%ss^l-_J#znAX6smmEzAw#10^BVX05Cj zk&K$mE|+h(T$%*y7NG6mS^( zpce&H!wf&c(E9M8yixW9k=cLgX?@EY{xwT=JjB=O9-gpfL4P5H^-ZY(KQV$>Y9|dM zl1{Iw_w`$S{CmoTCyX+Jky@G+mqzM;_Q?+ZB(;U*Su^LR`E~8y{5PpotI&T2QFbFB z^@T#kwS@JgAx6hcld}=DFhq=ZW|;{ZDv>WpBOKAKz_BQ04*vvKMX6h@I#{hbB8&b6 z4f~C^Ho@3vQBpzf1f2!F^f`BMM*38jgp+a9`N) zH`|7%z6_@FVW_C4j+qQ>t!Yt(-Lnf@d>Kkx20+JG`P@Lfq?=&wKcVy^DE+?&4{s|* z;~+ZZ(4BjHy%n9t$D7oRW4J?#ZIW7tSjH5@jgBv1j)r&KXkS+v?QfBiBsQr;og zN$ECh%m8|@;fR1}B{P8Th;$~sjtR)v?i!?TdgFN5V|;7|3u`9NWgtxQ-x$mWq)1A{ z957JQZmA?wJm8nY{xs}Rf=mxg)x&tfiA|i3!o9f+~C>WBa!()+wbX0iCxVsUWs&%;@|G=uZIH@(H!;zhzE zza<5BUym3F`0kA%{IPnMKremfij)wdeF@>hpDM|Kx0kig;>H}ZgOS(eiANWOTq|z% z8_{9WAe%S?jE&M;H0<&hFWbBiMtx$hRz1VgqHFP6D1wk5Ov0Tz+91o#?KIHLmQqG1 zXjz`ilKAiDh`}8tR9hMc-iF(Z$%DAfx*bAp;XnDf4ju5~iJQ#gD^AUrg?R9O$Kj-m zwI{Hjm_6YBAP<_qEFtJV!|uB`8))G;YRyuQ8r8WG!J4{mD!1SRK0Hye%zR${G5xjY zDij~Pv&-mVc!KSG#_W@kyDUdtcX{GtdYU&+9D-AG_cZSTp)z<+ApQoU;;+t*pfE!} zUgd8Eg3t^&=5fYL0^6kqs!gH(OUm_}Mw1^;s%BJAo9M%kAI24~C#u2l=15qFznjP7 zE)c)m{~yz}8UKw*(E_3JsbGAxr3Zz*D+VgdxXPf4nQH2x85qyL;8xF6uOx?8=9&h} zAvKpb0i~bIl`}adN-abll5Z7+a@Sh)f3V+c5A>vkP%E#6;ulQr??~}^ub-2^2&XNZ zRgQEB87z8*nXU)Fln8d3wby5Q8y?s8{Wy9CO?e#*)@C5{Oud5neYN^r{AbtcfI3N7 z0N>;k=c}W0ArdsaR!j^CZ&OO%p#+Cg_oh*84y#>}0DYwIKqpt*!Bc6os^~N9zj6`B zc2Ster@;RLqpaDFPNQ)5QTWlP-3uO+cr?)PE74Gorz(GH5uWxIRD9+@kJfQ+bl*NwI!mswG?LZgkP6EWcU8 z0tPC#uT^y{USnUca*Q7F7B$eU)WjaP9mmbIJkZ- zYJV^H0MMK{(~IR#bD+!T)R0s?q1@*!`Z>=bxD{i;Z<7>DDG?_X9Y)IME)5zjnyb!x zHDkEA?rflWt~h<;U)R-)-56T3;JPC@|$f#yt8N)15@M*{jH` zE$yo$uvYTQ37CI)w?9IwV(u~L-o<5Q)1DSpFhOWZP#R(-|K(Jc1SdG@=z*K45gKzl%8P#Ni7+JHPxAh~?<+JSo0tTgAa_cmqHd~BKscG-FE80J5}ij76> z{kGeK8+{_qL}TeB6>Bp!T)Bpa@JfKVmeRI$OCX&YV5WCb#(tuLMxIe6@kI42r4%l* zCk_7p;A_VodDrQcZrj}PtP zf)fC1FFG+%;?TpDJY;2zrfhG$E3_ACQg86L>v3JTqzpoR6^7aBMLpWu91Hk64I2;2 zdSre70^TV)+igfCw_K>*aQEt``@o4z{pZ#oBiy@(4go!fIt9_!E1DMLvSOsVv?G>4 zc)-761p89sTk8m%(WNR#2|h??YLIGqLS~Drzqf`b&GS#Dnqrh_4#CJgCuZ=+0X?6W z0Ww@Mrq)xSt6Xx<6rSo&A~>$&B7L7Hg!E4)CIkYwW0)Jf{j6%~)U-&u>p`b_hL469xc4+vSNYEtKH9m$3OR`kE66 z##S&0>QzlyZv-+L;Uq@LPa`#eH2=*PYnJgdj~C%sj#U${?oIEia5b;|HG;uDg+OCh z-l0@E?9UQzx@!Y={Y&xu|9}%4B*la8+4m&=TD=0^x+tKkK=O)^A)YoQ=m@0m#M7aT z7{niiY(i;AM9fU<@d6S8Isw#7^BP5=U;rTqXdAd`8}i6b2*%W!Z(kp^o3(!~1L%Wl zQ>#~gxIn?|>$w?+`P!!8(j88u83&TocCOTXEu+=}>uT?a!psY#c{I+lnB5+GvSN@rKKD}#pQ>{FUK@1$K3L&DVgi->rb^?K z@kYbZsI5ulBq;<^f1bXuVP)1OP2(@CS3^nZ&Mv^4<#=!GDmp~($n3A4G+@`4HbL=^ zEwItC=NQ0I-ayLW&z$(KsjrMR{zWjuhzM)E7Z!*B&_rT1Y~l=qPW_NN=Q&(9CIjG> zLpV-oBA_<1K=>=`{)^L46B2}%DSz^*+U3(~u|qQ_-`QM3dMmwc6CibTwu)kQqMKBX zQQhtD@0eR2-{KzgEbt~fF}iflOmfPs`5m(0S^%pZl|7?h0Yzk)4~TL0`5SS2!W}7C zi5sD_NVFf{9tt$El)ljPTb_-`4F0X4gJ#9Xte?w-d&et3)2l^2c?I2ed0Y!*gXXd% zSF=h4`t8ENckpmyA2itadewjL3$tkf{K#lMjphlsekOL3X<|ikm9rEZ^nbBEtcZSG z_BZXE-L=nmo%gbhqfi_;FvEP#jY2ukxi$T`L$u|{hC!jp`fs7BsHjkdF*=VI@bi$wi^=C^e})@sz97#yG}kdoL1H zru#AoKa&`EJ?oT-YAH@8ieMXDRD<1v01dp^UVFm2OmEz1^G5jp%Tk4iA zoH?FS@286LXz8$f$XKW>(hH^~fSgP7*10tWT`O11KOIxgwibEH9XD&~78 zfX71>o*2>kxIGr2f=9>Aj{$WO&NIfzM*n?f6!l_Ch5|R5(5MLmgjgyG72i%K`Bb>; zwfgE}Gc6grhUd4GFzw&iyYT5of_GEnyH|jgF0&&|vi|8;mvd=9u`Ngys&XWm8Hn$) z%>!bDxLK$L-{(ZG8zi$6cnf@xXW`*6BHU^H%e_!IfFZq2=wySc51n`MMr)Z}I>pe$ zSw%->F!HSXpko<^2CHI_eRK44JtqN>akB@M@MNfhObiFpwW>bW?eomydkD3vJp z3A;^;0FX%4%Zhw^hy`Cr z&==e;3xTl%jHkoSbO=97109H83W~hY#1i`&#s|qA=M%qy-8%hb@pa??qo=^#j^%K-?7s&K&Qqxzp1# zF{oALn5On_!Z&ds!v6lw0e9qI6@dAfXFuZvO9+Lr6EdUPFG1j1DB=3dF}^UmqA~i& zQ3j)TJNPLsZ&f`;dq+46ux!rH8(?P)ingi6DfTX`x+8Rn!AS9pY@&0nYXR*Ad-axb z%(o8y)y#YQn%Nuln`mDyEUoOIqij(9hKLc~LcBoB6U}o4^YQ0!qcm3kL@Q@7um@f& zVdn#MI)9(Rm&$)D!YJCuVCUI{mC|>EAd1JQFhQET656bh8Ed_5FY#2l%t&zEe>b|5 zlQ|IlTMGibR_fGE7-C=*S?zz`%(+mP-VmwsgJjYT5=2-wuMe4i`H-7dr_**GrNuYT zELV@N%`Lliit6lBH2&HAakQy@!93@G!2}jQsa=lLkiU-qf))I^4FBlMc4;{fn`A@C zoZ#4*x3ll4lh#zzl(>R6$tVFR_rLy0r5^I5!ocaUB5g!|Ug&QHl=>)8EDiK2-hT$M zjbBa4hhuq;uJwUULSkSHPG@papabo6MjT+Sf|$$siz~q=OG*ViE{ew`8Zp}8!?#&y zwFz(ie(%@{AcfQcYl;*J4DPI86WWJc*rpzoC6d`iA4p0eF2FWb_@CsVSQhMzY<23V zy~uAcozKBHuIdj(VuWZkW`~=sAznBj zD!>Wu3*~GL*z-nXWr1&Xeb4_7{{(!8#_BZB^fX0EA^P}gK!Ze_8vFwr3d?|yVAEjL zeCH8Ot4dpJ?@hC>i~Jw_K&|`m(1T@aQ2YB;VY`1Yr@zN?%qy@AhG8_wR4+1OiOrfH zN2$Aw5yx@;&0lIW0pl|x3w|DX@q<&BKy8%T-}w_*4aGHCTxb?Y^9h|oA+wf=Uq9Y$ zN;pCAr>8s7w_bT<(SL92?fWiVJS@;`K(ye@G`gn=#If}Py>DN87=5QDeJ7b2U_<%3 zJ+*Q40bAd5?qz#5j?^Z3Gl@7CTME1;;cyb#$V#U@x4O%{QQgx?p~2D8cWKW{S%Qi% zWI^WL^GaFHfi3*71vgA(&@vt)YM`b?XAuGZNO?rWi0LiNaR0Rxqt z3_td*V=vYOE$Wzqt-BnYu%hQU`b)E8_r)!4LV|n42$Dn<$-n?b^oJa&4t{t)f`voy= z11Vq~d0Pz#Wk686>l!8Bz17-1X5A}HIf`|E*^-7Wt1v59-S#*{aLmOMH&8j9X{{t? z>u=T$z3{%}VL@bGxh(<>=&>?ugMB7kX|`MoFZhWY%_FUWVqgCzx|=)N>}=E5C-T;u z1H(%pnAqX?Y_WmMHk9Db!)TpT^!jO;lC6DlldR%zH*|ToG)`S)=Y8*)Xen1}X`w|t zt0AJT?v`Ko5)n+T%yQLu?kpYWf=;q*FKc`%Rqh~_`6jl)QcxA@V54KiH7n55pzGke z6Hj1(D?lob8;es}+WpkyTnA=l0gT|_C)CmFraX%4@9 zH$yA4WV_hzvS!uF=00&bZG@bewLe~BFZ7xQz{qE^A^i2U57i^Jb9ZDa^OWJd<@oTb z80GrFD@dzdo`8v{|Mzv+2EEV837+M2No_4F_>ht^^Ynmwc((3rhi+}(C8GWfZ9TL& z4Ulgj2-rJI;Tv;2#`3kCDhuSBU#-P@t={pi+r*bVcuFrq9@esqF1jfTE2e4T?^6Bt zj1wc_D}@u6!mp(OOQHg$Y*lf#I2TFY-!3tJkYAr}rn~h*!Wl0?a4_|8IP)jWyB1ff zEI%5dQ`eI-mX?K~^bK3C;P~VumW>VYks&M!-&3VEcn4kn-6sa}J7Wa6D8;eLtmg=s z=EZs}v){56??J}SioFg{EzF#rb!X8pN% z9l9X_z&_H)qm7rb|1#v2Hak^qw6ihIY^0bh(juMB=LsX;N+Th?9__p}O9dpRw;GE= za^TZowEfXGo|NyvnfVZGa}14A|*yL?369|`;l^e_r^7w$Mt2@98Hyy$~kYa}^C z)J^0{=4Q4oRFW{u%2Y0-LD$`blSfK>F^Y4yY1jCiQFN}sxdW0U61g5bg9YR?9v^zh zg0dATE_DQ?1Lge zBJ|j1tFzPT9p#>R$*?`8Rn*{UX<=IK7+tEC?#RQ<+SYnW*&~uZtPC^S4S&6c-eF!VgCt>+0!=OM3hq ztQLwYGIF-C3{)Q8+|17TxALLxL% z>}PF*@I@U(+e1UGLNCFwdP3E8MpC7zZsaNM+P!i6LPGf*UuvVL6Q1zQVZ6T0+HAi) z#ppjRpJDYiB2}u_`KUixG*L2HZ2a5H0(Bs^2q7#9E;a;E@ucY}T6sq2~p+7FNeSw6i=Mg88a~|XG2liDN(xRStK5u4OXo0uTizS%`1qJ0b z1qGqE7*v?<7IwY1yTxJdzG1gia}9GuUQ=eZUzT2Xl0k=`d(=!K-VEw{F9 z-m7n};^={rXg3#(YD+2|IqO_GkBf{j8!m<{iY6Ku;jF`b>px=?U!aphlAgaJFxlNU zLb8=xd>_Zv^xZq0;MIB3-Qv9mTt2NV-RukaQEm`z>?SeslT6Yk-3r>8gnS=}ij z)ZDA+;%_Fv>-2gL={tAb8h`Kl^zc#D^thkOeg%>EEYl1g4hEC7G5Pyp=bHMPpDUV| zUo>}Py?rfArj$>7(@?m6pQeOCd`Oal7oqIcuEWs{zc~%hU>JWC{KDPuP)ksuc6`C$ zkCWB_{3iI(F#NGk!AFXNw`6Zf8WAdlh?2~m3jcb&Sy?uAP=8TJ7Z^e-iB|8uej93k znk@JvgD{SYnKp`R&S358eu5oYXwd858kV4_2ZuRgObwhB(7JuZKfy)wANn4Tdhnv`!rx z9#3P>E+=c^_9`5-+D-iK&%YDHrJv@nY(KiR#pK4kq{6&hK7IW5(c`!ED%((4 z^qj@yOl{UDlC!h=6!+zk++`Eq3wi`EQqJ&Yap&0laZ*6|Pf7+}5>6t9N656C2M)}8 zab)`pzWE=*=6gdl-Y7B>t0CgZA{IO{?jx`Nc_h@X7S_ z26Cb&f0Xu)Rr0yLW5fVH;tz53@NYeaaO_ki zdpf(!ek}{FjeVv6kd``PaVb*Sk_EToOJv+N1Lh^n+#SlENfQ-f93z@%mAK9Mds@EA zmoe~t+i8UyB~sr5Mh{M~!bSA8KUzEWsY?_ymmq(#Ut|>0a2_#`Boc?*8#hU&+8}X3 zdAYS316aB03l|1(*?YD%q?R&U`&@*BC_6>HAd)Zz180#zyyOZW1fjbIxWy)pLHgjT zpgMn<=4d&Niy`HSwzjWn)9L&@$MzG6Cx$y*^(N9j#GN)V;m`1z4&d;HJ+SNh*eO;i`-!0kqRs29ta)JEyHl2 zNq_h~xwM}jLCj#5l}U{@`R47s{p3;mg4@EQ$8F2UE@N7aZxg>|nvOP3UL8UE965;| zoiD0pj1A{*&fs-^wmxFH&3>@Q9Qpbo#gCac^Qw`0?TI1*+8+@4uLOT{`trljthb7B zTH2ELAwOY)T6+?Y`_8E@p2xb+{Ldd89wYH_U+PBz>ri@@oEH!pGIch&ta~);Sz@cD z<#g|6Q^x0?A1fUQBqXffA5VPOx`!p>ZG-jd4RbW7hbjEgBQ2JeFrpHV!n0ZbBdv+@ z?vY221RBRjG00S9MlbvUie}ive~W*c`>y$~Wk@LDY)oZ^H@&-54yt%mBm*+fC;!@y zlX6kAx1q(DH|{~i;FqhRg-hwG|aBX~pcw_~^U29Jhbi7i^ z|3{PT;kE3f2MmtZMUeAszt>3D(X-9po8*|d^jSb$tQm*%>dInYck5(n4xaGZOYs`_RuOyMRCAwxCO8g+LDqusSGGB_MR#m`(xyO?7{|{*%)ptdN%cA= z`K@acEJZ?MUQ+by0W*E}zh?rI#XgT1-fmkzPKqQ7&+H#?KD;q?N_BW1ov3nhFB@f9 z4ET#Yvr1gFEb9IN8I3821+>Ztbb|)N7M*KvY?DW13+klMt4Httm^DIPABXuGS#6Qa z{r#p#jcIMkDPhCg&8abw-N_+fpYn%~kB>|8*S&3LX=2HI#EQST?RrSRxm_jwrb-&m z>-{rlaU(B{Arh3Ij;tKc+l->=yNg?B=|mqqs&%M8BPBMAry(o)B+~pi@)B_}u%gE0 zw{Kh0Dnh`(Tkv_zOBK4IG_(vwP0h)cd{7_s6ekzr#-J`KP>4cSk>k%JPj|gk8?n0? z8>vd*tl%13?cy*sSpl#!fk4VL=}*C(j^5B=)nMk!4u;j0qyx70B<;cs2r3=b*0ew; z1HXLX>v}Qc%E8Y{88o6PzD!9gK44#6y;9mfd~pIKcSE|+313}0efTVH!lOOc_#5A@uN>|uN(GtB`R$hI=k{;JJKST2{vxpl6!l;DJE zsUD`6S`Z8IrZ*>CJr`e{bFDgFx6|`G*}xt}<1Uu-2e&3pijp)SSt@%PLyK-0@uW9r zBnFFDUv|bpOFi{6@vIPS%lqk1CBG|f#WiEc{vie@VQ*hK3f7?KLnj>oxyc#eSsLxj6G%Z zbi%p!zXq4v*P>-AunldUpX{m`8#4)6_eGwl|4Rp|+T1gdXqLyi`aw?qY-s=HeUmT9 zTD3V#|J^`~B3ux4pTO43&9nzLX1{EwPl%3DlkU_nmle=x{-tL}O?Hjr=0--!A-Ht!}j zx-Fc)7syE2zlH+nCk3~?`Y&%q9YPZ~f|KC)(C+A=cYkWmNpGPsk=Fy|1tT8sYkLgr z1TDmURf{iQI5yj@)3qE-{4A+UlvRY$2y@bjSJMa-!sIJo?lXOV{rcf0DoXucQ0C?= z?KhD~2LNYWw^J_b_~-dl`sQ$qWchuL%VH2@EU^P5lvnuICm+o?4H8L1-pkofi)Uj5 z#$-L0>gZo>)wgeq+?cWBSAJ>mOwZUyde}H!JFzW;^-}oAPpeTCV0BB>;dFt$2?D{Z zX+BZl*4tk`Tp}NfuF0-s4g!J+K87%whBl+ao3uH{c8IGCC8{I|n`d`@#A}b!ZA?E)P(|TkU7iwe3F*;y9S>)o+z^-!SGX5+ zh2M3u%kle!3_zB{c#1b6`F!7ZTQoF$yvQ}NTj^}K)Fnsv1W&K$2a0+Q| zm33;hp1(Cyk|)^Fy!@yM1f$mF<_{AQ9V-+Vi2k96>XY#7bctA4q-4(>#Nm7mJt8Tru9g~DL7n`&Di)% zP>%WHpsRlg`(3c!-p+>SlIYjQyO;Fx&~k`(z+0pdVZ#0cj#aU^c%249%_m#Yy64+N zbjzddLe3qE9K?xUx|hPse#;iiF(4_48M(K=@2*S~ruUtM9vStr=3QX@#onmc%x@g6e(ELbFe7YYWPfCo1 zM(e&g{5$IO(a7<&_aWpxcD4GYiv>r`9G^Ic-tigtr{PXLoy({q4Bp78hP}6Kln%yk zPfPW=f3yU5{X+ggS96#=Be=T!?K^Yq&PO%5Pod{_T($OUqt09~`T5Pty<&eN zYb)NlgO@*D&oS?KE}9v6wqkp&GM=u=J&C#JEb#ej65hZE&g4e})@d)aZD?YDIoB?X zX!IVJrYE{CFPFGjYQ^-Iz0iUng|Mbu@lCl;2Q&`uC@S7m-7)c!lRDm=|8!P4BHsA? znt0CWl9wHFrEly&Pw3n~oBnhA4)da2qGe)Ac9Dd-aCk*fHXzvARtYe^j@|!5m0)sqKHcG zy?3M|J&;fYq=p_KK<;q#oa6cK_v_wyNOpEYlAW1Z?VWecqTdtBrg06PwZJsIfcWrxsJU=vS8tGA`$K2BN z3Og3^C33OnZTh50?6Zm8L@w1RY)*#fFXFM+EcqO7qsZ7^-;F`zZu1~L{4w&MO~Yiv zh-p$iqX(;8Kf=<*XI1)A?ab>;>xZ7}!N>Wv&}k5UVx3A3sl#UMdIwq1Cf#_DO_06V zG%u{c9fMzg+AnczieBZU=id`8hJx-JOdKOrPhZ={H#|<9ZCc)+QvsS_dqzcmv9#Ov zy<@}AoKWiABjJU%8sBPca$qLZbj)W}l!D#K8HWUD*%C$6_^wUEN6^osF7mIKXb~aV zZ`AHN=4vDYCF8}O)>yH|Er@#=I2Qg_^rrjT5(RH8UIEs_xj*n2D*$rI&p0kKcy!wL zwANg?-LsGTqZzb$*u%6`fe?aCmYGHEY|ipHW@+e9TW|#j^EiE(0O(32=C}ioVag77 zcjNp=xn!H4k2XE##jHUPE7POR7qsQyKBjF10bk;6x?q}cgV)X*e=<<&9n}S~r&A&F z-*>-%jZbHiWmaqqVaT>C7REZyVGSQn#eBfmmTl(;QFJu%hsdPudJr+2p#5Qq4GvPS zT$R!IIhP|)OA`3kfxRgq&eORMYWfj#Xx*_}c*qe>I96!H1osg?liu4K9$QR9FEn(n zZtxo0h11}^(${%tH^CQu|3|9prsN@$hT6q^iko%@9uV7xB6nNl#DVL4(I26UY?zp> z!z9D16OA3VK7roAPpJp+UCp!GPE+|;)@j051(`&z0yOfBQ3wo96u;O7k%U%=jSJ%$d^q3XYYC;qg;kFK47mAkp(2g7YCH!Rf+Q#V2kd46+B@E++h?{P3=^kAxgtle+AUVyu$wg zn+SxlyAsC*L5EAWr`k)$l``|4De+z1><0Oi5q6bkdQ$!qie`>We&Qch#tn*$@KLqi zstW;!U>=;wY0(~J4zB`dj3l*IYoSYNx8OQXZpWe=T=9tygVm24#Rn>{41lMSI@hBVV#!q2)fP-a|Kfd99LbbunFn@9Ecwvf;rp6#_W9Df0?Zz+b6?xje4aZnm z@E9kKRl^y7Q$9(zs3-Q-61+&6A8xZNQh1uEpNWsj+8)ZcIIuhyO&xFY@FUAEx`&O0 zV^9}{>DHXMEcH&Bt3K8}{Um~cy3+k81Lcc>Pe!3&FZ7g3Jy5&F4BbNi9x5EbyKy{E z&*M|u^@z_$LMZ_Y_;qnqNQ%%mom+G5?!rT2Rf76_D;VjwEEUp;pAcLN;K}WuvEfk- zoDIdfNA^D)b7PMX4GZ3{C3)UX!5rNWLV~PJD7C;mh{r5Az#A4$zB!)RYwiNCM2iB| z`Kf11QPHt2CnQJ~7KlA4Sq`peP72(65KgFx`Zm<_KFEm%uMa466>5}&YN)b?db-($=mtJA{!kdv3eHVp3HA7 ztz9?&{z;j-o$SiBJ#zrp4ru{>e;WU+8MFHxFPnUX9T02uA6)n{1J%+a zlsi%!Ka@l3Vcl8{$M3!@#3K%`*7em%SRO)V)6M0A>~`+tW*(c&MxrSo;=~p?DK;1^ zN3%VK*=nCKP@z#X+suitf?}Morh?f-QeQ^#@!7My2;>xXiQzt$q@tG~Y8uCu)4FV= zC$fe`c+BRdA%K&!)RyAYX6m#8O=o}=dq%mDIL^&x5*}ABuftorKe5N2k$?)SHj}NM zPC)iKN|;C9KG!{kEu>7(uYFlKZ`23{Yt$iCL8iT_D$TD zyX0mLC*H`Zj;RGl?8?~>*DCksblLrxEW-!WZ0H@P_C|u=dbYi$ni9i68fR!nN-k~M z(ee|)_86c9R@3Ujz%(u_l5+ zznrVnIF4=1&VL_Noe4H?e@i2QnsNknXUn_tX>`g$LV~U{@<3AKLK{d3p=5YnNXeIg zkuyPG%@4B>zXf4Vka*I^19&V-NdYM8hDJ+RIdA+_)_dH@%MWG#sRHM~QPjfVWr{9p zF*^R#hV_(|$Ctbw7yV+)7%SLf(7*&L+eEJEVQ6F;!U5h8(ct%p=g#|P6IBradO3ZQ zetu`v0wKb5PETlThvsv6A9qtr2}DAE>X`QAn2-g#Bx`cGEJwGmu;@Gff|Q45 z1>ZlGBPzGkW7cke=^@2d*A@cMR_St_zpyB$rDx>iw`Zw-$oYn*CM5zvk*N!0&yBbC zHhehX5+Ru>vnf#TVT#zm^szrxq*;k2mBbFI#EHOx*JgBjqb-zU{d?tds1%YRYzmk9 zFxMwe%%S(D#6Y^X;Q&94y`c4>s;ysSh`i&uJl!A+66z4Px_sc}#;n40rcNUh-9_Rj z7R7XM|Au6M^F{4n#`F>T-gWR0WdswFF#w%ME`F)i;F(_wh4}hrJlI33$s9>Z`t-tX>=+wn zRuc0glb_~>dV5gc$?J$Iv7>C1uLI@OU#?U7kk{I_WGprz6t{q9Z7oh}F|AeQ$`Rhc@8?`k zlIUQ}?z2Z!YDtCIY6n$6H&4-K_y@utI2I=(#Cj#OTIk}{tuo+l+$^J0{Q_{E$sKwg ztm_^`8}%?edWlV}<8@mecfKiimeR1a;lIjU%gX+U082V*KC5{L2HsR-?n{x|i^-L8 z@1Sfnxe0}+nTRKfc?<5TkRWs(lOp=`cq{xM-6JGG*R~DafC-I_7r+XqBMgjl= z@OP&t_uSsH-}mX-lv2b)I^E8v0|?TTGwILMKjlk<;@1j_o*)9zW-k{S~GL z_+v{b6q(1^8q`EV%IRFq#KQlladc+DM z)6X7YkR`nQ%3j+mH`my-{6X=f1!bJZ=mfu(WrA)-^YL(b3mBUv`U59oh8q@MqLW4B zdY6x^g7C|?tM-h<@f!q<59Qmux8?QfxEFg19&CmpTw0)F!$|=*cRn`>`|B@gl~agF zF1O}8cF=A9i0M7UhKm@9zd2Q-bgh_q)r+HzsK zlT#rvmkt)VjfR-qR@f4FaTk02(MaJ5^50+$S*XpEtTA+_!=OLd zp2&O51-ImXJk`~}^tL@zX-BUb%qI#EBR+&uPtqZkr4+_CG5rW(I4= zeRTNXb&t8nRouIkVo!Lk9lGabVgKe+6`uXXkl2hd!tgd)J7`ihKlUElz*f;yuF2LP#wdjZhryMiPs}$s^ zf%@wMvQZBZ;U(XfW8y>;oFpYM5=x0U7$hb!c#x%97%s9ayUCLF0#3YrejO>_VG3iO zzr%!kRPU{hO^~C}w7bmXDb$mQyABhsPe1x=km$WGASr02!p|yi=hsgjPeG@ST9p^f zdii{b-%;&Dwr#V^<4(9#e*rC#ADhWE?^Kd@j~ooU0z3VQlKFyGWkf3ilNRvxiSF=2 z>Qncf&4x{!F2^ODM^etWXV+m{DoIXyr6r-EX92+wrD}v5!W$3n9uyVI#pg?3=6Bf- zb7K3he`E0Ds$Kzu^DxxCEPXvUlj&lXN}FRZBp9O)N#3GrBy`(l!2`yuMKQVLsPNZ|M3-TsC} z^fciWF|1q^l?1bZoy2@uH#j_bQJ$x5G>QJU5@T>UKnOW)2s2rt-G$Tp7rCW*WXOrl z;%xVn&bxnKik?{A{j#pv2faFzD7)(0B|4RL%-yp0@ux(sa13(SJEy96ET0Z{r$jKy z5Ej+1TgsqF;v+p$O6G($nxLIr-6RMD!@J?M zMue;|T&t;0n>z`2t=&X!6lSXd$)Z`}9*^Z@O72@S!A* zXmaWgvYOV{z0o2(4on%y`kM<2@%H+5O@r60Zw8Q@W8D~ir_mihFNU^$Z+Yu*xL>+M z)Uc6vnoP+hU@{sON>=}-^UEINhx+RCRq$D8R1?!X1}V-Y3x*bh!r=gfQ5b3=m&+;d z9Zd26%{%>TZhYnZq$~%Pq6e~c$r4$}nRb5oo<(QVD)fB{xN_~JB3M`KmM^^qazw4- zo)9T~5_@*zeUfgzRvO=xEG2E$h}}qjihv!jjMN=_$gow^S~+$@HA2Ft2p^xlm1jPO z;nPk(C0WhTjx1A6;}+bGT^NbBfnXG`)0{Wy@u@QD70JZYkIYdCS3Qq!)tqC4*ZWRi zYcTo#ITWZ$#?e{~PI`l2C`JOMxsROeDK_O4o_YViQK>V`np{c?rDxK-?@zAb&Be;I z6cTC#ug%^mF;9jRb|?UpA3Wpkp0%+zmP|Fhx^s$lM(6ft9K9V*l&s0_+g;up3)W-d zCLhfcuQjKxYUp&VIz7r>a$uUQ2ugm**Ppk)ax#MM?&k03aFE(g$yk9GG}IfRs8$m- zFjaCsa*WyW-p55%4@^i&E)RQiMM|xBY7}kc)vqots6+bmzJxvQBD+XcMVHyYLMOI0 z_<7@wyEiV>)YEY^SFEx<98FQ(T1sVOuZ=aFSQ_7FxcYl)bQ=*8UBX0DoM4)2RC7N& zoy6kpb7Fy=vGiG6eQPC}#a$wf2IV-pX0UElTGL>Kg{e;*fW_ym+|iKjj_2YxR`8sW zF%X-eR1nEIk%)M?!`)>(&D<{)%J){jVB$u=oJf^O{IQhQf*Ln|DzSNI*yF4$$-nJu z8-PRuVn{DOfz50)wdTV1hK+V<#6b07%Ae96d?#|Mi*M=SJ&BrA?b@2Bal`xi#^v<; zq0+n?^^pC-J$jy5ZhC$Q-0kc%c=x8Q?MGLDg+_)5v~(a;Z3CO0Wbtj3{bRI!+TARC-S6m=bT^SD=miBrAbH(QQrZ`{G8;Y<7+kOg*RPaG`s)i)9w>*;|=kJ9I3;xOCOQmXbw7 z-?iq5$biG2^5Sc@(1pPk59EATTOcO49RWO&q2YyAdNhn_s2Bu(O%wSBnqj=r;FgCGsD+j`y{#aPxbzJOm zBmb+E(J!N)qO zkGLKqMHMb_cYCTzYs4VHh`BYW0ZoRHK9yh@iLP9DrWdii^`pTVf6h_rGchuXR{IaR~2wR8A7YE zW_M^wy)020v38Sk1RL-sP6Me|2rdjCr4ppXiT?bdDcc(hv#vuyj@;zg7OOfj-l#A91>tW~^WGGy0tl>`DwO z3s+7rbNboOU-cm$6j+3Zxl%F*Xz#W&?t4L7SW;trMDaK(**ND{$VGVWe~O_xR^@-I z_Ung)1<*~>*G%o>UI4Y{Dt5RJTqHt3udYN9K1u@2#|cIGqO_CrVpcQ0dpG$UUN)s{|1;a>js4 z!~e9DO1RH8P)|JSqP#*d>c!QKqg5cl$`AZp;k=an>0ZSvQ^Q~F#`M*rzkkfTju@c& zd2`9YYcSV=zUzw}(^$5T&%Sl^;EXS!5`ka49*fREQzRUn@r_ZNnvwm4KKnHC?Xq2( z#U6r!r-5?B|2}jz8PuXcxpAusJ7r$9FSx*~bST~4O-J&Ck5%??kd z$8??DHwz7A>S*w4pJYW`GQ|&xo7{LLLkQfmLdAzy1r(;axXcVZJbF0Jo&O3vWEBjj zFLJActzn*Q$aOtiKl9JR>Wqw>%20orS%al|Zx0sd^v^-FyN4|439(BEw~s4R;>ZNC z5zQ8Q@lmA}L{-V6`zy95SK-K5&E}O6yFSrEW4UQ7^|1k|rCxp-LLnQ!eEn-uag$ef zQs-u;JO$Fdp6^pX)2gtZu1=!48s?-FwBwk<_h|*iAWGx29o=%RBjao)K&oV;*68!* z?@k4+r1T#w?Z$5*(?aQP6LjOd+%U81j=q2NRX5op_m{RC()uM|A|{d~!a~@zV0}?H zyu(KSn{Ua3=XKw&dI+`Lxz;7=!r_ZgQs}zTDt0i$p!W#t)z0qs@G6%g=5(Op7)w0_ zgU>5Xy!iBKRX2*LTLMWvI3;;OI~ldz1*6|`SqRboE|Bi z#-?0t(9I*W@A%_7%Pgfox0E@uNNm4xzYev$R!%K9S?Fp}z6@d`zx&Mvo3!|GJitWxJ~N$F396` zH#gHDjea=@osW%2Z&jpNxJ_c-YD_4~i`%d(OrHkStP<(n3z|cJPoI-$ABU!>4M^{N znN$qg9L*E_7PjC*vEP@9cbPMrcUBSv;HF~+^mWSiylMAp?^wyx?a^aSbwf78=nf3L zC{R?I!@BwJ|5>C3IxzC`&u~Z}5$8H2ai(=jOSA6;^Y`b93EL!z=GWbr`tsQ9`LQG_ zfq2ePqcNTDlOmwZNhm~HtgCE%Ts*iOP8K1*B1DscB0yV z&KJW%HW;XLx4T9O=F?l0IDW1g#U)SZIUjT}QOf}BHgY>bWRSK$@kvRqX?)@ds9=*u z76(ecJL7_IG^cuFs>&=ka_f2*|GPIP!f*6S_V=<8PayA;5m&C!x)Imum3|JjXD8Rg z_Y4C?9Su*tb`X&d<0xHM?4mq-ZmsW1W~LlNmHb?|-GQc}gPI+`W@JabVJ8j;hup=q za?PkA^m(wSo$`t1(;obgan0UbB9ov2>wcr4I#Pc$R8h0+o~BKVkVf+KWfCyK0_~ zo(lz9axk4D;Z+n0&QC+k(QWdg5;#(ai{tB!!{JkoKTbKjt)bA%O-LW}d_=u>ugf|t znODy5PL>jHx)p>z*9m z|8`S)r{lUmG35$9y2x;pqjE!RN1V!r_kMTe8*y)rE|!M7M;0)JwS99vHgk$ZujlH? z0lyLA4(PSrc-N3>w1Vg%)ezyvt*Q>asb%9PhY?+bpb1g1>-7DJ^TJ?FV|kHo&1h34 zDF84y_dk7pB4&h>WKfe=Vv5O{x(Dy@UF>AUMUCkFF*Srzh zt7>v56}6|jcn#@8#FS^F*Tr4`W+Yp^4jSQrm9Lv!PkJM82XlJT)!l8p*ps+*{g(*; zWdm9VfxrY0OCJU&lBPyoL{ca?hA7S0hS}~WB)@@*|XDTKF-RQL|-ZJ@&>pWLUImTudg@A70`9 zwf`32lLfSVkByN+&RC$0aTshr=0}P+GI#Y$1|bU|Q%s{Tp7ha|U^zBMP8E^2$Y7Rn zL;*cOC-S6@ST!24vHlyDSj+F;9`1cqcq}xU6bX=5VX8-kW?v{B{kjpof3K!FS041!dz z$%UH;cb4w4UP2Cb4PH(xgi1}!Mj>eGX|;7YYtx~Fl#UFP{N_ob$p zrWw1&VpC@S*1>~`A8T2ySXdX#6=Y?e{u1ua;HJSkaW>2`3mfKuFoV1Py$DOt5IrVg zK+~Yj^97(QH5=g+G^lhPT!IX+uK-D`evbYcFd{~8zLfvTmXk-o7!|MX+LXCA~V zqWCJ(bk}{Zl-q`*i0=Q8w?UAFOW@!V-hIghkTX5U^MF$frYk88kec5{(Y|Y;d1szJ z`e-3Ov-Xe~(pVjhQAv`u*SKs-$#PMzTHti>5D-mjYH2Y${b#)vQser0uBgKV$*=`{lV>c&*p=C7Zd8!$GfeMqQ^P(?}<{+n7EN$F=gdtEXqM)MhiclYIs<~=tK zwmM=+Y3|w=Jd45fV=j1Myom_rCDkG+lk}ekU;?RG>sD@uloYd`O!VJi`?_r_ygVCZ zzrXG&>s^`j;oPCO#o^xzN?I@K0L%8X?}TTX2xrS7SkI4z!H-76tRTWY^LXFf z$9rFT3GPV_cki%H7LuuPvD<1pTbgp=U}9?ZjQRCh4j)Q@r8xs$PxcCkz4vLriXLO3 zAvP7c^xN39Fm#k6=&w+4DAcJ4L)qOA^UQEwB?43d@YTxu6y42&POLz=2BM*F?Di&R zLKe_}g;=zYiK!7pN#%A|qz>`mJ}~PNbAQ-*e*z#9c5rvQjjH!ZzxzpYk105G3Fv*m zMz+m>lj-}aOKtmmdeY2${ywZAhtXdNbMhn$66*pNRmI=6qBm{=Dm8EpHyaL_KS`gk zjYC5D{C$mrfL1|3-u_TA6cuql%zYMsY6ne(XN0CgH{RL3)gqmWc1g=iKqHys_=L?N zlKv&!pNUSGFk6q}x z&RF>zzlmI$sqh6wy&Qd@-4!{F%V+FPGTJv*Gk5gN)8Bo9Si6Zipjv143{@$HgDw^` z%%I$Ojf>H(TeD!iBs2})SsmEvEu{v|Q0<^kCjOr8 zO#t{t5~m_~{sY;ui6Y*U7IrINBa*E&tfWJ z)B{9)iFv@+Cpe?u4^}yP+1|kVJ*CaiaG$QJ~!B3Z; zE42_IJm2ixPBY`u;W-TQHvZJVvYAN%cvmFGttqIeHb*o!mp_|1?15>mDv57unpJBo zN9i>Hwq^KnCtb>H$oaF%Ruy4nRZIKvak>-DY0K%oa^js zpD3X3TeAi(Yy0YD*{jSKZj`>H%Q*IGK0IXZydj-FQ0;ty2z&>;&OXhaAQ-skJ@lVb zU&p4Ab@(YIs4yzN`}46Q zqRc8(J5y1`&=>2{ahJweurA>y@&XHhz}HC9_eAJyPP=RK$pB!z$sw3v71s z_D04A&JQWt8+ceOhoYPMyq*q=U69H=UFwWiHdw;amnLby`_uO< z7X#A4zn2t>Q2kkhJj=EyKYxuV&p_2}TI}xXm?iTw+Xz6cw$WeRN*UZj9+molSA)IIo5}Fv(z^HqrP}98C}oe zXdd8D^<>=$tSm+$JGgE)bKPdF^%UL@qYH4|5J1z3E7>)LL3HD=3QBkxiC2Ag`%B@l zTn<|O>KTx&xipXw+oADUWwG)eVf4`+9$;kr3;k12Snx8+;GCf43Z6WBsZkNG^Z-!@ zqeV_>QWvckNX8bb|~QGd6s+VRPmw;o13*()F9*=ACdjFn5WoGRC zzh2=PcjuuJu>HNG7uwpGc{26`P?OOJ*R@v#4f#iUI_J<3s-wOfX5)8J?Fq;yei$N3 z-<1^+@ko$CYP5=|fI2Gb1B#kc@g9@z9RX8QL25f(M~tB#-tF6D-ub1&DToFH9u*$W zAR2c^DJt5Ez`?{M;fC+zQZ^D+%Io>J6q(KM&50~CfutU%pVdw8iKWJCgcoJqYQDVL zd<~s9yXgIxV&4~cJjiXrBFX>LIhgkpXpG3~<=p;>CWuJU_ z3iRmwkQ(Lqqh~LfQ9&(>{7;ql$%BmM+pCut_p(t`Hhd6M$sK_rKJH4rtlH{Qfs!}6 zdv}65tNcUPMnvLcOzJ~bz+}V=4&F2OlUK?;SO51y79_e+sV4$blfRvNXBZ!opnjsL zxSG4t5BlTNC$mtcIq8GuPBOfn?wdDi-AfXO4W5PRTlqnz(u6R%Yq(8@b*36>QSL@h z4Yb#(__GP`W@Z5{;LKiQ;i3&Cs=ODl&+Bz69?^REwDZr_$}UG z|J}1DPs+w-W;MnIzxlV2MH;7$WXEC%o!3aS8(|?;9_y6m+HDPQKWO!Jh;T`INqUr8`Jw7`Jjbr)O@z=f95cVIZDutQ2 sf1DaB5dLx27)AES*{fT0f1F{lAG5%{?)r?sJ$q8&zKU%AT|>YB1MPNc;{X5v delta 62239 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 hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -68,8 +68,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -81,8 +81,8 @@ pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] - - + + All Connections @@ -94,8 +94,8 @@ pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] - - + + All Connections @@ -107,8 +107,8 @@ pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] - - + + All Connections @@ -121,8 +121,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json new file mode 100644 index 00000000..ad9b2567 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json @@ -0,0 +1,75 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "All Connections" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md new file mode 100644 index 00000000..f0ad3509 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md @@ -0,0 +1,23 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv new file mode 100644 index 00000000..daf246eb --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv @@ -0,0 +1,19 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],"TCP 8080,9090" +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],hello-world/[pod with {app Exists}],TCP 8080 +hello-world/workload-a[Deployment],hello-world/[pod with {app NotIn (x)}],TCP 9090 +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot index dabeb044..e6e6339a 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot @@ -11,13 +11,13 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen"] - "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png index e7bc45f7c11e7223a835a11165a99707e50bed0b..d2fbe62ea7e7b579ecb83d30ab1dd1777113f341 100644 GIT binary patch literal 52298 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%0DiZa_)bz%Qacp*UWoSZ*ZlfhHM0Oq+ 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

      >nqETt_io!vjJ zuvGzSmTVFpM}9&EkgQ+)p@3R5G6HwE%bUQleAH{?|1|+;dGuj!ikz@B-bNUiia7Ea zLKd^t9|LY`*6h|ocy%fcE;v;}Y;h*~fA+p}eLM>E6$Oh|Jdy~7eEy}Lb@nWZOWs@~ z)2jY7=z4keWj#-okb3`kcP8}{;HdsuUydc}+{Ok06c7J=cjj-|4Rf&I2g9;`+hdP3 zSLDrau(VXwze%0)uL#$9nxXJx5;@QY1?B`=9eoWcd?{ypUev{al>}CLSMUaLo*fS& zwKm?DumygLAv^m3CI1qy^%FTrIaIoomPk!gmeFQJuK7SfvMA2-(K=Nafy+GltV$dp zZ>=l*T1VD|oeFe!&V@x1sn&-5mpLb+_UvcWeb4r4283yxsS|-p9gtl^LIYpl~&VeC!>^;d-{=bwSV7vb>MJD7IORk5#I;4 zN2+i9A3VA0Dj!w55tVyEfDplzp6d!9Ra?tZ%sc?%Fojosa8Kr1?-8Btnh?tMDe zjNmO8tBior_50oef*LS70@vB?UGdQzVgp_aS8-d^f0rl%hR9ddH4$qEb{Ufy12@| z@BsefTBu;yYt`n7&!5jHupWPL3t)U0#@58DIQN2Yw??n-Y!`hD1xM+`H8q->tG=GCrM3!kGH&RFta4*z&ARq>T?So_!?H7HP&aPO)+Gy^N`;9ONNM{8`O9I z&V$B!ve8Cnc+^MmpQ||$&ClOx;T(hZ)f}PC8MaT7zD9dQh6i<*f9eyAfyGxYfCQt* zP)`3`4vmjb>>(LR({7UDjdx44#iULIR_TEQlM<&^)1m5(H^`@Hv-?%UT* zo+hLB>Ghwyd+Jtt>tMvFPeDJh>$*OCGNA-r|AzXbDgWa~Y;je_jBR2YdUh}`++L2uM8$D+~)*6^S8TGrYXGzNmN&txAj!X*}vjr81ct0NgYLxsC#5H@E9L<@|iNzAyumFZ#-*+xLR>SHF)} z>xdZ|mS23NAlzpSM*sNC!J&5irFR(1uE@sFE2!lFDv?s2kFPd%fQ2_H>Xfufwnbaq z^Zr&&s@FhzK3?yr5TKnCuZ9sT+kp88fIz0mDn;(yrWVvGKQs2KWc3sy<{q^+ z@)`%u5kA18pOk_5it?;@+NSuts^)9M->T{QR^l>Ei2Cw`Rb?O__R52S?m~@}s?xt3 zGzChLhK5omCdnorgbbvvyRx`--H4Nv5;?7G@8CNO@wLljq2<1+>etGKN<;nMl>yWJ z6lH&XXSHRre#Wug`)B7%9Cx^SUejn2=qk#SGopX=m~vpXHZ8I}*z?oqjg8ggeP&q$ z)wbVCIg7^+tx6)o7b3b^&6~oaS3rr{ex1P?AonbF-1&K!$LWfCbka+8>mv=noJ#aV zfs02RZo@#~^ssi{jSOwZ1l_T^@!;T0q~M<7Ye)!2uia_t^LX#e36fZQsE0Qn-*Nxm zyh5%Uz2}TQ$}bB)BZFbhsrIdcD(P(hA?xC18|edFxIlbEe2N}dXyno<6BBi$zeV7G z?jQP$0K0xL_8q{$a5?g8XHlr-bM|Rj0MB9ITc}u hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -75,8 +75,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -88,8 +88,8 @@ pod with {app Exists}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080 @@ -101,8 +101,8 @@ pod with {app NotIn (x)}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 9090 @@ -115,8 +115,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json new file mode 100644 index 00000000..bb85a57a --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json @@ -0,0 +1,75 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "hello-world/[pod with {app Exists}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080" + }, + { + "src": "hello-world/[pod with {app NotIn (x)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md new file mode 100644 index 00000000..f33383e1 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md @@ -0,0 +1,23 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | TCP 8080,9090 | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app Exists}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (x)}] | TCP 9090 | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv new file mode 100644 index 00000000..40bd2249 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv @@ -0,0 +1,19 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],TCP 8080 +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],hello-world/[pod with {app Exists}],TCP 8080 +hello-world/workload-a[Deployment],hello-world/[pod with {app=x}],"TCP 8080,9090" +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot index 87d82259..59318f9a 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot @@ -11,13 +11,13 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen"] - "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {app=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png index c95b672b9256f3e9ae07c5f1a6915ae5a235b61e..cf7973987d0f99da75c1f573c9a3440504748ef8 100644 GIT binary patch literal 49808 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 O&%aie^xs(7Um=y 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 literal 51357 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 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg index 979afea3..3a49e7db 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg @@ -54,8 +54,8 @@ hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -75,8 +75,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -88,8 +88,8 @@ pod with {app Exists}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080 @@ -101,8 +101,8 @@ pod with {app=x}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080,9090 @@ -115,8 +115,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json new file mode 100644 index 00000000..0492edd3 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json @@ -0,0 +1,75 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "hello-world/[pod with {app Exists}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080" + }, + { + "src": "hello-world/[pod with {app=x}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md new file mode 100644 index 00000000..91c4141c --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md @@ -0,0 +1,23 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | TCP 8080 | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app Exists}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app=x}] | TCP 8080,9090 | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv new file mode 100644 index 00000000..0664dbfd --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv @@ -0,0 +1,19 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],TCP 9090 +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],hello-world/[pod with {app DoesNotExist}],"TCP 8080,9090" +hello-world/workload-a[Deployment],hello-world/[pod with {app NotIn (x)}],TCP 9090 +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot index 45a3a130..013735b2 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot @@ -11,13 +11,13 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen"] - "pod with {app DoesNotExist}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {app DoesNotExist}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png index 60a175d89de7b3e38e3260eddd7c85149f04ad68..6749057602bff56d96bc2846551d976b7b6f7b54 100644 GIT binary patch literal 53654 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 literal 54584 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 z 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 ycR6701`Zjn)>^p?G hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -75,8 +75,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -88,8 +88,8 @@ pod with {app DoesNotExist}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080,9090 @@ -101,8 +101,8 @@ pod with {app NotIn (x)}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 9090 @@ -115,8 +115,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json new file mode 100644 index 00000000..8835af1a --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json @@ -0,0 +1,75 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "hello-world/[pod with {app DoesNotExist}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + }, + { + "src": "hello-world/[pod with {app NotIn (x)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md new file mode 100644 index 00000000..74ee94a9 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md @@ -0,0 +1,23 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | TCP 9090 | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {app DoesNotExist}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (x)}] | TCP 9090 | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv new file mode 100644 index 00000000..54c76260 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv @@ -0,0 +1,19 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],"TCP 8080,9090" +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],"hello-world/[pod with {role NotIn (w,x,y,z)}]","TCP 8080,9090" +hello-world/workload-a[Deployment],"hello-world/[pod with {role NotIn (x,y)}]",TCP 9090 +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot index 174d5e24..ce2c1d9e 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot @@ -11,13 +11,13 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen"] - "pod with {role NotIn (w,x,y,z)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role NotIn (w,x,y,z)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png index 55dd81bcfd8592bd2881dcdaf7a8034d74449890..49c42a3e72e3d63f8143c3dc6a588e4bf8281aae 100644 GIT binary patch literal 53573 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

      ;~i+Jd(4jkCg5_7a4&ih7YH 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 hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -75,8 +75,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -88,8 +88,8 @@ pod with {role NotIn (w,x,y,z)}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080,9090 @@ -101,8 +101,8 @@ pod with {role NotIn (x,y)}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 9090 @@ -115,8 +115,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json new file mode 100644 index 00000000..f2c13fdb --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json @@ -0,0 +1,75 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "hello-world/[pod with {role NotIn (w,x,y,z)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + }, + { + "src": "hello-world/[pod with {role NotIn (x,y)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md new file mode 100644 index 00000000..372f2a5a --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md @@ -0,0 +1,23 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | TCP 8080,9090 | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {role NotIn (w,x,y,z)}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {role NotIn (x,y)}] | TCP 9090 | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv new file mode 100644 index 00000000..8523f02a --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv @@ -0,0 +1,22 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],TCP 9090 +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],"hello-world/[pod with {role NotIn (x,y)}]",TCP 9090 +hello-world/workload-a[Deployment],hello-world/[pod with {role=w}],"TCP 8080,9090" +hello-world/workload-a[Deployment],hello-world/[pod with {role=x}],TCP 8080 +hello-world/workload-a[Deployment],hello-world/[pod with {role=y}],TCP 8080 +hello-world/workload-a[Deployment],hello-world/[pod with {role=z}],"TCP 8080,9090" +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot index 21207bc3..a37261f3 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot @@ -14,16 +14,16 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen"] - "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {role=w}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {role=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {role=y}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {role=z}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] + "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {role=w}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {role=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {role=y}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {role=z}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png index f6af1105c2a217e738cdbfc9c999ed43bf1e0ba4..b317709e182be1c2c1aa98d058a280cfd5486620 100644 GIT binary patch literal 67961 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 literal 69936 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≪{8<>2F4tRKuA_WACe25i(hHMBvcC3t|2pGC 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 SC@&!3Atfd!TJrAmkN*RJv0j`2 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg index de25572e..7b88a628 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg @@ -54,8 +54,8 @@ hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -75,8 +75,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -88,8 +88,8 @@ pod with {role NotIn (x,y)}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 9090 @@ -101,8 +101,8 @@ pod with {role=w}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080,9090 @@ -114,8 +114,8 @@ pod with {role=x}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080 @@ -127,8 +127,8 @@ pod with {role=y}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080 @@ -140,8 +140,8 @@ pod with {role=z}_in_hello-world->hello-world/workload-a[Deployment] - - + + TCP 8080,9090 @@ -154,8 +154,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json new file mode 100644 index 00000000..5f293b94 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json @@ -0,0 +1,90 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "hello-world/[pod with {role NotIn (x,y)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + }, + { + "src": "hello-world/[pod with {role=w}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + }, + { + "src": "hello-world/[pod with {role=x}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080" + }, + { + "src": "hello-world/[pod with {role=y}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080" + }, + { + "src": "hello-world/[pod with {role=z}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md new file mode 100644 index 00000000..ee412809 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md @@ -0,0 +1,26 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | hello-world/workload-a[Deployment] | TCP 9090 | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | hello-world/[pod with {role NotIn (x,y)}] | TCP 9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {role=w}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {role=x}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {role=y}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {role=z}] | TCP 8080,9090 | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv new file mode 100644 index 00000000..3a0f4a8c --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv @@ -0,0 +1,18 @@ +src,dst,conn +0.0.0.0-255.255.255.255,hello-world/workload-b[Deployment],All Connections +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],hello-world/workload-b[Deployment],All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],"[namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}]",TCP 9090 +hello-world/workload-a[Deployment],"[namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}]","TCP 8080,9090" +hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot index b64ede9a..ebf09d32 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot @@ -21,12 +21,12 @@ digraph { "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=0.5] - "pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen" weight=1] - "pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png index c629e9cb441e8bb81e2e990b40d1a9247e4eba4b..f59874dce0199d7f8c18f0caabe5e265a3fb23dd 100644 GIT binary patch literal 51707 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 NsGhEl(c(FE&jrG*9k0z1f z!so`=T_e@9FXGJ%QDmHSI#n9y*!fu>6ugKCm>y}*tGf16p@ni^dPxa+AP6W_nmC$l zpI|Dlqe}@71YQ|cVFLRiGCBJ=x*zesIFh&@l_j;MUvx+snl7zjVojG6J)4r>i9l{K zLv8az3LnY+X-}F6T%BqL-=vcB^6VIQ`qou$10G`=d;%f@f*WW>?y)}VE2@kwlhJul z{;{-RNOW=LyS!ZS+3f+RH$g(eYz+b;ERc;jI|JoOl8o7TMrxPMXA2QvFRRsw<)`Q4 zeWS(QYA2}Ec%A^ZKHO^E!^VBJy-H)-G~3`RuXzWESZI`ZHLx=XovAtM$OFp>-03gX za`94ZC0z05IEBTqImSq$*Cj~IOTWe#yPP!ymJ7GUeDRzE1L{B2*_98zC6!b>m3In0GMb7RPRH*c0ZHYy z;+xux-dr@(BS{k(^crX+zL6xqkdj`%210|^eFAoy@HshlC#`NfM0xoreMJ}koL#$P zYPE>PDnIq!X9?Xbd%Eqt8%hlT)zw}%(cVyJn{|{Qy*_$mPH-|vS+iU{UxYBp{QFCS`^^Z{KmdgSpGJ&}HJcH+|e2#IrOuNR#^Y{|@Zqta2{7|LV z${iHtyiWw>D^*B)Qj*k+bB9ekG|G7vOY6>>kv0R=BlzbFOyhrYM~Pu8Y|fg1AEf@y z5S>^|ru^EsQhvT;JiqQZ>prg*v(rA%lKRz0S6J>oBi$=jh|eC*sdiKE%kpQHsF zeJCV8X0vq>wKZTJpFJ$BV1?m2{?*2^*F+5Pdi1)vznN{2=X4!O&aj@X%4eaKOiVvK z`~8vlYDM6;r{r&OP&mj8lT1}(exUK%QiFh@9=su7SaQ0vXm&+@T3yTQmE7@uA=C=} zu@yQ&06P(ntDGn4X(yg1i?ExhxBU*)wmqV}?W@q2=Ht#^32GI34SiK)-LNoFD?VYq z_t2my69x*b^$<$CL3%$cX#$Bq)!#mM( zsjIAG?+PMuX*-XUlY66B#Ore-8FhD3NITsR|1O<(?q)40uv9Zer(CUN_JE^3X2qk} zZ!{mAz({4B8&}OFyYiSj&9OzKeX<`WSdWNu8IkKSi_X&2fL9?#t@WnWhspD$ut*%;|-vSg@L6 zYB$OU-L}@8w#XRsH=?%A#b$o;Y)2qBzsGRvQjU-){w!5;u zyAxx@LeOvPtI(3~3@bQ@!`tWk2=Einw$wG2<&+lHX{)YGYps+`iJKa>IaPe{cI{V` z)!$dzQReaA->>i$0OA@W#JYV~l@^>XJN?95#r#ogkJVg+K>~~EH@9k=+Xh`P4`;u; zw&{3!w4K?FkNh^feJosg{&26IsEQ&u7oXv zdkS7WYC0SlPF4OcvR;5Nyf2b%G-H7(u9okiW_Edb!GtyTEvbJv@`{(=K%D(H-Bo#c zSKYm2{wMq0KdI*d7Mk+T;{URsT=y zjaP7JO-)~EDP+2LvJ6Lwfym`R9AN5pWR8S8>lLg~M~E|)+Y8DvJs#-Znop>CdJ5W< zjTT62neD!xGU=+Y*4)`1Zquy0wwW_ntSxptH@RAj-E->Po8b4ok&ITM&Ek+1@NHvi zUa-pmlTSCX-5knQ5jyW$@t{wZ#lQ4)cjCS5S$!G+X8X;2r1Tvc^Do%0$6DlE0P7I&Z(N4<10n``2{o%Ngt zU-Jn+MO-DCz@hI(0`2kjMA*dNoo$ZH=#YYfwen-`DV^5rJtI5IISa${554|A^(XhM zexjMS-hbt%=l1;n(E0!QBiiBi_d6@?MN_g&hC@9)z9GA}y~2zf$!pGreVN06~cH z+CbcF-Ed3T;h~M#TQ+0I&n{s#=K6EY=Ze$iL4O~dZ3P&UPS3lhOVz4hw%=mA996ZW zVDf}ZXVv4Zw4Q|=!r^4FvirhOaMlkUpkg{@q+VU@Z14L7Ta@3I{&x9MPamP{yL8)6 zzRcLNdcN#=dTM79Q$Q{TIhB_mFJYx?c3uffvqJc`(}A6dkDq8>nUiBYS9Q6Q#X-bl zQmsx>{N1~6fyCxMnd$NF>fGL*J`9(oblRo%+!0tcdYF&r0s(=V8I|X?exb5aam!*I zuE@T5Q7PM~hHUW^9c@@8@qr1nGb(gJA74sU7 z8PhZ5-=~0bP|Fr&7UyIZh4%{mQO`CW(V!!1Z$v0V&MhBMXKl0eTEDQYKmNiAkACRbz7IHp*p*1w;n?{)CS#e9GN zG_mjX(&|G3x=@+nLvP)Tj^WRr4E!9-w8gZL3R--rTUK4A?&)$4#w7kT&Bs{@`45QD zhrdic4yxhkv;N3t?9UIGD7O!rn9Ps9;&F9B5>iNYxM%IpA$ytJr7&9SO;@AN&?9o7 zoRZ>_No&kCNV|8vR<1h=QPEkRiX28-)~xlT8uysaFw}HpK|(aJZTX33SdbW3ikmgL z9l%a3Hi6LStdTpr4O3Tn^y}lT`mRirZTtO?-|ity(`UX2Tdy4*}xDof;b9NTBKqXsE$AsaoN6PCYN6ahSNXE;2wZg zRLf>GZuKS=tXvbZuziiY;@b^2z4rZb?xbNogPna;BjHqjr43nq(%l|?_Vm?5bwc2)P_m`^VsgC=P@L=q4T1-a7#Q~H4*W6KpwpofE8tRG5y5Y|* zGbd}BKCF=G(gVbf$Ub(sFhc6e;n~0LJ!nsi-R-}7oTH)iS83NDPB=R}yE%P#z^L)7 ztF6DrnTiI=M%im;v>V%24p&&eo;cvkXS6!h=gwfK`fmE^&=b4%MDI@K8xh;DyC~nk zUWZJBuNskx!Qvk;?-suQ8&@0#0VmPs6Een8uh(YgE>|{?ibYt}Qc)N7{e3-eU9IBc zpGVDCI-5J-)IT}hd5q$GXXCQK&U;JsYj9Xw3f19s)V{svDn1DgB5s|kG)F+AveBWHbEcGRmbFd?1{tiJr?+>YD3~+ zxvD!4#KeZPxM{MEwt9B*BIO!SSfk`={RK7=1#~tiw4>)BRFf8lF6_m{aW?z(DoT)O z>6B*!M?nKyp^#5o{ogG)#)b~TQJv+^TQ!j*p7AzJfU1{N#>k3S=!la`fJ!z^&B_;^ zmks=l!x>1B^PP_b1(K<)C;UTcGquB^*bq4li_ED#$Q!=ar{0;8FB%am4fgp!mvHd~m(y!U79<4f7Jww^?_pvUvSd%Bk9uw02 z{T<#{KxpHy1G}66A)P}WQ11ZoaTfijvq&E%I|XCGUlLIj$U4L?AnBb`QyAy6AGQ;A zu`je%rF$N!`}oLxN*gvvC)T=JQL;D}vBGem(97;qLy{OZahj$QU#X~?E;i4^O88F{ zE~u2(Rj0`8j1At|0>}U0v)~#zBAs>}3?DE|LOP>mDh2{DrtOaCw-lIZJV`}L?BpAb zpIL7MjP+uNhHMOdDroD^V?~*b!oB}U)K?-}_ZC;s#W3I|y`-rLPogS~o!`qh$q9x*ZyuS#NXlWzxE8 zc=J5+%+0USOB0Pvm%6ut<5Y|LqJ@cR3Z{HWI8K3VqgBe5a9g}snu6nuRW)ZVA(c8>gO`{drN}oAT&xG{yrc~+FZUaLgs#m@cEM#fg zRd-S^Y7u#gwGgQ3dGT^jWcu-&73~v=;a~_qI}QzPZLS!HY}WCQv$y%As~|G2ygO-^ z?soW-$ez~>JIgC2A~IwFe^)momDcQhRr#v`&!WBlbp}twS;rR&f%e3^CI|m4rGz4uh~IE&t=}WfS!}%t!v&-rwxsC!Al0cPnf0yd7xs2I1P{G7kl+CFZ&LcoW+H$j*zUSYNx*kX(kW(4k$Y_>pkl z*l)a$$=uvnPc4+S9UU?vBI?p6CAATvqaIsv(Oh`CkGeV^z4N&>A02uL5HWOS1(=uX z)uX3dNwf862ncHRBfQ%@`1bqzR+KMyZgzg!uW~9WIiY-Y&>lNDo43RhAO`CmO`!Yo z2p-} zJvoaKIV+%T5+htH>cgMujias(a+|4a-@k)jHiJST+aIa0;?VrL3VSy@#gT;RUZe;^gOFUmMyH61zb#Fs`>4&z4-#MO1Oc`lDZo0Ik{} zVj*D|Vh?y`{5l&E354mg{A#jt`}+oa{xlA_#6%Ci$A+~*#x&cOO85Di5!Yq?h=?+V zh-fIxKj#ZGC1Vl9OAa&IQibOat9~7^ugVKE*9q^oLqvhxGrFpS-P-}5sVV&h_WKQz z{$UX()%-m;;{YwB>9}Q3Z_L_>Fc}o0E$uC%@w9-1O)F* zkU{HEW5_w(&=V5iQF?Mj0K$ueOUCN7dnI0ZG~dC^ zEp>PGy1F_-*ZZA{@>xvGANTW3$DLn0BMC)HSZl#?m6tAS*Y*Ia?)8HU$Q4sJE%X93 zTUj-B^YN*ASpeV*X$>HdkibGw$^a>HLjG`av2Qbgt5j{8M!q;%bb3kLmVs%Y>&fHb z7!zmsXj?Qz_67pn#-$Yy_cot+6Nj>~OkJmKiH9kZ!Tfl)@(lR~p|P}PD$;D3n}_~q zG&U{vZchR+2Y3?)(qfUxsKl&9yk@_KMNBD4fQ%G}to9V`vDf+CaSw)V-T4+Mf>CL#Pmslv$yJ!fX)uleRy z_H)J#__d6T;Ba9Jn(=WUu2mp=;!0Rc`mypzg92ViKYQ;~e`2|{_u)?cBlOMzZ5pe@ zfAU`W1;1irsd{35vf%k6;YtOer8zi&BwF@&_^%z5Z~IM06ASaHap+btUj>?vKBvaJ z6SVHmDoc@G|8uI)(~N8^(y@Bd;VzZ@BrWp}RvpVwSG zbyYkTKUd269|z~`Ztu!lkF`VfwIO^(oy_PY%5)yM5352#n?*%cMT!76`lDWb-7ik5 zB=nz;x0Ih>MP|Rbpv1! z^8Q+p{xIK_mW0|omsN)|d{2VU@gjumE2Fa*aj@XWbHBsCgm%k}3X6*%8KtE7gMd)g zEzHjpBP*3h=Nh3;5Fw{P29o*t`5>9ErbUN^Qx*6UjL}XtT=n^Rcot2Cj`v?Y<8MWu zA&XutHf@cTAwNGO;mWB6cM8SFgG_z1%i8!m_!kfuSm*qP2F~v8H_Wec#mITnWvU7F zg)!LJ8l0Y+jC}_UKDe?I5`_w(At}hYVrd(PJM}eR>Uw&bAqvWRzNCRj zfZJZInhHf?ytsJ;8wd2~AULqBB&Fh|Q#UKUxIn&KK_T67d_zzk>_q76RA^{#_iHqnnC zc6+ZFbU|tbycoZ;u+(QxsYgZvWFc|!j?Mt>N?!J9_pTuHbzX-?kXB5LH);*9tqsY~ zPaM59kdW8`x^7jm5<5`PfQ?8(Gz{1}OiW%%SOO-<0v@cm#3O(yrRrEHj=PWnB*bLe|)z0 ze&w^%j_39<(=P6&g%kc>e z>?!ODK0a-a_x=q8I~(L_obv4UIl~;-C1o-tKlb-~i+;R9L=0c?8T|2sE(Fzqt6a$e z5W%o}s1sTg21G`qNpGb9Iez4Sagz|Wsv&w)!gbaNg4n^7rQXLNr4_xvv>?&;~?`T1m(uxXX)@lG%)ig8@o z>H->?rJAc>zk&lAU?_HV8gVRk&?ac9;gR4|)34>^ig~afKtFFGqzr)7)@J+B;=N$* z9$Si8Efw8is*Uy0ep@vLI)st&`iArkgc-l3Wr)ai9CxvG_|w;~hv^;W)e(8EL`wpJ zP!PkV&cd1qv`}^ zm>m|z7f@8z)L6PpB87|cNcS6Q2|{*GMsKb=W^f7n;9#LXXOR@j31+X}-$MYQWz~IT zq1p0YH*@C&^wH$v`NN1_MTitckD00Xieh>Z`GX!2k(n)=p;R$!hlZy9`}esqwKWhu zY3b-!sZR9jquO`34n989`Uz1Xd%r3_eAwP1C2djQ5<1_H{`MT^bb|umH{1k~QA@_m z&Ibt=Hlm(98k*S?*{wv@*1s)&;(@82Ly%`hD;=AiwN}xvT+);E@Sbtj#c|-ee>k!_ zJVCojXs^l4jBbNPMTQwoGvylbGUXk#l0yfd-cdw{;Pq{1U!mqsHWohuDLKLOquxQ= z?bgqk8PU@#Tw%@63m19*Cev^w zozM(be{6D6BhJ$$E_ddc3kXnQr3b<79E8!%MFC=ROAFmiG!pWrm-pI67wpSV8A0h; zB)E9+BqSq!ea8&J+Rr<(zZTM_0}PxW!z=LC5)1J_a&^};?EnX5Kni>lw5cPti2%Ho zfA9Po*#51U=Wne4i;Mr=60Di~JahlsH!oO&23ui7JT7#6d`nZx=nh0&pdVp4K8uz% zXh(|-`49S)!eZLg1S3?&!(uY@O_xuozrT~IS4$iEzlIX6GgkY&djBuS@_#h&|C5{V Zp7#Hs&k6@dBtyVI2@x6LG9kUM{|oYSG5`Po literal 52930 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 + +cluster_hello_world + +hello-world + cluster_namespace with {env=env_1,foo=managed} @@ -18,11 +23,6 @@ namespace with {app DoesNotExist,env Exists,foo=managed} - -cluster_hello_world - -hello-world - hello-world/workload-a[Deployment] @@ -64,8 +64,8 @@ hello-world/workload-a[Deployment]->entire-cluster - - + + All Connections @@ -78,8 +78,8 @@ hello-world/workload-b[Deployment]->entire-cluster - - + + All Connections @@ -91,8 +91,8 @@ pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}->hello-world/workload-a[Deployment] - - + + TCP 9090 @@ -104,8 +104,8 @@ pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}->hello-world/workload-a[Deployment] - - + + TCP 8080,9090 @@ -118,8 +118,8 @@ entire-cluster->hello-world/workload-b[Deployment] - - + + All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json new file mode 100644 index 00000000..2626da98 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json @@ -0,0 +1,70 @@ +{ + "connlist_results": [ + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-b[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "[namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 9090" + }, + { + "src": "[namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}]", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8080,9090" + }, + { + "src": "0.0.0.0-255.255.255.255", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + }, + { + "src": "entire-cluster", + "dst": "hello-world/workload-b[Deployment]", + "conn": "All Connections" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md new file mode 100644 index 00000000..f30c1d11 --- /dev/null +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md @@ -0,0 +1,22 @@ +| src | dst | conn | +|-----|-----|------| +| 0.0.0.0-255.255.255.255 | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | hello-world/workload-b[Deployment] | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | [namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}] | TCP 9090 | +| hello-world/workload-a[Deployment] | [namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}] | TCP 8080,9090 | +| hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-b[Deployment] | entire-cluster | All Connections | From 31e1ec4595f9cee6046c46f4e91162bde245f661 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Thu, 27 Jun 2024 15:03:13 +0300 Subject: [PATCH 04/91] updating code with label selectors --- pkg/netpol/connlist/conns_formatter.go | 78 ++-- pkg/netpol/connlist/exposed_peer.go | 14 +- pkg/netpol/connlist/exposure_analysis.go | 14 +- pkg/netpol/connlist/exposure_analysis_test.go | 30 +- pkg/netpol/connlist/exposure_map.go | 6 +- pkg/netpol/eval/exposure.go | 66 ++-- pkg/netpol/eval/internal/k8s/namespace.go | 3 + pkg/netpol/eval/internal/k8s/netpol.go | 59 +-- pkg/netpol/eval/internal/k8s/peer.go | 17 +- pkg/netpol/eval/internal/k8s/pod.go | 41 +- .../internal/k8s/representative_selectors.go | 356 +++++++----------- pkg/netpol/eval/resources.go | 73 ++-- .../internal/common/netpol_commands_common.go | 7 - ...posure_with_named_port_connlist_output.csv | 2 +- ...posure_with_named_port_connlist_output.dot | 8 +- ...re_with_named_port_connlist_output.dot.png | Bin 19288 -> 21716 bytes ...re_with_named_port_connlist_output.dot.svg | 48 +-- ...osure_with_named_port_connlist_output.json | 2 +- ...xposure_with_named_port_connlist_output.md | 2 +- ...posure_with_named_port_connlist_output.txt | 2 +- ...iple_match_expressions_connlist_output.csv | 4 +- ...iple_match_expressions_connlist_output.dot | 8 +- ..._match_expressions_connlist_output.dot.png | Bin 86314 -> 65809 bytes ..._match_expressions_connlist_output.dot.svg | 112 +++--- ...ple_match_expressions_connlist_output.json | 12 +- ...tiple_match_expressions_connlist_output.md | 4 +- ...iple_match_expressions_connlist_output.txt | 4 +- ...with_different_rules_1_connlist_output.csv | 4 +- ...with_different_rules_1_connlist_output.dot | 8 +- ..._different_rules_1_connlist_output.dot.png | Bin 52298 -> 57565 bytes ..._different_rules_1_connlist_output.dot.svg | 106 +++--- ...ith_different_rules_1_connlist_output.json | 4 +- ..._with_different_rules_1_connlist_output.md | 4 +- ...with_different_rules_1_connlist_output.txt | 4 +- ...with_different_rules_2_connlist_output.csv | 4 +- ...with_different_rules_2_connlist_output.dot | 8 +- ..._different_rules_2_connlist_output.dot.png | Bin 49808 -> 55246 bytes ..._different_rules_2_connlist_output.dot.svg | 106 +++--- ...ith_different_rules_2_connlist_output.json | 4 +- ..._with_different_rules_2_connlist_output.md | 4 +- ...with_different_rules_2_connlist_output.txt | 4 +- ...with_different_rules_3_connlist_output.csv | 4 +- ...with_different_rules_3_connlist_output.dot | 8 +- ..._different_rules_3_connlist_output.dot.png | Bin 53654 -> 58808 bytes ..._different_rules_3_connlist_output.dot.svg | 106 +++--- ...ith_different_rules_3_connlist_output.json | 4 +- ..._with_different_rules_3_connlist_output.md | 4 +- ...with_different_rules_3_connlist_output.txt | 4 +- ...with_different_rules_4_connlist_output.csv | 4 +- ...with_different_rules_4_connlist_output.dot | 8 +- ..._different_rules_4_connlist_output.dot.png | Bin 53573 -> 64253 bytes ..._different_rules_4_connlist_output.dot.svg | 106 +++--- ...ith_different_rules_4_connlist_output.json | 4 +- ..._with_different_rules_4_connlist_output.md | 4 +- ...with_different_rules_4_connlist_output.txt | 4 +- ...with_different_rules_5_connlist_output.csv | 7 +- ...with_different_rules_5_connlist_output.dot | 14 +- ..._different_rules_5_connlist_output.dot.png | Bin 67961 -> 62668 bytes ..._different_rules_5_connlist_output.dot.svg | 149 +++----- ...ith_different_rules_5_connlist_output.json | 21 +- ..._with_different_rules_5_connlist_output.md | 7 +- ...with_different_rules_5_connlist_output.txt | 7 +- ...with_different_rules_6_connlist_output.csv | 4 +- ...with_different_rules_6_connlist_output.dot | 16 +- ..._different_rules_6_connlist_output.dot.png | Bin 51707 -> 58352 bytes ..._different_rules_6_connlist_output.dot.svg | 120 +++--- ...ith_different_rules_6_connlist_output.json | 8 +- ..._with_different_rules_6_connlist_output.md | 4 +- ...with_different_rules_6_connlist_output.txt | 4 +- ...sion_does_not_exist_op_connlist_output.csv | 6 +- ...sion_does_not_exist_op_connlist_output.dot | 14 +- ..._does_not_exist_op_connlist_output.dot.png | Bin 45875 -> 51588 bytes ..._does_not_exist_op_connlist_output.dot.svg | 84 ++--- ...ion_does_not_exist_op_connlist_output.json | 6 +- ...ssion_does_not_exist_op_connlist_output.md | 6 +- ...sion_does_not_exist_op_connlist_output.txt | 6 +- ...h_expression_exists_op_connlist_output.csv | 4 +- ...h_expression_exists_op_connlist_output.dot | 12 +- ...pression_exists_op_connlist_output.dot.png | Bin 45953 -> 51348 bytes ...pression_exists_op_connlist_output.dot.svg | 42 +-- ..._expression_exists_op_connlist_output.json | 4 +- ...ch_expression_exists_op_connlist_output.md | 4 +- ...h_expression_exists_op_connlist_output.txt | 4 +- ...match_expression_in_op_connlist_output.csv | 5 +- ...match_expression_in_op_connlist_output.dot | 19 +- ...h_expression_in_op_connlist_output.dot.png | Bin 43707 -> 31461 bytes ...h_expression_in_op_connlist_output.dot.svg | 106 ++---- ...atch_expression_in_op_connlist_output.json | 17 +- ..._match_expression_in_op_connlist_output.md | 5 +- ...match_expression_in_op_connlist_output.txt | 5 +- ...h_expression_not_in_op_connlist_output.csv | 6 +- ...h_expression_not_in_op_connlist_output.dot | 14 +- ...pression_not_in_op_connlist_output.dot.png | Bin 46966 -> 56759 bytes ...pression_not_in_op_connlist_output.dot.svg | 84 ++--- ..._expression_not_in_op_connlist_output.json | 6 +- ...ch_expression_not_in_op_connlist_output.md | 6 +- ...h_expression_not_in_op_connlist_output.txt | 6 +- ...ltiple_unmatched_rules_connlist_output.csv | 2 +- ...ltiple_unmatched_rules_connlist_output.dot | 14 +- ...le_unmatched_rules_connlist_output.dot.png | Bin 36403 -> 38471 bytes ...le_unmatched_rules_connlist_output.dot.svg | 102 ++--- ...tiple_unmatched_rules_connlist_output.json | 8 +- ...ultiple_unmatched_rules_connlist_output.md | 2 +- ...ltiple_unmatched_rules_connlist_output.txt | 2 +- ...onn_and_entire_cluster_connlist_output.csv | 2 +- ...onn_and_entire_cluster_connlist_output.dot | 8 +- ...and_entire_cluster_connlist_output.dot.png | Bin 47484 -> 52609 bytes ...and_entire_cluster_connlist_output.dot.svg | 20 +- ...nn_and_entire_cluster_connlist_output.json | 2 +- ...conn_and_entire_cluster_connlist_output.md | 2 +- ...onn_and_entire_cluster_connlist_output.txt | 2 +- ...o_representative_peers_connlist_output.csv | 4 +- ...o_representative_peers_connlist_output.dot | 10 +- ...presentative_peers_connlist_output.dot.png | Bin 34339 -> 36221 bytes ...presentative_peers_connlist_output.dot.svg | 26 +- ..._representative_peers_connlist_output.json | 4 +- ...to_representative_peers_connlist_output.md | 4 +- ...o_representative_peers_connlist_output.txt | 4 +- ...rule_in_ingress_egress_connlist_output.csv | 4 +- ...rule_in_ingress_egress_connlist_output.dot | 10 +- ..._in_ingress_egress_connlist_output.dot.png | Bin 21657 -> 23638 bytes ..._in_ingress_egress_connlist_output.dot.svg | 58 +-- ...ule_in_ingress_egress_connlist_output.json | 4 +- ..._rule_in_ingress_egress_connlist_output.md | 4 +- ...rule_in_ingress_egress_connlist_output.txt | 4 +- 125 files changed, 1165 insertions(+), 1461 deletions(-) diff --git a/pkg/netpol/connlist/conns_formatter.go b/pkg/netpol/connlist/conns_formatter.go index 931577d1..8c76d0af 100644 --- a/pkg/netpol/connlist/conns_formatter.go +++ b/pkg/netpol/connlist/conns_formatter.go @@ -11,6 +11,9 @@ import ( "sort" "strings" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" ) @@ -84,14 +87,7 @@ const ( stringInBrackets = "[%s]" mapOpen = "{" mapClose = "}" - equal = "=" comma = "," - key = "key" - colon = ": " - space = " " - notIn = "NotIn" - doesNotExist = "DoesNotExist" - exists = "Exists" ) // formSingleExposureConn returns a representation of single exposure connection fields as singleConnFields object @@ -114,40 +110,50 @@ func formExposureItemAsSingleConnFiled(peerStr string, exposureItem XgressExposu } // convertLabelsMapToString returns a string representation of the given labels map -// considers the special labels (with requirements such as Exists, DoesNotExist, NotIn) func convertLabelsMapToString(labelsMap map[string]string) string { - labelsSrings := make([]string, 0) - for k, v := range labelsMap { - if v == common.ExistsVal { - labelsSrings = append(labelsSrings, k+space+exists) - continue - } - if v == common.DoesNotExistVal { - labelsSrings = append(labelsSrings, k+space+doesNotExist) - continue - } - if strings.HasPrefix(v, common.NotPrefix) { - labelsSrings = append(labelsSrings, k+space+notIn+space+v[1:]) - continue + return labels.SelectorFromSet(labels.Set(labelsMap)).String() +} + +// convertRequirementsToString returns a string representation of the given requirements list +func convertRequirementsToString(reqs []v1.LabelSelectorRequirement) string { + const strPrefix = "&LabelSelectorRequirement" + reqStrings := make([]string, len(reqs)) + for i, req := range reqs { + reqStrings[i] = strings.ReplaceAll(req.String(), strPrefix, "") + } + sort.Strings(reqStrings) + return strings.Join(reqStrings, comma) +} + +// writeLabelSelectorAsString returns a string representation of the label selector +func writeLabelSelectorAsString(labelSel v1.LabelSelector) string { + var res string + if len(labelSel.MatchLabels) > 0 { + res = convertLabelsMapToString(labelSel.MatchLabels) + } + if len(labelSel.MatchExpressions) > 0 { + if len(labelSel.MatchLabels) > 0 { + res += comma } - labelsSrings = append(labelsSrings, k+equal+v) + res += convertRequirementsToString(labelSel.MatchExpressions) } - sort.Strings(labelsSrings) - return mapOpen + strings.Join(labelsSrings, comma) + mapClose + return res } // getRepresentativeNamespaceString returns a string representation of a potential peer with namespace labels. // if namespace with multiple words adds [] , in case of textual (non-graphical) output -func getRepresentativeNamespaceString(nsLabels map[string]string, txtOutFlag bool) string { - nsName, ok := nsLabels[common.K8sNsNameLabelKey] - if len(nsLabels) == 1 && ok { +func getRepresentativeNamespaceString(nsLabels v1.LabelSelector, txtOutFlag bool) string { + // if ns selector contains only namespace name label - return ns name + nsName, ok := nsLabels.MatchLabels[common.K8sNsNameLabelKey] + if len(nsLabels.MatchLabels) == 1 && len(nsLabels.MatchExpressions) == 0 && ok { return nsName } - res := "" - if len(nsLabels) > 0 { - res += "namespace with " + convertLabelsMapToString(nsLabels) + // else if ns labels are empty - res = all namespaces + var res string + if nsLabels.Size() == 0 { + res = allNamespacesLbl } else { - res += allNamespacesLbl + res = "namespace with " + mapOpen + writeLabelSelectorAsString(nsLabels) + mapClose } if txtOutFlag { return fmt.Sprintf(stringInBrackets, res) @@ -158,12 +164,12 @@ func getRepresentativeNamespaceString(nsLabels map[string]string, txtOutFlag boo // getRepresentativePodString returns a string representation of potential peer with pod labels // or all pods string for empty pod labels map (which indicates all pods). // adds [] in case of textual (non-graphical) output -func getRepresentativePodString(podLabels map[string]string, txtOutFlag bool) string { - res := "" - if len(podLabels) == 0 { - res += allPeersLbl +func getRepresentativePodString(podLabels v1.LabelSelector, txtOutFlag bool) string { + var res string + if podLabels.Size() == 0 { + res = allPeersLbl } else { - res += "pod with " + convertLabelsMapToString(podLabels) + res = "pod with " + mapOpen + writeLabelSelectorAsString(podLabels) + mapClose } if txtOutFlag { return fmt.Sprintf(stringInBrackets, res) diff --git a/pkg/netpol/connlist/exposed_peer.go b/pkg/netpol/connlist/exposed_peer.go index 8a716064..70a2a516 100644 --- a/pkg/netpol/connlist/exposed_peer.go +++ b/pkg/netpol/connlist/exposed_peer.go @@ -5,7 +5,11 @@ SPDX-License-Identifier: Apache-2.0 */ package connlist -import "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" +) // ExposedPeer captures potential ingress and egress connections data for an exposed Peer type ExposedPeer interface { @@ -32,10 +36,10 @@ type ExposedPeer interface { type XgressExposureData interface { // IsExposedToEntireCluster indicates if the peer is exposed to all namespaces in the cluster for the relevant direction IsExposedToEntireCluster() bool - // NamespaceLabels are matchLabels of potential namespaces which the peer might be exposed to - NamespaceLabels() map[string]string - // PodLabels are matchLabels of potential pods which the peer might be exposed to - PodLabels() map[string]string + // NamespaceLabels are label selectors of potential namespaces which the peer might be exposed to + NamespaceLabels() v1.LabelSelector + // PodLabels are label selectors of potential pods which the peer might be exposed to + PodLabels() v1.LabelSelector // PotentialConnectivity the potential connectivity of the exposure PotentialConnectivity() common.Connection } diff --git a/pkg/netpol/connlist/exposure_analysis.go b/pkg/netpol/connlist/exposure_analysis.go index 8fc6db56..e2c76d74 100644 --- a/pkg/netpol/connlist/exposure_analysis.go +++ b/pkg/netpol/connlist/exposure_analysis.go @@ -6,6 +6,8 @@ SPDX-License-Identifier: Apache-2.0 package connlist import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" ) @@ -34,12 +36,12 @@ type peerXgressExposureData struct { type xgressExposure struct { // exposedToEntireCluster indicates if the peer is exposed to all namespaces in the cluster for the relevant direction exposedToEntireCluster bool - // namespaceLabels are matchLabels of potential namespaces which the peer might be exposed to. + // namespaceLabels are label selectors of potential namespaces which the peer might be exposed to. // if exposedToEntireCluster is true, this field will be empty - namespaceLabels map[string]string - // podLabels are matchLabels of potential pods which the peer might be exposed to. + namespaceLabels v1.LabelSelector + // podLabels are label selectors of potential pods which the peer might be exposed to. // if exposedToEntireCluster is true, this field will be empty - podLabels map[string]string + podLabels v1.LabelSelector // potentialConn the potential connectivity of the exposure potentialConn *common.ConnectionSet } @@ -48,11 +50,11 @@ func (e *xgressExposure) IsExposedToEntireCluster() bool { return e.exposedToEntireCluster } -func (e *xgressExposure) NamespaceLabels() map[string]string { +func (e *xgressExposure) NamespaceLabels() v1.LabelSelector { return e.namespaceLabels } -func (e *xgressExposure) PodLabels() map[string]string { +func (e *xgressExposure) PodLabels() v1.LabelSelector { return e.podLabels } diff --git a/pkg/netpol/connlist/exposure_analysis_test.go b/pkg/netpol/connlist/exposure_analysis_test.go index b0023e67..ad8b5452 100644 --- a/pkg/netpol/connlist/exposure_analysis_test.go +++ b/pkg/netpol/connlist/exposure_analysis_test.go @@ -9,6 +9,7 @@ import ( "testing" v1 "k8s.io/api/core/v1" + metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "github.com/np-guard/netpol-analyzer/pkg/internal/testutils" @@ -46,6 +47,9 @@ var peerExposedToEntireClusterOnTCP8050 *xgressExposure = &xgressExposure{ potentialConn: newTCPConnWithPorts([]int{8050}), } +var matchExpression []metaV1.LabelSelectorRequirement = []metaV1.LabelSelectorRequirement{{Key: "foo.com/managed-state", + Operator: metaV1.LabelSelectorOpIn, Values: []string{"managed"}}} + func newTCPConnWithPorts(ports []int) *common.ConnectionSet { conn := common.MakeConnectionSet(false) portSet := common.MakePortSet(false) @@ -56,15 +60,15 @@ func newTCPConnWithPorts(ports []int) *common.ConnectionSet { return conn } -func newExpDataWithLabelAndTCPConn(nsLabels, podLabels map[string]string, ports []int) *xgressExposure { +func newExpDataWithLabelAndTCPConn(nsSel, podSel metaV1.LabelSelector, ports []int) *xgressExposure { conn := common.MakeConnectionSet(true) if len(ports) > 0 { conn = newTCPConnWithPorts(ports) } return &xgressExposure{ exposedToEntireCluster: false, - namespaceLabels: nsLabels, - podLabels: podLabels, + namespaceLabels: nsSel, + podLabels: podSel, potentialConn: conn, } } @@ -149,7 +153,7 @@ func TestExposureBehavior(t *testing.T) { lenIngressExposedConns: 2, ingressExp: []*xgressExposure{ peerExposedToEntireClusterOnTCP8050, - newExpDataWithLabelAndTCPConn(map[string]string{"foo.com/managed-state": "managed"}, map[string]string{}, []int{8050, 8090}), + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchExpressions: matchExpression}, metaV1.LabelSelector{}, []int{8050, 8090}), }, lenEgressExposedConns: 0, }, @@ -184,9 +188,11 @@ func TestExposureBehavior(t *testing.T) { isEgressProtected: false, lenIngressExposedConns: 3, ingressExp: []*xgressExposure{ - newExpDataWithLabelAndTCPConn(map[string]string{"foo.com/managed-state": "managed"}, map[string]string{}, []int{8050}), - newExpDataWithLabelAndTCPConn(map[string]string{"release": "stable"}, map[string]string{}, []int{}), - newExpDataWithLabelAndTCPConn(map[string]string{"effect": "NoSchedule"}, map[string]string{}, []int{8050}), + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchExpressions: matchExpression}, metaV1.LabelSelector{}, []int{8050}), + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchLabels: map[string]string{"release": "stable"}}, + metaV1.LabelSelector{}, []int{}), + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchLabels: map[string]string{"effect": "NoSchedule"}}, + metaV1.LabelSelector{}, []int{8050}), }, lenEgressExposedConns: 0, }, @@ -262,8 +268,8 @@ func TestExposureBehavior(t *testing.T) { lenIngressExposedConns: 1, lenEgressExposedConns: 1, ingressExp: []*xgressExposure{ - newExpDataWithLabelAndTCPConn(map[string]string{common.K8sNsNameLabelKey: "backend"}, - map[string]string{}, []int{8050}), + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchLabels: map[string]string{common.K8sNsNameLabelKey: "backend"}}, + metaV1.LabelSelector{}, []int{8050}), }, egressExp: []*xgressExposure{ peerExposedToEntireCluster, @@ -280,7 +286,8 @@ func TestExposureBehavior(t *testing.T) { lenIngressExposedConns: 1, lenEgressExposedConns: 0, ingressExp: []*xgressExposure{ - newExpDataWithLabelAndTCPConn(map[string]string{"effect": "NoSchedule"}, map[string]string{"role": "monitoring"}, []int{8050}), + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchLabels: map[string]string{"effect": "NoSchedule"}}, + metaV1.LabelSelector{MatchLabels: map[string]string{"role": "monitoring"}}, []int{8050}), }, }, }, @@ -294,7 +301,8 @@ func TestExposureBehavior(t *testing.T) { lenIngressExposedConns: 1, lenEgressExposedConns: 0, ingressExp: []*xgressExposure{ - newExpDataWithLabelAndTCPConn(map[string]string{common.K8sNsNameLabelKey: "hello-world"}, map[string]string{"role": "monitoring"}, + newExpDataWithLabelAndTCPConn(metaV1.LabelSelector{MatchLabels: map[string]string{common.K8sNsNameLabelKey: "hello-world"}}, + metaV1.LabelSelector{MatchLabels: map[string]string{"role": "monitoring"}}, []int{8050}), }, }, diff --git a/pkg/netpol/connlist/exposure_map.go b/pkg/netpol/connlist/exposure_map.go index 849ae2c2..7ce0739a 100644 --- a/pkg/netpol/connlist/exposure_map.go +++ b/pkg/netpol/connlist/exposure_map.go @@ -8,6 +8,8 @@ package connlist import ( "errors" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/np-guard/netpol-analyzer/pkg/internal/netpolerrors" "github.com/np-guard/netpol-analyzer/pkg/netpol/eval" "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" @@ -79,8 +81,8 @@ func (ex *exposureMaps) addPeerXgressEntireClusterExp(pe *eval.PolicyEngine, pee ex.addNewEntry(peer, true, isIngress) expData := &xgressExposure{ exposedToEntireCluster: true, - namespaceLabels: nil, - podLabels: nil, + namespaceLabels: v1.LabelSelector{}, + podLabels: v1.LabelSelector{}, potentialConn: conn, } ex.appendPeerXgressExposureData(peer, expData, isIngress) diff --git a/pkg/netpol/eval/exposure.go b/pkg/netpol/eval/exposure.go index 98068679..b42be4a5 100644 --- a/pkg/netpol/eval/exposure.go +++ b/pkg/netpol/eval/exposure.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "github.com/np-guard/netpol-analyzer/pkg/internal/netpolerrors" @@ -30,7 +31,7 @@ func generateNewPodName(index int) string { } // generateRepresentativePeers : generates and adds to policy engine representative peers where each peer -// has namespace and pod labels inferred from single entry of selectors in a policy rule list; +// has namespace and pod labels and requirements inferred from single entry of selectors in a policy rule list; // // - for example, if a rule within policy has an entry: namespaceSelector "foo: managed", then a representative pod in such a // namespace with those labels will be added, representing all potential pods in such a namespace. @@ -38,32 +39,12 @@ func generateNewPodName(index int) string { // has same labels, one representative peer is generated to represent both func (pe *PolicyEngine) generateRepresentativePeers(selectors []k8s.SingleRuleSelectors, policyName, policyNs string) (err error) { for i := range selectors { - // 1. first convert each rule selectors' pair (podSelector and namespaceSelector) to pairs of its matching labels maps. - // each pair contains map of namespaceLabels and map of podLabels - // a representative peer will be generated for each pair - labelsPairs := k8s.ConvertSelectorsToLabelsCombinations(&selectors[i]) - // 2. secondly: for each pair of labels, generate a representative peer - err := pe.generateRepresentativePeerPerLabelsPair(labelsPairs, selectors[i].PolicyNsFlag, policyName, policyNs, i) - if err != nil { - return err - } - } - return nil -} - -// generateRepresentativePeerPerLabelsPair : gets list of pairs of namespaceLabels and podLabels maps, -// and creates a new representative peer for each pair. -// if policyNsFlag is true, i.e. the namespaceSelector is nil, a representative peer is created in -// the namespace of the policy with given podLabels maps. -func (pe *PolicyEngine) generateRepresentativePeerPerLabelsPair(labelsPairs k8s.LabelsPairsList, policyNsFlag bool, policyName, - policyNs string, selectorNum int) (err error) { - for i := range labelsPairs { // if ns labels of the rule selector was nil, then the namespace of the pod is same as the policy's namespace - if policyNsFlag { - _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i+selectorNum), policyNs, &labelsPairs[i]) + if selectors[i].PolicyNsFlag { + _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i), policyNs, &selectors[i]) } else { - _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i+selectorNum), generateNewNamespaceName(policyName, i+selectorNum), - &labelsPairs[i]) + _, err = pe.AddPodByNameAndNamespace(generateNewPodName(i), generateNewNamespaceName(policyName, i), + &selectors[i]) } if err != nil { return err @@ -74,18 +55,14 @@ func (pe *PolicyEngine) generateRepresentativePeerPerLabelsPair(labelsPairs k8s. // extractLabelsAndRefineRepresentativePeers extracts the labels of the given pod object and its namespace and refine matching peers // helping func - added in order to avoid code dup. in upsertWorkload and upsertPod -func (pe *PolicyEngine) extractLabelsAndRefineRepresentativePeers(podObj *k8s.Pod) error { +func (pe *PolicyEngine) extractLabelsAndRefineRepresentativePeers(podObj *k8s.Pod) { // since namespaces are already upserted; if pod's ns not existing resolve it if _, ok := pe.namspacesMap[podObj.Namespace]; !ok { // the "kubernetes.io/metadata.name" is added automatically to the ns; so representative peers with such selector will be refined - err := pe.resolveSingleMissingNamespace(podObj.Namespace, nil) - if err != nil { - return err - } + pe.resolveSingleMissingNamespace(podObj.Namespace, v1.LabelSelector{}) } // check if there are representative peers in the policy engine which match the current pod; if yes remove them pe.refineRepresentativePeersMatchingLabels(podObj.Labels, pe.namspacesMap[podObj.Namespace].Labels) - return nil } // refineRepresentativePeersMatchingLabels removes from the policy engine all representative peers @@ -94,9 +71,14 @@ func (pe *PolicyEngine) extractLabelsAndRefineRepresentativePeers(podObj *k8s.Po func (pe *PolicyEngine) refineRepresentativePeersMatchingLabels(realPodLabels, realNsLabels map[string]string) { keysToDelete := make([]string, 0) // look for representative peers with labels matching the given real pod's (and its namespace) labels - for key, peer := range pe.representativePeersMap { - potentialPodSelector := labels.SelectorFromSet(labels.Set(peer.Pod.Labels)) - potentialNsSelector := labels.SelectorFromSet(labels.Set(peer.PotentialNamespaceLabels)) + for key, repPeer := range pe.representativePeersMap { + if len(repPeer.Pod.RepresentativePodRequirements) > 0 || len(repPeer.PotentialNamespaceLabelSelector.MatchExpressions) > 0 { + // a representative peer with requirements inferred from selectors with matchExpression will not be refined + continue + } + // matchExpressions of representative peer are empty , check labels + potentialPodSelector := labels.SelectorFromSet(labels.Set(repPeer.Pod.Labels)) + potentialNsSelector := labels.SelectorFromSet(labels.Set(repPeer.PotentialNamespaceLabelSelector.MatchLabels)) if potentialNsSelector.Empty() { // empty --representative peer that matches any-namespace, thus will not be removed // note that if the policy had nil namespaceSelector, it would be converted to the namespace of the policy @@ -109,12 +91,7 @@ func (pe *PolicyEngine) refineRepresentativePeersMatchingLabels(realPodLabels, r // in the general conns compute and won't get here. continue } - if peer.HasUnusualNsLabels || peer.Pod.HasUnusualPodLabels { - // a representative peer with labels inferred from requirements of matchExpression with operators : Exists/DoesNotExist/NotIn - // will not be refined - continue - } - // representative peer with regular labels inferred from selectors with matchLabels or matchExpression with operator In; + // representative peer with regular labels inferred from selectors with matchLabels only; // is removed (refined) if matches both realPodLabels and realNsLabels. if potentialPodSelector.Matches(labels.Set(realPodLabels)) && potentialNsSelector.Matches(labels.Set(realNsLabels)) { keysToDelete = append(keysToDelete, key) @@ -174,10 +151,13 @@ func (pe *PolicyEngine) IsRepresentativePeer(peer Peer) bool { // GetPeerLabels returns the labels defining the given representative peer and its namespace // relevant only for RepresentativePeer -func (pe *PolicyEngine) GetPeerLabels(p Peer) (podLabels, nsLabels map[string]string, err error) { +func (pe *PolicyEngine) GetPeerLabels(p Peer) (podLabels, nsLabels v1.LabelSelector, err error) { peer, ok := p.(*k8s.RepresentativePeer) if !ok { // should not get here - return nil, nil, errors.New(netpolerrors.NotRepresentativePeerErrStr(p.String())) + return v1.LabelSelector{}, v1.LabelSelector{}, errors.New(netpolerrors.NotRepresentativePeerErrStr(p.String())) } - return peer.Pod.Labels, peer.PotentialNamespaceLabels, nil + podLabels = v1.LabelSelector{MatchLabels: peer.Pod.Labels, + MatchExpressions: peer.Pod.RepresentativePodRequirements} + nsLabels = peer.PotentialNamespaceLabelSelector + return podLabels, nsLabels, nil } diff --git a/pkg/netpol/eval/internal/k8s/namespace.go b/pkg/netpol/eval/internal/k8s/namespace.go index 00f28bce..435701b6 100644 --- a/pkg/netpol/eval/internal/k8s/namespace.go +++ b/pkg/netpol/eval/internal/k8s/namespace.go @@ -8,6 +8,7 @@ package k8s import ( corev1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" ) @@ -16,6 +17,8 @@ import ( type Namespace struct { Name string Labels map[string]string + // RepresentativeNsRequirements list of requirements to be applied by namespace labels in case of representative namespace + RepresentativeNsRequirements []v1.LabelSelectorRequirement } // @todo need a Namespace collection type along with convenience methods? diff --git a/pkg/netpol/eval/internal/k8s/netpol.go b/pkg/netpol/eval/internal/k8s/netpol.go index 7f0466a0..5092535a 100644 --- a/pkg/netpol/eval/internal/k8s/netpol.go +++ b/pkg/netpol/eval/internal/k8s/netpol.go @@ -212,7 +212,11 @@ func (np *NetworkPolicy) ruleSelectsPeer(rulePeers []netv1.NetworkPolicyPeer, pe if isRepresentativePod(peer) { // representative peer's namespace labels may be inferred from a rule with special matchExpression requirements // and also contains the representative ns name label which is not relevant for comparison - peerMatchesNamespaceSelector = SelectorMatchesRepresentativePeerLabels(selector, peer.GetPeerNamespace().Labels, true) + peerMatchesNamespaceSelector, err = SelectorMatchesRepresentativePeerLabels(selector, peerNamespace.Labels, + peerNamespace.RepresentativeNsRequirements) + if err != nil { + return false, err + } } else { peerMatchesNamespaceSelector = selector.Matches(labels.Set(peerNamespace.Labels)) } @@ -229,8 +233,11 @@ func (np *NetworkPolicy) ruleSelectsPeer(rulePeers []netv1.NetworkPolicyPeer, pe } // checking if a selector matches labels by peer type; since representative peers selectors may need special handling if isRepresentativePod(peer) { - peerMatchesPodSelector = SelectorMatchesRepresentativePeerLabels(selector, peer.GetPeerPod().Labels, - peer.GetPeerPod().HasUnusualPodLabels) + peerMatchesPodSelector, err = SelectorMatchesRepresentativePeerLabels(selector, peer.GetPeerPod().Labels, + peer.GetPeerPod().RepresentativePodRequirements) + if err != nil { + return false, err + } } else { peerMatchesPodSelector = selector.Matches(labels.Set(peer.GetPeerPod().Labels)) } @@ -469,11 +476,11 @@ func (np *NetworkPolicy) fullName() string { // ///////////////////////////////////////////////////////////////////////////////////////////// // pre-processing computations - currently performed for exposure-analysis goals only; -// SingleRuleSelectors contains labels.Selector objects parsed from namespaceSelector or/and podSelector -// within a single rule in the policy +// SingleRuleSelectors contains LabelSelector objects representing namespaceSelector or/and podSelector +// of a single rule in the policy type SingleRuleSelectors struct { - NsSelector labels.Selector - PodSelector labels.Selector + NsSelector metav1.LabelSelector + PodSelector metav1.LabelSelector // policyNsFlag indicates if the rule contains only podSelector; // so the NsLabels map contains only the default name key of the policy's namespace PolicyNsFlag bool @@ -546,31 +553,33 @@ func (np *NetworkPolicy) doRulesExposeToAllDestOrEntireCluster(rules []netv1.Net if rules[i].IPBlock != nil { continue } - nsSelector, err := np.parseNetpolLabelSelector(rules[i].NamespaceSelector) - if err != nil { - return nil, err - } - podSelector, err := np.parseNetpolLabelSelector(rules[i].PodSelector) - if err != nil { - return nil, err - } // a rule is exposed to entire cluster if : - // 1. the podSelector is nil (no podselector) but the namespaceSelector is empty ({}) + // 1. the podSelector is nil (no podselector) but the namespaceSelector is empty ({}) not nil // 2. both podSelector and namespaceSelector are empty ({}) - if nsSelector.Empty() && (rules[i].PodSelector == nil || podSelector.Empty()) { + if rules[i].NamespaceSelector != nil && rules[i].NamespaceSelector.Size() == 0 && + (rules[i].PodSelector == nil || rules[i].PodSelector.Size() == 0) { err = np.updateNetworkPolicyGeneralConn(false, true, rulePorts, isIngress) return nil, err } - // else (at least one of the selectors is not empty) - ruleSel.PodSelector = podSelector.DeepCopySelector() - // special case: ns selector is nil but podSelector is not, so the namespace of the rule is - // the policy's namespace; adding the k8s namespace name key to ruleSel.NsLabels - if rules[i].NamespaceSelector == nil && rules[i].PodSelector != nil { + // else selectors' combination specifies end-points + switch { // cases of ns selector + case rules[i].NamespaceSelector == nil: + // special case: ns selector is nil but podSelector is not, so the namespace of the rule is + // the policy's namespace; adding the k8s namespace name key to ruleSel.NsLabels ruleSel.PolicyNsFlag = true nsNameLabelSel := map[string]string{common.K8sNsNameLabelKey: np.Namespace} - ruleSel.NsSelector = labels.SelectorFromSet(nsNameLabelSel) - } else { - ruleSel.NsSelector = nsSelector.DeepCopySelector() + ruleSel.NsSelector = metav1.LabelSelector{MatchLabels: nsNameLabelSel} + case rules[i].NamespaceSelector.Size() == 0: + ruleSel.NsSelector = metav1.LabelSelector{} + default: + ruleSel.NsSelector = *rules[i].NamespaceSelector.DeepCopy() + } + // cases of podSelector + switch { + case rules[i].PodSelector != nil: + ruleSel.PodSelector = *rules[i].PodSelector.DeepCopy() + default: + ruleSel.PodSelector = metav1.LabelSelector{} } rulesSelectors = append(rulesSelectors, ruleSel) } diff --git a/pkg/netpol/eval/internal/k8s/peer.go b/pkg/netpol/eval/internal/k8s/peer.go index 265f5bcd..9aa81c73 100644 --- a/pkg/netpol/eval/internal/k8s/peer.go +++ b/pkg/netpol/eval/internal/k8s/peer.go @@ -7,6 +7,7 @@ SPDX-License-Identifier: Apache-2.0 package k8s import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "github.com/np-guard/models/pkg/ipblock" @@ -58,16 +59,14 @@ type WorkloadPeer struct { type RepresentativePeer struct { // Pod is a fake pod originated as following: // - if inferred from a policy rule, which contains only non-empty namespaceSelector; the pod's namespace is a fake namespace - // with the labels from the selector (those labels also stored in PotentialNamespaceLabels) + // with the labels and requirements from the selector // - if inferred from a policy rule, which contains only podSelector; the pod's namespace is same as the policy's namespace; - // and its labels are taken from the selector labels - // - if inferred from selector combining a namespaceSelector and a podSelector: the pod's labels will contain the podSelector labels - // and its namespace is a fake namespace with the namespaceSelector labels (those labels also stored in PotentialNamespaceLabels) - Pod *Pod - PotentialNamespaceLabels map[string]string - // HasUnusualNsLabels indicates if the potential namespace labels set of the representative peer contains any labels inferred - // from a selector with matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling - HasUnusualNsLabels bool + // and pod's labels and requirements are taken from the podSelector + // - if inferred from selector combining a namespaceSelector and a podSelector: + // the pod's labels and requirements will contain the podSelector's ones + // and its namespace is a fake namespace with the namespaceSelector + Pod *Pod + PotentialNamespaceLabelSelector v1.LabelSelector } const podKind = "Pod" diff --git a/pkg/netpol/eval/internal/k8s/pod.go b/pkg/netpol/eval/internal/k8s/pod.go index 7387a223..89d95b20 100644 --- a/pkg/netpol/eval/internal/k8s/pod.go +++ b/pkg/netpol/eval/internal/k8s/pod.go @@ -43,7 +43,7 @@ func initiatePodExposure() PodExposureInfo { type Pod struct { Name string Namespace string - FakePod bool // this flag is used to indicate if the pod is created from scanner objects or fake (ingress-controller) + FakePod bool // this flag is used to indicate if the pod is created from scanner objects or fake (ingress-controller/ representative pod) Labels map[string]string IPs []corev1.PodIP Ports []corev1.ContainerPort @@ -60,9 +60,10 @@ type Pod struct { // - and the maximal connection-set for which the pod is exposed to all namespaces by network policies // on egress direction EgressExposureData PodExposureInfo - // HasUnusualPodLabels indicates if the pod labels set (in case of representative peer's pod) contains any labels inferred - // from a selector with matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling - HasUnusualPodLabels bool + // RepresentativePodRequirements contains requirements inferred from pod label selector with matchExpression + // i.e. with operator:In, NotIn, Exists, DoesNotExist; + // used only with representative Pods + RepresentativePodRequirements []v1.LabelSelectorRequirement } // Owner encapsulates pod owner workload info @@ -83,17 +84,17 @@ func PodFromCoreObject(p *corev1.Pod) (*Pod, error) { } pr := &Pod{ - Name: p.Name, - Namespace: p.Namespace, - Labels: make(map[string]string, len(p.Labels)), - IPs: make([]corev1.PodIP, len(p.Status.PodIPs)), - Ports: make([]corev1.ContainerPort, 0, defaultPortsListSize), - HostIP: p.Status.HostIP, - Owner: Owner{}, - FakePod: false, - IngressExposureData: initiatePodExposure(), - EgressExposureData: initiatePodExposure(), - HasUnusualPodLabels: false, + Name: p.Name, + Namespace: p.Namespace, + Labels: make(map[string]string, len(p.Labels)), + IPs: make([]corev1.PodIP, len(p.Status.PodIPs)), + Ports: make([]corev1.ContainerPort, 0, defaultPortsListSize), + HostIP: p.Status.HostIP, + Owner: Owner{}, + FakePod: false, + IngressExposureData: initiatePodExposure(), + EgressExposureData: initiatePodExposure(), + RepresentativePodRequirements: make([]v1.LabelSelectorRequirement, 0), } copy(pr.IPs, p.Status.PodIPs) @@ -110,7 +111,7 @@ func PodFromCoreObject(p *corev1.Pod) (*Pod, error) { ownerRef := p.ObjectMeta.OwnerReferences[refIndex] if *ownerRef.Controller { if addOwner := addPodOwner(&ownerRef, pr); addOwner { - pr.Owner.Variant = VariantFromLabelsMap(p.Labels) + pr.Owner.Variant = variantFromLabelsMap(p.Labels) } break } @@ -218,14 +219,14 @@ func PodsFromWorkloadObject(workload interface{}, kind string) ([]*Pod, error) { pod.FakePod = false pod.IngressExposureData = initiatePodExposure() pod.EgressExposureData = initiatePodExposure() - pod.HasUnusualPodLabels = false + pod.RepresentativePodRequirements = make([]v1.LabelSelectorRequirement, 0) for k, v := range podTemplate.Labels { pod.Labels[k] = v } for i := range podTemplate.Spec.Containers { pod.Ports = append(pod.Ports, podTemplate.Spec.Containers[i].Ports...) } - pod.Owner.Variant = VariantFromLabelsMap(podTemplate.Labels) + pod.Owner.Variant = variantFromLabelsMap(podTemplate.Labels) res[index-1] = pod } return res, nil @@ -236,8 +237,8 @@ func namespacedName(pod *corev1.Pod) string { return types.NamespacedName{Name: pod.Name, Namespace: pod.Namespace}.String() } -// VariantFromLabelsMap returns a unique hash key from given labels map -func VariantFromLabelsMap(labels map[string]string) string { +// variantFromLabelsMap returns a unique hash key from given labels map +func variantFromLabelsMap(labels map[string]string) string { return hex.EncodeToString(sha1.New().Sum([]byte(fmt.Sprintf("%v", labels)))) //nolint:gosec // Non-crypto use } diff --git a/pkg/netpol/eval/internal/k8s/representative_selectors.go b/pkg/netpol/eval/internal/k8s/representative_selectors.go index 7523407b..3c770b75 100644 --- a/pkg/netpol/eval/internal/k8s/representative_selectors.go +++ b/pkg/netpol/eval/internal/k8s/representative_selectors.go @@ -7,252 +7,93 @@ SPDX-License-Identifier: Apache-2.0 package k8s import ( - "strings" + "crypto/sha1" //nolint:gosec // Non-crypto use + "encoding/hex" + "fmt" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/selection" - - "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" -) - -// this file handles converting and checking match of representative peers' labels. -// since a representative peer is a peer inferred from a network-policy rule, its pod's and namespace's labels -// may have special labels cases, and thus need to be handled differently from usual accepted k8s labels (regular :). - -// examples: -// 1. if we have a policy rule with: -// - podSelector: -// matchExpressions: -// {key: app, operator: Exists} -// -// this rule will be converted when generating a matching representative peer. -// the representative peer's pod will has an `app: ` in its podLabels map. -// -// 2. if we have a policy rule with: -// - podSelector: -// matchExpressions: -// {key: name, operator: In, values: [payroll, web]} -// two different representative peers will be generated from this PodSelector; one with pod label {name:payroll} , -// and the second with pod label {name:web} - -// /////////////////////////////////////////// -const ( - notSuffix = ")" - comma = "," ) -// labelsSet is an alias for labels map (map[string]string) -type labelsSet map[string]string - -// copyLabelsSet - helping func, copies the current labelsSet (map of labels) -func (ls labelsSet) copyLabelsSet() labelsSet { - res := make(labelsSet, len(ls)) - for k, v := range ls { - res[k] = v - } - return res -} - -// RepresentativePeerLabels contains the namespace and pod labels for generating a single representative peer -type RepresentativePeerLabels struct { - // NsLabels the labels of the namespace of the representative peer - NsLabels labelsSet - // PodLabels the labels of the pod of the representative peer - PodLabels labelsSet - // UnusualPodLabelsFlag indicates if the labels set inferred from a podSelector that contains - // matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling - UnusualPodLabelsFlag bool - // UnusualNsLabelsFlag indicates if the labels set inferred from a namespaceSelector that contains - // matchExpression with operator:NotIn, Exists, DoesNotExist - which require special handling - UnusualNsLabelsFlag bool -} - -// LabelsPairsList list of pairs of matching labels which were inferred from combinations of policy rules' selectors, -// each pair in the list represents labels of a single representative peer -// i.e. a representative peer will be generated for each item in the list -type LabelsPairsList []RepresentativePeerLabels - -// ****************************************************************** // -// Converting selector to list of labels sets [](map[string]string)): -// ------------------------------------------------------------------ -// - selector with "matchLabels", is converted to one map of labels since "matchLabels" rule can only be used for exact matching -// with all of its : labels. -// - selector with "matchExpression" is set-based matching so it may be converted to number of maps, also, might need special handling -// according to the operator, as following: -// * operator In: selector will be converted to number of sets (of :) equal to length of requirement's values list; -// each set will contain the key and a single value from the values list. -// * operator Exists : selector will be converted to a one set with :"" -// * operator DoesNotExist: selector will be converted to one set with :"" -// * operator NotIn :selector will be converted to one set with : "!()" (the list of values joined) -// -// *** a selector with multiple matchLabels/matchExpressions : the converted sets of each will be And-ed.(all -// combinations will be generated) -// *************************************************************************** // - -// ConvertSelectorsToLabelsCombinations gets selectors pair (podSelector and nsSelector) -// and converts it to a list of all pairs of matching labels maps; -// by translating the two selectors to all possible requirements and pairing all relevant combinations. -// -// for example : -// single rule selectors: {NsSelector: {key: env, operator: In, values:(env-1,env-2)}, -// -// PodSelector: {key: app, operator: In, values:(app1,app2)}} -// -// will result in 4 combinations of of representative peers labels as following: -// 1. {NsLabels: {env: env-1}, PodLabels:{app: app1}} -// 2. {NsLabels: {env: env-1}, PodLabels:{app: app2}} -// 3. {NsLabels: {env: env-2}, PodLabels:{app: app1}} -// 4. {NsLabels: {env: env-2}, PodLabels:{app: app2}} -func ConvertSelectorsToLabelsCombinations(ruleSelectors *SingleRuleSelectors) LabelsPairsList { - res := LabelsPairsList{} - nsLabelsCombinations, unusualNsLabels := convertSingleSelectorToItsMaps(ruleSelectors.NsSelector) - podLabelsCombinations, unusualPodLabels := convertSingleSelectorToItsMaps(ruleSelectors.PodSelector) - // create all possible combinations of matching nsLabels and podLabels - for _, nsLabels := range nsLabelsCombinations { - for _, podLabels := range podLabelsCombinations { - representativePeerLabels := RepresentativePeerLabels{ - NsLabels: nsLabels, - PodLabels: podLabels, - UnusualPodLabelsFlag: unusualPodLabels, - UnusualNsLabelsFlag: unusualNsLabels, - } - res = append(res, representativePeerLabels) - } - } - return res -} - -// convertSingleSelectorToItsMaps gets a single selector and converts it to its all possible matching labels sets -// -// for example: a selector with: -// {key: name, operator: In, values: [payroll, web]} -// will be converted to two different maps, one with {name:payroll} , and the other {name:web} -// -// more details above (Converting selector to list of labels sets) -func convertSingleSelectorToItsMaps(selector labels.Selector) ([]labelsSet, bool) { - // all requirements of the given selector - requirements, _ := selector.Requirements() - if len(requirements) == 0 { // an empty set - return []labelsSet{{}}, false - } - // res will contain all different combinations conducted from the different requirements - res := []labelsSet{{}} - unusualLabels := false // to indicate requirements of Exists, DoesNotExist or NotIn - - for _, req := range requirements { - // newResult will contain the current res with all the new combinations from current requirement - // (used with In operator as more than one set may be added for its values) - newResult := make([]labelsSet, 0) - - switch req.Operator() { - case selection.Equals: - // requirement with Equals operator is inferred from single matchLabels :,(exactly one value for one key) - // iterate the current res (maps created till now) and add this requirement to each set in the result - res = appendKeyAndValueToAllSetsInAList(res, req.Key(), req.Values().List()[0]) - case selection.In: - // inferred from matchExpression with In operator - // loop the possible values in the requirement, each value will be a part of a different labelsSet. - // so for each value: copy the current res (previous labelsSets from the previous requirements) and add the - // : (each set with a different value from this values list) - // i.e. new sets will be added to the list - for _, val := range req.Values().List() { - for _, ls := range res { - newLs := ls.copyLabelsSet() - newLs[req.Key()] = val - newResult = append(newResult, newLs) - } - } - res = newResult - case selection.Exists: - // inferred from matchExpression with Exists, iterate current result and add key:"" to each set - res = appendKeyAndValueToAllSetsInAList(res, req.Key(), common.ExistsVal) - unusualLabels = true - case selection.DoesNotExist: - // inferred from matchExpression with DoesNotExist, iterate current result and add key:"" to each set - res = appendKeyAndValueToAllSetsInAList(res, req.Key(), common.DoesNotExistVal) - unusualLabels = true - case selection.NotIn: - // inferred from matchExpression with NotIn, iterate current result and add key:"!(values)" to each set - res = appendKeyAndValueToAllSetsInAList(res, req.Key(), common.NotPrefix+strings.Join(req.Values().List(), comma)+notSuffix) - unusualLabels = true - } - } - return res, unusualLabels -} - -// appendKeyAndValueToAllSetsInAList iterates given list of sets and adds given key:val to each set -func appendKeyAndValueToAllSetsInAList(listOfMaps []labelsSet, key, val string) (res []labelsSet) { - for _, ls := range listOfMaps { - ls[key] = val - res = append(res, ls) - } - return res -} +// this file handles checking match of representative peers' requirements and labels. +// since a representative peer is a peer inferred from a network-policy rule, its pod's and namespace's labels are split into +// matchLabels and requirements of matchExpressions // ******************************************************************************************************* // -// Checking if a given selector matches a representative peer's labels : +// Checking if a given selector matches (covered by) a representative peer's labels and requirements: // --------------------------------------------------------------------- -// 1. if the representative labels have no unusual requirements, then labels.selector Matches func is used to -// compare between the selector and representative peer's labels. -// 2. if the representative selector contains labels with special/unusual requirements -// (which are formed while converting policy rules); then -// check the equivalence of the requirements of the selector and the representative peer's labels. +// 1. if the representative peer has only match labels without requirements inferred from matchExpression, +// then labels.selector Matches func is used to +// 2. if the representative selector contains also requirements; then +// check the equivalence of the requirements of the selector and the representative peer's labels and requirements. // -// to check if a given selector matches the representative labels: -// loop the selector requirements and compare each to the representative labels as following: -// - if the requirement operator is In/ Equals: then representative labels should contain -// the key with an exact match to the requirement value/s. -// - if the requirement operator is Exists : then the representative labels must include the key, and it's value must -// be different from / !() -> because these are not equivalent with operator : Exists +// to check if a given selector matches the representative peer's requirements (from representative matchExpressions +// and matchLabels): +// loop the selector requirements and compare each to the representative peer's requirements: +// - if the requirement operator is In/ Equals: then representative requirements should contain +// the key with an exact match to the requirement value or also has a requirement with In operator where the values list contains the +// list of the selector's requirement. +// - if the requirement operator is Exists : then the representative requirements must include the key, and it's operator must +// be different from DoesNotExist/ NotIn -> because these are not equivalent with operator : Exists // (explanation: NotIn selects peer with key with a value not from the list, and all peers without the key (not equivalent with exists)) // - if the requirement operator is DoesNotExist : the the representative labels must not include the key or include -// it with value : +// it with operator DoesNotExist // - if the requirement operator is NotIn : -// * the val of the same key should not be (notIn and exists are not equiv; notIn selects also doesNotExist) -// * if the val of the same key in the representative labels is !(); -// then the list of values of the requirement needs to be contained in the !() list +// * the operator of the same key should not be Exists (notIn and exists are not equiv; notIn selects also doesNotExist) +// * if the operator of the same key in the representative labels is NotIn; then the list of values of the requirement needs +// to be contained in the !() list // or the representative labels should Match the requirement (i.e. key does not exist/ key with value not from the list) // ******************************************************************************************************* // -// SelectorMatchesRepresentativePeerLabels given a selector from a policy rule and labelsSet of representative peer; -// check if the selector matches the labels, considering the cases of unusual labels values of a generated representative peer -// -//gocyclo:ignore -func SelectorMatchesRepresentativePeerLabels(selector labels.Selector, pLabels labelsSet, hasUnusualLabels bool) bool { - if !hasUnusualLabels { - return selector.Matches(labels.Set(pLabels)) +// SelectorMatchesRepresentativePeerLabels given a selector from a policy rule and labels and requirements of representative peer; +// check if the selector matches the repreaentative selector created by the peer's labels and requirements +func SelectorMatchesRepresentativePeerLabels(selector labels.Selector, pLabels map[string]string, + pRequirements []v1.LabelSelectorRequirement) (bool, error) { + // if the representative peer does not contain any requirements inferred from matchExpression, then return if the selector match + // the reresentative peer's labels + if len(pRequirements) == 0 { + return selector.Matches(labels.Set(pLabels)), nil + } + // create selector from the representative peer's labels and requirements + // and return if the input selector's requirements are a subset of the representative selector's requirements + peerLabelSelector := v1.LabelSelector{MatchLabels: pLabels, MatchExpressions: pRequirements} + representativeSelector, err := v1.LabelSelectorAsSelector(&peerLabelSelector) + if err != nil { + return false, err + } + ruleRequirements, _ := selector.Requirements() + repPeerRequirements, _ := representativeSelector.Requirements() + return isRuleRequirementsASubsetOfRepresentativeRequirements(ruleRequirements, repPeerRequirements), nil +} + +// isRuleRequirementsASubsetOfRepresentativeRequirements returns if the rule's selector requirements are a subset of +// the representative peer's requirements +func isRuleRequirementsASubsetOfRepresentativeRequirements(ruleReqs, peerReqs labels.Requirements) bool { + representativeReqsByKey := make(map[string]labels.Requirement, len(peerReqs)) + // put the representative requirements into map from key to its requirement + for _, repReq := range peerReqs { + // assuming each key may appear only once in a single selector + representativeReqsByKey[repReq.Key()] = repReq } - // check if given selector requirements, matches the labels of the representative peer - selectorReqs, _ := selector.Requirements() - for _, req := range selectorReqs { - val, ok := pLabels[req.Key()] + + // check if the rule selector's requirements are subset of the representative requirements + for _, req := range ruleReqs { switch req.Operator() { case selection.Equals, selection.In: - // Equals or In requirements means that the labels map must contain the key with a value from the values list of the requirement. - if !ok || (ok && !req.Matches(labels.Set(pLabels))) { + if !checkInOperatorMatch(req, representativeReqsByKey) { return false } case selection.Exists: - // if the requirement for a key in a policy rule selector is to exist, then it must appear in the representative peer's labels - // and its value must not be or !() - if !ok || val == common.DoesNotExistVal || strings.HasPrefix(val, common.NotPrefix) { + if !checkExistsOperatorMatch(req, representativeReqsByKey) { return false } case selection.DoesNotExist: - // if requirement is does not exist, so if the key is in the representative labels it must have the val, - // otherwise no match - if ok && val != common.DoesNotExistVal { + if !checkDoesNotExistOperatorMatch(req, representativeReqsByKey) { return false } case selection.NotIn: - // if the selector requirement is NotIn, a representative peer with label: req.Key : !(values), the values list should contain the - // req.Values.List , if the value is then it is not a match, - // otherwise the requirement should match given labels - // (key does not exist or has any value which is not in the req.Values.List) - if (ok && - strings.HasPrefix(val, common.NotPrefix) && !representativeValListContainsRequirementValList(val, req.Values().List())) || - val == common.ExistsVal || - !req.Matches(labels.Set(pLabels)) { + if !checkNotInOperatorMatch(req, representativeReqsByKey) { return false } } @@ -260,20 +101,75 @@ func SelectorMatchesRepresentativePeerLabels(selector labels.Selector, pLabels l return true } -// representativeValListContainsRequirementValList gets the values of the representative peer NotIn label (as string) -// and a list of a requirement values; returns if the list is contained in the representative values. -func representativeValListContainsRequirementValList(representativeNotInVal string, requirementValues []string) bool { - // split the representative string to the values and put theem in a set - repValList := strings.Split(representativeNotInVal[2:len(representativeNotInVal)-1], comma) - repValsSet := make(map[string]bool, len(repValList)) // a set from the representative values list - for _, val := range repValList { - repValsSet[val] = true +// checkInOperatorMatch : Equals or In requirements means that the key must be in the representative requirements and the value +// list of the requirement must be contained in the representative values list. +func checkInOperatorMatch(req labels.Requirement, representativeReqsMap map[string]labels.Requirement) bool { + representativeReq, ok := representativeReqsMap[req.Key()] + if !ok { + return false + } + return (representativeReq.Operator() == selection.In || representativeReq.Operator() == selection.Equals) && + listContainments(representativeReq.Values().List(), req.Values().List()) +} + +// checkExistsOperatorMatch : the representative requirements must include the key, and it's operator must +// be different from DoesNotExist/ NotIn +func checkExistsOperatorMatch(req labels.Requirement, representativeReqsMap map[string]labels.Requirement) bool { + representativeReq, ok := representativeReqsMap[req.Key()] + if !ok { + return false + } + return representativeReq.Operator() != selection.DoesNotExist && representativeReq.Operator() != selection.NotIn +} + +// checkDoesNotExistOperatorMatch the the representative labels must not include the key or include +// it with operator DoesNotExist only +func checkDoesNotExistOperatorMatch(req labels.Requirement, representativeReqsMap map[string]labels.Requirement) bool { + if representativeReq, ok := representativeReqsMap[req.Key()]; ok && representativeReq.Operator() != selection.DoesNotExist { + return false + } + return true +} + +// checkNotInOperatorMatch: if the selector's requirement is NotIn; then : +// - if representative peer's requirements contain same key with operator NotIn too, its values must contain the req's values list +// - if the representative peer's requirement contains the key with Exists operator, then no match (no equivalence) +// - if the representative peer's requirement contains the key with In/Equals operator, the values of both +// list must not intersect (two-way containment) +func checkNotInOperatorMatch(req labels.Requirement, representativeReqsMap map[string]labels.Requirement) bool { + representativeReq, ok := representativeReqsMap[req.Key()] + if ok && representativeReq.Operator() == selection.NotIn && + !listContainments(representativeReq.Values().List(), req.Values().List()) { + return false } - // check that all values in the requirement's list are contained in the set - for _, val := range requirementValues { - if !repValsSet[val] { + if ok && representativeReq.Operator() == selection.Exists { + return false + } + if ok && (representativeReq.Operator() == selection.Equals || representativeReq.Operator() == selection.In) && + (listContainments(req.Values().List(), representativeReq.Values().List()) || + listContainments(representativeReq.Values().List(), req.Values().List())) { + return false + } + return true +} + +// listContainments gets the two lists of requirements' values; and returns if the second list is contained in the first. +func listContainments(values1, values2 []string) bool { + // put first values list in a set + valuesSet := make(map[string]bool, len(values1)) // a set from the representative values list + for _, val := range values1 { + valuesSet[val] = true + } + // check that all values in the 2nd list are contained in the set + for _, val := range values2 { + if !valuesSet[val] { return false } } return true } + +// VariantFromRequirementsList returns a unique hash key from given labels map +func VariantFromLabelsSelector(ls v1.LabelSelector) string { + return hex.EncodeToString(sha1.New().Sum([]byte(fmt.Sprintf("%v", ls)))) //nolint:gosec // Non-crypto use +} diff --git a/pkg/netpol/eval/resources.go b/pkg/netpol/eval/resources.go index cc021877..aaca7d8e 100644 --- a/pkg/netpol/eval/resources.go +++ b/pkg/netpol/eval/resources.go @@ -149,41 +149,38 @@ func (pe *PolicyEngine) addObjectsByKind(objects []parser.K8sObject) error { } } if !pe.exposureAnalysisFlag { // for exposure analysis; this already done - return pe.resolveMissingNamespaces() + pe.resolveMissingNamespaces() } return nil } -func (pe *PolicyEngine) resolveMissingNamespaces() error { +func (pe *PolicyEngine) resolveMissingNamespaces() { for _, pod := range pe.podsMap { ns := pod.Namespace if _, ok := pe.namspacesMap[ns]; !ok { - if err := pe.resolveSingleMissingNamespace(ns, nil); err != nil { - return err - } + pe.resolveSingleMissingNamespace(ns, metav1.LabelSelector{}) } } - return nil } -// resolveSingleMissingNamespace create a ns object and upsert to PolicyEngine -func (pe *PolicyEngine) resolveSingleMissingNamespace(ns string, nsLabels map[string]string) error { - nLabels := nsLabels +// resolveSingleMissingNamespace create a ns object and add to PolicyEngine +// used for resolving real namespaces which are not sourced in the manifests +// and for adding representative namespaces inferred from policy rules (with representative selectors) +func (pe *PolicyEngine) resolveSingleMissingNamespace(ns string, nsLabelsSelector metav1.LabelSelector) { + nLabels := nsLabelsSelector.MatchLabels + nReqs := nsLabelsSelector.MatchExpressions if len(nLabels) == 0 { nLabels = map[string]string{ common.K8sNsNameLabelKey: ns, } } - nsObj := &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: ns, - Labels: nLabels, - }, - } - if err := pe.upsertNamespace(nsObj); err != nil { - return err + nsObj := &k8s.Namespace{ // creating a namespace object with potential labels and requirements + Name: ns, + Labels: nLabels, + RepresentativeNsRequirements: nReqs, } - return nil + + pe.namspacesMap[nsObj.Name] = nsObj // upserting the namespace directly to the policy engine } // SetResources: updates the set of all relevant k8s resources @@ -356,9 +353,9 @@ func (pe *PolicyEngine) upsertWorkload(rs interface{}, kind string) error { } // running this on last podObj: as all pods from same workload object are in same namespace and having same pod labels if pe.exposureAnalysisFlag { - err = pe.extractLabelsAndRefineRepresentativePeers(podObj) + pe.extractLabelsAndRefineRepresentativePeers(podObj) } - return err + return nil } func (pe *PolicyEngine) upsertPod(pod *corev1.Pod) error { @@ -371,9 +368,9 @@ func (pe *PolicyEngine) upsertPod(pod *corev1.Pod) error { // update cache with new pod associated to to its owner pe.cache.addPod(podObj, podStr.String()) if pe.exposureAnalysisFlag { - err = pe.extractLabelsAndRefineRepresentativePeers(podObj) + pe.extractLabelsAndRefineRepresentativePeers(podObj) } - return err + return nil } func initPolicyGeneralConns() k8s.PolicyGeneralRulesConns { @@ -587,35 +584,33 @@ func (pe *PolicyEngine) ConvertPeerNamedPort(namedPort string, peer Peer) (int32 // AddPodByNameAndNamespace adds a new fake pod to: // the pe.podsMap in case of fake ingress-controller pods // or the pe.representativePeersMap in case of exposure-analysis peers -func (pe *PolicyEngine) AddPodByNameAndNamespace(name, ns string, objLabels *k8s.RepresentativePeerLabels) (Peer, error) { - var nsLabels, podLabels map[string]string - var hasUnusualNsLabels, hasUnusualPodLabels bool +func (pe *PolicyEngine) AddPodByNameAndNamespace(name, ns string, objLabels *k8s.SingleRuleSelectors) (Peer, error) { + var podSelector, nsSelector metav1.LabelSelector if objLabels != nil { - nsLabels = objLabels.NsLabels - podLabels = objLabels.PodLabels - hasUnusualNsLabels = objLabels.UnusualNsLabelsFlag - hasUnusualPodLabels = objLabels.UnusualPodLabelsFlag + podSelector = objLabels.PodSelector + nsSelector = objLabels.NsSelector } podStr := types.NamespacedName{Namespace: ns, Name: name}.String() newPod := &k8s.Pod{ - Name: name, - Namespace: ns, - FakePod: true, - Labels: podLabels, - HasUnusualPodLabels: hasUnusualPodLabels, - } - if err := pe.resolveSingleMissingNamespace(ns, nsLabels); err != nil { - return nil, err + Name: name, + Namespace: ns, + FakePod: true, + Labels: podSelector.MatchLabels, + RepresentativePodRequirements: podSelector.MatchExpressions, } + + // adding ns to the policy engine + pe.resolveSingleMissingNamespace(ns, nsSelector) // if exposure-analysis and this is not a fake ingress-controller if pe.exposureAnalysisFlag && newPod.IsPodRepresentative() { // first compute a unique string from labels to be used as a map key - keyStrFromLabels := k8s.VariantFromLabelsMap(objLabels.NsLabels) + "/" + k8s.VariantFromLabelsMap(objLabels.PodLabels) + keyStrFromLabels := k8s.VariantFromLabelsSelector(nsSelector) + "/" + k8s.VariantFromLabelsSelector(podSelector) if _, ok := pe.representativePeersMap[keyStrFromLabels]; ok { // we already have a representative peer with same labels return nil, nil } - newRepresentativePeer := &k8s.RepresentativePeer{Pod: newPod, PotentialNamespaceLabels: nsLabels, HasUnusualNsLabels: hasUnusualNsLabels} + newRepresentativePeer := &k8s.RepresentativePeer{Pod: newPod, + PotentialNamespaceLabelSelector: nsSelector} pe.representativePeersMap[keyStrFromLabels] = newRepresentativePeer return newRepresentativePeer, nil } diff --git a/pkg/netpol/internal/common/netpol_commands_common.go b/pkg/netpol/internal/common/netpol_commands_common.go index 5cb64a7d..8840773f 100644 --- a/pkg/netpol/internal/common/netpol_commands_common.go +++ b/pkg/netpol/internal/common/netpol_commands_common.go @@ -25,10 +25,3 @@ const ( IngressPodName = "ingress-controller" IngressPodNamespace = "ingress-controller-ns" ) - -// common consts -const ( - ExistsVal = "" - DoesNotExistVal = "" - NotPrefix = "!(" -) diff --git a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.csv b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.csv index 0904b539..b99dbf5a 100644 --- a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.csv @@ -2,7 +2,7 @@ src,dst,conn Exposure Analysis Result:,, Egress Exposure:,, src,dst,conn -hello-world/workload-a[Deployment],[namespace with {foo.com/managed-state=managed}]/[all pods],TCP http +hello-world/workload-a[Deployment],"[namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}]/[all pods]",TCP http Ingress Exposure:,, dst,src,conn hello-world/workload-a[Deployment],entire-cluster,TCP 8000 diff --git a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.dot b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.dot index 7c87b1e6..f8c9fb0c 100644 --- a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.dot @@ -5,13 +5,13 @@ digraph { "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] label="hello-world" } - subgraph "cluster_namespace with {foo.com/managed_state=managed}" { + subgraph "cluster_namespace with {{Key:foo.com/managed_state,Operator:In,Values:[managed],}}" { color="red2" fontcolor="red2" - "all pods_in_namespace with {foo.com/managed-state=managed}" [label="all pods" color="red2" fontcolor="red2"] - label="namespace with {foo.com/managed-state=managed}" + "all pods_in_namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}" } "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "entire-cluster" -> "hello-world/workload-a[Deployment]" [label="TCP 8000" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "hello-world/workload-a[Deployment]" -> "all pods_in_namespace with {foo.com/managed-state=managed}" [label="TCP http" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-a[Deployment]" -> "all pods_in_namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}" [label="TCP http" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.dot.png b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.dot.png index 6c67a30eff09fa7c4fb77ba51b2ee88cfb575d93..a267c1486b5726b9f398d32c94d9e200e9b9fc55 100644 GIT binary patch literal 21716 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 Gd-^}h{hEaU literal 19288 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

      H#zX!Bgu8O$# z9v)RV%(g_ps{QI=YyRi6#`-&roFH4X>h7}4ezwMbWs^Fb?hhN7N8oo6Lp;%7EfUAW z_Q+)4lYF6=hT?2lMBoKO8H6BBP|!B`+@Oxj2)d61JPccI&ajF$n)6}BLT=NT@)O}G zDetSTtVG?B?r@;Eevk|uXydI)NiDFRV8r?QQ!Dt~Y4Mx2P{Cn;tm_^OW;eIbq5ItW zz}N~m6xeJ0?gr-VFVX$e%BH78iu_wtB48g#MLRFicXmQ7hLcP1CTU&3N_l4%oR0$q92ykOg$i?f-hJz;( zptm$$0v$*}fXv&rzN_{)`=i`|YX`9?lDsr;94O!bOij<#yiGeFApZCOEV+r=<&e?H z#iOOFwi<9Ee1CkA2&!2JR3(*9c(t*-)wV`JSw8297uFI+I)gq#@wPk+ASK)5k zO_*Bnv7aK>%TJ=hd{V0x50n4ly1Ar6yIgbmuLMO{YPz0e)=Ct_Ovu2C#R5^1&$sj z#{E}U@(FxCyyFvS6XQhn77x-7oLk2YKB2RcGvxrUhqkvurv7n z*GqtFdHcr${>*4%YFVEEGxaT<>dXS@elbUWWn2c39#G~$yn+)27cSYLMV2&-oXcL0 zd}D7O;>_+1;|dn{`ZJ^Aw3Eo^4JmtQ`<;h{V!V!=C}ATa!v+4t#7?a{^R=FiFYSj| zGQc)MeC5GIp@4*)7QA^aY!!vb)DtMF=K*w-o|3YL*`W^8$%P~-Vxhjq>?1f(9OLNWjm?5^H;+6|oBNbuU zVrk-OnieC|aWa+E8JBVaHP@1(Hi>Cj3NB3MeBN|U=QQ)f`~mPDU*7xNdq1Dgz4XUw zPJH!u$lCoj*t_2a=Na_Im6d1_X>C8w&1WM#1awmh!G`6Sc z;uU?UD>gZu$EbdRKM^Kcnu+2GNk>GFPfBKe5>F0h?jm0sOY|9T>M8aD?7@j*YKmH-x=W}KnfuI-OWtzm> z#Wz-GyEqmo8n&}-SUP%^_S>^eZD+TM{4Y$VW5>V2#m=iyxLzq@B=wnojz`I2xPpJY6dAuyFa3Dp1|7P)5CKa)Cc5fo?e z^cdp2ylf~(araW@?{*ok$4T1Lkh0fNE?PeS8$-6xM08E0siro$?_-Sqt+r?UpXN?XP+{= zcpTD1$YB_t2~qy$ni!kw!svnQTfgj+SVik=3s%mbeCJr7zku;8^uN1{W(SJW1%pP4 za_xZCBO$ed&u%!lq`uHscMZFCcEwB@cmk8_PN;d0tHKHb*cH zEWTx$=dyxz`2icr`n-yWm1HQxNej~yho7lad0T{sV%7U@#HpOEVwIiUy9vcoUOs)?IP`&Tb9SiA8B+RKW-DS&4HNifCBAv(zO|Z+(%(T$asRepz3-qOnGT^}4 zt$y6dnE;#-A#^5gs+iMTH)Qr=Af!TArO-KIKyie)5Q`++_J9O+v#AkkQ==FmWSbI; zJaDn&uQUKQg-3f(5W(Zv)SN?!sGbYcEf%d+dI*LpPH_;XJmKFnkb<8^D0bUgRBF&< z$dwNx&8L6`a|OnP`?MjR(`jG7U4hD|2RoHz-Gq5>Q5q=z9w`e8yqwyvd808v-i_(Wbq< zKF%&Q^|U5Z>!>p~ExFUQ$o>N=@KH^5%61%*A2h%{>m87Jte1>RB?qG9hwB@=WfCzL zr~XP9BwlWShL9c^I5Z ziM(A_531&;CK6AVTT)MnT;Q-1qvqg$_;6F62jBXT1rV>jjw@$$P*?!#+SpM8x^s6Y@x=ibYQ?!%KVG0=!WqzSC_c{3#g=25{!H-|hM!>Ew( zwr53(7K#wRg}}euf)09!awD!&&FI~zVWC?fA0u*jm(ZXDn;K(?ZHCl>>@^zeDc)Tc z94rUXa%e32_>mA-S|3;(Jb}i`a|1LXb0`WX^&Ss~&27H%fqyYF{ns%0)zj&Ajucz& zy}#nddj}XIVH0vb$rEEtAs4D7XUnky1M7Rvp>kO~49RGW2)nj#E$Uyt - + - + -cluster_namespace with {foo.com/managed_state=managed} - -namespace with {foo.com/managed-state=managed} +cluster_namespace with {{Key:foo.com/managed_state,Operator:In,Values:[managed],}} + +namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}} cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] - + -all pods_in_namespace with {foo.com/managed-state=managed} - -all pods +all pods_in_namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}} + +all pods - + -hello-world/workload-a[Deployment]->all pods_in_namespace with {foo.com/managed-state=managed} - - -TCP http +hello-world/workload-a[Deployment]->all pods_in_namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}} + + +TCP http entire-cluster - -entire-cluster + +entire-cluster entire-cluster->hello-world/workload-a[Deployment] - - -TCP 8000 + + +TCP 8000 diff --git a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.json b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.json index 34fc3127..bd6650f9 100644 --- a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.json +++ b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.json @@ -4,7 +4,7 @@ "egress_exposure": [ { "src": "hello-world/workload-a[Deployment]", - "dst": "[namespace with {foo.com/managed-state=managed}]/[all pods]", + "dst": "[namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}]/[all pods]", "conn": "TCP http" } ], diff --git a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.md b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.md index 4673ff17..0b474396 100644 --- a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.md +++ b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.md @@ -4,7 +4,7 @@ ### Egress Exposure: | src | dst | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | [namespace with {foo.com/managed-state=managed}]/[all pods] | TCP http | +| hello-world/workload-a[Deployment] | [namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}]/[all pods] | TCP http | ### Ingress Exposure: | dst | src | conn | diff --git a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.txt b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.txt index a930e260..5a95249d 100644 --- a/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_egress_exposure_with_named_port_connlist_output.txt @@ -1,6 +1,6 @@ Exposure Analysis Result: Egress Exposure: -hello-world/workload-a[Deployment] => [namespace with {foo.com/managed-state=managed}]/[all pods] : TCP http +hello-world/workload-a[Deployment] => [namespace with {{Key:foo.com/managed-state,Operator:In,Values:[managed],}}]/[all pods] : TCP http Ingress Exposure: hello-world/workload-a[Deployment] <= entire-cluster : TCP 8000 diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv index f923431a..a98da8ab 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.csv @@ -12,8 +12,6 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}]",All Connections -hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}]",All Connections -hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot index fd303be3..f3b061a2 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot @@ -4,9 +4,7 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world" [label="pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}" color="red2" fontcolor="red2"] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world" [label="pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}" color="red2" fontcolor="red2"] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world" [label="pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}_in_hello-world" [label="pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}" color="red2" fontcolor="red2"] label="hello-world" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] @@ -18,7 +16,5 @@ digraph { "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.png index 897e18ab38af5b03f98606105132bd6a1baa6b2b..84ec2eb14c37f7cfe0119c2e2931c1b661201c9c 100644 GIT binary patch literal 65809 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 PXv~R8F?;2QSzW?mU z)<{J={{ zxzHYxdJ%9*yXjMjzi0Xo0Gf~_S`;sEI4?d~)Mv)he*J4ys#4HN zI98T6_Ag0Tf!0NQNOcuHKe^xPNi8-$+TW}H+N^1pMh1x;x~)5Y|In>N5X?b^8d;5y4ChKg5oSt#$elM|L62ARy^I+sgC;3uGs z4jB#vp}-ICr~i`vCO(Z89xeB`vZe?H=~@M2zFjn$t8FI7+x022rP_r7iO&K+$E1&G zP=dmn5(ht@I>9Qf!*#P2RgC?yu3SAQ**lmHoYlEJF|b*$d}SM8RaU+bqu4JkaYIF% zm^PvY`n&RE58ps^eDKn!qJxpA<+7O9P)44@44?w*mA^UXk3pO0usDRMEHb6fxnLvZ ztb-X+4hKK|&l4r|@b9OD!&HCP!_QM8sxICjDl}4cpA)~gF{w>JE$VsDlAIbY!4nxI zKdSv7CS3LT)(`fC1bj18__S%(|Mzz#J5<-~DE3DVK=4GYg= zC_}W)t$U>KMubXwiMUJKNY;JHR|*jiePtF3^@;7EN;M_JHXDZ|wI@RDG< z=Vy5yb)2=+#{h1Axt$S6|Cm4QI(d}x=I=YsR;aWlT+OtrnmOA1Dz+x!*x+88e8qPM zY0{#E0|(I*!#%A8vB|8!>6yyFj*gXj5lb47UuEAHL097ArD-gCh!x1CpT|%2`ove{ z^3TzH>UYte1Xh#0Vjic|E18oZ&?jpwf>v6%=HjE7>_unfloa>VV)c%x& zo0jH*yZw2-i<1SIq$x`(>GsZBVe#?7w>U`h4J9}m?Zu0xkw@pl?={H{oQoC2sQE=vZ3rHfEWB_{-CvuoSkPNwOXOaM}kjk`&1% zm;7YWCXaG41W;Ga7ODfny}jnQPy3Z9gN8vS)!ln9tRYwV`TG+98Eb18+d*wu669Et=q1TG^68pdLJM2JmAtyb+^^zAl|JCyU0(55(Q** z{U;NJfcey)!w_6khJbf--)ZB%!_?pcvND@nYY^15D$ zL=`=| z1X=Qz^;$82`GR4fH zIL&>oB0*yo=U~Ln*XE&Z^n6(SW1j+ARcLjHOqVFFw!PJ0O%3uNgC;=5lZKi-r$(O# zIG5I^X=!MpVglk*!p8Hc0A*0ikzdPGocXrNZI+ZJN@d=+hHB3P2)=#$P(bPhlLl!6 z4ilsA z&54S7BE%>?QA<=z9TW2rLCvLjpIQH|pqZHvwLPvA#y9})&K)wJqKdIJSThWd3J+%l ziMy{96KhT2_~Jzpga6EG9vo7^=k>4rm@geJimow(Y#ZmFb*&$WrKjpeRvx(5=f2%} zbJ6^=&r^ycf841M_vsh6S%LeYRal~?-nu4;O-xL@A}TaK7GCgXVK+$_D2n zOQUL(Q%|0~VnKwouLx);ACZTcEOphbG9Bh2sBHQDn9J`9mh$t|800k6RS1^9)jzx& z(o-84zBw+M826$nTm{TSywK1?ivW40f(uRmu1Se)*BFR`1mSNN-Ww;zC25{1DsB|4 z4}sqJ{MkHQX;J35t%nS+zwZ`9gGYJtn9;KcL+b!PGZ{jN+zs4T<3=+rwHOZ*4I|wx zDuF!0d)YaFyElKBVl7Gw>;>;(OpFpF&`j&mn`zeDvK5=;#Ka-{I?HV8!~e?lKf*0f z%Fb?XJ;@Ed^{;eAo2HNF#rJA3IFdSacwzlHo&I<|%Fq6n7xYUae*ItnUuO5;ZwAj_ z6aQA?f1H;6?C&x7XJ$zy4S&#tue? zhXoqmi9RSD?(xs-^JCCB*M2?!`mZyJ{l{TRHtrus#tMXg9JR!d{c-gAHr*dbSR5!; WsP{eJsdwjZDm+wqP;}2Y;C}#FLRFst diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg index b4399ddc..16e168e0 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.dot.svg @@ -4,49 +4,49 @@ - + - + cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections - + 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections - + entire-cluster entire-cluster @@ -54,76 +54,50 @@ hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists} +pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}_in_hello-world + +pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}} - + -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] - - -All Connections - - - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists} - - - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] - - -All Connections - - - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists} - - - -pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}_in_hello-world->hello-world/workload-a[Deployment] - - -All Connections +pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json index ad9b2567..71897ec2 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.json @@ -46,17 +46,7 @@ ], "ingress_exposure": [ { - "src": "hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "All Connections" - }, - { - "src": "hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "All Connections" - }, - { - "src": "hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}]", + "src": "hello-world/[pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "All Connections" }, diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md index f0ad3509..bf6841a9 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.md @@ -16,8 +16,6 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}] | All Connections | -| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}] | All Connections | -| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}] | All Connections | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt index 53a0453f..5a9053be 100644 --- a/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_rule_with_multiple_match_expressions_connlist_output.txt @@ -11,9 +11,7 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=api,tier Exists}] : All Connections -hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=frontend,tier Exists}] : All Connections -hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (b-app,c-app,d-app),env DoesNotExist,role=web,tier Exists}] : All Connections +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:NotIn,Values:[b-app c-app d-app],},{Key:env,Operator:DoesNotExist,Values:[],},{Key:role,Operator:In,Values:[frontend web api],},{Key:tier,Operator:Exists,Values:[],}}] : All Connections hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv index daf246eb..67df7902 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.csv @@ -13,7 +13,7 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],hello-world/[pod with {app Exists}],TCP 8080 -hello-world/workload-a[Deployment],hello-world/[pod with {app NotIn (x)}],TCP 9090 +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}]",TCP 8080 +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}]",TCP 9090 hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot index e6e6339a..dc7759e5 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot @@ -4,8 +4,8 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app Exists}_in_hello-world" [label="pod with {app Exists}" color="red2" fontcolor="red2"] - "pod with {app NotIn (x)}_in_hello-world" [label="pod with {app NotIn (x)}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world" [label="pod with {{Key:app,Operator:Exists,Values:[],}}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world" [label="pod with {{Key:app,Operator:NotIn,Values:[x],}}" color="red2" fontcolor="red2"] label="hello-world" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] @@ -18,6 +18,6 @@ digraph { "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen"] - "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.dot.png index d2fbe62ea7e7b579ecb83d30ab1dd1777113f341..030d8fbc6d963b6198d3421fb15825f3ba469cdb 100644 GIT binary patch literal 57565 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

      cPeF&s?fKwd5uOceqxG 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 literal 52298 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%0DiZa_)bz%Qacp*UWoSZ*ZlfhHM0Oq+ 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 - + - + cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections @@ -54,70 +54,70 @@ hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] - - -TCP 8080,9090 + + +TCP 8080,9090 hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {app Exists}_in_hello-world - -pod with {app Exists} +pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world + +pod with {{Key:app,Operator:Exists,Values:[],}} - + -pod with {app Exists}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080 +pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 - + -pod with {app NotIn (x)}_in_hello-world - -pod with {app NotIn (x)} +pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world + +pod with {{Key:app,Operator:NotIn,Values:[x],}} - + -pod with {app NotIn (x)}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 9090 +pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json index bb85a57a..47cc750f 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.json @@ -51,12 +51,12 @@ ], "ingress_exposure": [ { - "src": "hello-world/[pod with {app Exists}]", + "src": "hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 8080" }, { - "src": "hello-world/[pod with {app NotIn (x)}]", + "src": "hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 9090" }, diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md index f33383e1..e23251b0 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.md @@ -17,7 +17,7 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {app Exists}] | TCP 8080 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (x)}] | TCP 9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}] | TCP 9090 | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt index d25920b3..112f7335 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_1_connlist_output.txt @@ -12,8 +12,8 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= hello-world/[pod with {app Exists}] : TCP 8080 -hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (x)}] : TCP 9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}] : TCP 9090 hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv index 40bd2249..569aacd0 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.csv @@ -13,7 +13,7 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],hello-world/[pod with {app Exists}],TCP 8080 -hello-world/workload-a[Deployment],hello-world/[pod with {app=x}],"TCP 8080,9090" +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}]",TCP 8080 +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:In,Values:[x],}}]","TCP 8080,9090" hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot index 59318f9a..cd1e4094 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot @@ -4,8 +4,8 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app Exists}_in_hello-world" [label="pod with {app Exists}" color="red2" fontcolor="red2"] - "pod with {app=x}_in_hello-world" [label="pod with {app=x}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world" [label="pod with {{Key:app,Operator:Exists,Values:[],}}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:In,Values:[x],}}_in_hello-world" [label="pod with {{Key:app,Operator:In,Values:[x],}}" color="red2" fontcolor="red2"] label="hello-world" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] @@ -18,6 +18,6 @@ digraph { "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="gold2" fontcolor="darkgreen"] - "pod with {app Exists}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:In,Values:[x],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.png index cf7973987d0f99da75c1f573c9a3440504748ef8..0ac26418afeca7bf1300caf73037a48bdae64e21 100644 GIT binary patch literal 55246 zcmcG$bzD?k_%AvJU=c$rDJk6`APgu7NWFA-NlSMLN_RKXjdX{kbc58;IRetnoQ3au ze)s%)Kj+?YfA(zWv-aLkuV+2qXA$_1j2QZp7f&D%2)cy0h&%*>dLIJ0XYmM}AwFAN zrQi!yUs6m2g1q~e(VQ0zfsjKaM1&QcQ+_YFIpa(x!v35Mgc$bo%$$1)bJN^QPJaCG z{>%8d`RM9#jRpxPQ^#5=^R${7`(%$<>2EWfhRHX0v&M5)ud)}oO>t%oYnj%jI3uK! zQ1AN)-Djiu(T%!T&NMSMn3Q;QwffUQEzW4>XB?9U3=?zsA{k&PR z{<{`>D@6F{ziaZBDSoKsd;e}RyP z4Crs6Kdc-sDr<2)T6;kLH6qhXkJ?VN!YmiG*LvyZOw<$#G`r2}H>e+Ef- zczB44iWW=WV?})9`M=~tSD%lc-)SGNrJ%r3uS8RRsrXbU`?;zvpxC?j$J13HRb72j z*R5|P{Ekwtu@c3ClkEhisQ83nfUYg!=9?)aNJ4^9f86B6gvCMw*A&V2UK&++7=6VuZwii*Vij>UzA^ixLn61x8UbN8IP&;M2fjrBgfIiy@VncKn9@dXDz zKYy+D;t*j`LBUL`7qTw#HF4NNqZ3Crp+TeL?vnxff9&iyh$=j;PTRsWYr}rMGAORE z=as5SO-*$>+bbz3uz5|K%xyVaVI-MA0Z2>{^l-&qdgs@I@;sDncL- zPQQO0jJ(4POaylm@mMi3GjF6UdLeJ7wVW0XR(m=&EA=|Q-rjl+xrmANz?=IU&3!EH0u z348SN1QED(v6+q;9VqT~wOflLr>zb5#T2XqPmkB}GbY+ztzz5kmuip+l9Fm0u)2+@P$W$TTl&jtkIs+vTF*^SHFP zv0;NYpRWXqDC+36S}in)SKx`nm{i4Uy9R!3*U*c)bJ77mX9dCmL2!Zy4WKmhGDOvS zhsGM)Uye$mP!8rwCp-TB1tg>6d9mKt*9Yt_Abjz9gNMxXTn~B~NHy2XgaYwSXiIK~ zWZrMSb9M4d3NmH2XL~rDjP{n6B?(LSLUL;1t_)BTUfZ=qleB`uLTs|G2RiT1(*Mld zc^VbXf6R6M5|D-6R1t=&HE}UYU9z|@Kjq}C!-NJ_@71k_u@-6C4RVRtFE~sGs)nCC z13L)Z?4n7v9AOUOuiyd?YAg2r*NCK+lBZ2ywd=d%X0clXH{jriW{XQt_v#^WdRU5G zb;(paFR!I_vyZ&pUs>&EY1P!wVCaq`4W2XuL4gQbqTQ_SKHucR0WDE2Zx_d*nHy!v z#-tyU=2;LC(WtS2vZV3AU0O}Ya|1n9z4tr^VeIFeibz!{;7dZV@XH<84i2y%^F2A&D+~s~kIKk^)^ZuTh znc3UDNM{ZY8yg!_(`}%LI7YQQs()7w3ts=}z`41bB_PJQ&!Fg)m|p`>@BSywNl5X6 zoPLDp|MM97|8t1`fBX0k#ZQ4_7CpnT%^N@ObaV61OO<&+{7kB!EA;F{G^S*@2Mv{i z@jgc~9T!(-OmFXi{^PX7Sgz}rT(OCRx2BbeqH#!zN!zwQ;HTFfAs@+kEjB9&?xn2M?WLv^+PuH6ghWi#TM>(`u+Oj@sN#zT zydPs@KMg5X2QptV3Zw=kbiM8EmC7c_!?T%scO6EWPjJyB~X-8ql*{ptJ>fv{#WjttZis$z1wS7n)~fGY46#FYJ9TU!_PBDs0mqRek>z>IY)!y*stk{Se;!^rBao9QRUKp`=@4@skhCdPs z*JcxDjt|&4?>NRlbE>bK8+3E)-QBP{OOWLaM4W!>OQDi@(U5(oIT-A_WI*c%LAiGo zCwrpmd(`OlW!1KyO1$Wp5umA>lAFC4wx(XSZ1aZzsz3I@zh#Ddv5Oh10k$-R`tTJf@R{P|Pp(PPL8 zX1fqXNTjo|@np{mzQFXE{}$=yCgxr>cY~8@yXN_*ueT`e`4Y-jmrD4 zqt{XQ`K%toy}z8BuwPhr4JYEnUOVfgx1NwqbV+pviinJ@XZqZ``K`ume0p-wB4|~M zcE*TRE_x@O4{B;JS438jzb)cYnT$+mXSrxQF{M`p1YBh?_qPwk97PsL3Adog;3tdA zgbV0BUIi&hJ7sVMdDRa=hLv(3p5O?uM@8R!Q?(!TE)RSc5TL59U3Iu7LtDRK;3$M6 z8_7>h@hdxBpkMT7MQyw$Gx9p)?Ta(aPNbTe4;dY$uaV*R0V#Do4GAC3IW`ak%nw67I-;W0l&Ai*&TE?fxbLNd$PiUilec1?J;uTT z!SZcw=Yxy6n-#gvQ7`i5W>+yZm_r|IarHTy=FhFx$YREVd~tflXK8AxudfFlwJEZP z88(-M*4Chs4p4^u85+t6OQggw4*n7qofCy!V^7!L7xi^RL1;akkIb0e%l?ppPY5Ly z_gYIqES)6eLJygnok^jrN_ala+4PEqrQQF>JxJzLCCoO)?o=80Y@w6mVHiepiS+*O zwcTA;H~#(K6a0L@>x5+oS&L%V*Ti{wSH8x&U#!bJ*0egkvnox%N_Ew*7K4m;Bfm?m zp`z6jFL{n3XJnx~f4I4RHouC&Ar1KvP1-+{7Uc2J`=LK8R@<}gdN{l^9X70?aWbV0ogbZ> zbvDU^!-wYP9*_+k@(>&z<+Q(bxpj|AAGWm(c@>Ui!=JampTJp}xW3*C6|t=A_|e!9 z;tk#3n_|(#@@j9vgsoXxx~dSMV_YgQ1U*8P5EW(QQK4sy0TR$oQB}g^#lFjbu4F1dcl13>ee#!~=p+P{2*4`MMVuKYpb0+Wm>6_TKJDXmyfx zxu`RB(MgAK8+L{;YmTsJE~TcbYms;zNkflF_T0_bB@9pkH-_*y@*MXeqytC_Z4UNfg*wozYvE63KCTCZ)k-S`_qV~{Nn(X$sy~gigVQQV{UA~Bm z8t&%$nJw}quQ-v3-JG1U+3H(bbpIVMpav?snydSe=nb#9`eMfG?*Trt$B1r)YfHUQ?SnHeT{*bG3d*b(u8W^RyTo@L&1q z0tn=;x`vD7(=%t07jaP(u`%C2-#6XUG}=`!$o9j-3;fuks2boc2*H8^XY6P}L}NY! zFFXL^$Pu+R9R=2Pv{`+&IIZI@x4%Ug#u#ja`0znh@0+GF&0sPuIAUWZy1E{{dO*bv z^8U@Pgj;^|9-V+g~Hs7l2nqMZX_~ zS>2oC!>Qv$MAdB>vIbf3S^Buj0jYvwsfw93qkbtK_^ZLx{wGgGrF5E>h#^b*->W$5 zE28Kb-Z73lG-tgFq0LB#vA8B2PEGx&U7Sivy5_+iFzz*u78Muw^Y28Wpo}+BLa=Z^ zLa0fsH4R>a37ZhS{)gX1zN~C|C}nv8tR14LVq?UQHv8At`)Fa?tyIY{n0i?ss&^+9 z9_~NFK27?fBkp?#TcM#H-!?f++>u8x_*c|X%rDfml7OMlD7Hp9P0r<-YII7<`VSKi zwj1E{#go$r2Zz}L1$B?+JN3a>w4Zg#D|A&yH|c-b=17n9XU@Sw-1AO|q$>Cx@#N`x zEQ2qB4Rbf~2oaI!wK~6D_t~uZWxd_4Ml60Xr*)d5HnWPN_)~(u*jQUpl&=M-0WiRl zlwa<4Xy|Mp4zMW4!)#@hyy;0Bkm6D$OP3ZaPL*(Y9R%MATAO(|*&i+dVYO7XtpIeQ zEfC{}dQx&L>g>-oPFH&Hqhmx-NgQqT2IF5KnY0;|6u(bQ5aM~gU$Uyz)+w8uHg|An zcyu{29sD5;XfZbSu>DJJvNgWb(0T>?v!N%D%Etz`-%zJYh}d+LfSq-5l&BkI-HwX2 z++3Z|rY*_PLd#Q#p_qqgU-6k^`ufB%U=2{nz(>G>-};g1erp-2U@<9QcJo=9vWl2C z3mZ*r9N;wf1d+qyr3NBIX>q4&34|5rdFX9X87Ww+&i0U*)5`7u5eMS5sAwNt|M9== zD=C)Ju8~r!{s0z=YSr|6Zq-|x!{%aP`C{Q_VqqV__`$(!MD{CNAQCmxhJ*LpMLMwr zOi={PhI&2Q5J*B7uIL*QZhe|fAbFrT&z%?`(#h#7ZTC^+mbrXX)2DAu7KuQE75ZP? zXN(vrDe>1)y(QifKGLNcsvghdf}ZiZtMWUBxV>Q%&}zB19Y^P(S_E0nSKjx!DBd%Y za%(|P>NEA7!wSvN(JyWm+wpb6`j85Ax~@I)h`Gn(%|{?zCtCR zGM16yR1SRveBWzvVd}jIhz@=0@eGJ5x@k>H7Ofy<&NeAfJfLFUU6WXR%93B!oZE84 z?Nkp8{GyYVFiQyDEOtL8q68S~f{ze0|?S>}9 zK-&d}Tn%e3Ew|l}B33lC$=2(xvmRKXbxT3Z74wDrSd&Yil8Rc5MWjk`L_CXFxD3QQ zKVoAjc4LTZ!L#u^zqZEguN~$4V>Y(lSX$MBIJI6_6eH_7W`8tzm?>J$!~}WtXz=al zQHPU39<8&5%~ve@8Wo+uzxs!3uQ$Eahf~VAxpHm~<0W)%D=J)1LK?FJQQB;Nd^z)|PMQznl#nGS> z-1Or1Y#fuM@Asa}RR@{Wv`*RH9M7lK(9;y+%}qg`^W*WRR#?rKH7zZ8DnFXw37wmx zBl7a3W${KvyXDOZLF@N4n6>3cagUvX?5jP6(gyl41EKs)J>wUMjGz+LRN<8q&X?k% zqPeY?MQi?~AKaF|4D9WN81yhMUSLSdoW8mIxVX|4HYPvae0Hhr`~wMhg#^CsnwD}C2o=)i8&~HoXM1fpLtBr2cbL-`%mea-QUa0cd z`DIph*65!pPL6y$79%ogQXZGvHUua&i6L>(@Ok3bVhgRX7mZvV6TWB*8Z`m!jkOku zw})uAp9v_}%5VZRbXY%jiL-}X%8|Us-&9KxqgLA)mjz)0JPqV1kt|8P36o}pr8Vxz ztLOWz)&g!*hrbNw*KI+C^5?J<+$C@S3xW7_Ugewl7*a(AdPO@39?sKwi#ugeM?I>U8ze;7fB_9iv;tz4U-3cO8OH`RbNOCVvDrL zUj4w((D4Jb0Waj)?A1Qz#Kfh)Y^J*IW%9jzr_KjK=Z)@j#jW17k zpQi90Z96ua9~neMCOgZp}CRG=`cI#67B`=#yFl#KmoNRE?}o9E?ti+SmGB-PdRMOqKp^wm|KYu3)e z>X6rU54@@h9uwokzxU_%w6`~t=yHm-m0~@ci)9-{43gc>2X{^YzURsVY5{0QUOu)WNjpcY4 zS?!y{0K>{a-owu*ablz|DbC(uO3OZHz9o2udpI2!QDGcvG{?QWH98tRaR%oo(eWz( zlKg|_QiV0ToYyXDubJm2l&ARQBzMlr&I_RtR>8i%8XjFJ)3s4`>AJZITdZ}jw?^Ks z4JMat4&?y;H~9B->F5;7>pT5iZ}mHE1jxj-zmwA^$~NTNc%cU7jr$2F@$+ooUX3q$ z&Z+BI-(GJDEMBE$6%X7DS`YoAUHH3>#mZBhykS9()w*&)jfe$PZl^TBgUQvx9Lj0F zIyqjR?%~OnxH;|a7!6dLMmt^}2XJEaEbT31&Q&^1mu8T*caQlbC1v2D`z#a+%+;cu zRM1cipYH0byPavR(zy=TSZ0!)Y>`g4G`oq)L+*mh!1u?GezZrCG2W-V&9lu7;EFcPc!9 z-ds|iaeiXj`&7qmiG77tivjK_B%Sv>Psdr1>Pgk4?^9w-A+;b^2;55IyP;T() zY!3?XiFqp%7Z*LxBq0Oz7OV{fcBfQ%YsYYFNVAi$7rC4lyM9eHb3N7iK~IUa^aeVS zCi0Nw1~Ik0IV5WLpkdEtEwY7LvPvOu%oFKm?%{FB)A9o>iZ^I-p*t6>{|tx26_VIa zntsLwbRJ3T(RYu&`x8>?@D88LaQ)5fZ$4ik^6fE6rf>mcOS2E~rkO@N6CKen`_ zTCco2u@HOW5FGB?cY1}hUWk%rIy$({t!={-E@~0~Wm1Yop9d*+3swZpTa%Zrl+s=f z)mu+Xoa~QPRL)dX&>WNZ%SwUU1@Xd7(n*TYDyAlItMXeL8vK85)iLLGNl~he(EEtu zHFtJ6sbGwgxXzPKn0Yk2&DBI8f^364ms&ioTmvQydPMRLG7iB*gGq32PP?QI&=Djg zEBw$RKjce_i^Ti&wU&sN?4&q^a?Xv-{^GdC^A_*+3J!=aFo^#NC&5|AtXFv1x>=5q z7cqnCX)RojlDqj1P4#?L*qzBotn6&YWYSxEadqztd=#qsH6x2}ZJN4=|`864E+ zJd>p%emAP#qv&)$iLd?us-P$>#1zL`{pzE+caQHvffVxe9CJl zlgX+?Z`HvOAnl}HUrH0`PRY>WjcR^WIm)UNU*5mMt~;-V6B7L7tj01+>@pzRhdHb_ zkU7cW*vF@(sMMBGEwgcfAUzr3gXXHB;IZFicc3;%oWJS2k(HLdeB!>;n(@#;DMVQG zi5enIu%Wvo1-)|b8Md)!#zS7|hqkcGkKvi;xBJNM51;}sq}ZuZG?>8jpSKK7aj%O8|L4ZgLDs(VHdCd`z8`2JA^yrOFod>^F4!@tYM?g>y?V zH<)Y=wGo9xGO{1ymKcIr;-%OO=N=zwwL+JA_p7LGlBS5NT$<6g7v?4|zse}C_hc^* z$v+MORVv@E?kS#kn9idjvcvt`?h_^-k-Ww_ykxr8_M6#K)rtRQzF#@~o^%;oB)GM; zfzQy%Tl`dIf9sPa{P#?~-EnRQV^V0<#s+D0@725=L1Oscr{jddwDem}`kW+QU^2|G zor^zid^kH7qs>0&zwlPK-nrVB5LM(aGi(Y~BL0e{6NqJ}bv^Dj*_zax4pjc+d|0st z1eZI6Ty=CX4SZReSW`ul_z1@7Q~ybhCE_{w?Km1cdro++9-XgAdK_{fAO0u!{?P)8MOm(3VA)k^m-n$kggGBkYBilelTrhJt3h;pW&*V3wZk`hMxYz2F$ z)|zbdZq~iLw4A>)f$}FAQ`1DdSAp4><0_gEnN0)X*M z#loHm9))NsQ43ybdnN{i2;*l_j9bxWMi>NtRl^mpn2}HSR4*+A*-kzQOps6bXC!|Y z&#K#n5lB`Cofb*hH-9WNYMsH84_C>=4o{>1=$xoZN~d2_K}{VTUIuww*F}=ITXclT znE?mMbbBrRSyL%iQ3G+YjM;Uj+oUa)Fe1wlH>wlgq$@m|Ch)u`jCyjafy}v$P}5Pf zsZzn(wA^BDs?~8fTdeoQVsYr|s!NaTB2%sBto^C0Tcdjy9XR#eK`2Xw+Eu~Z0}VOGF7%|S|$-csehWbx9y((&_Sx#ANHvdJS2yA@nN8_ z>aB*MbDrnHPQ;_k`|(Q=l7j_3f>MLxicXeZ??5 zp8ZxMiEZqB|G78xIrMc;Yxup?;Vxp}BP-m+gx}g!>8)`6pW9NjC;JJ*M9y=vc+Jh< z!E-^B591=-+_LDI9sg;4ikkDx>$UU>^MPL&8d8vypT?8ipb=*_n3V|q$lfq<-eUFFRsQo7*$H7LJ-^5 z&*#7!>339njjx_lZRKIMD%f}>5$2l0b&#`Z>DH~s@+X~vtdF6n_XC1n7YdT=iD09y zq+DSTe^OLFrJ}BHxpgSXF?#WY8?Vz8?kxO!s~mC?hG7$3NIOCPCDVgumaQ8h)4@5@ z^))0s^Es{}Vb(hIwV%mIW=6Q4BU8Jm@L*Y5wn0o`4rlBGWiVIS&@zfob_Tl>Tf(Y6d?{~@&E2iDyi))4 zbg1eC$jwHqe)XFV&PeIfr4V>`Hs*_Q9)b4NW^$CH!uoB(d-nui)>omCNz{$}W-QPo!U zkw}~hAUd;zJ{RS5;m@9zK(WJlk9~(XJ#Jlk4%Y=LeqWEpAGfsp>AjQQlWsAAsi&+R zOd2)Cxw*!OsghM%C8d2?ubr6&rTsnbMH{iP_}1cLEy)mRkLOvr@oY~{&OL}9Rhlc* zPR}oY@;XYUlYPTBiq}Cv7j+*jt+ID#aJoW=9HYKkFhI=7VG?^{dVKFm$>yuDr; z_S*AUdEDH{Z`$#7twbZIy`63bd(#&fMw&nAm`s}DRI$WtRqye(Y~}GW-OLnjax?6# z?w?_uwfB0AHlI)>et}%x+Je}9hi<=A%T*(}Ah)~1p{U9Epw4{q|LEBKcZ;cov+lS*Spq(PV;P{iT>Y6 z-y~cw`Hr_PJZBhfi6}qiq47dd@B!;FkoqG#X^C@k(#URpUSlG4EiI%jW`=X=QAI>T z5@A;}Avm;SI$l~8Gbuzoe20gqf;ZbgOwyJydK4{jX&#-tk@`}1UATJ7sW(FO;?3ff zHgab&?9g`D>n7f%0~M^a@^1E=B0Iey*xtF-Q1t&-LE;2;h|d!75cvlriSMyru}{!-N1g;y9Ib7>@qMz6vva^lOiyFuOD z=;ku8l=Rl0@XSR1Y~RFg{?62jQR1ct$#t}ylPV?ahW69w4#>Lo;!C;4b_pmWYpZLz0+{gU#B^v<>Wnkgt!O{Ze%^^no zi#`Tv#56$ z@A*XgVS#8>fon`QQJBI!^0M-$pJ%W*HZa?S);}oYOtq{^t3D-MucO_rtvubzDTP%?;GlK-~(|%d#{*sw-^Q zLkgF_)FCCs1Yp~tZ`}!R77zWYM50Q(eY< z#-zrMaC`zG{|b;RP@#qG*&XMHQSJb!bvfjamoq@039 z^A(GxI1vvv)Ty!h436W}>d|@;YJyN+(WIw~Bw&dH2R*|&wd7h~-*Y$#0YukbF#U8? zY_>Q0(x1$1WwAgZyO5DqOs%@lelryxiZ(nP?jXz(1WNWQ%46{@A|ly^pk!=w!hT+) zbKrB2J$XIoiOcfag3Pz2#W4iTG5E}e1qJ2IuOV$AZT$Sz4SXdn+IPtA=r7RDs`stQ zHfMW?pNT>FCxf!M-DY<~HiT8s&j<2W7eCl`J+?1ag$5dVAk_&J;7@i5cYcT5maQL` z5RsP%Z2A~k^)V8h0n*X*5!ycxV%d8S(*B%yLM9!5ne?UuvpSl#I$V$$5&lN0^VXQ$ZE{-0RY`eR(v0T{9Qc=wDc0rlNI z>>ScO^STYos7RBclS&gV8z-q$G`uIP{z? zAl`vv{CvliCV;w=?)L_7`Q74B(E`Pj_yNQkp;F3;++7UX8m?+a!G`4Gg5?cPPr}E` zWUIzOn7>_ffkaW!_|8t}`qa`7-)@PRoZKMi2#bebH-_USCF$ts;@s{*4t(qYfDW_k zCfj=c29|cHLJZ(y5dqXu@Xi`1Nwozq!7r%m4$`NnM!rt&b)Ftm|I+HgDX4bz@@!_|}fbloEAB-yjWE~&h zFBzX?)w;0A1l>J<75U@|(CK<~Ix*WcVp2mrkx{;*Ve7 zl>G7qK<9n^$=}LMP`!gYt}c&jxZyJewY5i6$^dN#fGo^O1{~Jrl=zbO1nh zb;%p$*mj`H+mtJ+(+?*5w_LJC#88!HeKxjh)PlK9>GamtA_fPWniuX?Oy)&|I=%rv z4WkZ^sFS7X84bbx;7-L(Tf3ak_v4Zo);Cr>P9azUjheSOA}aClncm@a5Tr$7#8UXL zx2YuhhE2dNa*D)x}OrtSo*0kc?^MyZzH6{Eob_(4iE*Q?#( z$m)0VbMs*kd`w>?Ks+vIUNbJ97W7m!y#Z_h6xhY3IHS$$AR=BYL>j?-Pw3%!n>XlB z;pYcgFnlW4$>HGCvAH?b$r1DdG-dg^y}8Z4S5E5E^+Z8BR8f<0#sUNzMa_`2q+xe} zIBU0PYPYx_Q|vh+0GNI12wfN-PTwpk0TV{{5`948$6ilcWZ?(k5gWC*lM0CJKU z_Rv72rh}2OP(uR9lJ4GF%8caAERx*cIZUT(XaHRg@R{xXa|sac1yIW*6G}~yi#HRH|}(FO9LP1 z-f(in(0TJJC;$hboOHDQMkbZNEkOGR`c1U0t*Q)0|IdUej|Txd^Q!=EUP%XdSnDT{ z)gj*5IXl(DM}L5>lR3-c_QS*MdCk#&*)$+WT=9zwMiyCmdhFnlfN+%o{YV1F43wvD znb#c~>+Syz-k{{9XQO~@yklB&sBhOd`ta}= zS%w$Y%DzVc&v9`HI1~~GdLJ6d{_?a(YWZkeOY6G*%QCr~N_^dS5N$*I`=LElP)SK5 zC>1s|6SQJQ{s<`)ylakPEyDAaxaZe#@kioYS@_w>1#O6sY+LJ6E&*tX(4U!!Iyign zREoUS6!vL7)3IXi?+u(Bx+nBmhy#~g=KF68UVeV}7x2YlH&!_*i&{$aK)HDkqhl4f>LD@)XSIB_$FoJWvwI)5Ae0pT94E>iqhO5(d zwICH}%JV-v4ayR5){=NpIv4sYA^~f%g^h#yi;;0u*Gf7hL94R>aM!3wC4=sxN5VEb z$FHB;@#E^s_lOO&-F1HwYvQ$|N@n_#to`v{Wo7&x>zIp`S$B%5y6vE)79 zLu2d4s{nyESn`n#-b>Un^jS@1d`W4ef`XX1ZlJxS7r3-fWOUg3T`i}=ROLd=AM+M2@_K_qo~2ee^G zR^nx_QC*F!Y~Haw=%=jWG_HOzN?}|ck?^-^G$w5b_luEX1S3Zg-oB7`fOGTw`e8a$ zlljo~0yK-(i>Ug~TkYA~Hl{W%tT}=?XwT6uKA4|)&EB>)`RwH2)>D3R^m*mP1ax#5 zw7O-BNJX=8}*A`hKWYT?4o+x+c7BvpruvX$hZ>O_mUylP%Xsq-!9?Ie_Z(j zPg7#$$b?9(ASgA8;L56E}eqOAHani54`aO&G&fVxh;;2a9^HC+SuV~L%%Q&X46;M(Bp;y(qm>V)Ex{I$dxse%GS#oPCmEbK4a z1-_b+(>osg!G#|D5VqwD4B$_7{}d5$jn`Nhl*YC4Y^Chzj-g0zz=nJVK zo98cWM1|KdY0*)@T#Mcnd(FAT+bNw3H8aotihUOL|oZIQ8Qb={KE zIo{&wNCIeTm%IWm*$5w8DH+pj5N&emtZueffe&{sDZ6N2j=7%skm6n&)p-_cbS|RX z60%y69vqBp>-UuF2uNB)oWN?v;X|NV`{Ys>&7Jab)2wazRvy+NNJ_K8SdyO210&#&YHxp_neleS&87PJ1UFGBW{x zE1Yn-gh%~vFrcpzE!d#}2eQGaRpqaiXm!7Q8K_HmJYe>5Ha*-1B{u42>C3PX{Lt^rJ+dejSqHKaHiak zu*sLytc-%}`M9`jqsd8M2~g6w+B+9nXv``j^275j*9HO@l%St5*}M#!0@X?eoQbUs zH;U^L&{MfW+Cq`zgx@$RiD^Pd@fg}QD8Y^eQ4k=#oejCK03QFj|5<`f3{_Xn`|=Wr z7yN-&lh!!VxN~?xmgtpB`H%qF0e$FbXkEeem8Ytax}rh-K_n~+lK}a_g+Yfw@aHsz(*Vxq?Zt(Ysrg=@W22!;+^`AotfIIILf_v zWUSj2JK2t2FQFt@4?`f>DD6TJNW?4Eib?zJlU&I%T8c5QlB=u{HuAx|>Q)v4ro6omQTOVY_lYW%GlQ9eM7TnNxft6zi-)N$GH0W^!5+dI zyezB;fdugVJ2uE=dvib%CMM#lQ#55OB5*};@>|2#KTYcDiXcX^G}r-jae>cQunGaH zAd!C`86#&{SWH7v>Pi^>j^-%URickM-VPtzU|d7!Zlt*VU+zT66r$d-EHxbQ5Y-j= ztAU;!g9^(~{l?GK8hN$ecLO5=fQf*L$9t*1`T5cs;>n@rEN-&nmaE0fbW#eMUeS0X z_Y>Ajv^xp6#ej}5u=CHgm!`|{i+&@8>4Jwy_F1j@AlgX_ey2AW0?{q}mqtl>SD&hL z1p_7}7<_ZSSvb)tR=z=oS*>6|OS-~^FZizx4j$@}1C1pH8x3)l-A2vYx83aE@9mmw zDAuppcGXN(ojZ2b&`jk#@Gjsw|8XR*Tp(XTf49ld`y9YzfS>{DO~&u@=Z~O~rKYK5 zg&;2FK4`&2wha^j_B#cJTg0S-&F&cVe)TWu+!2QLx&@lwIZaOl^yDvOntys&b=4?W z;LB=^{w2TW?}kuv&u5;0V7_AM6k5^6)Ii&6P0=mRT?s7T@96dx`F!_wp=e$_8{;1a}Ao<&!b{ z>Yu))*(gLK`EoZ58?9Xkd>u&j)la0@nf?@YA2IcMtud6wLQtmIS1R8()$0-*P;Scn z5{!aK5&bnBY`kcB81iZLMaI;17~_`q_YLD2<8L7C1Q)x+Oq8^gw6v5wt`6sp z#*VuC-1iTf8*iJ;!PlhHq)y$+Q>W4fj*n32g58M#_=TWVIb-N{2u6I>(JZ?lDKZSd zve3oQV^5q{|8#(TDg-tc7PQ|pPR@~x_e5wc2073HlI^6GG{Q|iEWZ)V4%-1xkvfRj zGTQ`GfapAu8>2QjP2kvKsb{ctPV>s%(!;I!{MYDo`R1>*HYL7GzWXq42Oi7Y1>;%q zZhGOG8yh0aY=gm`*PA^_;iKCZ)xyY<^Yny!V7fCxPR9~ zE~F@4z84B&66ApHq|`)S@WxNRO7q4!{iwdx=?(Yr!GioIhm%b><&-ETh1q3zE~{h- zev$a6@5@V51hs^noKb(FTVh|;1M?z z&j>%z@Jr$s5&Ny*--6W`MmYB0P@c-TGxpO_W^TegnBD(JG$5Ao{WbTtn1~|+>XJ+O zzRk3O^G%#Y2B z0wk3A<}y@g(S2^CdQr;_5IkoB-#hmdo1CYoaLu|6ZL0{BJZ|ne(;iUw0if2;ut)d& zdJS#Og%znbe85(F1vEW!AeRJNM&1tlZS>x0ONpDg&A=}oJ^%O&`Q*V?UF?!wPnq`Y zWW65uP<)+5=kT_QSltZ6iR{?@1|Xdd*|5q zs7WSmULDn@+N)vpcuVv@`$dI0YYTY2j*78y%(xF}oA}p<^~2q+#HX9BEf8KSW>@c~ zTF6RlZxyw|>=ze{mr-xhk3~({e7kf$fS^Et?RD z5SgvI0xcZ`~XN>nN1wFj%!EIM^%PeFu6# zE+yWGx$n7Dk7lK28$7AM@ZGTkzUt<6wPzjpYVE2r6wQ&QRyl)f-Tc(ULnpYI`lw|< z%L_ia`o-n%ySc^lURjUL2FlD~0M7d4VSNGf(RPJ>i(@i^{e(Up-a++Qm9 zjPs*bUO+hSibU0X!?7|2pWCv9ePy%xrWPmXPZ`hmg3yJliDpjw)cKi3x~RZq2bGx8 zx`gV_#bv6kn+$H}%$~!OXHC=B@Qpd{;8#NDQZ%*rQpxB1ckBoK%RUD#hg$aW=ZN4p z)}F1_8aX%oyboZllSi{o?s+>U&s)N$Eh zAeyqmA`A7mdAq?ndo#T#D+08T`|Zpun74+vCRJztqQBN_`x8I0RS(PJ?fMYQ9w)q* zv%b2fwIOw(qtjb3Grwn;WbwF2nyHz|t)-&J8QuM_KtxpB$?`$MB|w;d37>$BR$I(e zfX&J!8nxXGz(rUUwr(udkNC~TeX<$$Vk)w*; z^)n6TXPO_&Ykyz#k;+W~KI$7R9DYLe-rmV?Y31bRdtX(4x9uur3zd@CZ*CHvGjzz&CSH{Z5%joD@i1{&&U`WEskS_T&ifOx*OMoS6g+YGeKD_h7K; zGE?rCS}drFfO@}N^#w`Eh4n_Cs5nX_Muirnk-W0igMk}GD5ijG2l^m^!aRrxj8SAFxrlx zb8ZW$nAeLjMW z6)BdNNUJLp#pneY&mfrkt)5U1x8?cOPkjy1xV5P zj}#KH1gu(mKmM7hBm1D~02v?wG^yDXmB=`*%pLG#oEnicLA>DdvXi~nQ2W$HJ}S5Q zpZ|xG05aEUQ=NsUdp;OZ(jS&>>nD(JT}@?NivJf)UjbCr|Ga(a3rI;fNH-|mE!_>$ z-QC?GEg>o0E#2KE-38Sq=psu4Opo`peBv~T}vN6O`gOE^=DNzbhNwX`WW;aBf*wJ7eD#~dXj;{)^KK6 zAUgV?T6)J0Ghtji+~x=cNP!d(89G22kN`K~?>-=dRbZ?-B&PKQ=M$?pknm+Uu;72< zUf@i~jntp z0eZ8Gorx=VK?PZFUi9-~(&qc4uawLHjRMf)g8NI2BtU<+;XU6&UJyC$5P`lpJr7*48B39|d6Z$v1kfRL;F@6!y2@6Hrb zWE0VKZ??XjShE67w*9Lz`t}JB=l3o(;MWQo z|1e(jo$%TAYi`W`IkTHEn)IjsU3Jg!Ooua^D_7@wRbziBV)Q3WxbE+{HS0a7fBGcu zxNgYhr&ulxIGGNRM*n+|=-B9)RHvKXe&>zp^HszT`4>?}oqe8{qb}uawR996nTC#7 zz2lXJsi%}T@^4XUie@}CGlf6OKT)E6`Ki86c)Sg)=2_70{Wd_UV9Dew?9qp)ak@?k z(bY9+O6j3s%boN;84n5doZh}#S3>-M9Zz1;?xqq;+@5t9yETSHMfa2RR3?c(O^mC$ ze*(}c7uMicv6AY^y+eDewq|>piCl*jEAa3x>u!3@9Bg}^O>DN+ow&~jv<>yOKm@Lx zhfzgBK|`Ihd`{_*8Gc>a(m`Cs&h(c4BW-YJzx~F?C*OjVQvzr(iwDL!$N}~7*$v`P z?F-V3*l6*ZFVAz&*^htJ+Ha}SHGcfWHOw#{7&3REq)?O^u^-trt_?<>0vk!11H9;ShxPgXIu1pQ{l(y&8OD6#}o#?8=vVF>d?o>;=8vx zw*v#&HO-x_$u-CTXvkVHZEgdtC4^W7Vr0eQyk+&-Z&z{cld)Nt{e^kPiL%UY#=I{T z46c?OG|u~k^?7PMHeY8Mm9#O%%1AV@t0Vm*DL;`1lLxQv-3>;wkQ<;h(;r-&-;;CP z`JN5;rw1oGbrxY+S_u_F1wo9NP91g`Lngu>9sTMc8Z%|a>Cy)!!haXnjvUknCBu|q z9v$;EzfFC+GV}3a*~>2Cei97~1c9EPy9Ni7X%P@0n+bLu6-v4$QJ$YkNI)0}aic;d zzt@lvAd^NKD22f}x==HMCxZ?;lJM#ZT|`_x`+E)tlR+eLB4K}&i$;8J=(t(p3AleS zQ0re^Hj#bBbNh!XLn&O6Z)kMbC+c~m;yHqmt0z#B4J8aF4OU1Y^Zs%D?aN`SX{6i3 zk>28nk@vSGBUwak7X(f^PON5odb>)t)8~r4J}Tc>Q^g!IKK!I*OQ)6UY zU8u@TKI8o?0wLL%2`k-snAJDV~)Q7Q$8F&`!kr4Q+_Y!;zF`( zH<`qphKF}H{KV!;kA*-Q%q?OyMMTY2eRAKhHu=xBjlo5SsA0d14OD#_U#|ogh5Qox`Sae4mGo4g(brp}V``pSUw?-{8t0f*6|EUnC0DT?>t0COgQC9T5LTd`fG; zym1fE*xqGlqg?NBgt4^BDTFO8>o#nz%aMZF+G&Th%@vbB!dXnD# z8_y|o>j-wQpQ@=Jml^pz4y#={?S?C8(R6O8j05fFKqnulK{)3>ZK0)v zMGRSujEbD!tbOM;;v z*S!J^S}f04*Q|4qg>KK}OXt38Ax-5g47FIP_a0Y4i7AqaE5O487pjL)-5u;tR z>dWD*gC$6#!DQ)=g)|TIP))7T@onX(AJ@iBj-&_`*U9Pe7d@sSEf7dEs&2o35>Yu+ zXvQPF&yvt3<1r|NSQO@K{dpW`;ry?)v`&}3%A_OCo2%i;4S`GF#;1?jS_6%^T>V`3 ztxb|wF#{G8dB~#FwoO~DNOW!$7#xST3*Dr%3+KElM0{9(t3?-3y$fv5P1cy(nN!t2 zB!3kx%gq%ILn7i8#>9r%Y5mvAMUI&kT1*`t8HoEOjlQa?(IjMKS#0Cg9+sDcKle^d$c{j7{iY68B%E`+ z(40tBqX5q7_y=rNAo&~zWXv$3)nKA|k+hAB0e!;PjtvS8MRs{AHWD_T7QiamnH6pT z1Uki9H$ge0?&h!};8O5{9RwgjVT`hRc@<8ZCQPc$sogbYJtC2Eu%$3C+kuulGEMn6SP0lhE1w~@2fOQ zTRz9}myU7sGYC&%@nB!Wq_5L2uwlqicr43qv()aa zL>LGqMq&v{)FkX!hDPc1I72oBVM~^=c7Pbzo zD`lplHW~QEa~46OhH2tgG2-P_Txzb?m-vZ|Oe?SH@SP5X`61tU*4G>i2LsDtVo(Yu zCH0<$v>cjuI$j&j>4g0RX0P%i^Vq&U5CVh92PAvt~U@bJ18uuq%e z2BPa;R-I7pf7ip~2+PjS3L21NVD*$JD`mF__2YNN#wNuF82PAv?x_7NfMZcGAXpy{qV->;1#FO-&$W5oeLnLP&joWnwFUZ%H6Q8PN|QYn~2SnOf(u zhMkp7S8?&*wr4H%vE`U4D|c)bfAbrDx18Armq?auF@@UcHTc}7E*Xq4k3j&Y02*Q< zJFGX1lnDiy5ZJCh4vqj3rEK7DRvZpw@#vnP>G5XJa3YSM$*ERO@jloe{a~Q@ZH4`O zQzfW~iVZhY*!|lgE)~4Bl@J<*D!e9w;)`ypbeWjVwAx~lzGrr%vY}d*nos_TUgij= zl>ir4Qe1rfr($uF##jiO?NZ<0tY4f;h zYg4GW5;g>qQa-dOJM?hIU|aP3Dv_Ii7LGcJ*@s&u+qSiAdht(u7)mc3F=((m9F5tD za_lG6-5Q)@bAHXI;5cVb4ZPx|glsk|Pt{@h!70|HI6(^X@Q}F*3-|1v*Usks7nS_IJ5i8ejEDV8sgKfkOAraW6yWo z^CAHu!%yD{qbLL<47aw<7ma`q2;|~oe@#um|6#)$DxDn|DzNHC4D13$;KTIv$H53x zVO?=4LP5IVM^AR9Dub6t&w4HFkGaI`V@<~JUb|pEm(sTw!T=6iXf@S`v(>{oLzv9e z#Udv`#y(n7zz?Inx>Rv-fuNEf(euj;4>w7`(pO}5^zC|rii?~GFyDKUV;QPO%7Q_y|=^Xya$ol0CL}7;qD_U2!#*Y?}ZM4 zr+TaNS3oKd%hY@0NbM*2s%;5X)T9VM34=YP-DIFHOiZG+8&cKEi}3|?v2n~(*~e=g z$Uyh67qKI~VL=~4{S&EP*lmA|XUlKHblCJUs|W{9Mq<8dH$dxl5V)VDZI3eH)~E4! z%{N(VuBEa(hKGCBFF!9^&9CZo8z*q<1jmiXpz{c0kXA0(_al8DrI}cAFoXk{BWXG0 z%>Qy}J8|uj&wAWVJJkZV4QRkWL^>uGg z)j?#Wb=@-o52cDaRIfr!&2RSyC8dvC?$xs_x4LR{ZjZlDlv+i??jsR?Sy%!tlCv;8 z{F=Qu=|7CnNAMtg65YHyV8@#o?S!1Jh>yn~MX-@io;ASax!=BMnj1C8UHvM?)arFUsa0)zRS;ZHIM|J?*A+(GlOuwP z1&fH?qbv`>ek9Z$I*0JCZydc@e1bE88de*^d?%!H(HMepMGzSxBbSD{P*rVci|wTs zxE=lu0C}}rF*$)5hM{~GbX3T{jch!D_17}emTqs)RM_`uuPv_ztrnOb3tL?5?{T$x z*BKT@)PvZeP^GF2mF)xj^QZkI>#CnXxhB*XQwc(JM}G^FVBQ`tyB)*f*i^&n*YhBw z;n*{$$?2J*#Ds}SQ{6gP(5}^j>-2q~niZe@FNYQO{?mCcQt4vJW0o-CoB_X=vaOqi zOvDiJ*ko?qU{v7l;D!8cR!H~=ZCCv%q&FW93>KM7jE+z%u#gFWf9Sd)(?CRV=|9!l z*YH}K+xX+!kA7yk&c)x|9hVGiVNngNP7ei;iaOKo6+5F7eBomC!)4aE_T4Z#YJI;) z_;R(H-9fiKDIn0be0J|yXq1LB5BRlktWrv1hbi(?&u1>-&{S)_;mWZK)PNg8pdGv9 zm!3SH-fETutPTkD&bGxgItYB9(SXKx_dQG;R*55jZiC^EL&FYlQ)N}c2mF~HzA{g6 ze2wb6X2xCTTL8>E*RENq^E$-N919h+I0^RQ>!ug$&(o)}Ap*})s|vl?*$TnlyjiFj z;CswEU) z(BE^Sc4B)(=)?#*`rj|PC`1^)wd}AEmY5LAI#mn)VlTPyys!N67gLA-#tSkKHN*;p zMxYnO450U|2CPgfF!0V|wpuNyX)%PaDL8X$uNO7p%$Gxe?sw6_h>0W;b|b?9KQIo! z?ZoVpBChP^x=7R0=MM*b^^}zhT~R%#mtd6qfV3aa8JrN&(J^(;655wD1VU9Dj9SLy z!-q5$B$AM}t^2Pi&Wbrx!S~Zg5kY5{GgeGk{GEgUy5rG+oCQB49paxqn-Nr-JF#B! zC&0)EsOE3Qb3F+ZAdq&WYbj-MdQrf&r^auvqhr22R0J)Z!K-(ZH?E@-Df|42*H>3S zeuv1o|1j$^<1MxEjt)c*05dZ}!j9oSFf-~5?e8lAk*t{+oNfz-hHAmk@Wr?KNI98n zEo6x)OMG_gVv6v`9~ie?5Dt<%F@!fXG$8%)VKm}xIy#77q-4EmiBO<=Xhmt%7%K#= z3Jo{1zc+=ySsf-w8h1GGBXl>KjKVl;DR@>~U@mf&S5zzH+#m#3<0*Kwr!4#T5;I)k7SR}%`5zb*=o>teF8S&*6){@1d4)%d?RfRx65>L+^o0|&=$eu|uVihT z-Sm^?F%`^9_PAZ46!0y>QniA0vC>iqG&e>d12No@*O)1640qx zY;)E?DGJ`J@5T@+Dqv9HPMC7N76_FUZ{^$Iie-IV5(PN$*EHC&{+Aje_gbbbDEQes zr&t120D%ixTanb*gbjDbBGxtx6PlE54$B{>XeW%mUQ0r@zM|Qu^(s{^4S(=N%@+H} zS(Y6`WbOS7ww}&lKsm)j4LR-veX@No$;l085eEl60-6pc4r~sn7a}!2vJSCwlM^;^ zF`e`avdg}LZG|1WI4r{M_Xfj|f)o@KAcfgyVnc9FgZZt?4-PzFyBuv#wlB{Q^#%rP zAU4(tVz!Yc>z^i9rnh6bcH&F4qqiq9GzoYhmWS;h+zxFkM(zLE3Ix%`-VM3CzK2VCWD);C>fm45fSFN!zIh(~tJ`)5!i;qchQ%GhHXmdsR z8sE|cq2U8(oOxs1R$dj#c2>@o7o2&5Fo({F~#Jwyy;B4n0jvh)HPGS$VMhRSQ|N!#bNLr?Adffg@qxz zICzqZ)ynv`u@L(8Lu_J0z-$O2vmvyxahEhxcL?J7U8jgC zWqwiba(!GPR89`yu7U)$@Qh8@f0Bq>(-f$!EN8dM5tA_vPlk=B8_X0^dO7Pf?-__C zB~@Etm+LJ3Q13v6GZa-40O-c>b<2&N&E$fEB(O|3w!*_{2f-7h3($D?g5>y<4yVyprJ3Hz4bgx z5=mXOXT#BePi=ox^B*PGx7X0S^&KW%-d;7VZ&1A_Zw?H*{vbir`wW-ZSikFj+)<7u ze$T`EEMfsyr)zs39pZ(-8;AEVw{Po{mxdat={M~b_x2L9AxU(AO{b<0o>c+)yBzE9 zNi8;_==!ZSq$yWQJ_v#r=er=QA0lXts1&{AWEh9Ps^v_T#{bn$4DLM#Ic8 z1nAFkBSHzuB4>e8khGK=nd?TY9LT(b><(k4J09<|4>?15CaAH7TpEP zsdFQl{Nww3H83#$azwnvLOAdP+)_0l(G|3$kcdxP+OFmV$D_}r=>Nb|)8^_Z&DyNC zhSM=N7@KN+{&Mn@q%r;Xb#$BR2jPU2UQd==^U1INbK z=W&7Y$8>VBD}rNJf&@d|=avFqz!Z}PFaM4I3IcUJN^LXuMMQVL5v}`RyPh?yt#uG0 z6SXN1ktHXav$~}fqC@8wE~}a6AefHhX*5oFh?r~D{8_E$aqS9(QBZ_XRII?L_^ng( z=hh)j+kF!>mI1%vhjO>!XO{U#$^P-j5j%6^*OEOd&wzeNwDZl186ISc+sK~P{mPDwWOyP>dR z&;WVe2}?%w8OUTKgMc8vc+TyVQ3E6?={B#~gbM0f_faX2`6Rb(mPr2haclw`9kupe zwPp_9mAO6MUbF&({@Okx-(2%oa=xJpH-5LVZc6R+n#4!k__>pQL2{$^IY3#I3_$oS zlX?VnDg>iJ1Q(Z&Uq4MqT4zJE^R*8Xj0KYXb#Aa#+b$niY2-MR*kg^V_KD!M_`Mi2 zvW_Y3EkRHeVi2-&rK+w1E+~*~_z0&`W|K%AHNy}j?N*^S=#crm$iMR2r^TwKHJMMi zh|2s8jSS5$YKH6BS=h71zSTzZDXU2$gF}ng))u9FCUtzx<-;Ef=%*`8j+(oOI(e&; zTWXJ)2=u_Js`Hdi2`o?#O)lDHcuZ%EYa`aBj#$W|?pkUZ?Y;tmGI^!j5wU^H>Z;&3 zDcWo=ygJ#^Hf1@Q^uDXYPQ`Vo~ESJxZK%eK$p zuCXZZT>o2*+4-?)k8dmS@=JH|rWv^M^2tjO4;nM=yXW82lzCDAxzhJ<0m z1>blyos)>VC{t>Ck%g36B9%{DU(*6o5V8=+LZYTL2XLz?8M8VT$t@Lna=9x^Sq2oA zG;yw|FhxY{PUU27ARdLTz8%@gQ_hKXJ}xdUdeoV{T8>ofU3R!XpFj~269WnQqdFkd z2S)@74anp%cy=$zJCx?-KaMton>{wTu{_|nTBibRZXk%*2b!rJ8ig0c<0kBOlCes) z353HQ&?oVVU_U>gj0w2#nl+H1`%>E5AvAWTSUT!zV^d)xGF&tv3i8GMpF{#3E9_Zc zZMN>8Oyo1F-+X=k{OQxH!PXju|Ngep{pt<4_EW#L z@`2dd;O2<(Jz*Lz66!4WVJPUoxXfAma;MH(v+;yD47lMOWH3^QU1vyz_EtfP{wS74 z^GCJvE`)F*@v?TO-u1UKsJ?YeP+S(Wbc!cQHPP;os{518{k;*8!_WH)q!3HqYqKba z39NB>$p|6rHjrhQh#@Uh9i>uZPt_hC|ArIwYvNv>ly?Tb>UQCP?FlE4fHm51_QwJ^ zHi8%Q!lLoFnh*3J9Ki?)+_mcy%Gi7%VH?fUKd1X*Of@zC9QgN2+`S+rPcI zTYNYQIXc?Bnlu>2;&cX!#{^^R1@}h@Q6_TJ?}GlzUbnR26~hDzPvjME;o);nt zySG?T2`)^b$bsPB28woLPl{e3iJ%k$kn=?0+nsv^Fzb?%rYt~<1PG}Apby4yVIxpb z#0SAi6BRf)YRJrq;>9u_KVkKy?8M~4hs$J+*)P%ixfjp?wepg?F z``m{kgQH`EH{Zop?AueAXxKuTfc~hhi$S4+1n$qXyyfpPY>NfnP=rwqs@o9;7DD}K zW?z29Jyl0UIZoB`(3v!06Fp;oLfwzEmudPcHpvE0W z1fzFHI6n>E!UYk7nKCUkRb-Ufyp^;jDQca>XI@WpTph-Jb-BW%OAlQ=%4_= zjle|MJ3wr-Mf3HYU94#+pSnKG_mOMkAFbJ?Vv6nb#-)zLV+l-S4s9({`c?YSGTP-7 z%o~o!976_OiXh8#H zPQ#G9w|aqco{-S_W)QO(GVe9&EB1*2Gg5He*XuUcIP}I4;alm9zY*w9Lw&YDV!<8; zMpy(24M##gRWKrDS~gvrQ?1ESt@07lt=_*~t?L^d2~M-&uJ^Aa@3ohQN@0eS(Ic$SHe%Tli-R#4S|QV_=Ku5&@ZO5078d{@KKGD0Rw^qlYCOsj0 zWnrY=D4AHuzLnDJM$~9ajoXocjX3}z3Zk~P&A<@vKcw0J0L$r1aCx~ogf=u96bh?Q zqJM2JAyNI(*Qejgvdcn`SWuv#p#Q|>f*?bwK)bc>WpJdT{psUD++Udgj>b7f;2&S0 z0&V}i5#Um@&Ulu8#YVVTs8T;!aoFEv&pvK6PN^D^QR6x};4u8Yy>NwrUO04?E#_>k z)M{EQ7Fd$pda1l4pAA;~(mhlXu0abdQlH?9HS7{fRkk>=MuoZ`QWA2ZyT%|;9j;u4 ze;_2_2(RkgpNnjA0;^r+1PU?(F(IiqI9wmA`DiR#k1RR;h$b=udW3=h_{Hp34chYy zDI@YgbP!PVfJfKA{(HJ{4^0|OK2=s4pfx3xGxZ%;)Vz3>r3E-Si;@>5rqflfU&RRy zIbT)rAfQRW_V+i6zhw%+Kj@wwU_xjD$@T(BFa3QxMtt)UvaeO4U3g)$c5IWw)#EOf zo&L>1ZX7Z_tiPF|@V3VE{HKG(2cPk_t}Ryd&O$Vqsyn!~i%0PuO1U zq|-@s3QCXw$UR&E-)57-E^Ht{eG-6LaT&2Q090ZYYbsOTHJUfK3P^8la#rT=PRMXm zP^^_Igm?O8@^~aLP;bT%7{n5wjhTKT@z3I%W*?O|{Dg+#eEKBc>H92-pMCLrM>Gr$P^M7DL>YVdc8QlS0tqu*}u&gKXvHC^kK)8WS-$${Mf+wdb~ z-q+rtc(*?xL9mj9ESHS`iEjH*ZgoR0wdJ)r@LAgK2a(Lq)d;+hC$FRe^NNZqZd`NX zS`&yJl8GN$&ss9~%x1@^d@xGa{5*afa0VQ#ey0KRu1F-z-hb7*Hbw@6BqB-Hux*?; zd~N9$d+;lvKqcU!PdmlooV1@}a4%4|7A6x}-eIt~Q6J~OqCAhZI}t7I=CcQ<8#1GA zFi>&z#-XL{vV;LCP@m=p=jM^pB77n<*c1e#3=W5Seu#pp{1#M7`%Zz;ZBM**cwvyw z1}xz+LSJKy^)0}~qX`eHCeg2N140PwxinUjM`6tj@xfj`(io(_)?uL98(bY}t41IJ5!0ZLs3nHPM3*Ii1OL%d+)qwuTcCji*6Cj2FHFu#RG7JP- zM!7MBX@F*A^QP8QzYFINFta)`?{WrWPP*JQfOlTFR;10Dv!4?jU!#hBfsgIrd^zM; z;VBGrP$QwSSC2PdebD~Hl==Z*?4~mefmrOGdWDnxKl~*n|9C7_`K>k4yvY-@v=m^D zu;S_4`SB+Vldxh4i{taM%IL0lfFi3|6{%H8~0Y<66^W#6=E-z*V3gR6IGNrv%%k(12ZV{v_-T`G2X{ z$6YZ48*yl8=HcP*i+epe3PWj$Gw1W#Bw&UE2lwdEr$Z|3;mPT|z+qA9Bo%A=Jhjmc z??fO(1tXst2XDDi(XYB+*Cl-!b7A8(v#E8YhAh z4h{NDod#??BsN~439FcBz7Od?f9L$7W-hjAn{b6-~5R(MP~T$)kGAD^R3&(%Wq z=t|o6=_2|_!U4VDV_+Z&^-waV@ee5l+HQba_d?2yy6bp;1(j49R-gCLolNL4 zs*wSU`KMqJR2}Y^X>mpU8bIXJ2W28#TCF{=OidYg{UQOQG*Zlp$NrCOc5V;+G0Bk2 zdou|lW4{7#-hN0u#b~Zw&Ce9(@Jld!h8P_Amw-AjLRkZ#ETaZ^#p4;K7%d)&e6HVt z9A+#Lo8LuOW48dk*f zY;q0NJ32^GL=;em_JD#WE0PqDZdQV4Mfw1R0P_x`apd>+{@ELuHvJ)TeGVBoAKW6- z|Ml_4WXiz>f{>8(*`YwQ^T3Fx@u?|LAc&g~ zwa$aZa=A`P2Oro_&S|aDhP{2k*-5J1nH2mvto>|pn=my_m_u%j^bJ|@-OToa| z>Gv}$9^7Qu8>ro=z4_`xrZx(f4>cXb8rlt_M8}E#wGg!QfikfoaKIR{o#?x`xpnY> zI5Qpu=-PAB<4zJ6ZL~$6VQwzKDo|X8oeNEw-4y~tP?01tpi{tKdRvlS2LY+$btPX& zty1r>;sfDZey0E$4%pXM_Os?XRdr*z3*2IhPMIz7hI`U4k)Qs!&Vrxw(xgW|QGmfN z((Z~l!bAZUzt;0|I&QC0h+8}^FqrHOdIuOE&+}&x)Fb_#|Ha;k^~vCIoGoq55a<2P za^6bPXLC@OJFnmKws}Z-TjuoC@6yNYKCV(itAUurY|_lOK^@~RCjy`{I4*A>ZBjNR zC80LpRfI$NHOtyyI%rl;qUOlapTxY=;qq^+`CEk2*I8&gn!5RY4HvKS&|VS^>IZ7^ zfJeLBDZfsSJFb=DfrU9t6OCs zh_1TqcIN!R;HXRAj7(>A5GphSID`IP{j%6iLbLHnhWebc z;gz~ z^ZhKkGvSzBSm(R(16W@8toBVDLI3g_oDtCRj+#o9fd#5N{j93kv>NqzQ8iVGG@SNZ ztz^=W)!_Tj?n|}pDZMatZZjnLiqx8P$4U~$%tFiQvBov7SFcgvKuTl}&2^xa!7D{d z_bmH2{?NQ>w*FSB`c~037tb&9v&)#9}1W|B%=|^6z?RuE|}&Yx|zd z4^k*}zgF8zbSo*8Q{JR2MU-Q^Y4%_{5FaZ%Ny)HM7G`Tgv*oi#%Hb7-ZD|!UZ!jvTzw~INwnk+2tx_yqHje-Ir+8!;Q^*9GHwRGrxe)_k)v?r| za2iB$tBykn&)}GBCpdaOwdj} z+Kk6hVGyh@BK{;osOBcQ8=EN9of;9sR&d>=^?1m&F3t1HYi&2M!`DSnW-PR9=y5Vr zLP}r5cv0SoRbU|OI@M&Lgaj`S7LbWCiQU7rRuLI8*e=*{Ui$XlS-~%-d?4D^;1m72 zCJig*MXLXPQ}x37vU{TpbLo3f8|TsYd9%~bO!OoS@}C3XK$ZNRr~fpv zr}i!btl(R+jY%6Ix`UTIC%@Wle=o9bKVag6=rTI<0El?Vg#mG1MR&g5&d0}O3BG)` z>t9GkPUE==BH~y{o%~|%0tqR*c!)KB;q&v56)L-^HcD~$bF5Gy$u#wRGPaWGt zHf0B*I!%v#6;|8R75V60IM?Fo>E|r(fx#>vP@%Cv^vkl)1#u{z(t$(Vf%(tq)Njz? z8Wi?7%EPnSst^7PZTRtKs6PS~OK_9$Y~|@~=JrzQ z)Kf=N68S~mHBe%lx(H&6%q1U8N{*C)53UzQy^joh5%c;y8gq7`3cGPNbwpH=9C^sFP{f$MJ(#{K&qA z&1p{>DeX=ugIY^84)o(~YP{ALF+Xbb3VMBPp4i}~dA>zwLPIdl_qQPeVd_}1(z$>n zN}$twe5ipGtR;+Ue0>j>Hz=T?=W}wsu!N25!+#jTrUW-f77r0`ESR5ulw*n`;1$U* z+4_x-_1^WZ*4*?SDwv>%R}?_0RrJO58;UPN)wEv;Nll;%kc(OqLl|tDwx$e{^+Dh_ z(zm}RTqGb82`==wF=+Bp2=`HwGG77hlof@W(1#Jru=OjHk1GDN@c?h}J#Lx3y6&_5 zb-V4NexLSP`$oZrOHY|m4F#s0I{&ftXKBPt2F3HE!OeT9-XXK;9GYMpP@xvXEAjXt znL8t^+x}K}-u|0@Qgz0}L(pv@r@@Qgi3s z81kN@hgO3kMPZ&_)%Sie_Pu|J7>p|w%D0S5KO*h%DT{jao7i_z2aDTQ;eQIs1MDcJ zxGXbg9y+jwb@}%-{Djob`_3gglADiQGlkh~f5@V#XHwWe2aa^928a z>U|y1Vh>b9FX+2ay1>Z+bFPCJ;H9TLH-7kOQF*3TN%! z+!fp_pW)-P7m=rDSE^`9?_v9psl0~CkwI8Q*a+7Nm(?M^uAl6UR`kkEvsH-bCP)cw z-2~v_0TecJjblF#m1;{CxLIA9bMM@3P0GLOuOhVpaf;4yXZ{Q0>NB`WX_v<$?S}B& zv$AIoqtXzZHFvy#s8A<9ipFCAArYWSm;U($b~nUX3T+%#Pf;_0u*jVU-5aqUn~lCg zsfOo7pUs(ZSr=t*;#S7c7Buc&p;6rf;}g3@Be>?=+$VXf8` zZ?-kNbMY|<57a$ursKvbZ<8c?Y8WSiPk+pcr5jEA zLPASE^s|&Ue@?>lngp6O@B#U^E2CcZyA<%dyFkQ=zrHWt6@wC&g@D|^^TPBrPgpr3 z<+e;%VMW!e+Ois{@dPeXp*6Lta!UqgL~#)QkNlB_C)Gx{fEMc+o7&q7mGw_xn_kcq za`Y$oHB$Oz6)pnRF3r�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 O&%aie^xs(7Um=y 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 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg index 3a49e7db..669b34a3 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.dot.svg @@ -4,46 +4,46 @@ - + - + cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections @@ -54,70 +54,70 @@ hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] - - -TCP 8080 + + +TCP 8080 hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {app Exists}_in_hello-world - -pod with {app Exists} +pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world + +pod with {{Key:app,Operator:Exists,Values:[],}} - + -pod with {app Exists}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080 +pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 - + -pod with {app=x}_in_hello-world - -pod with {app=x} +pod with {{Key:app,Operator:In,Values:[x],}}_in_hello-world + +pod with {{Key:app,Operator:In,Values:[x],}} - + -pod with {app=x}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080,9090 +pod with {{Key:app,Operator:In,Values:[x],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json index 0492edd3..195a6b10 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.json @@ -51,12 +51,12 @@ ], "ingress_exposure": [ { - "src": "hello-world/[pod with {app Exists}]", + "src": "hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 8080" }, { - "src": "hello-world/[pod with {app=x}]", + "src": "hello-world/[pod with {{Key:app,Operator:In,Values:[x],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 8080,9090" }, diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md index 91c4141c..75a7fe75 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.md @@ -17,7 +17,7 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {app Exists}] | TCP 8080 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {app=x}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:In,Values:[x],}}] | TCP 8080,9090 | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt index d8708992..29d42c68 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_2_connlist_output.txt @@ -12,8 +12,8 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= hello-world/[pod with {app Exists}] : TCP 8080 -hello-world/workload-a[Deployment] <= hello-world/[pod with {app=x}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:In,Values:[x],}}] : TCP 8080,9090 hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv index 0664dbfd..38f1eae1 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.csv @@ -13,7 +13,7 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],hello-world/[pod with {app DoesNotExist}],"TCP 8080,9090" -hello-world/workload-a[Deployment],hello-world/[pod with {app NotIn (x)}],TCP 9090 +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}]","TCP 8080,9090" +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}]",TCP 9090 hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot index 013735b2..23bd800a 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot @@ -4,8 +4,8 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app DoesNotExist}_in_hello-world" [label="pod with {app DoesNotExist}" color="red2" fontcolor="red2"] - "pod with {app NotIn (x)}_in_hello-world" [label="pod with {app NotIn (x)}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world" [label="pod with {{Key:app,Operator:DoesNotExist,Values:[],}}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world" [label="pod with {{Key:app,Operator:NotIn,Values:[x],}}" color="red2" fontcolor="red2"] label="hello-world" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] @@ -18,6 +18,6 @@ digraph { "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen"] - "pod with {app DoesNotExist}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app NotIn (x)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.png index 6749057602bff56d96bc2846551d976b7b6f7b54..9f497680233331341a4b96c2788f9e41d4b163b1 100644 GIT binary patch literal 58808 zcmc$GbyytDx8^_+NRYq;_u#=Df=33o;4ZFGXo&ReId&imE`e32GGMZ!k{fk3EYq7XR{2*Cyff-`>!5B$aPcQGgM z3qe;x1Oj?^{P(LNI}!wX3lf8TRB%e#op*NA7epTsUF4Z_d@jGii8y+&p2JQ%&F?R?DS-eo)hJfPc|-peEQ>8nEr3 zpPw&jreFPg0#b28S9A%OISD#f-|2=v8^<^I1zb6zZUpf9g_VOXkNBH;T zC$rD^zsI0Ae#Q9zo_uKiKYR#YL^8eb zosXuLmWBEGk`A;WY`(Go8}0~_x3W4Y8x&AiR_3Y@$|}Az4@%B(j?)32=GET+bNBh< zbNd2Ch@JHh78>NW^pS!FE2qQ~{9ipfQ)Lc!gKyddB--bPO0d1X?XWi!4OkCqcI(6? zPxIM#I1Q5gdNhsAD|W)%0s=7$a&U1eD=Beua40G&Qt~nY&cOfvPuqaI{U=;1xA^$@ zxO%fyRtI}~6&s95c^~@jc@2(ZMDk>^USX|F{ zhtUFO^mWsNODZcXar5@}_AHEz|K#P_)@T6tTCA}(3Z@tzA5Z3Wv_uklf#W5l-t0>$wqk2 z1noAzeE$3wr|D9NtoHtTCt&mOFgO}|C3rJE_(s;llt4xE*)@EMR~7xjoZ`38ss}c0dLJ3c6i_ooD2%eK*+F#A$iJ06G~~?VJcW)O~-kA$Z6u@ ztsitCnO9js0Rmxayd(nyG1qoK8$ZfdLYFQ3#?)~7Cd3z6ukR@WWzVhPeSHzF;9r2e z-uu?$v87bG2`5s!-5=)s;2b>Pn*}W1vE$M9xPp!6DId(&DWiDos4u#l4vPrAV@Mg7 zwx9)pKA<>ZylW2rVDZ@5Rccob*0t?Iv5ymeTwl8!ecv&bx2oIYBr`QPcUzA)%FWGf z`(?b8qbL*9p!VqOxWT6`@0BTf>VAGYDid_^3|jT0Bkm!^b^mwCz%W#l-hNWkv0Y_t z#;k}kjli<{W7|O6(!Ap$!;HVQa|LM~^Hw7EhM6H zFesbG)qC;c1>m4qkMN)ERt;wpGcz*>9v5}Ghp<@f!lELa10HCHX~q6RLn5@&e3}fw zad+w?1c2)dABz%!oG*i0m}LzNn`{PvvAQ||n25(tRC2!2-8HTAG0TIpKu@VoB?$=$ z>6FBrGtq-tP_U_@Lb0u8duK;oU0p&#;w;FA-m*e1)nz*ec>0eY@WZ~-7fla$Vx!+y zL%1d;CQRoi<~(lpGF-bq?2enh0{Tu+wa7of77`Nbjb&PFbib*!-!U~aLnC~DxS1YC z<&yu@a-_o^coiq$?ePrcwbe|A3^IIf`u{Z*|3At1|Jy@8mtufG#m3fEiMRJ9a0AH$ zM`8jbsA&EJ2WK{6)C(1^d~-V?f-LkL(S7SqMx2SNrly-yr*?*{A%l8lV7(T&^l$_H zwp3gYNR+B6wQl|z?53mB`b*$pB#eY`Eihszt9n!{i8|p!O!!A(J>4J`ddV2_;K>ao z%!JtR?zWLp3@Kv3`v?FORFbMEC5X{3oVs>k@s*QGvH2@q6O*V2R)IfsBg}cx z6aivy%G3hvVDTj%h>IyGZ`g)qN&4B#c+WQe7xoKbc_jR>w%@Eu9pGR zZ#g^S`Z>S0sT4vW6uo`A;4(42vH&-W)+7@XN&O#c9U1&?BNNOq{Vd_(AqGKYok_*A zKxbY&bVUW7ydWW_3iC&MeZ2g2|LCygqfK2+=U;z6$kj)_qxEOc(t=yCd=U_x-!}XE z{b*s8#m6H8oD^v#)23_3^475ACw|bDn({6JZON2x-uhL@#mf@i^80h~T?qX$&Z~1_Y90}9;GH8f=&xNaENY&e? zZ^&k#4@ILV_g1CX=S;tcZ;p6_;#8xtc5%}3k&(Co<+Tlf5{(vZ?(in4c5%s~;!#ki zke6g1RcVHghf{?SN^LXh=nKm@3NSc;gq=+33p&R)a%?dfYWF+c$bi!(lkguRk|do0 z=fB9r*RgsrbJ?ixgT;HLKKZUG&0w&GV8>$WPOb*wohmSCj{HdBLys%AVTeUh_e5zS zluD{AA!iCOl3oe@)OOHz7wm*Y`52}ul0Mz9!sKOY?bG`4@%pSUQcd7M&3zw%DVpIM zN1m%Cox?#G(min0_0qY)O~=cXZ|w-mGPkqOn5OdyT*Gp8ili#HKc8`#9u&qkuO>XIAc=n7e zhBTMhHaqghZEg>n6m8!w;&K@3$6{Fa;si6i$wz^{bT)n%H{XUXO-~Omq;VaL9Om`q zbaVWT5v!DOHlF__F-t$S+PG7A_zQS;c1ThlnGzi>L7>_>Ss2Dqb%~L53t|XAKOg!_ z!yja8)Qo3SXlZhCDr)#Z*Grexn5E}WW@U{V?kX*9;~>m`Wm#4dj1m*xGBO(9FB~5a z{I7xjTTVpKFMnVRhqNOiUNwUp-&g--A(hK|(c3EQSNQ39yE$h}jId!DJ9fm+o?aS; zkjyO8$hh&Ik&(FRzI-M88}#F1A}@$bf>2!SZ0u!!6d}%(ng2s>kdJE zzK}S{HC8fqs$(J+594<$I6r|@GT~(W;rVO8{%(o_71C{)7kTii1ptc73byGkjejGS zw|h^&?QIeMMVfA8i982;j3(*}GhOL?7rgwf13LuU=Eqbv7K6>W;z+j1$NcNe8~nq- zurxS$Nsl^+64w$#H4&HTxVnUyuxvW6KV}F+0OaKh&xHh%czxk?+5Dj^b!I%%!9f~# zbdkh{oRX(XHz$Xlj_xuxmbyTLCXg(GQ|>k(yf-G`wFqdPBQhXfa9<7VlI7? zC2}R_zsQJSTXlHLNG-CcNC#@Z^(n@0CR@44b9cWzHmImeyf_1LPDNGh#p$0FTWykq z1GK%3cKry5RD6lxRv;aP1v6ccfe|7i12$g?BGfOwU!Suq9{}vCrm$>vZ#&WJ@nzg1 z>|6qcfuv=tMm+j>pSEfX&X`DY7_6k8FD8+WL7fV=Q8uR$lgfmJSzOQOv!HYStt#>2 z;^h8br*dSm=={RgU(am~03FZg1$wcx_Y9`_&|EsDJpHP&3bW46O{$VUNrmO-anu0T z`qrPbRs)HERQ6hj=ADwFoU^440+;^mL1EF{29AwD})<_~NnWsoXG_Y|@^3J8ure zSPREX9ueV(;71(BKL?Ejw(WMr!B#q4@; z#nuGAW1fY@_N>*(fOJJsSli8(ogjJ3L>BN_Ek=aQh&Kuj>OR6E8b0$=KCojg6i zaf(GCA;rxzPVdQCmz2BJC@5jy(!Gl-oB!@}b!TdnJ+n}#RZDU2q#Qdl-|y-=zHjMH z4FZxR7B)g6N^A^1rp!lF`$EAk}DPtc|K z$3kDjrdR-o(H`pi|T_j1Rv}vLY5?v(=_Y< zXjM1!6O)mt#sF8rdNW7lR(qo5tXb%QmIn?A0Q2P_dI^U*%uMuF0KY&AvU~pQj)=%q zIo4)9_@NzVJoNQZd1`$BNFWvlyoG^*jVfO6VCpQtYO9+-MVWkqotTA{GB3~AxkE)m zauC`~8J_n?wMt1^1^}hU*JpBCDaH>3=HPmBJYXqsZV9aFU!}{I&URbIa#;lOeSZ7v z{QP)93xLwac`iTyBZ&7D1+L$HyDXlW$g1EpP|AZAi3tfkT1*oTG$GdZXpREYVcK&=%O~#5Zv?~d8ttty-rJQ%P5#ka6hK4vXKyMilJ~QuE zTI;oK%`JZcoKwkJk^Xsa6MeAvnN>q(Wd$(rWkD-bd2CF%0xeT4E$!N|O-|Y;TBc4m z6t7HRQRUTkb=L#5WV%e;w#;Qe>9_?EIB?PgNyx-16+|c(vM)Gi|7jtmO(%6j03jz1 zzY_|s2GHi}$~-YKlk0K$`(cRG{s2fV7~tN480CTpS~{3w-dZ$W=6D_~5b2iKZO8230@UwC=jQGjFwE$YU?nn4^pKv2X$Kw!$7%Afp-GJeY_e6@_5ooO%sfCbXK=FSE1WXv704iiwFLXhd?e zGf-Pr+zc$bwX+@6@$usukfI&dHZ7EaaTG4O391Dbk=RQ1f+} z2Z6u=;)-^wAv3rFtZ&T8J3ZdwL6~No?sF+8*L)2`aJg;hcp7 z*jw=QJYBq(YH$jFZ)9RJvONxTt>XlaV?R{jT~17_^bHy);FAif7qFO`|4uFf-}KO6 zvnIMU#j>y{6G5SE?W>`ge5~wAsjN(po2TmFP#XCPRQ#o+oZWd<*nN=0P3Hr*gCt+` zq2NRPMcpE$qQUgEA7K5C(%(u8zXEj}UFsoInXu#iy6+bY^7sVNKr4c90-y%^U3tpA z1e~~*4T=gf(DRj-Kq(|iU)8R{y!zh7g3z%p`eIR8I$3ToNme?Q*d2xi^mGV+b%hx$ zgaB1pi$>cyQ$sai+Z=R)-D+BFXB|d;*g^1JS^KQ%Dr;m6^4&{8_UmOEbsw)|4*-CU z5ag2gh=Ae6`SgELxp0A^2+HwqQdrw7*i^{}z4U`-xC6bgaQa>XF8rc~iEpD)emjMU zO;|oyLMEoiBm(*MXG%Z`WxSG8SF&~m>F;_!jrN^s@plJlg{65mcXIfh$U+w-lT!!NJM5L@ESC<=%aUCEnL zq`_(UV)23K@~r5YRbzL9mh)ePztn>9*HxZoQ+lDAXCyppuIur^-iX=t zZw3dFA^IM>C3vdbjy1PTO@!7txRD^k@nAQ3Dvn>s75V{_ywX;Nj+)6^DXzg)3qAQ0 zm(=};^lYQW7KvYHD>2E)*RvhhiEkv? ztoS@cE5lpWgD>w6u9n{RcC%=>+xK{*^(bqZR3D4SL`UyFr$Q{n^-{&!n`PmOh-PEl z-(`B|*=X1+LLPREIu1v8 zkuVpBeawK1-8t@yt;y6D8e~GAjJ;1?8He)No-Sl5M@~K(Sft1uWvzG*S#3YtuQFIF z-Wy4HUYo%B;+I_yU=0mNG70_}t)E6W1XBTfVlb%llaozcFG_FSfVOSWGLg*HPv6`f z02N&^(U`#vD`VWNZDmbLN^b%#my6x6@$u^i9+NiPQ3XXztFcXz?w4Oz`?;8=RU0{d`55o}w;1MFn)G3w~=Zw$FRuYO-E*$)lt0)KurKbu8MfzyL*fKci>gnJn_WT=rj0R#$Xy zx<4B-65RO-`#v|fj7WUgaEx?uWytm&*~`0&#a7#MvBmqkg0l8_`TE-UL?kJLCs`LG zcNC9xiltP~e`JQX<9R}&h{G;!VUe<{%Q`(CsnNF{g>2i?W;n#* zu27=ikuENT5bJ#f(MRXLzX~I?Mt8p03u4|nn-oDKgf?9EdB_`@VjR)0yu~jplCc|s zU%I%_a<{*1K}0-0CM@MsP~LFeqAbj{ErC@n;4d_~zvZ1J74ufFbZR^ydf+|yCKT^2 z#q_>QcRfHTrv0!aAL8i%FD3Q4q5^o8m5Y=m7j134V&@th`yS}thhsTVol({#8g=e) z(CGd-^=9sau-{)D+}g8=;nX`xBD?@kRHMNZ%CxMktZ4~~W;w57e0shk|8cjXhV_~H z>5pr1J7Pw_21dq*d1WH zMUjqt&%1m9v$iDDb;+`AcX2ofbz-252gMcWwW}<+= zeZOXU=4aaFYhuFsZCb=|v;Kr|5n|ba)YJkC2JENCCbdgWL1bi@OF7Lx4s!QS8g7Fp zGdkVAuLpPCr^)gY15wF0wLf2QTxY=nX#J#ygdXlVNPMK~e89h0HW+y70oSUIdP#r}ku$33 z;Xl|Tnr{+>Ex5vRa}UMH`hm|k|Ng9Y-TpezxjfudJ<(`Gy5KjWV@=y{>;l0y#x?=) zQ4$qDkf#p{HEGcJ&;@8R8$Ij}w1yR^3(EwpWzHn5W6kt$97?poj& zuh!@5{0|yu0c%U7HKL^2s?*BZjbl@*JLc@|P1V)QQRDY(&Fl^qeztv!4dP9v7t|&| z5oC2C-P3JN?Dk3hv9!NCoxZo^^trN_9J`T}`K^q_2LZ0NbE%9G9s)L<>#_sk~ENsFF z!X5)AZwD*6y0o!?gZ>k;!TtHyWCa!jK5e|oYLSs*$^_Oj6}Esa6hmVaBP7<@WW*cB zvGQ%>+hGJGu2TX)G7%N)x)kFAv+!TDT(cjR1aY2oP`$3WCtz_|@)EF!B*rU%h2xSO zO9eO~wK=q3VM&#gU!952yBRgyoSSI#l&t?WWp&aZ8F-jbAHbqZa&Rp#n#FW#d~o-t zN1Jymv)P}MEU@+XgpFarR~l#RnlMLCb(#D_~>9#uJ@iyZr*axv2m3-9-*j4n20c#g&Lp>`k<6Yz3@SjyTu7Se7kB@ zmfw1@$Cu-J75XcGs(=3=AL%VxH;;2cr`8Rbn>H)Jg5VIWR&|BDoDM;Gx%V2y=bBAk z;93Ml#yF>;3eQy-!(xmh+j!g&(S*$x$e?M-9$@P_Y`Kw_>>NV7!jMw|j7H=V8OUx9 z_<~IBdUesboZsHZ9u0Fty1g-}Rhb~grqIkMP17mBlB}ad{1hL z^wL?RzgLE(U4m08p#hUfY~b0|Hf=3&yOAGRJjvebRkcb*O8$OXO`He!cdt9@!vqDm zh^i=wO5=VW0SU(zn{CU=WLHXZ8OQbfnBz{ni&&`l<)=`KHula)Df;RpmVrC9AJf|G z-y^A$9d3p~xQ;)(o#6xcZNN*XfR}`Ki)S`RWzaIRXk!`s4INtTkl!XLGgRd0Ie3WvU!pAwLKN*arbX@}EGEfxQlF$yUHUx&HP`*o@84Q^&I%Vlv@)9)r@|+GC z_dsYAngI0YE(Ucu-in4raA+Qf_5K)&mb8tcVn>Vjy&uBC{(M<^z@>bIoc6)pGFp2{ zw7A5XJO zR;JscJWGsdv@w|IhJvWc<7^l)G~7M{iAnvjx1|eSgAWe4+>Rr=rC&Dd#_m=Ve`uw0 zH)uIjZsO4?xx~j`rx&w*y9TEz8iq?c$kvXbaC8~&e`bKuSc$GS_`W5@u@m8};F)0t z?RU<l_z)6dFR{)fsV-5gHTP@1pvojVK z0?5sCyVqOzuf$DL#J)c%vta5+Qul0P3E5Sxt>?d6Om@Ww%m^v==7Th z&5+c`DO{RM)28Ai_+-yyW#BU%)r&=sOjo8j74NB}b6T$9yh4u%C9ObfGTk`}p(OUk zf#MX%>4D^!T-x21Iv2Fj=QBRs*5W5h2XPaN@fiVQqMWw(;F4@VLPddz{!U<$I8%bk z&K1P6e1{>ze-nPrzILZk;wbKk;M~_svtoMIDbBwg^Q7C#dp0<4YSGD`ua`|dusXz&9D6Fg`3KNWN(Fy;o#6_ zCiWSByQ5JTo8PnrLwF+ci3LhJMmS^-b<{glTOJ%=U{`=I?R!!ytsp#MC+*5P1lqK4|;UzlzZnFaO?VugTo}d5`>r}LQBL6Nww3U zIEhNR){^;{80m-TtF5o&Mbs7B?lj3@NSWz+`kkTQ`y`FNE(0Um;4Ol%2>-(&+B44C z4~FYq+7I?iV>$7QZMTn;ztJvT_7k=suxHAA9r^i3?ky~W4W{$C4KuYih8Y;nF%~qg z*N5=LH-*jg=Usc&`GxDlnYLzh^lLHv+SS*YnFb?5PfiW?uUJEj+u$^x`l75{1<0+$ zHr9v-H!);@>Gt|-|0A|kG3OWqdQyGqiDLX0O~9cy-aN0Ep`|4G-&)3%1Rw&=C-!B1_lQ5^74v`kLg`EWk8e>h8R1!=p~3M~=5^_?(MoF<-TvpZFn&>9r?}Zr}&}g^|EtqR`XS`>~0I zlxtwf){+c?su&t>b2XV*m~`{GO&uPExi;NsPGTve6sp0lI=F6&8vN$;Q$Axq`w(| zV(IS1Fb-T$vetvOKtK z8n#k1VV>qYd;Pb2Rw1c3Ne>m1b6ktN<t0 zy)s{heE7N?&;&MSH&s?%idMcYs$Y5Nx4MM&(lZSLm8s#jin$)s@04>&ikPl;lkF+C$26w*6bFBq&^n6dkdFeY1J@E~sZ^T6H)W|bHV)M3x zt*owaz;2MgL*2?i$?P_A9Y;tuApzd1aZAwc{o#aqeN`-M4cDrE*r}JnPu((n_gp{Q zDrshc*l9JSdHL^mu0@4`6iU??IyxAGItozgnkp4qDE|7~f^Ll2;e z5P3y_ka<}C3n%MT=N6xt4U|H=o(k2E#nU}C)_6mm&ma(b$YN2F0MUC74Q}A&Ajxe_ zreaflZTh!j62Guv;*0#}5w{}kA_qr0kB!m=^Vp=+nqBkvBZ7CmVaV5B?5kB0E)DzWdWSufb@Hc4 zyR$MKqK>p!M7?uay)&EpDnVP#@%_#BbdhMi&d0f!=Pe=$9x3pss)1sY$d~2aii%}3 z-e{m^xn>dJs7PudbcS!Y)i&FhS8ntSQVYc&7s|U&ql<7WEu$y%RaL<6Or}|ZoDu9e z_Ysnj+XFBbdg(UT=b0i z+cyV6eV_KW$;b>V0;yTD20gVFs$~lc4Y#(srRhO!KLDBsw_^<`8dsQY4c-SsMP;Mb z4FS)?E{~dzRvRC#nE(X@eJ>W)V`V&7aReY43^MCYv3k4397X^g5Yzs*cm4f6h$Mgh zp@3sL8_=AiiKq(m~Dmhn@0A9&# zqHAX&bIz^o&kTKZ6a{Ys=qE0q1Wx-2)A_wAa}NprqOJzt847gsJfp#DZC5Gxl~)3+ zpCI&H%59Sw0BfU|m(e3$Q}0IXFoXbN-hqb$2nN`$D)2g+<39SX-6#nGLZenAr&ZB& z>C2Q+sBZM9Fs7$BR{9XC3S{xZgrPbI&nDyDbdS?;fbMySZ6f6N)T&pG%FGgn!N}UE zlpk9q=Uh{-+dkKj3P_o=yler^3TV<`DjLGDnp)J!hO?(2IGkRBk`lO1L-uR^7M1ha zw$29Vq%rmx2#QMS>E#44C|Sog*S8zqf0F=`x2MJyV6Yw`VO#bvt~`G3Kt`4>OG_8| z#LSso*@(HRlzgJ4*WfV_1*!DCSFWoaL&h1KP&!*_U(zE<~Q3}yAp!&_0LuUiA0N&mSkYt~P=RQgUzLy2z2oXw|SY!^%K6!%%jP?d)QiEJk zp({^Gj83_TB@Ud-`cuHMFLuX0|?}$`B!E6I|hdBDea|#Dj+lvR}wN^ zRn;f?fdmXD>GqC3YS%$Y11*G!h(@EoZIF>F%1S)+`y{0ta#tL$}mzSNH$Hz-jH(1Kdc^oya zaG(=7OJBHk_}-pCbW3^6M_*Vd&dvf1JU~`EI?^396*b=T9BkrxzBc460{~L|WsFy+ zyheTj| zmds|RkzMuBg|xQ=0hcq$c~k-@_@pK{zq48Y1PM%Yc$7WV144rBm4*gWtD>3doFwja zVxG3T+RMYkOYzdO%pdTNnigz;f}j!9E}aF&pUX%a8x`r-xeCvk;amOvoIIOmCOdC# zfUXD#MF3}~5HHN;-BFkh5_cI#9iL23%~#Z0Y93M#TN(j+3c1$4^^AQ~P@f|(5>SNE zOJrusnV7T%JhIZf0J9J9{eUuI#q#^&gBHN#1NsrpTT-$P$hQy}?8U*WC+P~{2n_O* z9H_@beLcK1sF(x@mEgll{%mU zV2nXRK2k4n>MGrIW|*-PU~T=26#poSnA$u5v`TegfS#WCWPXiC&*gY)EB#tRD*4X+ znOCN`qO)fcEt$dHU44_b{rexXWdYg@w~D>1QN6W*)+kuY}- zG%)I&o<6R%2WKAx0;Hla?Z$kd3#1Sq#RH+HmO<#C3K?Wjvw9Nn#6(jX7zM$<=^Y>@ z!SvkPvMqN7p<@6tvDYGpRyrTBNUm=>5pQmUo=cf!0*RPfq~{R~fc!?QE(Qh@tEtKV z^`U1F4Pn~WcK8n=6q=b?5{Q(OMmB>ow}ToZOZ2*;DK$*-8r@*B*`LHTl{%l3pC4EI zQTo-9uVh#zRy&9xFlAni4;S+u(DgmmuIILb55MYsxXIUQ>?3-8S2}|h8kN{g^B=H>RqsVW1dm~Sdb^F0DpRZa1L8#)w^|J*Oc0dBl?F>T<+F_jZ z$&{1J$fwUjE)PLdqhIw*)6g&ZIs87a?p3kVb9lFJ%qnWQgedob!uQ!T01p)}XH>@M zFF$#)^qHc1P?nXcI#gJu%;714;T1b^H3xsh zfwAv!dnZm3k}bwb=;1hbf|gUw=9M~UQ*(1mWnUG-UU)e_yI2GTMYX)e!UnQUy@z}L zG^Q^v;dV0!jc(l5-}~YmVIT!{fcZVH+yM3PL1OzSY-B)Dkxy?}5g~AGSW=vyzl6wQ z#EE;COyvlVLy)?E>hN5fQppW&L>+l}QMssKb;M@|KCwP+tSFa^(Xg z+i0lalfC|aWQDGLKg>&@wMi`zpGAMEViMD18ljJ%`toi^_?&ghc_jFgj$8yBa-07Ru_ z@qql(yU#ppOu?{%H9cIFz74l*8VXEaD0%^czq2fuHZy$_t=FxPVg<8E~n9NoY^6sv%Wo zc3HqGpi{jb1c4+#Kxaa)ioz^_UVlwY( zdNph)UY1k!TaPE*yXf2z1|UYozC#7XyS9b>Z+k!)(PSEoa*DDZuVWYy5Z-UhZBZz~ z7?r=Ze0Zz&UQ#C~=N3OrN()JpJ%Tnz$*?P&6*;3Gi=H8}&kz7PAiIqb#>1nhc%Bp= zfD{KR^U2JVRZ~m53S}maz*t6z4Z3k_ku+Dx;IzYoO!R)pxYuhPJ5?{rSaJo_2S4fiO`PH$ zP5D*|tkT==(AeT3cT%kJ6p2zAdBBkI=8UUd$I!5N%Rn3nNTq#}hO8`k(QG{2FT?YgGa+v9Q9PzggtZYUeEnN^-Jan9H;ATy-(o&uw`G9@GgRe*N~->_BU>v$b5qT%V#oDA*}j zM7AA6KsG>*`mZG>Ph9GtUa-r?YUBk=-r+~>yQVaFqa)+)= zWRR;gkZfvowDY;`!GB+^N>PoRIRQGFxcwMS&mVxMd-we4qkD@aCT=S&N@!IcQW5hX z#m%^6Go2*!sJ%q}o2;c@E6Og5Xd0$bL0lq9nnb%%tjA)XIFX7kUwHmHKB-_SlMUe( z?(#EhIwx}ysolVEDR6gVtckA zjsTL+Xm>QcqiMZea=&9)JW5q34#ZRjHjb*i2daI*N>}9?$0Jw6g=uK`j~%;<^aIxg zY9wiUvH9nY)W)t6aOTsNO_ewQTpXuSEX=5)ms=AC6;+ICG|Wtw-QsB(u_0snbt&3G z@a$=;DK^&AZqh7~2%)Hu%?0S_)wfjJSj_=-?gicQKM8o`O~wE0i^4{Fy3jCwIO*Ou zm6j;vyF^IJ1)5D!kbZhnQ-_Lk;??M)l*7u?CMuo4Cllf{`=Y+iIB{9jCqkjN6%Xkj zMAApBgYo33)G?o~TW5N@={mZe+R>Vzi>>B$rxpHH0gfdguDda%8Yp4rG`U^|-E7NCFw_QTyr zl=fugv#!?i>h-NUZ&@iS`)epzpfd=|7ud$|JzDRT`LqSo%U7yLt?;y7(8a0B=uaYU zq)j0+=6ILTI89V9?{mLdcJs+`N1l40g0L%Wu{An$VcZFX~xNW2Vxo!L7hAEI2 zrO(Zro1O7#S7dHk2s9%f_5>|8#%bN#DJh^j`gqsoPe2I-`1Ph$j+JfS^*gk>Gv_o( ziID?=2j5+4aHxADMB7T-Vf*n~5cZp=$i$EtR^s(MzB19lU^FN4fvi)G8=2c|4Fv|A zNzr&;+xSl)mA0r*J@E&TEL6{^#~rjFNn{||0yU<-pZM1GJVQJ#yC!E`i=+dYeV=No zg&A{MFekex)iZ*Ba7$Bw=<)B%n65(~2p=1wviSrYuRp{2lqgzvIb zE*kGuwky!$t!_S+$|FA7_*3#Jw9OPMxdxwtWDnlbG(v3=21r(jV>L9$r^Po|eIG9a z*`ht(8YGG$Q2|L@v<0AejGK|Fa6kict-u52E`VGJ3Jbe*^qxa%WrxJi-Qv`J?{T0^Gxg zTAxW<(D1tfa$9Vy*TqBm+D-S%{v^_mO@BKL-}s@^`hZvFO2CO_#crIp3+sW9+O%iW zgXeGn?(Xfpphv31Qu4Fw79ytIKc2OXHFc^e=P2id<~)D2GmMHw1gB;eYgc`V>;z4M zHn~NTDg<-q9i38DiqAzVc(tZ}FWT*enI@A^Bhejww8AgPCBQ{i~|1TwS7UsD=WK2{*sTrZHds@)EjuT>`nU2AqOG1C!|TV3m-D{ z`+n>C@P*KAEB6YfH<`-eHDZzNfclO4mIsf`J=7xtN+W4O1Cn}EbafcNi!?U z>D&XoLPz*lr#65Ul_a^!d*|zi8LR3Qgo=myjc9-Wl=_Y{(TO1p5;P4bwrR1TUuTE~ zELm#(N-TeeW76xi=FawJ8;Jx46=BNlD&EFORTm)*%aJM0H+UtlSX5%vg&~7Y7kuEm z<)nRc)+J2rAGl5i7fboKOWjuOW|9SCVyz5JxWjRl_>M2RWfL^<2T_<( z+`^$fCq3i?=?73+pWaonwCkPiztkK_#zSa~7!>xXas1T4s;N!L?nBtjcc z1DJdV$yZ))xD5Ep1geaRL``K^VtW0uBRolVV@%;TT1~(qzM0cIn;f^gTbN)YGLl1~ z(Ot`UvSVon0aV=e&yMa7kf`e%D*|N?HTz0et(%+Q)J4_;xdpX#+>3()#q}P9>anhQi ze4$ab&9m`f|7N)1!J()+f|{cull`(54n)uTl)6CZ;P~7|o%_C&zM}hybE0gRRl;b~ zq5LWqSMI)+Au~0v$tol>`cmT9O%TU3%zd9_SdC#007%1q|0Hh`QDsy4o~Nzn!#6?j zeD$?3S#CjYNX(-pKmSZuuLo>SJEppCUin*UI_8a=H#qJzpi<+fxE^pP>~1H|$hrJa zOC;OklIlhj&V)|(9-@w5-fb$E^tom3huWMdf)}viDi2KKyJr`ugHj`w>YfB(&3ZR$ zLuFTY*coDz!_R{aG>wzyqsmoY%SF-^a9Y~}?--pShI_d(Q&Gx*9OzYirrG_zyW^+| zwZV%Rcrus6Y_yRlKp=g8M5pf4xC{EQLNTr4OhB@Gdb`g1`N5^)1iZ5(SVV9?$aEF@ z;HJc-uC55Y2uipzIYnjx_e$E{4L08F5^O9uZN~VwEisr`k*38oVzW$b?T!gcd(wD0 z^^I^86|GUW>g!7GK4uLe@2Bnn=u`m&erTl#ns?i|VB7Z`KNoE}J5U=rxRO~-;Mw1Q zRZf(A-vjU@Gl&h@ji(C!WqLP*l{+^~R<`Btd+|l{b!S>Ee=6dFs{Ot(hV4LZ0`>%F z7g&a@56uvT>b;=iWfB+jRR`3bmjS)2HqIJ?SAS*B=c{B~H zZ}!U|cIB`?oK)xIycL<}^|k)|%@BWMpGP}aTAkz;Dbbi;5OA6U8}?@_%#=$pfaxYW z(_+rUaq7L*(~!t8o2QyfIg_;eeTXyL&2w`;p?8(XZU0arTkDOY6U076ePV&EXXGfK z)Gg>{f3_;qT%xV<556?}7{9Ety5h|lL6Zj%$x&6L4~LESaR--!3~0%j`T&G~m-(l7 z9$Yn8?G`i@-WT>eZWWE-Dj#6R%v=fbGSx9TzUO`IvG=yolG&5}e|`Cf(4H?khzj^- z3HnDp8>soms^`Pf=B%I+PiW5Pc>ri9EH!`B7zSWs~e|Rq| zyn!!PX?_n3oQ6K6|9nG?%5AXOHt>Rq672#b{IghmU|u*(E+hV5WW5DY99`1}y12V* za0u@1!QDN$ySoQ>cXxLQ5IlH*1SbTy;O=&Zyx)JTZrv(scd24$&UByde!BbVL*~T$ zK!6lu6({YhX}R$!p&id7;6!te)c}<8V3?`@-zdK~3OsOBbCf1FNgy()0rtQ7{{(*e%ctVG*DC;qRZY2*B{gZ{ zMpf+s(5PZq%by5OWsfrw#LV#b7!hQM_P?91Nq22alWh@~&$#Gx%;EmEye4|fyc{2F z%kBQ}Sdzd8fVu{3L7J15KU24fP-D0AX{E8MnW#dYuxf zbt*#Z#^m`bJWLAVMp?7I<$L^xy8j2dfzx0DOLeGPaBsNhH`gLus^YLqpHgh=(`+f< z;p;m%|A(T1_lQipre$oWq_<}W$=4&1E!v4uoJsMafR8p0gw*J1^rhPwGjEAjgC785 z8t}#0|17(2Cdqj>Ka=x0amGvUfE)Yk++U%qVBj&S)mhe`Q7XBPfuRjU>GOQQUqEj2 zZ_|jrPc;K-Od3>SMWU0q5yFHfL1M#i~LXQl_q6~ zpO)J!RRx#?cZBX}*;Y(_S_{8Qu;ZsX*O3hGu_gk44Z1@5hrU6mvX6dm#jd$ZKv^Nq z1OTMo>(4kU5cKm|9WQr467^qNAUyM5m;g007cVP$rxsq*vW!CLmmZbO{G!=Sk<2l0 z(@SVd!${s^j(xwn^nbnuL=lLmf<&o{NU2MvunSgib4N>6{tqXL z3{7x`UYEBWm+x3Cqp2XLp@+Lnli5tG*$?Hb7p6@~0FYUE)ZB6OE+E z#s)12#q_+Gz{jwvh7~?{#?(L4E?0gjVM(zgr*f*76-uJ>KWTQlvDo7Wj!ppm@1PgZ z4??OjaSmr?Bs;Ib2&oG?fpWl{9{wurJj{d85<{|Qh7?#cIM=p)Eb;|Y%8V+pw@2)= zp2UDWQ4ZtO@csD=7e*zPd!*YOqBvLApPQZz-YEC|+NVZL7g=RdJ0usdJuUGv>R{S$kh>f6u@`Huuz9D8QJ=l&GBH+tYP zGEKE!;l_+LVfa2#)A-L0`y?fj0o(Au)Dr|sk{G9Fw|i}}x=N3XP!m6R5e7EZUrW>B z7K-xYH;c2i?V_ry;h=yiGjm)+MjDUr2xUby6`n{5oQ*03zgLTz0U#R0s*lI{>l zMZxDwg({{{FQ?EU*8k4R%*p&&(A=7-W;3@#_33np;sh0+4?Ql zs@KT#dL??I{aZos|5h;PAT_*3iRXg@0!=q^F*d3X*}Ac)`oVK+9RE}*mnvrjxav^c zBQ6DV2^sF@EyBP(eF@9v|J__kNGw6^T#MF|zD4)Q^wE+O4Od2zQbk#{a&(N_H2ZH! zGLCkSE;&6$${b4#F|gb@AtN26_uIoFDe)_Yjx^7Ur!^Z~rb&=|q;=)T;z=b=qv?8) zCY+YV+)2RYb%s}U!S~FwuuBRF{~ib28TC+5uKM5i3&EmDcCHLCusgyg({Mf3lgQTDLC!B6)wpLdK0+sI?*R258aTQr4m*cT_a2P3!x}gcAHf!eGacCdZZmF1`7YOO%fhFRcl)}2 z7=z^^;}aA%qRCM)K3>*TFjWui(c45=1CHZsc{Ugh5?2L-R zpE>U9+2km3UPOXNv6T`{AcaV2a3CmQLZlKh6nw`S77?-(9e9HUwf=6TqJa$#7OsU( ztqLEJge7HPGSaC%(n{-g3}Rq32Zq0&eQ%$=HoRD=!W3kZUT@o7omufP1~GBi9v*B( zg6tL<*KDaU;b{f)6coymlm4zaP=_I7JrVx5gR`Z~C@N!8Vivjen>phrkImK_7N?Yy zBd;68M2R6ma=T6&A;bLVeRHpt&nvbEJL?bYU5T)WCnpVdoL~Kk4vz}kuz{DJwM1?k z+i$627}#0at9N#}Au5%^rNI%flAJP(Fp-epK-n-wrhq0vhLi+An5E!JkU~NU6GYvu z>V9QPAbAMT`6SBH^u&E`+>N(@V~&qW`XQ&GHZyQ8P>h5jZo^8yDL9B3H_)u#{7V^? zBtbG9JvK9bVHq@i8g}Hsf+VT5r2k~5B?fkIFbM^us3-|H?!W*E`<&C(yKV{Os@>r0 z7ul#4Spk_iu_WhDAGwMdlB6b({IcAs?^T%2lZS-qYD+IEm7bXa5%O@8f>}&Y+WB9} zTOh|N$dx1~SAJA&NI)W;i?@vZ{RId4l)J}dI@w1reJE~XV!^i&8np1{-Mth<65GHxsAyDS&# zz-gkSMAPr}5QZ&0)wvjpVhC?L=V8dZ(tg_g4Sa6Vw;yS|H1U}}UTyGz0GTrU@Fuwk zf^`#HYBsVLh?aHuRjpa&M@tcsaF$G2pF~-|CFf>)^RcZeqr*3&J&V7^abE8wQ) z=05zj_a%Wib;iHl%}q%kSzTS}Gm>V#s2hixx`;ZKUKey*wwVhlDJni77*t|p)iQ4V zuuvZOnt{Qm!R=V%7+&h+AUSA;UQ`EFmu7N<%6VSr^eNW9eE;B1-ilhNFei3ogfF8~ zxSWVZ#iXq0zzZ$BL|n+`Akp9;;LY$8V0*&1$q-4t_4nm)Z_-H9(QFV9geI{|PF1T* z>nO4y>T2vstzh9a?@xgR7AG+9WGcuM4abj&a>j3MZ_m!oa@j7CxRbylnWiG8lI!Dw zfhd{MDa5G1+LNWBfk;dX^wI@%u7pT!O^6Z!v`1^!NK#7#EH96Ck2^zZhSYSFErSRbRan zSop(QDIfx;u8Mcv@pn+ayj){wDts-S=XIFGv5~2k`TPM5Nj=0Gojo*wKIi4PEtB{m zly|h?zEs?jGD*mzK-(j`h_u)6Z*zn=D9}@AeJjE6+sTg!2SVTBVHq$IitmZm9s9(d zTW}-JrX?o0tUD7SFjm`J{I;F`M0I*riEIqC!PS~XQ1&vEF?bM-ji@;L_iR+q0oy=$ zeM9Utrdcy=*x%J&sAaQa?@T}){2sYSoo6_mS2{ZbF8HEWJ6~mO4KDa3*Jh2CoAW0f zYsJ*_t5|Vjy)MpIfZ$@N^m?8AT-zQI0sC~iT6XRFSt^2*vCe7?{b-@~c)3|1*9VR? zsT3hc}$Jy{1C;SnLKKIf>V@T@qQA6Q za!gnj*e=*qKiERBm~QVs4CTWRW0&ZsdkpQN7rjfknvMd+eXrNob3d7cDj6A|iqTqh zxZM%mj{}hiHtu@E`A!2j2U!MZ&Y)lhTddAEzMOAGH@MO5?235tWK239p!?nteY?Sa zKGgjA6U4*g`1ZnVPY4OwS0WAkZG$_5@8d_kuNy}AFhE4@F;{wanM_RwqDov+3j$8y zwoXdPWCobZ^x)5^;o5|g-yCffun5bjqJDeX`8{4F7hs^JPSc}Hy9wF)H1}ddyR*!0 zfaZd}?NoiVofiGpsFhr>>EcZdWZ=ZAIo8opMgiVboiyGInm5gO$U!(nYbaNEYt&jUC zua*Dm-}%!^kqk00cHQnrMq1-z-8`@heGJ?+nMgz{0xB!P#!_dee2%DmHn2Ybz#8;S zwngOG;k3HXh`4Bv%_QW7`0zsThXNf}0AC{BzH!F7PCmkUm_ui34=JiSOL4Drj|YZ z`UMsajc@qWT7Zl|TzPvKu3UneQW=8^@jjb_P#39CAJ|+5&v((H#ueAr2RlNFYk(M= zQp~2Ha|v~82aOgXMSoYHo^&dS(|`!+ggBpCm-*7qd_5lrYx%79f7UU1VX0y5MyuZcrRqG!ny>qYLUdnWr+8t}+)5bsCgB&XWW1=qU=BA}xq?V@|Gm&G zm(H{OReUD{|7{!GY;d_kXyK=!IP@DuPJ-uq@*LjX`-cn32Ccqn6e{`P?_yFi!6}%y zETYFW%0l5L)ucOE5al|P%1Ih}KQJ*H$`#jXrF|aEJ}^ih5x0xBW#R8HIi{_4J?xo_ zmKK#OdSEt{mb^noH1d$g%&n-c7%RMiCZ)|(-K?W5jjKAq$AAfs3V`+9M_hm!w(pTi zt>y*z;?4rI@fiEVx(WV!I97;M9+%he4~0=mKPpMtL38sW zB4C7qhz}1+D&X`8Cc}L-+UGN}%w|!><0)=3rAwqmU?Q|`Y87y}&{O#yB}-9J8~JaL z*+@mjMpJ}R3Sqz#LK@VNha|)wj##x~Q(A?FKF1P>O5^9I>;MxhNposs>}tojK16tU z(h?Ff>_CbhW+W>c`lrZlrEO1BA1@@-7Pc^NC8d4r1a0)s%%5mCoX|>sJ|;E}mx)3K z?`VBW&DL34;A0(A=&(JQYifhf5xd4+=ZSj=5GKlWG`j(Pf<~uC_5BtP?ForUDR`ry z{O`ef9^sJ*1DjY2Xd>dnQ!qU@p`@gP&K(=KKYano50*$XTcPvc;sS+?_u;^qu4y3@ z335at_{vJ=06}^!P-3EScr>c$7il5c>Q?QfHuK3qT0l`*W#|}{-^GkZLy_T^_kNJ7 zoxH>|ids7IYWN=mCir#15pFstuZn+uzU6nYG(sEUZ|B{|)Y}oWSqe*MS(jFc+GavT z5UVO%7rvKGt!mIfV<)egUOPD<0jE0vnq=zJ?0H&tJ65N`K;{dmhmy3k8%OmAQQW@=aQWC+V+LNK5fKf3&y61iK6ANNkTOm^-*30stvFgMha}97NDAc% zIrSW6h5Ut-50>!sZIWe&!

      puAP%rT2|_~=!zY3{wFS3Uzv4Hga*g3n7DgOy+Nx1rr$Qi`7Z8rx6Qbzo1DEB%`undt(msNm_L zy625Lpv^?`&4+yv+E9=6&?;JPH+X$Nti9=x9Q;cLcBIJ2^Xu93c}>S{Xx|&GA6ZcO zzTnLk0KlU+Kz?}eERRPO?Hzn=BbO^%Wb4tz&$%TJK1_%60wr4F{zR>^3fp{@z@x-Wzt8z$h>2JoeUNctE7 zn=E0X-9D9XN&HA-?DeHD@x@leV*aERKB!6>wOGrUFjJZP_F|AmI3H zzVi@x>aSWJzdD+l3NOcq6dCinwLEzOwtVG-_vY&juy`N#${m0$a~9J*+p0^NO!<7^ z{&yi8w9zwm2i6Ce`W)T-cUH3FWoA+Y_w}8p5V`z@*VcLiAM-V~fjH4&d8xjRT+KT& zOzfsRGa#~p3o8jLxkD>JMk2XY>q$==Dyyu z*!VtSvv#q)xc1`y2K!|*I=uJw!luwxp2nz)@6_Jn?Ok-e^bgJtZMz^6#B-*STRoJ? z{c}6P!4iEr(W;DJoSMuq>z_dUg~{YYo(ZU z*p=~~B6Qvv6+|fGn8@M)kr?#$q(APr>OA#-X(QqTzdJto+Ultz$8e}JYW}p?n`PiN z)SbYG~6#CEb9UXaGwVx3Lx-PE$ z^QU~Y;-zzrZE^Xq_kIKsPpJWGJ$3UIsF-hOjA;02(NUX$>v<*s1cdvm{LS811i?pG z!DrOrn1kYC@{pf>+q>by4`o!h*H)6!zfpwFZ*GKV)kK3$Qd&|lo#$wni0i12J37j) zuX}!|aG*niT%RKRJ~;AuHfIXBjbB6yx<)KoKQ$#xKA=_{NXTy}5q`pbUwp3f11tYI z==l=i+bb{Nj7pfMR_8fH8Hcw|jQFy>w;ezKmaT>|+G5F_N|dBy2<5N=fnHxdV3Dv$ zM|)DT5e^Pc(W21ZmC=CjrZe^ny@KHhWCau4$ljyUi0W^Kw&+ABwIoybo4XKE%Ku4f zX*>7!o820^{qyHFNdtp&W6I{}OqdC)Nj{%2UC?F64(!neM}hyTbuwCj99W)ZL8l|w z={F3~Pn+v+VZVxp;)Z1(t#l^0Wooh07@8NVHiCH?vqwf3#-n5@BTE0r1(>{v zY{3UHBbu7^XFCk=o%L0z`}w(2FaqVc9jw)dq&Np_7AKtH8WV<9(xCoNisb~5YNbJc5+#&qm8zHyTOIhZE3san|8N z<>XkSzj6100}TY#@bG-opsVpf_?oMFi|gw^PEKBmhX*+N>d|RUE_T56U-)c7i88j^ zui0jCDVD3@Z*BdE7qVYzi#_W9v39#xhOmD2%zv~7^J!|L-dFWyRyohC+Y=iwAXNMc zYn#nDKEoflqtj0t>k0~o!a6LwF}C- zC5wYmSU(>b&o=t8S39k$b&XUN;!I|Mf<{ah#NU;_2F6yRP=3*vj+8&GU%Ca}RH+L-p7aur8r3zVO<*Hve1g+40n{k`n03 z7BFEPG^1~K`d7bO+g_e{nmdwTuF>o2rYe4Ed7SQet@&>VLx5COjOQ%zLHMBK&`|#A zW-KfukbGw50OJ6a(em<)+p@maXi5s~iNNi;2D3!$a84>EJ(rm|Z+dR{#^Iq}JR{_u zuhrO;IUTKM-o7iZi$`O|@Z;t8vzwN}KdfjZI1y|$#HtOc>v#}9@!8&!W z30brInwJ&tPUW8Z0UG)c@8hLcIorCV3=7Pg=IuW~z<7dsO1?K1I}(L_4%tpibvyZv zfUv5lVM))9!Haf!m&*`J-kF;_Lh?C4yVm328R|e5s2o(Q`O3#;uoMWoZw^3#Xsn(B zY|%t>f9-{HEzX$=IhOzlze)Ci(Dvj0%;D4-S9jb|JuV$9J^^jMw!)Ay1ih-lWq~ ze7{JiWofk9l{p&u(7e0LfbU{EA1{gQdp_sW3+HV^Z2K+T-F)`HHbUVPpGO=u?CVke zP>j*hg02<*t9hKE=1_k_!yv5bs8hs(;GQM;%qkTnwzHFEcI$HaiZTHHR zs5Sx-_ov`%yy#FAl>NmTG&bnD5nwS1nk~4xv2;up@CcbEBN+ptZ7rC%VKFf!=95JZ zy}5ZD(K2$^{mL_tKxM+GIx`{IbIp#MZ81G}ea`4@Dt#)ASW@_C=hq~ihE}^R9I)wG z0|Yl&8$wnXbNS5-hSO3TN8(sQL*-;uyhkTP6Hqfa5I}}Q@Jmg*3n1Nrltg@_<7J2q zt9u3`c_UKaXBOMFKU)!Xu`6d9O4@K;9)m8^tsUvQ`E@w6t@20yygY3>M*!3yF5}&O z;H>|2G}s!jRa(mI#cI0>KamCovi$>#hsW&uHT?Xy*YX(2N>sxj!c2OeH@rfA*t0K- ziLf8s$UCC2+!T7gIa)vwYVo^((p3RRgaC!~_Oi37KK}fqW?bYkl6{6G8eDnjES-DS z>sD1=Z92_AsIJMypaTiIJhttfulB)Bnl2iSEgp_dX4D=?OJ#Yw<9fTP|5GY!agthI z-S2tjpvT9*dO^yZq z(Hos|FB#-NoyQ}7I^gdn29eNBT&P4eP&Oo0<g%C1UGikVa+THcBVuYm`m7_F<1qR)mOpf?2SI_aDNUqE!;3(U# z86RmH-p(Nm3{cSFus$eKQ~rvKyw2f45}WP#b|U2eq!`_kS7I4w#(%qAqw(oIwpdTR zy)prE&|#p#G!7$0Yzf!^+5U#~x#iYB{R0<{yh_WCA(MZ22$c03!$?TjW`7mr($;d= z7!E?;5fz$=tLv_w{)URi77>R+{IDjXtp0?ho_khan+k(6@TbFZ1N6shzn0U?Y{MPm zl!ZB7v+@NaJR8b}&qGwWuQscHA^dN{b$f+pN|5+U%<6G}Y$k!T8*NT3G=#LHUVv0xE?$Nr^0W{E1Gt+i(19#%Sc`D9`Qo zP@t9DlW+Pc8yRG(DX*0HNFcy2(R7?sQ}?jwI$didf;VowX-WG7uFTD(BTHkMp1hw@ zy5p)V8&B5kfPvbKoEiew?-@xm&%*@YhPK+hTen8hTKfy=X)gorJ|84e?u;h(lW*-k z-yJFXYIOZQAy4L@GYz5z1(#45=L1>>I;8nNXHZ#TD1xXwF+46H(B2eO?B2qJcr*#e zjYhU4F&M~EA%{`T!OYb4&x6Z!kOYLyqW9Ww|MqBXu)uK9+FD&Okc=#!p!d^@Ymx>+ zHfNB;_Gl#!#8S^HS_AW@xy=B30Rpz?(%j|^Cj0_6LvT(Gr_Ian#W51U^-|de3lw1X zf60j?M5%Z7!Dz|X3mszrPuA3jwxWR!72MwZ*#knRqr>}bHh*U~x3uG9U52B>KV=8D zH+nKIG4a_%`O2$Eb+Yp7}2$MqiKJBFA4vC-^A z=wufWdBWAbDjg6o=)N6YL3ml~jP`UP4pPN_Z%I~M>HDRokKLP$h#`N%C12+e^wiLZ z<^l7}TRb3aR);S>KKrw5JS^R=e3EMuB8?bwK$Y9951$?4|N9`VmnT3}9Lhjr!I-J= zQ|vHHMKANSP)n9T^Ps;D%J5mvOCQfmFtbk?n`k?R>nm&`?8Lw|I4@Ct>d<-)X^jmv zBkCRtYF+jS!qI|-F4N~Pu1Eb|Jp+tWUWU1|^q${j{KibT%H_8)FubzmTX2=u2R|a9 zUPhe;cs9?^FH8&C=yc2^q|A||a)SPnk;UAt+30sIv;_!RaQd)}D-5YB8%>R)C#i}m zjC1VHJyNQwkWn<~?3agp*hkE>yIIGst5dMFni@B@U!&(x(yMI&ct7ovz>7T5srjpaJO_ zu(On?8|eeiy1(g6;$TMLg(dJiqoecMA086UhQVi&TWpPGwmRKzWQ}irp3%1#I`NoT z&yi-Mi>|MB`LTEKZN9c*13({@EuFmj#hV_dwuukUe0=dQUnyhwp)+$&GH~YQ#Y4#- z{^F-LL_4yC#%LW?&t+nG%vkDBaINxMy_JrTtgH{+h;|UEVaCS#TGM{OA2;|$qX3ek z|Cc`M#MUl!C$;~}az>Q2!;vp^7=E&+CT!r+((z=*L>@dSC!kzDSNHPZ8Zf;aZf|d& z=_a@b%-G@h-(PRWhJRZVdbb~F;%Y2nZ`hs(=%(h)G3uclEZ2sM#|oph6Q%la90S*U z$=0(-jy4@97XE8gcCNu5zl~%Q%VPbIf7Q@6>FSP6YwL_)a4MmEpkJ$y2bmok6H$PU zL3Bkdmo0Js;Pp~aG2L?WWO{5M z`j_W{H_h|A19Ic7)SR)diwFeq0!=c7v|1e~287(2Y_2b>aiO+7k=2!GmzHw=f~sne z8gzKX3i8=h0K|8Ynfce3_WmRaj)~bvo!{5##_Z3}e+gTokAy)TMYJHiUu#{{(4dPT za3G)2=z64a;bQIgz~7_*^T8iB;DwHza{xoJFPcfz(Q%!K2vA>%z87puvS)H6!$+q% zVZS$lfEQjV3N_zv#R+!r)dZ`@+f%zC8Rd>|zp8MA+yA zf{;-Onh}{AE`zD*e9pX3P{#+eeNJ_uw%6AOB*~FP+rqON(mMIENecr1nNvdhIX}>l z@x4a#eV{~ze12SP@MQVphNG0Slt?;fvOhfttYM7W@rL$C4qPUr07iyEad|MC!w*1;5y>0CiPZq)?x;P@u%R#;-*49T}~#ZiAcK2^{Er zbo*>xTj2`+NtBO{#o}WHlEMhz3Y}Uat>&oKcA*HHuTP{LSQZq*c}A`HqWZstfUV_OoXEi7#^0``HM;&)cY7_`4R?=%K@*VLIM<`lN--r9zqDX3JO5TAHsscX=uSgKv&?u@-wr@ z@kYY*AW-Mh|MfOwZO@P0#3Q*}Zt(+D3A6;Bf{$pd0LH=kAGr!OK=CQ(OSUrbg&OO& z;|(`vw(2aZp8=jpv-%LQs38ofqOf(2|M^w}V{LA4OrT;$E(x5Z&74ijj+vB9^s#L$ zIq0@9Nc|^BQyEM$PS{_NkOzE!8bU-^kFcbqkI19%o7cv-UCD}1|8~WrpU$K@VD80| z4`I+`B!OA{+BBxgC1vP^g~lU)1>B!91MC}egg$93I;S(D{XSw>OiD~l`ekB@fl=|5 z`(Q~+hYALyLt9?z4b9^^8W^+Ues+qbk3Jy!$O<;nMj(h~GpxPv5(W5r9=9yz^Wjeti>4v`ujlMuij(?;VG8`SAIC z;CAZ6l*YC4?0#n7Z`jD3sEBg1awT9<6(7~^DS~g0mMgDe|Kn@zAb1i_<$g(~-kkdg zRMcf;0a8gMB$Yx)rK-`PT151huiUW6*nCQJ0Bv_L6ag^y9Kn-&pZO(NOem8P-d7d* zZ0Ol?lS6DTFyMlhQ9(HxF7qO!D?}csq_yK;eZdAB%*>`F`IcSwLzHK7W;q&)i+Ud? zis*)(xZ_S5nqk&Q2?WjT7r`C9j8kUwOsW(w_Mjg=AHD3EyIsY61N)DcbtyuRfWySA zLRzlSe=u9H2mykG84Q6#B|z97;lmC?!Qs=`A-MMb>IgQK=Trj|V@Llei=zr;!$j;a9SLEuLRH4tcK`Bs`mppvO^lz1 z0vfhR62=6XFxC8Z!L&m)1QW1#`OJJmsSxX1uSl-T!RGq;XN06iEcqVv0!gUi0J z!v#=0u-4t(^GPm%gCao=3KRn$3|}8_LLz|v^$QgXN?93j;BL?rHlD=RHiez|*7ce7 zYWD^m&UBG`x4Oh!$k>b_7u!b9p13^dqr~gwKFdkSzf04Le{7m@dBU882uC0* z2DQ3UldiYqwfhEFAXs1f_1`jUY0X>rmpYr5y?Vm*$BmGdA!R3N0e+=@r%o9aG_aI#y^`JP`H(jy zfG>$hEQu5e*3{gN`(7S?hid#5tE&HqRKSb+>iBlXWV;UhSS#>Y2wxhQVUfdrD#43<~dV$x!e zlaun|hly(sg5L%2`V2cJwB|qrmqD2S95;|o=`8|xpq6?zBgqd$2_oCU%FsAsZ%136 z%7@8w5MmmhpKk=3urf1o#JiK`qJ;%p+eF$OK$bR&S|4uJjO+4td7fJ2;1!3lfJ)(Y z#}@E`=j1dx+#`Q-1sN1AM05G*)D^QYzv4f+@H)z&0h$J5C>9-7F5IsC3FqJYSUkd> zgYlm=vX63birUqZpOLF6zCB^rDxwo`i9=jEcCqg`XW zsF*uiO4a@Ay#a#0<13&*m`Vj0b2csdg2hj&7+Um(%z?jP<>lL*Ee3+G6u%UTD?0Op zgm71ZfB8bBElc|4qbbAS052of&WTRf1**vp3pps;*^eYN<3b`ua>eRau7<24k2k+V zg)1Qbg(QHODevni;Bt(ssx?X|FpiCNAus>VFUk_1%#%mP8z2;#!o+q?XM&Jc*&dl~ zwoq-hcz?HU~2N-8%xNAyYO z<-cIP1^zsXwm~I9row|mh%my0g8v_1QSu?1*)~!S+23CnwZOe&V)F!(Ybth4dC3x< zFX82?y&wh~ET))4Lq&^Xd;N3s1hRp`U=~L-@TycP26y;lk>_b$x8LPYNJlgd|C>|z z$xUlIM7YH5;f9SsKZo8zFB$}eIPJi+o>dAm5n8@0N+q!f^g31KXBu}`z>Wa6PbdqK z4Xwcd8`3K|mu$GH>yrMcGzVw!5E(^zK_%P|b7uU0OUP&_xiZ~K#&~JQG&|*!T^4l< zfa%)&Btz=8m?i3DgWGhA;Ux;MNE;dmQmQoEYUmvft!rvg1x-H;bM^x_oUW&53o-74zJawox z`)Ut*Pe!m3U!p1uEvV4%1Jk?fNRYbU``yl+nO4y9j%Joi}9s zz-cdyl?L}aUI~d@eNf7cU0}<7x#mYt4EDQTDyGkC`hC4BYcGWS6Pd<}^@&^X@LYyu zY+kT8j)i~rv7ry;UZR~Tys^b-}ZmPLII( z=rO%}xeKw&K)_+^l6GUSj3JvJ1l~!nO7|iEWpBI#S+ep%>nPtS4X+t>63N`TjkmIx z4yI$EzCHx-hCq5s@b36~UF(+EmSiNlg~~=T#9QD?OXJpNe4?AR6i26w#{douJA3EK z*B9{F2SaBjWZchXwC~aTZ69WS>O7R~NmD)I7bPnf9Tpk=I>o+st$quf?b#`_wy?9b zswiGnTnZQceEO{F5El8qq8+H)VW#Zy52fJdka26$QqWJZxFzd$=<}c52f;S*K%g~b zP}?w*U97>Vs6SJ@&N>q#+Q;a`P{#C7MwmRaNy-7&qO|JitD3wNv7b?b zp+I_m4xlVA3DlkQ5CbH|`_!eNYqYVYF3M_v+~Q!ha}9_sY4-E(wfatiGV#jFw7-$S zgQAK+jv7LIIx;n&U^C30g1q|>|H2ou%}LkZxP=*M@7;$7F2WOi5`=)?b?b}9sR?@3 zZ=>!n7}`s!fZoy6guHlz3MvA{Xi1czs{<{xTq;)+M*d#Wr&j;aWBV9gh$Zc6*d!*9 zpCS=WL;c# zprG+-0QqeO(3$BZztxO34rm?q?5;WvSDX&$y&7?NLt~~OyNwH1@qfc-xWVA-6qH0Q zAq!R$6TXgV%aSt2L1l$1?;Ss&&7641@yD^Kg37z=Jrh_yQEaoH282u^E$-Sa4meb3aK=7px}P*Tl|hV))Yn0yXG0ep$*O{PfZHXHCtejMO=US+km!fX z{Jueb@um;u%&vHj%!cmIKE90^hi@0d(kkJ1{-}BZad%DVWFdbOa6Hz0F*j_jBOe8k z4pG5uXp_&nKAT4|z`!P5=F=;e{feT{Nt98NY5XD%z*D4I>rsT@u-Iuy2z~?+oGq%@kK-aFCJfAqqyR7T^M)0b}NQ?Q)=7Avv@L9QvBB^<1R_1SSQ|nRh z`bNH}8B=QuY*vSg6OwxXDiehHdpNfxt+$`|WrGVmMH!Lw`2$_7?O|n{=!S;pR*;04 zhkd(9>mPn+3oE4r1Oxv2J?NMQe`gv+6Rns4bnd-cT5K?vLr2I*y~j?;_J3Rea^GY2 zMw0_Bz&Tf*4u~l%44@qE_d0(oC@EnLRufM?wCrt3uS{6dhx<2bRJ36ypU%3pCmVGU z&Ro7gs=}#L)Hz~53bBSPEb}Q1y`;Bv%SwmE0##oi7&#GnECG281e(&Hz>Q}PeNj)=tU7whcN3op52i1x^d)PsW|)<6R9KtB34Vl}?<(#LYtQ!Y$!Ec$ zHAYdnyfBuW6#|T=?Wh+F)LTLCHAmM6%!Yl)^7j(s+5Bs$K%AI#uKSTw7s-Uy5YekG z?DOQ}8p$Y#*O8Oq2MsYIJt9R~6I14sAoz)5-wJ_1A@mzI#CQmK^7l)+R%=ek-z3kt}=E8;_9r4b2|x%Ybwa4v1q z;d?SJej*sdaCknf_s%zd*8-4adHt4aYEEGmEbQ&l+WDGma9ZLxjS7}{RX9eKQ3-35 z8VYqPn%4IFh}umofGcWm-rxzZKJYr0Ej3;$#N{0)|Jy1vB zW}=Xpv8ZUruzSLR{)aJkI1GFyoNvT~k;@<~enpu^vc|$^zz2SL0Lrwe{L|4y5Tc(k zK77c}%j+>3gl>eu6Uzc-mVmX@B`s>YJkn07A@HMs4sWPL@qcy-SX7Wg3@VB4ucWC`Zc5~;D z&B8EVol}@~JP(Iq&7)>Gm2zrzrt(jY2utJno{+IN0`8pbR0K z2^WH+n~}cRRr)Fv^`sZ58HdjXpkiVrNI_AI8)BU!+Ay{fT;lrWl{%+p+E7uVwUA|M zlu6IsCCqFZj{pv<8~N=H>mlv${oGIh-NNGMhuy#FLO9RVcT6a%EvDa7S~8M#bNhoh7?_4e180P>srW9aUIle`YgNYFx zln_ZYAx!=OIIt^r8rba*;^vV=vTtHPMWc|&^d03JGwC!2u;>7U13Mc@yPq^e(`W)X zV*s*p>_n>>k(a-k&(E#bH2tkN;BDJi>Bk|o!QrEsGqIDi7eTCe_Iy!~KjB%O-y2*m;muN$NIbMu!IGyX4;+vT1GI`H9CM*`)fx*{{HpK}i@}!$ z7E$oU%;;@a?=FwtmqTQH2)R7pMY{1KCzFN9Easu6v7qwRpl^lnBd1xG7*BdZc*Hw~ z@j?Prs+e3IOuhQ@B<=C0e=MxTL~f-*Bwtm`H=EYZ-lQ&mn=iN@)7r-Z0s(b|u-WZX zxY2uyv*C9Pcte`U!SQlg;VKozzSH|X&aCeeLD#C*Z^iw^MB5UuOGHA*119A%=@cta zpNo7O%jRMy~iQ!MFY3H_VrHi2(J{(Sy5~Jg>9S?_H)r z_qB@~!YU=SQEG0?YA~B0=fn%a1L3cVZR;TOk73H#Y+%-2rT}!T>1(9=p8= zv`x`5Y8L6{y(vm|NkA^`>%LwT2s)Jx^LbZxtCe1PREe=;H>xtel`HEt!bLe)C}pruWOCtAO|0Q@0-isyD{ z2fvNlFcD0j_p`nQKk)B3;1Ir^r~-bmgxiP6g#QQbC9a8}4Uc4k^LPMltyG!16}mXQ z!on}v@$qqE6BAh(8FX~??{QFt{)pA{KZTiHzlRi(Q~mHfe=t|wPA&37_bOOIBmE$e zP{Nv|CehaVnblroV{4k{MP0!o6%Zx|P3=najoG)xG&OO+)j`It z*8r=$1ozn{9zOrVdJ4HW_Za5-mppB}+^a5<1OnKT%w&{CGo*OH52$aso@Ll~IKjeZ zY2Nn)Dfqe^!l67APaMJmoD}U{?S0)~y7nnNI~B07~Wz7BLSom3=yQLA!_1kXTYMKZ*dMy{C~-$y2bT27&ovmZ%T@ z6KuNvINc|al@D*@o$jx=(=Nu66yU&c&(TiZ_1)}h8cYUt3OR@2$Df=Cy_7#}7}yT2WEdbf0YY5en&eKL?z_Vm ztynpJ^s`lM{a5cy@(!(3D5fFcJAKgo9 zIv4Z6!iK$;c5M?y9LOeGcW*kB_DT0X2m21srdO|P_h;I|#0j^Czb!D?L;(DI;Xr_b zjY1)aS{MiG!}+7u!s&p)`$ndfn-mSQ5*9|B8!ETzqoGYeOWyC{gX%!1lwP#gPtxis zzWv!rjUIRA1r_ZZK1ifHpW7befh2fWsN;qTcs_v^vQQ2p@-#G}Hdmy|T)O2>I$#7L zxuC=0(hrz$i5IYm{mmrXqt|1{13K30x!OEnARZWHn4IKE0;bbc(yY+g1^!g8lbW$K z{oDn9Kz-U1Cy)HY35&qCnwZCdldcd;l!2iF&;^i99!v2Bo*9Qg;}aLYn$MI-Gj(69 zpz!^ge^z;ZD4W)o@_BnLj9EQQ?emoxiiOvLZ@`qHmHopBccjbYlX8<^^W!AbtkrB_ zg7?#EUXlRO>HJ+t#rL=(8!ZzCRdrjwC$ps&KEO?%0$@=Ptvjr=NV`%f5z#Wws0i#3y0-EcyV-l?sx#ly+|4VdnEO9y%f?%MC~ zk4=Mg+7=Zqe%emOWJf~U4VXDyUuQDivhLV{32rR+xo_oTkBVtW{|{S#0TgE!Y=NRf zNPyrj0fGm2cXt~I9wfNCI|O%vySuwff(LhZcXxds|2gN?z4czzu3<7kzUtn)dv)*b z)!D3PrVd8wqh&+O8I&wXx7v`<{R{;;yXL7f{KhPp#a|-*PL-Mt_QH2tkQR3Bs{OA1 z6t4DS(P@HwVo=8#v$TC15lk5V1PM$K=7$C+Kc*_PE~qPUxXMlK4~)Q=^`{bI{hZRpkLgA(ML+T5x@)fL1r7&WOjI^rMj~XV`WwCRA`Fj8prAgC(PPY> z&2-#a!@3J8OTd}i!p#ig0m1}4h zbwr=}{B5s#V$IU6?fCrENMD#hd`1{(b~2v*?D*P+2C-sO_B;1ora(pN7eRAHq@ns47NhL!-1KpFp~vM-Y@PDA@wR zg7f*z@&VUSK+?=7sDbk9o8V1Q*kPyIG`)FzsT}lcC$G{rdeljTxAbheGVW@I$>W~K z)f=tlsC%#5CBbctwd;@X1mb+y>+Y6>?Q_VNC{EpiR6k(_ksN_zFwqLaZky z@>}kGDA_IvWv6O!AX|Y6VT+2oKjG*Q=I}qaGdPz3&1==+f+An-&_TpAk*>oe(x2XtMQ2Q@a(F`XF%G@nNcrDs=kcQ^C85%QQ5mSH{8Kj%kxs$XX`^VYt|j(Yiv zGa#n%ue-rkM6nrIjXBV@W(3z>Wrz%1dE9m!hvH)Jj2#VgZJ0T@PeIC2I9THD6=eOJKv^2c2F{_sP zf*Y^b`t>U`;+#!d)#`m&Iowh^^}(#)XqkOP;fp@!9PrmI+9j_t3YOdvsPL8yrq0+^ z%ULtz%{hoHIS^Z7k_v`~%Gvq0j_013P<7m~ydPf*LFbmQjgb3V;n6VXm4t`hkKf97 z4H((t@LxO6R!4?iEv|oDt@jvP-!5dgieqyNtI-wH_~x&(MT(KXjht@p!*_KSk9se{ zc~d&z$MuxQIw77sPFk*`s=;=3j&!-r>2q2mEFF}Sqj24!_K6*wo88llF8`?w@0X3J z^k?BgLKqX?l74+WzUWJ1nJSD*zAN8ILGZ*g==3{d{kmojbMvcjlW4?|psBnE39mz* z&*qDq1keT4T48z=>Ub%|^#gVR+89$n0<#IF=4VBB1!vUcqs=Jm%98o`rdq6Q=bGlj zuMG>u?$46lwu;_Hzesxfu1{6N`R?hQBFovLS9@V@c!64#Y{dIdP!Y1t-m8Nn(r=EY z3;mry&@FQu%mvm|NMocGR+9^s1A($1TM}X9aX5kyaR?Z{TJc4VTXvla2{wV}Xl3k3 z%bdTOs|?fV+JtI{GBC3;A1_n^hw^~-5iDxbnb92_4Gkgbx}4|sYP?g+|LOG=_rcRU zzK36;MEtyf>q$NnEpCqyIu)s`5%YD#i!ZU9b0oE{9jCss`!1!C7*FDi)!!}H*pX*S zU{I{JydMeAT67-R4T9i5wOX9zqbbjO|9Y5&+7%JrJLg?Iz}MAF1du+?x1G6-`w#-y zA8ENsT3<3+8|Sh_qajcYQ+OU7d;L9brUQZG7;1f>DV0^rb=9d-)y6Rk;M`7HG&5LT zUdHd~ZdLqUmV7)AXq`YXH{>P3NeyhCH;F+nal(PUg<|qj2-v8ri3-gN?>(9X2mjNf znXaGWq-bQe3wZr&%y#=a#HeK`Xp}E^=X8Se?KhpjSB@H%Q23b7lFhVka>~O%gxn!=WTaP;H&KWf*~Gr8x?H=wH=T7_Ufu2HgGvEA|C>;zFR z1fiwJ7mx`mOZgZbGi&XVI}wPmNFansHb*8F@?3^jpQ{fW?l`aw$RK?XRCxXT9y3Vg zLdJfctlSIgcCN;4vlM`Y0%~%$@k@dg9I?VWyOVY$S6PX) zv6!Fdl|Q9)Z6;-Ay#o3@EuXFQ6C=496i|1Vji=46i`ZExGr23(687GfkPJhjCb|pU zhl?*%a&3pw3er1kJzm=C*DG&pbr_V%Ik#BXpI+`l@3qYl-cJ1lYoJ@$XTP{Y0TRgD$jI1T`V2xy z5>g1ISTKspMDG*&Cu$hy!oBpOw49uug6HJUX$Tx}3W8vHv``ZPqHHWQGT-qj_lCQ4 zS8wm(7=HsaA;JYxo;7(s52IDry>w%?W23u;MuQKwb(NkTnCwB;xZtSwn!Sps?fz9a zo005JFIDF=+@+^TxpJ<=TF>4z`3wm{|FdBRzO^^kt^73zfHR1aj4~fzs{@!QsTiZ! zR-vS0~9(Nmlksdq3ri$kF^WOKtlA1!g9pz>Th%AP6P zFQj{$E7o-BCD65drGS+kHz5dj)s(B_pWpc(=YjpyBg9Pekqvu>vq3(fS$k-*>= z;{kW?vafN4I2zyb=F=Q?Qsrf539i^PQ!J>p4w;NT*w(kp{=XzgUM(|Y+*5ZE)%mjC ziO6%4ZnYaK6MA_`L&7tMa?l_v&i084GSwMIK2&CKU}WCG0FC8QtY}ba#%0Oe?}$KK zr-WYXzPGDyO$uWMhs<4x)tV|nM+ zvC{1PA3@HD&1j$m>mL=K8qy=VLa!*q&mryh1L<8$Fxk)LC)O{XmumrNN1bPGcZJTW z%c@Vr=xiz{nq(gJM}_Czrc#T(G0+2Nk5QMu9d6bl&2=iKJ9MXbyjALdMm<;Dwa@NR zT{+N8B3O$h^I@Am*d?%TokbqcjIK4>7PV;s{}{JOiq@MV)fy*FkG*@1PUzz(X{ z&i<9iDD!VWGkAA8x9WVS{O=GV=w)YrClH(3Nd)H=RhX=-Is%*=IyOVUyyf1E zUv_|>F?T9g@34G`SxOwn;VtxH3tiq^CaOeIw|j~y{KkiI85RAlyq-izxAF3gY6>xr zcCiMA+-e`Mr@$WLcpV|XE!&?R9Zk1eiRh43te#=W+_Qoyb5?AkgyHA>=x5YS^LtI< zB1n|R(;^|1s}PQL!9Q4Oqn>}O(^7>sF$SA516Fn$XP+-DUVd9h!$o|)0R--Df0i1c zkS1%eZIt&)&PqnPlPoy~vk>Hz8Bl?8#&O1E&=QeMw?*HhCCo_mTQ5(7IYe1r54{`o z#p_1vSsnfeBE#fja^+M#JX-$!iie+(LM z9%tjTz6UU3o+}hLa;YuTIiY%S$rB&u(91+JoYbX*)P)Z@vUaygcERe3@5e!@ zKl8XnkwiR=qP!k!tf?e{j(8~YA@X}+K|c#oJ1bE;+Bd#wsr1;^PKO0rqL(1(Tb!QY zo^(uHAuW8`9M<1;-)bUenp37CAqmb4?ACdv;J*+4)W9dg;ZtQgO-2kuCGxNMCBZqX z(g5$%FB#1pTWbVKLNGi~J%-oAtXOF|YQeg4pg7`=jZ6q*6X-ni# zvdoBz_F(4-xDTBJvYg0=P*Sf0T+L6^g(JW-__jj_!ef7(v{sXN+xY7lG@c`uA`hGW zRe)!o?;`8T=e(^sW)2HYAE%Oj6M-y_tIOQecvN*XEu!vQjEea9B83K;q$#n9B}?xh zH>aKdc!Y3XM?CsVdhIqtsBTB(j+o$b{pez)0m_QYFO=yWO{r?Zc{qXPG}bx8VFz3$ zOHuFIOD7G~ZnJM8ar&Z%pX-{+*AR*QTfPDHp3?|2uS?>wZ@0gj8_F(+s|T6;spJWU zMz!^rXZc$A_zAgI=O&1zSHLXgu(`^*sudJhxdvXEGm>-3GI|t5R;^&VR3HiVtMQ++ z3!=&HBUBi2%LKzEsmA0`@snJjY5k~Pr6y#Y8s2qNC8QuPI$4Q)HOgwAdSvs+({iAU z^o_AVS_XQm8)|8WK*$FVAWyts0+bD8TM6SJSHQ!ZaZ`N)`5rNs6R# zWqQCGIGZ=6gJb2grw`;0NTbWq`f-gKWCJ@?v?rf4tMBw2!0F7FGp zEWx5+4tRlC!*l>8?x=IEw@FdwN4>D zw>Zq$V4R>Q)TbL9JoH%fW%kc=!UFpm;K83_IK%!(mc_qZ_Jtk5G}aV5H==DF(e%q> zM`6KJIY}2G_XXmqb9*InAI2t9V59=A(@}&FdVHhisaNfBox`TlJn^N+jHz9J>!HVt z8v|#hWdmII3$QCQu^=BCqsE=ArRW1DBd(HJNKwX1qAt6fG9%btlmDJo6gVkGg(#8+ zQQmGT_S}y7#(k|huqR2v9qNIMsKC>rWbn4jV zy5I+8sd1J^6tJKO$+KUK2PI|ABO+lDO)E2A{w3Z~bKilM0yx?jM(u_bUW#+h66ci> z9x!_;0?R`@kSYr_t7HWp6Vcj>yy)(ak9G(k(|<2EMPG#G(8#7593&XGn7sy>v~`AY zhk~<{*yGLv6;=N!IQ_9)r!C**$q>W)rhD;G17DERkDJNHKbl@rD6={(y?5afNBvi& z{=r`t^9>!565CB5^^VAo*-&v5!7~L_i|9C@vl55Y+jslz8QAXe37qqYj$0}PCAE3< z6GaGk()~c9xsR^2&KePcmsfkYZ-m<`28TXbe14E_WY=HVn%9!Jx!J}1t!UzuMkLUZ zqkGt9ozoY0xn9t!4|od0^5TGF9W-?IqyM8D0Y)V9VL{L9-Mrz&ZOu+-ht306!q*|~ zS8uB!>%$%rjv)NQ8WT2=V}9Xden^muYV%Uu37ZkuQAa~!WtK^^1ZSW^1Yo_ZOD+UL z-bKky0UTF*TfJ8?63zFiEIX~@uhm&&MATP`i!_2MhAKd z(ze0F{a~nOU=I7?r%wMbaO${)nsDfd?W*OVQ|cXODSvfhhu8${Z@aqxb$!AR=SaLl z=|FY~h6t&djl*rgf1e0VqtfX*)!Dwm3w_@Gr$D7YumN5tY+n^@%S2W=1&RGBR7OAc z3WAq0%qL42DwxI`ov;|=E_bEmDZ9b40hDbJ<_ash?Y^h~Qek zYZ>>La|M}|MOXY^mUi4g4N-=Gz zYJ_f8B!8|ifUJa6$?e8n61z3*FM66G55ybGHkai>b7qLzV+cG+PUVsAxw!nnkPCH< zU!0Z^SHWGl(tuRUVQ(~a-rTaPTt1YCWKE-l>(EQ#3z`#)OypMi;R*{Fw};QzSL3q>$eZiJx@1>R&M zzLTGh&wP%+NBMGu6VYXFCH(M^($&_o`F-)+OZzA>ZD5nr`KQANxo5$M-)j#9t7?NsVXnfAI!$ZwPpsAzA46~5yH9UCo1QlL08dle{X^proyZ{qyO+Uq z9jI?y&*YPX;Qw=mTWjKg-;PAW z%Ek?#(JLORnzDPCM=PX+cz*6H^dpZR}+UKlg#(u$e_iq49CB}-jx%ZuX0 zE)Qv~2jMqPRIc@JIzfTRX7pWGeRkS91GrKl)p2uJ7lDeaYOtV^fCcT6rHDvBg312{ zKNPYb$zq(`#$g<#(`eV?*fqagq_7;j>hw>xUsOnaf0Yp965#v^y-P8H5Zc6PUh)2@ z1}!q`0(e$bieJyk0gG9hE*I7=+a8K+hEXsBzVkD!|N2Llu}bmNh|2-P)6P^bMaped z=v5f@IswKJ0ZwVeet)pdKO6rR_Kw>!(-qQHHK;UcitM<*bzDN|yoz3TK^+kY*%f2j z9bGDyp;T6h608*+5pg|GKc^-2G z`AjR3vBz}sX)}+EvCJq&f)_x!St1Y}h{)Ne5YWEF{vKKJ8<`=o1QoQyrPQ2SakWco z${+o~EV-Xgc<=nS^qO0k{X}52#2p0qM>fL*V5}?F5y*N7Wj0lWB$c#}?BiVB{EsH$2r6Zw5`vC1o=z;PIFA9#rkTPcTuJTD<|w_2poQH zKj(y^ty;#yz-VYP-Xu7&-3dNhN&m*C5oiE;G*T`pyig*m=Ati=N^S1}(Cx4VaOcQ} z8i9ErUGA#-jH zD(}2%-cZgpuZZZ#EIVb#MaV1g#jH-~5>MZNFZnW)QP4RPKg>HqN%))DxQ6!Rng0T&cv$Skb(%)7A!gUflUye99eQBpb+j6 zT$M&qnk>Y~!O0|)_!lTtEjrR8yIk)O{`G`tTKsDzk9u$+z4ZiuL@*%YY9-v&G5Q>D z@bEgLeS(vA7EJb0#AiwH@FKWVnr5agJB}UwyI%g><0yYez1J0Xc}PyZLLJwyNfB6F z85_Klxz^ZUVnrkh;ff3VD@p8K4u@>3b}&95xGi zeDK40{>@DgP9uQB6(y?wfr4B6Ecw;}^MJ#QA8+oXhwTa=J<>@TRLXwEy5YIM#M|zG zM}=|JXL9_Lb{F-*M_DJInl~3%^xUP?yx&#r7R@~iN0bs8b#PZz@t4CetJ84-==DM& ziku6h*Y!iDCX6_6u%NRWR|>GZmGs+icULV!n>A8mJanDbo>z};)j;E^i6aMD|HjXv zr7W^`1C&ZNxJ(E_5Dy5s%l3APZso3QjkhDRLYg>j=b40V1-N^k5sZ2NZwUKcuf2=C85+tRRsi&{}PeAe=U3L6t;^YbEpoZ%IqJ-%Gs8n&h zZM4>ILjX~vC_sywcj?vXde-YQ0&&R=fDpbDi^4daAPx6>IIBOdKD=3}S6~vE=D*+Tjk6gV$m1p_cGrHrdS#;Z!F+jk_ zN{I7Rif{kP{zSo|YTi3=-Wv*ZUSS7pbjx9fS!8@~tgRRDT5 zrr@un=P#rOUU}^==0~HwR;SDm!~U8w7k?nO8D#TsA(5KhL?4QofLoY1ZF|REsKSia z6dMTn6*XIN!(-+eBc8hSs2_2u1IWZ7O1E-Y*1&IAs0ztsV^)w%PY4YK; zC-k2WwyfNP_P0}`E!I7+%$~>^SltV9NpMz$*a1`L zKG`{&55@YPL#X0eT9so0beN=_d=workz9-XjF)};-rogNFOf4Y0*{BqcwY0DglBIz z&8hOn`^jsh1EDf>$4u75TGoWXQNr5Ngh1KG0f==E*Z1W<;}A{z{)gg(z_?tcHB6ff z&7%gW`Z(4V*XT@TcDHlKe_FX&B&JCiFG)o^X_@*(-Fw|fOQJs82+(D+N279;tvLHR ztJxpC8gsrekPze?zwwfFSvMnJ=8I9XWz?nvSiLzSxnVNje`?AiSb|kMFN0Ju!q6bZ z(sV@qDnD1Rp2jVJbi0!M9uEJ|j6x{5QeR;I5dJF<2P>=N!{tr~;>YX)8pj=0EO~4y zI@tE5@OUf)3@qA~P=4Nr({uON)wYh}mL%jHc$h+*=NQQBjG+_2Ndb0c4lDF=S;#y$ zMU~Opi(J($eD*en6(x=f*!pn1D@o@>=+tM=(F&?!%dC-yZ(M__7gqRSp6SlyLJHBf z2)#FTzKGGF;Pz(#-i5`ilW(`ru7@AMXekH^3TkR<%E`$oDk|=2#oGXI28iTSYgP){ z{h9vz2V?e;ApfE02M{20rs3O8Tw?} zeAsXIr~2ehUQ*1&hClteC^UfMfsa>?csgT#Zy+miCKrWHw9Q=ci=cTBt*rw%*2wyl zmGrx^7y>RcT^0(~^yYZ>7~~Wop(;TTe$9Tk7`7bdoeha}J9th(AGtfF4 z#(0w84zddZ1g7~E$8zatx=);iy(SU~CYk5|0JNiHc1vkI`gsqboxx|Yjj3rFlu$9L zV1A*78_O7CRK{2-c$hZVDCf9SP3$f~j8uX0--5S-xgiD8Qou^Yu%%m7TAhr^O{g@o zjeihOsAGzo6>;0Oni2tAh1@?#E)u4iYj zys&7+w_pQ-(obu&Kn%%$PHyd_q<7#U&2BIT^A)3kn&0PVx}|oyV%3uuR)YT55Yo0hoNBu+r;D17~DVi-C~%v(=TLyc_~3I1Dr& zs^c)@Nqv^uC($~^q$g4dEfhQg<-~1+$M}VJM}^v!L!)G^ElrWi*Dw`R5j}s#%_&b& z>KkNA0ZU54VeZkV_aJMVnMpQF1`QiAcS-GSAR&Ga$r`IcJwy`&Js%!M6-qSHZC&)O zs0k4cjc6MVUfTReTC4&meQagx0IqaMw*MT~Ri9$Tbrba&G!XB%$w8cO)Fq$}naZLA z5e>`lIEh7D-`q$e1|MxCF8uwQpKQ!*OEl?L2`X*WjK?E3oh!g$)~Yu&N{_78_-h2| z2SI~r!cT$! zs^tjd3uDt&OF3tHo1C~mL2L*%{7*Kt()gs2o}Yv&)N17-mE@Rk)fyrHM8d_^Ify+- zHXKj^{w|U>;)MJ-DNq*6mn>7M@`7zUDZ0YvXMuTeDP=q?@UQHwIt}0>C91)(v8!CA z$497^_n_M!+-N&?X(?Aap`@i(LdQ0jkX#Zb%bLHtIGGT5btdmVV#r?lfh6AdcgY_Z zWpG>!x`E_Vk zRO~w_1+-nacMy3NOu4dMyRAPI>^(mC%CIR=rMpaJEk6}jz$vU|0HAj?$7j{q&DBEZ7&;@*&r zp#5s^g7aQDfAsGB(R_72r9qoN!)CDj;R8U-5Ac;UApi3FOW^JT6c2;LV`gOZS*Hv@ z{!^_H?&ZC2P46CFwx!(iXWq$kWHNSyhbw1s#kZN6_phZSTw20VcwdyqJ9n*iIe&Siqk-V7nURiK8fH?)RJ;xZTA;~ z(4(*AMYdjxMlM97`y^SWV#5)ZvlLnnQ5Dm z0tP%J2hT{+VAA97s3lxp<-WY&qFQ=+WyE9=aL4q&Z^6Zk4Gs~1gG$}^%1!%l{y$e z)d`m^#6X~pJ4B(fkhS<&s^fWO;CWG z$S4y;6FJ{5hpzY+uO@a$QmI$VP1;V5nks6yG5&#~Z-f#mArFWs#Hbac_VBSZDiqf& zEtBu8%&pjUv`4WpF389{)NzW7)~Tr_9a(jhMX9Ln56w(i9%Eo(vLHVcNhgzV5&r@N z{QPn-geDoMA?u3&vZ_vDU8%0!TB-x5*XTDfAFXQr)e|Q+kua8bf zI#;y*^IaRTIevZz0}@okzaqo)a&swN<=wg8fj07C^*8>P?5e-b>AQs3s!;3&j;Qa z8iF<9RZ0sZH4#xzkkLO13XZq3hvO}b=K{2Kv8T;_pKT~w`VlYVr2ziltfAN7`ul&g zJ7)VYs>+{OSrL{30)VLqWMqji+BrFdH1NO+@rSN%UR*{-WFKMaO6^VRkcXWIgB3$9 zEh7&Ol1`q^2Pf)T(ra3l}33<3)VWH`*ta>I#m>hkZH>MWijZ z*F#6IYN!k=^RRSL+@77QjSpj37{6msJL=--sWz#pe6~O!>_9|>d?6u!O{COlfq;Ms zK|v)jGCt<+fl&ZjG^>zgK4Co5-_=4_%U{#8m&(d{Eh&{ngv!buj;zIH+tgI|x#C*D zr*(0fDP6IbcZDRx`}-zbOfiwcS?)JEBqRr`?FaiN$c{ts%8l?}0Qy~JT@gJ1V^CMn zaqTzs!((94v`7i}23$TvVrm79sKJ5cy{(bmrAsl6SBR%RQq>WK`Y;rucJ7N81!buv z>&*r}YUvg4{&$l%kDz^YRRFtHqNai7YI@p0@t)%EHhtrh0r$&2?Q>nETh1NDphQVp zyZYXqO=ZuS4IlW&pmKP>)@0i62~^%GonHaH*ke{|*!}?!jw|lygw|@a zQv~H0Y`AfW!sid>bhP7+8fB`RvC+u4uWDMP-42s?Sax3VLc=SGjK{w$fEWYkAE zS7$Cd?lHZ7K!?oxmqH1T3=8zq3b@8t;l*3$W@dXSP1aXCs9`gkAiM9S18*?Cj`s98 ztd+?&3Viy=00Dtau%`G)ulDz)-RZNdqDo(4;?>^RRet^{z!So3%p=WSMT3vg+tV|i z=#`X&-Qw-N<^*p6_pAf3#SG|63}&Xr+0X?k>yRb5Kj@3OSoL$;ugJ->WByj7>YQ#p z8CC80i?fV;$oRiOc2J#~Z~Ra}<#t4VTSYVg3<98CJW*^llCn5%a$-l0&=TV-dBsaf zC?4uZoqKUZefRKyDQX;bay;8!2btP>LW?Y7uO;YM-NoN+E=kjPKL5vz0d^{$(*8+! zeE`YG2rvN-XCg5&ju#?{i2V|=Tger`7y5Pu$fi_2L%RutMfd07DmoT&%@dlHH3L>x z7huz#8OBuV$)PFCo44Q%ZGZrBr@PO;CIk> zU|bWJ28|OuZH&!ZhLxw6kV~Coz(n;e@b>nXbV+G59M--4-u=~Hv;AJv_d?C3h6_VO zA$n0RQvb*(ey0%d*DNuMf#M__@rMw9ACgLoe~6%~07YLl>!E2m>adRLjPzQvLc zIlb}#WKREL&sUrQ%LU3(64KNZPOuz6-k);yq-YJ*)2bfL`2h%cXDOi&Ut;NeK9D+d zYWT721~6B1BR4S>Zp05EeWvw#S{H-q)N{ugkRW@pF?AkGTOqX%ntV}9Lu;LFfZ~uH z2kyKdyp)EER1iN~?k4WhzdG59S&0R6Z8sN>@pA8|SI(hYS>7%##P>;okh#`&+B4=1 zMw^^ODAJN1GpECs;Wy$c*iP#qZSkBhNfTqccXn(a9yGPTdT)Fnz5J<*^9CWa<|`xg zVWpFww}l=JP52YkBbTOwCs09#Yn_h1#&8D$cDv%i1 z`;ygU-g&AlgtTVY|N4FZ{ymXi=k!PbxG?x@*oe1$Uy$E0TvEw2 z6Q^+#ucC!P)TW7cy+^A&a@307Fr~gWz~XDyiQLSlR)B~e;(lx)2(zNbL9S|_z>afRGQWP}zwF%jVDzJKV0^X5$U$E`WguCaG?2^X z+8|@&+Zn930Ry~Nt~STmc-&AyNW#h(AOSUO(r-dC@T8;ydc?rHdF8UUP%92D{4{O}}%?i1sxT-LK95j#_BpVj=A1`s%NY23jA8AyM#B$Q}!X zU8r!hpX2@g-1GMeTD+5$i-?Bk?50fx5yEGDbQp#C&GW5u?d4!a^atk5nh@}dUi_Zm z^m)*9B(GKP;g%w-^ExgbpUlMlLD7Jsu?jmmsEm}VD_nrR0BkaD;&K%*7#RyIF*Y_f zF3w>E*P1$VOD=sg65pPHyAPkcZ)Y1htd|*^fyh@<2K_Z34ULkr14%@{p(QZR+>7t7 zpTNVA3^cB*JAA$YtelN*QT=|!^wwwQ|4Fk0RgX|z_Ly4v-Fh&=w@h$;*_&O3@}$#9 zOrJp2GGupfpAVV$M^!toCckXBj*bMoJ?>%nTk%wUU!v6+BbwzJ>yQw7uYUNL8f`Y_ zkMkYW~e(*6F9ttT?w;LdG2AHh0+dc4iZdA&sJ5Jh{{Cma|NPZYqq^qx$ zN{{!|X;24!L7UXRS!ldbKiacQx|{APd362t^nSn zP?tunX7>y(qx;a1WU_bF=Y5MMh$YHafYF-RINXt`H>Br~6h z2$C#To0jm-z;Np6PFMvK9Sd@(OP2jFu-aT194JV?-9Gb)6va}a15{VxI9m&j&4l!0 zv3lHY=&w&YHeA4{slEumYJDP394N$(1y5sAEe`{`{e8UOEXJ@IA!obfUHKiCcliFj zegqx5*U92@CGJVU}OXNy<{Mq0vy?4meCo|pZm z*}uyFE5nC4dTRT#m7~?xxpreDzt8|}TUq>proA9ttFL2^1hkmp~d&c^7j5D7xVD6`L!o z&_E%DO5ev`A+Uw#XI1;fgp0e`Q6fB$O+0y-&S=$K-;13=04uTMs|T~$r%W{Rq ziXeu%qJhz8Fg%YGAfFK^@kkdpS%4D?3bJS>It{*Y1!}55aIK>Qv9Vp{R8!rwOta2V z!BaB7`m(Ss(?6eQi4HIi0Ps~)#oO8Q{H5w!wQ9nfUBggQvyuW2R8o7@FXC^w*RG}l zMhV!xWefG+$SBEPDi2PYTELupk_Eogt7j zevNCdx^#q=VT`S!<5iKfUNxd-&OXz8j0p;sYH^$$)Jd6RkINhzl8G&b%%k!i>r4Se z`sauV$Y{$6z?0G9Z~Er{k%gdS7S|zdoSgXAZbfi)BYpwjaV4tdCj+(B-+g}purMHz z%L%ApK0i{^sDF^>{R9d1=lX!blPjEHEnOvEE3;lZDWDAtP9vBrZ&EE;Cu7Y8wt-r%e-?8DnBYh627hFumZmrIE195@;+nYeP5kemOi|Ga(7$NNOQ1T-omRzYH!6 z&pY(%PQp%X$MX>UuP~*menJr63%mS~x=tFM{hk-y`8)5n*1Rn=-|>31EYS&e{3X7o z@c-2UG#^(O0-%s~L~W5L$npI7FMDGr<#v)$WKy%yT*`~_9b8C>o)#l$I!eeglQVZO z4`1R(gQL2Ki$|PJToskcqs~+zshlKtbOVe2L6KK(&T|eBA>7{^N5Rz&)aR_AC|(ui zIENaACo$^xz!P!1(z4HR25X-!H%%lb>;f|xP{TyMA7hWxo#(kvvvM_tB8aCYO;T`} z{Bf8>E*m>hN@voO4;EWyF8)F{B3QF642)PfW5PVU2+zuIunmB zfuRwiNUdPj%cMhx771?rgDd5qmIA2+9oBECCE*khF5PlcKq)_D)r(|X{<$jyF4f(YNn(ZuhE?nrH!d9<$jU!aKc_}591|?_KUv&PrDnX| zy}VTrpe(qU7{q31-Z;@O^6Jj`_o$+-rQT?J_E-DuA+6rLYPDjWU^-={J}v`hG|{8e zK&F%Nv+ieV=L*1lx;PEiM$i+5lVV(|%hIhpgN4+(Hci8T@=wFekw`B-4GRAAF-TCA z%i?C{rPm<+7}g+K7wT&2O$Io-Lwa%38mrUuY$@W0xsHDqB$NBeaXhn1WGD^>26B9i z!;WKwXW*Vzs}m>x%k)j>8-#4_-D;`FtLwz}zc`_dqXFd0$e5vpX(cvR444f7W4xaG zU4_vfm#Tz_MWXXR7P-vQNR_s?K-rRkr%%?UfO}Uf-@Rog{qpg@BUUA~IOdjp8jcc` z^B3BEQQO7^mfprzFLa{Jit(8u*%7UdvrXb{ZOiJ1RPY#kWQmhDKsAi7^Dpq+cU9=* zGjDrR=|o$PG7g&8Y|iQ91z;fLQ5Etb2$%^oqZ*w6<^2r7$asFg1q^>dMqWRv`eMrS z_s!S)D>epmiK{EMMoJW5R@c#lWv@9S9K?z#QSauoaL_`fkM2ysl$hx)^G`$?K#wMd@PTD6I18d=i&~B#sHrf zB1EEM(qo4~(iMQD(5R&N!MYP6(-Vpq1>mXWd1inI#-akVZO{R{^{{uoV7zYgryHpo z7;?kWf~XbdRQQgAPDa?%kLDnUq%vHDp6B&tG&P|=g@BETq5Q6nD)9+C{_O15d@qnl zq{E2#>e*ZSzxOeKMclKShi7#PTh*QA9(D^7wPruUH}VAT=R0!S;4vOfg5HkZ-irIk zfUA3&?_~Kjc-(jOyEo>rS3tQQ#*mU;vqsKz=nfSCIiHsl8vV!P_Z`k3kIpB=kx@Uq z-9rQJwy0(At-pk7z8x2sE;b2VDVpwp#WgEvRV{e7t8)3-9ePfj>qb31J{mE5ymFRl zeA?N0pC+aS`}&%0t2KR9M_#^bGp|}v*Lj7QuOyY>E_d03ro`?^Bvyps-{f>!*ZEMu z&7Io*Wc4r@?;s;{bc1qe1cmVBdQzJHfeRL}`Er_wsreN`s%{0F*Arc9PU#DGp4vu> z)&~UWyT`X0Z})fRDgdUC3;f34%KzLt_ekb#VCelixG_R)-{|RKHnv*}%?ul5tdhoO zRzi6)uq4DDUB`loCnF>@kiy!taqh@6_l+z7gj{LejYVT}0dB2d-NmS!-!7_J+BTk{ ziph|>evCw@4;w#f7ny(1<;L6gLy}O#{tQc;={Z}RD8}1Y{JjuFNKRfDaijHgi?g{2 zOxHSzV0Wo)7S=Z(PR_8Bl4Q)!3rV6 z$Moygv(X5bOZ{icTKua`URzn!?GY%!eE)!Pk@oSC50`|%h4Ep6J!OvnV#@d-*_1dW zJbr*os$7BwP0~OyU&p0ue?V|6bVR@T=;%J_sFApcByTV8uf#+GO$%ZS#y43kf7*PIQmZbquIZYH^_L)3fWF5 z?stz|0Q&)Qm@Y7yjTcwj3+Jmlywj43S?@zDXMnUQrS2=AEkaLK!F;1!yZCm|FyYlRefW`Zd%rS2qG9< z^;)Xe4>H{pF?8cfon-L&<9ToM!p80Cwq^f=6A)|l3u4!*7dN+I=*vl?C4Kw$>kd{g zmX3?o2ngCY=M?(AxCo53=d`#Ym)e~dTlAbK)wzoSY?_RPyYwYp`vqE{XyK%)8BZlh zl>fM*Flgn*;p!2(!^LwgP!;EQQalwYAWven5JSayovt3vkk~!8N*&i-HLVLu4blV( zmb&2hff;yeT{64mZ(y4Kg}7EUKZpWZzo|kZT7&}GD_{>sMXOvrvbDtvXD(iK*szOd{#A-7IkPjjRxV;(t$YNap2IfX>aYbH?+8sP`K35gXS2HEs2e z+${^6vXrc}7VlQprqBB#W*{#C2a_kYyOXFp` zS$L^!mj8UG#@QN;m7vFMeP~Df=q=&(b#6?4`EsoIV93bA{V6;BY-H_aW9_cYJ9}HC zVeYZuFeY?L{76dfXlN90VipBli7Rd^rf(T)jk@fy(5 zyO&%UqI}n(=h0u_N8cXS-~b)!o_S*>rt|FAdujbU*j&2mKAOntc61!40ZUY8 z$8LV{j>F-*b%&$@lijBO*oPwd{288Q=uDW`ZcoY>#K&iF;L3Bv#t323oKKg@OV{V|wLO-yH21R=%=k<8 zA9f?BEH?d)md0sJOAGXmv*9F~ff^l5P0DTA_ea54AC8~!AfR$V|_UtY=aj2wcJ zTZD0e9emTF8K*x)s9(ijBTHm10d@zj@^H>9eoqoSHf^ zhGx#sJCEpqGTlLLSnIguj^w77Cy!lFDKk-w^b=6H^Yaq`$a5YNM%0e#u>IAy(^SyL znpY4@mv&$xB`?G9#@oF9uF@Lcz5QuT?>bi--2wVm{PzM^ALaxbc~{$BD+&1Bub1A; zwY>m*zUpwspOQ$hcs+Z@JzJ~zi3AnWN2Hx1wT)!0`oD&T*z zvw>MxU0dQn6U=m5NA~8g6(w>Dp!l0Q;qwxcCAgm!(Y#UEfdvSc&JRoR9Rk?Y8xeQM zg3|Dip9SN`cU@v8{3ld_1}Uj=8uQyfnn$#_qtQHOiaMEMp)RNe?TCR-(O}TE!-g23_gVF zYG6Pf3^Pop+>?_}OHO9kqRKE(#WHYaG)DAzdALYfODtIc zikd)VA2y*tm7J`gDokMDJmzu|%-OlhArwdmPj2N7sAKb02#)*b@qlwNjKlY@*wMB{ zj2=%G)e=xuK7EIT*6XIUDT|C^3=L&SWTca!0m~>tz1;w{MduBmDwkV}r&MdZPoIYW z_#&X_S+h=`{ImwHk%fww7e=^(B*`sWk1JxRKdqf-R8vo|zypX<1QZ0NM*k>H ziUI*76hVoC(jk=4QRzkLB?wXkX$mMvQ>05E^cLww>7CF5NGG8Rgc|ZL`u)8xZ%-8F?ybckqM+nk~LY z(?=hwqEbA!W7NQ^QT@G*0ovRg3ar7uVgc|b;FSU+7sgG0Tr>0QiQl!GHp<^SRafq4 zkKSseO0Rb@@UTL5)Or9Ts{pR#=!odEPlsbBW)VVHYTIb*>Wsg;=_g|5*0E%Jkj3^~ z*tzGEegzeGe{BpRdW;VjJCIMT|LZ%FVH}PhzKc2)T_nvMEX*wp>lwgc@uyaC)btBI z^)V|a$w0scum-yvpZ{@~>F%{%<3g;cOCeV?adIr+5n!7=nzb0&zG`wMlT z$rye7aoWJ$N!7I>qlpw&Sr;%fkdJ(nDxOaOQL+Va>#LXY#rxt(R{s5g$8QUN?Q zR$D#X(DR`FmEiNB#?>JP(ozxem4UzBRpG4@(JOS`2fqs#5A1{2j{Zb~xn6Dt^SkZ% z9%kQjP*^n8ztR@RR{NcTk+Lqx2Ye1Vv$UDa{!Y6zz$=n!d1BK9_S1GY0PO+gN{O56 z`~`Td^<3|Owp3I=jTbpbS?zt*H(YCKOw7_zBckX87_Z%L*2=TF7BR7T4zOrZfpAqW z^UD70D!^F2q-?6;D0~sjSO7niWenV&rvL$@frNxG+y$PkC?-~5H3xD%{b7T(00l}# ztD2P4=;#=yDi-a%0DFT#KNf~Zi>N`rdg}g+)G=!~`g=KP>r)pPJW!*1n&fJ9&CV{p zxZwLN&Z{of`$!T5Soq8sO}Dkx)!tCk1M1KMSKH-#Qeny&ye0~$xTfG6&aU5t@lHMc zuk`&t$#_$=*-{9Ah@H!soE%j5brX{Ip6D|^#xfS@w>kom)+O2E$7*^TOBe_2yA8cJWMCvmM+FCu*(O!aF%oBFmMz8Fm2bz_2v|PuHl!FBYvx?upe?o5}WiDN& z3dMN(P(D_@Q2>WiR)QB8-CM3COaT|codx7Tjk81A@FBDwuf=cGglPnzi|V1*$8K; zhPAz`WkS0frr*G9yGM}+y(vuPo056tHtl4u6JKSxOFB;B)8y00)l{xPn>rX32Vx06 zb{q9R7c&S^HV zGHUup=L?|ln6PGL;P`*DIsp7~P3Dr0j>SC8dmXarm6*U26=%d@e8FrsKf^7{ z3c+_tl0E%GD&6NlykORnA;~fKzkQVfFMkL{sj*`oaLFWEC2PD;?O5!L=EPlKGUo9H zaZR(yu2{tR?2N4r?HLz7@8#N#VlV9OSe#6*G%)u7RJ&l7wKYYcj=)nEe!M^@@lV&o zToc@1ke;nCIW=5o3-{7#pvDvJ{^iR+- zg8k7QCU>Goo{9`IfZyLy;OFPhKYbF+R$W%wEhzZZ5oOi&DW_%T5`No6^z5&jL1CN% z`3LF{3q24&JL48Op0)InF91zfQ$vQ-qM#3WS=-}n*6EP$5Hq(4#P_GEWpZl^h zcchq5sls8FUH3J$Ol@vOQD>h8#k1XVKozwNmN%KeuP0z zwWPU+a=<>bFY{!9WdJDT#LX%%bVM>uUCj>`mAxcoY zp;w1%YTQjypN|R;^+-b-NNj#Z8R>7k`l{sqglCv5?xP!oq?~lt$6H$4D|NvCjNr<7 zegL@xuv#FGugh_5G=P2g!>*bIvhe$J!((BOTQsqDPSbMN&l#u7|JX5^`I*alc(^qe z2}GX&WF{r0VlOcOy|^;K?WY}*Y&|!ZFoVpMbq{~{uCzPVZUx(SI^l5A7Fi!dpW&c_ zg4-A;17-|BHd7yX-+2&*eSGGQH!yRF{C|CLKoj6PlJ0J;SGgWZ0=7ke667Msxt6dd zzfC2TP&Ds@72krqz>$J~PIs|}kheTO>(_VNoU}=k?z_bH!sq0rS|L0qw}5=`;AE@iI&;OMy9wr}j;CK3sV*GJiiZ>_nejNzFhV_nPY7HAnBsSA z7^A>UlAiDGV>SQ9qa)yyb(D!+fYoMxNYiw(Qd^uI>co)}*Q}8OJ3KbeeS8@Ya;`e_ z4|^2syafY+F-c9qw_+890=ATd1Xk=3_PQJYG+~Bl_%{mxuA;~@iV7-3+>qyF;>bNoih)n#T=pPV`@iAyZ1igr)KJex0B3GUqoj1lL&$%RH7hGn4^NoAWKZ2y znxF4zFO>iNRRF2twmk07N@nBEw-W1d=!S)^F5*ifT}JOicUf$#V(s9NDb$NOEhZxN z>Wm*6FwegjEB364s5{$3SNFH$4l}2}wf<>w>^WA?9m7NYDfBY0#gq&H=x&dqSd$B? zy^_WVfaif81?6M}pHHL*m@BJ8mPhW@t9)xIVX~thgu>B_cdwa1y=uk9O`x9dCyZtJ zV1Ng0O{6NkJvR4vx27Jeyz(x5V5PU$^Pi&^xj>_pAaKtpHLf`)s~>r6=64MA8XVKV zp)|}kGE(fu4^XxM#(GEmeQjWAIp6M6>Ui**@vyZm65yEs^=28exrMldhD#mSdX7lLKWUT@4b1pBhO4YOwhoV_RYIkd!$FRo$L+tQy zby=CIAF+CWWAT++(0tN?_rSsSH(Hi4L0y4DqO2MHnWYFA+!^VD0yF?i4|sqYZ9`h# z-Z&;tVle44oeDAY4WErHz!r(w!o~EG)W%)G$gdVUPRZYEAjEE}K1rSx`mJBO=7F0{ zR4mqW5fSO$U-|hsSSCf<%I|YhhzM&wpwK zi!Ts*%?JLfW(c31YYVJuZ6{XB%hv9-Fik3w^o|a!y_|Z&VTHQ6sEmxp{`U~cXM6kP z^|;8!mg<^R(xi*0Y+ahh-h^1$*kX&p~@dcuk_XN4-^vbAP~TPk&B(qlva~4U0n;?UmQG@=Pwin zQ4m^bM~3BAo3-Rq$Bq2_r+Bz4&}KM|+_VnWnxfBYhf3>PuCpHvqP$ON^^~hPfdAd; zVohJk0(myp52T$}CLqyKD_CM4k0jxMf)LPh#CK~ z?bX~;r;%Ypehot^su!;t7M;X?e4Ut}Gl-#kxiMAp^XGbsblUdI<0W-J$8J+Z{Ikjm zqn4J6&3eL~Typ+!JUZHt0Vr}`g@sm23kMI8iTly(lM>E^s2F?!+I_$1rb?!)kB+G+ zeq$Ob@0$?w&Sqxx(~B39knGh}9Cos*qLNQlT^+x!Z~kT4_X!dS$hX8=PWPgm5HB;W zN%f^_*Cx$zDXG*5T0nI5FI#xP4dlhd-r)pr`QC04zebY0JX|w&e8`%(YxpzfLxsF` zYRx^HSA(BZ%lY|9X%V#2i9nevlc}giYuqX}8(jAGjHsw!Zf@CxTW~6%5%lmBV$L5{nFR}7k(9_h^y%r{ zSh5`&O8z`RtORO_$Lkm*ikc0-1>+Y~_x8(rL0dBHOQmu8|bOHXl0dmJe?jym6rGNsc#cSRV{n<}y-R)*(aTrWVWYx}m zY;xL2dl)&)R*#z-BZv^sk72B+$S+inI9KMN56jPTghxgi8*Z_br*VnIZ)5syj*J}I zt!~fz&NC=Vtm6lD`>#>Ry~g8F5;iE3TVsubL+`?Z2Aj2}hBJ~}7vEv)@FebHi=%_Y z#AFZAQ_OWC%2?iJeHPmhd#@_+&26VQ_?(^mda~Z>w0YM zN@BPr{Cw>JmjZr+I4D`>n`3(YZ*!bR@IG>12siUxZQ6DmWpY?rO6ailgzxOAgMtEMqXGQ) zQlsZ(#%7~~acoyf4_q3w#z-G>_!PI-R{FcdZhzGA!^p}esFld_Z#@F+mYVv=>h-*>&a2PV_|?*Kn&ar?%QB-gi7ZX+?WOH=iint1+odU( zx*e8|4_NZZ+gDa`a&yBz_Q|WF&I3&AP9X-=)3*J zAU|u*V{u35%E@f^Byj^>v;kFhTCe}{=intEOb1=JGG^L}a)HlTmY2Mjl5#$)aVxmg z&C5ha2J8$E#>My4($n`2#$l?fA+q@BH4NGKQzH7aS!bnJBrMvno8~Pm-RJG}7C2p3wH5B~5tDIx@T>d3k$ z`HYVlCT>?*?!6xLLOj2=R?QUGP$)$10(y6#J+S4VkNGsT0wN-|*%d_$dlVU&oV2x1 zPyITeD%jp$&m3*5*Yp)nxOEuq()9JqEpFeH`~qDW|6li*DtmnxtS+!dLYej-4|cx0 z`BCk3zT_ zfd_F5)0pMyIzQWY3n-Kf3(Kjc=QYD!;$-o&JCW#Z*%jt{@47Cm${{+HlP=QmJ?*tz4=XRrAhRM*5eBeE|iV)&m|%3>gutz?>3im5W+xF zq3fodi&Itu;9X}l`3YufM8BrUZ!;ZJvpP{(Rh0e52aC9FcTy;L_kiAP@o#b>&A82znF*g5rdY z3GO_S!;uFcm@l-{lpzS@e|c@iA0QAWh=#JlW8bX3CBMMO>uqxIQHdIxYOJ5#luVqZ zq?DE6Or|O}O=PK*m3HG6W>aHErN$NK^--o#j=L07MrI_fOY(VNjM%91`5r%}p#pbWIK{|EaMR!Ba!Pj;z7R|KXU8=Xb#b%6-w3NM|-+=tq&n-CHcN&@T_If8^!m zL9|kM9yXJ+?BtWHpg^7t8Ha8BUtYKb``!EIoByf9$B!THJ;xsi$9YgFHUX*7#gB6qwD6%CKME~3}uQD@uikd&#rB3{J!}6C%-RI_KMTp!-F|8 zv}Y9p$&w9{JjuEf7ZVdJ@fraSgKlv?c+lMyfn{J~5?fx9%5}F$-&&&nx7Zw}GejIA zdA(d_x%rNGN8Nyy5AVsR|2ml$NT592Bn~N$WLx3kq#Bs37f@Jc@+z9GhmnK z?rudMlPU;bDqg_Zo`RJXGcF$9x0n5-jnDXyZ~8enxLf6=T0?;Brwq!!eo9v2(VIMF zL~u-WPDDjTvzygG_Tuory*POoWK?cS zK~wm&gXXF5LGvyjB;gMNg3W7twl{CUYrQk|6%tD8(#TAHu{F6dlujnuTgEy|T~Yoz z0qI;X{u!!3eCpkPwy?NZ$$b#ShI%p- z8TIy)?BtY`(U|43xxkZoo;Q<2+}1xCM;GxvYb1sU1m9e+AFI`jsJF$M23WYXU%rBL z7O1>YOl^f#+i2OfUmkC&)zKp@utb2gK!Nzj?ChoA!T$dKZ|t8weJUP&C9tWltd) zgb@0D$sR{uPR>~I=N-A3nQuV6`wZgTJz+cIjnUl1LB1Az@D|6}ie553>G29@WMtmq zBPZEcPg0)x^5ZRaM0j{Ov=WY-aAld%|66F-`xg_DKm31=VE>lU}}dZRHUwpu)y7JmaHGBBLH5=2Fb-PsW}{(S#F#5-VjbkRwll#G_+KAXZf zQn@ZTwI|| z`;~pX3o0sM$vJ$7F?9(7>3M}kIX>CIwyMau;u)s=oL>0}MdT!xYh4|&h{zG7_fMR! zMdMPaZ0;g~ff=4%hP0)^AX-iuskdd}+`hbGIR5+Ogk_wO~Gq`N>hxOEpGM>v`IcDY)?rLB! zC5lV}>^oF?Ssla^Qw=S&sUJcir+%iN3yVJ-Ts+&qGJ0xWRzK)lz4eq9IG-Oq@-&{J;t!I=WjV1mqnv6PMqz>U7}A1 zoF+u;DSa^(RhZ@?`VUjD<%vc{atJVNSuV2L%Z_i|^5*tK8OXnU>Ce0~LCA5jD(N0h z<2f8ISKm&#`n#zBlo0_-iG!+d)pEDEGdqj9FNTmO!>_bk!Uijk83Zf(S`8{r&?RbthW>tO--$(im~wf`!@-4 ztm8{mr#HM}mfsXKn__Bpb?S;|>nOEm&`9v!yTD1sTZkh&3V!k_%ls)0_PA%45%(1Q zJ*O|8&frjF#s@SuZafEA`;po^QC$UgmV$#sSZEyQhTZ!5So;<3LjMP14n4)|tKA}$ zvHlPF7FH+DS`}(bQO}{xxTL2nl!3)Zz%(+Eo zJMuGPZL&C18}H*s`M{H;z`K*}AG0M7rn2ZRCB`EPf^T2CO;s{#M_?+@3u9NAN_l$3 zb>kEp*4tWyEZs9t{nX!4tf$1yPozU6mu5^#`qGSY?==7HfMBx9ikE2X)a-CsKj8HD zrbIN?*RO)_2S?hW>&o~fJpoC;>9S-A5M2>RuT@muEI-!N#GL}IS$@psT^t+I=9G{) zLd@(r%@=K~Wp$`gk&t*v0L(PCkDZA1dx{JF9YYkQHy)h~?mm2#JtF=AHMRcrS=0jP zDyv#|;O*&=rL4FP&fORBJWhQipS*l2KRg)0#ZTlgH~cY`L+NwQgmt)NmRk$+zyPthKY79BCUCulB-Z?{brgtb zCccNDprUiS-`Y?8>!PiY2xm*P;v~{Kc5=G`4g0)<>>{{Q=ZmX`ok5V5maBUY`mS36s_T#UNlV}bnUK8N%#BOtg6E139uxnY> zUdGb5R(?tucwHY3BGkOc3*h*-*FC~kid*e>VxA)01qVM~IXX$HCAxSRt^WPFa=Tk; z<7(dKa~MYkKb%K1cswO6UTvail?05qGnTI(LrAc6NLYM8LUJlBoxxHtvVO_}zud$Q zJflX9A!OEngu35}0%r0P8cFGcDTN428d7vECqOzV-Q5ebGYjwCZdm#RsR{C zbwaSM-u(E@2 zRA>~E!QK=7&DttQ0A+*A(6ar?fipcF^D!eK^y}6k#Mx*fQ{M6 zsy2{kcjKGJt{v((bni@=odp+(EDT6CN4h$Kq;434?nmT3ZwUoCebVZ;@?85dJ@wsN zdOWXA$mc<}otddUC+K8xk6@6$T?X`PQogbP&k?XVT>6?P&t5RC@oGn3{Uy!A?#>mQxoh}(QLbrJqVD^UZnV#0e&9X`K&tv_rR6eym-rF`}8 zmO2=h9lcqMaSs`|jE*NASzE#X&4I2&_ls9QYlrjR~*1_X~Jmdtb=i5Ff}Ps0-Q| zG+(jv7#4R29uHRyrFAihqON+g!vFTcU6*iSF^nu#j;XC5>lq+AX^`FhhQWxgn?O$Q zmT@*R1FT2Y)s`az;g_^9yDZK~X%S%_y0Z!km@sFCH1)<;L#rG~3J2YHuW99#r&Pe^ z#6TT%kQ&u_86SbgC@(DBDeOYW)9?%RT4?m=q>1l3Q32oQ!Y^Hd)|fm(uYTglGTsE7 z{d~XGcD@pPVKoH{k<(7KAk?bbO!6Bb?{pBUcSDO^FuiOKgrnS;HFP8TIjY6}YWGC<8_I7EB~5lm6g+QPLBN%STWV-APKR)dap>@0$DM5Jgb zW6QcZ#KH5E@>B#@T$}*R z4Q)v57v%bP@7O!W7^LZ8fn;7Do2VtYgI=>;{^v_ofybHp$;of|(qlOtZYWizdT<(O zb2f7#c9XUAeKxc89~mayG;}bxm1*a&i24blF&8kX(~A@1B+5ij>B*_=v0u18aJTn8+@tN7)_)$EHc~K;YdZw5JdhJi-@JJ5dEw;HziCIjhSWV z#ZI0=mCOaxqvar~Z3+tYtEI!x!uwN8K8()*0~5R~jUN9df$u{s=Ytz|l_^6ERJ)6P zSA(E_HaL$d`k-?I^ZpzD_cuRi!N|1|<%rB5KkjUCp?AQ;l?6cwFM->a}hX`u_UUgb6@6C49X;7 zo7|>Lb zcy4{fPu8kmudyB_(kcA*810>2|Fe`R_pVvOV}<*{&WRU5txv4l$|YYc6%?R?>0_x1 zkxMoz--#8JiVPW~e9VPgLjGl%|N829wc*U}E?CvnJRo&`rx^@6_~x|<-8<+;gLYh|)AoAmDoFIxtg3mdy;La7_~kl)UAv2s zi*&qjy8tr;=1moVXZ654zqB9kL~2D@zwz!$m)G$=iANo+wt-VnP?IWq7JJtVEiBnN zPI#Sri)2j{6FCvdL?S)qXwemK2Z0T=;boT(oU>;*Q%cm!ra<^&DYnFo2TVtO}(L++DXQ8fu zl=u{nN;PNm#NGf0d;etHn_q6?`m02C{`q4MNq*=7rHEv9!H-qqc6zCWQ%Tr6dhids zns=J=QxufuPI1|~rKM!2a(CaLwI<5LZ>bffJbt{Fq%kTdebN?yw;77keS9>i=-U=O zHU1nqV1KjeR_DJ|RBvcvlAF3e5AAb;>&aAkp}A+X#1VN z!Pk<4gKHR7#^CgUjr8T(hZl2IR@wUWBuV1EIf}|MQN+*?xI$ydjrIMTlVWwhYv;6R zBC+NY2EE2-b|y{LJ*kUTfqpUkHJ>@{?W>mkI3S%hFL7FTXX>&zxJ&zCc6DdL(H7HR zK3Bje-~-$O>zjjN@rzy3uUV$_%S(+S%KBMCh*{$%~3T#+NK<1^%ab@REU*5qyBd7 zdl6WNfkBc=q07zd{JKQ`*xp~v8~9p&U)b}OjJFA^Pn(539aJ2bc7s$@@}2i$D-N$x zH{p|bC+n)$clADUwLjWDxpp>&;(R+NO!uAlN9~qJ;m+7Fs;lc~X8Mrw+S+|duu9CU zASteatirq#?XLS%IJah3SD=uxm)B^ z9V|^y>^S}od^WZ($FqwHb1A1~^*p3t4~au0hi_p(a>E!nR&WMAvvnI13<|kwaI!yY zz0110Qa@}-+AotOg1ki6dzesE?&K_8GE?8sCeq6S+E(Y~i(V+DawyVP$OB?Qa%}AV z&({w~3|{U_1Pxt}NEJLXQ0~bP$$mE7JK0iXjG8~`EnF<*86VbBSlE9fLKp)tGhyD8 z3Tpl)6;fm9<3LAfU~FGJb@sv0nZ}Zx2;^}6$1(`kdaD&02Kcn;P zdA-9dj2o<>G10BTgtJ@c!(h8|Rpv;jMWcRuQKR_pqK|Fc+G9nGm>NrtPd@U>y?a+P;Eu_87s;84V#dr2!bdVy(p8^7+$up?P_ zqqh-^e>l6c{O!r5BfsbH7k0~marJ}rR+I<8!^8g}8~^BJ?FrmBZT1@t~Y0{83OsSn%nAlP)W_;n#6 z63%~AA)!W(P>0&}_OjGM~`$zx6^Ya%Qc*TWZ zqJAvf?S3q=JGV84^E{o{@i^nifiU%vd=sZ5>DwKXvnX%Vt8elE@5z@|DabTeZ4#N8 zugNzlhj$=?i_3e?N2K(fMCaPCmvqfy4CYcazRjhma4+0`g}J__v8cNJMnTz~o=xBU zt2y}-g``SpQ-zDIP^5e`vAR@n>$G2iJ$Fx?Z2)V#Z1m#v2H;gp4qM5V`5H@@NX9S0 zzAOH<=@SZKZ2934(dLhYRQB>3w-Bxy(tau-c%l8Az#J~#da6?@UYJaPB{xrGc@=RE zn-}Y-U5d{nWYi}<|fOV3bjwo1J@sM@lsfbv^u>ZoOQN2$9 zYdQa`#c6CnoiPmzBIQS*5gL>k)>P*e7BW@2=8k{y#5S|C+G-DePrOYv4!`6}0pJB9 zZ+Y&5M8;fz?;mckCks8ZSXx*7B9#pp+mNpSm`FbaajPEqx7XW(gni+BUvb$2cu=yK zQ)nd=JLij*nKbOl_3?|icw9RUy>1X+9oTi6S5UkFuu_9LvX-PX zJ=kUD(@SBNmz7P?`%Q<4GRcBa4MDcsxf@P7;$7NbHOfQ)kzWtwXwW~;kZ`?dm5++E(V zAUl(GI)YLom8@cy5ju!7B7E`LKZkZq=v|ecSg0e>8;$o4@x};%TR!;Bzh7#^ygIIC zg_lFR8hrEDD3xqEfGNv%Ua*mhClu^g3S@7KTj0{i_#e&NEZZ+PfFlE|LxZlnZ!Hkh z_PYYOi-KG;i-Pje3^|**F}DYbkpo{^|An+b8v4_x2#hn{-+jTd$AU$zPp>-;%~lRPYBNRVGKfW7vSpO(yOaV zwK969*VSc}ddO^Tzu~qS5V9y`(Fh+@6|-$S9*MQmn7Xc+zy3N)Y3eiA_2iAcLHnqG zW#q=77r!a`Vyhn{+}gLyG%9+1Fp~}&1v_ZuWK_!|`{6qcW4QA#?9rOh?mHNQfQ>o- z*yv>q^WQJ2D?z7Ee8c}Fe;2H`ao(MAei~Vi@xJTX^D5r4z9XDz`t`foWp_M?MD%+h z8F~OyZN0rexc#W{w70Y1rl!unrMi>7H$Ea-3@m&6#-dZu(de%VG^YRAeFVhcp+OMB8w=V0J?fu?1 zz6ao8OhwUekP&;oq({9s<`}Om`D`J>HW3*1r%%aP@hdlvlRMXnx^bd|ZY5h*aBqrw zU5o{rO2>fCZFf|D=~v-gjtuT5Wm7%Jy68&1j_}0bI;b5CcD5H&zZ@~M<8&8{OR{t) z4ZEJ7nSNamlzY0qV{GGaw=h%xq&P&>^xCOzb4PnA>fAMi?2~9F^m_Tc*(p0G)q?U9 z`v+*-CPV)8l;^y^6z*bm&TPuI*!jd4orRc1VY2eFG-34aSdSQ@A_G;jId@X7no_%;<+4`*T_X3F7*zve4u zG0ygtEMe_qU&+e(J&bt#d(Btpj9cc0N-_HCd1_lifV@hrWjD-7etHM@Di zgLU}*dg^2Hr>H^@l>lc4Hnpm^&2})011yb@+@QmD+UcA20+zX4--78u|JmVeJOD`U zmzz%8q~5*DDC#=j$V6Jy@6xWAj0j%_ zDPl+b3vp_JO(*%%(@zHu)AyW98SmYh*>||N>Yi`ai#w&A5xMitn&e_rF6p8hPyO~t zYi?r{i-+>F)_s=vSZiDoFGDK9B7H}|?T*1g4F=eOrgHjJ(uq)Rc6gB*1&=R47k9x3>t2iiRN=mgR0xz!q8{ffj3*x1sZqK4h}- zwQ8!G@@rkGAQ~{>3sI*~xr;yH>t~Br*CReJX=&-OwqF2D2i6vyVJs&D6b-BUZb(QS zG;ju38t>oe4)lcL*XL@t5k&O?+7v81%e98Zfa$=W{_`XMs(KI^B26}j6n45I)cGF7 z$H`+urkIs1Lyj~G>7}CAe3rxfek&u<%+B9Gt2EO0PKjjh2l!nEs-|ixzh-gUB9_*Z zOUUT|u(~r#bP&UUN{(?xWuXlCb9K`;nhjc)ttxp?!BUf+z!w_Z{4O~ebrFrI^Q;qX z>>d4wHZ1cX3IhIiY!QAUU=Aygcs6z`B9hbWJe!osd6|hh`J!EqUm@WYNbvcEMcr5B zuFQWgH?7(?GWZzfo0Yyk-~q)6g3dJXOc)bj`H_qlEYr1MHHs>)u((Is>%q{hIo{yZ z*J>&fEO)j7!aSgd^GHrqat7}4M=n9m3`vR&?uwPK z)ym`)`#(u8!ADnzEfJ&> z?8X5n+$k8;yvIy7TFiqT23+&V_?AdE6cIs`_bF8gsFwCXYCsbD-RQ^<`wO=-c9wV# z@HU{NAO)3w+JPe#@FpM|3q1GwgdbMXMp+a`mOr;2J>3rq@IYUIDGS)A+JmfaM|>>7 zA4mt|UAEL}$e|39ExrEM$K>F!_Lauig4Y%F`Gg!&YaEvPLOiVV`o-KzKB9*Z1>OsrqJ;AwPI2y$Lh6tg?$PDl20Gdg3bgDUO z>+%mEN?a5vB&Aybb&X{o2$g4h_V}URhtb|U`HI$ipXL!g72~F_1R3jB1x;8tYo4bI0w^DtNpBQ`XYW0zN z(FV%_p)enf0;p&g=X+t$vX5Q8bKk0hcg^y1{PDvU`h0eNS3m9(_aW@F~$fp+%?cB@-$}SdD$c-RU zItV)NKjbFkQ0yNPZggN_`GeGqw$ina32qew1Xcg=(3CdxeV| z4FYXyI!e6&Y7m1E<_=K42Q$6Q*txx5RPfds%pv^V3BkhOorTs{V z2s(30t87FCBLGN2=6AgZlw4+rxKRL7`=X&|c-^HD+Mw$3Dkefv%N9l@>XebQjD{MsPk##)u*lZ z#)SRcL|(??$3_#y*nh|NdoL0w-T^fjT{&fO18QmnmQCWv2&{D!Ee#xHFA>n#679z8 zKbB2@Rqsom-P5-28$el-_>u6ChmzVdk#_cFHQaZtUCLL$vvd1;&|*cx9UXp+0?{hsT$|Iy-IJxT#`&Fz=rJg0jy*Tk%&E|sarj#D&-)kC7;yfh_4V5>#uX`z~mIEsB zLsS!^CyEoh%;c5HX#xH=h%xkV&(qB%96Z_1x9{GMHhL7^39259+aj=#1S?QdDI)tO zFPg1-@(8I}B0j^-5O;rNLixP7fmbXTTQI|?jgMv>ZYibR!eB(u66tdH3%9gl?J%!p zY3j&#G`)rtFCvrQGoiJ7v(A)VJy!x~+r6^{bPonY5bke{>tA329dxA&S(pLjGQ`;- zY^{Bw)OgnQUQ!n*C;EFjJJx5|st=`?LHf>9yuw6jLOu zNI`lBzIvm5_V`uJuT4Kcl3YsL5#jx5eN&{}FT4*^a=CAh(d0F>@uO5V5qJ7n1j#6V zuy+0G>bzIBO8xy|$sebln5lWL2FltYi$-J#Kn=m~A!@r~-Tuzv+Q-rI79j+$H?;pa zI*C$$JUb*35u-{O|Gb{4E#Lo@wr0SEj9L81J!T`a&k0LiVIes3w$+Q1-&gfG=e zjGG(q`!B}~jWCfEUXXzS3h%`;@m`nI+(pYn@j)H2ez@%z(`CqUD2jef4Z(sS3kxdJ zV||LwySHYE#wtT8b+IqMJVsC)t!Z4oc?pNW&igsa8J}%;be@B9A0aXaqm-;7xsjpB zK7_SoIt*d-Caq=ka5CsQ}8~+8C%JxhP+7m3!w`YF}Y-(a?%WPG)hXTP#;2Jv{}*ZSpzsK^kI+&PHy2>~AiNY{^_2_Ap3qC=9b?7KPaXls6SMgj0F6-dPyt6~ole40OhZk~U zKUP~bX!OJn0%qIhJ;B}J8AJj{z>F`Z{M<9mokL+bSs^bYd$?59;JhgJk&tEQ<>s{B ze4J-!$N}B=CXcZP-1$Lwejof;>b&Fy^ffi?uf$~N$09yg*#o)TX%UpU&GBz>gJ0WR&y7K*W(U0|Hb0DB1`4ixtxP?hni7s)6A?*BbaYs&-Pxh+ zB81Gp!VE}>LhUwh%QJV6!zb+NR;u%H^^+6&P%KDFaw>r28T$dvCa)xE*5(_eoS=LARB>v$?oxKk*aVdr*Awz{)~_wJD2flky|Wt@jfu@n)2EGt z7pUy){9*EzWhOJ31@`7uekLH9XnGp3^RqINm@9?J&SdRI$lyVDV!m=_M5Es}^ZaLe zUbNBA{F>MIZx~mK;G8kxsaCV;2;TQkhgPOC8x#^N5K)E8XaT~-z?={WiZsQ>Px?cS z0g+s;*Z&hT^y>0Z`W`z<_2$Qd7*#GV{qW-Us0L?$Gip=aV;c@O6eGvQUDwa$=q$B< zNgMVv$K=?KL}Bdv&n}K42Ptr?MQ#x|Z8`+)F{^|2A9`6}HHC$g%-IVK`~prUA95`6 z-Sl$#MV{1uAz4-fJ}3ul8=EoSA#MHhJ)T+U9R_SW(yaxhffn$VE8c^l${mN^G2I`= z!jygC?q@uavv?$wt$FR{ckX3)nR28u(74uo&CKHXNXA-`T#Gnj6RtM@DAZDT6`psC zv-q!N#^L@0WrC+@`{Keod*&vGmlu&2jpUWV5YurW(%wqE3I-*@kxvL zw#H6LdTH1m8r;$DL;UlYvvjd@^`bQy5}nW-9cTiY(0jJv^<2^dI7Bmb)_rTW@H~lD z8GMV7$f_co4vT2vW+w4b5a`^|z6fIp>r;E$2@P`NTc%(&J)d{RNPx0LbOY zF*bh1ZD#9S?BttB7GYr^ONI@6rmy0rK~3pv^(o`-Q)R}fc6Zj+76kfgxk&SUb|+sJ_{)2o0H&plf4JJe_t;|rBIG&SiP2|KNJRn*wC@$^$B ze@XoiFNLJ$-$9h0Zmn1MfL*Y_DAaFe5G+Af63LtGm?B?^e$fV_Zzi`xZBEi$`|B>$so@)`G+=7`!MPIq0bCFG2oR;?a^CF6 zAjf3dhjch7mU{E1D?I3orZu-*ZFmp{rk62gupMVNZC-#V1D`W~oQ)J|C$XOYJgz^9 z*(tiNR;6=Ef=Yq4%4?1XrT{r4ZL|vcorv83PMDVvGSC2q$#6z}&efmvEHft(@m(%I z`+5SYH-d&~|6|gKbS!fm{MHF1^ZtL{CEwhEU7*y~#8}Y-1U2Xq@j~li^Zf!{n;kiZ zl+e+C&*JwDCW9I5l^A53gnS_IsvM4Rd`-ABGZc2%iD~{j$Dd~~_GuODr10NFQ@{IX zkl$JB)r*!*d!n&d9`N91hUMRN(A!C8ebNcbwwuf<*byqZNBFqSzY$|0LxQq01j6=B z%!v%oD$@je_*4X}8fLfOA6yu*xz4%vGc3x;br=q%o5^V9mSWjxQy~z_5z|;#oeRpV zqH~qA4qK%%^74wFq{C2FSeV(5ORcCi~jmH)TP7f`{ z+gZwP+}I#1?T!Z#tgvye!8o69M@=X+=QiL+;z#t2yCp5Ad&hQXK5D$h62bL=ZAfD( zaM?Z@DW5Nv&9!Q8zQ$EHD|ewX4+;KSBeIWCHfyfrbZTJSIF{; zlDpb{dpkK@Y^E(0e9&kDejes$SN(P)>r{8uw~N^*u!^OYrw@ii4pF;l$OnEK^p$OzH9S3RH-2rr6xNp>Z zGXOB3y;W8{$ffUJWC%Q?nG0Djhu3-yBR)7ssG*l=5|rj&qO{1CUwYcM)%4d!Rq~U+ zqoOP4^XW^XN1kqJx>5)MEgPkN!NMEyw*`l7^zW9t&LfEhIXk6e>D9bz)70eNA41pl zodR7<19&%>A1l>fw|q{Sq?23BPDIvp78ugmWdJAROEdDr&p8jlndQg&{Oa7k@m^AX>Kk1m(04O>Qj|$Q#$E z_)J%~O9q4X?{b}43g&(w7ZvCb$dK>btML2J+fhWEA-`x5Xd{S&m<8BqxX+;jc5ch0 zXnk&da+krtV)=JVn@X2m#6A`8D&$5 zrr|Nev~O$sUiw^wbLRe3$6Zh-%+k|~WIF;)P3WiV{cGJlG$x|G)Vt?rosH)^0cP12 za&Wo8E4R|)+G%TLxs`qB`uCRqM7UJ%j*3z_vF6?eKGoH_sI-$e8gn7;a!#+zwwliN z4&RyTivROwT4bhT*%65EtENtI{g9QQ90#zNz^wsz*CP zbdwvf*`!ZIBEvMMw;QLb#>=sM3Bu&&ey-Q0|KfGiIB!4zbp?GeZ&rslDrDpC@YmR# zYvTXj7apDB zdm@+U$aFRuM4MKE0J6|pR&VYK49%x)9O448T;kZRvb;qdYIMS!*t1WQvgeCGqgdr{ zd8t=ycmBVY?SBR;7}?;<>tNoBTY+dIKWGSvmhbK2Gdmv|v_*xy%a)n3*=-H}emV#5 zAt2_)IB40B-Q!()6IDYQ9gcDv+E7r$azYa%u<|$JhtGvO^!Dw=uc4<8vE=_;NX~zq zhlE}uJmo^Skd1PX{e?H#*&&Tnt2N(#h6XetutSwm9!$LZxeQ{~(J0P<{ zsVw^Shv6yI%Ws%&f;}pKUE=~fzqs4E9{{%-scuMBXwt(;IREU*Dz^yWl?I7o79t~Ed20PXr_4}! zo>n6d)W$X&b>hKN54!}NB=b1;{lB_ftX-P5C^ru7cVorKb(-b2QS992pJO)poebxr z4WIEf)HNIZszEg-Y_A^v_7ZqO{z@+@2;#oJ3q6fsTIt)fd^i1EAGQWqsO*F*L7ERY zRU6jFD9d1V41*1PYRGjG)VoJ{EtGM)L^AmFI2DY+PifghBzEt)>N87_)Uu&NPM#RZ@(u#6`e$}AqY*5H#@TeK8>#%h}r%R*kfgPmZ-%*6U4MMITQG-#mrJb z*!j;PUcAdlj)-);qsN)Ok*ck+K*Cp$j_oeCjP(Q7nYTx#0seUDnXW9OtH;<81ImX1 zM+u-!TG3e(InHEobfmqU(#n*%?|DVof@9UV4H74M1^j~@&_01vTC9K$AblWVEIHX@ zaIhK~S2P!zSfRH|_`W^}oNhyBPYI+EqCp86xL&JV$b|MsH_skKIBF2?7>!0B9?znL zM2vs=_hzmfSykjyy&q+0ka2poBK*8&c7@kGVqqEj z{zF)?zms2#hVBpeRXvv=GCk$;J-?-H|6Mos%tDBKXBCy>oXPD#%cSp@)xTrh(f?49 z@@qYv{g_Bc28C{sL~z*I3k8;+06z%&gv7SJGVlH!ZY1X&CK|=k%6~#H)=Y|Q@6CU* z38!Y5P|T_y!oD$wAv`0sD9@_TmC1n{sEr`iY=!@`B1?QSR{;40RSN4DI9gh@T2I?{ zpWB^}95r!JYj|oSnB#)9|Eyc6%ww{lh+?L{XQ@eNHMsX-$C6X#er{AU;nB_=qRo=X zhM}+X?2(^%g=u7#)Z3vTcNDA`tEMWETqL$9F32t8#>(4eU|$4bAMX55EdUBh=&>!A zmB)jscP+GW4Q*4WDgbp+M1T+_c6dBC1oQ$DkGuN1&Q}*b zP=~=x_0G}w6F5^g#S1@qh-{uOZ#qZy^!U7i$`ScdjKbjmLSU z=zd|h`*ytEPw0U~l1Hhc|Q!^Zal5D%EP< zWlt6u>yxqLm02I6YR^<~$0Ly{awUP*Rgeh3Wbt32UKKm$$*F9<1B2*ped&Nl;AmKz~sH`ykZ z=e9eUM1~vi6g~7-LF9h!e|{@Mv(zxw;-_;ZkCcKlA`CZK5y+{lEH>irzVjIq>FFo< zC#UGm9vkRW2?7A0s3@0ikxfq(88Zu=4n%x~iAOvDFB3%4USM_(MqWlCVa`!RwtB#x z*8OL%ET*wjs`JD{$%npb7>Wx;+j}Sp}U}qLBf`CDIiC>!^<~+eZWt|8lKD9Nt zUhIb-Tm_|0FJ?pAjw}zv2=&P!q1e7w{Rpv$Qe+PaEB`HR^3U2q$5w}#jDID{uO7os z1bKyZ>`>%!@(wCtQ5~LGq^_3)metCEL3%dyAw)Opxu{`~p`gCbDciJhHsl0F|7U{y znGV~%k}9EWYvrpSVEG&Cj``Ccef*qNtJe^;dG?_!mg#PZj z!Yl$5zvLGd(?0(fZ^)LHLQs|0CI=u8Q^;MVPyWVb;Qgf*l#O4d%@vK_N4}5-vv*(j zJqPShPvw=A{z&WE?pnLVbP)dRiv0NXCv-W!LGM>w^r^eU3l__oI&&p=K}#I(l1Jq7 zh=ng5BQH@O8S;DL0e;|Zmp*57Y&`CT&p~8JA0g1y)GTNDK;6@2VM#X-oj}Qdx991! zfL;bVC>IDF7_kIy|5sJY2R*DhXfyZWN`#R`T*mq=)8G13%j?v`=Wxj-7wXo>Px{TA zdG(+3B4%dAWW8I$nk6MF7kOQuJUOcDV~t?A-PJKu80~GmK5A;Tt_?T4E4Jw4r%OOd zp2r8LX)CSm?d2blS~d*AIoVW}^>kAb_q{Iz{r&%(yv6s^(o3xbF>1#SKdQM@9ulS$ zLp;|;d*{5kg4kk3CuBg649!Tz0zy4FIv@qaOr%s7a_%BA3WT@{Gb{rOA~rS*WL18S zAjU@j2P@>MrnUguHXG!E?g#l8M-(wAh(8d-qK6m0Go|+e{A!oAqZb)jlRS zdhPeiXdtsGgKoLoY>C*4Ly8?qc*Uehqs zqPJsqv91W|OvXx8r^8`(e#2#JJxQwQb+1PDdtxqqPi}p1bg9Tgh_7Oihb@!fL{e;Q zJnGe%v$zHc&4BBjIyQcU!_UX5HVIFDE2~}!v#Qae@m2Ssh%8CwQ`5yEB@EYli)BuZPWVKK|}c%wI_B6d#es38uKGA zzK#B{H&kKVsoMG$Ps6JPR~AH8UT9#)S3aHGtc&)d`kB>&Egzw5@^sBLBU59J1u(-H7r761O|p! zWv;D~%C+9>8#djQ560cyN9*cwRFWf^cbA!Bo`0AHl9}Q^Q`*)DOGDpZBKG)}rS# zKD;=K`m4#DqV;8Et2Ha(L`pen{#ci^iB$2LCjV(mewy5wrn@qBSO@bQ{gB5U`-@7VnQl#TQEeK|mqzw7Gs!Kj%IFbTwI zbBGi?RmcyClwys(d9o7t-8sU@b;}}Rjv!GU+{k&yl!IjsG`Y1&*%5JcD{e_Bdhlxf zJdOMAM@Cs$MSMY8KRcBRBD-&Gge=r~E0Paz4N5u52Eba^jfcvohuMYs$>tC_YK(_E zi>4Jk?fuJNT929yXFk^mmx@^DG(mp#ZM6ZPDPX)Xkk9(+S5uLTb+6o&?z2K;O5oky4Ql^CyOmBPg}T>zB!@aP?Glb^ccjD$TMV=zS8O*P zKc%Qj1A>BSsd*72o!4+0J$OEY_O+1T-}12gXvS@FCTy;QgePS;Io_z>?v}QC z&v7&ybtmh+ zn&-s^dyz?b$$qfwuN!>*!(^F?=FxE~laS=DJ~c8diGXi)uu==% zUZfclf;0W1qGNxTk+0z1h3p5aLDh2%25kn95Bo`AVXzyC%5eGe>SYvsIeTyxVeM&2uKCz!^$Ooi#|dDzn? zi#8&vP#Kz2GbtHnok&IcE-#651~7#%VrNA+T@Ho*&XxiDIPCKl`abPD9Z<#iiFhWO zaGM-f$3#H=0)6(%C6&=0#l$n4|HjwL6t61{raP2?{J*M1w{_|_FR)VHa5bYqOA7;L za4OD|uq+>)4OfXuoA-PyRT|S&Tf1s=a}HlJ+4mMUFz`=X(mY@F4RCr=H4FUL&&M!x zc|zx~zDb1>KP;nPSjvFC!SJ+?P+^EJVz5AaZoNR8kouVgoUXA{t%Re5e4990x|Ks` zEf(txxYYDel67ZI?fS}d{- zdfJ4bEinEoD!8+y5Fct;g2FqU4#TRu z3`tWO?sqt9I1CJMxe5qv-YS&UKi;X*N=IOW_5B75nr;cykE3udhxgj}a-oT|&T&xk zDKgTqM~l~P7GCEKx>RnUc{fzy`PlXtPG=W`I7HfEAty*CRn({E{-+*kQbPLQI!?>s zItFia$P7Leggbi=0>%_&3C<-kE!7-v#Xu-N5s&?`SE*j_V7NH{eH8 zsL@+Mw|Pxsm)3-e@9-^Pd-R<$G{K6E6Zzr*>Eq$%r|b+0n9asoNi+p2kjbjSgNB>l zH?$!~m1E{_b)kF_;J`2;&+33wfq=BDRM;`!^!6a>YohK6bspYy=c3w$$ehKo55~IoSXGHw9rZMN_R!_rw^Bc3hf8~8`@ljyO zPmu^B`H5CTO$zSleAl4UD0BO^8GLGh63$ePpKk?&mM~^-Xy1 z3y8!W1oY=~yD(OEr-R2I@SC^i_jpbl!mrSB*Jn97S!HSU{bE?~b@}9XI##sibO-6- zB(=^OcP;`YCFoKsX&ReuHVdotk#!cW>2C_=#3UBl3FU5Ox^r?z8h$?fzhAyU2Y-j% zOzP6Q?xT&*)fK%`l9DTYRTLc;{!mNsQ51N1%FDDcTdnrQx|a!8nyvT1o3s+8k?moqIDvkkG4{!k|q~aC-I8x{zNz zCum4t(Da({8a)!+9reLytm@Jc@l!eKN1WCp;)A8<6-H|k3bBX+b`bfPRc$Xm>yrVx zn*l{AZHz6k673sfDqxUO64qF(;n)hH^1&rzxn_nr@H%L#{v6a*r zkPvZ&U58V{&b*3qnJ6bVgVS*d@iwYebfx1EfpwUIumtf)l-1JE);RQ&5%;^ZFf3^d z(I>b1Yj>=l;uiWgG_}oHpdcpA%0%Gr6e`%y>VJE0FX|gWu9&DUzIea-?UIF2r#tJw z{OkuNM3sye6+$h;eD~D}%7@r3N^PMw0Y2-`oWYxJe*oR>4tFjW_1)bGsj43??>zPz zW#2CsR6{J+>tG}J`Iu?q^KjV?OH$L&C6vAk zH5g_K5x)aYP9@|=kt&ES}AjLUX6bMlf=(~Yc#&;W2u#2 za9@5s(^({$C7XJ;a8QrC#>vjsowjIOu8R>0Yj1!DiG1R$x#WQ7H-rLG?`c5?mi(N297h*r#iBjjg z0%v;T>Q`N?rA$dlo5ujAZcJ4m2{^1HbTTm^)LNf9WJL-H1RxKK%R`TI2K}-KY6uBm z;7Pjmz<;31*5ffp#K9T$2+lJq77<8b5FzI#quu+1bn>^$=r^uZd9v_=RZbobKwDE4 zMzBN%AK123Z~$oMFHnV}qtB0x##!aiVLRGy@L{awYG3F3I{a<0CAIF$YkFoDS?DqC zV_Kqd89W}>$*{zOUL_jy(O2ti5Xf^ z2H5X!t%;rEx*-L2<8wUEwHK!~cm0FwFI-rj`+GiYd@w#2bf!C$zc^^QyU$AQN$T{! zlIit6#FviXQ%aKltt~kP(EJN02zUCvwq)Sx<}v!!-!582WMxvDB<^omgn$1=#NWIL z$M5PT9WXi9x;ijg?(VzOwz@H`>$H)E z0>d|^EJR*jvL&lAIv9!xy@8wmZxd~@<|{Q7gqw4Oo@h89p5ynn5-H_Mg$SKpMp?GU z?*7V+-M`=t+p&kTuv;(4fI0*&%Lm@)442wJ0!Lc-yUw0?kByC~*oW@dNN3|}rn;3U zXt5!Py?T)g9Z#kn zMC&v);3HgOw6uiqB%7LG=kSg`cRVlwyUi@i`<@%5Gii}R8Iz+0#?DiDq?G})J+74fJR20IUv6?eTOw7=I2&8Eq` zQhFs1%Xk4<(8Bkka37zM4D}OWUrJZ|)6*e1yQPn<`VdquXT! zIXT#QWf(X+Gmi~_%d!IGw<@LMC{bT4Kr@ubW05bFk0at(3Rza_#C{{D8cQ81kT8vHvzw?ATj2JKp_r|$iG zZj;ImPGZE*=+bSy)rolCp_t=4*;&sA#W&SuZXNj@zF~p?wSQ~RY)0>(d7w48=RgYa zX771!3sYA9x3@@XtC`sq7Heb!fJ`=+a{|%<-BX5q`xd%bixPOcC8J(yW>|+dxz?LY z$Byyk_;^&}oB(8&j?Il1uQ&<}?rJX4ea?3ej}*_85I5dtAN9SODI=;p2nR+L$)+2y zd>7`9**|nP5~6NKTUmhPIG8eR!uU{Z^mD=a@kSSC+ZDDs9J^sVb!0>GTIo}6qD&!z z)$j+c?uj}V>wDkk@fq=7VCbQC=5N;R30{L?*-Omey{x7pcNOrEf43y_Yk-{9=Fc;-XjZ$77Gy`#RNj z)4+Sbmo_DXzFQ=AzkZ#s62$%T{7TCaqmPbuWx>jt>em6Ea_-jPc;K?_^Uq$+Vyo?M zj9{wg2$dBdN!nz^u+>}QxP3Dbai6rd%lNQ1F=NxgL(Q6o-mZ;;=`T0ieE<*MD=V4( z+e{}dE&D8-7)D6I-6Jy7$T@9uU9)Q5Thn}5XVCL!{QB_Mue+Z*gL-nIw&V~C@cbL= z+>8&X6)ht{@Jl+2_f1iyIljC-m$W^sR3?iO_XZp$jN%UCjF-1Ah1D12HibEEgoNkw zcyY%!x)k*mD9emYy<^E&caioH$KPIzANi4cbJo@@NVut~$!ooD=uNYD9OksR`d=f@B(WVN(zvBOw{=SFXheYo(#dt zuq9dl^khN&!REoaesAsiUvRicZ9{J`N4wf%XDTc_Xoc=gB!zw{NuONk0#cR%Zs)P zGtORXGp*N#xA?(<)tp8oZyMEi6%Ai&MBuE-$ekmn)o*NcBz{2}e7LW&eA|(hj;_ZZ z@3x10-It&ahMW-4D@bRiZtEJgJ7~EnN4BYG8R14ZQI<6w)FeBMXWWZ$x%e5%Ac!|S zdv#x?&s||0v+^=MJA)fe`rE7XgSmJ8E;CDdBN>6`H{QMAx9okw512&LuQXPVCPP{* zufCFF?%7#e&fT43=p$s+<0xRPyPqCWS&U_|tTi|qT;dWHf5oVq?f6HAYI=Na=lIOS z%g5XI&V8BfXtyNX>D&f1eu2(Pr$LTZk>3kVcMmOxC#0oB>?`Be)|QZOA_(*fC%r>y zzotbV-xFE~{js6c%8 z`V5&!MOY?+|K-^@ECDnn7Pn^y7NF9KyUu13nCItn`<>ycf@wsyudq!2TBJgyq}0WZ z5w+SM#nce%##vg(RrIceStcg#qsVM4bL!La3eW%PlWY#xGI>tCe-F(NY3T5Hb3#%7 zCc49G6N7!(KW^@FDR_V31%WGa%`H4(2Z!w+O^rUgqMiYz94hKUt#H%dy4wGH>qL{n zS4^(8h1>?#82uDf@wBuc^9=|HfGA(BAvT5>`%d!ceNailb!z}B&{W<~rtt0%O_li% z#y_nv)r9i$k3)1-=H4^2Oe9{AzhPp0+bwHoG2gJRXK-RDoJ9_iAkIkg;CP7!c4E#& zVV>X<8YTc4P!EeT= z<~i5SWbXD#?-kZMDk>(`8<$lAeHRxq!#1*>$xWmXB{|-2WF815iwLidp$Vbz0S(}v3Oq2#R^uq0B`!%}; z1A}DI) zZmG|po}ch_SQ^5AiGfo+cmedy`PmqMUKn; z-|CA|f;vql1*g@So?xw~<9}CQ<>ddX`oaj)5l23RDuYThb*d6&dOZN)V+BsUb~Kz?8A!=uNW1)(d<751*IVrd2u%O!P45@J+K~9h)YbaH zM3TfL=(r5vu`j2=#L>r>i(8*r?h0qxiYxX^$m7%JTZPi+{8T=FKC;Zv*;9nV#p+F0 zx>J-2S)?$n4q4zcc`X&Zs5Fs=S0i}&wUaGxSI4zZOC`3vP1rq_$(-6(YZuhRd4zSY z{NFDGAa$o@hQ9@Er2+?qo#QRv$c0+Wo{z!(BCQ80b|^l1^QLjtyn)aE`P;{sU;Co9 zDMIvV8#hHUZWgA|Bd>IjXBv2{-!_RR^YlW-Rv*fdkcL+HHOv<+?0>t=Of75&`~ec} z$xcqH`L3V7*2r&iFs&Tph-cocy~}3m}ZFPK08Nyf9KfnQ^g5Sxe%-xMnrPGoO6w+~i%6;b^|F>g&9+6^Ztc z_G0+f8Gs^1iVy=I--S93s-%|t=k;X=)lIh3*Vp*-PMHiNo~HX@#wh-pM#D2lf1?=~ zd98SrC}Y^j-lc*35i=q_MPct-;sv(RclSJPLd#n^&mpmEoLA*ltk~C87Ad-=3~Lly zyT_PnLgIPqLX#?3=D%Zt!n$l&<^+%Z;sA-oMe+Kt?gW?4LJTJ*Xp_j)rfB#<>|)lH z&F*yp@AU5MPS!(LCMo5>(oY5Xr$pKWr^9A}Eeg}~5VG*TRHl469?_3#ZO#k(29V0o zTXXZy7qfqTat;?97N0>ZDwIgw8ww6IMX>^y6e6Q2YeQf7x3MrgsV-)w?Fx%|Ep|t@ zY!&BREHcoO3D^JN?`3y9ARrJ*ba9K5vFq|AyF7Cpsg!ZaQn5C$zhBR8sZVb%%dxPv zA$K!Dcdx##J^9en6Z@83IIX(YIzP5R{68LC^zhHZxLmrVIPkm=w^xX*IhLwrA34fN|F1 zJ{~P;Cz)5_&0AR;D^e+^T&7d(w=cG_`Sy9_Xpk3g5y9V(i5whh#dJa($Q|HHYTm+J zM&Ppie{+?fV0{+ml}_8L9Z8eWA#koNK-OzbjiY`3k-f?}ch7YBi7vU~XIYOedm~r` zWJS9-CO?|Lkb$Bmxa~;#-sbyQF74iUVOE*UIYUhu2XJ_?aa84RH z(+CM+K#G6ZhVnTD!T%clFp`*%!Ob!RhmIpFmSvrzteI>ogF@j~Z=6KXmt=TlhV@_+ zk&;h6(Shs&I=fCvw%kvt@iUYE|D70jV~{42O9POxsiMJ@OLoFXF%ZAHOH~=gF)u|9 zA%(Bt`ukyPaR^{~)jNI-1qBdR1jvup;=ns3TG5LQv4%2G!OYIl^7M(Z=ae!3VN8~v zo2I9JW?YU8uWN3R5<#tW2Jv(ijbKPqZVf^AQe%ZGosvtIec z6ma-+%}Cj5WYb8A$_FP^0JCw6%8ynF`d$RwyP+;)k_Vs@2h2Ne8OasCMCk0yi;cyR zzEeq8L~EjtiV9}s#46bthZ8FK)SV|~Z$L(!UgYq6Y^FN?{D8yxEKka373YNkS%; z#uP#20ok5b+kJ<+(>O5b8M<6=4-;I5=vKm4SBrja@p+N;IvP2SF(kgH?h{XFYpAw1 zK-GKOL7%@MecUGt$)@QG$8viX2@Zb9b3$@e46Ge^q=-LNqdxN86mka{R9{bm*`bNN zWS%PM`?R8D#b;p~rO{LXT2>{%#ie8W25~lU^v_@5d~c4PftwT`QMwX&nr?SM0ta^= zE)DxzS)Xq7_lv&ve!Pdl0{`@Ev;8+B%=M&7FVTgB36!Swc~+VKvTr!fO|69S8Dy;oE{YhzeG$oZ_nF%d@QgoQiw-O}v>Vd;yw;)G_;6K5KQU}S3Ow~H zc!_=L0mc*(D&;(HA0HL$9Y=-P(fioLL%9gA7o*$O}FtnOF6Nz4L ziz_G7Zm9Bi_z7P?k7`nu-s-8;HKuI~wg-+j)pn10fBFT#_mz)x5mv^e)~p3rtXpxW zhqQirU%gXjorNnU{a}xRUN$b zh%jdmHZ`*NW5&ownJ=E9U}4;ey#72&@LBV|a8SfgpO zUcV5xBRN_L26u?9EpMHwCKB+a6?%B5$|faoUFnfU@y-!fx@RsdZaz+=T*_v7zt z->=t|dP9HY6rk}j`Ui|7(L2?7QLL`2A5PUW#puiCxts%%Uib0i1^Xcu@)2v+!~Hdf z_)@~zzxfoVFvW58{HOd_q|wK={-JMe4K$#*YvF6_bbeR~Xe;SC+ATHR*znVTX<5Rm zuz#Ej75doYLO2>pn5Yf+{7bf$%$PL>fp5-hc(jR06U~7$IxhU;1 zt%C+2lz`TFwUjtGZl zu{xnXibuR)Bwt0eLsJjBzSY9$zwj-*VWHC+j+{GS+1%p2frm8o*!?rX2`()=#(?u$ zHbMKwWI5x_UlfvMe`?b*zvpB74Yy~@O!aKKreYqW`Dn~*Itct$3}Lbi-$DPD`mH{p zdQ{(fygNC(X9F#!L(kdUBIS1cNWJR8*>`>XVg@XV(okAN(`4QWV|_S_<6B4ojMD{& zgb(F%fhf?M>f_>6ll0o1r-ECL;PMf=N9}C2y(|A{T`B$RiE{GxfWxU6uET||%j+jP zqIz`2k!abCsaXodTqiD@ok*FGX4g-TejCd7r$z3LnO9$h5+47JhqF!rOfHrkcQp0q zv(5KkQ5~$TG$A39nenD-1T69~L8E_gnZ;s|5XE&8=~z&Ar%ie($9R2?`}u^}?xKyu zOc$2KP}}A|NEeZ&4r9DsK7O*DV@YAt=Q2cN=}ez)p2^@|lJ|)$)48QS^&Zh%g&prQ zaT^*!U||7ZZ8IDC&<`W{{1Klr<{jO~Gt$xGzSH>~`(LmhjjP>#H>q@Aw%YnFsfq!- z^4L-`h117V7O_1ve0-(-q0?qVDf8rmUyIk5Wo6|nPn?3G?&I3ytLIO{Cw#v3uY0sg zcbM4nycRM?JQ|g`b1xC14~dTrOq9m6DNF0iNC=#3SXu@BJ@`VaLgFVmGK*7dbCFSI zVotEvNIx8@Q;o4{`3asX+6kK+zcoze#6%id`8jHL{D2Dm$DS{IC{8?=OaxT3fqljZ zPPd0!xsTs8X>_k1g%mj$&_4ydIx;YDV_!Nc`f0kY1#{0NJ*Y}a_jvEi?Q5-b6cR#w z+*uY_=62Ml99AA_=*~7Mnf(`ssnm+_MeX;0*{>X=LInr+o?Wab!sPme1HF z9x+sOi0rmT5O_(~5s)Q$YzWqK<&U%OZv};kMt`k&S6yH8#3BV@@Ja=+>IIu&i^t?7 zWrhitCB?OW}cS3aQXSM>mh}Ra*J8o+M=^&wVn=d7!ml%Xr6^I@kv)cvP{0aYKBQF zXea8y%5+XQf?!E1zsZ#OSqNe;_ISwxf5YvW)yS`W*g)Xi>qd;_Ys-}Av2q!r(beqA zVvG94v-C=vu-%dWr1x{mX}6kv`PLTViZe3GwAzp7XMA))OkNq*N9I$?se|ny#dhdJ z&5ksE(%I3Y(uB_`2dY}&uC{~{x(PA)Uq0Q>eI~H6Whc^$quNmVzSmC&UK#QW49!;p zgF&8nzR`CE6L*_U7O!1DP}}K54Sx7)2q(p;aM!p)@^Ew-@o#pSTw$DZyWw{r&z=l$ zDR?^+2R%CtVc~6v}+XPJkyftC;5t@ciWQ-MK6X?n>-XO-HfVFJG-Q% zmEk36u@b6Hz2o=!>awAwj$=YaG30;wxv}}Rz&Jzdpm_N4oUooPmQ2Ae>f3G^==L2` zUoaV!e}ZDv6V*fgJrBoO8!SpdJbm4{O*IFxR&Uh0+gI^!@pN0v&X7%hE6Z;3S5?L` zf{Gs_`xc*BTL!{RS-e{_Y2?f^#0M+!^)ZCBMNWp$C!(BN*HSX;kvQOM&cQX2*6ZYW~63T|{0A6#sPjo!gqJOvk0|Tmaof$LR`XopK>IGq`uveeh?XG~vu#&JCu% zB8FBlRhSJ<7F8H&sVPfe5J-~jTbGcsz-CVnxcAeBT~Tj>tW7x|;Y*4nXo{vqa0oau zM1!uP^Q|OO>+k|7dJ^NZ53a)|Xsde+r&g3J*pKm&aJC}K^)YAC z?D7)^iOTM(10;N(tZPm)tES1 zkTULMA4Dr#%h9ZlGRSi8c!SI(f~?;0NZ4n^wd(46a0Pf4vE68Sb;qRbRk!xZvo0&hy=8pp9Palf%=p_y<~+tEq_VNGv_*8 z-k0u0cvNzud6&2sc37RnDQ12j*<%O7lqtyoR%SFS;xGs*Nm2qPE6KMl#1JwEt#u$r z?AT%BsqN5kf#}@h?gX9C*90s<{|Qs4by(vPWns$Ac#x>*NTqo5v8rK&9}g&Vs}xU| zJ*600K#0U8J~k2zS=B8QBa+ICUGO3=URwKH?>Z(V9b=>B+AfDkVqTbF{$iOe$8@k3 zza}hs^rW_NXAfm?Bub^SYnmfYWoMPoy$|hd_5GFeQAr$rq8MrO$@7hUo}ti||8Mm`Skn zx{em5B`boyE6@>C_p6_gVuB!u=oa#{TE&*Pd`7b8T-cpfLkim*%hI?P{!yT$s z+dolK_k{eSznZcdp}37S(DZdZL;D?v`hmHtM~YMctL*ZYJH;PKbCzf#!yjI{gMyj< zhq~O$aNd6o*{?cdaHJ#rL8HX`(W3WJP9L_~as5ZAowqa(=ThP_njwNQs#05x9eDBz zPmk1n0!MBCMb1a{JE+`7_GR}EHlSWdGKkTtUxbvwiDa=)dcQs$JfvZ^zyU|6FIhH0 zn_$JOyMLiK+iAy`syt0kvsqbAp*>I6_uL2VwrHp7D`$t{#f#|ashpcLk3KE2oM;ay z+_$U%QD&+Cgos8dCE7nUFH^)lR`Q3p)6ZyV8XpS7@uVN*h^8=0I+Ak8L`fmAv$p|d ze;XRhYoIlwoB@(zN}w(Bg=+qux{Dw3=fBuAR|Rf3mK_@5vIa1Xv;=6?WW2 zm6DP}CX$n!FX=Vi6eLq#K(~2Obh#ZiT;&dUAgVGI?(!xZ`D z`ZKvf^N>Qa`{WynU$vtHA7u853u$%#b3Ty!465wLCJSPdeNy$6%r<(ayy^6{`lTVV zGRY64%@Z!MXCaV)4g+tjNXaF>+(vKW=Dxq>HuNDK z7!}EhOhbO#?MT}vlZW*MTy^uaV$jXR)B>yHnWT5HxE%0uIv_6~H;7Oo`PbwHf)? z#EG-M^2kN_Xl;XFL6kc1GoV?Q$8sQ5C${Py*D?@9!yJrhx;_nL&DkyPFBLN9vr6$S zEs~@!NK5+q!LzDRveJgQl6)qhGuHLnA@<>=r)rS6p-U{_s1PK=JvOQ76Dp!x%T~@< z+ODtPHBVLZK>}_Bvh21SW5^HNF!aapIkrQZqLE&Z%R?sq;&4?>Wd_nQ!v%>_1l8cv zpa<{F$umD+%Z5^7N>RZ{Q4Kh1;cmKtzzjFWhl?YIFJJ+u`ZnFH^=4#m4I49n_XHPF z_GLJGz(YSc^q=5DcGV4c@z(rq{1J9}_=q%(_R75Tu{@NQMsc?)B4svG4R+MtWLjVY zmHPISJid>-WA&j#-~`VI6y*Hu##LDjC5(F~>P-tSQX9?Fi)z|fwsz#(}3pZu|p1?V{+ z^U)Bd_#$Fp9ru z@!Gvu=2=KQxm9!hu~$m9JM-(&B_2K)JC5a996L*YFh1^tH$!JQ0d3x6Lp)MXhtu&} zEsCAM-CBdxfqH&!At4Y9HvvLA{%VZszFK{G(PhqWdT)aFI<;1FH$I}FpCJB{BsO5( z8uu=IBuC!^$;@9QI2%PGgf6)UfhOdKeewWhQU5JId`nvdsHpO=!mmhbNw2tg(*no2 zpicpgR>*;pUxtgeQB4?CRWB*rP5^U7z6pIQL1nz!KYu!xlzhLtaqYu_q#D)|!94 zT1nlN9IbDgJ`(58jol_&k$7n+oh5(JnmF7`k!7Blp-#s}0#_-1bl!>;z%(%a7lHBM4DcDF|rwrdwac$Bh?7F~ykr!xzICqBpD! z?fCWvkOPVeW{r)|F)S0v{n^l$VRZbYyT)v0#dlN% zf6kwxRLGqca~JgrD%~)mWcDDnG}Ku>D>4MZ%IJ_wiRqJ zZaSjpnWSX4164?Ta<$e0&{a?4611S5te62eGx$23iv6`DWx_0;{8=A7h(pq(6>{{#|1nrpX52yrsvONCyIwvdL~zpK|&fPWldB$%q)5_IfUKTU2J(DFV^1 zu3eI7Mt7Gxf*3VY5m9zTR`N{s|3+rL+(hjtOSHY2o=jPgy8g#{jAx+(TVSxO9wA#+XHAR!kI9XsTfq{p4R^*(oIluKO3z1tz-$c^T_~h@YGCckl+gD`Co8gu zNK62c&2#Vl3`$Xps+X`CfyMEHQ@mH5_A90VWyw5=gr~j#|G9~Kk>2e z{WZ;mYvAfn;FVU7-Cg|zvp#PLzGt)w%2^>TqN5JfaB-}qesvhPdD?p!UUxyvZToy( zD){NN8KsckHWGC>?`4x3gsh0~1e6m!-=dQHmB3llpN{3SfelHWNbo}PHGZBY;b)Ay zY7e}@FaNUY*uzH~i_Uu~C}xDg;!?sS;FlJgn;s+pv@T1f{`JFIdlI1m;SLa}IC;0T zTx{+4c5)F*gJ$kj+U!OJp2*=}%*Cw7jm!1Y)}z;xJVl3Z!j9zfp`Jc$pYN#y&IfoV z?5_D-9lNC)%9z-%z4NiEC+jY*+l~f9LDRg-mSBRR{qZdTVA6|h!)pR(5AT}lPaZ%z zkz6N}y#BX;F`ZNW#^|LdrC8mU6DhQ*fBM0RC5iGD9L201X=1kj;ud|JYUlTX{2(6u zSVLUV*<0MJ^xK7Wylr-5T5SBovJ77yWY;0e^nc=Fcc;@|Bt2UI1*~$nPfIrD2DS)k zjeDWT3IgPVix;?WUa&+P2{o(izSHZdgAZfsIC`e{$}D!?zWY4$K+v*-7+r7oM(g9| z0O@TFTo-bc!lu}tvX6I@QyJxc{ulyDnO{#o@^r=K4}ogLO{iQs^0cL~X2#F>3Je%Y zt#|Un$F?KVNf=MxLC?HwL~WCBP<`X+Kd~;+b@Xhe03qElxy2h(fO1C5QQyV5cXeRZ zYY?r1unNh9-P8k*(|$rbr_yxpvX0%?y}6BJ|JI;>B?{@>eBx*2TOh;I0Y5C>)7+0c zwi2NXl=IKnLEoy4>@w1y9WiarMfjStjcN7V=zSfDvG@M-sY;V}`G(w)Qu1*f@k;1% z4P6NV-GdSix5ujL&_aA1RdA0YC1$;)W5?9&8#oBcNt;N-F*tm>OLNYr9{!tOLdcC; zsf63)qs01LR-SJEORzS^EL9x#eS`#Y>73WnY>{lC-s|4c>}r!CRm~sMs_0!l)K?+$ zROG*kw{Od`8k>^KYjE9hA8hHuJ;=iMvjgrAr*ZT z01%;8M}?9Ra?{$3Yrk_EiQ||H@PzFH_skC!2s(VYA<_8_AF`(%sg zNI(Nn8(omdR==(WYFG&5;=UOhGRm=Vj2&C?*9cAs4{6D!&>}$!H!V7QCJw}vpp|q1 zxEe`Nz~MF1j}^VRgbopsLTVN9D1D9HqDR=IeWZ5{7^LqOff@f}XxwQT7fW8R&!f;~ zC*-PNuV`=>&6fHHUas}=R>+-U+1#_C(RjgssuDDbDkwSc-b^q$t}Xo3(`a9ti1iwg zT1-5hI4|bB+!H7MeS2}?%+sR>cBpK{0L~&hr7vovwqX`S*h=_TY}{WgOZ$QT)0Z{^ zn5*M+8%F;jOG1rlO73Q?%BCDuXW<)M{jd2S|y_M)AeTIkZSb@_R4Ml z)!FUrZC5O!`O3Aey|)qlJ*YWd=(Qk!`*W&vAE(D|)3&VsieAT)?i2Wysz~}py_XMs zLxxSgwzuz;FL`cScS*8zL#`xozq#cN*BA_yt@L4K9mxEX;2K~VGV{Q5xE*g;kF%4R z_fSUr+n<)T#*6N|($d{@LFzpQ0&1+aQn{UrglQ}T+j%i}FW>PFi1rAn4A zeq^t5LynmaYYU)Pj9A=t&h4sCtGkN$9>CAx4B%>6&Ocz;yQO#o%_@iAn;^x zi0|=^8ml~MRDgsmhi}{P=3KCQQ4e9&!uPn>#BO|?n#FN{JiYgP;cCmNcoh!>B{*37 z%I`MogBX+@q=5%~+P*K`S<9H?$B*AH3I*Z5Qk+zv0@z4TbL`yLf^GXnZ~Ly`v}LWP zqijA9=5Q+JAaxiQd;Gwy>w{^<63Y6arq`bAPvZ2Lz6%#bp(mz0wn?OFHJlI##3^>h z$DK8|(jkyF|Grk@2}2^JNhKfzWrAL{3H^q z4{KTgS}!;V1*fP_*KMlMJ30tWJAZqB94-ouE7j<$^+B%p)=?t@BqK4uWmkvSc8SNa z-&i}!{bqZi2y}#=Z#K=Y-3J|+#T^sgdr3aOQ-fySq4N8SpbrNPLNft>EuL%EKN502 z*QE0)__w33tDigj)SL;7T{j1Va_^&9n}lKA)@6A0nI?1RK?pldg{PFsbmH`}{Nm&z z=aUrM4znwIjL#|W2uifj4l|})J-8-7X`r0)PMw~ojlqG>20Xxj%DX6>1t!X>$?uyB zhp(OU&}~i%x(u%o0+O{OMz_9{Ufg-gMO3P5MEvmN4aMuCN(+|ob0q*J`08oOLDxkC zb^G6s(+6+fIL_$@q^#TE|1f6pon(BM^Kw)`Xk5`uKWC6S0_YHtAnQiMwOsfr?cY?w z+ZcSkgdtCI=v%+;SxQJRwZgH4qWMs*z>v+9A5b55V!#1ELKVZW+Qlx7KUK!swEsF? zCSVZ7{sSEl>GJU(k)AG>Cs!267M6T={i_T`p)(G4AMu6TUkJC0FsA>-fWXzj9-bU3 z*!J)c+o}oK<<~Sc;>M!(;%^y4Wv-w-@YR;z2c50nl)WB~cWn^EtdZ}LbSZ8>ZNm9g z|2N3O`7g+l`A_lre?ZnE({s_B5w?mpe*igE0OZ^cE3l>TYgzaA*sd$z7C4F}x3LA; zF#_$=i5^}0C_NmI?a%l)@j)ii!)gxh!+h?pdK}|5P~(~b*x%%a&pzQSI&jSDkIM$z7{cIB*}M%J7nL0#IS+oNRLxi4w)l4LWvOaXM6C{!h?OgpuTql|h~9uvD2? zJ!)YagKCRUs=L%DQ~4j&-6Jt$868G{TVnO@hW7bSAE3HlDb1+lc3D(~zzV*ma|6J2 z!G+{zVQH(E>)bLgAKe1Pg|;6npYT+IumB;~E1xlj0x)}{wSCR^3GO^e?!d7$otcb) z_0d*hb^t}*%1%p`{Lm?n!{u7c8eR%vyJqyc{vMCxVC%)CLOPFLWoFn@1J0?pDRANP zf1)&+l4JC^Icodx1ev{)Cn=|I?kd;XjxYaQzua;!9nZ>wE9Jq?xp!}5F9dHGX`J7? z4W6~h9^45I*e=XIsLosRQXBbNI9*#@Y2h+|PM~{p=DI-So!(ZOBJ$sH5J>->DNuGF zG?~7S;|TcvI_v`5J+tO|)S-fK-m_PB%j9ACY;km#+gukMJEtXn3;X9!S)fG~T>afm ztaJn?Bqj#stE4DXq8+>ZpKFhg=NRz49Erjd(s#z^Uq9h|=7GlEg1e;%S({3Bh5cW0 zqZlu+rN;DkouI|xvl!ff&@cGo#+~dKK5HlQE+zblUCpt@0(@59KFj$rM2y6nYg>fCAs{GVmpQlv$D^Jq8@V%=^#l_F}jh+ z(t&jxpL{@+E!2>XxZ;p12xI-gD}D2J#YEzPdT9{{Grbr(X|0((xR2@EK>@B5l_(i$ z^C+|PaCV#`{a=KXVOIXl?e#Ld>^*&L zKQ_N=eIK5WJTEprUZ+o2bqj#6enpTSf>48Hl{<*qvPeWF1vnaM+u)HX~t1XCPI zdyAA?*G^{R(_dh@*j@R*sz^rws;1400qoq4(@k`0z{GG$Jpa9R##|Hb&iL)hUPD1H z|6}7s4(_VviGvL8NiRkS7iX~5LnSor49*g_&1~oaQJeZ6Ic)zlA1mSMK_+o5KNIXm z021M~_l8lC_Z=ngTh%pen(mQ4gj<O>y3q0$cpSy1Va&m_glRDv=b9) zhr+4Y|ENhHg9x5-hD%q-C@xuy&Y#2hzl&3j8Ncu%E&k4}BH}plKo4*Pi2ht4fV6F* zJ^-b1|F^(`1w3}2E||PI4HhOYOoW_M3RFC?pV>6c6%flXog)?@XUF9u5X1(+b^11} zPW~V$k9~qep znNd1X;?0oErB}<@-NwZGZ`^+w-oN~J2d?!P9}~F}flKl!zdXzEPtsJ1!oPNZ!1!Qz zPs*ruf=lg#hdOAkc3Pij$(`|FCcp?z?TO+!`4AgzXHDmCx47vgba|9!wJSz0E0;HG zA;oB1KvguAGx%VJH_hx>c?m-Slb9?l4$;0YEaOGDBhJ3(?->s6Haa1@+=wX`;f>r~ zy5o*C3uCr@xwY-2r}CCjF5!7WA|W03Whu*Wws11&@eUs{-#Pf3ESQm%|LY@M&1&^e z)sE2ZM^$~QD1)f2rNJxhi;1{Z?{`tVF%_^+s)2*=cE#weO-1c_2fl2JqB~*Nj?_J^ z2hA~IqEG9V$Z7{6&)0tq5tVs{gj!nfp58k^lzsXrA9GkriAI*X<57qVK+;-=?ZTD$GMdumZ~Ib^C@U_G~Q z+hLne)%Reg$0)~=2<+e5!o6ST5;0~L>^2)+K?&0zn5~9<*_cG{-VsM+M^3ZD3~|^F6Nv+ku7oJcA#4V%h9nA5KQ9nuJ3YU1ru4jq1)@5LQR-RMf=*Ef{Q=S+fX{g zE%y-Q3>)9E+}UDVlEVHd5Pv(xjc?GXr{F5unv$5K1=HwU%aIYvo1tZ@f}hLzFasOe zjOlrSRNBg!0TNqGyqo==9qq!U$X|qSRvo#-@YJa5W`jS)?ax%1XD>&~P3mL8XdSgE z@E$y2g4)5K!5jjMsfA*dSRFQGTa3vMW@^)B_T;fWRBe?lGIcb_LK7o(?kNFLug=BC zv<&Vb5$jBCj=}k-kt*EjcZ8zHfm7^{wciNs@W;Q3d}P}is@SgJ+F&(`@31G*^RF#h zAgvg9xhp`T^T&`WmaOpU@MB70#wkCyURULPIq@u?9f1TMh3-nK`*XZh(KOK2i27V& z)W=N#COyknfnukj!jr}+{qvx=@thcxn zcwZ7rxC%lIR9eXy)nANLRv2UUFNH1U#uQx#?tWbXFb*A)V zskcyVCM_8z8Xkk^l%o9rcd&tS6n&qi^1#BKOLfQ5fL?MOATQvEmXF_&C@d;fci6t$ z@sh|CnSkk$$uzx@VPphHd(?ts(mUd#1wE;PRZlinbpSK{~h-WA5&d)Kh5>!rn z1i~@J!9X?2ywBH?ZsNhI;%>`z)!QnTE~KIkJBs~9(BYBs*I6Z>@7m3FqVcDbZ|0}D z^EY%CsZkh_=*Ag1cp)Tq{S>;7pYR3}8?oq`XvZzje7=Wm|A_6$c*Y{7=9UNBD8Hul zpI)4!&5-pv3{3Ci>?P(S@i=cj^=Fg&`~>bU&w<0hgey|F=KlA`!@q;2p=pp{Qme-c z^w8;qW|HThsm2W>EFx{Ly^yvq-)3V7t&7*=&-VaF#h9UBib|bN;TI>fM1?EL>+fT(-4p>C%DsW6LHm=MwF4RV7h?0jvmWUdSt|_ zkhGn|ufn?Zg@lJ7`%mrZ;f!pX3clq&AN4ppNEA}FD%mw?^oTaGdz7!dmtR_ZXXul! zEOzQt7_nSQnNi-1!4zFRBX1Df+#TS|yL zoYa`Ti-3^ClB)(PRB+lo3|PPIK;kG)>#AZ|P~o$pX^TBQkexOoo6>e-bZ{n~^7O%j z-nsUhx5p+1;nWYT>>jaUF)j>Ss@wBFPW>OOmHYpKwNdo)z-IG9N@k9V_UXj_Tnl+6 za{2sBTY8(yiTP@PM_~QdwMrjA9*^2>?Bb*ix#fL%#HF z$xy1(WU7M&7T5Xt>f4RU=mVh?^9rgbd^UeYC0B;qW8aXyMUAr-98s>zu2o^Eu!Q;9 z+${EN)i3*Qz94+y?x%O*i?JjF%Qys{7h2tyLs2V8tO`jwV3D*sEY#fTa)EZ+PQk#T z#hiYH3s`b1Y#K$S5kBD&$sY5jsNGN>ZI5ji)in~mH>6%<_FIApTdWU4P>kR>=kCaK znMtR{c0w6Is&Zmsa=*TbxWAOg@IKzSCAjw6;cLsm2Q;pwjH=vq4bKklJGwVhV+6;N z6UT`JvTdDLIH%U!{Nv$Q!7T0E;J%>3d+9_mr`hz9$wsnv@~%yvzV9#$Qy*jql>KpMaUMR-2Z26#Dt}KTHm1zO^&-8~;TrNIn%n z-y3xAymT4B23)HwhRLw=bZsv<5f;(_`xA4zG-~C6(qqFKFTqS*jQJ;oRWwC*`tcxa zfTkt6dJrgfec0F#~8JSFk+IPv>S zBw#a!MxqvVK5Lr#l+%O0X)l(1f1%-&bL2jwpV7Myt*b4d9>G;J_UYMsGiF9Pis{&- z%5cpwwYGzwe-aQl{%cutWbECRYW>6#s7}?6659ok5%-j8Bu~#}X=rDbyM8ST(*@MK znU}b*?7!t(DI|xd2gye72$6EO*N&e`-TPqeJ)W>4>6<*$3Pi8q{4g9Ey~~###t0{( zPx}b2;s~<{yWht{TI#<8{Hn;aZe!ZNAniL?S&uy<;BN8jz|n}jEV#Ne?gSWhwu-{# zd=}g%`O%%I86RN9j+5uMG{q%}T|0-y04zu!{D5;uTF7j#Ch!=3dobf*49lZrAAZIx zE~nWm+veEtgMy>i{G7bmH@MfHCc1fEmA#{O&>T!_zrgXw{MyG9`Zo;!mT;VOFAs@%#UI#95Y8-rM$bI5J?#{}3XBe16ccVtBMG>uGK^?--LKCbB9_3j zTVmhEUU`=Nxry{t$lyY-@^U#A;sRoUBZ0+Hw^vVqmcdtDDklr#W0qBx02spY4-lYSA< z{(avusuj7o`N0d8kk|EH)Ht3hy5RJrWN*_06JYWg7e6y@ixR zc_%_Gv~IRYRfpm4ROwq&BCw<+t;Af4Uwp80YWFWOW_Oej`)? zubX({Yjc~U_ZM3f0HC!KiXm^GJYnFZTVd15UK_!z>Pv4R#xhZFN;0?=)q7|~(3bVS zbR6SV5-ekk%P=B&Vz>-yu{9`KtK6|{l{!!F>!b<`x4E}>;}DrYU+)C3q|}zz5}J(=LK9Y%HP-)hk>3r>SD2kKWr{qr zKK+?~8#kC8gjV{`gJuMxg1=fjR2N(vB$e$iRdoNe=b4({w|uOtt3M|ZBcnZ=D3Pda zuW9OV2CBO>KoinFS%!@RSC1}2Dc_re;#Vy(9ZL$d&JNbrEcrwFQ3Oq9y(A*Dz`a5h z!w(#pw%xzExvQJ-iDjA+Y;k4h_ulY@tn^aEfl17Kv~D&gG2eblT>U3Sm}r3_OuK#I zs_kb))waCd+^nfHt0~9DAwM4&W-)&08cj|HJr#^W8{c|p&^v2?WmIF&$e8b7pOhm` zUU)3_BpPHcn``-ET-SxdUWdAp{Xao(6AlZm^0jIX5hwQ+T4wr6az{aO=Z7kv0xX`d z-x04sxTFg>x_GeHTqB~Gsy7aML=Wlnr`zN(<~RPF(7#F690D8~`-oc?yRV1ZjZRP? zE3|L&80~y3#r-m8Hr!xZl9M7O<&8rHnB%ohftnhguAV@Lg?{OwfkD-&fPmwxS6YLo zWJt}NIeTU86V^WWsmjRTxbCpOeh?&M508|!F9(CjOH)@Zn>oczms|hNJ=AkY#pQAoAf7eQFKu^*1G7a?@a4@p^Qw{zDEPH^rPvmZE4 z7R@s^iZ<6?H)CU)s;bhn)X_tOLLJR~Mf|*){Yx5$5R>xKUC5f>iC1srb+M2zU6(Co8!7S`V8JW3_D9ol?AubN~F%v;iY7RDRS=|)T z-0hFV*jS8UX24#XzuGx}tL)nNLA9$@bo017ejF&SAv`0z9~Gs^;qpOHN$p}KAqpu}I{bxgBer($9s=g- zoO6ovJR5_R)8%Gi!Lfe>tH@XzQQ{gpqkU0Uev;N*Q&Uy0xySap;|d2StCow);I4%< z!l;Ig){&M}perseJe|^O5z-0<5zm}@d8I%OkpQ49u3g1bwc5a(T#Ds+ZwSwMgE?K) zR@u5*xeWaxu>@G;g6D8?8I0=Br`+egGUxXJOE)*$;o)sDG1D9_;L?VU@p~8?)`sp0mLQ0Pi;SIqFeD>K^%0Ip%?*>0i zd}-HYZh9S97m5zN{N*4SzhhD^2 zr2VmfkNv^+)!-ILZ0(2e^tDtRhUI~*(}O9=G!Xmrv;0WIF&HOEsR3aoAi?J91haU4 z4G1=wPZt(Wt*>+A)9>?D+uN@Zlb43%ys`U{-#kNI27ObJytBDkDWKPQJbv)=$S8Q9 zaw10z+Ojb?9rHDle#lX;&L}`U;`$RAd4GQaGn1u~>aVFXf`}ASTr8~JJYshgUwy!$ z#RCz11C158lPJ|SD@T42SUc|Gnw_#-Ua^vs%3GzM@W z@2+z%$-E(MX`s?~YjW&Gwpsy~e6&L`K%ZH%TUrs6NP?=npFi2I-31-LgJ`NkJ_8$C zETFB`OZjL;%_Q^Juk74C2?-RpfM^{;`r6cAzv7Qf^q@^823ka$;V8+b+;(1K9>u_p>Z1%UYLEhovQE7`$>(|d`A9>@l z+q20*t%Ed9u+^Hnm3PazUP!St-0=|3&X_UDjQ5hMJ7?|7@-E7puLw##_nfwWWUDXz z{MmMOG#Gfz{g38Hig_p`AL-!_kCzE76YWh*lgyDh+fZ~=w+c(jcqP{PXdd=qTkx`x2@bH!S&U(VZ%Y(|z`5)FRFWVJf zJSl_lVkdM93;1Z4RMk$_SFmy)4pU$uCQnmUb==zNd^U~xl+1uvzaHONol)K9eDSgd|4s;} z{62trveq{|_^7LN4K+{(1(y!nz`Wwn|944oxx3@93;=OeV4VlAEwl?|ezlALX`S>( zY-?Q~ihbIA^HOJ^s~Z9uFP;GUX_B5F9r-IOCvkZ!T5oj5;W17&xTf+rpEtc+Y|I-` z$SP^RZsXWM@aL{qzB6w-MB^N9C)KP;Nc~{kdyY0MwuXK01aPU;4OuwCP?XH*4qqs` z9V|vdrq>r*34GM?!DYcU&`QZUf8+4?@%`L9$Q(RG)`-W-W~HN*O4lF4eCgwq#3YP7 zL>tFz&gAndZ|5c_0pL43ZNKu_@BR@Wawr?w4hw)H#HsGC2B++KE{_rz`ABM-|1yDj zd`HP-qVP{WnQ;vR->B9&Z};V+6zxphs)V`5s~T*>S)dk`=SV%2}J=x1_t%uyW<~2Vz(vf|~ai%UleqHCuBhKas~!zjhoV zRMLp-31xgCE0L<~+WvSv4NB*;!9UX->8$(H*IKnw?3A8;OK6Ti1SBL!_K3o&7UHuP- z5JycnO)FhTwt;ic*o+KHK3;Cy_m)Z;27HZP)~7qb9WC`2MSn-8@*YRvE#MJt$B~!- zm$PzK(J`qbdeqOh-0xz(vapvDw3tVS4KkB_=Z_*Xcr2aW<3LI4L;m}>a&KZH=eUo+ zQ9Rv5dv}|RKeTsuMK?>kUXF!unkCx2LiwCNQOPm$`&vaDhCX?rQ+Q-wy_Mt1<{utc zO<(j_#r6DAB+KugL z0+7v0rSGrE!Lv0)z|hUZq^ki{LUubXebAAW{s$B3fKTECrk6-pW_}h`7boJ1LhNl{ z?oR_gNBq|Lt6_6T>rug1JNja8(y01ROW_*jatDsN;x-vsTZ>D7bD)1R;Sir>EIC<; z8Yh5`AtoHEnX3rgfB@V=5%o@D$+S6-LvH%uH8*9q?7z7=}rIs6_&h> zT7c&npvKeSQr=!(pvwaaiX<3JPnvel?C?%7#s!t&P@Gq)Q;#}zK#AkF0=6m&=%!v|Oz+#3Y)fzJmp*+XW(3EqbU;7$ps~1!`RRt| z-Cb6|BC~0)S5cwzc)EuCAB&B7`JhMgqcy4EE<359Q~-=|G#UE~@nQmiX3SKsffwXR z6u8GHGW;{*W0VrE{Asr4UpqBfShyl%@*wFN4N_}aBCtf-?_>RwW=n*>+J9W)ZJ7(C zz3MCF-b%2(hDrs=U+VllU_<4n4Zhvp*~anO3g*qbOIy}>tNXUkgWGS#9(@4sL%H3S zbw(^=_S0|4rqpJF8fVN<@kM{wJY;PtC(tY(r9kneRPQN_ou!p2jfQ+_s>h)84)A;Q zkeYn?CdRYeomXP_fabsl`qsC&l%IKCpq^<2FB~&2Olf3Re(f&4*bT2R;1a%CDy0F8 zN+kZ;$i%?+ZF7Y1k$Ad<$ufwyxXNyexHot=GC^3{Jonb@ggu75Vil8t zQ~jYfmLAV~u(H0QhH4!gy7bLda{MMG&8{7{d#*sosL4vJ%!~01m+im-YnJ{@Dnld4 zSCYWu(XFrZtTuBHfT5H9!O7Fp*fbGAgrO{<$KJIGGPUvarvU{=4XV%cU7vF9Pwyk( ztDP!G8;>?uXQy^te9q_mhkkI*)6uh={l`h_%bz|o9b-3c>M`?E*H0Qidfig9y5p3G z&LF~;(Y11JzzY)N`=$awn{d}P3jFqh4QZiS1?>$FPr5?PFSI#~i z6on?-8Po%`yc#*XW=EduBf~v62d%qTR%f=3sT{I(HS#!ES~XD$2?P9AC|f5RsPEjI zp5nE2+~2PSLih5n@Ux8o!Ec@v>3*jzYS>oFvYJdfa5B1`k{kO?C{yTfUFB*;N=%i& z!Iszz{ zn}49Qr)Dzq{%!NQvW}&Fhh3%12-{62Y6GiDe351z{`;g=Fih|Onlb-9DN!2O+e^N~ zIpS`AQQtGY_nfS?b`h$j6Vt^!@23#{T`SMU`UVHDpWhaDtEx^Pd1@$$Qd{T2%!Cn~ zI~?ZzhdZ_}qK9h_p)Z!x*3d{}JRve)Q*;P5=-KQ|Px|7}`>fgYQvtOcq^fFZ(~eXI zb4>_HBmu7u?U_YANx_2;wHc6ayA3jxU(d=pIr70xpJ$5vg)`5{0C+LR3y(i|Oyxja z*?qY9qU|Qf-okqHkXSCvUt>3hx&E<&aJwjBPWTlpu*?|a;-E@0Tk@_NJU*02elC;! zbx5gg`+4)HfAGHBi+b-GaNvX2(GjelqHi;;uUMIoXsy+;brAq@6<~*6aY4Fg`5{$Yz{!iwgOp45{P9O`NW&g_yDD$4KZ~R~F@);xe{@9-18knMO=Sb*e zq^#~3_~G`t)=fp&`j*X|d3wO%8-~r;gOz&1h&zk(^>n%-z;{ZX%f5U{PW z9AF_vq92swU*-uQ0%&N*CxdL5xBp03IrVFTIJ;;MJ17Pcj&eE3!nR%3H`X$p=1^8r z{ha126EAC8bt%PMvTq;S?>|B-S*M;5v@{_%NCxM-4UFCTHe{!Isq-{Nw!mrPXGFH1 z$cLrIq<_-~IN|Gk8^c_a020H)T)c$xhnJL@r6LHj(aBrnVL31=dWqLNGH<(>vD zosnJyx0vgNpH%_VGuok575)!iO^Jl6$uF%s*RjV8OusNnJ~qvj*ab+u4kPU4y2Z`u z7C6&)pLK%q+*w5ayeblXga^m8ZN|~sjv+!k%B246K0cL>`@5*dEnJnh!e2?Zd)iRq z*k0P4gMXQIpWgOB(HPr|8%;;2JjQsW;5nX#%G2&hHVzM9o|cQAD>xFZFsl%6`yXy)8k-C zd0du2D>d`&&0jm6E4Y+3t!T>B6^x~@JZeg>svhV~I6(A*i4dqBI|$NjDJNs*3MCwm zXGIHpMy=kQ^{nM@O^CfxQ7wKqM!9PqNY+tYtTV~M0RWPT!p38QNUIO3gOoLtt-Ws5CZde4~q#T#8ir!pSWattuZU5g5BhB zhx<60c#1Blycdc}(Si2! zul{{Bwl5#=>Hy6eT*|;INowh0!c1Y<@cLHQMnSfKyI8&07@vaC!8H^Cb3uCga4UIVV`zBP z;ZJT-V$aieXtub&&X0uow^ZPh|ONz^fA}M4kOx|-|T#L?>bN4LYc=H04DP>hHRdsVeo@fb=RYSpO?UdfKz?f6}a@+-vJ8T0=Akyu#RAR#T0tee~i*?dykm6-Mh zlQZ@LIcLj!|w8xEH)ru)K&rE(OQ4@}SO4OctiVH;{~CwPxqg&(Bp z+vh68KjyaSo=bO5yO3c8zrQi40`z{xgQ zf*@9_xY^+V9wpr4CHJJS=muDPuOV+_Ywe2Ow!ejpj#|h5aOo$zd3(AU#JjmFz`w1< zx#;o+?#^z44vxP8a1diGhAWjpDGI67K-ba&OnR5)x^CKK90ijH z{$dG`$#^o)A1?oa1tf#faPn*MM{8P%&lh3dp8Eyj(O-bE*-_-UZL4gh;_c~9!Cjdd zbwQ&;{saw$;BShOHCtVNoL6IcYTklNfj*NsVc6KKIX=2o#k-G z*|#PP5(x4bzZI!_Lhqx93Z1orNXykX*NZUSRz60Q@BWCO%AiX=wt-mbx@soR&9}X+ z&V8c(Ezh3n#sku!n2#GE=(Q}+*Eil~loiDNd7&&t@6BGlkN;L#u;B~ae^;Qf|AZg+BkRm>Zz_i4ICCU0CH%wb=&F)m5+H=S> zJr|= zM>s7C$~>M@JXcZSG5f?wmS(!nr~5JJ!7F(Xm|mz+8JjKTHgQB?tb{2|Af@`rTQEX8 zv>b4y9O09${)%RpM2Qjjbd`uhpRO|>fw1lA-!-!r$8KgI3FCPJ+G8JQlmr%R5h!m? zMF)H@_9KV$=;ZuGg$`8P7@*jQRz5wQrg3F%UA*M{mtQ+`7lWXAuTbfE(5L*3J25t) z9X*VrX_c;+*(w5wrJW0s<(S4TjE-xk81o-{*nz{nJGb=(sA5fBkYYJ5;48VJX=lLA>sGouXZqJhSswcb(=Q*3NqgOX}?z01qRwQ0q``OU`31))b36Zm^E23WZL(VT)s)a$ury)r>=*~ zOEUwfNr#R3mFX(4Z0tw#<yi?d-+w*gnN{XCG^F%wT3jyZtK4(ms&q{D)tc4hwbsBr z`_N&N1$MB3`J)P*vj_2u(+j^QZ|Cvg2xHNKVPK=$KL(fyWqAcIwve>`-2Hg5&`xo2 zN>_BTuC~n#Gdy2c`;_KdJ)^Buo+=X;%qduq7T~Pk3X9nN?(aHxz&z@;d?0QG%Y^66 ztAvDj!Y>bk%6;#2$8!%F`xSV$$#lxR?;Zl&(^7Z)-DF}&?oK!HI1I%Hy@Y~ZINCi) zGY^*MnCq*+)ne!gpUCMH1RW^2*2$c+1C^{bsVaj#aOsYpcT1PkOb`w^{{wg3-U`7+ zF2Op)d*{|;(zn%LvQ6l*Yk&mhljPDK_zKnctX4Bls@!#X!4qU*Bl>Yd#KV{XHu@@h@5%^9S$qX5qOyd-(Jp`~ocM zyiDf*QqBJkSk55D_6^z0;M)UI zD(X1!Fpg%ergcFG^P~Tyh)*q8!gC0sVGRl_cEP}N>Rz-blVd8xzx)4lP z`Y|E6AYhQ#6bhSnorcaBUxAk68sAAkBOfgcboHLGE<`JOBFCI~)_Jzn3H>NrslhrzD+WOx&PKFFVy~on3Fpk&_F; zQds^ARHAHWW^|nxTWN5Y?cYWWCqpqF$FuZC<2FY-_VnxYZKzvcW{B#AbE2WC&7<gXC&J+RbLuQVANa7_Qu!C{1>aaig>J48mVTrx zg0p;E8OU6HweH704?$_Vl`=iNO@hb4vu6)3oj7RSoEIZri)F2P3uetdf38l6d-Hx| z=mvG;{!8!0!xiQ1On}Rt0%8}NF^tg6dH`4W<1=G>8=Cr;s+z57riCFP1ADbyD~tVO z8xb^f2c3Z{UN$znEk$Nu54$XK&Q1nRxaL)$N9EdKuC*D~Nyy)~($ zNJiQn!&M32SdZ!0lkhTc8uA~{rGgl*XZU_N{g*oG`Ok}1(iBa0-lERRL5Msl&9<|%A6!NuH{iVhitQQX_%OnQm#AtuYZk4r+C42TH4NTE zeDP2$A$m8ziEI)Ko8Mjn+>LgrY?BQADyiARRVj7SK{Rz&v46KSv?@>74Rd*OH(KG@ z;6pm5yH)8Uq^Y=s4Uze|ij^~yq87`5+hmM3mBe|HJJ_(lw~G4+Z(f3j8$2eMhX)a<|`C2XOpQ3RCi^k?yR z{G%}`${3`Tyz&aTDKY=Rz1>{b@w>nIFns|H=e+W7qnD3E#UUpLw90l;(&~6+SH$Do zaWd)xxjm2T@IIj9-R|7WMtxuMNnArOmDFwgNt&eEz1mO=jdZ#y37Y_@*#xW^PGE>1 zY3_cr>F0oW1Vh@F45EtwO9_DVvDIUMK>WBy5XzIUE_fj1Ug%h`PL)q-IYR2S*lwaB z_pJRSf(-;ZqHEpUDeJIV-{`n%YzU}Jh}CWNzbs!|bkP}fG#&8hl7K%u5*Ejy@EhF9 zkN~a>LT^(@q0Q{Cu(Wlch9Y)3CGn8=(S6a)CrC&{sLFEEy3}G70;6eFoFQDD<-5SN zNViD|4uY+v^itotza9^nrKti=t4WG;Cs{t5Ut@HL2CEd*uiLNi@(xf5yYa$sLvJY2Y&|>0R-{<8+xo? z{6XS98j{KvIX>?YgHqs@20F_e0URKdNl{SH7VvnP>M*+?u%+Vjw{GiX(7oDl%_FNI zC|`WswrKsE3hOlglY`b#{H(F8!nNb_2^?2$P(zm0p<@|9!jX9K8#6$jk&GFBGYbT> zRQAT0h}T>Opoy*`p0SxC9_0^x zAWZO;c}QLm_1KJ!R#a|pPL>Mve5dW>N6d#~S=CN-5#3XO9SAhAnGQL2gPv~0i>(4f z$5ps4;!gl3f3v3pTve7UW!DiZU&ntVXnGtfp`lH_z@Oz-u(yEy-?y8)s`(DWp0e@3evt4wK(WFeIaB3 z&I*8wHM|+Cf9>>~3ce9T<#$T6fU0cpylS>GHg*8)h&@4a_h8+7TXPn7;8SB?y(jaVWInTSy=Ku@$1=S*~b|spmG=%jF4dD>Ik!KY~CY$qDlcs_@1}I z1wUHKK7+-%Q@zUoFs()Gl@F%)x8^Y%H@Relh-s7V29A352t|sMUqz_01%s z2vx2xx=XtjUhU(0Oc~1%NuiDd^_EjDW56K(2iNv5dypemkYMcB7|!0u%f)Ryz~d+& zEJOuLU|M26oHn88TD}L(_E=b9&Pz($7$8ekjiad_|4Sf<4!zS_1Jag#!H=j84nW84 z#6%JWQ=}(WoP_!eBVC_a2)^ts}s-X)w`uJcG z%j_pHhiGP{Q6sC0QvU646ZcvZia#&FIMbm!0s?;!HyUg#YK7GnQjQkBXlHX3VRm*T zw>=o?6Jkfj@q7OCz_4#1*jJvNBRwWzk+CVk4h6E6I@*zueKu)5|Avoe^JG3$cR9Td zvsW?8*`){j2~?X_pr?ZPmGA_EH{zzcx`1mfaxByQW63Pmx#CnE<(PL;2<7E0SM96T zuK()r-woaY>FlTUw{3$AX4jO;TeoWSIKbM|Rv8o-7+81Sf0Tjw6P%^I%HgfbzmIs@ zu{jLc@&wJZ}`06u2ek|`NVjd_hNO?9;{ z>WGCev#CEv_CJa`8BZExRovf@qXECG<+hd&J&%VFVg2g-%W#UR=P!5==Vj?->ize# zd4=+dcMz~l_K7LPr;5;i^DWd*W0qSj{mpT*#=Be|R9TiQqf~$r4Y=d)qoVt$(-{8d1*{~o{-hDya9l40MrQT>r9oQ<3gde*3<&nvtd|{R6_V1&wF8dbc+*~Cs*jY$XN)a^xL8iurVW&g@|gI*P`o-i!S z=37XM%rkOXW9r}jhdq9i65Bv2NAi&p4$s>#{P}IcE*H7ziG`B>Qnfo^Eu4+%YxIdv zb2#QF00?z4bwSU5dU*6W_In=wG_38SKPy&FABaC_c*Vi|U#1K^Wn@>ex#ADq2)t_t z=>vVvgAo1#19mbYj?({(6cQpoC+W$g;G1E{eA$ckI%d$63EKONz zK11-lVbq~)OjI{-plB*Eg<=W^$K7Qq%HzS0*6FwA)#>P}x3!W|x9~@%fut8aakSAp z_h-}ZH6^A)epAlp%LvEMXe+uriBK1ymt?Gu+YVtm*G1w5HOP&WSo?@T(}sp2Rx@Op(ENqZ6`D~%`OD8JY?-axiEo{0O5VVG__ zJlw#YYH>#=z0s%vP%3cHD9kly9Z}DBiX<7X_R2zv23lvx)SiWmy#3Q<5iS+ydbO{G zDkDbAwyLbA2eeRiciXF3Io65bB6{vdMNG_X>W;Scy4K#X3?y~?c&T~Lj}mx*+fVxB(z%v=5_C0L7aIQuBqBmWR`(mBGwGvf82Fz;3p@Owk^9X~ zYg3H%i+Vp36M^Zl#Y_So#vdE7<4}t98n-8~vFExcfDM%N!tK~{7OA{`%0!T{=dMxM zIdhkO$KipTc)iOBC`{4U0J8WyNM|I3&U)Av=?>qj1ZD@3-S00~p$B>YM7rQ}QdQ{# zp8dv7>IEyGju)DWhLp7}D{$EnP=;_QWn5xvX{v(71j;TV>xE)FXhZ@u*7ZQ1%AvDC z^>ewhy0pTQm1mlUl$oh~@t0gPhoFA*9QSZAiG;dC#jWovc3mkQ#e~Wqb<`Md6chYR zYLMj=Dl1m*t_=A0AMW8Rnhh3G$FtX&GEqqR@`~2fQuMReCoCU4Kq4Xju+EpDg`B&gC=z}5bHk}&^VK@Fp`@Z8hM&R zdOfV6zI5o>`@?#-?_s)VH}qkxZ#VQYp6)mgQ9dXjpmr4#t%aOqx3jzm;gqCbUuR%@ z8;+u-MM%BCoc4NQ*d_8CG1+-aN_l=+xzYnWDY+lT|3WF^fBgzN7=_0k1AQ}A=a;s8@0=68Cg9gQi@1&nyTKy zHeuW!KkPgFt1hOe?X|QVlL&|F&QCv{eN^|#}@ZYvNHHyz)Kx^PZN>N}KYG=EXo?4voTNP;2 zo`8U+{_pc3`Ea5AR~#3daUcVOyifa6nq*u3gH@loUSTQ3pSR$jg$3uXPTKF^?or5K zaW~0ru3S@G29m{JKfa?l%wfZVXM#J@S@K>?Yw3?vTBvp z(;K~De|_dX?quHCZYrS>H}5+lWNx56!;k40H(g%K$6oDlOiogS4sva;^<|(Sd13Z5 zjL?p-icA*P39#9mA=R@Ly#?#*`k~lBlylV?$o7x*6;Pa#yHbt$g95Nt8MT0?f1pVs zr>#b37NmxXzBy|rGGfQ$(|6F)Vxb>>cM_PJpHGg6+RGK9wOC|(4MiHE_ZIVeph+}0 z#sqk4NJDNO3zSRuY?}p!vC#ubkvPW|B4MotF4__ zye)Y|7_z^&5gLf@o&VL?N80OOv1NyoHJ_$K_sqro5bes}~ z*wZ!va1kg^(kuOM)BOMN-O#@yY)nSu%g4K;MyGjB;5z?*Uv@nVFx?-_&;XvJDzFBW zxso*V5n%Kj(1zf@<*h01?CdZxGv7d{fdDO~bPs%Z1T?q*zbohb&SL#vK=i*SIe+uN h@aX^F-XTDADAaQ3q(2gnfIrIr&s_an);T3K0RSP#)Ykw2 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.svg index 0a271bcc..977b68bc 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.dot.svg @@ -4,46 +4,46 @@ - + - + cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections @@ -54,70 +54,70 @@ hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] - - -TCP 9090 + + +TCP 9090 hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {app DoesNotExist}_in_hello-world - -pod with {app DoesNotExist} +pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world + +pod with {{Key:app,Operator:DoesNotExist,Values:[],}} - + -pod with {app DoesNotExist}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080,9090 +pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 - + -pod with {app NotIn (x)}_in_hello-world - -pod with {app NotIn (x)} +pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world + +pod with {{Key:app,Operator:NotIn,Values:[x],}} - + -pod with {app NotIn (x)}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 9090 +pod with {{Key:app,Operator:NotIn,Values:[x],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json index 8835af1a..8124fbbf 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.json @@ -51,12 +51,12 @@ ], "ingress_exposure": [ { - "src": "hello-world/[pod with {app DoesNotExist}]", + "src": "hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 8080,9090" }, { - "src": "hello-world/[pod with {app NotIn (x)}]", + "src": "hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 9090" }, diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md index 74ee94a9..f9b1bec9 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.md @@ -17,7 +17,7 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {app DoesNotExist}] | TCP 8080,9090 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {app NotIn (x)}] | TCP 9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}] | TCP 9090 | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt index 5f792732..8139db26 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_3_connlist_output.txt @@ -12,8 +12,8 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= hello-world/[pod with {app DoesNotExist}] : TCP 8080,9090 -hello-world/workload-a[Deployment] <= hello-world/[pod with {app NotIn (x)}] : TCP 9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:NotIn,Values:[x],}}] : TCP 9090 hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv index 54c76260..de31d3cc 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.csv @@ -13,7 +13,7 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],"hello-world/[pod with {role NotIn (w,x,y,z)}]","TCP 8080,9090" -hello-world/workload-a[Deployment],"hello-world/[pod with {role NotIn (x,y)}]",TCP 9090 +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}]","TCP 8080,9090" +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}]",TCP 9090 hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot index ce2c1d9e..56f8dc3c 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot @@ -4,8 +4,8 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {role NotIn (w,x,y,z)}_in_hello-world" [label="pod with {role NotIn (w,x,y,z)}" color="red2" fontcolor="red2"] - "pod with {role NotIn (x,y)}_in_hello-world" [label="pod with {role NotIn (x,y)}" color="red2" fontcolor="red2"] + "pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}_in_hello-world" [label="pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}" color="red2" fontcolor="red2"] + "pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world" [label="pod with {{Key:role,Operator:NotIn,Values:[x y],}}" color="red2" fontcolor="red2"] label="hello-world" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] @@ -18,6 +18,6 @@ digraph { "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="gold2" fontcolor="darkgreen"] - "pod with {role NotIn (w,x,y,z)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.dot.png index 49c42a3e72e3d63f8143c3dc6a588e4bf8281aae..e39d516b07d06a24d3592a327664bb863c74e387 100644 GIT binary patch literal 64253 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 P3ZSVdsw-5>nT7oy9-bMN literal 53573 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

      ;~i+Jd(4jkCg5_7a4&ih7YH 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 - + - + cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections @@ -54,70 +54,70 @@ hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] - - -TCP 8080,9090 + + +TCP 8080,9090 hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {role NotIn (w,x,y,z)}_in_hello-world - -pod with {role NotIn (w,x,y,z)} +pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}_in_hello-world + +pod with {{Key:role,Operator:NotIn,Values:[w x y z],}} - + -pod with {role NotIn (w,x,y,z)}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080,9090 +pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080,9090 - + -pod with {role NotIn (x,y)}_in_hello-world - -pod with {role NotIn (x,y)} +pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world + +pod with {{Key:role,Operator:NotIn,Values:[x y],}} - + -pod with {role NotIn (x,y)}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 9090 +pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json index f2c13fdb..154ef82a 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.json @@ -51,12 +51,12 @@ ], "ingress_exposure": [ { - "src": "hello-world/[pod with {role NotIn (w,x,y,z)}]", + "src": "hello-world/[pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 8080,9090" }, { - "src": "hello-world/[pod with {role NotIn (x,y)}]", + "src": "hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 9090" }, diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md index 372f2a5a..d0c48133 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.md @@ -17,7 +17,7 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {role NotIn (w,x,y,z)}] | TCP 8080,9090 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {role NotIn (x,y)}] | TCP 9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}] | TCP 9090 | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt index 8bf9f4bc..4c9c88ca 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_4_connlist_output.txt @@ -12,8 +12,8 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= hello-world/[pod with {role NotIn (w,x,y,z)}] : TCP 8080,9090 -hello-world/workload-a[Deployment] <= hello-world/[pod with {role NotIn (x,y)}] : TCP 9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:role,Operator:NotIn,Values:[w x y z],}}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}] : TCP 9090 hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv index 8523f02a..e1c643c7 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.csv @@ -13,10 +13,7 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],"hello-world/[pod with {role NotIn (x,y)}]",TCP 9090 -hello-world/workload-a[Deployment],hello-world/[pod with {role=w}],"TCP 8080,9090" -hello-world/workload-a[Deployment],hello-world/[pod with {role=x}],TCP 8080 -hello-world/workload-a[Deployment],hello-world/[pod with {role=y}],TCP 8080 -hello-world/workload-a[Deployment],hello-world/[pod with {role=z}],"TCP 8080,9090" +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:role,Operator:In,Values:[w x y z],}}]",TCP 8080 +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}]",TCP 9090 hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot index a37261f3..da0328ce 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot @@ -4,11 +4,8 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {role NotIn (x,y)}_in_hello-world" [label="pod with {role NotIn (x,y)}" color="red2" fontcolor="red2"] - "pod with {role=w}_in_hello-world" [label="pod with {role=w}" color="red2" fontcolor="red2"] - "pod with {role=x}_in_hello-world" [label="pod with {role=x}" color="red2" fontcolor="red2"] - "pod with {role=y}_in_hello-world" [label="pod with {role=y}" color="red2" fontcolor="red2"] - "pod with {role=z}_in_hello-world" [label="pod with {role=z}" color="red2" fontcolor="red2"] + "pod with {{Key:role,Operator:In,Values:[w x y z],}}_in_hello-world" [label="pod with {{Key:role,Operator:In,Values:[w x y z],}}" color="red2" fontcolor="red2"] + "pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world" [label="pod with {{Key:role,Operator:NotIn,Values:[x y],}}" color="red2" fontcolor="red2"] label="hello-world" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] @@ -21,9 +18,6 @@ digraph { "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="gold2" fontcolor="darkgreen"] - "pod with {role NotIn (x,y)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {role=w}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {role=x}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {role=y}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {role=z}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:role,Operator:In,Values:[w x y z],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 8080" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.png index b317709e182be1c2c1aa98d058a280cfd5486620..2bf3882922d4ca311c8f6319c8e82f70d168e3bd 100644 GIT binary patch literal 62668 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�*l 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 literal 67961 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 diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg index 7b88a628..c9a3019a 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.dot.svg @@ -4,49 +4,49 @@ - + - + cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections - + 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections - + entire-cluster entire-cluster @@ -54,109 +54,70 @@ hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] - - -TCP 9090 + + +TCP 9090 hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {role NotIn (x,y)}_in_hello-world - -pod with {role NotIn (x,y)} +pod with {{Key:role,Operator:In,Values:[w x y z],}}_in_hello-world + +pod with {{Key:role,Operator:In,Values:[w x y z],}} - + -pod with {role NotIn (x,y)}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 9090 +pod with {{Key:role,Operator:In,Values:[w x y z],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 8080 - + -pod with {role=w}_in_hello-world - -pod with {role=w} +pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world + +pod with {{Key:role,Operator:NotIn,Values:[x y],}} - + -pod with {role=w}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080,9090 - - - -pod with {role=x}_in_hello-world - -pod with {role=x} - - - -pod with {role=x}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080 - - - -pod with {role=y}_in_hello-world - -pod with {role=y} - - - -pod with {role=y}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080 - - - -pod with {role=z}_in_hello-world - -pod with {role=z} - - - -pod with {role=z}_in_hello-world->hello-world/workload-a[Deployment] - - -TCP 8080,9090 +pod with {{Key:role,Operator:NotIn,Values:[x y],}}_in_hello-world->hello-world/workload-a[Deployment] + + +TCP 9090 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json index 5f293b94..a630d0f6 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.json @@ -51,29 +51,14 @@ ], "ingress_exposure": [ { - "src": "hello-world/[pod with {role NotIn (x,y)}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 9090" - }, - { - "src": "hello-world/[pod with {role=w}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 8080,9090" - }, - { - "src": "hello-world/[pod with {role=x}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 8080" - }, - { - "src": "hello-world/[pod with {role=y}]", + "src": "hello-world/[pod with {{Key:role,Operator:In,Values:[w x y z],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "TCP 8080" }, { - "src": "hello-world/[pod with {role=z}]", + "src": "hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}]", "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 8080,9090" + "conn": "TCP 9090" }, { "src": "0.0.0.0-255.255.255.255", diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md index ee412809..52076958 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.md @@ -17,10 +17,7 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {role NotIn (x,y)}] | TCP 9090 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {role=w}] | TCP 8080,9090 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {role=x}] | TCP 8080 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {role=y}] | TCP 8080 | -| hello-world/workload-a[Deployment] | hello-world/[pod with {role=z}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:role,Operator:In,Values:[w x y z],}}] | TCP 8080 | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}] | TCP 9090 | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt index 14a60820..4cd18382 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_5_connlist_output.txt @@ -12,11 +12,8 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= hello-world/[pod with {role NotIn (x,y)}] : TCP 9090 -hello-world/workload-a[Deployment] <= hello-world/[pod with {role=w}] : TCP 8080,9090 -hello-world/workload-a[Deployment] <= hello-world/[pod with {role=x}] : TCP 8080 -hello-world/workload-a[Deployment] <= hello-world/[pod with {role=y}] : TCP 8080 -hello-world/workload-a[Deployment] <= hello-world/[pod with {role=z}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:role,Operator:In,Values:[w x y z],}}] : TCP 8080 +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:role,Operator:NotIn,Values:[x y],}}] : TCP 9090 hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv index 3a0f4a8c..309e5add 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.csv @@ -12,7 +12,7 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],"[namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}]",TCP 9090 -hello-world/workload-a[Deployment],"[namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}]","TCP 8080,9090" +hello-world/workload-a[Deployment],"[namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}]","TCP 8080,9090" +hello-world/workload-a[Deployment],"[namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}]/[pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}]",TCP 9090 hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot index ebf09d32..af91a695 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot @@ -6,17 +6,17 @@ digraph { "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] label="hello-world" } - subgraph "cluster_namespace with {app DoesNotExist,env Exists,foo=managed}" { + subgraph "cluster_namespace with {env=env_1,foo=managed}" { color="red2" fontcolor="red2" - "pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}" [label="pod with {app=app-x,role NotIn (monitoring,search,web)}" color="red2" fontcolor="red2"] - label="namespace with {app DoesNotExist,env Exists,foo=managed}" + "pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}_in_namespace with {env=env-1,foo=managed}" [label="pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}" color="red2" fontcolor="red2"] + label="namespace with {env=env-1,foo=managed}" } - subgraph "cluster_namespace with {env=env_1,foo=managed}" { + subgraph "cluster_namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}" { color="red2" fontcolor="red2" - "pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}" [label="pod with {app=app-x,role=api}" color="red2" fontcolor="red2"] - label="namespace with {env=env-1,foo=managed}" + "pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}_in_namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}" [label="pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}" color="red2" fontcolor="red2"] + label="namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] @@ -27,6 +27,6 @@ digraph { "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] - "pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}_in_namespace with {env=env-1,foo=managed}" -> "hello-world/workload-a[Deployment]" [label="TCP 8080,9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}_in_namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}" -> "hello-world/workload-a[Deployment]" [label="TCP 9090" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.png index f59874dce0199d7f8c18f0caabe5e265a3fb23dd..34f7bb992d6136d8fda8e9d5acf15edbb34d9b18 100644 GIT binary patch literal 58352 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 NsGhEl(c(FE&jrG*9k0z1f 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 Zp7#Hs&k6@dBtyVI2@x6LG9kUM{|oYSG5`Po diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.svg index 8ff8de1c..51f2ab5f 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.dot.svg @@ -4,123 +4,123 @@ - + - + + +cluster_namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}} + +namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}} + cluster_hello_world - -hello-world - - -cluster_namespace with {env=env_1,foo=managed} - -namespace with {env=env-1,foo=managed} + +hello-world -cluster_namespace with {app DoesNotExist,env Exists,foo=managed} - -namespace with {app DoesNotExist,env Exists,foo=managed} +cluster_namespace with {env=env_1,foo=managed} + +namespace with {env=env-1,foo=managed} hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] hello-world/workload-b[Deployment] - -workload-b[Deployment] + +workload-b[Deployment] hello-world/workload-a[Deployment]->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections entire-cluster - -entire-cluster + +entire-cluster hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections hello-world/workload-b[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed} - -pod with {app=app-x,role NotIn (monitoring,search,web)} +pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}_in_namespace with {env=env-1,foo=managed} + +pod with {app=app-x,{Key:role,Operator:In,Values:[api],}} - + -pod with {app=app-x,role NotIn (monitoring,search,web)}_in_namespace with {app DoesNotExist,env Exists,foo=managed}->hello-world/workload-a[Deployment] - - -TCP 9090 +pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}_in_namespace with {env=env-1,foo=managed}->hello-world/workload-a[Deployment] + + +TCP 8080,9090 - + -pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed} - -pod with {app=app-x,role=api} +pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}_in_namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}} + +pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}} - + -pod with {app=app-x,role=api}_in_namespace with {env=env-1,foo=managed}->hello-world/workload-a[Deployment] - - -TCP 8080,9090 +pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}_in_namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}->hello-world/workload-a[Deployment] + + +TCP 9090 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections entire-cluster->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json index 2626da98..3e1327e2 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.json @@ -46,14 +46,14 @@ ], "ingress_exposure": [ { - "src": "[namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}]", + "src": "[namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}]", "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 9090" + "conn": "TCP 8080,9090" }, { - "src": "[namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}]", + "src": "[namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}]/[pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}]", "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 8080,9090" + "conn": "TCP 9090" }, { "src": "0.0.0.0-255.255.255.255", diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md index f30c1d11..f3b1e1b1 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.md @@ -16,7 +16,7 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | [namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}] | TCP 9090 | -| hello-world/workload-a[Deployment] | [namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | [namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}] | TCP 8080,9090 | +| hello-world/workload-a[Deployment] | [namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}]/[pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}] | TCP 9090 | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt index f06263ce..a8980bdc 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_different_rules_6_connlist_output.txt @@ -11,8 +11,8 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= [namespace with {app DoesNotExist,env Exists,foo=managed}]/[pod with {app=app-x,role NotIn (monitoring,search,web)}] : TCP 9090 -hello-world/workload-a[Deployment] <= [namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,role=api}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= [namespace with {env=env-1,foo=managed}]/[pod with {app=app-x,{Key:role,Operator:In,Values:[api],}}] : TCP 8080,9090 +hello-world/workload-a[Deployment] <= [namespace with {foo=managed,{Key:app,Operator:DoesNotExist,Values:[],},{Key:env,Operator:Exists,Values:[],}}]/[pod with {app=app-x,{Key:role,Operator:NotIn,Values:[monitoring search web],}}] : TCP 9090 hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv index 0e2b0399..ff24c247 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.csv @@ -5,12 +5,12 @@ hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],All Connec Exposure Analysis Result:,, Egress Exposure:,, src,dst,conn -hello-world/workload-a[Deployment],hello-world/[pod with {app DoesNotExist}],All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],[namespace with {env DoesNotExist}]/[all pods],All Connections -hello-world/workload-a[Deployment],hello-world/[pod with {app DoesNotExist}],All Connections +hello-world/workload-a[Deployment],"[namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}]/[all pods]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot index 569578a4..49107821 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot @@ -4,23 +4,23 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app DoesNotExist}_in_hello-world" [label="pod with {app DoesNotExist}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world" [label="pod with {{Key:app,Operator:DoesNotExist,Values:[],}}" color="red2" fontcolor="red2"] label="hello-world" } - subgraph "cluster_namespace with {env DoesNotExist}" { + subgraph "cluster_namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}" { color="red2" fontcolor="red2" - "all pods_in_namespace with {env DoesNotExist}" [label="all pods" color="red2" fontcolor="red2"] - label="namespace with {env DoesNotExist}" + "all pods_in_namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "all pods_in_namespace with {env DoesNotExist}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "all pods_in_namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "hello-world/workload-a[Deployment]" -> "pod with {app DoesNotExist}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-a[Deployment]" -> "pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "pod with {app DoesNotExist}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.dot.png index bd78133ae04446ca6cef60b6e041b7d721ee7fbd..2396f2a1199ff23364681225a8ddee628210d9a4 100644 GIT binary patch literal 51588 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 LN>UY2 - + - + -cluster_namespace with {env DoesNotExist} - -namespace with {env DoesNotExist} +cluster_namespace with {{Key:env,Operator:DoesNotExist,Values:[],}} + +namespace with {{Key:env,Operator:DoesNotExist,Values:[],}} cluster_hello_world - -hello-world + +hello-world hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] - + -pod with {app DoesNotExist}_in_hello-world - -pod with {app DoesNotExist} +pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world + +pod with {{Key:app,Operator:DoesNotExist,Values:[],}} - + -hello-world/workload-a[Deployment]->pod with {app DoesNotExist}_in_hello-world - - -All Connections +hello-world/workload-a[Deployment]->pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world + + +All Connections @@ -46,9 +46,9 @@ hello-world/workload-b[Deployment]->hello-world/workload-a[Deployment] - - -All Connections + + +All Connections @@ -59,9 +59,9 @@ hello-world/workload-b[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections @@ -76,32 +76,32 @@ All Connections - + -pod with {app DoesNotExist}_in_hello-world->hello-world/workload-a[Deployment] - - -All Connections +pod with {{Key:app,Operator:DoesNotExist,Values:[],}}_in_hello-world->hello-world/workload-a[Deployment] + + +All Connections - + -all pods_in_namespace with {env DoesNotExist} - -all pods +all pods_in_namespace with {{Key:env,Operator:DoesNotExist,Values:[],}} + +all pods - + -all pods_in_namespace with {env DoesNotExist}->hello-world/workload-a[Deployment] - - -All Connections +all pods_in_namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}->hello-world/workload-a[Deployment] + + +All Connections 0.0.0.0-255.255.255.255->hello-world/workload-b[Deployment] - - -All Connections + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json index 5e1dc1a2..10db51a8 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.json @@ -20,7 +20,7 @@ "egress_exposure": [ { "src": "hello-world/workload-a[Deployment]", - "dst": "hello-world/[pod with {app DoesNotExist}]", + "dst": "hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}]", "conn": "All Connections" }, { @@ -36,12 +36,12 @@ ], "ingress_exposure": [ { - "src": "[namespace with {env DoesNotExist}]/[all pods]", + "src": "[namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}]/[all pods]", "dst": "hello-world/workload-a[Deployment]", "conn": "All Connections" }, { - "src": "hello-world/[pod with {app DoesNotExist}]", + "src": "hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "All Connections" }, diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md index e40ec7d1..1e669d1b 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.md @@ -7,14 +7,14 @@ ### Egress Exposure: | src | dst | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {app DoesNotExist}] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}] | All Connections | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | [namespace with {env DoesNotExist}]/[all pods] | All Connections | -| hello-world/workload-a[Deployment] | hello-world/[pod with {app DoesNotExist}] | All Connections | +| hello-world/workload-a[Deployment] | [namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}]/[all pods] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}] | All Connections | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt index d7012035..420ea56f 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_does_not_exist_op_connlist_output.txt @@ -4,13 +4,13 @@ hello-world/workload-b[Deployment] => hello-world/workload-a[Deployment] : All C Exposure Analysis Result: Egress Exposure: -hello-world/workload-a[Deployment] => hello-world/[pod with {app DoesNotExist}] : All Connections +hello-world/workload-a[Deployment] => hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}] : All Connections hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= [namespace with {env DoesNotExist}]/[all pods] : All Connections -hello-world/workload-a[Deployment] <= hello-world/[pod with {app DoesNotExist}] : All Connections +hello-world/workload-a[Deployment] <= [namespace with {{Key:env,Operator:DoesNotExist,Values:[],}}]/[all pods] : All Connections +hello-world/workload-a[Deployment] <= hello-world/[pod with {{Key:app,Operator:DoesNotExist,Values:[],}}] : All Connections hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv index 3456f7ab..57b1b13e 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.csv @@ -5,11 +5,11 @@ hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections Exposure Analysis Result:,, Egress Exposure:,, src,dst,conn -hello-world/workload-a[Deployment],hello-world/[pod with {app Exists}],All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],[namespace with {env Exists}]/[all pods],All Connections +hello-world/workload-a[Deployment],"[namespace with {{Key:env,Operator:Exists,Values:[],}}]/[all pods]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot index bfb1b7bf..d9ed4855 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot @@ -4,22 +4,22 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app Exists}_in_hello-world" [label="pod with {app Exists}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world" [label="pod with {{Key:app,Operator:Exists,Values:[],}}" color="red2" fontcolor="red2"] label="hello-world" } - subgraph "cluster_namespace with {env Exists}" { + subgraph "cluster_namespace with {{Key:env,Operator:Exists,Values:[],}}" { color="red2" fontcolor="red2" - "all pods_in_namespace with {env Exists}" [label="all pods" color="red2" fontcolor="red2"] - label="namespace with {env Exists}" + "all pods_in_namespace with {{Key:env,Operator:Exists,Values:[],}}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {{Key:env,Operator:Exists,Values:[],}}" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "all pods_in_namespace with {env Exists}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "all pods_in_namespace with {{Key:env,Operator:Exists,Values:[],}}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "hello-world/workload-a[Deployment]" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "hello-world/workload-a[Deployment]" -> "pod with {app Exists}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-a[Deployment]" -> "pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.dot.png index 326c2b6c670cbfabc4c7d2795b5bdf9c9efd7655..074f4f29ca19148bc02d2aad0aacdd29c647a099 100644 GIT binary patch literal 51348 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®w*Q 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 literal 45953 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 fUkK{?#(K*%+ViL&uz7kK0-mRGN{AvE1Hb - + - + cluster_hello_world - -hello-world + +hello-world -cluster_namespace with {env Exists} - -namespace with {env Exists} +cluster_namespace with {{Key:env,Operator:Exists,Values:[],}} + +namespace with {{Key:env,Operator:Exists,Values:[],}} @@ -37,18 +37,18 @@ All Connections - + -pod with {app Exists}_in_hello-world - -pod with {app Exists} +pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world + +pod with {{Key:app,Operator:Exists,Values:[],}} - + -hello-world/workload-a[Deployment]->pod with {app Exists}_in_hello-world - - -All Connections +hello-world/workload-a[Deployment]->pod with {{Key:app,Operator:Exists,Values:[],}}_in_hello-world + + +All Connections @@ -76,15 +76,15 @@ All Connections - + -all pods_in_namespace with {env Exists} +all pods_in_namespace with {{Key:env,Operator:Exists,Values:[],}} all pods - + -all pods_in_namespace with {env Exists}->hello-world/workload-a[Deployment] +all pods_in_namespace with {{Key:env,Operator:Exists,Values:[],}}->hello-world/workload-a[Deployment] All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json index 48b0322b..f1526a44 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.json @@ -20,7 +20,7 @@ "egress_exposure": [ { "src": "hello-world/workload-a[Deployment]", - "dst": "hello-world/[pod with {app Exists}]", + "dst": "hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}]", "conn": "All Connections" }, { @@ -36,7 +36,7 @@ ], "ingress_exposure": [ { - "src": "[namespace with {env Exists}]/[all pods]", + "src": "[namespace with {{Key:env,Operator:Exists,Values:[],}}]/[all pods]", "dst": "hello-world/workload-a[Deployment]", "conn": "All Connections" }, diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md index f0b50a4b..f395d897 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.md @@ -7,13 +7,13 @@ ### Egress Exposure: | src | dst | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | hello-world/[pod with {app Exists}] | All Connections | +| hello-world/workload-a[Deployment] | hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}] | All Connections | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | [namespace with {env Exists}]/[all pods] | All Connections | +| hello-world/workload-a[Deployment] | [namespace with {{Key:env,Operator:Exists,Values:[],}}]/[all pods] | All Connections | | hello-world/workload-b[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | | hello-world/workload-b[Deployment] | entire-cluster | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt index 0f51a44e..827144bf 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_exists_op_connlist_output.txt @@ -4,12 +4,12 @@ hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections Exposure Analysis Result: Egress Exposure: -hello-world/workload-a[Deployment] => hello-world/[pod with {app Exists}] : All Connections +hello-world/workload-a[Deployment] => hello-world/[pod with {{Key:app,Operator:Exists,Values:[],}}] : All Connections hello-world/workload-b[Deployment] => 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= [namespace with {env Exists}]/[all pods] : All Connections +hello-world/workload-a[Deployment] <= [namespace with {{Key:env,Operator:Exists,Values:[],}}]/[all pods] : All Connections hello-world/workload-b[Deployment] <= 0.0.0.0-255.255.255.255 : All Connections hello-world/workload-b[Deployment] <= entire-cluster : All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv index ecb7432b..b5e64fac 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.csv @@ -7,7 +7,4 @@ hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-a[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],[namespace with {env=env-1}]/[pod with {app=app-1}],All Connections -hello-world/workload-a[Deployment],[namespace with {env=env-1}]/[pod with {app=app-2}],All Connections -hello-world/workload-a[Deployment],[namespace with {env=env-2}]/[pod with {app=app-1}],All Connections -hello-world/workload-a[Deployment],[namespace with {env=env-2}]/[pod with {app=app-2}],All Connections +hello-world/workload-a[Deployment],"[namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}]/[pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}]",All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot index d35c8f0b..d3c23927 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot @@ -5,26 +5,15 @@ digraph { "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] label="hello-world" } - subgraph "cluster_namespace with {env=env_1}" { + subgraph "cluster_namespace with {{Key:env,Operator:In,Values:[env_1 env_2],}}" { color="red2" fontcolor="red2" - "pod with {app=app-1}_in_namespace with {env=env-1}" [label="pod with {app=app-1}" color="red2" fontcolor="red2"] - "pod with {app=app-2}_in_namespace with {env=env-1}" [label="pod with {app=app-2}" color="red2" fontcolor="red2"] - label="namespace with {env=env-1}" - } - subgraph "cluster_namespace with {env=env_2}" { - color="red2" - fontcolor="red2" - "pod with {app=app-1}_in_namespace with {env=env-2}" [label="pod with {app=app-1}" color="red2" fontcolor="red2"] - "pod with {app=app-2}_in_namespace with {env=env-2}" [label="pod with {app=app-2}" color="red2" fontcolor="red2"] - label="namespace with {env=env-2}" + "pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}_in_namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}" [label="pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}" color="red2" fontcolor="red2"] + label="namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] - "pod with {app=app-1}_in_namespace with {env=env-1}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app=app-1}_in_namespace with {env=env-2}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app=app-2}_in_namespace with {env=env-1}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "pod with {app=app-2}_in_namespace with {env=env-2}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}_in_namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.png index 02993a14b113cdcaa7bb3b05c7bc99bfff38e0bc..a4c6fc1b6439b38766ec58522bdba066fc0c1181 100644 GIT binary patch literal 31461 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 O$TKAk#Y%aLkpBny9F8df literal 43707 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%0AEb`qRqFGL(ww;2(!hl6c4P8d5c7CM!7cxM@T z_lZ?b*|=!taBvUIWcoZl>Nvj11jS@zOulY|hxU-PQ0Ht{ZPnM2fmV|91+Lo*yua1I z1`nt4-EA7vzAEcnU|$LSc&{toi|4h-w@70C!)SZ;ZFA@oy-um@C^#%AkNGq`#gdpi z){C4=0u_T5L6Pyo+oB=b`j;WEzpiNiq+t?3EjlZM_jimNX1#8Gra+|^sW6qsd3&<8 zb{ClH$wr`5;*OSdrNpeqn>T~Hmm7=ad%`b zod2+hECSB$R_8q_mPKLk=0;xBeFtyj#^$o$BJ<9D#U)ibm$S@KtNh)X?OokTmao{p zAV*iT-8z9-EjNr2{-pa)kdXNgW9ab(*b7HyOb2(&Bho_bvtoR(3COhfZ-QUVt*cCk z>SZ*8ZnIB4{1*$Ncpnc_T|CM4I>FgC2hjFElXZi^3Io|zXn%)^hSAsxSHEu3ygvB_ z@sCV)Qyr>Q?nj$w$}8-+1jn{3+=7=8XUl%4kaL{Ywxk=DCMZgM2mLp;RK{sD#SLly zWx>LgHxs_>_dB&jSr4YERaa$`+^AZXZ`AjPF1^Wu9T%B?IX{6TrI1O4j{?1xqkZiA{ zC=F~k@ndYs-qF2ycrt>r6&|%#TRq8rvq5=@{bivt{h*n5Xtf?Tsbv`x?+Hvu#*;-j zsk9KTYfeynzjy{MG?JAq9lM;6(jULVun!M^XCP2R@Rj3RN45`idXt^=A2G7eth@PB zp#ojfOXBMqPz1D!We%IBUOl3M6kPFPN%5#3o;sCh&P2o)EJ&b*ziA>rrmMu*>C!h4 zs3cwgyz}#3>9e5Zf-yOKXfwRrF0r_j8UYd*|52K_x6BdRS7a#Ah;=s0GQ=Ad1hyQ5 zPXzw8-18b1S}MafPeQ=No6~azu1uptlQ!`Km+?1}W2M2~a!Y4?%GLL(lU3~EBVQ0O zM7leMjLEA9JiqIbLK8F%{UxQ;@Z{5-OxRfailF}%nK!5BKe?&{cb@W_K|d?RNSMs# zm0d~^4eVI&VbzxXwgj)+rfxDGr?YLN9PonI6h0SmHz$;YFkX3Zt=|0hWQ_ztB-^QH zil6MSGZ=5~s4UZ7NR3i&j% zI>Yj(?30mm7eft~7gv&$u%_ds$XNU#5XdX;6DaO6}Cn$joB|-FgHPdVHeC0E5>UVt7 zD;VOBk-x~S_Tdj%q_*v~gyj~q)l#kte(3{Qoa=tW{X;OMH zw~h$&t#zErG4k`;qE^>k+l@Pha^okZSHn zD*x)UnKhGDb`p3SH8bcuao`wx1laGwfFNQ#Xn`D>wVJ8Bu}B+w`G=hX*s=3;uOdqJ zF`M-kLwwsVWp65cjRK6r;QHk7^zbWsCmFN!9|hUr){yed*g?l0+k964-uEUQ*?{zFhqj*_rWm4(BHAwRMej z{A*1^(OSyXr+^=?MQBT?Zjc8<@3S}n+e4x1fj}iDgjJd82d_=0aZ>4`Tm7PxgM$va zkv@@(s~B3~3|ztCHux3OP}&s(`#F4Bq>Jl8Je3)j={6%VBa9`H#K*a5)ov1nn!3sZ zqz|+IV1~xRd1#IkK9q7L_W*a0t0p|W83N1;jKgS9c*Wg&C*||uju2+Rxlf*}))&}J zeh}m2)w4j#cL;rAul5{!5wr#m0(sBgBY9(HzDq|~5z~G#vCd1}7`KLp6A|8w^LQy! z1tBcRkc^vh11=19j8s_@FF^@SATkExvD&%oVF9?XNEZnT9iy2t3S9e1Z=TU3G4ti~ z^coISnPRCORZ6N=zV_+)=Xw7>*nm)j`XfX0&w@p|>LF+Qb5Z9De)@aQ!o!E!{QQK^ zXPqq5l$oZqQFi*+9u!P}1a0s53&i=8dtwkqx#WBh`BwSA)E5acjDqzT>p}f*E;^e4 zaRIH@Z;3r$|Eu>~)o*r(?u?gorgIsOvWJ9|mit_v73jX`+U0%w#~1tLlW95mJ({C3 zrE|&EQ-cegp`Mr^`Y#`*32*_qMnuf8ywG;rpwk=0^d!wr?_Iz6ljnxvWO2C>MWdy~ zlOK7kIDK#25B(JOpJtp;TiilQ^!8M~$7*rxhO*t#-dw#>Zo)6)bKQLlX`imKQZM}? zyc3cW-((M|9@aJ36d?(nPs&BLDRtEX%%(I652T4^$o!L)8-w%SzSN=!Rp;@wYr9IW ztGZgxaoQX*;6MpHjYEeM(chlF49B7rPi`^YIu6!*ATL##XbYbiA`3q4T56aIf$G6lMnP^bsv-9mPF zc;+)_Dg?=Mu6XpA@|!b)-?AD{{pO70zgP^pQN-k;vP|iADr`>AhJyRh9E>FN>Yw5S zQeI^8-RM1T^qmjUzqx(Mq545cjK*H#chX2-J&cjGILVnWPcd5Pe+(Hv*!2QkLU2R4 z2c3~8|MJd|bC#c^!*441a7q)$ez0eV+jj7nv_v=d-?C5bFp>} z8Y(I(PwA&!(b)>6ng&m-ePK--6NZa9(WIrAv}ew3RG$WKB8P|+X$&SaFzmv^drfan z$e_@MS7_F>*^ZKWFBc3MU*ue4ew48(yq(h2_aTTPWGfsy>fi6AxK_(3+F1PKloI$E zhjaIJ-EP$EV73R+M|uk8cN|Z6LwU;`L^OaQYkiSus-@9{0tA~aMC=alEIMiEoEY2Z zT7unWLaXXMW_KJF_MIIl{hrX#9a}e3bEVp!{5Jhg1X-VdBGh1avI62?V>QuuLjs^c zIr&0(o@Bp4lQW7TM`kJaPY}E-M19yCSltMsY=^fAX5^V48WSUK=>B;p4j*MBZyf@z z*8y(Ad6ijy`|%7?dR%G9=?^6UK_nL}XyHR!kzRkUwM>(hk`fKSkE93Jc|Lo=`66dN zuDtCQ>mF|K$Hz+KhMZZ{6&*H%=?je2ymvJUU$o`rLlC)D9;n@0H!m1JNm1G&;_<9$)`d3r_SpR#8-+zdyda&eR8Ms zmDzS@>adTFj`&@+@d??qgTa~Bxa)d)3Vwa{Auv6ixVJLeEXRj12pL<((Xq1sI)~c= z*U`y|rvKUBzklPClY^N+r?@${#>IzJHXRrpUH-)_pmey>Q~`YR;=&ywuC1+oB)I0& zpUS2yxSq_U8Xq6;|K$s9CcguGL_|dI@88A$$bD~)WKGP>j90p2_?%L$cc%GhwTX1V9qcmDI(-;oo$wa3u6wIh$lCM znwc4mqwVGy_(-{Ff2zFL3|IoIUNbQy6G>*{PZk0s6O_iBtPe=4sU`RK%+@;?ANdNp z?MK(w^RvFIAF`l$`SPWly!?-7lIJ*tgh&u#E~8)tunzKT+y;fP4(~;=u`BY1Fo{Zy zM!lJ4hJO^H$8DxSA(uT^nFQI2?74uz1HB-&+u-SZZpO+jW;8cHl#z+&@6a5WD~-C) zAdC|>7W=ae>^^!V{2Hj55NLYxtlQMB0v)A=nEj$Sq`lT=1`=LQPfw2oDYqD*hqM={ zezV^xsnfVlN25zF=v^OJ=Gv2QU;AYy|BOmEteF72{ot$Y(!>F3nwTtTG%Wq$ZBLSI zd4)G`+dxpRNx2NB`i}95hCFD{z+?QvJcOK20E13CaY)V-BLnFAAWr~bjj|7Ke2BZl zzGPu&FS}1diN4RB^)ypbF5FkmFPv`88`P}M%3D1f`KHv92fB%~vSQeDYIB`7{=BU= zS3ar)BENJxq0fP3UFh}7&1NI|a#L`%EEAhO5T8wuP)H7y7M=j>7!yDTUlS`~r?fC6+>&Ym8- zc;_u z1yX7w1Mo*~kOj7j^uaV9Ta&UmmmpJfE7k3kHy0zajI-?B zrA*gyHjw;mw0u@oB=~G0H})T$oj}3meg4elx;yE3ZC^VGeJVpODoSYwNIR+or%cVo zRpBnaS{NJ>VmROI0r400xx(kj5b@%LGU5IL-cKF83s- zc_&}}+ZyTL>v7$}xv|R#@Nd#ZZ~T7t=q)+H(@K_4=L6ns2!2oi9&yZ#+>kRL&LX?&P>ZID^T!pVcXwA2hFM_S78_=fk1`*?CK)mAmg#b_x~G&-sJf^v4)e0R08wv9=Agat3ts#)Un<=DiEhLs^P zzRmO5u_#%Is{pWrwp|j@5#ha08H0!?*8LPxjdv2-9APF?NIqePkKXHq7xiUWV}%Or zn6|P8XFN&A0I+{5-plxskOwvj&Bj}FJ24)c&-rVk=pje~g(iGk+_VPV_8h~nto z2{pF#suK{X7y7Wjm-sKKPyo9ClF%Ed$x>Iy3`H9WFYhw~7ya#lYp2$N2RlYnk>iFB zZ9(-p=Nby;)ocPhl_%KsV0^q&@o}&^W0DN(9iFY;V95FI%1du2zSg99!mH7Qkptzt zVXIL9W7P}!$bW)CprnYvR1aOMHwVli^?x{kG}YWi9&1#xwz3qa=J}u-dY2*WHl&TQ zcU4URAa+an^>jq}Lh=-;44AuPQ|pIuj??&e!oXRQ6YKxUuHEm@8W6x(DM0mP;dkiTruJk^T5ilfe4Fpcr#LcX zfXr(8K}o0jNoWRT2#7BMM_RRs79=F&9uKe=70_WG){J&fQ})C45(PQiF79j)->J(a;ykkn zn^p(H>+$5luaZ(9;@weR<2~Dr8Vc?im*mOrvTJ`1F-dRr#Yz-~_}1MKlxxMGck#cC z^~3DtO^@?I1!~eVO`GAj7)QXI*2iZt|5pp(Ob{}&0iTEjC#jDBnRF`4wV&AmrU>GT zkgZ-PmoiyO9(37jxv9N?05KdfZBk-QV}x-x`4y6Rph)Gt~ARA@PfA!M-Wmi=}frgh~p? zoBBOWxkRKpNxcC2FH8?H*4Osczof^@mP^Ax1SQp#{9`%c5U*|7gDWN_8t@=r%4{zK zV!*Z_1C{;b=7fQ9_Dm4?ZMg@cguX3QfnVWf+piYxgzfuPd#}C8S-| zMQJ|31BP+AYHkB?)i&9K0mz$91g41+qPqjvK6lXR=!y)&Ps-J1aAc%L7q#s#eXw4lyZ(%Q$1 z{(xbCuSa8W@ov+O7|#4c=@nosx0QQc5I~uI`8lMu^UbCZhV){~ec;+}xA>dRSuczx z%pvo+rorj*4+(X?l|8?3A`k4JpLLT&6*NY&71+$S0OIJz#sYVN-K0iEh` z-$0i7oFJGFEk+UJ-wyh&2EMIV)v=99?&3__XZvqv)y;_|A-($7jI7^k)pnfDGR2ht zjof!+yL>vvB$s+W^-Xn2>3ANdbR zH_eBAnrRv0w$xD?OEGJ^5<0%a_#$1w?ibr6(Zc<=ioO|oS1}!@&Y_xLeKjYau{=;#m@2eH#)g>PA!!cHLxELpIVBDVupf^K; z!2>UYTKhMz*a7?q|7Cy<*bl~IQO)_!6D3p+TY|ke@N&}gZEUg3-F9DmH4?F{FMhyh zB78erMZG8HnEnG8Q??;&JMfNTyD{xYIUsymEVw~!VX(I^v<#wqoc^bBX^= zr5u`kA8@&ub~q@EX_FMYJ*uq$;<^U?{4tfr3v#3sCR1qO<-@iUIuOTEbEDSRl3Bt& z$Xm=vgOlqj2{EZc9UoapMmH%gxPDW9q_ruCAu*J$^y$Et3Sbbl5Ii8g(vLdC1BHni z-j`1d4S?2=2dp~mlHas7S;EOshGf02(r+>qc|)*b&~nHPFFSx-eRah_38BUOm$mZg zz?qMgp-pC~uB`oP!%$9}!X$&3N;a{Y@oGsIG4`@fkY_xUHENuX6t!F*+rC<`{e1}U zS0WJO3uqmg>zezf#xmkeaH$_1wzhjd(esiS$_uuVN>7Wueb|jWv|RH!@igE94^CH5 z`~W)^S9ybXajFokf6ow^rscZ;*Far#(>-x8Jm7T~GOM)jFLEw_ORybHE3qIzN#iFH zyeONPYeV1NoWL#E>xv$U#U3Pbo!7`S?!P953oJ_Hk#A{T>2Muoczlnac&}=k_=14m z>0vj(ZH}V5sQs5&e|k16bPO-|ijL<_xCI};uoPu1+k-u84qoeJ9&YS@@6f21YE!N^ z8#jx+g7fcCbEsxlbC4jF=H-xEE7{c_w@$}(A$;F+!D1${h;RIRAH&)&;^JLI;+PpB zXz0>G3A@%k?2(a>q=IG1^jAh1k>=duZ|RI*>^O_dMR4UJAi#;W{mnr~gU3M1J#5m9 z8tfmsw7tO2#5EEI zt2orc4xiI5PR)&vf`tSRFGY<{%B+X{B!ZfeTHKllN>dvZ4*Aj9HEZzQ)L|S3!uAn) z2op{D>Zi^gFVPi_nIG-yf7mU7s66uy$x*q~icH_m$58$w+z!<>)cxK_?n>Om48g)e z{5^eq0*#)2%Qnh;`A}{;eWB0Q?@&>pOH%gsTSIv+R`j0XHV1o4a!NH!F8rCggSW{>l zPV2&oD`&dS=sJr7;g9ClSHmYvgV@Xh1IY~)`wV0~=DtI5NKmC@5tNn1ljxUQG|(rj zIADHLBISCbDlYb)%XJI|?s!a`D4Sk`L-BzAx5jo5-GRIm4k)CZLK4R{9)r(cC+$N! zDbrt^uwghl4832P9n;7cC56)b@J|eo=!qo=L;ZzMjH>dnO({fEi>HsR7mG{**ao} zHQuLKMF#Dn;E;%TI(}jlEFS7yT^!MDFRYKeB}3H(<}JftBFGx|-_(SJMKST#UgZq* z;;4dS^2kSNOcvh#qlM^X%j@W5vbr8gC@}^4+~X9DrORoE1he?xn}4t8eIXej^C@JA zg1dbIt=dK>i#iI(+USo5EG{RlrPbcx^ygbLe*1g8nagXjfc1fZ_XGamZ*5lB&OBXe zjV)Uvd4gSJG=9<|^5Pv@9UCj+-Hqz2G>)j9t=-cJKT3j=zY`OuJB2ov1x{wN=e$6z zs63>X0pQnAL(CLr`nu8+fXDE2XTgt%jSezA@Xf`_p>ww4sr`g*EE#Z;Sg4Rgzq9)J z^_;3EE$Az7n7U_b>vXf2mbo zLiEEKyY_^qurC4*FPg>t^s1eQwtix|Oq90Ixgk&p^4nG#8%=tKZl~o?4YjtUXEwMF zK=(66SYGt#Hu=*jNNKW(V-(NkqYo7%)t5H8KJh#?T9gB5f#^Rh=-&mODT+xhyqS(g zfy-w3&vV%5lLFD=-E~*9l_nQ9%9|!f*aWvF?bi%j<~DW~h2W%~IHC2O2?Wj3@Y8{h zaD4Nd>9(yT=F`=_I}AW?@H|5ILhAn5ab&Nv@Z9yEs7GqKLvMzc7uPcadZ>^+&k0MQ z)!H>h^o2rDXuCh05%bnxx})o(oid}lt#9o+Wl=5_70YhV8z+oN+Lnm;ym5!9RGI?~kgfPMcwsycZ4b&PTgymHehbJL_W2FecK9qRKm33{O$U(+ zJxiU^=}r^6us3utm}T$7DwTr_Yv6V2;QP~}7U?;#H|Htp4@8IAwo`R3i2PtYQqmC% zo!9#aqF24cFxwIO#fqMv2exg#?LQ;hgHgS`1wf|qmA3&CaAli2!vaX2`xCPH2P0Cm zVP0&A1tjAi^&Ys*LxT#RHPakpPzXW>MbW*_DeO;~%WboW?JUPxb3L4noa@S3ag~C= z&Ra4*(3GI`?1O&@dO$t@(Q3x)41b0kd}F(tLxlKrlxph&*AywWltqKZd9Q#$Q3Q5< zBti}(Fo@17E1lS2{ng@+CpAUD!7B86V2<8zKogg>GXMDS;dy|l&(BHHZ;EhE>yQ$i zB9Q$YQ?oB8<}Q*Rw8 zDua(A98(f;aS_&XZ7yY%OXtJhoK%i>P$Qa<^6^VM?K4OG(W&4!@yn{FGb8bzCs+Lu zh`w5lL#oUWbQ>W~8}LdZYg#q907oO~JnZU3qA3^gQF}mM|7eAAdxjnF>>(0_*S6R* zBLsb?HTFt4n>8w+fM9CM=mRT)WN5g?+a&sk@n`#BNv1wvDA*pDvG5s6^QXc%@5%h{ z4|%3)8mZGMz+^NaKgPM_D_L#->iKHjm?P)m&bg zX3!~+&;0(d;!S2MhKdT}`lWt$rMqp7d3iq#>R!HF(@FXAO{n!g81YD#sXyg_$bOXD zr_pLdb;?cac%$SUS!Ci47CECxtD;KcXQVYj(g zf4=5}YjTC-CF8Wjf1~!r^}$rt&;s!4;XhWS*6F6o|dTh+f+O}ifd+%-^utDWtBZn z8k(j($)*k%`5J3C$t$U|N=A7rPAr;&V%g8t_u49N)oR&=nr>Q?o!&L5G%vL3T032o z8|(i%FWQwXI2bMX6{j=i*5Fola-euwd`x1x5Qd$0pQ(~obx=_0#NxH5Rvq`zcOrXz zRzM32J!ws=>fMa*?{uzXkaXRyWdu5r^f2-M6c?IMR;1|v{Cza*f};Wj(JFluQCcfp znrRPawd0BRb~5W=#>U&SS?e^6cgbXKYoYH_Dfouz5KV@}pBLsT%W`ykS^e9N??*q5XEx~<>iv*)GT z!gCI``!}T`12>nItM3t_=?$++(rG`jbW|%*EpA(ZC6f26yC{3PMJHIW?Mgv@JkK(g9}R`H!n32k5hzRgc#vlU#ODXz3%#d_P0^o#mR9 zUg7hN$b3c-nXYy5?w&F(NWuA1C>xySyc9SI=8LG?>0}wRYr!Z7$*B&eeG7{!ZzqzU zxgYIL#hU)|NZIF9zp9wxS=x3ZAz~;EvKW!_k$DPc6fH+s)~IW4te24TAysQrKUdw8 z2SCO0F{$H0P(o-vhQ{wGwI~0M&+$t-l`x~W%+D@?RGTT-IvoNNUA;Z8yPZ+qPLIzb zn5_BlK>t*{y_C{vj2X)BedDmD!8@j|{C%By>SsoOg1Q2Hw=gEKor&ytCXC)NMi_qI@!N^^8| z)_dyavK^BT(&AO5iwe~Iz@ud@JK3$u8|xk|@SiJntrJhMa9-h(zkuzhg^t&a{=43{uIPV}}D!}i4R{}J2JVQzE z=K3uSTfqg7o{HDb)hjM90#DWe6?fMMMqrlEicIV7St&UlP7nqH3)KJp4X9) zxHZfY+D3Wq`n9J@8-JFCu&{}CQaL#8Z&SSYw%rOgCzPypYUxs|a`LNI1avf}8U$wS z`VN$|%5GQ*St0bV9rc>N>D0*I@ENVYlKl>J>}mDIoO>|4VDfZQs~!&DaH8 zA0Rin5%F2>@48B6zeJVXUeV_`bz%JsP3KV%_UYFd-5C5t|NH%7ewshFC8{4W(K||77knV`(rKIe&^#=vh}c=FY@XG$T-ELo4|k<;;=8@ z<@UC}vokKq>N@b2Mhh{`-4b%RM)Ry-ZeMwoMPvze5lhcCMKSo<%wu@p)({7QFko-m zV@y3~xVB{TnZv*D#KdO>-~1=vE`BicM?fAejh&T9RZyDu%q&o)P*OReKRvzGTst;h zygl#AT|_{J2R_Z!Y5U!6yRKV-CJ~Sp-A7+R^c%qKBT512L_eSQv|S?AU%uy31P~KG zjr{>TscT9ExF=5aCcx5tPF_Pt?{1!#Tcw$YtXPx;f$g1*c+7nie|_Ec^ovq9;@KXa zv2pWx_Gard`&<;KSPIo9d03&Gr{Lj~S^LG&^0~*ciFgr##GkePc7_~?&((KbIzY;; z!2>?Se6i5l-a{3Y(dx3}&ub$^6umzeFkTYCkPYFrfqz9`!$N0SZ$iTFJ~Z6;RqOfU zQBT0G^x{DiVGt8RrO?p?;1iLf#h72=Nqf2+Z9NZ1x@gbq4&= zkr6!PGjy_v2w0?7;30x#ZS3PbR!IN$*}eh{PFsAo2iKz4auu=NPvsZh@gt7h;l?*p zl&w)tS}J@YO2-y1+f%;U-D*T;FB0%v^P|TKBMJ$DbDN{1m)1zF*SbB`2He}4dHcRdYM^nK07Qanel6; zggDL*{-bJ(gJNAgn!LqK9u&N`yC{URv547Te}*GjX{F{)0DoDA|K|(iwagEP6tY%n zIV&;E92@RvR0s>rRFt%}p*Vl!L)NavKS?Lfl}0}jWJU{*U0)d_!>uCe?S=dup;-Ez z;|EW~A-JB#p3)X;WGpQ=((s(qQf+IIll4{02?(g=9Y5Z~0}=!WJcd_)lC1@fdZ>(4 zY=67$;_z))SopIFiQ?fURT2 zF0$>Olfw}h`3vz$1SbQxn)BM<9XK(uo{_pAozjd;2OPCYv^|Rh0RcujAu_5Sj9+#a zJ^*lDk|_V|gM8Rq*QN_ah(qlAD)-~WKeRf1QXtwp5bg^UhFT{aFta`9dvuPn}<^B-tJI=l4Fbe}X8T?5k<#Dyz>Ikuz35if)#TF?OJl!rwhw(eUp9T!@IDb=wfh z?>uQzMQ16k^oWC3W>Py<)VelD!MDGV{&#WAS8^t-`>(vIBJ|(=6e%kSqhZ9?S@6R^ z@8RpLqf+b~8^yCs15qd`Q+v?l2BZT?{`1IZ-Fw99ogDuk&8(U84TNEBdcikEet8c4 ze;%vTr05=X4GeaHESuZYYq81Y`0=qUA_4EAEF1i=S7{B%iFv(!ToNhyf26Edq9eC; zRc^JETYGYlPapa*_BIr{J~WJD!asT_vLr&T#nW{0L^?O{haJdNi|u_imTAjXw2+Pt zH|mq+C-3z5@n-IL5T>q(zmQE+%Mv}&+Jm>USZMXxoG8ngHU;U1lt&XF{KDFrwL6;R zvnvTGawZWktwnW2_$a=!fEQEjNBzs2GV9na?+sqCQ-Du=kxjAd2cGdVeX)NB3y;OQ z;lC10w9d}NlEL+$aF9yh1f0j?>@Lui4@&Y_B967ziWD{07q?F$uIYb>(F;5tf3Mkp z`=b9?UIEO9-l~36^hnbka?@DeL%p?>UYPMi-WRIeB6sN`RNH*c3IF5iu+8MtP2UOQ z@bInN$Ly?LfbRDPRxm3^Pub{ysn9WOC)!m}k^?*6rmNm{KyHjn4~(sw!!DUu+B*gx z6efI#Fu;yUFzlPdtm~F$@7VYoO_~1OHlyBkK#BPdytpmK)c5{Ad=&R#rymGN;?}O- z@#334Z6Wi}y#Hyp;1eptMKQ+ypsS24o`7gF^b+GS!wA#w`u6yxgr5FpdyF)tUDYNG zaKEwtaY5Yqj9bo9l-ZT>B_7}MW@>&p{)f?rGWG9z73c(y*Kz%HY-3@D1@jm&B421F zCoQ4O+INSv9C(nv)^<~E;s$&t_~;3Sdm|xahIW|zZhu(s<&HGx*KfJ%WgYeBF|?Z) zca~`~z)Lc_z-I>chaEEq7$$5!zmuL7-hYyLZTkG~W{=^q=;`FKAPZdV0jUD7e3|;; zG2Ww#`5Rx2$L`eSF8DjPyqN9&gbJir8OBbV*3)vF;F?U8x{~m8?^IniZ(Y&C90?wG z)e`5cpD4v&wZ5%J%{EU0JVGUL701Mp^U_H-TdH;IbOejS1{#FI|EmQ+1f4hnWb4$I zM$i5_jj#xp)^QRNw_K5rw{Vl^h>nxA`JQt9e$rr>wt`yF{XeM@{hY_H zRxqJ5yxpY%@dy1%GViS4H4HNI`5)s>ZC(HRJ;jOq!Q%sH>Om5eaYLlmetF})zp<== zTe{n$N=L^)v$TR(CK6UGrnoW@bB`@scSn}^MdF(f!{XO#vs`6sh8hKg_MNKQ=G({B z{kJuPI$j2ByrMNw$YFno{%qsHBk^%2tls8^M+00CsSqj9lSS#JKfN=)GR9{d099~h zQ*MgZjxZmF24!EM#Q7ye`r_Tkq9fNXi>Wp)7xC@)Pz@b_Hx~=v$bG+K}zHoV;72HI^)7JCo zs?s=t z4yb)4nuWb?cbCt>+X^il*Sg8VwM~Nxsiq$Dd?%~PMNAKuu4QVv@G3>ua5Bu=oltKU z_3*)kHbma%1APO_QRZ#$<26ldJQB?GeA|tWzwk3fEs4xTvzAGrL4wUgwdH(Qk3{v2 zH=fRLt8PKXZe>bav2$aLBSLX8hmO)s;05TAo7+%#6tfVp5cLT9y^}Nn9#8I4{-3-S z2QeXYoqet7I!Ng-EIRo|>Gr@S5H6&MJg2HZ5Pt%(GSG3H?87`KlMF&1d;@GXttKM3 z(`PJ{NnPsu!eu`LBEo&yNkO+;AUO2z@r>$7-+3||%U$k1%LzG^E1nJh?}m?!KtNNJ zde`qse&g$W+4qt^%e8Sdx0EM=pA#D8`wkJXoFSYcyU+XKxTs%js-ikXeEYvdSsFW> zC%EQ3^qz+ovz^re&<#beEul&Hl*gHQUT8*G)%v0&?vB@7M{rh+|oMf|iW4iWOMw|Vi{ zEV;u{0V}%@bm6_-`N-@jxaXXIN~`~>bnFgLK=E0~XhoIG;UcB;p-pdNLNxAj;ZK>m z56^JDI+1YmCTDl+359bg#QRcS`0m;r`vFF{7UgSPub*m>0#?i`e8h&ZoPSfRXaxr}K&I|fA2}R_$3?kaP54M}*Nm$0x#3+aB0@6z`8At=zcoPgSDCYzH9cDG zg7~j_r4doddTe7a)>o)&TQc$}-Fti1#IF1~N&G4gv=EetEGz_@?dOsv*2-ngpr#eo z{%GMj7}YZVUby*?6E@RrxN{?0@sEQd-uKKt=Dcr5brI~-s^FvfUUkyg(+{EVc+I@a zi#q|s0w?vh#*YA!?3HXkb)KSib*S?0S8MQAjuOX2B=xB_bGG&oKK*HqTC+81?gUHd znaNmSpFdAE)`!s5^pku$&(`uy(EQ9_9=w)!RJ}tMlil^4ECMNT#@1{pyrtzcO z-!1)B0ILZp9sFGXoDroX#8^TV>PDfrec@jZz1cq0Os};jg&3?=rw|X@NF8DNOp&h9 zIi|P>&Bzo8f#s&|z6%7p4CY_}(<8l9DfkG~e}%y{{O>t#qAJ;e?k{&q@-c0R-drRi z3!4#BpWm-+btpZ(YB2xSm`DQA84o9=(->!QLzB z7jLe|IJrr`fzH16K36hY(5e9-V{h1hQVUJU@VQooY5XDfueu)fqU8rmCHxP0N!gA& zwEOte8s4&?zCGGyyYLxA>aEn>s|4SU`u{c>rj+EmPK{N1kHX+uEdF+6d{gAg;vexT zzcZ3wjRHtOaXf;n2OCX(tfr|NyOPFpu(W#40-ZTgjP~#(5n zu{jK=OC_3@<`W#0*z6Z1c=HQSO6IYx?s$n=%rM%gd|p~=f)Z}#$G{DUoCO#)Vz$?x z*Bal5wS|o@#+{bYQm?$Ld}umMkpCay!`;tQC`w-Wp6p)f2d`)_-vdPE5fOuzVkyk~l0;GX>8PAIb-GN}O*y;_3- zHKvx_an7QJ3#CumZUBLv6(aoZ!_e?vA*cCJFB`t2lb$^Qiel| z27Q`f-_;+3VN!YnL#s5&6bQ0`SXYP2@zqP)_|mJ=4`{wCX~tmVFOlK1_uq8^^i}tN z#OVo|Nqh9f*gT=u9IO>;LAhsE2IkIfmM%~abOl4vSX-^g9L+ZLDkkK)15XSes`QXt z8BoOwl9=-UyC28>u2gzi34#eaMEoxztk{j7_O<`76sQNbLISERA4h?5ym6hDA=B?L z{Wot#)a0c`IsY>SWoCVMq#obEFx$j0VXa4qh&8vb)(XR$lk$6mSIdZ&fZ$1d9yXfZ zU>Y)aN%38;I}q($DiiCdcWVt1rLNCrrh{3&{f|k`lh}GiM-eO8kRdqUof?~+p+)cT z6WprsKg2umk_tjd2nXRTDqeXO~xyu>?DNrSIa&c zsp%Q7z?e?srW@~e%MdU_vsr9%Po2ExBR8ZKo|8dA;AC^Gpd{r#?Mdx=_wM2gGE;?R#btfAO3zkaA9Zjw=W9)n?ZB zbfW>Z+!Vha>C?wE+Lz@w#L7d5XbQpXtx~uUPBDAyG-3&nQcTH*~dvY}(`$`zeqcS)*!4;?1$C`TY+40k}xEt>e)4O<(Th z7iy;X%@`lN>nI%$(q}}nQ%x{GiQeJaZkTH`WXZLG1r0deeVt)@g<0{{Uo&qJbzYNo z8H;yut!F?Jkz}v`eqQPw+c|sg5VnateQ&G*E$i9S%WG+pcN>EqlFFE%nm@cDmy@~w zs|;~vPwpp{*U&~tNcfh+5M_D_QN%Tbl~ui@EHh^Hf&5rkr+zD^-u-dUA{A3RDfaZ& zRQ+oYA0`bBs?roP<~QHbFfhOXc`zcgQ$wRC{Vo#=nU1q~{#!PO$4_z`|5oX`rN_~^ zn1=DP_JmEi7Q1t5=Bbt;m)Ul|6XUst>>}6aG#Q32-PM+WvmF5hEI@v&wnUbn>@t-+ z`*-KYyRI0e>PhM%13`QS34_6f|CB>-Rn>At4dm!xMHg>6(IVFj$9Hc!i4ec<)L?+5IyAsPXiADROMC=Spm1HaXv*1v0Tqq3HzJdTg>518 z@w1WSB(gp4l?QXlWF^euOiZ)>+?+Hzb-qchZNC+yx1Sn&@w0+D)%T6bRou;_H3zcs z4SiF+-|@x48J?w1zMIh*pyuu^w!byE)SCyIl=4M%p8DSqHZ3jBlz)JJ-McjlnWBtE z@!lV+l`&tYH)#0pBo)zIiTG$=X5{*~+~_^+Z(fU!^fZZ_XQakcnv_mMpW%6#=YtoC zj!%wFSy>NW$L|Y1MaoJ)ek{Jv`TfR%w!&jkKTVWoU}>)~iqExqmg1O!9!(ZvipbGdwyE6q-!qVE>^&(TU+>pBRqAn2r`MwAOCAox6GHt<=oPERC`F-E z=ke(IK4b_r>O{MWDaw|Vn_X@9zx24~kd@fYwG$dx{itPWi4rKK1ti?Gv0 zrM4x)=g>pPxginNaF{(^Y6Nj78QB7n&)x8V;7OQnm8M_s=1r>@9UZ&!!6BOvY$#Rf zitxvR^s)vr8a^pg2q@Lu6+x!IQ73g*FDq}$drBR9XSKEs=i>+8^_%Mae1TDD$&8*@ z;Gc~e)&BNEsCvKE`+g>&(_dRYTfz>`FP^_)1#c-7`YVy0%jGT zDoRk1eR>{aUJ!Yl$X5*(=7jDV2z{z`=Z9s*!Gh)IFhpC&2gylx8x}lVuRbPxyCL(- z(KY(?r)YBXm)bvT<6r({2W>sqr>1FZd5QLyo{J#n`J@XE#6V3tY-|3$pLTYNsBB>G z{nnJdx|2A);T*+!Rg@u3NUq-S!Jms-?u1&DhF?ztdvY^?tgTeoYU1S_s;ZTheBu%E zDzXLVO`G7K_Pk4265NsM+}ks_@*XhB?KB2?hdZO9^jRfkMc)c*iL_+1FJ&k}8@@28 z5ll{I6NwN|y~EGUEO#X?M;ID?mxGIZ(f8BoqXO)s7_xMzC9HpGWd*XOT!JGBxwU{5`7(v@<(^;#3}iO8F}(j#yam<2aWRu zJGpdvI(^A!IPL`B6F^&Uxl`6zY!U;79dyg~mrA27Uy$agzr5q-Oe#dx6$x$qH~OUf zb(%7wG2@DraJIXj4nd{u@SV&Wid|66+{3Xeqt9ib~pkwy;%M;4A$rsI= zArv07ju#$xXsc_6dQR2h>8>2j(h9(tg-|YfiA=_Cs8I9~Q0T|EH zg$vRX*USH8!*-M8%1kt=z+mt%&Oby*z8IR4%*<2o`MLLir7IY(O6IXPz^~k^wlDPM6fc1i)UOungOMB+=;+7Cmw**)w6#S;d~;doi{_0941j(cno=IoNb!N2 zYB)L?r=?+{S5fT#D=*MCRFA67!JTsX>%0r}Vi?ndnh4meO~Kr`^TQS*Ra2XxQ0zAs zj9ymsAwYjO2FN&D5#;qc__W}EvrduCp{Jt6&+x?W-f5f^hDMxxO!H5tobevvQlj%X z3H0{UF<=1D1mIE4z)h;nmj}eetI%cw9K>hhYQv%|5Pr$$;Y+V*>=0Q zv~4jt9d8LN&hxLUE5VKLGdTl5H~6YMpu5cu>Xk~mXj3LqnCVWOk1 z7T>*nBwqE`>=PiT1p`VJ0*x&Bc0;@9Gkm4E3@#z2If_%Ou~^bAZ|=dj@#f-}3*DAw z+=Ljnz7U7OyhIE?1TntkR!B0qAGwB-v@tRf1nAzF)HmdW-b@_q@KVORcS~a8NWUFB zQa}J(dhxPx?hTi?5_y!YKEp%nD5|T1s0Pnr_16m>dKp`#eDe#f zThFcdcD_?lR&y%0w^N>;;*HaMIzX5poeZFu1bphce9~TkwW_OP4pus#LiWWB0raz) z&-IFDfk^=?%v=DsG;fZL29!Mqk2PBBrM+=;@`;X0N*mGF zeA0humhi(dH^I6*l7|2qeo|VUjY7}>pWgsr>K~$Lrqkt^K5TpLpRQx+VgB^3iGCZ1L+}cn2M5M!%?QBE5cHbcMfA{x2E{!C+b02bNV zA*{l|z;Kh|Ekfbj_V%YSc&JY=`|he*y^FeMXf;}~gSTl*ViDhV)Ueq?=(cJ#ct~~R z*Z9OoRZt-CSxy#c1vp@~fA#xUr-gB$=d7v=C^3mBnA-;sT&Sl#bMTv|bSr-d_Lgi~46puP1gP*CY4*BGLW%+P{bLyxCn$4}mI)Cp+tzLD;N@0S^{tWS#e6 z$TpM1_3QM(!NzHNsmG*Xb1P-XdHhmFr5)Amj|;{3*bUuOqn6@#u&x*R#^>iXo2+2b zgJNh1ga2m3r!kVv22pevt{q`1neg(Z`DFC0=)ZmAZE)n-z4t9YZS~lIJZ+*nX>qYC zcD0PA@0DKshU4I`MWY8%PA$a!N12&w-jsd;wK#BS5=k%Mzm&8@ zj2yW<&_g{r(7D>$D$?&9&gNgQ*REJ8YuDBpOoH?A>n;?EjD0caY4-z zud14hZ@<_x66{s^`y-<;_gTD59oqeNqu;iYiZIz=oOZ3mzo{AO_pD<5q8<*zztfCe zPB?fs?M+>p!ylAAi2uQP{&bFSmD*S|Nus&w`b{3np=MW1P?Ur*x95`=t(XETuy_J9^Zzd!`$f^H+LT6T&gR2rbci*Kbjs+ zkhFC^LLiK81=sn|)%WS+WX6LNcI6WAr#foVn-|_otTap?Z6&Ifqs`cEXPtFHw)gC< zYE21TufkIB0{fgljH>Q0_0`>a>YMM~_zl3|9p0%w+HoEY8wx#L#97EIZvl_==)v#u z?td?BIA3O&&YJh^?9V2x`Q~q8l|=AT^_EMbdhp_68L5uM_g>-o`F9ZYY+dmz`e{-z zXiwp}Kb0N%cchyVcY>xEAUHSB*0<76``P9&J2) zpz-iw+vH*?DD-*NO&8X>9vw163RXHeQZSwZ7mpg^|!KH!-5EJ=DzI@T-J~mWL`K$1WW0^mTCC^MR-2 zU8dq%c$dbv>HRpF5CNR)ByB?x6*~p=T@u#DA0pLil;(X{zlionl$s7w<;!Y|op@3UO^>X=*G>CAI5XS>Em&DZ@l@=fg?66RhZxk5kn6=D|Ohx}Xn zG@LW;$6HX3=efqo@u=)m*yd{!48Ah!g@aXbmhu(ajLy2k8n)gHE`P8*^xePeygJOk z-l23ubbDh%4Fr%isrqJI^e5i4MTFMVZ`Ymp7Ux?ChpV6y;$V>ofi%?01({#+ralpW zho@o4%%tRj#a4}2(qIcfXMhDLZ_ax1&;JySX~Hr9A6d$)WZ=+|s9apE+=V?|f14=W zml2mL3aa;a(Af+P@zoX6u>bz85xn;RET3?j<5YcliQuh^xDTyx|C?@VQzlIjlcTp5 zzP@1T;B-+>)2ZU|Dezn$mz+wo> zCxJi#&tlcFVRtH=0(**RuVBI!Z|=PZsyLiAaGJ(gPPf>}cxvlgnXT^fs&1;PzrL4G zmYP2inbH1!GDB7R`I`G)E=IVDF(njxn*rv1sXlRXfU#0*K;v7Si9!c2c8lqC|8HRn zJXUHv@%Ck;wJCU}9?$5w!rXld!Y?*_6kf5lq z7e~y^TCb$;85<$np0|`W+uSNMm!F(gJd@ zYz3?0@H>$01onl`FkxYRlhO!73)-`!#M6;+#woQk@H_*Up(hR=`_@wJ!s(m{BUZN+ zo|8`ho*K&-i95i64-db&#kllvyKw#jh08-*n}38M`qGOp+*I2G!3nNaQg? zN>5us60tGbgLWcsY|O8cE$$XhuR2Tf`@b{Owi14DE~&7DDU{~}$wf>= zdV16}jcwrkJKYAxFloETO~7_gM}zn%y(T7@_fzH5Ov>ON6vt@wZaRmd?Ji)QSUFMm>>uf8Oa7eR~0VwP4TGtww*f2IIUs_S(U7ag$9T#s`_?-E^J19uA^dlPyskt@9aFZJlUewt(y zxarrbq2rJ5GKo~$27M~)W&wT}e8KoW3DDE>6B67_V%EQOWW$cjf4?5M`WWpEpoB{+ z5vd>O=BH!YtRqTGXa}l5I{rQgbarT{xyGAHpZO9V%iEw0I~!|>^9~C>s`~nlLXrZS z9!dqUv`O=wQp2jMc4LP#?MVZJrIKl#*Q6077cS5@G}t|=1k%%2r=I(sqqWJqqaVGF zqE}GK6&2Z%4~d0kYrP%CfaY@6G1Bw&e(45?{20(GODnfi#*h_e6~F3(kpT*xFhdLH zXnE*uN+3W20me8@TlO=uk79O4737wfLo5YwB=kJcq?E_KnTAF-jThfY$e7e8+ZJ~h zNXyPhW`c-3zhH*g*gw;mto<%9O#CPRmz_;KJYcRBatdhuU zp|?|`XhcWu(h3U$@Oh0p(c!^P^1UZ{0g$I`cBYl?{6m=do9*rTJVEs3e@Y}XOA1yo zQkDrDvbFvmt$xdF>+8t`ibLLNFq43~=(B9-J3`;@a=z&z8x0QXW@jlu^S(&0Kuo>; zNFez|_kltKt<8pL-6fhkeQv1VjN<0F*}53nKSY{WL={Ld0Y485v(k&lkrC+!J3aIj zV9$$SGC%o@eHarP_kqVjR2QkoIq=kpA6@sV`kwk=cIdIkP?0`p_Zo^nSNeR6JBiQS z!05po6VL${!guDo0m>DUR8hgVxTqeH8L-2L4Zb-i=f&5TPPUAyD+#7gl|38k%051n zML2l0u9}(WMR4SmO4OIayb2BiyZd6c+oj+EQ$%MXC^a?Y!B?CC2FYA@Z?To^PVA^; zrfs)4l;#QA2{bIIadaa+g%QZ6Z-%v0nErd+S|xWiIdXMjVF?x6oz_-pLlg#-gn(Wy zjY>OJGKK94zxPCaRgOtsUZTGoshG2t){q|S9DwG06*Q>-@6(WzV=tMKT2Hc>!#&(T z!>5dSyzSl+1Xp?CYY=KfZ+?;R7% z8iVlbX|(tDPS4dsC2a#%smAr66)%cSa5H{WbIG2bzdnL$jr_Lu%AU7=-7{v*7rPIMX*-tx zvwuQwS;pSz-#~vm>)<#Lw&0T}%GgU=!xo8xihTU|Zh9<%-EMT4&;WBWoBQWD*g6s? zLIN}wg@Ek^g!~l~_+jhC$D5BnZE!p?0+6oU{_kgRGB{k@IqG>-SnM>aZ;k82jM4Ou zDXbyx0TLeOxtg91(Tvz`COJ#Rz;b1F z+ZKF^0T9wUCr{68Nh{aWpmyp{-EZ21PU#thsn3nTdkomf^d7OL6tdga_uX!cLhG`u z+a`gXo=Qi>ig#*9HA=j7Hk^{Yr}_JA9PKqeefH1fv|FnQsmaoF-|K)fG`gO=>Z>s2 z4hajm%uavPh&oDh+WoT3AZ-B`9iJk%r|-9bqh^#4YCuJHL&d(3eQDQfcd(GZFO$Zn zom!^k;TPhrrzV*Wbz9dlp_7_ b;`mD-nG@EZ?8eA8L%^k}s;h#6KZ^Jtt%C{d diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg index 3fdf13ab..b2bf46fa 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.dot.svg @@ -4,108 +4,64 @@ - + - + cluster_hello_world - -hello-world + +hello-world -cluster_namespace with {env=env_1} - -namespace with {env=env-1} - - -cluster_namespace with {env=env_2} - -namespace with {env=env-2} +cluster_namespace with {{Key:env,Operator:In,Values:[env_1 env_2],}} + +namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}} hello-world/workload-a[Deployment] - -workload-a[Deployment] + +workload-a[Deployment] - + 0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections + + +All Connections - + entire-cluster - -entire-cluster + +entire-cluster hello-world/workload-a[Deployment]->entire-cluster - - -All Connections + + +All Connections - + -pod with {app=app-1}_in_namespace with {env=env-1} - -pod with {app=app-1} +pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}_in_namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}} + +pod with {{Key:app,Operator:In,Values:[app-1 app-2],}} - + -pod with {app=app-1}_in_namespace with {env=env-1}->hello-world/workload-a[Deployment] - - -All Connections - - - -pod with {app=app-2}_in_namespace with {env=env-1} - -pod with {app=app-2} - - - -pod with {app=app-2}_in_namespace with {env=env-1}->hello-world/workload-a[Deployment] - - -All Connections - - - -pod with {app=app-1}_in_namespace with {env=env-2} - -pod with {app=app-1} - - - -pod with {app=app-1}_in_namespace with {env=env-2}->hello-world/workload-a[Deployment] - - -All Connections - - - -pod with {app=app-2}_in_namespace with {env=env-2} - -pod with {app=app-2} - - - -pod with {app=app-2}_in_namespace with {env=env-2}->hello-world/workload-a[Deployment] - - -All Connections +pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}_in_namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}->hello-world/workload-a[Deployment] + + +All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json index b9a580ad..f2b44c16 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.json @@ -21,22 +21,7 @@ ], "ingress_exposure": [ { - "src": "[namespace with {env=env-1}]/[pod with {app=app-1}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "All Connections" - }, - { - "src": "[namespace with {env=env-1}]/[pod with {app=app-2}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "All Connections" - }, - { - "src": "[namespace with {env=env-2}]/[pod with {app=app-1}]", - "dst": "hello-world/workload-a[Deployment]", - "conn": "All Connections" - }, - { - "src": "[namespace with {env=env-2}]/[pod with {app=app-2}]", + "src": "[namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}]/[pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}]", "dst": "hello-world/workload-a[Deployment]", "conn": "All Connections" } diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md index 6f18451f..423f9fa6 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.md @@ -11,7 +11,4 @@ ### Ingress Exposure: | dst | src | conn | |-----|-----|------| -| hello-world/workload-a[Deployment] | [namespace with {env=env-1}]/[pod with {app=app-1}] | All Connections | -| hello-world/workload-a[Deployment] | [namespace with {env=env-1}]/[pod with {app=app-2}] | All Connections | -| hello-world/workload-a[Deployment] | [namespace with {env=env-2}]/[pod with {app=app-1}] | All Connections | -| hello-world/workload-a[Deployment] | [namespace with {env=env-2}]/[pod with {app=app-2}] | All Connections | +| hello-world/workload-a[Deployment] | [namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}]/[pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}] | All Connections | diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt index 5c4c16bc..d5141daf 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_in_op_connlist_output.txt @@ -6,10 +6,7 @@ hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connection hello-world/workload-a[Deployment] => entire-cluster : All Connections Ingress Exposure: -hello-world/workload-a[Deployment] <= [namespace with {env=env-1}]/[pod with {app=app-1}] : All Connections -hello-world/workload-a[Deployment] <= [namespace with {env=env-1}]/[pod with {app=app-2}] : All Connections -hello-world/workload-a[Deployment] <= [namespace with {env=env-2}]/[pod with {app=app-1}] : All Connections -hello-world/workload-a[Deployment] <= [namespace with {env=env-2}]/[pod with {app=app-2}] : All Connections +hello-world/workload-a[Deployment] <= [namespace with {{Key:env,Operator:In,Values:[env-1 env-2],}}]/[pod with {{Key:app,Operator:In,Values:[app-1 app-2],}}] : All Connections Workloads not protected by network policies: hello-world/workload-a[Deployment] is not protected on Egress diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv index be8a5c20..84093675 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.csv @@ -5,12 +5,12 @@ hello-world/workload-b[Deployment],hello-world/workload-a[Deployment],All Connec Exposure Analysis Result:,, Egress Exposure:,, src,dst,conn -hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (a-app,b-app)}]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:NotIn,Values:[a-app b-app],}}]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections Ingress Exposure:,, dst,src,conn -hello-world/workload-a[Deployment],"[namespace with {env NotIn (env-a,env-b)}]/[all pods]",All Connections -hello-world/workload-a[Deployment],"hello-world/[pod with {app NotIn (a-app,b-app)}]",All Connections +hello-world/workload-a[Deployment],"[namespace with {{Key:env,Operator:NotIn,Values:[env-a env-b],}}]/[all pods]",All Connections +hello-world/workload-a[Deployment],"hello-world/[pod with {{Key:app,Operator:NotIn,Values:[a-app b-app],}}]",All Connections hello-world/workload-b[Deployment],0.0.0.0-255.255.255.255,All Connections hello-world/workload-b[Deployment],entire-cluster,All Connections diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot index 9137a680..acdc96c9 100644 --- a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot +++ b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot @@ -4,23 +4,23 @@ digraph { fontcolor="black" "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] "hello-world/workload-b[Deployment]" [label="workload-b[Deployment]" color="blue" fontcolor="blue"] - "pod with {app NotIn (a-app,b-app)}_in_hello-world" [label="pod with {app NotIn (a-app,b-app)}" color="red2" fontcolor="red2"] + "pod with {{Key:app,Operator:NotIn,Values:[a-app b-app],}}_in_hello-world" [label="pod with {{Key:app,Operator:NotIn,Values:[a-app b-app],}}" color="red2" fontcolor="red2"] label="hello-world" } - subgraph "cluster_namespace with {env NotIn (env_a,env_b)}" { + subgraph "cluster_namespace with {{Key:env,Operator:NotIn,Values:[env_a env_b],}}" { color="red2" fontcolor="red2" - "all pods_in_namespace with {env NotIn (env-a,env-b)}" [label="all pods" color="red2" fontcolor="red2"] - label="namespace with {env NotIn (env-a,env-b)}" + "all pods_in_namespace with {{Key:env,Operator:NotIn,Values:[env-a env-b],}}" [label="all pods" color="red2" fontcolor="red2"] + label="namespace with {{Key:env,Operator:NotIn,Values:[env-a env-b],}}" } "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] "0.0.0.0-255.255.255.255" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "all pods_in_namespace with {env NotIn (env-a,env-b)}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "all pods_in_namespace with {{Key:env,Operator:NotIn,Values:[env-a env-b],}}" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] "entire-cluster" -> "hello-world/workload-b[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "hello-world/workload-a[Deployment]" -> "pod with {app NotIn (a-app,b-app)}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] + "hello-world/workload-a[Deployment]" -> "pod with {{Key:app,Operator:NotIn,Values:[a-app b-app],}}_in_hello-world" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen"] "hello-world/workload-b[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] "hello-world/workload-b[Deployment]" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="gold2" fontcolor="darkgreen"] - "pod with {app NotIn (a-app,b-app)}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "pod with {{Key:app,Operator:NotIn,Values:[a-app b-app],}}_in_hello-world" -> "hello-world/workload-a[Deployment]" [label="All Connections" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] } \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.png b/test_outputs/connlist/exposure_test_exposure_with_match_expression_not_in_op_connlist_output.dot.png index 5d097792b3af44205ff2c6d0e77b80202724691c..f4a22bee5248a2c46cdce17d0ee4fcdd30d30fff 100644 GIT binary patch literal 56759 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